Ir para conteúdo
  • Cadastre-se

(Resolvido)Nao consigo combar


Ir para solução Resolvido por DukeeH,

Posts Recomendados

Iae galera, é o seguinte, tava vendo umas Spell's aqui no meu servidor, e coloquei 2 spell na hotkey do client, então usei as duas, foi quando eu vir que quando uso a primeira, em quanto o exhausted da primeira não acabar, eu não poderei usar a proxima, exemplo:

Eu uso a Spell  " Tk no jutsu "  que tem 10 segundos de exhausted, em quanto os 10 segundos de exhausted dessa Spell não acabar, eu não posso usar nenhuma outra! 

Como posso resolver isso ? Obrigado desde já, darei Rep+ aquele que puder me ajudar! xD

 

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

Link para o post
Compartilhar em outros sites

Qual versão do seu distro e cliente?

Normalmente (não sei muito sobre derivado) spells de ataque exhaustam sozinhas (não pode usar duas de ataque).

Não se pode usar suporte e cura (Exura vita e utani gran hur se exhaustam)

Se pode usar cura e ataque, exura vita e sd. Ou suporte e ataque (gran hur e sd)

 

Caso queira que a magia tenha um exhaust só pra ela provavelmente vai ter que usar storages como exhaust.

 

Posta o script da spell que te dou um exemplo de como fazer, e ja testamos.

 

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

asdukeeh.jpg

Link para o post
Compartilhar em outros sites
6 horas atrás, DukeeH disse:

TFS 0.3.6 pl 1   e client é 8.54,

 

3 horas atrás, Gustavo Ntos disse:

Sério isso ? Vamos da um exemplo, tenho uma Spell chamada Tibiaking no Jutsu, ela tem exhausted de 10 segundos pelo spell.xml  então quer dizer que se eu usar essa spell, não vou poder usar outra spell enquanto o exhaustam dela não acabar ? Isso por que o exhausted ta pelo spell.xml  ? 

 

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

Link para o post
Compartilhar em outros sites
30 minutos atrás, KotZletY disse:

 

 

" Posta o script da spell que te dou um exemplo de como fazer, e ja testamos. "

 

Estou aguardando a spell pra arrumar pra você, e sim, se por pelo spells.xml, não vai poder usar outra spell do mesmo tipo (ataque, support ou cura) pelo tempo do exhaust, mas vou fazer exhausts individuais, ai você vai poder colocar ele nas spells que quiser que exhaustem junto, ou exhaust para elas individuais.

asdukeeh.jpg

Link para o post
Compartilhar em outros sites
2 minutos atrás, DukeeH disse:

" Posta o script da spell que te dou um exemplo de como fazer, e ja testamos. "

 

Pode crê, compreendi perfeitamente.. 

 

Bom aqui ta uma das Spell para dar um exemplo.. E ela não tem exhausted dentro do script.

 

Spoiler

 local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 214)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -40.2, 1, -40.2, 1)
 
local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, 214)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -40.2, 1, -40.2, 1)
 
 
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, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 1, 1, 3, 1, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
}
 
