Name: Rain of arrows
Version: 8.4x+
Server Tested: TFS
Author: Legend Link
Spell-based class archer ragnarok
Spends a certain amount of arrow and
As you level rises it increases the amount of shots
between 0 and 19 = 2 shots
between 20 and 49 = 3 shots
more than 50 = 3 normal shots and 1 shot stronger
Create a rain_arrow.lua inside atack folder with this:
Code:
local combat1 = createCombatObject()
setCombatFormula(combat1, COMBAT_FORMULA_SKILL, 0, 0, 0, 0)
local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)
setCombatParam(combat2, COMBAT_PARAM_DISTANCEEFFECT, 2)
setCombatFormula(combat2, COMBAT_FORMULA_SKILL, 0, -20, 0.8, 0)
local combat3 = createCombatObject()
setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat3, COMBAT_PARAM_EFFECT, 3)
setCombatParam(combat3, COMBAT_PARAM_DISTANCEEFFECT, 2)
setCombatFormula(combat3, COMBAT_FORMULA_SKILL, 0, -200, 0.8, 0)
local function onCastSpell1(parameters)
doCombat(parameters.cid, parameters.combat1, parameters.var)
end
local function onCastSpell2(parameters)
doCombat(parameters.cid, parameters.combat2, parameters.var)
end
local function onCastSpell3(parameters)
doCombat(parameters.cid, parameters.combat3, parameters.var)
end
function onCastSpell(cid, var)
local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2, combat3 = combat3}
if getPlayerItemCount(cid, [COLOR="Red"]2544[/COLOR]) < 3 then
doPlayerSendTextMessage(cid, 26, "[COLOR="Blue"]I need 3 arrows to cast spell[/COLOR]")
else
if getPlayerItemCount(cid, [COLOR="Red"]2544[/COLOR]) >= 3 then
if getPlayerLevel(cid) < 20 then
doPlayerRemoveItem(cid, [COLOR="Red"]2544[/COLOR], 3)
addEvent(onCastSpell2, 0, parameters)
addEvent(onCastSpell2, 100, parameters)
else
if getPlayerItemCount(cid, [COLOR="Red"]2544[/COLOR]) >= 4 then
if getPlayerLevel(cid) >= 50 then
doPlayerRemoveItem(cid, [COLOR="Red"]2544[/COLOR], 4)
addEvent(onCastSpell2, 0, parameters)
addEvent(onCastSpell2, 300, parameters)
addEvent(onCastSpell2, 600, parameters)
addEvent(onCastSpell3, 1500, parameters)
else
if getPlayerItemCount(cid, 2544) >= 3 then
if getPlayerLevel(cid) <= 49 then
doPlayerRemoveItem(cid, 2544, 3)
addEvent(onCastSpell2, 0, parameters)
addEvent(onCastSpell2, 100, parameters)
addEvent(onCastSpell2, 200, parameters)
end
end
end
end
end
end
end
return doCombat(cid, combat1, var)
end
Add on spells.xml:
Code:
<instant name="Rain Arrow" words="exori mas con" lvl="0" mana="0" prem="0" range="7" needtarget="1" blockwalls="1" exhaustion="1000" needlearn="0" event="script" value="[COLOR="DarkOrchid"]attack/rain_arrow.lua[/COLOR]">
<vocation name="paladin"/>
<vocation name="royal paladin"/>
</instant>
in RED - id of arrow
in BLUE - message will appear if the player does not have enough arrows
I didn't made this script..