• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

cooldown is spell

elo1989

New Member
Joined
Jun 30, 2010
Messages
56
Reaction score
2
hello I have some problem with spell:

PHP:
--Created with ARN--
local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 6)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -6.2, 0, -9.5, 0)

local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_DISTANCEEFFECT, 6)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -6.2, 0, -9.6, 0)

local combat3 = createCombatObject()
setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat3, COMBAT_PARAM_DISTANCEEFFECT, 6)
setCombatFormula(combat3, COMBAT_FORMULA_LEVELMAGIC, -6.2, 0, -9.6, 0)

local combat4 = createCombatObject()
setCombatParam(combat4, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat4, COMBAT_PARAM_DISTANCEEFFECT, 6)
setCombatFormula(combat4, COMBAT_FORMULA_LEVELMAGIC, -6.2, 0, -9.6, 0)

local combat5 = createCombatObject()
setCombatParam(combat5, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat5, COMBAT_PARAM_DISTANCEEFFECT, 6)
setCombatFormula(combat5, COMBAT_FORMULA_LEVELMAGIC, -6.2, 0, -9.6, 0)

local combat6 = createCombatObject()
setCombatParam(combat6, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat6, COMBAT_PARAM_EFFECT, 29)
setCombatFormula(combat6, COMBAT_FORMULA_LEVELMAGIC, -6.2, 0, -9.6, 0)

arr1 = {
{0, 0, 0},
{0, 0, 0},
{0, 3, 0},
{0, 0, 0},
{0, 0, 0},
}

arr2 = {
{0, 0, 0},
{0, 0, 0},
{0, 3, 0},
{0, 0, 0},
{0, 0, 0},
}

arr3 = {
{0, 0, 0},
{0, 0, 0},
{0, 3, 0},
{0, 0, 0},
{0, 0, 0},
}

arr4 = {
{0, 0, 0},
{0, 0, 0},
{0, 3, 0},
{0, 0, 0},
{0, 0, 0},
}

arr5 = {
{0, 0, 0},
{0, 0, 0},
{0, 3, 0},
{0, 0, 0},
{0, 0, 0},
}

arr6 = {
{0, 0, 0},
{1, 1, 1},
{1, 3, 1},
{1, 1, 1},
{0, 0, 0},
}

local area1 = createCombatArea(arr1)
local area2 = createCombatArea(arr2)
local area3 = createCombatArea(arr3)
local area4 = createCombatArea(arr4)
local area5 = createCombatArea(arr5)
local area6 = createCombatArea(arr6)
setCombatArea(combat1, area1)
setCombatArea(combat2, area2)
setCombatArea(combat3, area3)
setCombatArea(combat4, area4)
setCombatArea(combat5, area5)
setCombatArea(combat6, area6)

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

local function onCastSpell4(parameters)
doCombat(parameters.cid, parameters.combat4, parameters.var)
end

local function onCastSpell5(parameters)
doCombat(parameters.cid, parameters.combat5, parameters.var)
end

local function onCastSpell6(parameters)
doCombat(parameters.cid, parameters.combat6, parameters.var)
end

function onCastSpell(cid, var)
local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2, combat3 = combat3, combat4 = combat4, combat5 = combat5, combat6 = combat6}

addEvent(onCastSpell1, 0, parameters)
addEvent(onCastSpell2, 300, parameters)
addEvent(onCastSpell3, 600, parameters)
addEvent(onCastSpell4, 900, parameters)
addEvent(onCastSpell5, 1200, parameters)
addEvent(onCastSpell6, 1500, parameters)
return true

end

This is my code spell but I have second function (cooldown) and if I connect this two functin it spell not function.
PHP:
function onCastSpell(cid, var)

if isExhausted(cid, "licht regen") == FALSE then
return doCombat(cid, combat, var), setCooldown(cid, "licht regen", 40)
end

return FALSE, doPlayerSendCancel(cid, "You are tired.")
end

and I cant connect this two function in one. Please help me.
 
Must be a custom added Lua made function then.
You can also use exhaustion.check/get/set.

Under function onCastSpell
Code:
if exhaustion.check(cid, 92001) then
    doPlayerSendCancel(cid, "You have to wait "..exhaustion.get(cid, 92001).." seconds before you can use the spell again.")
    return false
end
Above addEvent
Code:
exhaustion.set(cid, 92001, 40)
 
Last edited:
Mate look this code I have in lib/050-funcion.lua and another spells is working.

lib/050-function.lua:
PHP:
function getCooldown(cid, spellname)

local storage = tostring(getPlayerStorageValue(cid, 40001))
local spellname = '"' .. spellname .. '"'