arr2 = {
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
{0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0},
{1, 1, 1, 1, 0, 2, 0, 1, 1, 1, 1},
{0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0},
{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
}
 
local area1 = createCombatArea(arr1)
local area2 = createCombatArea(arr2)
setCombatArea(combat1, area1)
setCombatArea(combat2, area2)
 
local function onCastSpell1(parameters)
    return isPlayer(parameters.cid) and doCombat(parameters.cid, combat1, parameters.var)
end
 
local function onCastSpell2(parameters)
    return isPlayer(parameters.cid) and doCombat(parameters.cid, combat2, parameters.var)
end
 
function onCastSpell(cid, var)
local parameters = { cid = cid, var = var}
addEvent(onCastSpell1, 100, parameters)
addEvent(onCastSpell2, 630, parameters)
return TRUE
end

 

 

E aqui um pedaço da spell.xml que vou ter que apagar exhausted de todas, e adicionar em cada Jutsu! " Vai demorar pra Krl " Mais fazer o que né ? :OKAY:

Spoiler

<instant name="Susano Madara" words="susano madara" prem="0" aggressive="0" selftarget="1" lvl="250" mana="2000"  exhaustion="1000" event="script" value="madara/susanomadara.lua">
        <vocation id="600"/>
		<vocation id="601"/>
		<vocation id="602"/>
		<vocation id="603"/>
		<vocation id="604"/>
		<vocation id="605"/>
		<vocation id="606"/>
		<vocation id="607"/>
		<vocation id="608"/>
   	</instant>
	
	
		<instant name="Meteor No Jutsu" words="meteor no jutsu" lvl="200" mana="5000" aggressive="1" range="5" blockwalls="1" needtarget="1" exhaustion="1500" needlearn="0" event="script" value="madara/meteor no jutsu.lua">
	    <vocation id="600"/>
		<vocation id="601"/>
		<vocation id="602"/>
		<vocation id="603"/>
		<vocation id="604"/>
		<vocation id="605"/>
		<vocation id="606"/>
		<vocation id="607"/>
		<vocation id="608"/>		
	</instant>
	
	<instant name="Susano Atack No Jutsu" words="susano atack no jutsu" lvl="200" mana="5000" aggressive="1" range="5" blockwalls="1" needtarget="1" exhaustion="1500" needlearn="0" event="script" value="madara/susanoatack.lua">
	    <vocation id="600"/>
		<vocation id="601"/>
		<vocation id="602"/>
		<vocation id="603"/>
		<vocation id="604"/>
		<vocation id="605"/>
		<vocation id="606"/>
		<vocation id="607"/>
		<vocation id="608"/>		
	</instant>
	
	
	 <instant name="Dai Katon Meteor No Jutsu" words="dai katon meteor no jutsu" lvl="200" mana="5000" aggressive="1" range="5" blockwalls="1" needtarget="1" exhaustion="1500" needlearn="0" event="script" value="madara/dai katon meteor.lua">
	    <vocation id="600"/>
		<vocation id="601"/>
		<vocation id="602"/>
		<vocation id="603"/>
		<vocation id="604"/>
		<vocation id="605"/>
		<vocation id="606"/>
		<vocation id="607"/>
		<vocation id="608"/>		
	</instant>
	
	<instant name="Katon Sohenka No Jutsu" words="katon sohenka no jutsu" lvl="200" mana="5000" aggressive="1" range="5" blockwalls="1" needtarget="0" exhaustion="1500" needlearn="0" event="script" value="madara/katon sohenka.lua">
	    <vocation id="600"/>
		<vocation id="601"/>
		<vocation id="602"/>
		<vocation id="603"/>
		<vocation id="604"/>
		<vocation id="605"/>
		<vocation id="606"/>
		<vocation id="607"/>
		<vocation id="608"/>		
	</instant>

 

Vai ser foda editar todas, tem mais de de 100 jutsus nessa porra, mais é noiz! Hu3hu3hu3

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

Link para o post
Compartilhar em outros sites
Em 04/04/2016 at 17:59, DukeeH disse:

Não tem outra maneira de fazer isso não ? Algum code nas source, que faça com que o Exhausted de uma spell só interfira somente na própia spell e não nas outras ? To com mais de 300 Spell no meu Nto, editar cada uma, cada spell é diferente da outra, sem falar que os scripts são em ordens diferentes então a mesma função exhaustam de uma não funcionara na mesma ordem da outra, então cada um tem que ser um exhaustion diferente, em ordem diferente. Sem falar que terei que ficar testando até ver se funcionou...

Não tem outra maneira de deixa esses exhausted pelo spell.xml ? Algum code nas source sla,

Uso TFS 0.3.6 pl1

 

e o server é versão 8.54!

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

Link para o post
Compartilhar em outros sites
  • Solução
1 hora atrás, KotZletY disse:

Uso TFS 0.3.6 pl1

 

e o server é versão 8.54!

Assim:

local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 214)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -40.2, 1, -40.2, 1)
 
local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, 214)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -40.2, 1, -40.2, 1)
 
 
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, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 1, 1, 3, 1, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
}
 
arr2 = {
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
{0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0},
{1, 1, 1, 1, 0, 2, 0, 1, 1, 1, 1},
{0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0},
{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
}
 
local area1 = createCombatArea(arr1)
local area2 = createCombatArea(arr2)
setCombatArea(combat1, area1)
setCombatArea(combat2, area2)
 
local function onCastSpell1(parameters)
    return isPlayer(parameters.cid) and doCombat(parameters.cid, combat1, parameters.var)
end
 
local function onCastSpell2(parameters)
    return isPlayer(parameters.cid) and doCombat(parameters.cid, combat2, parameters.var)
end 

function onCastSpell(cid, var)
local parameters = { cid = cid, var = var}
	if getPlayerStorageValue(cid, 3200) <= 0 then
		setPlayerStorageValue(cid, 3200, os.time()+10000)  
		addEvent(onCastSpell1, 100, parameters)
		addEvent(onCastSpell2, 630, parameters)
	else
		doPlayerSendCancel(cid, "You are exhausted.")
	end
	return TRUE
end

Agora vou explicar para caso dê certo você fazer nas outras:

function onCastSpell(cid, var)
local parameters = { cid = cid, var = var}
	if getPlayerStorageValue(cid, 3200) <= 0 then
		setPlayerStorageValue(cid, 3200, os.time()+10000)  
		addEvent(onCastSpell1, 100, parameters)
		addEvent(onCastSpell2, 630, parameters)
	else
		doPlayerSendCancel(cid, "You are exhausted.")
	end
	return TRUE
end

Basicamente eu alterei só essa parte, a função onCastSpell, como a magia tem 2 efeitos, e 2 danos, ela fica com os 2 addevents ali, como já tinha antes.

As partes que mudam são if getPlayerstorage 3200 <= então deixa o cara dar a skill e adiciona o storage 3200 por 10segundos (10000).
Caso contrario (storage 3200 > 0) da a mensagem do exhaust.

Em spells.xml você põem exhaustion 0 em todas as spells que mudar isso (o exhaust vai ficar dentro dela)

Caso queira que não possa dar 2 spells juntas coloque o mesmo storage nas duas (3200 no exemplo) caso contrario vá aumentando/diminuindo o numero 3201, 3202 para spells diferentes.

Parece que vai demorar, mas é rapido, mesmo se tiver bastante spells. Só editar a onCastSpell cuidando para quantos efeitos/fases a spell tem, e tirar o exhaust dela no spells.xml

 

asdukeeh.jpg

Link para o post
Compartilhar em outros sites
Em 02/04/2016 at 19:44, KotZletY disse:

Iae galera, é o seguinte, tava vendo umas Spell's aqui no meu servidor, e coloquei 2 spell na hotkey do client, então usei as duas, foi quando eu vir que quando uso a primeira, em quanto o exhausted da primeira não acabar, eu não poderei usar a proxima, exemplo:

Eu uso a Spell  " Tk no jutsu "  que tem 10 segundos de exhausted, em quanto os 10 segundos de exhausted dessa Spell não acabar, eu não posso usar nenhuma outra! 

Como posso resolver isso ? Obrigado desde já, darei Rep+ aquele que puder me ajudar! xD

 

Pra vc combar e facil nao precisa ser da propria spell com o exausted '==' da pra fazer pelo spell.xml eu faço assim '=='

Atack Area = 1200 ou 1000 de exausted 

Atack de target = o mais forte tipo tira 50k ele e 2000 de exausted

se vc quiser adc + 1 so vc colocar menos exausted se tiver 2000 - 1200 - 1000

Exemplo

 

Katon sohenka no jutsu - 1 = 1200

Dai Katon Meteor - 2 = 1000

Katon Borukaki - 3  = 2000

Tipo assim se  nao tendeu me chama la no Facebook '=='

Link para o post
Compartilhar em outros sites
  • 1 month later...
Em 06/04/2016 at 08:32, DukeeH disse:

Assim:


local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 214)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -40.2, 1, -40.2, 1)
 
local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, 214)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -40.2, 1, -40.2, 1)
 
 
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, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 1, 1, 3, 1, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
}
 
arr2 = {
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
{0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0},
{1, 1, 1, 1, 0, 2, 0, 1, 1, 1, 1},
{0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0},
{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
}
 
local area1 = createCombatArea(arr1)
local area2 = createCombatArea(arr2)
setCombatArea(combat1, area1)
setCombatArea(combat2, area2)
 
local function onCastSpell1(parameters)
    return isPlayer(parameters.cid) and doCombat(parameters.cid, combat1, parameters.var)
end
 
local function onCastSpell2(parameters)
    return isPlayer(parameters.cid) and doCombat(parameters.cid, combat2, parameters.var)
end 

function onCastSpell(cid, var)
local parameters = { cid = cid, var = var}
	if getPlayerStorageValue(cid, 3200) <= 0 then
		setPlayerStorageValue(cid, 3200, os.time()+10000)  
		addEvent(onCastSpell1, 100, parameters)
		addEvent(onCastSpell2, 630, parameters)
	else
		doPlayerSendCancel(cid, "You are exhausted.")
	end
	return TRUE
end

Agora vou explicar para caso dê certo você fazer nas outras:


function onCastSpell(cid, var)
local parameters = { cid = cid, var = var}
	if getPlayerStorageValue(cid, 3200) <= 0 then
		setPlayerStorageValue(cid, 3200, os.time()+10000)  
		addEvent(onCastSpell1, 100, parameters)
		addEvent(onCastSpell2, 630, parameters)
	else
		doPlayerSendCancel(cid, "You are exhausted.")
	end
	return TRUE
end

Basicamente eu alterei só essa parte, a função onCastSpell, como a magia tem 2 efeitos, e 2 danos, ela fica com os 2 addevents ali, como já tinha antes.

As partes que mudam são if getPlayerstorage 3200 <= então deixa o cara dar a skill e adiciona o storage 3200 por 10segundos (10000).
Caso contrario (storage 3200 > 0) da a mensagem do exhaust.

Em spells.xml você põem exhaustion 0 em todas as spells que mudar isso (o exhaust vai ficar dentro dela)

Caso queira que não possa dar 2 spells juntas coloque o mesmo storage nas duas (3200 no exemplo) caso contrario vá aumentando/diminuindo o numero 3201, 3202 para spells diferentes.

Parece que vai demorar, mas é rapido, mesmo se tiver bastante spells. Só editar a onCastSpell cuidando para quantos efeitos/fases a spell tem, e tirar o exhaust dela no spells.xml

 

o effec da magia nao ta saindo :( ajuda ae

Link para o post
Compartilhar em outros sites

http://prntscr.com/b72mm2

mano ta dando isso nao da dano nem apareçe sprite

Em 06/04/2016 at 08:32, DukeeH disse:

Assim:


local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 214)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -40.2, 1, -40.2, 1)
 
local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, 214)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -40.2, 1, -40.2, 1)
 
 
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, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 1, 1, 3, 1, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
}
 
arr2 = {
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
{0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0},
{1, 1, 1, 1, 0, 2, 0, 1, 1, 1, 1},
{0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0},
{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
}
 
local area1 = createCombatArea(arr1)
local area2 = createCombatArea(arr2)
setCombatArea(combat1, area1)
setCombatArea(combat2, area2)
 
local function onCastSpell1(parameters)
    return isPlayer(parameters.cid) and doCombat(parameters.cid, combat1, parameters.var)
end
 
local function onCastSpell2(parameters)
    return isPlayer(parameters.cid) and doCombat(parameters.cid, combat2, parameters.var)
end 

function onCastSpell(cid, var)
local parameters = { cid = cid, var = var}
	if getPlayerStorageValue(cid, 3200) <= 0 then
		setPlayerStorageValue(cid, 3200, os.time()+10000)  
		addEvent(onCastSpell1, 100, parameters)
		addEvent(onCastSpell2, 630, parameters)
	else
		doPlayerSendCancel(cid, "You are exhausted.")
	end
	return TRUE
end

Agora vou explicar para caso dê certo você fazer nas outras:


function onCastSpell(cid, var)
local parameters = { cid = cid, var = var}
	if getPlayerStorageValue(cid, 3200) <= 0 then
		setPlayerStorageValue(cid, 3200, os.time()+10000)  
		addEvent(onCastSpell1, 100, parameters)
		addEvent(onCastSpell2, 630, parameters)
	else
		doPlayerSendCancel(cid, "You are exhausted.")
	end
	return TRUE
end

Basicamente eu alterei só essa parte, a função onCastSpell, como a magia tem 2 efeitos, e 2 danos, ela fica com os 2 addevents ali, como já tinha antes.

As partes que mudam são if getPlayerstorage 3200 <= então deixa o cara dar a skill e adiciona o storage 3200 por 10segundos (10000).
Caso contrario (storage 3200 > 0) da a mensagem do exhaust.

Em spells.xml você põem exhaustion 0 em todas as spells que mudar isso (o exhaust vai ficar dentro dela)

Caso queira que não possa dar 2 spells juntas coloque o mesmo storage nas duas (3200 no exemplo) caso contrario vá aumentando/diminuindo o numero 3201, 3202 para spells diferentes.

Parece que vai demorar, mas é rapido, mesmo se tiver bastante spells. Só editar a onCastSpell cuidando para quantos efeitos/fases a spell tem, e tirar o exhaust dela no spells.xml

 

 

Em 06/04/2016 at 08:32, DukeeH disse:

Assim:


local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 214)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -40.2, 1, -40.2, 1)
 
local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, 214)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -40.2, 1, -40.2, 1)
 
 
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, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 1, 1, 3, 1, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
}
 
arr2 = {
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
{0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0},
{1, 1, 1, 1, 0, 2, 0, 1, 1, 1, 1},
{0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0},
{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
}
 
local area1 = createCombatArea(arr1)
local area2 = createCombatArea(arr2)
setCombatArea(combat1, area1)
setCombatArea(combat2, area2)
 
local function onCastSpell1(parameters)
    return isPlayer(parameters.cid) and doCombat(parameters.cid, combat1, parameters.var)
end
 
local function onCastSpell2(parameters)
    return isPlayer(parameters.cid) and doCombat(parameters.cid, combat2, parameters.var)
end 

function onCastSpell(cid, var)
local parameters = { cid = cid, var = var}
	if getPlayerStorageValue(cid, 3200) <= 0 then
		setPlayerStorageValue(cid, 3200, os.time()+10000)  
		addEvent(onCastSpell1, 100, parameters)
		addEvent(onCastSpell2, 630, parameters)
	else
		doPlayerSendCancel(cid, "You are exhausted.")
	end
	return TRUE
end

Agora vou explicar para caso dê certo você fazer nas outras:


function onCastSpell(cid, var)
local parameters = { cid = cid, var = var}
	if getPlayerStorageValue(cid, 3200) <= 0 then
		setPlayerStorageValue(cid, 3200, os.time()+10000)  
		addEvent(onCastSpell1, 100, parameters)
		addEvent(onCastSpell2, 630, parameters)
	else
		doPlayerSendCancel(cid, "You are exhausted.")
	end
	return TRUE
end

Basicamente eu alterei só essa parte, a função onCastSpell, como a magia tem 2 efeitos, e 2 danos, ela fica com os 2 addevents ali, como já tinha antes.

As partes que mudam são if getPlayerstorage 3200 <= então deixa o cara dar a skill e adiciona o storage 3200 por 10segundos (10000).
Caso contrario (storage 3200 > 0) da a mensagem do exhaust.

Em spells.xml você põem exhaustion 0 em todas as spells que mudar isso (o exhaust vai ficar dentro dela)

Caso queira que não possa dar 2 spells juntas coloque o mesmo storage nas duas (3200 no exemplo) caso contrario vá aumentando/diminuindo o numero 3201, 3202 para spells diferentes.

Parece que vai demorar, mas é rapido, mesmo se tiver bastante spells. Só editar a onCastSpell cuidando para quantos efeitos/fases a spell tem, e tirar o exhaust dela no spells.xml

 

rep+ arrumei akie

achei o erro dps de 2 anos

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.


  • Conteúdo Similar

    • Por fezeRa
      Estou com um problema chato. Seguinte:
       
      O player pega , compra promotion, dai fica lá "Elder Druid", dai se ele reloga, ele volta pra Druid.
      Ou seja não ta salvando a vocation, é algum problema no login.lua que nao salva a vocation atual? Alguem sabe?
    • Por William Ferreira
      ​Boa Dia, Boa Tarde, Boa Noite Galera Do TK Gostaria de saber porque minhas portas 7171 e 7172 não abrem minha internet não e compartilhada, espero que me ajudem vou deixar algumas imagens abaixo.
       
      IP



       
      Portas



       
      Firewall



       
    • Por eric77
      Galera! estou precisando de ajuda mesmo..

      Eu tou trabalhando no meu server já a um tempo, e agr me deparei com um erro na talkaction do meu war system...

      Tá tudo ok no war system menos isso, na hora de falar "/war" não acontece nada.. o player fala o comando, aparece apenas como uma fala comum e mais nada.

      Porque ?? eu vi outro tópico aqui no TK e o que disseram foi que a Distro não suportava o war system..

      Então achei outra distro aqui no TK com war system, baixei mas continua tudo igual.... a talkaction não funciona do mesmo jeito.

      Link da distro que baixei: Distro tfs 0.4 (ANTI-DV) (WARSYSTEM)

      Editado: Baixei outra distro disponivel aqui no site para testar e nada de diferença, será que é a distro mesmo ? link : Distro TFS 0.4 (segunda tentativa)

      Meu war.lua:




      É isso ai pessoal... porfavor me ajudem, mesmo que seja um problema que não dê pra resolver, me deem uma luz explicando o porque pelo menos!!

      Agradeço desde já, quem resolver essa bronca pra mim é REP+ na hora..

      Valeu!!
    • Por GabrielSapient
      Uso como base o pokémon titanium, os pokémons não evoluem, e na dex fica em branco as stones... 
       
      evolution:
       



       
      Evolution um NPC que eu achei:
       



       
      pokedex system:
       




      up

      Resolvido, pode fechar.
    • Por RenanPhellip
      Eai pessoal, preciso da ajuda de vocês...
       
      Preciso de um script globalevents que execute a cada segundo uma seguinte função:
      Sumonar tal monstro em tal posição x y z, Mas somente se não houver um teleport naquela posição x y z.
      Caso haja o teleport naquele local, nada acontece (Não é sumonado)!
       
      Meu servidor é 8.6, tfs 0.4 r3884.
       
      Espero que possam me ajudar, obrigado!
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo