Postado Abril 20, 2018 7 anos Ola, gostaria de saber se é possível fazer uma magia pra vocation diferente porem vocation 1 bate 100 e a vocation 2 bate 200. eu tentei usando IF no script da magia mas não consegui, deu erro de boolean, eu não manjo muito. oque fiz pra testar minha ideia foi isso Spoiler if (getPlayerVocation(cid) >= 1) or (getPlayerVocation(cid) <= 4) then local combat = Combat() combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH) function onGetFormulaValues(player, level, maglevel) local min = (level / 5) + (maglevel * 1.4) + 8 local max = (level / 5) + (maglevel * 2.2) + 14 return -min, -max end combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") function onCastSpell(creature, variant) return combat:execute(creature, variant) end elseif (getPlayerVocation(cid) >= 5) or (getPlayerVocation(cid) <= 8) then local combat = Combat() combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH) function onGetFormulaValues(player, level, maglevel) local min = (level / 50) + (maglevel * 10.4) + 80 local max = (level / 50) + (maglevel * 20.2) + 140 return -min, -max end combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") function onCastSpell(creature, variant) return combat:execute(creature, variant) end end end fiz isso apenas pra teste e deu o seguinte erro Spoiler uso esse servidor como base : Spoiler https://tibiaking.com/forums/topic/84616-global-v30-otx-1099/?tab=comments#comment-470156 se alguém puder me ajudar nisso ai agradeco. edit: tentei assim e também não deu Spoiler voc = getPlayerVocation(cid) switch (voc) case "sorcerer": local combat = Combat() combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH) function onGetFormulaValues(player, level, maglevel) local min = (level / 5) + (maglevel * 1.4) + 8 local max = (level / 5) + (maglevel * 2.2) + 14 return -min, -max end combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") function onCastSpell(creature, variant) return combat:execute(creature, variant) end end case "master sorcerer": local combat = Combat() combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH) function onGetFormulaValues(player, level, maglevel) local min = (level / 50) + (maglevel * 10.4) + 80 local max = (level / 50) + (maglevel * 20.2) + 140 return -min, -max end combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") function onCastSpell(creature, variant) return combat:execute(creature, variant) end end end alguém me ajuda ai!!! Editado Abril 20, 2018 7 anos por koringa (veja o histórico de edições)
Postado Abril 20, 2018 7 anos @koringa *Editei a mensagem anterior, qualquer erro, fala. Spoiler local combat = Combat() combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH) local combat2 = Combat() combat2:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) combat2:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) combat2:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH) function onGetFormulaValues(player, level, maglevel) local min = (level / 5) + (maglevel * 1.4) + 8 local max = (level / 5) + (maglevel * 2.2) + 14 return -min, -max end combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") function onGetFormulaValues(player, level, maglevel) local min = (level / 50) + (maglevel * 10.4) + 80 local max = (level / 50) + (maglevel * 20.2) + 140 return -min, -max end combat2:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") function onCastSpell(creature, variant) local voc1 = XX -- muda pro id da vocation local voc2 = YY -- muda pro id da vocation if getPlayerVocation(cid) == voc1 then return combat:execute(creature, variant) elseif getPlayerVocation(cid) == voc2 then return combat2:execute(creature, variant) end end Editado Abril 20, 2018 7 anos por gabriel28 (veja o histórico de edições)
Postado Abril 20, 2018 7 anos function onCastSpell(creature, variant) if getPlayerVocation(cid) >= 1 or getPlayerVocation(cid) <= 4 then combat = Combat() combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH) function onGetFormulaValues(player, level, maglevel) local min = (level / 5) + (maglevel * 1.4) + 8 local max = (level / 5) + (maglevel * 2.2) + 14 return -min, -max end combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") elseif getPlayerVocation(cid) >= 5 or getPlayerVocation(cid) <= 8 then combat = Combat() combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH) function onGetFormulaValues(player, level, maglevel) local min = (level / 50) + (maglevel * 10.4) + 80 local max = (level / 50) + (maglevel * 20.2) + 140 return -min, -max end combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") end return combat:execute(creature, variant) end [*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*] DISCORD: vodkart#6090
Postado Abril 20, 2018 7 anos Autor @gabriel28 46 minutos atrás, gabriel28 disse: @koringa *Editei a mensagem anterior, qualquer erro, fala. Ocultar conteúdo local combat = Combat() combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH) local combat2 = Combat() combat2:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) combat2:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) combat2:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH) function onGetFormulaValues(player, level, maglevel) local min = (level / 5) + (maglevel * 1.4) + 8 local max = (level / 5) + (maglevel * 2.2) + 14 return -min, -max end combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") function onGetFormulaValues(player, level, maglevel) local min = (level / 50) + (maglevel * 10.4) + 80 local max = (level / 50) + (maglevel * 20.2) + 140 return -min, -max end combat2:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") function onCastSpell(creature, variant) local voc1 = XX -- muda pro id da vocation local voc2 = YY -- muda pro id da vocation if getPlayerVocation(cid) == voc1 then return combat:execute(creature, variant) elseif getPlayerVocation(cid) == voc2 then return combat2:execute(creature, variant) end end não deu erro algum mas também não aconteceu nada dentro do jogo, não saiu a magia. mas valeu por tenta ajuda. @Vodkart 44 minutos atrás, Vodkart disse: function onCastSpell(creature, variant) if getPlayerVocation(cid) >= 1 or getPlayerVocation(cid) <= 4 then combat = Combat() combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH) function onGetFormulaValues(player, level, maglevel) local min = (level / 5) + (maglevel * 1.4) + 8 local max = (level / 5) + (maglevel * 2.2) + 14 return -min, -max end combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") elseif getPlayerVocation(cid) >= 5 or getPlayerVocation(cid) <= 8 then combat = Combat() combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH) function onGetFormulaValues(player, level, maglevel) local min = (level / 50) + (maglevel * 10.4) + 80 local max = (level / 50) + (maglevel * 20.2) + 140 return -min, -max end combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") end return combat:execute(creature, variant) end deu o seguinte erro Spoiler valeu por tentar ajuda. Editado Abril 20, 2018 7 anos por koringa (veja o histórico de edições)
Postado Abril 20, 2018 7 anos Solução @koringa Spoiler local combat = Combat() combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH) function onGetFormulaValues(player, level, maglevel) local min = (level / 5) + (maglevel * 1.4) + 8 local max = (level / 5) + (maglevel * 2.2) + 14 return -min, -max end combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") local combat2 = Combat() combat2:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) combat2:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) combat2:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH) function onGetFormulaValues(player, level, maglevel) local min = (level / 50) + (maglevel * 10.4) + 80 local max = (level / 50) + (maglevel * 20.2) + 140 return -min, -max end combat2:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") function onCastSpell(cid, var) local voc1 = XX -- muda pro id da vocation local voc2 = YY -- muda pro id da vocation if getPlayerVocation(cid) == voc1 then return doCombat(cid, combat, var) elseif getPlayerVocation(cid) == voc2 then return doCombat(cid, combat2, var) end end
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.