Ir para conteúdo
  • Cadastre-se

(Resolvido)Summon Spell (Check)


Ir para solução Resolvido por Juninhofdb,

Posts Recomendados

.Qual servidor ou website você utiliza como base?  

0.3.6pl

 

Qual o motivo deste tópico? 

suporte script

 

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

erro creature not found

Citar

 

 

Boa tarde!

 

preciso de uma ajuda neste script ele esta funcionando perfeitamente porém ele tem um addevent de remover o monstro a cada 15 minutos. so que se caso o player logue ou alguem mae esse monstro antes dos 15 minutos da erro no console dizendo creature not found precisava que alguem me ajudase a fazer um check nesse script checando se nao tiver a  creature retorna false

 

 

 

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

local t = {
storage = 9998, -- poe numero de storage aqui que não tenha no servidor
timer =  2, -- tempo em segundos sem poder usar dinovo
quant = 1, -- quantidade de summons
summon = "emberwing",  -- nome do summon
nMin = 15, -- tempo em minutos aqui da criatura irá sumir
effect = CONST_ME_MAGIC_RED
}
function onCastSpell(cid, var)
    if exhaustion.check(cid, t.storage) == false then
        if #getCreatureSummons(cid) < t.quant then
            exhaustion.set(cid, t.storage, t.timer * 1)
            local pos = getThingPos(cid)
            local mons = doSummonMonster(cid,t.summon)    
                if #getCreatureSummons(cid) == 1 then
                    local remover = getCreatureSummons(cid)[1] 
                        addEvent(doRemoveCreature, t.nMin * 60 * 1000, remover)
                        doPlayerSendTextMessage(cid, 27, "O summon sera removido em 15 minutos. aproveite!")
                else
                    for i = 1,#getCreatureSummons(cid) do
                    local remover = getCreatureSummons(cid)                 
                        addEvent(doRemoveCreature, t.nMin * 60 * 1000, remover)                    
                    end
                    doPlayerSendTextMessage(cid, 27, "O summon sera removido em 15 minutos. aproveite!")
                end
            doSendMagicEffect(pos, t.effect) 
        else
            doPlayerSendTextMessage(cid, 27, "Voce ja tem criatura summonada")
        return false 
        end    
    else
        doPlayerSendCancel(cid, "Pode summonar outro em :  " ..exhaustion.get(cid, t.storage).." segundos.")
        return false  
    end
return true
end

 

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

 

Link para o post
Compartilhar em outros sites

@Juninhofdb testa

local t = {
storage = 9998, -- poe numero de storage aqui que não tenha no servidor
timer =  2, -- tempo em segundos sem poder usar dinovo
quant = 1, -- quantidade de summons
summon = "emberwing",  -- nome do summon
nMin = 15, -- tempo em minutos aqui da criatura irá sumir
effect = CONST_ME_MAGIC_RED
}
function onCastSpell(cid, var)
    if exhaustion.check(cid, t.storage) == false then
        if #getCreatureSummons(cid) < t.quant then
            exhaustion.set(cid, t.storage, t.timer * 1)
            local pos = getThingPos(cid)
            local mons = doSummonMonster(cid,t.summon)    
                if #getCreatureSummons(cid) == 1 then
                    local remover = getCreatureSummons(cid)[1] 
        				if not isCreature(cid) then	return true	end
                        addEvent(doRemoveCreature, t.nMin * 60 * 1000, remover)
                        doPlayerSendTextMessage(cid, 27, "O summon sera removido em 15 minutos. aproveite!")
                else
                    for i = 1,#getCreatureSummons(cid) do
                    local remover = getCreatureSummons(cid) 
        				if not isCreature(cid) then	return true	end      
                        addEvent(doRemoveCreature, t.nMin * 60 * 1000, remover)                    
                    end
                    doPlayerSendTextMessage(cid, 27, "O summon sera removido em 15 minutos. aproveite!")
                end
            doSendMagicEffect(pos, t.effect) 
        else
            doPlayerSendTextMessage(cid, 27, "Voce ja tem criatura summonada")
        return false 
        end    
    else
        doPlayerSendCancel(cid, "Pode summonar outro em :  " ..exhaustion.get(cid, t.storage).." segundos.")
        return false  
    end
return true
end

 

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

[04/01/2020 16:02:59] [Error - Spell Interface] 
[04/01/2020 16:02:59] In a timer event called from: 
[04/01/2020 16:02:59] data/spells/scripts/summon/emberwing.lua:onCastSpell
[04/01/2020 16:02:59] Description: 
[04/01/2020 16:02:59] (luaDoRemoveCreature) Creature not found
 

