Olá, há muitos anos publiquei um script no tibiaking de uma spell onde acontecia uma chuva de flechas, agora em 2019 eu refiz vários dos scripts do meu antigo servidor e este foi um deles.
Basicamente eu simplifiquei o código (não tinha conhecimento suficiente para isso na época) e corrigi um dos bugs que existia, enfim segue o script:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_NONE)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -60, -1, -60, 5, 5, 4, 7)
function onTargetCombat(cid, target)
local posCid = getCreaturePosition(cid)
local posTarget = getCreaturePosition(target)
doSendDistanceShoot(posCid, posTarget, CONST_ANI_ONYXARROW)
end
setCombatCallback(combat, 4, "onTargetCombat")
local area = createCombatArea(AREA_CROSS6X6)
setCombatArea(combat, area)
function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end
xml:
<instant name="Chuva de Flechas" words="chuva de flechas" lvl="80" manapercent="25" prem="1" soul="0" aggressive="0" exhaustion="1000" selftarget="1" needlearn="0" event="script" value="especiais/mas shadow.lua">
<vocation id="2"/>
<vocation id="6"/>
</instant>
Vou publicar o mesmo gif de demonstração pois a funcionalidade segue praticamente a mesma:
https://giphy.com/gifs/r0DNAlUJKUxeo
Espero que tenham gostado e notado como um código pode ser bem mais simples do que parece..