Postado Setembro 11, 2015 9 anos - Bom dia TK, pequisei muitos spells no forúm para meu projeto rpg, portanto encontrei bons spels e modifiquei... Porém preciso de 2 spells diferenciados que tenho em mente e gostaria da ajuda de vcs.. Vamos la! 1º Spell; Uma spell para paladin onde ele joga uma flecha na difereção de 6 sqm essa flecha vai e volta pra ele mesmo se ele sair do sqm que ele atirou a flecha, como se a flecha fosse um possivel bomerangue e que essa flecha dê hit em algun monstro ou player que estive no caminho dela tanto no caminho de ida como no dê volta e que para usar essa spell seja 20 segundos cooldown. "não é spell de target" 2º Spell; Uma spells para knight, onde ele dê target no alvo use a magia e em seguida ele pulê no target dando 3 hit e 1 paralize e volte para seu lugar, sendo que essa spell tenha cooldown de 20 segundos, " após usar essa spell ele fique com effect durante o uso da magia até bate e volta pro lugar, effect: 25. Bom se puderem audar, são boas spells!
Postado Setembro 11, 2015 9 anos cara, essa primeira não acho q seja possível fazer não.. eu posso tentar mas com o efeito da flecha acho q vai ficar muito quebrado a animação na parte de voltar. Quanto a segunda, isso daqui pode te ajudar pra base da spell: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ASSASSIN) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_NONE) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1) local function delayedTeleport(cid, position) if(not isCreature(cid)) then return true end doTeleportThing(cid, position) return true end function onCastSpell(cid, var) addEvent(delayedTeleport, 500, cid, getCreaturePosition(cid)) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) doTeleportThing(cid, getThingPos(variantToNumber(var)), true) return doCombat(cid, combat, var) end e no spells.xml <instant name="Boomerang Step" words="insinuendi" lvl="50" mana="20" prem="1" range="4" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" groups="1,2000" icon="88" needlearn="0" event="script" value="boomerangstep.lua"> <vocation id="3"/> <vocation id="7"/> </instant> Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá! "Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda (obg ao @Beeny por fazer essa linda sign <3)
Postado Setembro 12, 2015 9 anos Autor Mesmo assim valeu mesmo mano, muito obrigado adimiro muito seu trabalho e sua humildade em sempre está disposto a ajudar. Obrigado mesmo. +rep.
Postado Setembro 12, 2015 9 anos local config = { distance = 6, --Distância do "bumerangue". distEffect = 3, --Distance effect. minDamage = 500, --Dano mínimo. maxDamage = 1000, --Dano máximo. interval = 400 --Tempo para o bumerangue voltar, em milésimos de segundo. } function getPosisBetween(fromPos, toPos) local posis = {} for i = 1, getDistanceBetween(fromPos, toPos) do local choices = {fromPos.x, fromPos.x + 1, fromPos.x - 1} if fromPos.x ~= toPos.x then table.sort(choices, function(a, b) if fromPos.x - toPos.x < 0 then return a > b else return a < b end end) fromPos.x = choices[1] end if fromPos.y ~= toPos.y then choices = {fromPos.y, fromPos.y + 1, fromPos.y - 1} table.sort(choices, function(a, b) if fromPos.y - toPos.y < 0 then return a > b else return a < b end end) fromPos.y = choices[1] end table.insert(posis, {x = fromPos.x, y = fromPos.y, z = fromPos.z}) end return posis end function onCastSpell(cid) local playerPos = getThingPos(cid) local toPos = { [0] = {x = playerPos.x, y = playerPos.y - config.distance, z = playerPos.z}, [1] = {x = playerPos.x + config.distance, y = playerPos.y, z = playerPos.z}, [2] = {x = playerPos.x, y = playerPos.y + config.distance, z = playerPos.z}, [3] = {x = playerPos.x - config.distance, y = playerPos.y, z = playerPos.z} } local spellToPos = toPos[getCreatureLookDirection(cid)] local posis = getPosisBetween(getThingPos(cid), spellToPos) doSendDistanceShoot(getThingPos(cid), spellToPos, config.distEffect) for i = 1, #posis do if not getTileInfo(posis[i]).protection then local pid = getTopCreature(posis[i]).uid if isMonster(pid) or isPlayer(pid) then doTargetCombatHealth(cid, pid, COMBAT_HOLYDAMAGE, -config.minDamage, -config.maxDamage, -1) end end end addEvent(function() if not isPlayer(cid) then return true end doSendDistanceShoot(spellToPos, getThingPos(cid), config.distEffect) posis = getPosisBetween(spellToPos, getThingPos(cid)) for i = 1, #posis do if not getTileInfo(posis[i]).protection then local pid = getTopCreature(posis[i]).uid if isMonster(pid) or isPlayer(pid) then doTargetCombatHealth(cid, pid, COMBAT_HOLYDAMAGE, -config.minDamage, -config.maxDamage, -1) end end end end, config.interval) return true end Editado Setembro 12, 2015 9 anos por zipter98 (veja o histórico de edições) não respondo pms solicitando suporte em programação/scripting
Postado Setembro 12, 2015 9 anos Autor Zipter98, outro grande membro que ja me ajudou a um ano atrás mais ou menos, obrigado vou testar e volto para te avisar! Error na linha 27 e 30 como não manjo quase nada de script sou meio leigo. data/spells/scripts/bumerangue.lua30 attempt to perform arithmetic on global 'distance' < a nil value > data/spells/scripts/bumerangue.lua27 attempt to perform arithmetic on global 'distance' < a nil value >
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.