Ir para conteúdo
  • Cadastre-se

(Resolvido)spell dando erro no console


Ir para solução Resolvido por WooX,

Posts Recomendados

Olá pesssoal boa noite estou com uma spell esta funcionando porem tem um problema, quando o player usa a spell e morre ou desloga antes da spell acabar

fica aparacendo um monte de erro no console e acaba dando lag no servidor ate a spell acabar. tivesse como adicionar uma função que corte a spell quando player desloga ou morre 

 

[Error - Spell Interface]
[20:19:32.982] In a timer event called from:
[20:19:32.984] (Unknown script file)
[20:19:32.985] Description:
[20:19:32.987] (luaDoCombatAreaHealth) Creature not found      - ERROR 

 

- SPELL -

 

Citar

local outfit = {lookType = 290} -- Roupa que ira transformar no caso seu corpo ficara em choque

local tempo = 60 * 130 -- Tempo, nesse caso esta 60 segundos Lembrando que 1000 = 1 segundo

 

local combat = createCombatObject()

 

local combat2 = createCombatObject()

setCombatParam(combat2, COMBAT_PARAM_AGGRESSIVE, 0)

 

 

 

arr = {

{0, 0, 0, 0, 0, 1, 0, 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, 1, 1, 1, 1, 1, 1, 0},

{0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},

{1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1},

{0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},

{0, 1, 1, 1, 1, 1, 1, 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, 0, 1, 0, 0, 0, 0, 0},

}

 

local area = createCombatArea(arr)

setCombatArea(combat, area)

 

local condition = createConditionObject(CONDITION_ATTRIBUTES)

setConditionParam(condition, CONDITION_PARAM_TICKS, tempo)

setConditionParam(condition, CONDITION_PARAM_OUTFIT, outfit)

setCombatCondition(combat2, condition)

 

local sys = createConditionObject(CONDITION_OUTFIT)

setConditionParam(sys, CONDITION_PARAM_TICKS, tempo)

addOutfitCondition(sys, outfit)

setCombatCondition(combat2, sys)

 

function spellCallback(param)

if param.count > 0 or math.random(0, 1) == 1 then

doSendMagicEffect(param.pos, CONST_ME_MORTAREA)

doAreaCombatHealth(param.cid, COMBAT_DEATHDAMAGE, param.pos, 0, -3000, -8000, CONST_ME_EXPLOSIONHIT)

end

 

if(param.count < 2) then

param.count = param.count + 1

addEvent(spellCallback, math.random(1000, 4000), param)

end

end

 

function onTargetTile(cid, pos)

local param = {}

param.cid = cid

param.pos = pos

param.count = 0

spellCallback(param)

end

 

setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile")

 

function onCastSpell(cid, var)

addEvent(doCombat, 0, cid, combat, var)

addEvent(doCombat, 0, cid, combat2, var)

return true

end

 

Link para o post
Compartilhar em outros sites

Este tópico foi movido para a área correta. Esta é uma mensagem automática!
Pedimos que leia as regras do fórum!

Spoiler

This topic has been moved to the correct area. This is an automated message!
Please read the forum rules.

 

Compre seus Scripts Agora totalmente seguro e de forma rápida, aceitamos também encomendas.

discord.gg/phJZeHa2k4

 

Projeto ATS (Naruto)

Informações Abaixo

Facebook

Youtube
Discord

 

Tutoriais / Conteúdos

Clique Aqui

Link para o post
Compartilhar em outros sites
7 minutos atrás, KR3 disse:

@Vitorelias pra que serviria essa spell?

 

Eu tenho um otserv RadBR 8.6 essa spell é da vocação Infernalist 

dsadada.thumb.png.24394a9e17adef877287ea10800795ee.png

Editado por Vitorelias (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

@Vitorelias  Se quiser pode modificar tenta usar esse ele da outfit e mais dano.

Spoiler

--Script by kr3--

local tempo = 500000 --tempo em segundos


local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_FIREATTACK)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -10.10, 10, -10.10, 10)  <--- dadano configuravél


function onCastSpell(cid, var)
local homem = {lookType = 1117, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 3} --outfit que muda caso seja homem
local mulher = {lookType = 1117, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 3} --outfit que muda caso seja mulher
  
