Bom dia, boa tarde e boa noite caros scripters, bom, estou com um projeto muito louco de ot e para isso eu preciso de algumas spells tão loucas quanto... o problema é quando a spell resolve me deixar louco.
Então, meu server roda em TFS 3.7 e estou rodando em uma versão de client 11.10, até aí nada de errado. Meu problema se dá por conta das atribuições da spell... digamos que ela está "spamavel", sem cd, sem custo e causando um dano em área razoável.
XML:
<instant group="attack" spellid="5" name="Minor Kick" words="spin kick" lvl="9" mana="30" direction="1" exhaustion="10000" groupcooldown="1000" needlearn="0" script="attack/editados/minor kick.lua"> <vocation name="Tester"/></instant>
Como vocês podem ver, mana, exhaustion e groupcooldown estão setadas corretamente da mesma forma que qualquer outra spell. Spellid não entra em conflito com nenhuma outra spell, afinal o arquivo de spells do Tibia tá todo comentado. Mas tenho suspeitas que o motivo é por conta do arquivo "minor kick.lua"
"minor kick.lua":
local combat1 = createCombatObject()setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)setCombatParam(combat1, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)setCombatParam(combat1, COMBAT_PARAM_BLOCKARMOR, 1)setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -0.05, -10, -0.15, -15)local combat2 = createCombatObject()setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)setCombatParam(combat2, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)setCombatParam(combat2, COMBAT_PARAM_BLOCKARMOR, 1)setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -0.05, -10, -0.15, -15)local combat3 = createCombatObject()setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)setCombatParam(combat3, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)setCombatParam(combat3, COMBAT_PARAM_BLOCKARMOR, 1)setCombatFormula(combat3, COMBAT_FORMULA_LEVELMAGIC, -0.05, -10, -0.15, -15)local combat4 = createCombatObject()setCombatParam(combat4, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)setCombatParam(combat4, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)setCombatParam(combat4, COMBAT_PARAM_BLOCKARMOR, 1)setCombatFormula(combat4, COMBAT_FORMULA_LEVELMAGIC, -0.05, -10, -0.15, -15)local combat5 = createCombatObject()setCombatParam(combat5, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)setCombatParam(combat5, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)setCombatParam(combat5, COMBAT_PARAM_BLOCKARMOR, 1)setCombatFormula(combat5, COMBAT_FORMULA_LEVELMAGIC, -0.05, -10, -0.15, -15)local arr1 = {{0, 0, 0,},{0, 2, 0,},{0, 0, 1,},}local arr2 = {{0, 0, 0,},{0, 2, 1,},{0, 0, 0,},}local arr3 = {{0, 0, 0,},{0, 3, 0,},{0, 0, 0,},}local arr4 = {{0, 0, 0,},{1, 2, 0,},{0, 0, 0,},}local arr5 = {{0, 0, 0,},{0, 2, 0,},{1, 0, 0,},}local area1 = createCombatArea(arr1)local area2 = createCombatArea(arr2)local area3 = createCombatArea(arr3)local area4 = createCombatArea(arr4)local area5 = createCombatArea(arr5)setCombatArea(combat1, area1)setCombatArea(combat2, area2)setCombatArea(combat3, area3)setCombatArea(combat4, area4)setCombatArea(combat5, area5)local function onCastSpell1(parameters)doCombat(parameters.cid, parameters.combat1, parameters.var)endlocal function onCastSpell2(parameters)doCombat(parameters.cid, parameters.combat2, parameters.var)endlocal function onCastSpell3(parameters)doCombat(parameters.cid, parameters.combat3, parameters.var)endlocal function onCastSpell4(parameters)doCombat(parameters.cid, parameters.combat4, parameters.var)endlocal function onCastSpell5(parameters)doCombat(parameters.cid, parameters.combat5, parameters.var)endfunction onCastSpell(cid, var)local parameters = { cid = cid, var = var,combat1 = combat1,combat2 = combat2,combat3 = combat3,combat4 = combat4,combat5 = combat5 }addEvent(onCastSpell1, 100, parameters)addEvent(onCastSpell2, 200, parameters)addEvent(onCastSpell3, 300, parameters)addEvent(onCastSpell4, 400, parameters)addEvent(onCastSpell5, 500, parameters)end
Tipo, pelo que andei vendo nas minhas outras spells de área é que elas não declaram mais a área dentro do script ".lua" como era feito antigamente (ots 7.8), e não vi nenhuma spell compatível que usasse o mesmo sistema multiplas ações usando esse tipo de código...
ex: "berserk.lua" ou "exori"
local combat = Combat()combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)combat:setParameter(COMBAT_PARAM_BLOCKARMOR, 1)combat:setParameter(COMBAT_PARAM_USECHARGES, 1)combat:setArea(createCombatArea(AREA_SQUARE1X1))function onGetFormulaValues(player, skill, attack, factor) local skillTotal = skill * attack local levelTotal = player:getLevel() / 5 return -(((skillTotal * 0.07) + 7) + (levelTotal)), -(((skillTotal * 0.09) + 11) + (levelTotal))endcombat:setCallback(CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")function onCastSpell(creature, var) return combat:execute(creature, var)end
Existe a possibilidade de fazer uma spell nos mesmos padrões da "berserk.lua" usando sistema de várias ações como a "minor kick.lua"?