NA

[Duvida] Script De Magia

Por Nando3513, 22 de jul. de 2010 em Scripts

script
7
2.6k
Nando3513N
22 de julho de 2010 às 18:54

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.

VodkartV
22 de julho de 2010 às 20:01
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

Editado Julho 22 por Vodkart

Nando3513N
22 de julho de 2010 às 21:28

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

OneshotO
22 de julho de 2010 às 22:46

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

joaohdJ
23 de julho de 2010 às 13:33

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

OneshotO
23 de julho de 2010 às 14:21

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.

AlissowA
23 de julho de 2010 às 19:02

Movido para duvidas sanadas!