teria que fazer tipo um check antes de passar pelo addevent ele ta jogando direto pro remover que é

 

 

local remover teria que passa pelo codigo que voce colocou antes de remover tentei de varias nao consguei quando crio uma outra function() dentro dessa spells da erro nao deixa 

Link para o post
Compartilhar em outros sites
local t = {
	storage = 9998, -- poe numero de storage aqui que não tenha no servidor
	timer =  2, -- tempo em segundos sem poder usar dinovo
	quant = 1, -- quantidade de summons
	summon = "emberwing",  -- nome do summon
	nMin = 15, -- tempo em minutos aqui da criatura irá sumir
	effect = CONST_ME_MAGIC_RED
}

function onCastSpell(cid, var)
	if exhaustion.check(cid, t.storage) == false then
		if #getCreatureSummons(cid) < t.quant then
			exhaustion.set(cid, t.storage, t.timer)
			local pos = getThingPos(cid)
			local mons = doSummonMonster(cid, t.summon)
			addEvent(function()
				if #getCreatureSummons(cid) > 0 then
					for _, sid in pairs(getCreatureSummons(cid)) do
						if isCreature(sid) then
							doRemoveCreature(sid)
						end
					end
				end
			end, t.nMin * 60 * 1000)
			doPlayerSendTextMessage(cid, 27, "O summon sera removido em 15 minutos. aproveite!")
			doSendMagicEffect(pos, t.effect) 
		else
			doPlayerSendTextMessage(cid, 27, "Voce ja tem criatura summonada")
			return false 
		end    
	else
		doPlayerSendCancel(cid, "Pode summonar outro em :  " ..exhaustion.get(cid, t.storage).." segundos.")
		return false  
	end
	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

Aqui no TibiaKing mensagens como UP e BUMP são proibidas, utilize o botão subir este tópico. Esta é uma mensagem automática!
Pedimos que leia as regras do fórum!

Spoiler

Here in TibiaKing messages like UP and BUMP are prohibited, use the button raise this topic. This is an automated message!
Please read the forum rules.

 

22 horas atrás, Juninhofdb disse:

@WooX funcionou so que quando tento sumonar se caso tenho um summon de utevo res diz que ja tenho summon.

 

Isso é normal, seu script original também está assim, ele só vai sumonar se a quantidade de summons do player for menor que a configurada em quant no script, altere a variável para 2 que é o valor máximo padrão de summons.

 

 

 

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
18 minutos atrás, WooX disse:

Aqui no TibiaKing mensagens como UP e BUMP são proibidas, utilize o botão subir este tópico. Esta é uma mensagem automática!
Pedimos que leia as regras do fórum!

  Ocultar conteúdo

Here in TibiaKing messages like UP and BUMP are prohibited, use the button raise this topic. This is an automated message!
Please read the forum rules.

 

Isso é normal, seu script original também está assim, ele só vai sumonar se a quantidade de summons do player for menor que a configurada em quant no script, altere a variável para 2 que é o valor máximo padrão de summons.

 

mais continua se eu logar o player ainda da erro

Link para o post
Compartilhar em outros sites
  • Solução
13 horas atrás, WooX disse:

Aqui no TibiaKing mensagens como UP e BUMP são proibidas, utilize o botão subir este tópico. Esta é uma mensagem automática!
Pedimos que leia as regras do fórum!

  Mostrar conteúdo oculto

Here in TibiaKing messages like UP and BUMP are prohibited, use the button raise this topic. This is an automated message!
Please read the forum rules.

 

Isso é normal, seu script original também está assim, ele só vai sumonar se a quantidade de summons do player for menor que a configurada em quant no script, altere a variável para 2 que é o valor máximo padrão de summons.

 

resolvi pode fechar o tópico. segue anexo script corrigido

 