return string.find(storage, spellname) and tonumber(string.match(storage, "%d+", string.find(storage, spellname) + #spellname)) - os.time() or 0
end

function setCooldown(cid, spellname, seconds)

local storage = getPlayerStorageValue(cid, 40001) == -1 and "" or tostring(getPlayerStorageValue(cid, 40001))
local spellname = '"' .. spellname .. '"'

if string.find(storage, spellname) then
local gsub = string.gsub(storage, string.match(storage, "%d+", string.find(storage, spellname) + #spellname), tostring(os.time() + seconds))
setPlayerStorageValue(cid, 40001, gsub)
else
setPlayerStorageValue(cid, 40001, storage .. spellname .. " " .. tostring(seconds + os.time()) .. " ")
end

end

function isExhausted(cid, spellname)

return getCooldown(cid, spellname) > 0
end
 
What I posted basicly works the same way, it is added by default to TFS 0.3/0.4 servers.

If you want to use the functions you posted you can do
Code:
if isExhausted(cid, "licht regen") then
     doPlayerSendCancel(cid, "You are tired.")
     return false
end

setCooldown(cid, "licht regen", 40)
 
I have a problem:
PHP:
[10/11/2014 14:48:31] [Error - LuaScriptInterface::loadFile] data/spells/scripts/attack/ishida/Licht Regen.lua:128: 'end' expected (to close 'function' at line 117) near 'if'
[10/11/2014 14:48:31] [Warning - Event::loadScript] Cannot load script (data/spells/scripts/attack/ishida/Licht Regen.lua)
[10/11/2014 14:48:31] data/spells/scripts/attack/ishida/Licht Regen.lua:128: 'end' expected (to close 'function' at line 117) near 'if'
 
take:

PHP:
--Created with ARN--
local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 6)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -6.2, 0, -9.5, 0)

local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_DISTANCEEFFECT, 6)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -6.2, 0, -9.6, 0)

local combat3 = createCombatObject()
setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat3, COMBAT_PARAM_DISTANCEEFFECT, 6)
setCombatFormula(combat3, COMBAT_FORMULA_LEVELMAGIC, -6.2, 0, -9.6, 0)

local combat4 = createCombatObject()
setCombatParam(combat4, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat4, COMBAT_PARAM_DISTANCEEFFECT, 6)
setCombatFormula(combat4, COMBAT_FORMULA_LEVELMAGIC, -6.2, 0, -9.6, 0)

local combat5 = createCombatObject()
setCombatParam(combat5, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat5, COMBAT_PARAM_DISTANCEEFFECT, 6)
setCombatFormula(combat5, COMBAT_FORMULA_LEVELMAGIC, -6.2, 0, -9.6, 0)

local combat6 = createCombatObject()
setCombatParam(combat6, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat6, COMBAT_PARAM_EFFECT, 29)
setCombatFormula(combat6, COMBAT_FORMULA_LEVELMAGIC, -6.2, 0, -9.6, 0)

arr1 = {
{0, 0, 0},
{0, 0, 0},
{0, 3, 0},
{0, 0, 0},
{0, 0, 0},
}

arr2 = {
{0, 0, 0},
{0, 0, 0},
{0, 3, 0},
{0, 0, 0},
{0, 0, 0},
}

arr3 = {
{0, 0, 0},
{0, 0, 0},
{0, 3, 0},
{0, 0, 0},
{0, 0, 0},
}

arr4 = {
{0, 0, 0},
{0, 0, 0},
{0, 3, 0},
{0, 0, 0},
{0, 0, 0},
}

arr5 = {
{0, 0, 0},
{0, 0, 0},
{0, 3, 0},
{0, 0, 0},
{0, 0, 0},
}

arr6 = {
{0, 0, 0},
{1, 1, 1},
{1, 3, 1},
{1, 1, 1},
{0, 0, 0},
}

local area1 = createCombatArea(arr1)
local area2 = createCombatArea(arr2)
local area3 = createCombatArea(arr3)
local area4 = createCombatArea(arr4)
local area5 = createCombatArea(arr5)
local area6 = createCombatArea(arr6)
setCombatArea(combat1, area1)
setCombatArea(combat2, area2)
setCombatArea(combat3, area3)
setCombatArea(combat4, area4)
setCombatArea(combat5, area5)
setCombatArea(combat6, area6)

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

local function onCastSpell4(parameters)
doCombat(parameters.cid, parameters.combat4, parameters.var)
end

local function onCastSpell5(parameters)
doCombat(parameters.cid, parameters.combat5, parameters.var)
end

local function onCastSpell6(parameters)
doCombat(parameters.cid, parameters.combat6, parameters.var)
end

function onCastSpell(cid, var)
local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2, combat3 = combat3, combat4 = combat4, combat5 = combat5, combat6 = combat6}

addEvent(onCastSpell1, 0, parameters)
addEvent(onCastSpell2, 300, parameters)
addEvent(onCastSpell3, 600, parameters)
addEvent(onCastSpell4, 900, parameters)
addEvent(onCastSpell5, 1200, parameters)
addEvent(onCastSpell6, 1500, parameters)
return true

if isExhausted(cid, "licht regen") then
     doPlayerSendCancel(cid, "You are tired.")
     return false
end

setCooldown(cid, "licht regen", 40)
end
 
Back
Top