Como Eu Faço Para Quando Usar A Magia, Dar 20 Segundos De Exaust?

Pallyfox
em Lixeira Pública

Pallyfox

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 30/07/08Posts: 65

Eu uso:

Tibia 8.50,

TFS 0.3.5

 

Pessoal eu tenho uma magia chamada "magic" ela não é agressiva, a magia deve ter 20 seg. de exaust, mas quando eu coloco exaust pelo spells.xml fica com exaust em todas as magias, sendo 20 segundos de espera para atacar qualquer magia,

Então eu acho que deve ter algum jeito para colocar no próprio código de exaust da spell.

Mas esse exaust será apenas para aquela magia, ou seja, ao usar a magia, eu fico com exaust de 20 segundos somente para aquela magia (magic), podendo usar outra magia mesmo com exaust da magia "magic".

Eu quero:

Um script que quando usa a magia o player fica exausto por 20 segundos somente para aquela magia.

 

Exemplo:

EU uso magia

e depois de 1 segundo eu posso usar qualquer magia menos a magia que tem 20 segundos de exaust.

 

Por favor, quem puder ajudar eu fico muito grato.

Se você não entendeu escreva suas dúvidas ai!

SEI QUE É DIFICIL DE ENTENDER, SE PRECISO, COLOCAREI UM VIDEO EXPLICATIVO!

 

TAG DA MAGIA:

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_EFFECT, 31)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)

local speed = createConditionObject(CONDITION_HASTE)
setConditionParam(speed, CONDITION_PARAM_TICKS, 3000)
setConditionFormula(speed, 9.9, -999, 9.9, -999)
setCombatCondition(combat, speed)

function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end

/ Meus trabalhos


Metas
[X]1.....Post SERVO
[X]10...Posts CAMPONÊS
[X]25...Posts CAÇADOR
[X]50...Posts CAVALEIRO
[X]100..Posts BARONETE
[_]200..Posts BARÃO
[_]300..Posts VISCONDE
[_]400..Posts DUQUE
[_]600..Posts ARQUEDUQUE
[_]800..Posts ARISTOCRATA
[_]1000.Posts REGENTE
[_]1400.Posts SÁBIO
[_]1800.Posts SACERDOTE
[_]2500.Posts PRÍNCIPE
[_]3000.Posts Rei

canovas

~-~
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 15/07/09Posts: 5
Poste o script e a tag da magia, para que alguem possa te ajudar melhor :p

______________________________________________________________



Não somos loucos, apenas vivemos em um mundo onde ninguem é normal.

 

userbarj.png



aurorabannersmall.png

Pallyfox

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 30/07/08Posts: 65
Poste o script e a tag da magia, para que alguem possa te ajudar melhor :p

 

TAG DA MAGIA:

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_EFFECT, 31)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)

local speed = createConditionObject(CONDITION_HASTE)
setConditionParam(speed, CONDITION_PARAM_TICKS, 3000)
setConditionFormula(speed, 9.9, -999, 9.9, -999)
setCombatCondition(combat, speed)

function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end

 

Essa ai é uma magia de exemplo, por que na verdade quero colocar em uma outras magias, mas as outras são exclusiva do meu server... :/

 

Acho que qualquer scripter lua saberia...

/ Meus trabalhos


Metas
[X]1.....Post SERVO
[X]10...Posts CAMPONÊS
[X]25...Posts CAÇADOR
[X]50...Posts CAVALEIRO
[X]100..Posts BARONETE
[_]200..Posts BARÃO
[_]300..Posts VISCONDE
[_]400..Posts DUQUE
[_]600..Posts ARQUEDUQUE
[_]800..Posts ARISTOCRATA
[_]1000.Posts REGENTE
[_]1400.Posts SÁBIO
[_]1800.Posts SACERDOTE
[_]2500.Posts PRÍNCIPE
[_]3000.Posts Rei

kevinsz

A coruja do xtibia
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 21/07/09Posts: 41

se quer uma magia com exhaust ou uma action?

focost.jpg

Pallyfox

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 30/07/08Posts: 65

O que???

Leia atetaamente você vai descobrir! :smile_positivo:

/ Meus trabalhos


Metas
[X]1.....Post SERVO
[X]10...Posts CAMPONÊS
[X]25...Posts CAÇADOR
[X]50...Posts CAVALEIRO
[X]100..Posts BARONETE
[_]200..Posts BARÃO
[_]300..Posts VISCONDE
[_]400..Posts DUQUE
[_]600..Posts ARQUEDUQUE
[_]800..Posts ARISTOCRATA
[_]1000.Posts REGENTE
[_]1400.Posts SÁBIO
[_]1800.Posts SACERDOTE
[_]2500.Posts PRÍNCIPE
[_]3000.Posts Rei

kevinsz

A coruja do xtibia
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 21/07/09Posts: 41

