RI
action

Dodge System V2

Por RigBy, 09 de jun. de 2015 em Globalevents e Spells

otserv
tibia
script
6
9.6k
RigByR
09 de junho de 2015 às 17:21

Dodge System por item V2

http://prntscr.com/7f2vl9

 

Para quem não sabe eu ja tinha feito um Dodge System ano passado, na época que eu não sabia nada, embora eu ainda não saiba nada to melhorando :D, eu tava sem nada para fazer ai decidir refazer, o script não tem nada de novo só foi modificado e melhorado algumas coisa.

 

Para que não sabe dodge é um sistema que faz com que o player tenha uma certa porcentagem de esquiva de um ataque( por ele te esquivado ele não vai toma nenhum ataque e não apenas 50%)

 

Então vamos la:

 

Em creaturescript:

Dodge System.lua

function onStatsChange(cid, attacker, type, combat, value)
    local getStorage = getPlayerStorageValue(cid, 123455678)
    if (type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS) then
        local chance = math.random (0,100)
        if chance <= getStorage then
        doSendAnimatedText(getCreaturePos(cid), "MISS!", 214)
        doSendMagicEffect(getCreaturePosition(cid), 30)
        return false
        end
    end
return true
end
Creaturescript.xml
<event type="StatsChange" name="DodgeSystem" event="script" value="Dodge System.lua"/>
Login.lua antes do ultimo return true
registerCreatureEvent(cid, "DodgeSystem")
    if getPlayerStorageValue(cid, 123455678) == -1 then
        setPlayerStorageValue(cid, 123455678, 0) 
    end

em action:
dodgestone.lua
function onUse(cid, item, fromPosition, itemEx, toPosition)
 
local max = 50 -- limite de dodge
local storagedodge = 123455678 -- storage do dodge
 
    if getPlayerStorageValue(cid, storagedodge) >= max then
        return doPlayerSendTextMessage(cid,22,"Você ja chego no limite de Dodge.")
    else
        doPlayerSetStorageValue(cid, storagedodge, (getPlayerStorageValue(cid, storagedodge)) + 1)
        doPlayerSendTextMessage(cid,22, "DodgeSKILL:["..getPlayerStorageValue(cid, storagedodge).."/"..max.."].")
        doRemoveItem(item.uid, 1)
    end
return true
end
action.xml tag
<action itemid="Id do item" event="script" value="dodgestone.lua"/>

 

Se tiver algum bug ou dica de como melhorar pode comentar ai nos cometários

Ps. com base nesse da para fazer Critical System, Reflect System e da para usar como magia de esquiva, se precisar é so fala :D

xSONYxX
10 de junho de 2015 às 09:54

Não entendi, qual a diferença desse pro de antes?

----------------------------------------------------------------

 

Ah sim eu vi, o código tá menor, mas então, faz um array pra armazenar a configuração, fica melhor porque aí você não precisa ficar alterando toda hora tudo.. ^^

Editado Junho 10 por xSONYx

1 ano depois...
kinglekkeK
19 de dezembro de 2016 às 21:22

teria como fazer um esquema de dodge por lvl EXEMPLO: player lvl 100 tem 10% de dodge ai quando ele upar lvl 200 tera 20% assim ate chegar no max que é lvl 500

1 ano depois...
18 de março de 2018 às 01:12

esse funciona em tfs 1.2? e tu tem algum sistema de critical?

10 meses depois...
15 de janeiro de 2019 às 11:10

Tem como adaptar para Tfs 0.4?

2 anos depois...
blekdeivyB
13 de novembro de 2021 às 12:01

muito bom testei ficou perfeito