local config =
{
exhaust = 10, -- tempo sem segundos que ficara em exaust
storage = 13896,
manapercent = 75, -- mana em porcentagem que ira retirar
}
local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 52)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -5.5, -32, -2.9, -400)
local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, 52)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -5.5, -32, -2.9, -400)
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, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 2, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0},
}
arr2 = {
{0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 3, 0, 0, 0},
}
local area1 = createCombatArea(arr1)
local area2 = createCombatArea(arr2)
setCombatArea(combat1, area1)
setCombatArea(combat2, area2)
local function spell(parameters)
doCombat(parameters.cid, parameters.combat2, parameters.var)
end
function onCastSpell(cid, var)
if (getPlayerStorageValue(cid, config.storage) <= os.time()) then
if getPlayerMana(cid) >= ((config.manapercent/100)*getPlayerMana(cid)) then
doPlayerAddMana(cid, -((config.manapercent/100)*getPlayerMana(cid)))
setPlayerStorageValue(cid, config.storage, os.time()+config.exhaust)
local parameters = { cid = cid, var = var, combat2 = combat2 }
addEvent(spell, 500, parameters)
return doCombat(cid, combat1, var)
else
doPlayerSendCancel(cid, "você nao tem mana o suficiente.")
end
else
doPlayerSendCancel(cid, "Você precisa aguardar "..config.exhaust.." segundos para acumular o espírito.")
end
return TRUE
end
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

Editado Julho 22 por Vodkart
Vodkart era isso mesmo que eu precisava mais tem uma coisa ali. eu nao sei se nao explikei certo.
Mas ali o player pode ter 5000 de mana se ele tiver 3000 sai mesmo assim eu keria q sempre gastace 75% da mana full q ele tem e nao menos q isso
intendes?
Obrigado
Só tinha um errinho ^^
local config =
{
exhaust = 10, -- tempo sem segundos que ficara em exaust
storage = 13896,
manapercent = 75, -- mana em porcentagem que ira retirar
}
local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 52)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -5.5, -32, -2.9, -400)
local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, 52)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -5.5, -32, -2.9, -400)
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, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 2, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0},
}
arr2 = {
{0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 3, 0, 0, 0},
}
local area1 = createCombatArea(arr1)
local area2 = createCombatArea(arr2)
setCombatArea(combat1, area1)
setCombatArea(combat2, area2)
local function spell(parameters)
doCombat(parameters.cid, parameters.combat2, parameters.var)
end
function onCastSpell(cid, var)
if (getPlayerStorageValue(cid, config.storage) <= os.time()) then
if getPlayerMana(cid) >= ((config.manapercent/100)*getCreatureMaxMana(cid)) then
doPlayerAddMana(cid, -((config.manapercent/100)*getCreatureMaxMana(cid)))
setPlayerStorageValue(cid, config.storage, os.time()+config.exhaust)
local parameters = { cid = cid, var = var, combat2 = combat2 }
addEvent(spell, 500, parameters)
return doCombat(cid, combat1, var)
else
doPlayerSendCancel(cid, "você nao tem mana o suficiente.")
end
else
doPlayerSendCancel(cid, "Você precisa aguardar "..config.exhaust.." segundos para acumular o espírito.")
end
return TRUE
end
info
Grupo: Visconde
Registrado: 03/02/09
Posts: 361
Reputação: +200
Char no Tibia: Fearless Man

Muito mais fácil especificar na tag xml o percentual de mana a ser retirado que especificar no script
Simplesmente adicionando isto à tag de sua spell:
manapercent="75"
flw
Eu já sabia disso, apocarai. Não sou burro ^^,
Eu falei sobre isso para ele no msn e ele não queria assim, então tudo bem, não?
Tópico Reportado pois dúvida já foi sanada.







info
Grupo: Campones
Registrado: 16/06/08
Posts: 18
Reputação: +2
Po galera é o seguinte eu tenho umas magias no meu TFS 8.4 com o estilo de script que vo por abaixo.
No caso as vez os player morrem logo apos soltar a magia dai ela buga nao solta mais dai fica aparecendo so a mensagem "Você precisa aguardar 10 segundos para acumular o espírito." Paraa mim arrumar eu tenho q muda o storage do script vo postar abaixo.
local config =
{
seconds = 10,
storage = 47112120,
msg = "Você precisa aguardar 10 segundos para acumular o espírito.",
mana = 2400,
semMana = "Você não têm mana suficiente."
}
local function useAgain(cid)
setPlayerStorageValue(cid, config.storage, 2)
return TRUE
end
local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 52)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -5.5, -32, -2.9, -400)
local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, 52)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -5.5, -32, -2.9, -400)
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, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 2, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0},
}
arr2 = {
{0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 3, 0, 0, 0},
}
local area1 = createCombatArea(arr1)
local area2 = createCombatArea(arr2)
setCombatArea(combat1, area1)
setCombatArea(combat2, area2)
local function spell(parameters)
doCombat(parameters.cid, parameters.combat2, parameters.var)
end
function onCastSpell(cid, var)
if getPlayerStorageValue(cid, config.storage) == 1 then
doPlayerSendCancel(cid, config.msg)
return TRUE
end
if getPlayerStorageValue(cid, config.storage) ~= 1 then
if getPlayerMana(cid) >= config.mana then
doPlayerAddMana(cid, -config.mana)
setPlayerStorageValue(cid, config.storage, 1)
addEvent(useAgain, config.seconds*1000, cid)
local parameters = { cid = cid, var = var, combat2 = combat2 }
addEvent(spell, 500, parameters)
return doCombat(cid, combat1, var)
else
doPlayerSendCancel(cid, config.semMana)
end
end
return TRUE
end
E EU TERIA MAIS UMA DÚVIDA, EU QUERIA ACRESCENTAR O SEGUINTE PRA QUE QUANDO EU SOLTACE ESSAS MAGIA USACE NO CASO 75% DA MANA PQ ELA FUNCIONA COMO MAGIA DE COMBO COMO AS STAGES SÃO MEIA ALTA SOBRA MTA MANA, DAI ASSIM FICARIA EQUILIBRADO.
ESPERO QUE ME AJUDEM.