Bom, pelo que entendi -> se você quer uma spell com exhaust, Acho que você vai ter que fazer um storage somente para aquela magia, certo? Mas isso é deve ser facil... Só que eu não sou scripter.. Quem puder ajudar pallyfox ai!

 

focost.jpg

Pallyfox

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 30/07/08Posts: 65
Pois é, Não deve ser tão dificil, mas você não sabe como criar um pra mim?
/ Meus trabalhos


Metas
[X]1.....Post SERVO
[X]10...Posts CAMPONÊS
[X]25...Posts CAÇADOR
[X]50...Posts CAVALEIRO
[X]100..Posts BARONETE
[_]200..Posts BARÃO
[_]300..Posts VISCONDE
[_]400..Posts DUQUE
[_]600..Posts ARQUEDUQUE
[_]800..Posts ARISTOCRATA
[_]1000.Posts REGENTE
[_]1400.Posts SÁBIO
[_]1800.Posts SACERDOTE
[_]2500.Posts PRÍNCIPE
[_]3000.Posts Rei

kevinsz

A coruja do xtibia
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 21/07/09Posts: 41

Não sei se vai dar:

 

Tenta:

local combat = createCombatObject()

setCombatParam(combat, COMBAT_PARAM_EFFECT, 31)

setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)

 

local speed = createConditionObject(CONDITION_HASTE)

setConditionParam(speed, CONDITION_PARAM_TICKS, 3000)

setConditionFormula(speed, 9.9, -999, 9.9, -999)

setCombatCondition(combat, speed)

 

function onCastSpell(cid, var)

if getPlayerExhaust(cid,storage,segundos) == -1 then

return doCombat(cid, combat, var)

else

doPlayerSendCancel(cid,"You are exhausted.")

end

end

 

 

Onde esta em negrito vc edita:

Storage: Qualquer numero para o storge.

segundos: o quanto de segundos vai ser de exhaust.

 

 

focost.jpg

Lordfire

TFS Maintainer
avatar
Lenda
Lenda

INFOS

Grupo: LendaRegistrado: 04/10/06Posts: 2605Gênero: MasculinoChar no Tibia: Knight Orion

Vai em data/spells/lib/spells.lua e põe isso no final:

 

function getPlayerExhaust(player,number,time)

 

now = os.time()

before = getPlayerStorageValue(player,number)

 

exhaust = os.difftime(now,before)

 

if before == -1 then

setPlayerStorageValue(player,number,now)

return -1

else

if exhaust >= time then

setPlayerStorageValue(player,number,now)

return -1

else

return 1

end

end

end

 

A função na spell é essa:

if getPlayerExhaust(cid,storage,tempo) == 1 then

 

 

e também dá uma olhada no post de baixo

rockstar96

Around the world
avatar
Barão
Barão

INFOS

Grupo: BarãoRegistrado: 01/07/09Posts: 216

Com o bagulho do Lordfire:

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_EFFECT, 31)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)

local speed = createConditionObject(CONDITION_HASTE)
setConditionParam(speed, CONDITION_PARAM_TICKS, 3000)
setConditionFormula(speed, 9.9, -999, 9.9, -999)
setCombatCondition(combat, speed)

function onCastSpell(cid, var)
if getPlayerExhaust(cid, 62033, 20000) <= 0 then
	return doCombat(cid, combat, var)
else
	return doPlayerSendCancel(cid, "You are exhausted.") and doSendMagicEffect(getThingPos(cid), 2)
end
end

Pallyfox

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 30/07/08Posts: 65

Deu tudo certo ma quero acrescentar em outras magia

E se a magia terminar assim:

 

function onCastSpell(cid, var)
local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2 }
addEvent(onCastSpell1, 000, parameters)
addEvent(onCastSpell2, 000, parameters)
return TRUE
end

 

Como que eu faço?

 

Outra coisa..

O exhausted funciona.

Mas ta tirando mana sem exhaust e com exhaust.

Não devia tirar mana..

 

ah

 

E alem disso Toda vez que fala a magia ele acrescenta + 20 segundos de exhaust..

se eu fala 2 veses a magia, eu fico com 40 seg de exhaust...

o que eu faço?

/ Meus trabalhos


Metas
[X]1.....Post SERVO
[X]10...Posts CAMPONÊS
[X]25...Posts CAÇADOR
[X]50...Posts CAVALEIRO
[X]100..Posts BARONETE
[_]200..Posts BARÃO
[_]300..Posts VISCONDE
[_]400..Posts DUQUE
[_]600..Posts ARQUEDUQUE
[_]800..Posts ARISTOCRATA
[_]1000.Posts REGENTE
[_]1400.Posts SÁBIO
[_]1800.Posts SACERDOTE
[_]2500.Posts PRÍNCIPE
[_]3000.Posts Rei

