O intuito é conseguir deixar o exhaust em média de uns 3 a 5 segundos, porém mesmo alterando no spells.xml não muda nada.
Script no Spell.xml:
Citar<instant name="Water Bloodcontrol" words="w-blood" lvl="40" mana="0" needtarget="1" prem="0" range="6" exhaustion="3000" needlearn="0" script="dobras/AGUA/w-bloodcontrol.lua">
Script da Magia:
Citarlocal tempo = 2.0 -- em segundos
local function push(cid, target)local direction = getCreatureLookDirection(cid)
local x = (direction == 1 and 1 or (direction == 3 and -1 or 0))
local y = (direction == 0 and -1 or (direction == 2 and 1 or 0))
local position = getCreaturePosition(target)
position.x = position.x + x
position.y = position.y + y
if doTileQueryAdd(target, position) == RETURNVALUE_NOERROR then
doTeleportThing(target, position, true)
end
end
local spell = {}
spell.config = {
[15] = {
damageType = COMBAT_PHYSICALDAMAGE,
areaEffect = 13,
area = {
{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, 3, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0}
}
},
[14] = {
damageType = COMBAT_PHYSICALDAMAGE,
areaEffect = 13,
area = {
{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, 3, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0}
}
},
[13] = {
damageType = COMBAT_PHYSICALDAMAGE,
areaEffect = 13,
area = {
{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, 3, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0}
}
},
[12] = {
damageType = COMBAT_PHYSICALDAMAGE,
areaEffect = 13,
area = {
{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, 3, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0}
}
},
[11] = {
damageType = COMBAT_PHYSICALDAMAGE,
areaEffect = 13,
area = {
{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, 3, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0}
}
},
[10] = {
damageType = COMBAT_PHYSICALDAMAGE,
areaEffect = 13,
area = {
{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, 3, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0}
}
},
[9] = {
damageType = COMBAT_PHYSICALDAMAGE,
areaEffect = 13,
area = {
{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, 3, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0}
}
},
[8] = {
damageType = COMBAT_PHYSICALDAMAGE,
areaEffect = 13,
area = {
{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, 3, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0}
}
},
[7] = {
damageType = COMBAT_PHYSICALDAMAGE,
areaEffect = 13,
area = {
{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, 3, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0}
}
},
[6] = {
damageType = COMBAT_PHYSICALDAMAGE,
areaEffect = 13,
area = {
{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, 3, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0}
}
},
[5] = {
damageType = COMBAT_PHYSICALDAMAGE,
areaEffect = 13,
area = {
{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, 3, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0}
}
},
[4] = {
damageType = COMBAT_PHYSICALDAMAGE,
areaEffect = 13,
area = {
{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, 3, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0}
}
},
[3] = {
damageType = COMBAT_PHYSICALDAMAGE,
areaEffect = 13,
area = {
{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, 3, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0}
}
},
[2] = {
damageType = COMBAT_PHYSICALDAMAGE,
areaEffect = 13,
area = {
{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, 3, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0}
}
},
[1] = {
damageType = COMBAT_PHYSICALDAMAGE,
areaEffect = 13,
area = {
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 3, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0}
}
}
}
spell.combats = {}
local exhaustion = {}
for _, config in ipairs(spell.config) do
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, config.damageType)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 53)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -2.5, -38, 0, 0)
function onTargetCreature(cid, target)
addEvent(push, 100, cid, target)
end
setCombatCallback(combat, CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature")
setCombatArea(combat, createCombatArea(config.area))
table.insert(spell.combats, combat)
end
function onCastSpell(cid, var)
if not isCreature(cid) then
return true
end
local guid = getPlayerGUID(cid)
if exhaustion[guid] and exhaustion[guid] - os.clock() > 0 then
return not doPlayerSendCancel(cid, "You are still exhausted from this spell.")
end
exhaustion[guid] = os.clock() + tempo
doSendAnimatedText(getThingPos(cid), "Blood", 35)
for n = 1, #spell.combats do
addEvent(doCombat, (n * 400) - 400, cid, spell.combats[n], var)
end
return true
end
RESOLVIDO POR CONTRA PRÓPRIA