Postado Junho 8, 2021 3 anos Ola, eu uso esse sistema Spoiler <?xml version="1.0" encoding="UTF-8"?> <mod name="Dodge System" version="0.1" author="Night Wolf" contact="" enabled="yes"> <event type="login" name="registerDodge" event="script"><![CDATA[ function onLogin(cid) registerCreatureEvent(cid,"dodge") return true end ]]></event> <event type="statschange" name="dodge" event="script"><![CDATA[ function onStatsChange(cid, attacker, type, combat, value) if (type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS) and isCreature(attacker) then local max = 40 local slotPos = {1,2,3,4,5,6,7,8,9} local percent = 0.1 local dodgePercent = 0 for i = 1, #slotPos do if getPlayerSlotItem(cid, slotPos[i]).uid > 1 then if getItemDodgePercent(getPlayerSlotItem(cid, slotPos[i]).uid) then dodgePercent = dodgePercent + getItemDodgePercent(getPlayerSlotItem(cid, slotPos[i]).uid) end end end if dodgePercent >= max then dodgePercent = max end if dodgePercent >= math.random (0,100) 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]]></event> </mod> Actions: Spoiler function isHandItem(uid) -- NW based on Mock uid = uid or 0 if isInArray({1,2,3,4,5,6}, getItemWeaponType(uid)) then return true end return false end function getItemDodgePercent(itemuid) return getItemAttribute(itemuid, "dodgePercent") or 0 end function setItemDodgePercent(uid, percent) doItemSetAttribute(uid, "description", "[Dodge: "..percent.."%]") doItemSetAttribute(uid, "dodgePercent", percent) end function onUse(cid, item, fromPosition, itemEx, toPosition) dodge = 0 local upgrade = { [1] = {min = 1, max = 5, chance = 100}, [2] = {min = 5, max = 10, chance = 80}, [3] = {min = 10, max = 20, chance = 60}, [4] = {min = 25, max = 35, chance = 40}, [5] = {min = 35, max = 50, chance = 30} } function isWearing(uid) -- NW based on Mock uid = uid or 0 if isInArray({uid}, getPlayerSlotItem(cid, 1).uid) or isInArray({uid}, -- HELMET -- getPlayerSlotItem(cid, 2).uid) or isInArray({uid}, -- Aol -- getPlayerSlotItem(cid, 4).uid) or isInArray({uid}, -- ARMOR -- getPlayerSlotItem(cid, 9).uid) or isInArray({uid}, -- RING -- getPlayerSlotItem(cid, 7).uid) or isInArray({uid}, -- LEGS -- getPlayerSlotItem(cid, 8).uid) then -- BOOTS -- return true end return false end if isHandItem(itemEx.uid) or isWearing(itemEx.uid) then local name = getItemName(itemEx.uid) local atual = math.floor(getItemDodgePercent(itemEx.uid)*10)/10 for i = 1, #upgrade do if string.find(tostring(name),"Dodge: " .. i .."") then dodge = i end end if dodge >= #upgrade then doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"Este item ja esta no maximo de Dodge possivel!") return true end if math.random(0,100) <= upgrade[dodge + 1].chance then doRemoveItem(item.uid, 1) doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"Sucesso ao usar sua Dodge Stone!") setItemDodgePercent(itemEx.uid, atual + (math.random(upgrade[dodge+1].min,upgrade[dodge+1].max))/10) doItemSetAttribute(itemEx.uid,'name', getItemNameById(itemEx.itemid)..' [Dodge: ' ..dodge+1 .."/5]") doSendMagicEffect(toPosition, math.random(28,30)) else doRemoveItem(item.uid, 1) doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"Sua Dodge Stone Falhou :(") doSendMagicEffect(toPosition, 4) end else doPlayerSendTextMessage(cid, 24,"You cant refine this item.") end return true end LIB function getItemDodgePercent(itemuid) return getItemAttribute(itemuid, "dodgePercent") end function doPlayerAddDodgeItem(cid, itemid, percent) local item = doPlayerAddItem(cid, itemid) doItemSetAttribute(item, "description", "[Dodge: "..percent.."%]") doItemSetAttribute(item, "dodgePercent", percent) end ERROR : Ao usar o script (action) quando sobe +1 ele salva, colocou +2 ele buga e não salva mais. Ai quando reloga/save aparece esse erro ai. Editado Junho 8, 2021 3 anos por tetheuscunha (veja o histórico de edições)
Postado Junho 8, 2021 3 anos A foto com o texto: Citar ERROR : Não aparece o erro, e explique um pouco mais sobre a sua dúvida ou o que você precisa. Editado Junho 8, 2021 3 anos por FlooTzZ (veja o histórico de edições)
Postado Junho 8, 2021 3 anos Autor Agora, FlooTzZ disse: A foto com o texto: Não aparece o erro, e explique um pouco mais sobre a sua dúvida ou o que você precisa. Foi mal, não tinha percebido que estava faltando a imagem. Os itens não são salvos, aparece esse erro ai assim que eu uso o script, quando ele sobre +1 ele salva, subiu pra +2 ele não salva
Postado Junho 8, 2021 3 anos 4 minutos atrás, tetheuscunha disse: Foi mal, não tinha percebido que estava faltando a imagem. Os itens não são salvos, aparece esse erro ai assim que eu uso o script, quando ele sobre +1 ele salva, subiu pra +2 ele não salva Bom, nunca vi nada relacionado a esse erro, mais tente fazer a instalação desse sistema no seu servidor. Sistema de dodge
Postado Junho 8, 2021 3 anos Autor 1 minuto atrás, FlooTzZ disse: Bom, nunca vi nada relacionado a esse erro, mais tente fazer a instalação desse sistema no seu servidor. Sistema de dodge Esse é diferente, desse jeito ai eu tenho um melhor! Queria esse que mencionei ai mesmo que é o do @xWhiteWolf tbm https://tibiaking.com/forums/topic/36712-dodge-system-por-item/
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.