• 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!

Spells Exhaust Problem!

johny5608

johny
Joined
Oct 5, 2008
Messages
120
Reaction score
0
Location
Wien
Hello otlanders,
O have got a problem on my ots when i add a new spell then it don'T have got Exhaust!
Why?
Exampe:
local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, 35)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 49)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -11.4, -1450, -10.5, -650)
local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, 35)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, 39)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -11.9, -1450, -10.9, -690)
arr1 = {
{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, 1, 0, 1, 1, 0, 0, 0},
{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
{0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
{0, 1, 1, 1, 1, 2, 1, 1, 1, 1, 0},
{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 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}
}
arr2 = {
{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, 1, 0, 1, 1, 0, 0, 0},
{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
{0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
{0, 1, 1, 1, 1, 2, 1, 1, 1, 1, 0},
{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 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}
}
local area1 = createCombatArea(arr1)
local area2 = createCombatArea(arr2)
setCombatArea(combat1, area1)
setCombatArea(combat2, area2)
local function onCastSpell1(parameters)
doCombat(parameters.cid, combat1, parameters.var)
end
local function onCastSpell2(parameters)
doCombat(parameters.cid, combat2, parameters.var)
end
function onCastSpell(cid, var)
local parameters = { cid = cid, var = var}
addEvent(onCastSpell1, 100, parameters)
addEvent(onCastSpell2, 400, parameters)
end

In spells.xml

<instant name="LovE" words="love" lvl="1000" mana="2000" prem="1" exhaustion="2000" direction="1" selftarget="1" needlearn="0" script="love.lua">
<vocation id="2"/>
<vocation id="4"/>
<vocation id="6"/>
<vocation id="7"/>
<vocation id="8"/>

Please Help!
 
easy:
in data/globalevents/script:
exhausted.lua:
exhaustion =
{
check = function (cid, storage)
if(getPlayerFlagValue(cid, PlayerFlag_HasNoExhaustion)) then
return FALSE
end

return getPlayerStorageValue(cid, storage) >= os.time()
end,

get = function (cid, storage)
if(getPlayerFlagValue(cid, PlayerFlag_HasNoExhaustion)) then
return FALSE
end

local exhaust = getPlayerStorageValue(cid, storage)
if(exhaust > 0) then
local left = exhaust - os.time()
if(left >= 0) then
return left
end
end

return FALSE
end,

set = function (cid, storage, time)
setPlayerStorageValue(cid, storage, os.time() + time)
end,

make = function (cid, storage, time)
local exhaust = exhaustion.get(cid, storage)
if(not exhaust) then
exhaustion.set(cid, storage, time)
return TRUE
end

return FALSE
end
}
glovalevents.xml
<globalevent name="exaustion" type="start" event="script" value="exhausted.lua"/>

and change your spell:

local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, 35)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 49)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -11.4, -1450, -10.5, -650)
local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, 35)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, 39)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -11.9, -1450, -10.9, -690)
arr1 = {
{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, 1, 0, 1, 1, 0, 0, 0},
{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
{0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
{0, 1, 1, 1, 1, 2, 1, 1, 1, 1, 0},
{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 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}
}
arr2 = {
{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, 1, 0, 1, 1, 0, 0, 0},
{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
{0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
{0, 1, 1, 1, 1, 2, 1, 1, 1, 1, 0},
{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 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}
}
local area1 = createCombatArea(arr1)
local area2 = createCombatArea(arr2)
setCombatArea(combat1, area1)
setCombatArea(combat2, area2)
local function onCastSpell1(parameters)
doCombat(parameters.cid, combat1, parameters.var)
end
local function onCastSpell2(parameters)
doCombat(parameters.cid, combat2, parameters.var)
end
function onCastSpell(cid, var)
if exhaustion.check(cid, storage) == TRUE then
doPlayerSendCancel(cid, "You are exhausted["..exhaustion.get(cid, storage).."].")
return TRUE
else
exhaustion.set(cid, storage, 3)
end

local parameters = { cid = cid, var = var}
addEvent(onCastSpell1, 100, parameters)
addEvent(onCastSpell2, 400, parameters)
end

you can change the number 3, if you want more exhausted change it for 60, of 50 i dont know as you like =)
 
agomez: otserv, tfs spells has had for years own exhaustion config, at xml lines
johny: just do what zakius said, add 'return true' before last 'end' of script
 
Back
Top