local t = {
storage = 9998, -- poe numero de storage aqui que não tenha no servidor
timer =  2, -- tempo em segundos sem poder usar dinovo
quant = 1, -- quantidade de monstros sumonados
summon = "emberwing",  -- poe nome aki
nMin = 15, -- tempo em minutos aqui da creatura sumir
effect = CONST_ME_MAGIC_RED
}
function onCastSpell(cid, var)
    if exhaustion.check(cid, t.storage) == false then
        if #getCreatureSummons(cid) < t.quant then
            exhaustion.set(cid, t.storage, t.timer * 1)
            local pos = getThingPos(cid)
            local mons = doSummonMonster(cid, t.summon)    
                if #getCreatureSummons(cid) == 1 then
                    local remover = getCreatureSummons(cid)[1] 
                        addEvent(function()
                        if isCreature(cid) == true then
                        addEvent(doRemoveCreature, 1, remover)    
                        end
                        end, t.nMin * 60 * 1000)
                    
                        doPlayerSendTextMessage(cid, 27, "O summon sera removido em 15 minutos. aproveite!")
                else
                    for i = 1,#getCreatureSummons(cid) do
                    local remover = getCreatureSummons(cid)                 
                        addEvent(function()
                        if isCreature(cid) == true then
                        addEvent(doRemoveCreature, 1, remover)    
                        end
                        end, t.nMin * 60 * 1000)
                    end
                    doPlayerSendTextMessage(cid, 27, "O summon sera removido em 15 minutos. aproveite!")
                end
            doSendMagicEffect(pos, t.effect) 
        else
            doPlayerSendTextMessage(cid, 27, "Voce ja tem criatura summonada")
        return false 
        end    
    else
        doPlayerSendCancel(cid, "Pode summonar outro em :  " ..exhaustion.get(cid, t.storage).." segundos.")
        return false  
    end
return true
end

 

 

Link para o post
Compartilhar em outros sites
  • 5 months later...
Em 04/01/2020 em 17:42, WooX disse:

local t = {
	storage = 9998, -- poe numero de storage aqui que não tenha no servidor
	timer =  2, -- tempo em segundos sem poder usar dinovo
	quant = 1, -- quantidade de summons
	summon = "emberwing",  -- nome do summon
	nMin = 15, -- tempo em minutos aqui da criatura irá sumir
	effect = CONST_ME_MAGIC_RED
}

function onCastSpell(cid, var)
	if exhaustion.check(cid, t.storage) == false then
		if #getCreatureSummons(cid) < t.quant then
			exhaustion.set(cid, t.storage, t.timer)
			local pos = getThingPos(cid)
			local mons = doSummonMonster(cid, t.summon)
			addEvent(function()
				if #getCreatureSummons(cid) > 0 then
					for _, sid in pairs(getCreatureSummons(cid)) do
						if isCreature(sid) then
							doRemoveCreature(sid)
						end
					end
				end
			end, t.nMin * 60 * 1000)
			doPlayerSendTextMessage(cid, 27, "O summon sera removido em 15 minutos. aproveite!")
			doSendMagicEffect(pos, t.effect) 
		else
			doPlayerSendTextMessage(cid, 27, "Voce ja tem criatura summonada")
			return false 
		end    
	else
		doPlayerSendCancel(cid, "Pode summonar outro em :  " ..exhaustion.get(cid, t.storage).." segundos.")
		return false  
	end
	return true
end

 

Em 06/01/2020 em 08:09, Juninhofdb disse:

resolvi pode fechar o tópico. segue anexo script corrigido

 

local t = {
storage = 9998, -- poe numero de storage aqui que não tenha no servidor
timer =  2, -- tempo em segundos sem poder usar dinovo
quant = 1, -- quantidade de monstros sumonados
summon = "emberwing",  -- poe nome aki
nMin = 15, -- tempo em minutos aqui da creatura sumir
effect = CONST_ME_MAGIC_RED
}
function onCastSpell(cid, var)
    if exhaustion.check(cid, t.storage) == false then
        if #getCreatureSummons(cid) < t.quant then
            exhaustion.set(cid, t.storage, t.timer * 1)
            local pos = getThingPos(cid)
            local mons = doSummonMonster(cid, t.summon)    
                if #getCreatureSummons(cid) == 1 then
                    local remover = getCreatureSummons(cid)[1] 
                        addEvent(function()
                        if isCreature(cid) == true then
                        addEvent(doRemoveCreature, 1, remover)    
                        end
                        end, t.nMin * 60 * 1000)
                    
                        doPlayerSendTextMessage(cid, 27, "O summon sera removido em 15 minutos. aproveite!")
                else
                    for i = 1,#getCreatureSummons(cid) do
                    local remover = getCreatureSummons(cid)                 
                        addEvent(function()
                        if isCreature(cid) == true then
                        addEvent(doRemoveCreature, 1, remover)    
                        end
                        end, t.nMin * 60 * 1000)
                    end
                    doPlayerSendTextMessage(cid, 27, "O summon sera removido em 15 minutos. aproveite!")
                end
            doSendMagicEffect(pos, t.effect) 
        else
            doPlayerSendTextMessage(cid, 27, "Voce ja tem criatura summonada")
        return false 
        end    
    else
        doPlayerSendCancel(cid, "Pode summonar outro em :  " ..exhaustion.get(cid, t.storage).." segundos.")
        return false  
    end
return true
end

 

 

Isso serve para poketibia queria fazer um de lendário igual o do pokemiw

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo