Ir para conteúdo
  • Cadastre-se

(Resolvido)[AJUDA] GlobalEvent


Ir para solução Resolvido por Wise,

Posts Recomendados

em meu servidor tem um sistema de evento com times, ele já inicia tudo certo mas, estou com dúvida, como e quando ele cria um teleport? preciso de um talkaction para fazer o evento iniciar? 

 

O script:

 

function onTime(interval, lastExecution)

 
local players = getPlayersOnline()
local conta_players = 0
local player_time = 9              -- ALTERAR quantidade de players por time
local pos_teleport = {x = 1032, y = 913, z = 7} -- ALTERAR posição em que o teleport vai nascer
local pos_espera = {x = 1009, y = 904, z = 12}   -- ALTERAR posição da sala de espera até iniciar o evento
local storage = 873456                     -- ALTERAR storage usado no sistema
local tempo_espera = 60 * 1000             -- ALTERAR tempo que players vão esperar na sala de espera
local pos_topos = {
{x = 1023, y = 773, z = 12},     -- ALTERAR posição em que o time 1 vai nascer
{x = 1072, y = 858, z = 12},     -- ALTERAR posição em que o time 2 vai nascer
{x = 1148, y = 809, z = 12},     -- ALTERAR posição em que o time 3 vai nascer
}  
local pos_templo = {x = 1030, y = 913, z = 7} -- ALTERAR posição do templo
 
if #players <= (player_time*3) then
   print("[************] >> Evento Cancelado - Menos de "..(player_time*3).." players online.")
   return TRUE
end
 
doCreateTeleport(1387, pos_espera, pos_teleport)
doBroadcastMessage("Evento de Times Aberto Vocês tem "..(tempo_espera/1000).." segundos para entrar no portal.",22)
 
addEvent(
function()
         local i = 1
         local a = 1
         local pos_espera1 = {x = 1002, y = 800, z = 12}  -- ALTERAR posição do canto superior esquerdo da sala de espera
         local pos_espera2 = {x = 1016, y = 809, z = 12}  -- ALTERAR posição do canto inferior direito da sala de espera
         while i <= #players do
              
              local pos_player = getPlayerPosition(players)
              if pos_player.x >= pos_espera1.x and pos_player.y >= pos_espera1.y and pos_player.x <= pos_espera2.x and pos_player.y <= pos_espera2.y then
                       if getPlayerGroupId(players) <= 1 then
                                  conta_players = conta_players + 1
                       end
              end
              i = i + 1
               
         end
         
         i = 1
         
         if conta_players < (player_time*3) then
         
                  while i <= #players do
              
                       local pos_player = getPlayerPosition(players)
                       if pos_player.x >= pos_espera1.x and pos_player.y >= pos_espera1.y and pos_player.x <= pos_espera2.x and pos_player.y <= pos_espera2.y then
                                if getPlayerGroupId(players) <= 1 then
                                           doTeleportThing(players, pos_templo)
                                end
                       end
                       i = i + 1
               
                  end
                  print("[************] >> Evento Cancelado - Menos de "..(player_time*3).." players na sala de espera.")
                  return TRUE         
         else
 
                  while i <= #players do
                  
                  local outfit1 = getCreatureOutfit(players
                        outfit1.lookHead = 81 
                        outfit1.lookBody = 81 
                        outfit1.lookLegs = 81 
                        outfit1.lookFeet = 81
 
                  local outfit2 = getCreatureOutfit(players
                        outfit2.lookHead = 86 
                        outfit2.lookBody = 86 
                        outfit2.lookLegs = 86 
                        outfit2.lookFeet = 86
 
                  local outfit3 = getCreatureOutfit(players
                        outfit3.lookHead = 94 
                        outfit3.lookBody = 94 
                        outfit3.lookLegs = 94 
                        outfit3.lookFeet = 94 
              
                       local pos_player = getPlayerPosition(players)
                       if pos_player.x >= pos_espera1.x and pos_player.y >= pos_espera1.y and pos_player.x <= pos_espera2.x and pos_player.y <= pos_espera2.y then
                                if getPlayerGroupId(players) <= 1 then
                                           if a == 1 then
                                              setPlayerStorageValue(players, storage, 1)
                                              doTeleportThing(players, pos_topos[1])
                                              doSetCreatureOutfit(players, outfit1, -1)
                                              a = 2
                                           else
                                               if a == 2 then
                                                  setPlayerStorageValue(players, storage, 2)
                                                  doTeleportThing(players, pos_topos[2])
                                                  doSetCreatureOutfit(players, outfit2, -1)
                                                  a = 3
                                               else
                                                   if a == 3 then
                                                      setPlayerStorageValue(players, storage, 3)
                                                      doTeleportThing(players, pos_topos[3])
                                                      doSetCreatureOutfit(players, outfit3, -1)
                                                      a = 1
                                                   end                                                  
                                               end                                              
                                           end
                                           
                                end
                       end
                       i = i + 1
               
                  end
                  doBroadcastMessage("Evento Iniciado, Bora matar o Boss.",22)      
         end
          
end
,tempo_espera)
return TRUE
end

Este script existe no nto shinobi!

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

estou com dúvida, como e quando ele cria um teleport? preciso de um talkaction para fazer o evento iniciar?


Por ser um global event, o teleport é automaticamente criado na posição 1032, 913, 7 e leva à posição 1009, 904, 12.
Nesse caso, ele é iniciado de acordo com o tempo/horário estipulado na tag do mesmo.

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

Por ser um global event, o teleport é automaticamente criado na posição 1032, 913, 7 e leva à posição 1009, 904, 12.

Nesse caso, ele é iniciado de acordo com o tempo/horário estipulado na tag do mesmo.

Hmm, ok! e onde posso ver esta " tag " ?

Link para o post
Compartilhar em outros sites

Procure pelo nome do arquivo (no qual você encontrou esses códigos) em globalevents.xml (data/globalevents).

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

Procure pelo nome do arquivo (no qual você encontrou esses códigos) em globalevents.xml (data/globalevents).

<globalevent name="eventotimes" interval="14:45" event="script" value="eventotimes.lua"/> 

 

seria isso?

Link para o post
Compartilhar em outros sites

seria isso?

Não. Aí você definiu um intervalo para o evento, então seria:

<globalevent name="eventotimes" interval="SEGUNDOS" event="script" value="eventotimes.lua"/> 

Se quiser determinar um horário, use essa tag (porém, você vai ter de mudar o callback do global event para function onTimer()):

<globalevent name="eventotimes" time="15:30" event="script" value="eventotimes.lua"/>
Editado por Suicide (veja o histórico de edições)

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

 

Se quiser determinar um horário, use essa tag:

<globalevent name="eventotimes" time="15:30" event="script" value="eventotimes.lua"/>

15:30 seria o horario que o teleport será criado todo os dias?

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

15:30 seria o horario que o teleport será criado todo os dias?

Exatamente.

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

Vai ser preciso reformular tudo, esse script não determina possíveis vencedores.

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

Vai ser preciso reformular tudo, esse script não determina possíveis vencedores.

É isso parece ser muito complicado, será que consegue fazer isso para eu?

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