Ir para conteúdo

(Resolvido)Exhaust de magia UE interferindo no exhaust de runas

Featured Replies

Postado
11 horas atrás, fefuxd disse:

como faço isso? sou meio noob em código..

 

esse é o cod da magia:

 

  Ocultar conteúdo

 

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_BIGCLOUDS)
setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 8, 8, 10, 12)

local area = createCombatArea(AREA_CROSS6X6)
setCombatArea(combat, area)

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

 

 

 

  Ocultar conteúdo

<instant name="Rage of the Skies" words="exevo gran mas vis" lvl="55" mana="650" selftarget="1" prem="1" exhaustion="10000" needlearn="0" event="script" value="attack/rage of the skies.lua">
        <vocation id="1"/>
        <vocation id="5"/>
    </instant>

 

Opa, não tinha visto que respondeu, lembra de citar a minha resposta, ai sou avisado que você respondeu aqui no post.

 

O spells.lua fica assim:

<instant name="Rage of the Skies" words="exevo gran mas vis" lvl="55" mana="650" selftarget="1" prem="1" exhaustion="0" needlearn="0" event="script" value="attack/rage of the skies.lua">
        <vocation id="1"/>
        <vocation id="5"/>
</instant>

O Rage of the skies.lua fica assim:

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_BIGCLOUDS)
setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 8, 8, 10, 12)
local area = createCombatArea(AREA_CROSS6X6)
setCombatArea(combat, area)
function onCastSpell(cid, var)
	if getPlayerStorageValue(cid, 3200) <= 0 then
		setPlayerStorageValue(cid, 3200, os.time()+10000)  
		return doCombat(cid, combat, var)
	else
		doPlayerSendCancel(cid, "You are exhausted.")
	end
	return TRUE
end

 

Agora vou explicar o que mudei pra que você possa fazer nas outras magias que quiser e adaptá-las.

A única parte que mudei foi a parte do onCastSpell.

Você adiciona "if getPlayerStorageValue(cid, 3200) <= 0 then" para checar se o storage 3200 esta igual ou menor a 0.

Embaixo você adiciona "setPlayerStorageValue(cid, 3200, os.time()+10000)" que caso o storage acima esteja igual ou menor a 0 ele adiciona 10s de exhaust.

Então o return doCombat (que é o que faz a magia sair, já estava no script)

O else serve como "se não" como uma condição contraria ao storage 3200 ser maior que 0 (faz menos de 10 segundos que o player soltou a magia)

Então vem um doPlayerSendCancel que vai falar que o player esta em exhausted caso tenha soltado a magia a menos de 10 segundos.

o end pra fechar aquele primeiro if (getPlayerStorageValue).

E o return true que não sei se é necessário.

 

Então, espero que tenha entendido o que fiz, assim você tem liberdade para fazer como quiser com as outras spell.

Caso queira que o exevo gran mas vis só exhauste com o mas flam, faça essa alteração no mas vis e mas flam, usando o storage 3200 nos dois. (Mesmo storage, mesmo exhaust)

Se você quiser que por exemplo, dê pra soltar exori vis, exevo gran mas vis e sd ao mesmo tempo, use o storage 3200 no mas vis, o 3201 no exori vis e a sd pode manter o exhaust do spells.xml

asdukeeh.jpg

  • Respostas 19
  • Visualizações 2.5k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Opa, não tinha visto que respondeu, lembra de citar a minha resposta, ai sou avisado que você respondeu aqui no post.   O spells.lua fica assim: <instant name="Rage of the Skies" word

  • local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_BIGCLOUDS) setAttackFormula(combat, COMBAT_FORMU

  • sim

Postado
  • Autor
Em 08/02/2017 ás 10:26, DukeeH disse:

Opa, não tinha visto que respondeu, lembra de citar a minha resposta, ai sou avisado que você respondeu aqui no post.

 

O spells.lua fica assim:


<instant name="Rage of the Skies" words="exevo gran mas vis" lvl="55" mana="650" selftarget="1" prem="1" exhaustion="0" needlearn="0" event="script" value="attack/rage of the skies.lua">
        <vocation id="1"/>
        <vocation id="5"/>
</instant>

O Rage of the skies.lua fica assim:


local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_BIGCLOUDS)
setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 8, 8, 10, 12)
local area = createCombatArea(AREA_CROSS6X6)
setCombatArea(combat, area)
function onCastSpell(cid, var)
	if getPlayerStorageValue(cid, 3200) <= 0 then
		setPlayerStorageValue(cid, 3200, os.time()+10000)  
		return doCombat(cid, combat, var)
	else
		doPlayerSendCancel(cid, "You are exhausted.")
	end
	return TRUE
end

 

Agora vou explicar o que mudei pra que você possa fazer nas outras magias que quiser e adaptá-las.

A única parte que mudei foi a parte do onCastSpell.

Você adiciona "if getPlayerStorageValue(cid, 3200) <= 0 then" para checar se o storage 3200 esta igual ou menor a 0.

Embaixo você adiciona "setPlayerStorageValue(cid, 3200, os.time()+10000)" que caso o storage acima esteja igual ou menor a 0 ele adiciona 10s de exhaust.

Então o return doCombat (que é o que faz a magia sair, já estava no script)

O else serve como "se não" como uma condição contraria ao storage 3200 ser maior que 0 (faz menos de 10 segundos que o player soltou a magia)

Então vem um doPlayerSendCancel que vai falar que o player esta em exhausted caso tenha soltado a magia a menos de 10 segundos.

o end pra fechar aquele primeiro if (getPlayerStorageValue).

E o return true que não sei se é necessário.

 

Então, espero que tenha entendido o que fiz, assim você tem liberdade para fazer como quiser com as outras spell.

Caso queira que o exevo gran mas vis só exhauste com o mas flam, faça essa alteração no mas vis e mas flam, usando o storage 3200 nos dois. (Mesmo storage, mesmo exhaust)

Se você quiser que por exemplo, dê pra soltar exori vis, exevo gran mas vis e sd ao mesmo tempo, use o storage 3200 no mas vis, o 3201 no exori vis e a sd pode manter o exhaust do spells.xml

 

@DukeeH

testei aqui mas nao rolou..  o player fica com exhaust eterno e nao consegue mais usar a magia..

nao tem que zerar o storage depois do exhaust? sei la nao entendo

Editado por fefuxd (veja o histórico de edições)

Postado
4 horas atrás, fefuxd disse:

 

@DukeeH

testei aqui mas nao rolou..  o player fica com exhaust eterno e nao consegue mais usar a magia..

nao tem que zerar o storage depois do exhaust? sei la nao entendo

Estranho cara, na função ele pega a hora atual e põem +10 segundos. 

Ai na parte que checa ele vê se o storage - hora atual é igual a 0.

Essa parte não tem como estar errado, não da erro?

asdukeeh.jpg

Postado
  • Autor
7 horas atrás, DukeeH disse:

Estranho cara, na função ele pega a hora atual e põem +10 segundos. 

Ai na parte que checa ele vê se o storage - hora atual é igual a 0.

Essa parte não tem como estar errado, não da erro?

 

ta soltando a magia 1 vez dai fica com exhaust eterno.. e eu noto que mesmo com exhaust a mana diminui e o Magic Level aumenta.. soh a magia que nao sai

 

11 horas atrás, KotZletY disse:

@fefuxd os.time()+10000  = 10 mil segundos. '-'

 

10 = 10 segundos, pelo menos nesse seu caso! 

 

mudei pra 10 tbm ficou do mesmo jeito

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo