Postado Maio 9, 2015 10 anos Oi pessoal, blz? Alguem poderia me ajudar a converter a parte do creaturescripts do dodge system para tfs 1.1? Ai está: local lvldodge = 48902 local percent = 0.5 function onStatsChange(cid, attacker, type, combat, value) if type == STATSCHANGE_HEALTHLOSS and isCreature(attacker) then if (getPlayerStorageValue(cid, lvldodge)*3) >= math.random (0,1000) then value = math.ceil(value*(percent)) doTargetCombatHealth(attacker, cid, combat, -value, -value, 255) doSendAnimatedText(getCreaturePos(cid), "DODGE", 6) return false end end return true end Dou rep+ para quem puder ajudar, obrigado!
Postado Maio 9, 2015 10 anos Tenta ai: local lvldodge = 48902 local percent = 0.5 function onHealthChange(creature, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType, origin) if isCreature(attacker) then if (creature:getStorage(lvldodge) * 3) >= math.random (0, 1000) then primaryDamage = math.ceil(value * percent) doTargetCombatHealth(attacker, cid, combat, -primaryDamage, -primaryDamage, 255) creature:say("DODGE", TALKTYPE_MONSTER_SAY) return false end end return true end
Postado Maio 10, 2015 10 anos Autor @fireelement, Eu já tinha chegado até essa parte,o problema está nessa linha: doTargetCombatHealth(attacker, cid, combat, -primaryDamage, -primaryDamage, 255) Ele não da erro mas buga o client Editado Maio 10, 2015 10 anos por fantomdruid (veja o histórico de edições)
Postado Maio 10, 2015 10 anos Solução Olha fantomdruid, acho que funcionou: local lvldodge = 48902 local percent = 0.5 function onHealthChange(creature, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType, origin) if not isPlayer(creature) then return false end if isInArray({ORIGIN_SPELL, ORIGIN_MELEE, ORIGIN_RANGED}, origin) and isCreature(attacker) then if (creature:getStorage(lvldodge) * 3) >= math.random (0, 1000) then primaryDamage = primaryDamage - math.ceil(primaryDamage * percent) secondaryDamage = secondaryDamage - math.ceil(secondaryDamage * percent) creature:say("DODGE!", TALKTYPE_MONSTER_SAY) creature:getPosition():sendMagicEffect(CONST_ME_BLOCKHIT) return primaryDamage, primaryType, secondaryDamage, secondaryType end end return primaryDamage, primaryType, secondaryDamage, secondaryType end Atenciosamente, Bruno Minervino
Postado Maio 10, 2015 10 anos Autor Olha fantomdruid, acho que funcionou: local lvldodge = 48902 local percent = 0.5 function onHealthChange(creature, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType, origin) if not isPlayer(creature) then return false end if isInArray({ORIGIN_SPELL, ORIGIN_MELEE, ORIGIN_RANGED}, origin) and isCreature(attacker) then if (creature:getStorage(lvldodge) * 3) >= math.random (0, 1000) then primaryDamage = primaryDamage - math.ceil(primaryDamage * percent) secondaryDamage = secondaryDamage - math.ceil(secondaryDamage * percent) creature:say("DODGE!", TALKTYPE_MONSTER_SAY) creature:getPosition():sendMagicEffect(CONST_ME_BLOCKHIT) return primaryDamage, primaryType, secondaryDamage, secondaryType end end return primaryDamage, primaryType, secondaryDamage, secondaryType end Vlw cara!!!!!! Funcionou perfeitamente *____*
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.