Ir para conteúdo
  • Cadastre-se

(Resolvido)[Ajuda] Script de invasores não avisa


Ir para solução Resolvido por Movie,

Posts Recomendados

  • Moderador

Estou com um probleminha no script de invasores do Castle 24H, o que acontece é que ele avisa somente uma vez por player e nunca mais avisa de novo, gostaria de solicitar para que ele avisasse de 5 em 5 segundos. Obrigado desde já, rep+ para quem ajudar

 

Script

Spoiler

function onStepIn(cid, item, position, fromPosition)
local n, g = getCreatureName(cid), getPlayerGuildName(cid)
if getPlayerGuildId(cid) == 0 then
doPlayerSendCancel(cid, "[Castle24Hrs] Apenas jogadores com guild e acima de level 100 podem entrar nessa zona.")
doTeleportThing(cid, fromPosition, false) return true
end

if getPlayerStorageValue(cid, 9952) - os.time() < 1 then
setPlayerStorageValue(cid, 9952, os.time() + 250 * 1000)
broadcastMessage(n .." Está invadindo o [Castle24Hrs] para a guild [" .. g .. "].", MESSAGE_STATUS_WARNING)
end
return true
end

 

Meu Curso sobre Programação para OTServer

Programando OTServer

 

Peça o seu script! Entre agora mesmo no grupo

Developing

 

Conteúdos:

 

Discord: Belmont#7352

Não esqueça do REP+ :)     

Link para o post
Compartilhar em outros sites

Salve!

 

Você gostaria que avisasse de 5 em 5 segundos até quando?

 

Nao tenho certeza.

Mas tenta isso, ve se da certo

 

function onStepIn(cid, item, position, fromPosition)
    local n,
        g = getCreatureName(cid), getPlayerGuildName(cid)
    if getPlayerGuildId(cid) == 0 then
        doPlayerSendCancel(
            cid,
            "[Castle24Hrs] Apenas jogadores com guild e acima de level 100 podem entrar nessa zona."
        )
        doTeleportThing(cid, fromPosition, false)
        return true
    end

    if getPlayerStorageValue(cid, 9952) - os.time() < 1 then
        setPlayerStorageValue(cid, 9952, os.time() + 250 * 1000)

        for i = 1, 5 do
            addEvent(
                function()
                    broadcastMessage(
                        n .. " Está invadindo o [Castle24Hrs] para a guild [" .. g .. "].",
                        MESSAGE_STATUS_WARNING
                    )
                end,
                5000
            )
        end
    end
    return true
end

 

Link para o post
Compartilhar em outros sites
  • Moderador

@nigagore Opa! Então cara, ele continua só anunciando uma vez, como o antigo script. Sim, de 5 em 5 segundos pra sempre, tipo, eu vou invadir o castle ai avisa, depois de 5 segundos se eu passar pelo tile de novo, ele avisa mais uma vez, isso sucessivamente. Se eu passar no tile a cada 5 segundos ele avisa que eu estou invadindo, entendeu?

Ele está floodando também, se possível, queria que ele mandasse só uma mensagem a cada 5 segundos

image.png.dfae7f47a633426c33957bef8e2fbe50.png

Meu Curso sobre Programação para OTServer

Programando OTServer

 

Peça o seu script! Entre agora mesmo no grupo

Developing

 

Conteúdos:

 

Discord: Belmont#7352

Não esqueça do REP+ :)     

Link para o post
Compartilhar em outros sites
  • Moderador
52 minutos atrás, Belmont disse:

@nigagore Opa! Então cara, ele continua só anunciando uma vez, como o antigo script. Sim, de 5 em 5 segundos pra sempre, tipo, eu vou invadir o castle ai avisa, depois de 5 segundos se eu passar pelo tile de novo, ele avisa mais uma vez, isso sucessivamente. Se eu passar no tile a cada 5 segundos ele avisa que eu estou invadindo, entendeu?

Ele está floodando também, se possível, queria que ele mandasse só uma mensagem a cada 5 segundos

image.png.dfae7f47a633426c33957bef8e2fbe50.png

Respondi sua dúvida lá no Discord do TK :)

Caso queira dar a solução para os outros só postar aqui.

Link para o post
Compartilhar em outros sites
  • Moderador

@Movie Fiz as alterações aqui, e não deu não. O script ele salva a storage assim que o player pisa nele né? Teria como colocar pra resetar a storage a cada 5 segundos? Pra quando ele passar anunciar de novo?

Meu Curso sobre Programação para OTServer

Programando OTServer

 

Peça o seu script! Entre agora mesmo no grupo

Developing

 

Conteúdos:

 

Discord: Belmont#7352

Não esqueça do REP+ :)     

Link para o post
Compartilhar em outros sites
  • Moderador
  • Solução
local tempo = 5 -- Em segundos
function onStepIn(cid, item, position, fromPosition)
	local n, g = getCreatureName(cid), getPlayerGuildName(cid)
	if getPlayerGuildId(cid) == 0 then
		doPlayerSendCancel(cid, "[Castle24Hrs] Apenas jogadores com guild e acima de level 100 podem entrar nessa zona.")
		doTeleportThing(cid, fromPosition, false) return true
	end

	if getPlayerStorageValue(cid, 9952) > os.time()  then
		setPlayerStorageValue(cid, 9952, (os.time() + tempo * 1000))
		broadcastMessage(n .." Está invadindo o [Castle24Hrs] para a guild [" .. g .. "].", MESSAGE_STATUS_WARNING)
	end
	return true
end

 

Link para o post
Compartilhar em outros sites
  • Moderador

@Movie Funcionou, obrigado!

Meu Curso sobre Programação para OTServer

Programando OTServer

 

Peça o seu script! Entre agora mesmo no grupo

Developing

 

Conteúdos:

 

Discord: Belmont#7352

Não esqueça do REP+ :)     

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