kevinsz

A coruja do xtibia
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 21/07/09Posts: 41
Deu tudo certo ma quero acrescentar em outras magia

E se a magia terminar assim:

 

function onCastSpell(cid, var)
local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2 }
addEvent(onCastSpell1, 000, parameters)
addEvent(onCastSpell2, 000, parameters)
return TRUE
end

 

Como que eu faço?

 

Outra coisa..

O exhausted funciona.

Mas ta tirando mana sem exhaust e com exhaust.

Não devia tirar mana..

 

ah

 

E alem disso Toda vez que fala a magia ele acrescenta + 20 segundos de exhaust..

se eu fala 2 veses a magia, eu fico com 40 seg de exhaust...

o que eu faço?

 

 

 

 

Pra isso não acontecer de tira mana mesmo com exhaust você coloca embaixo do "else" e acrescenta:

doPlayerAddMana(cid, aqui você poem o tanto de mana que a magia vai gastar)

 

O exhaust é em segundos então você coloca assim:

 

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_EFFECT, 31)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)

local speed = createConditionObject(CONDITION_HASTE)
setConditionParam(speed, CONDITION_PARAM_TICKS, 3000)
setConditionFormula(speed, 9.9, -999, 9.9, -999)
setCombatCondition(combat, speed)

function onCastSpell(cid, var)
if getPlayerExhaust(cid, 62033, 20) == -1 then
return doCombat(cid, combat, var)
else
return doPlayerSendCancel(cid, "You are exhausted.") and doSendMagicEffect(getThingPos(cid), 2)
end
end

 

O que vc faalo:

 

function onCastSpell(cid, var)

local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2 }

addEvent(onCastSpell1, 000, parameters)

addEvent(onCastSpell2, 000, parameters)

return TRUE

end

 

troca por

 

function onCastSpell(cid, var)

local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2 }

if getPlayerExhaust(cid, 62033, 20) == -1 then

addEvent(onCastSpell1, 000, parameters)

addEvent(onCastSpell2, 000, parameters)

return TRUE

else

return doPlayerSendCancel(cid, "You are exhaustedo.") and doSendMagicEffect(getThingPos(cid), 2)

end

end

 

Esperoo ter ajudado...

focost.jpg

Pallyfox

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 30/07/08Posts: 65

Nossa! Eu fiz tudo certo... Eu tava testando aqui faz tempo.. e eu entendi o que você quis dizer com

doPlayerAddMana, no meu caso se caso estar exhaust ele vai add mana.. Maiis tem uma coisa!

E se a magia for em porcento?

EXEMPLO:

<instant name="Magia" words="Magia" lvl="100" manapercent="40" prem="1" needlearn="0" script="magia.lua">

<vocation id="1"/>

<vocation id="2"/>

<vocation id="3"/>

<vocation id="4"/>

<vocation id="5"/>

<vocation id="6"/>

<vocation id="7"/>

<vocation id="8"/>

</instant>

 

Como que eu faço pra add mana em % ??????

/ Meus trabalhos


Metas
[X]1.....Post SERVO
[X]10...Posts CAMPONÊS
[X]25...Posts CAÇADOR
[X]50...Posts CAVALEIRO
[X]100..Posts BARONETE
[_]200..Posts BARÃO
[_]300..Posts VISCONDE
[_]400..Posts DUQUE
[_]600..Posts ARQUEDUQUE
[_]800..Posts ARISTOCRATA
[_]1000.Posts REGENTE
[_]1400.Posts SÁBIO
[_]1800.Posts SACERDOTE
[_]2500.Posts PRÍNCIPE
[_]3000.Posts Rei

kaique_sorcerer

Sonhador
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 19/07/07Posts: 71

o Do Lordfire

 

Deu certo aqui tenta denovo

ASSINATURA REMOVIDA POR DIVULGAÇÃO DE OUTRO FÓRUM.

Pallyfox

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 30/07/08Posts: 65
o Do Lordfire

 

Deu certo aqui tenta denovo

 

Tentar denovo?????????

Eu ja consegui.. Só falta colocar um código tipo:

doPlayerAddMana(cid,20%)

 

Mas isso não da certo... Gostariaa de saber se tem outro jeito..

/ Meus trabalhos


Metas
[X]1.....Post SERVO
[X]10...Posts CAMPONÊS
[X]25...Posts CAÇADOR
[X]50...Posts CAVALEIRO
[X]100..Posts BARONETE
[_]200..Posts BARÃO
[_]300..Posts VISCONDE
[_]400..Posts DUQUE
[_]600..Posts ARQUEDUQUE
[_]800..Posts ARISTOCRATA
[_]1000.Posts REGENTE
[_]1400.Posts SÁBIO
[_]1800.Posts SACERDOTE
[_]2500.Posts PRÍNCIPE
[_]3000.Posts Rei