Bug Spell
Recently i upgrade my server to 8.54, but now i have a problem with two runes, this runes don´t use chargues, they are infinite.
Natural Prison.
In Spells.xml
<rune name="Natural prison" id="2280" charges="1" maglv="35" lvl="40" mana="0" aggressive="1" needtarget="0" allowfaruse="1" blockwalls="1" exhaustion="1" enabled="1" script="natural prison.lua"></rune>
natural prison.lua
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1499)
local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_RED)
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_LIFEDRAIN)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, 0, -15, 0, -15)
local arr = {
{1, 1, 1},
{1, 2, 1},
{1, 1, 1}
}
local area = createCombatArea(arr)
setCombatArea(combat, area)
local function onCastSpell2(parameters)
doCombat(parameters.cid, parameters.combat2, parameters.var)
return true
end
function onCastSpell(cid, var)
local parameters = { cid = cid, var = var, combat = combat, combat2 = combat2 }
addEvent(onCastSpell2, 2000, parameters)
addEvent(onCastSpell2, 4000, parameters)
addEvent(onCastSpell2, 6000, parameters)
addEvent(onCastSpell2, 8000, parameters)
addEvent(onCastSpell2, 10000, parameters)
doCombat(cid, combat, var)
return true
end
Bolt Shower
In Spells.xml
<rune name="Bolt Shower" id="2297" charges="3" maglv="10" mana="0" aggressive="1" needtarget="0" allowfaruse="1" blockwalls="1" exhaustion="1500" enabled="1" script="boltshower.lua"></rune>
boltshower.lua
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_BOLT)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 0.85, 0, 0.75, 50)
arr = {
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 1, 1, 3, 1, 1, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
}
local area = createCombatArea(arr)
setCombatArea(combat, area)
local function onCastSpell1(parameters)
doCombat(parameters.cid, parameters.combat, parameters.var)
end
local function onCastSpell2(parameters)
doCombat(parameters.cid, parameters.combat, parameters.var)
end
local function onCastSpell3(parameters)
doCombat(parameters.cid, parameters.combat, parameters.var)
end
local function onCastSpell4(parameters)
doCombat(parameters.cid, parameters.combat, parameters.var)
end
local function onCastSpell5(parameters)
doCombat(parameters.cid, parameters.combat, parameters.var)
end
function onCastSpell(cid, var)
mano1 = getPlayerSlotItem(cid,5)
mano2 = getPlayerSlotItem(cid,6)
if mano1.itemid == 2455 and getPlayerItemCount(cid,2543) > 4 or mano2.itemid == 2455 and getPlayerItemCount(cid,2543) > 4 or mano2.itemid == 5803 and getPlayerItemCount(cid,2543) > 4 or mano1.itemid == 5803 and getPlayerItemCount(cid,2543) > 4 then
if getPlayerVocation(cid) == 6 or getPlayerVocation(cid) == 7 or getPlayerVocation(cid) == 14 or getPlayerVocation(cid) == 15 or getPlayerVocation(cid) == 16 or getPlayerVocation(cid) == 17 or getPlayerVocation(cid) == 24 or getPlayerVocation(cid) == 25 then
local parameters = { cid = cid, var = var, combat = combat}
setPlayerStorageValue (cid, 5657, 5)
addEvent(exhaust,setExhausted(cid),cid)
addEvent(onCastSpell1, 100, parameters)
addEvent(onCastSpell2, 200, parameters)
addEvent(onCastSpell3, 500, parameters)
addEvent(onCastSpell4, 700, parameters)
addEvent(onCastSpell5, 900, parameters)
doPlayerRemoveItem(cid,2543,5)
elseif getPlayerVocation(cid) == 32 or getPlayerVocation(cid) == 33 then
doPlayerSendCancel(cid,"You are too concentrated.")
return LUA_ERROR
else
doPlayerSendCancel(cid,"You need to be an archer to use this rune.")
return LUA_ERROR
end
else
doPlayerSendCancel(cid,"You need a crossbow in your hand and 5 bolts")
doSendMagicEffect(getPlayerPosition(cid),cid,2)
return LUA_ERROR
end
end
Sorry if my English is bad, I´m Spanish
Thank you in advance
Recently i upgrade my server to 8.54, but now i have a problem with two runes, this runes don´t use chargues, they are infinite.
Natural Prison.
In Spells.xml
<rune name="Natural prison" id="2280" charges="1" maglv="35" lvl="40" mana="0" aggressive="1" needtarget="0" allowfaruse="1" blockwalls="1" exhaustion="1" enabled="1" script="natural prison.lua"></rune>
natural prison.lua
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1499)
local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_RED)
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_LIFEDRAIN)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, 0, -15, 0, -15)
local arr = {
{1, 1, 1},
{1, 2, 1},
{1, 1, 1}
}
local area = createCombatArea(arr)
setCombatArea(combat, area)
local function onCastSpell2(parameters)
doCombat(parameters.cid, parameters.combat2, parameters.var)
return true
end
function onCastSpell(cid, var)
local parameters = { cid = cid, var = var, combat = combat, combat2 = combat2 }
addEvent(onCastSpell2, 2000, parameters)
addEvent(onCastSpell2, 4000, parameters)
addEvent(onCastSpell2, 6000, parameters)
addEvent(onCastSpell2, 8000, parameters)
addEvent(onCastSpell2, 10000, parameters)
doCombat(cid, combat, var)
return true
end
Bolt Shower
In Spells.xml
<rune name="Bolt Shower" id="2297" charges="3" maglv="10" mana="0" aggressive="1" needtarget="0" allowfaruse="1" blockwalls="1" exhaustion="1500" enabled="1" script="boltshower.lua"></rune>
boltshower.lua
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_BOLT)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 0.85, 0, 0.75, 50)
arr = {
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 1, 1, 3, 1, 1, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
}
local area = createCombatArea(arr)
setCombatArea(combat, area)
local function onCastSpell1(parameters)
doCombat(parameters.cid, parameters.combat, parameters.var)
end
local function onCastSpell2(parameters)
doCombat(parameters.cid, parameters.combat, parameters.var)
end
local function onCastSpell3(parameters)
doCombat(parameters.cid, parameters.combat, parameters.var)
end
local function onCastSpell4(parameters)
doCombat(parameters.cid, parameters.combat, parameters.var)
end
local function onCastSpell5(parameters)
doCombat(parameters.cid, parameters.combat, parameters.var)
end
function onCastSpell(cid, var)
mano1 = getPlayerSlotItem(cid,5)
mano2 = getPlayerSlotItem(cid,6)
if mano1.itemid == 2455 and getPlayerItemCount(cid,2543) > 4 or mano2.itemid == 2455 and getPlayerItemCount(cid,2543) > 4 or mano2.itemid == 5803 and getPlayerItemCount(cid,2543) > 4 or mano1.itemid == 5803 and getPlayerItemCount(cid,2543) > 4 then
if getPlayerVocation(cid) == 6 or getPlayerVocation(cid) == 7 or getPlayerVocation(cid) == 14 or getPlayerVocation(cid) == 15 or getPlayerVocation(cid) == 16 or getPlayerVocation(cid) == 17 or getPlayerVocation(cid) == 24 or getPlayerVocation(cid) == 25 then
local parameters = { cid = cid, var = var, combat = combat}
setPlayerStorageValue (cid, 5657, 5)
addEvent(exhaust,setExhausted(cid),cid)
addEvent(onCastSpell1, 100, parameters)
addEvent(onCastSpell2, 200, parameters)
addEvent(onCastSpell3, 500, parameters)
addEvent(onCastSpell4, 700, parameters)
addEvent(onCastSpell5, 900, parameters)
doPlayerRemoveItem(cid,2543,5)
elseif getPlayerVocation(cid) == 32 or getPlayerVocation(cid) == 33 then
doPlayerSendCancel(cid,"You are too concentrated.")
return LUA_ERROR
else
doPlayerSendCancel(cid,"You need to be an archer to use this rune.")
return LUA_ERROR
end
else
doPlayerSendCancel(cid,"You need a crossbow in your hand and 5 bolts")
doSendMagicEffect(getPlayerPosition(cid),cid,2)
return LUA_ERROR
end
end
Sorry if my English is bad, I´m Spanish
Thank you in advance