Ir para conteúdo
  • 0

Script Do Jhon992 Com Erro! Sistema De Buff.


milbradt

Pergunta

Então, no caso eh uma spell que BUFFA o jogador por 1 minuto dando um certo EFEITO, porem no caso se eu colocar pra uma determinada vocação fazer o BUFF não da erro algum, mas se eu fizer 2 spell ai ja da uma complicação.

 

Tipo, eu adicionei uma magia chamada BUFF, para a vocação SORCERER.

 

Agora se eu usar o mesmo script e adicionar uma magia pros DRUIDS como Buffar, não sei oq acontece que parece que elas se fundem.

 

Explicando.. SOU DRUID E USO MINHA SPELL QUE SERIA O BUFFAR, O EFEITO NAO FICA O DO BUFFAR E SIM O DO BUFF QUE É A MAGIA DO SORCERER!!!!

 

Tem 3 STORAGE no SCRIPT... AVISO QUE JA TENTEI TROCAR PRA VER SE NAO FICAVA O ERRO, MAS CONTINUA O ERRO!!!

 

Aqui esta a SPELL DO SORCERER:

spell.xml:

       <instant name="Buff!" words="buff" aggressive="0" selftarget="1" lvl="150" mana="1000" exhaustion="1500" script="sorcerer/buff.lua">
	<vocation id="2">

 

spell.lua:

local tempo = 60 -- tempo em segundos.

local ml = 5 -- quantos ira aumentar o skill de ML
local skillfist = 5 -- quantos ira aumentar o skill de Fist
local skillsword = 5 -- quantos ira aumentar o skill de Sword
local skillaxe = 5 -- quantos ira aumentar o skill de Axe
local skillclub = 5 -- quantos ira aumentar o skill de Club
local skilldistance = 5 -- quantos ira aumentar o skill de Distance
local skillshield = 5 -- quantos ira aumentar o skill de Shield
local health = 30 -- A cada 1 segundo quantos aumentar de vida
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)

local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000)
setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, ml)
setConditionParam(condition, CONDITION_PARAM_SKILL_FIST, skillfist)
setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, skillsword)
setConditionParam(condition, CONDITION_PARAM_SKILL_AXE, skillaxe)
setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, skillclub)
setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, skilldistance)
setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, skillshield)
setConditionParam(condition, CONDITION_PARAM_OUTFIT, outfit)
setCombatCondition(combat, condition)

local condition = createConditionObject(CONDITION_HASTE)
setConditionParam(condition, CONDITION_PARAM_SPEED, 250)
setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000)
setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE)
setCombatCondition(combat, condition)

local condition = createConditionObject(CONDITION_REGENERATION)
setConditionParam(condition, CONDITION_PARAM_SUBID, 1)
setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE)
setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000)
setConditionParam(condition, CONDITION_PARAM_HEALTHGAIN, health)
setConditionParam(condition, CONDITION_PARAM_HEALTHTICKS, 1000)
setCombatCondition(combat, condition)

function magicEffect3(tempo2,tempo3,cid)
if (isCreature(cid)) then
   if getCreatureCondition(cid, CONDITION_REGENERATION, 1) then

           doSendMagicEffect(getPlayerPosition(cid), 208)
       end
   end
end

function onCastSpell(cid, var)
if getCreatureCondition(cid, CONDITION_REGENERATION, 1) == false then
   doCombat(cid, combat, var)
   tempo2 = 0
   while (tempo2 ~= (tempo*1000)) do
       addEvent(magicEffect3, tempo2, tempo2, tempo*1000, cid)
       tempo2 = tempo2 + 1000
   end
   doPlayerSendCancel(cid, "Sorry, you are transformed.")
end
end

 

Aqui spell do DRUID:

spellxml:

       <instant name="Buffar!" words="buffar" aggressive="0" selftarget="1" lvl="200" mana="1000" exhaustion="1500" event="script" value="druid/buffar.lua">
	<vocation id="3">

 

spell.lua:

 

local tempo = 60 -- tempo em segundos.
local effect = {136} -- effect no player, caso queira apenas 1, basta remover os outros numeros.

local ml = 5 -- quantos ira aumentar o skill de ML
local skillfist = 5 -- quantos ira aumentar o skill de Fist
local skillsword = 5 -- quantos ira aumentar o skill de Sword
local skillaxe = 5 -- quantos ira aumentar o skill de Axe
local skillclub = 5 -- quantos ira aumentar o skill de Club
local skilldistance = 5 -- quantos ira aumentar o skill de Distance
local skillshield = 5 -- quantos ira aumentar o skill de Shield
local health = 50 -- A cada 1 segundo quantos aumentar de vida
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)

local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000)
setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, ml)
setConditionParam(condition, CONDITION_PARAM_SKILL_FIST, skillfist)
setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, skillsword)
setConditionParam(condition, CONDITION_PARAM_SKILL_AXE, skillaxe)
setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, skillclub)
setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, skilldistance)
setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, skillshield)
setConditionParam(condition, CONDITION_PARAM_OUTFIT, outfit)
setCombatCondition(combat, condition)

local condition = createConditionObject(CONDITION_HASTE)
setConditionParam(condition, CONDITION_PARAM_SPEED, 250)
setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000)
setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE)
setCombatCondition(combat, condition)

local condition = createConditionObject(CONDITION_REGENERATION)
setConditionParam(condition, CONDITION_PARAM_SUBID, 1)
setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE)
setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000)
setConditionParam(condition, CONDITION_PARAM_HEALTHGAIN, health)
setConditionParam(condition, CONDITION_PARAM_HEALTHTICKS, 1000)
setCombatCondition(combat, condition)

function magicEffect3(tempo2,tempo3,cid)
if (isCreature(cid)) then
   if getPlayerStorageValue(cid, 102053) &gt; 0 and getCreatureCondition(cid, CONDITION_REGENERATION, 1) then
       for i=1, #effect do
       local position = {x=getPlayerPosition(cid).x+1, y=getPlayerPosition(cid).y, z=getPlayerPosition(cid).z}
doSendMagicEffect(position, effect[i])
       end
   end
end
end

function onCastSpell(cid, var)
if getPlayerStorageValue(cid, 102053) ~= 1 or getCreatureCondition(cid, CONDITION_REGENERATION, 1) == false then
   doCombat(cid, combat, var)
   tempo2 = 0
   while (tempo2 ~= (tempo*1000)) do
       addEvent(magicEffect3, tempo2, tempo2, tempo*1000, cid)
       tempo2 = tempo2 + 300
   end
   setPlayerStorageValue(cid, 102053,1) -- storage verifica transformado, quando = 1 player esta transformado.
else
   doPlayerSendCancel(cid, "Sorry, you are transformed.")
end
end

 

ASSIM ESTA MINHAS SPELLS! =X

 

A original esta aqui:

local tempo = 60 -- tempo em segundos.
local effect = {27,28,29} -- effect no player, caso queira apenas 1, basta remover os outros numeros.

local ml = 5 -- quantos ira aumentar o skill de ML
local skillfist = 5 -- quantos ira aumentar o skill de Fist
local skillsword = 5 -- quantos ira aumentar o skill de Sword
local skillaxe = 5 -- quantos ira aumentar o skill de Axe
local skillclub = 5 -- quantos ira aumentar o skill de Club
local skilldistance = 5 -- quantos ira aumentar o skill de Distance
local skillshield = 5 -- quantos ira aumentar o skill de Shield
local health = 30 -- A cada 1 segundo quantos aumentar de vida
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)

local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000)
setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, ml)
setConditionParam(condition, CONDITION_PARAM_SKILL_FIST, skillfist)
setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, skillsword)
setConditionParam(condition, CONDITION_PARAM_SKILL_AXE, skillaxe)
setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, skillclub)
setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, skilldistance)
setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, skillshield)
setConditionParam(condition, CONDITION_PARAM_OUTFIT, outfit)
setCombatCondition(combat, condition)

local condition = createConditionObject(CONDITION_HASTE)
setConditionParam(condition, CONDITION_PARAM_SPEED, 250)
setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000)
setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE)
setCombatCondition(combat, condition)

local condition = createConditionObject(CONDITION_REGENERATION)
setConditionParam(condition, CONDITION_PARAM_SUBID, 1)
setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE)
setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000)
setConditionParam(condition, CONDITION_PARAM_HEALTHGAIN, health)
setConditionParam(condition, CONDITION_PARAM_HEALTHTICKS, 1000)
setCombatCondition(combat, condition)

function magicEffect3(tempo2,tempo3,cid)
if (isCreature(cid)) then
   if getPlayerStorageValue(cid, 102053) > 0 and getCreatureCondition(cid, CONDITION_REGENERATION, 1) then
       for i=1, #effect do
       local position = {x=getPlayerPosition(cid).x+1, y=getPlayerPosition(cid).y, z=getPlayerPosition(cid).z}
       doSendMagicEffect(position, effect[i])
       end
   end
end
end

function onCastSpell(cid, var)
if getPlayerStorageValue(cid, 102053) ~= 1 or getCreatureCondition(cid, CONDITION_REGENERATION, 1) == false then
   doCombat(cid, combat, var)
   tempo2 = 0
   while (tempo2 ~= (tempo*1000)) do
       addEvent(magicEffect3, tempo2, tempo2, tempo*1000, cid)
       tempo2 = tempo2 + 1000
   end
   setPlayerStorageValue(cid, 102053,1) -- storage verifica transformado, quando = 1 player esta transformado.
else
   doPlayerSendCancel(cid, "Sorry, you are transformed.")
end
end

 

Rep+ pra quem me ajudar!

Editado por milbradt
Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

cara posta a tag xml e o dois script indetificando qual é o do sorcerer e qual é o de druid,se n n da pra ajuda

Link para o comentário
Compartilhar em outros sites

  • 0

esqueci de postar =X

 

ja editei la em cima como elas estão e a original como fica!

@edited

 

Vlw Jhon992 pela ajuda MSN, te darei uns 5 REP + pela ajuda manin.. =P

Editado por milbradt
Link para o comentário
Compartilhar em outros sites

  • 0

O erro que ocorria era devido as funções com o mesmo nome em todos os scripts, então o executável não conseguia identificar a certa a usar, para solucionar só bastou mudar o nome das funções "magicEffect3" em todos os scripts derivados.

 

- Reportado para moverem!

Editado por Jhon992
Link para o comentário
Compartilhar em outros sites

  • 0

Milbradt, Poderia postar a solução do seu problema aqui pra gente ?

Assim pode ajudar outras pessoas que talvez venha ter a mesma duvida.

 

Aguardando.

assim que colocar me reporte o Tópico novamente para mover para sanados?

 

Obrigado.

Link para o comentário
Compartilhar em outros sites

  • 0

Certo!

Mas o Jhon992 ja colocou o motivo de estar dando o erro.

 

No caso era a parte do >> MagicEffect3 <<

 

Se colocar um outro Buff para outra vocação ou um outro Buff para a mesma vocação, tera que modificar a parte do MagicEffect3 para outro nome..

 

exempo: mudar apenas o 3 para outro numero qualquer de forma que não se repita

MagicEffect3

para

MagicEffect4

e se fizer mais spel ainda mudar para 5..6..e assim por diante

MagicEffect5

MagicEffect6

 

=P era apenas isso =x

Editado por milbradt
Link para o comentário
Compartilhar em outros sites

  • 0

Eu ainda estou com duvida tabom mudei e talz MagicEffect3 para MagicEffect2 que tava no script do outro buff que fis so que da erro olhem e ve se fis certo

 

local tempo = 60 -- tempo em segundos.
local effect = {136} -- effect no player

local ml = 6 -- quantos ira aumentar o skill de ML
local skillfist = 5 -- quantos ira aumentar o skill de Fist
local skillsword = 5 -- quantos ira aumentar o skill de Sword
local skillaxe = 5 -- quantos ira aumentar o skill de Axe
local skillclub = 5 -- quantos ira aumentar o skill de Club
local skilldistance = 5 -- quantos ira aumentar o skill de Distance
local skillshield = 5 -- quantos ira aumentar o skill de Shield
local health = 150 -- A cada 1 segundo quantos aumentar de vida
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)

local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000)
setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, ml)
setConditionParam(condition, CONDITION_PARAM_SKILL_FIST, skillfist)
setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, skillsword)
setConditionParam(condition, CONDITION_PARAM_SKILL_AXE, skillaxe)
setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, skillclub)
setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, skilldistance)
setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, skillshield)
setConditionParam(condition, CONDITION_PARAM_OUTFIT, outfit)
setCombatCondition(combat, condition)

local condition = createConditionObject(CONDITION_HASTE)
setConditionParam(condition, CONDITION_PARAM_SPEED, 250)
setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000)
setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE)
setCombatCondition(combat, condition)

local condition = createConditionObject(CONDITION_REGENERATION)
setConditionParam(condition, CONDITION_PARAM_SUBID, 1)
setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE)
setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000)
setConditionParam(condition, CONDITION_PARAM_HEALTHGAIN, health)
setConditionParam(condition, CONDITION_PARAM_HEALTHTICKS, 1000)
setCombatCondition(combat, condition)

function magicEffect2(tempo2,tempo3,cid)
if (isCreature(cid)) then
	if getPlayerStorageValue(cid, 102053) > 0 and getCreatureCondition(cid, CONDITION_REGENERATION, 1) then
			for i=1, #effect do
			local position = {x=getPlayerPosition(cid).x+1, y=getPlayerPosition(cid).y, z=getPlayerPosition(cid).z}
doSendMagicEffect2(position, effect[i])
			end
	end
end
end

function onCastSpell(cid, var)
if getPlayerStorageValue(cid, 102053) ~= 1 or getCreatureCondition(cid, CONDITION_REGENERATION, 1) == false then
	doCombat(cid, combat, var)
	tempo2 = 0
	while (tempo2 ~= (tempo*1000)) do
			addEvent(magicEffect2, tempo2, tempo2, tempo*1000, cid)
			tempo2 = tempo2 + 300
	end
	setPlayerStorageValue(cid, 102053,1) -- storage verifica transformado, quando = 1 player esta transformado.
else
	doPlayerSendCancel(cid, "Voce ja esta com Buff.")
end
end

 

da esses erros

 

[/size][/color]
[color=#282828][size=2][30/01/2013 22:51:52] [Error - Spell Interface]
[30/01/2013 22:51:52] In a timer event called from:
[30/01/2013 22:51:52] data/spells/scripts/sasuke/susanoo.lua:onCastSpell
[30/01/2013 22:51:52] Description:
[30/01/2013 22:51:52] data/spells/scripts/sasuke/susanoo.lua:46: attempt to call global 'doSendMagicEffect2' (a nil value)
[30/01/2013 22:51:52] stack traceback:
[30/01/2013 22:51:52]  data/spells/scripts/sasuke/susanoo.lua:46: in function <data/spells/scripts/sasuke/susanoo.lua:41>[/size][/color]
[color=#282828][size=2]
Editado por Raiat
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...