Então, eu tava precisando que a paralyze tivesse uma chance de erro pra não ficar muito apelativo no server que estou criando, porque ter 5 ou mais druids dando paralyze todos ao mesmo tempo torna quase impossível sair vivo, mas enfim, ai vai o script:
local combat = createCombatObject()setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true)setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_RED)local condition = createConditionObject(CONDITION_PARALYZE)setConditionParam(condition, CONDITION_PARAM_TICKS, 20000)setConditionFormula(condition, -0.9, 0, -0.9, 0)setCombatCondition(combat, condition)function onCastSpell(cid, var) local conseguir = { {chance = 40} --Você altera a chance de acerto aqui. Quanto maior, mais fácil de acertar. } local chance = math.random(1,100) for i = 1, #conseguir, 1 do if(chance < conseguir[i].chance) then if(not doCombat(cid, combat, var)) then return false end doSendMagicEffect(getThingPosition(cid), CONST_ME_MAGIC_GREEN) else doPlayerSendCancel(cid, "You missed.") end end return trueend
Se seguir a lógica, da pra fazer isso em todos os tipos de magia. (Cura, Suporte, Ataque...)
Eu não sou scripter, fiz apenas uma gambiarra, talvez alguém consiga fazer algo mais limpo e/ou até aprimorar isso, desenvolvendo algo como um aprimoramento, onde o player faria certa ação pra melhorar a taxa de acerto de suas spells. (Espero que alguém faça isso, seria bastante interessante)
Por fim, espero que gostem e que seja útil pra alguém.