Postado Fevereiro 23, 2015 10 anos Este é um post popular. Eai galera, sei que ando meio ausente mas hoje vim trazer um script que fiz pra um amigo via skype, fiz em uns 15 minutos e gostei de como ficou então vim compartilhar com vcs. Trata-se de um exori vis com chance de errar o alvo e acertar os sqms em volta dele com uma % definida. local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1) function onCastSpell(cid, var) local attackPos = getCreaturePosition(variantToNumber(var)) if math.random(100) <= 20 then -- esse 20 eh a chance de errar repeat newx = math.random(-1, 1) -- esse -1 e 1 eh os sqms que podem cair em x newy = math.random(-1, 1) -- esse -1 e 1 eh os sqms que podem cair em y until (newx ~= 0 or newy ~= 0) attackPos = {x = attackPos.x + newx, y = attackPos.y + newy, z = attackPos.z} end doCombat(cid, combat, { pos = attackPos, type = 2 }) return true end <instant name="Energy Strike" words="exori vis2" lvl="12" mana="20" prem="1" range="4" needtarget="1" blockwalls="1" exhaustion="1000" needlearn="0" event="script" value="especiais/exoriviscomerro.lua"> <vocation id="1"/> <vocation id="2"/> <vocation id="5"/> <vocation id="6"/> </instant> Ela só vai funcionar com target mas assim dá pra vc usar a criatividade e fazer uma spell mais forte que o normal só que com chance de errar e atacar uma pessoa/monstro do lado, até porque os magos não tem nada no tibia que faça eles errarem dano e essa é uma das magias iniciais então faz sentido que ele não acerte o golpe sempre. Espero que gostem e usem o código como fonte de estudo pra criar outras magias fodas haha, abraços do lobo Obs: uma edição que seria legal vcs fazerem seria a chance de errar ser proporcional ao ml e "experiencia" (vulgo level). Aqui tem uma pequena imagem de eu usando a spell e errando o target. 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 Fevereiro 23, 2015 10 anos Gostei da ideia, e proponho um desafio hehe, Coloque uma opção para escolher entre a chance de errar ser randômica ou depender do ml (quanto mais ml, menos o player erra). Att Atenciosamente, Bruno Minervino
Postado Fevereiro 23, 2015 10 anos Autor tinha esquecido de anular uma coisinha, agr tá feito local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1) local rand = true -- deve ser randomica a chance? true/false function onCastSpell(cid, var) local attackPos = getCreaturePosition(variantToNumber(var)) if (rand and math.random(100) <= 20) or ((not rand) and math.random(100) <= (50 - getPlayerMagLevel(cid))) then repeat newx = math.random(-1, 1) -- esse -1 e 1 eh os sqms que podem cair em x newy = math.random(-1, 1) -- esse -1 e 1 eh os sqms que podem cair em y until (newx ~= 0 or newy ~= 0) attackPos = {x = attackPos.x + newx, y = attackPos.y + newy, z = attackPos.z} end doCombat(cid, combat, { pos = attackPos, type = 2 }) return true end Editado Fevereiro 23, 2015 10 anos por xWhiteWolf (veja o histórico de edições) 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 Fevereiro 23, 2015 10 anos :/ Boa parabéns Anderson, ficou bem maneira essa ideia, da um realce no rpg Atenciosamente, Bruno Minervino
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.