local sex = getPlayerSex(cid)
if sex == 0 then --sexo == 0 significa que o personagem é mulher
doSetCreatureOutfit(cid, mulher, tempo*500000)
else 
doSetCreatureOutfit(cid, homem, tempo*500000)
end
return doCombat(cid, combat, var)
end

 

Link para o post
Compartilhar em outros sites
8 minutos atrás, KR3 disse:

@Vitorelias  Se quiser pode modificar tenta usar esse ele da outfit e mais dano.

  Ocultar conteúdo

--Script by kr3--

local tempo = 500000 --tempo em segundos


local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_FIREATTACK)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -10.10, 10, -10.10, 10)  <--- dadano configuravél


function onCastSpell(cid, var)
local homem = {lookType = 1117, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 3} --outfit que muda caso seja homem
local mulher = {lookType = 1117, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 3} --outfit que muda caso seja mulher
   
local sex = getPlayerSex(cid)
if sex == 0 then --sexo == 0 significa que o personagem é mulher
 doSetCreatureOutfit(cid, mulher, tempo*500000)
else 
doSetCreatureOutfit(cid, homem, tempo*500000)
end
 return doCombat(cid, combat, var)
end

 

 

Não deu certo apos eu usar a spell 'espiritos do inferno' meu tibia deu debug nao consigo logar mas o char.  Será que você não consegue editar minha spell? colocando uma função que o player ao deslogar ou morrer ela corte a spell?

Editado por Vitorelias (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
8 minutos atrás, Vitorelias disse:

Não deu certo apos eu usar a spell 'espiritos do inferno' meu tibia deu debug nao consigo logar mas o char.  Será que você não consegue editar minha spell? colocando uma função que o player ao deslogar ou morrer ela corte a spell?

 

Troca a função onCastSpell por essa.

function onCastSpell(cid, var)
	addEvent(function()
		if isCreature(cid) then
			doCombat(cid, combat, var)
		end
	end, 0)
	addEvent(function()
		if isCreature(cid) then
			doCombat(cid, combat2, var)
		end
	end, 0)
	return true
end

 

 

 

 

Nós somos aquilo que fazemos repetidamente. Excelência, não é um modo de agir, mas um hábito.

                                                                                                                                                                                                                                        Aristóteles 

Link para o post
Compartilhar em outros sites
11 minutos atrás, WooX disse:

Troca a função onCastSpell por essa.


function onCastSpell(cid, var)
	addEvent(function()
		if isCreature(cid) then
			doCombat(cid, combat, var)
		end
	end, 0)
	addEvent(function()
		if isCreature(cid) then
			doCombat(cid, combat2, var)
		end
	end, 0)
	return true
end

 

spell.thumb.png.4f1850c67931e59adfe6341ab284c2b8.png

troquei mas quando do a spell e entro pz e deslogo continua dando erro no console so para de dar erro depois que a spell acaba.

 

 

Consegui resolver 

if not isPlayer(param.cid) then return true end adicionei fico novo kkkkkk
Editado por Vitorelias (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Solução
15 minutos atrás, Vitorelias disse:

troquei mas quando do a spell e entro pz e deslogo continua dando erro no console so para de dar erro depois que a spell acaba.

 

 

 

troca a função spellCallback para esta:

function spellCallback(param)
	if param.count > 0 or math.random(0, 1) == 1 then
		doSendMagicEffect(param.pos, CONST_ME_MORTAREA)
		doAreaCombatHealth(param.cid, COMBAT_DEATHDAMAGE, param.pos, 0, -3000, -8000, CONST_ME_EXPLOSIONHIT)
	end

	if(param.count < 2) then
		param.count = param.count + 1
		addEvent(function()
			if isCreature(param.cid) then
				spellCallback(param)
			end
		end, math.random(1000, 4000))
	end
end

 

 

 

 

Nós somos aquilo que fazemos repetidamente. Excelência, não é um modo de agir, mas um hábito.

                                                                                                                                                                                                                                        Aristóteles 

Link para o post
Compartilhar em outros sites
3 minutos atrás, Vitorelias disse:

Topico resolvido podem fechar valeu pessoal

 

Se funcionou coloca como melhor resposta, ai já é tido como resolvido.

 

 

 

Nós somos aquilo que fazemos repetidamente. Excelência, não é um modo de agir, mas um hábito.

                                                                                                                                                                                                                                        Aristóteles 

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo