Ir para conteúdo
  • Cadastre-se

(Resolvido)[Erro] Globalevent


Ir para solução Resolvido por Vodkart,

Posts Recomendados

Bom, tenho este script abaixo ele tinha que remover uma wall em uma coordenada mas não está funcionando, na hora de retirar a wall ele não retira e não faz nada.

 

Script:

function onThink(interval, lastExecution)
 
local wallpos = {x=296, y=451, z=7, stackpos=1}
local wall = getThingfromPos(wallpos)
if os.date("%A") == "Monday" then
      if (os.date("%X") == "19:00:00") or (os.date("%X") == "19:00:05") then
          if wall.itemid == 1515 then
               broadcastMessage(" Gran Castle ABERTO! ", MESSAGE_EVENT_ADVANCE)  
               doRemoveItem(wall.uid,1)
          end
      elseif (os.date("%X") == "20:00:00") or (os.date("%X") == "20:00:05") then
          broadcastMessage(" Gran Castle FECHADO! ", MESSAGE_EVENT_ADVANCE)
          if wall.itemid ~= 1515 then  
               doCreateItem(1515,wallpos)
          end
      end 
end
 
return TRUE
end

XML:

<globalevent name="castle" interval="5" script="castle.lua"/>

 

OBS: Não acontece nada de errado na TFS, nenhum erro.

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

#Clique na imagem#

 

iodxo.jpg

Link para o post
Compartilhar em outros sites
  • Solução

intervalo a cada 5 segundos?? acho melhor colocar a cada 1 segundo mesmo.

tem que ver se o seu servidor não é em milissegundos...

 

tenta assim

 

function onThink(interval, lastExecution)
local wallpos, wallID = {x=296, y=451, z=7, stackpos=1}, 1515
function OpenAndCloseWall()
if getTileItemById(wallpos, wallID).uid == 0 then
doCreateItem(wallID, 1, wallpos)
else
doRemoveItem(getThingfromPos(wallpos).uid,1)
doSendMagicEffect(wallpos, CONST_ME_POFF)
end
broadcastMessage(" Gran Castle ".. getTileItemById(wallpos, wallID).uid == 0 and "ABERTO" or "FECHADO" .."!", MESSAGE_EVENT_ADVANCE) 
return true
end
if os.date("%A") == "Monday" then
      if (os.date("%X") == "19:00:00") or (os.date("%X") == "19:00:05") then
OpenAndCloseWall()
      elseif (os.date("%X") == "20:00:00") or (os.date("%X") == "20:00:05") then
OpenAndCloseWall()
      end 
end
return TRUE
end
Editado por Vodkart (veja o histórico de edições)

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

Funcionou, valeu cara <3

 

Só uma dúvida, se eu quiser por exemplo adicionar mais dias da semana, como faço?

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

#Clique na imagem#

 

iodxo.jpg

Link para o post
Compartilhar em outros sites
function onThink(interval, lastExecution)
local wallpos, wallID = {x=296, y=451, z=7, stackpos=1}, 1515
function OpenAndCloseWall()
if getTileItemById(wallpos, wallID).uid == 0 then
doCreateItem(wallID, 1, wallpos)
else
doRemoveItem(getThingfromPos(wallpos).uid,1)
doSendMagicEffect(wallpos, CONST_ME_POFF)
end
broadcastMessage(" Gran Castle ".. getTileItemById(wallpos, wallID).uid == 0 and "ABERTO" or "FECHADO" .."!", MESSAGE_EVENT_ADVANCE) 
return true
end
if os.date("%A") == "Monday" then
      if (os.date("%X") == "19:00:00") or (os.date("%X") == "19:00:05") then
OpenAndCloseWall()
      elseif (os.date("%X") == "20:00:00") or (os.date("%X") == "20:00:05") then
OpenAndCloseWall()
      end 
end
return TRUE
end
 
 
Em if os.date("%A") == "Monday" then você adiciona depois do "Mondey": or "Tuesday" ficando
 
if os.date("%A") == "Monday" or  os.date("%A") =="Friday" then
Editado por mateusak (veja o histórico de edições)

Não se esqueça de dar REP+ para quem te ajudou e caso seja a solução marcar como melhor resposta!

 

NÃO CLIQUE AQUI!

NEM AQUI!

________________________________________________________________________________________________________________________________________________________________________________________________________________________

 

A imaginação é mais importante que o conhecimento.” Albert Einstein

Link para o post
Compartilhar em outros sites

usa isInArray, mais fácil.

 

troca essa linha:
 
if os.date("%A") == "Monday" then
 
por
 
local days = {"Monday", "Tuesday", "Wednesday"} -- coloque os dias
if isInArray(days, os.date("%A")) then

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

Cara, dessa eu não sabia. Valeu ai também! Huheuhuehue

Não se esqueça de dar REP+ para quem te ajudou e caso seja a solução marcar como melhor resposta!

 

NÃO CLIQUE AQUI!

NEM AQUI!

________________________________________________________________________________________________________________________________________________________________________________________________________________________

 

A imaginação é mais importante que o conhecimento.” Albert Einstein

Link para o post
Compartilhar em outros sites

 

usa isInArray, mais fácil.

 

troca essa linha:
 
if os.date("%A") == "Monday" then
 
por
 
local days = {"Monday", "Tuesday", "Wednesday"} -- coloque os dias
if isInArray(days, os.date("%A")) then

 

Grato.

#Clique na imagem#

 

iodxo.jpg

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