Ir para conteúdo
Banner com Efeitos

(Resolvido)spell com varios hits (attempt to index a boolean value)

Featured Replies

Postado

.Qual servidor ou website você utiliza como base? 

8.60 tfs 0.4

Qual o motivo deste tópico? 

Erro ao matar monstro

Está surgindo algum erro? Se sim coloque-o aqui. 

Citar

[Error - Spell Interface]
In a timer event called from:
data/spells/scripts/1.lua:onCastSpell
Description:
data/spells/scripts/1.lua:19: attempt to index a boolean value
stack traceback:
        data/spells/scripts/1.lua:19: in function <data/spells/scripts/1.lua:17>
 

O erro ocorro ao usar um poder com vários hits e o target morre sem receber todos eles.

 

Você tem o código disponível? Se tiver publique-o aqui: 

Spoiler

local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_HITCOLOR, COLOR_PURPLE)
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 39)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -1.0, -150, -1.0, -200)


arr1 = {
	{3}
}


local area1 = createCombatArea(arr1)
setCombatArea(combat1, area1)

 
local function onCastSpell1(cid, var)
local pos = getCreaturePosition(cid)
local position1 = {x=getThingPosition(getCreatureTarget(cid)).x, y=getThingPosition(getCreatureTarget(cid)).y, z=getThingPosition(getCreatureTarget(cid)).z}
doSendMagicEffect(position1, 501)
return doCombat(cid, combat1, var)
end
 

function onCastSpell(cid, var)
local parameters = { cid = cid, var = var}
			addEvent(onCastSpell1, 100, cid, var)
			addEvent(onCastSpell1, 300, cid, var)
			addEvent(onCastSpell1, 500, cid, var)
return TRUE
end 

 

Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 

 

Resolvido por Fabi Marzan

Ir para solução
  • Respostas 8
  • Visualizações 995
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • mano isso e pq ta usando addevent. Tenta --> local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_HITCOLOR, 162) setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSI

Postado
Spoiler

local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_HITCOLOR, COLOR_PURPLE)
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 39)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -1.0, -150, -1.0, -200)


arr1 = {
	{3}
}


local area1 = createCombatArea(arr1)
setCombatArea(combat1, area1)

 
local function onCastSpell1(cid, var)
local pos = getCreaturePosition(cid)
local position1 = {x=getThingPosition(getCreatureTarget(cid)).x, y=getThingPosition(getCreatureTarget(cid)).y, z=getThingPosition(getCreatureTarget(cid)).z}
if isCreature(cid) then
doSendMagicEffect(position1, 501)
return doCombat(cid, combat1, var)
end
end
 

function onCastSpell(cid, var)
local parameters = { cid = cid, var = var}
			addEvent(onCastSpell1, 100, cid, var)
			addEvent(onCastSpell1, 300, cid, var)
			addEvent(onCastSpell1, 500, cid, var)
return TRUE
end 

 

tenta ae, mas acho que tem como melhorar esse script

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

Postado
  • Solução

mano isso e pq ta usando addevent.

Tenta -->

local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_HITCOLOR, 162)
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -1.0, -14500, -1.0, -16500)

local function onCastSpell1(parameters)
doCombat(parameters.cid, parameters.combat1, parameters.var)
end

function Daichiwari(cid)
	if isCreature(cid) and isCreature(getCreatureTarget(cid)) then
		local position = {x=getThingPosition(getCreatureTarget(cid)).x, y=getThingPosition(getCreatureTarget(cid)).y, z=getThingPosition(getCreatureTarget(cid)).z}
		doSendMagicEffect(position, 52)
	end
end





function onCastSpell(cid, var)
local waittime = 1.0 -- Tempo de exhaustion
local storage = 2 -- não mecha
if exhaustion.check(cid, storage) then
   doPlayerSendCancel(cid, "Usted esta cansado.")
doSendMagicEffect(getCreaturePosition(cid), 2)
    return false
end
local parameters = {cid = cid, var = var, combat1 = combat1}
for i = 1, 3 do
	addEvent(function()
		if isCreature(cid) then
		addEvent(onCastSpell1, 300, parameters)
			addEvent(Daichiwari,100,cid)
		
		end
	end, 1 + ((i-1) * 300))
end
exhaustion.set(cid, storage, waittime)
return true
end

 

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