Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Ah não tinha visto, mas não teria que juntar as configs do talkaction? Se isso for do globalevents então teria que usar os 2 juntos. Se eu for substituir o que  vc postou não vai ter as coordenadas da arena e do templo.

m9r2.png

            Acesse já e seja o domine seu póprio destino !

Link para o post
Compartilhar em outros sites
  • Respostas 69
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Arena War Informações: Todos os Players Falam com o NPC, e vão param em uma sala de espera, após um período todos são teleportados para uma arena, quando todos se matarem e só restar 1 ele ganhara

gabisa00 e pessoal que ta usando o script:   Dei uma olhada no script e achei um bug, quando o evento é fechado (por falta de players) ele só tira o valor da storage global, não mandando os jogadore

Amigo imagine o seguinte, você esta colocando as coordenadas erradas.   veja isso imagine que isso seja a arena.                . <- aqui é a coordenada do canto superior esquerdo            

Posted Images

Você tem que fazer outro globalevents.

 

tag globalevents.xml

<globalevent name="arenawar1" interval="10800000" event="script" value="arenawar1.lua"/>

 

data/globalevents/scripts/arenawar1.lua

function onThink(interval, lastExecution)
  
local tempo_espera = 60 * 1000 -- ALTERAR tempo de espera na sala, 1 minuto
 
doBroadcastMessage("Evento PVP foi Ativado.",22)                 -- ALTERAR frase que aparece para todos quando usar o comando
setGlobalStorageValue(24658, 0)                                  -- ALTERAR storage usado no sistema, deixar todos iguais
addEvent(
function ()
 
         doBroadcastMessage("Evento Iniciado.",22)               -- ALTERAR frase quando todos forem para a arena
         setGlobalStorageValue(24658, 1)                         -- ALTERAR storage usado no sistema, deixar todos iguais
         local players = getPlayersOnline()
         local i = 1
         while i <= #players do
               local pos_player = getPlayerPosition(players)
               local pos1_espera = {x = , y = , z = }           -- ALTERAR pos do canto superior esquerdo da sala de espera
               local pos2_espera = {x = , y = , z = }           -- ALTERAR pos do canto inferior direito da sala de espera
               local pos_arena = {x = , y = , z = }             -- ALTERAR
               if pos_player.x >= pos1_espera.x and pos_player.y >= pos1_espera.y and pos_player.x <= pos2_espera.x and pos_player.y <= pos2_espera.y then
                  doTeleportThing(players, pos_arena)
                  doPlayerSendTextMessage(players, MESSAGE_STATUS_CONSOLE_BLUE, "Batalhe pela sua vida.")   -- ALTERAR frase que vai aparecer para o player quando ele entrar na arena
               end
               
               i = i + 1
         end
 
end
,tempo_espera)
   
return true
end

 

Dúvidas pode perguntar.

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

Funcionou, vlwwww

 

Outra coisinha que esqueci, colocar minimo de players no evento, para não ter um ganhador sozinho entende?

m9r2.png

            Acesse já e seja o domine seu póprio destino !

Link para o post
Compartilhar em outros sites

Substitua o seu data/globalevents/scripts/arenawar1.lua por esse aqui

function onThink(interval, lastExecution)
  
local tempo_espera = 60 * 1000 -- ALTERAR tempo de espera na sala, 1 minuto
 
doBroadcastMessage("Evento PVP foi Ativado.",22)                 -- ALTERAR frase que aparece para todos quando usar o comando
setGlobalStorageValue(24658, 0)                                  -- ALTERAR storage usado no sistema, deixar todos iguais
addEvent(
function ()
 
         doBroadcastMessage("Evento Iniciado.",22)               -- ALTERAR frase quando todos forem para a arena
         setGlobalStorageValue(24658, 1)                         -- ALTERAR storage usado no sistema, deixar todos iguais
         local players = getPlayersOnline()
         local i = 1
         
         while i <= #players do
               local pos_player = getPlayerPosition(players)
               local conta_player = 0
               local pos1_espera = {x = , y = , z = }           -- ALTERAR pos do canto superior esquerdo da sala de espera
               local pos2_espera = {x = , y = , z = }           -- ALTERAR pos do canto inferior direito da sala de espera
               if pos_player.x >= pos1_espera.x and pos_player.y >= pos1_espera.y and pos_player.x <= pos2_espera.x and pos_player.y <= pos2_espera.y then
                         conta_player = conta_player + 1
               end
               
               i = i + 1
         end         
         
         if conta_player <= 1 then
                     doBroadcastMessage("Evento Cancelado Por Falta de Players.",22)
                     return TRUE    
         end
         
         i = 1
         while i <= #players do
               local pos_player = getPlayerPosition(players)
               local pos1_espera = {x = , y = , z = }           -- ALTERAR pos do canto superior esquerdo da sala de espera
               local pos2_espera = {x = , y = , z = }           -- ALTERAR pos do canto inferior direito da sala de espera
               local pos_arena = {x = , y = , z = }             -- ALTERAR
               if pos_player.x >= pos1_espera.x and pos_player.y >= pos1_espera.y and pos_player.x <= pos2_espera.x and pos_player.y <= pos2_espera.y then
                  doTeleportThing(players, pos_arena)
                  doPlayerSendTextMessage(players, MESSAGE_STATUS_CONSOLE_BLUE, "Batalhe pela sua vida.")   -- ALTERAR frase que vai aparecer para o player quando ele entrar na arena
               end
               
               i = i + 1
         end
 
end
,tempo_espera)
   
return true
end

Link para o post
Compartilhar em outros sites

  mano n quer teleporta os player quando o evento inicia o player fica na sala de espera .. olha a imagem abaixo 

 

Imagem Mostrando como configurei certo as posição 

 

 

 

post-80963-0-66234900-1406910735_thumb.p

 

 

 

------------------------------------------------------------------------------------------------------------------------------------

 

Globalevents/script/pvp.lua

 

 

function onThink(interval, lastExecution)
 
local total_players = 0
local storage = 24658 -- ALTERAR storage usado no sistema deixar todos iguais
local item_premio = 2160 -- ALTERAR item dado de premio, caso não queira dar item, coloque 2160
local item_quantidade_premio = 100 -- ALTERAR quantidade do item ganho, caso não queira dar item , coloque 0
local dinheiro_premio = 0 -- ALTERAR dinheiro dado de premio, caso não queira deixe 0
local player_escolhido = 0
local players = getPlayersOnline()
local i = 1
local pos_templo = {x =1027 , y =912 , z =5 } -- ALTERAR coordenada do templo do seu ot server
 
if getGlobalStorageValue(storage) == 1 then
else
return TRUE
end
 
while i <= #players do
local pos_player = getPlayerPosition(players)
local pos1_arena = {x =453 , y =504 , z =7 } -- ALTERAR pos do canto superior esquerdo da arena
local pos2_arena = {x =522 , y =498 , z =7 } -- ALTERAR pos do canto inferior direito da arena
if pos_player.x >= pos1_arena.x and pos_player.y >= pos1_arena.y and pos_player.x <= pos2_arena.x and pos_player.y <= pos2_arena.y then
total_players = total_players + 1
player_escolhido = players
 
end
i = i + 1
end
 
if total_players == 1 then
setGlobalStorageValue(storage, -1)
doTeleportThing(player_escolhido, pos_templo)
doPlayerAddItem(player_escolhido, item_premio, item_quantidade_premio)
doPlayerAddItem(cid,2160,dinheiro_premio)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você é o Vencedor do Evento.") -- ALTERAR frase para o vencedor do premio
doBroadcastMessage("O Player"..(getPlayerName(player_escolhido)).." é o Vencedor do Evento.",22) -- ALTERAR frase para todos, do ganhador do premio
return TRUE
else
if total_players <= 0 then
setGlobalStorageValue(storage, -1)
doBroadcastMessage("Todos os Jogadores Se mataram, fim do Evento.",22) -- ALTERAR frase para todos, do ganhador do premio
return TRUE
end
end
 
return TRUE
end
 
 
 
Esse e meu pvp.lua do Globalevents.
 
 
---------------------------------------------------------------------------------------------------------------------------------
 
MEu Talkations/pvp.lua
 
 
function onSay(cid, words, param)
 
if getGlobalStorageValue(24658) >= 0 then
   doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Evento Já esta Online.")
end
 
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Evento Acabou de Ser Ativado.") 
local tempo_espera = 60 * 1000 -- ALTERAR tempo de espera na sala, 1 minuto
 
doBroadcastMessage("Evento PVP foi Ativado.",22)                 -- ALTERAR frase que aparece para todos quando usar o comando
setGlobalStorageValue(24658, 0)                                  -- ALTERAR storage usado no sistema, deixar todos iguais
addEvent(
function ()
 
         doBroadcastMessage("Evento Iniciado.",22)               -- ALTERAR frase quando todos forem para a arena
         setGlobalStorageValue(24658, 1)                         -- ALTERAR storage usado no sistema, deixar todos iguais
         local players = getPlayersOnline()
         local i = 1
         while i <= #players do
               local pos_player = getPlayerPosition(players)
               local pos1_espera = {x=478 , y=566 , z=7 }           -- ALTERAR pos do canto superior esquerdo da sala de espera
               local pos2_espera = {x=499 , y=566 , z=7 }           -- ALTERAR pos do canto inferior direito da sala de espera
               local pos_arena = {x=488 , y=508 , z=7 }             -- ALTERAR
               if pos_player.x >= pos1_espera.x and pos_player.y >= pos1_espera.y and pos_player.x <= pos2_espera.x and pos_player.y <= pos2_espera.y then
                  doTeleportThing(players, pos_arena)
                  doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Batalhe pela sua vida.")   -- ALTERAR frase que vai aparecer para o player quando ele entrar na arena
               end
               
               i = i + 1
         end
 
end
,tempo_espera)
   
return true
end
 
 
 
 
 
 
 local pos_arena = {x=488 , y=508 , z=7 }   
 
 
Teria como explicar onde coloco essas posições dentro da arena ? 
 
mano o resto coloquei tudo certo mas n daaa 
 
 
Ajuda plsss 
 
 
 

esperando por resposta pra ajuda os players telpporta configurei tudo Certinho poww ajuda ai poxaaaa

Link para o post
Compartilhar em outros sites

Substitua o seu data/globalevents/scripts/arenawar1.lua por esse aqui

function onThink(interval, lastExecution)
  
local tempo_espera = 60 * 1000 -- ALTERAR tempo de espera na sala, 1 minuto
 
doBroadcastMessage("Evento PVP foi Ativado.",22)                 -- ALTERAR frase que aparece para todos quando usar o comando
setGlobalStorageValue(24658, 0)                                  -- ALTERAR storage usado no sistema, deixar todos iguais
addEvent(
function ()
 
         doBroadcastMessage("Evento Iniciado.",22)               -- ALTERAR frase quando todos forem para a arena
         setGlobalStorageValue(24658, 1)                         -- ALTERAR storage usado no sistema, deixar todos iguais
         local players = getPlayersOnline()
         local i = 1
         
         while i <= #players do
               local pos_player = getPlayerPosition(players)
               local conta_player = 0
               local pos1_espera = {x = , y = , z = }           -- ALTERAR pos do canto superior esquerdo da sala de espera
               local pos2_espera = {x = , y = , z = }           -- ALTERAR pos do canto inferior direito da sala de espera
               if pos_player.x >= pos1_espera.x and pos_player.y >= pos1_espera.y and pos_player.x <= pos2_espera.x and pos_player.y <= pos2_espera.y then
                         conta_player = conta_player + 1
               end
               
               i = i + 1
         end         
         
         if conta_player <= 1 then
                     doBroadcastMessage("Evento Cancelado Por Falta de Players.",22)
                     return TRUE    
         end
         
         i = 1
         while i <= #players do
               local pos_player = getPlayerPosition(players)
               local pos1_espera = {x = , y = , z = }           -- ALTERAR pos do canto superior esquerdo da sala de espera
               local pos2_espera = {x = , y = , z = }           -- ALTERAR pos do canto inferior direito da sala de espera
               local pos_arena = {x = , y = , z = }             -- ALTERAR
               if pos_player.x >= pos1_espera.x and pos_player.y >= pos1_espera.y and pos_player.x <= pos2_espera.x and pos_player.y <= pos2_espera.y then
                  doTeleportThing(players, pos_arena)
                  doPlayerSendTextMessage(players, MESSAGE_STATUS_CONSOLE_BLUE, "Batalhe pela sua vida.")   -- ALTERAR frase que vai aparecer para o player quando ele entrar na arena
               end
               
               i = i + 1
         end
 
end
,tempo_espera)
   
return true
end

 

Começou o evento mesmo com 1 player somente e ganhei o premio normalmente

m9r2.png

            Acesse já e seja o domine seu póprio destino !

Link para o post
Compartilhar em outros sites

Amigo imagine o seguinte, você esta colocando as coordenadas erradas.

 

veja isso imagine que isso seja a arena.

 

             . <- aqui é a coordenada do canto superior esquerdo

                ..........................................

                l                                         l

                l                                         l

                l                                         l

                l                                         l

                l                                         l

                l                                         l

                l                                         l

                l                                         l

                .........................................    

                                                              .  <- aqui coordenada do canto inferior direito

 

As coordenadas que você tem que pegar são as coordenada dos cantos que superior esquerdo e inferior direito.


Começou o evento mesmo com 1 player somente e ganhei o premio normalmente

 

Tente usar isso aqui.

function onThink(interval, lastExecution)
  
local tempo_espera = 60 * 1000 -- ALTERAR tempo de espera na sala, 1 minuto
local conta_player = 0
 
doBroadcastMessage("Evento PVP foi Ativado.",22)                 -- ALTERAR frase que aparece para todos quando usar o comando
setGlobalStorageValue(24658, 0)                                  -- ALTERAR storage usado no sistema, deixar todos iguais
addEvent(
function ()
 
         doBroadcastMessage("Evento Iniciado.",22)               -- ALTERAR frase quando todos forem para a arena
         setGlobalStorageValue(24658, 1)                         -- ALTERAR storage usado no sistema, deixar todos iguais
         local players = getPlayersOnline()
         local i = 1
         
         while i <= #players do
               local pos_player = getPlayerPosition(players)
               local pos1_espera = {x = , y = , z = }           -- ALTERAR pos do canto superior esquerdo da sala de espera
               local pos2_espera = {x = , y = , z = }           -- ALTERAR pos do canto inferior direito da sala de espera
               if pos_player.x >= pos1_espera.x and pos_player.y >= pos1_espera.y and pos_player.x <= pos2_espera.x and pos_player.y <= pos2_espera.y then
                         conta_player = conta_player + 1
               end
               
               i = i + 1
         end         
         
         if conta_player <= 1 then
                     doBroadcastMessage("Evento Cancelado Por Falta de Players.",22)
                     return TRUE    
         end
         
         i = 1
         while i <= #players do
               local pos_player = getPlayerPosition(players)
               local pos1_espera = {x = , y = , z = }           -- ALTERAR pos do canto superior esquerdo da sala de espera
               local pos2_espera = {x = , y = , z = }           -- ALTERAR pos do canto inferior direito da sala de espera
               local pos_arena = {x = , y = , z = }             -- ALTERAR de inicio da arena
               if pos_player.x >= pos1_espera.x and pos_player.y >= pos1_espera.y and pos_player.x <= pos2_espera.x and pos_player.y <= pos2_espera.y then
                  doTeleportThing(players, pos_arena)
                  doPlayerSendTextMessage(players, MESSAGE_STATUS_CONSOLE_BLUE, "Batalhe pela sua vida.")   -- ALTERAR frase que vai aparecer para o player quando ele entrar na arena
               end
               
               i = i + 1
         end
 
end
,tempo_espera)
   
return true
end

 

Obs: não houve erro?

Link para o post
Compartilhar em outros sites

Mesma coisa de antes, ganhei o premio sozinho. Sem erros.

m9r2.png

            Acesse já e seja o domine seu póprio destino !

Link para o post
Compartilhar em outros sites

Mano to falando Coloquei tudo certo pow 

 

 

Igual voce falo ai ate postei uma imagem vai na pagina 3 ali e ve oq postei ... 

 

 

tudo certinho mas n tleeporta os player pra arena

Link para o post
Compartilhar em outros sites

Não cara, você não colocou certo, você ao menos leu o que eu postei?

 

As coodenadas que você colocou estão erradas, se nós enquadramos usando as suas coordenadas como vertices opostos de um retangulo a imagem formada não vai cercar toda a arena.

Link para o post
Compartilhar em outros sites

olha so como ta

 

 

talk.lua 

 

pvp.lua

 

 

 

 

function onSay(cid, words, param)
 
if getGlobalStorageValue(24658) >= 0 then
   doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Evento Já esta Online.")
end
 
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Evento Acabou de Ser Ativado.") 
local tempo_espera = 60 * 1000 -- ALTERAR tempo de espera na sala, 1 minuto
 
doBroadcastMessage("Evento PVP foi Ativado.",22)                 -- ALTERAR frase que aparece para todos quando usar o comando
setGlobalStorageValue(24658, 0)                                  -- ALTERAR storage usado no sistema, deixar todos iguais
addEvent(
function ()
 
         doBroadcastMessage("Evento Iniciado.",22)               -- ALTERAR frase quando todos forem para a arena
         setGlobalStorageValue(24658, 1)                         -- ALTERAR storage usado no sistema, deixar todos iguais
         local players = getPlayersOnline()
         local i = 1
         while i <= #players do
               local pos_player = getPlayerPosition(players)
               local pos1_espera = {x=478 , y=560 , z=7 }           -- ALTERAR pos do canto superior esquerdo da sala de espera
               local pos2_espera = {x=499 , y=574 , z=7 }           -- ALTERAR pos do canto inferior direito da sala de espera
               local pos_arena = {x=481 , y=505 , z=7 }             -- ALTERAR
               if pos_player.x >= pos1_espera.x and pos_player.y >= pos1_espera.y and pos_player.x <= pos2_espera.x and pos_player.y <= pos2_espera.y then
                  doTeleportThing(players, pos_arena)
                  doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Batalhe pela sua vida.")   -- ALTERAR frase que vai aparecer para o player quando ele entrar na arena
               end
               
               i = i + 1
         end
 
end
,tempo_espera)
   
return true
end
 
 
 
 
globalevents.lua
 
function onThink(interval, lastExecution)
 
local total_players = 0
local storage = 24658 -- ALTERAR storage usado no sistema deixar todos iguais
local item_premio = 2160 -- ALTERAR item dado de premio, caso não queira dar item, coloque 2160
local item_quantidade_premio = 100 -- ALTERAR quantidade do item ganho, caso não queira dar item , coloque 0
local dinheiro_premio = 0 -- ALTERAR dinheiro dado de premio, caso não queira deixe 0
local player_escolhido = 0
local players = getPlayersOnline()
local i = 1
local pos_templo = {x =1027 , y =912 , z =5 } -- ALTERAR coordenada do templo do seu ot server
 
if getGlobalStorageValue(storage) == 1 then
else
return TRUE
end
 
while i <= #players do
local pos_player = getPlayerPosition(players)
local pos1_arena = {x =454 , y =494 , z =7 } -- ALTERAR pos do canto superior esquerdo da arena
local pos2_arena = {x =524 , y =526 , z =7 } -- ALTERAR pos do canto inferior direito da arena
if pos_player.x >= pos1_arena.x and pos_player.y >= pos1_arena.y and pos_player.x <= pos2_arena.x and pos_player.y <= pos2_arena.y then
total_players = total_players + 1
player_escolhido = players
 
end
i = i + 1
end
 
if total_players == 1 then
setGlobalStorageValue(storage, -1)
doTeleportThing(player_escolhido, pos_templo)
doPlayerAddItem(player_escolhido, item_premio, item_quantidade_premio)
doPlayerAddItem(cid,2160,dinheiro_premio)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você é o Vencedor do Evento.") -- ALTERAR frase para o vencedor do premio
doBroadcastMessage("O Player"..(getPlayerName(player_escolhido)).." é o Vencedor do Evento.",22) -- ALTERAR frase para todos, do ganhador do premio
return TRUE
else
if total_players <= 0 then
setGlobalStorageValue(storage, -1)
doBroadcastMessage("Todos os Jogadores Se mataram, fim do Evento.",22) -- ALTERAR frase para todos, do ganhador do premio
return TRUE
end
end
 
return TRUE
end
 
 
 
 
 
configurei Certinho a ponta do canto esquerdo e ponta do canto direito potna do direito pra baixo 
Link para o post
Compartilhar em outros sites

Me faz um favor, me passa seu map que eu configuro para você, não posso afirmar que está certo ou errado se não tenho o mapa.

 

OBS: você entendeu que o sistema de uma war de 1 por todos neh?


Mesma coisa de antes, ganhei o premio sozinho. Sem erros.

 

Faz o seguinte, usa esse aqui.

function onThink(interval, lastExecution)
  
local tempo_espera = 60 * 1000 -- ALTERAR tempo de espera na sala, 1 minuto
local conta_player = 0
 
doBroadcastMessage("Evento PVP foi Ativado.",22)                 -- ALTERAR frase que aparece para todos quando usar o comando
setGlobalStorageValue(24658, 0)                                  -- ALTERAR storage usado no sistema, deixar todos iguais
addEvent(
function ()
 
         doBroadcastMessage("Evento Iniciado.",22)               -- ALTERAR frase quando todos forem para a arena
         setGlobalStorageValue(24658, 1)                         -- ALTERAR storage usado no sistema, deixar todos iguais
         local players = getPlayersOnline()
         local i = 1
         
         while i <= #players do
               local pos_player = getPlayerPosition(players)
               local pos1_espera = {x = , y = , z = }           -- ALTERAR pos do canto superior esquerdo da sala de espera
               local pos2_espera = {x = , y = , z = }           -- ALTERAR pos do canto inferior direito da sala de espera
               if pos_player.x >= pos1_espera.x and pos_player.y >= pos1_espera.y and pos_player.x <= pos2_espera.x and pos_player.y <= pos2_espera.y then
                         conta_player = conta_player + 1
                         print("[************] >> Contando: "..conta_player..".")
               end
               
               i = i + 1
         end         
         
         if conta_player <= 1 then
                     doBroadcastMessage("Evento Cancelado Por Falta de Players.",22)
                     return TRUE    
         end
         
         i = 1
         while i <= #players do
               local pos_player = getPlayerPosition(players)
               local pos1_espera = {x = , y = , z = }           -- ALTERAR pos do canto superior esquerdo da sala de espera
               local pos2_espera = {x = , y = , z = }           -- ALTERAR pos do canto inferior direito da sala de espera
               local pos_arena = {x = , y = , z = }             -- ALTERAR de inicio da arena
               if pos_player.x >= pos1_espera.x and pos_player.y >= pos1_espera.y and pos_player.x <= pos2_espera.x and pos_player.y <= pos2_espera.y then
                  doTeleportThing(players, pos_arena)
                  doPlayerSendTextMessage(players, MESSAGE_STATUS_CONSOLE_BLUE, "Batalhe pela sua vida.")   -- ALTERAR frase que vai aparecer para o player quando ele entrar na arena
               end
               
               i = i + 1
         end
 
end
,tempo_espera)
   
return TRUE
end

 

Vai aparecer umas frases assim no executável do servidor(o mesmo que mostra os erros), tira um print e me manda aqui.

Tipo essas: [************] >> Contando: 1.

                   [************] >> Contando: 2

Link para o post
Compartilhar em outros sites

Não apareceu nada, aconteceu a mesma coisa que antes.

m9r2.png

            Acesse já e seja o domine seu póprio destino !

Link para o post
Compartilhar em outros sites

Muito bom uma pena não funcionar na minha TFS

"Lendas jamais voltam pois são apenas lendas. eu, eu sou real."

 

Attr:// [GM] Eddy

2013 ~ 2014 R.I.P

Kjc5D10.png

O retorno da lenda....

Link para o post
Compartilhar em outros sites

Não apareceu nada, aconteceu a mesma coisa que antes.

 

Você editou a pasta correta? tinha algum player na sala de espera?

Para fazer este teste é preciso de 1 player na sala de espera.

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

Sim eu fiz e fiquei na sala de espera normalmente, coloquei na pasta correta(arenawar1), tanto que não deu erros.

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

m9r2.png

            Acesse já e seja o domine seu póprio destino !

Link para o post
Compartilhar em outros sites

Antes de dormir prometi para eu mesmo que o terminaria, testado e funcionando perfeitamente, arrumei alguns bugs e erros.

 

Evento ativando sozinho, com minimo de players.

 

function onThink(interval, lastExecution)
 
local tempo_espera = 60 * 1000 -- ALTERAR tempo de espera na sala, 1 minuto
 
doBroadcastMessage("Evento PVP foi Ativado.",22)                 -- ALTERAR frase que aparece para todos quando usar o comando
setGlobalStorageValue(24658, 0)                                  -- ALTERAR storage usado no sistema, deixar todos iguais
addEvent(
function ()
 
 
         local pos_templo = {x = 156, y = 56, z = 7}             -- ALTERAR coordenada do templo do seu ot server
         doBroadcastMessage("Evento Iniciado.",22)               -- ALTERAR frase quando todos forem para a arena
         setGlobalStorageValue(24658, 1)                         -- ALTERAR storage usado no sistema, deixar todos iguais
         local players = getPlayersOnline()
         local i = 1
         local total_player = 0
         
         while i <= #players do
               local pos_player = getPlayerPosition(players)
               local pos1_espera = {x = 152, y = 47, z = 7}           -- ALTERAR pos do canto superior esquerdo da sala de espera
               local pos2_espera = {x = 155, y = 49, z = 7}           -- ALTERAR pos do canto inferior direito da sala de espera
               if pos_player.x >= pos1_espera.x and pos_player.y >= pos1_espera.y and pos_player.x <= pos2_espera.x and pos_player.y <= pos2_espera.y then
                  total_player = total_player + 1
               end
               
               i = i + 1
         end
         
         i = 1
         if total_player <= 1 then
            doBroadcastMessage("Evento Cancelado, Players Insuficientes.",22) -- ALTERAR Frase de evento cancelado por falta de players 
            setGlobalStorageValue(24658, -1)                      -- ALTERAR storage usado no sistema, deixar todos iguais
 
            while i <= #players do
               local pos_player = getPlayerPosition(players)
               local pos1_espera = {x = 152, y = 47, z = 7}           -- ALTERAR pos do canto superior esquerdo da sala de espera
               local pos2_espera = {x = 155, y = 49, z = 7}           -- ALTERAR pos do canto inferior direito da sala de espera
               if pos_player.x >= pos1_espera.x and pos_player.y >= pos1_espera.y and pos_player.x <= pos2_espera.x and pos_player.y <= pos2_espera.y then
                  doTeleportThing(players, pos_templo)
               end
               
               i = i + 1
            end
 
            return TRUE
         end         
         
         while i <= #players do
               local pos_player = getPlayerPosition(players)
               local pos1_espera = {x = 152, y = 47, z = 7}           -- ALTERAR pos do canto superior esquerdo da sala de espera
               local pos2_espera = {x = 155, y = 49, z = 7}           -- ALTERAR pos do canto inferior direito da sala de espera
               local pos_arena = {x = 160, y = 54, z = 7}             -- ALTERAR do inicio da arena
               if pos_player.x >= pos1_espera.x and pos_player.y >= pos1_espera.y and pos_player.x <= pos2_espera.x and pos_player.y <= pos2_espera.y then
                  doTeleportThing(players, pos_arena)
                  doPlayerSendTextMessage(players, MESSAGE_STATUS_CONSOLE_BLUE, "Batalhe pela sua vida.")   -- ALTERAR frase que vai aparecer para o player quando ele entrar na arena
               end
               
               i = i + 1
         end
 
end
,tempo_espera)
   
return true
end

Editado por gabisa00 (veja o histórico de edições)
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.

  • Conteúdo Similar

    • Por xWhiteWolf
      Fala galera, hoje vim trazer o projeto pronto do Magnus Challenger pra vocês instalarem no servidor de vocês!   

      Pra quem não conhece é um sistema de Tasks baseado no Zezenia onde você pode escolher entre tasks de matar monstros ou de coletar certos items para o npc Magnus, um guerreiro famoso da cidade que está atolado de tarefas e precisa da sua ajuda!

      Peguei os aspectos que eu julguei serem os principais do modelo do Zezenia e editei com algumas coisas que eu achei que ficariam melhores.
      Quem quiser pode ver um vídeo comentado de como o sistema funciona:




      Dito isso vou ensinar vocês como instalar isso no server:
      Pra começar vá em data\creaturescripts\scripts e procure login.lua, agora vá até o final do arquivo e antes do último return true coloque essas linhas abaixo

      ainda em creaturescripts procure creaturescripts.xml e adicione essa linha junto com as outras que já estão lá (seguindo o padrão)
      <!-- TASK SYSTEM --> <event type="kill" name="tasksystem" script="tasksystem.lua"/> Agora crie um arquivo em creaturescripts\scripts com o nome de tasksystem.lua e adicione o seguinte à ele:




      Terminada a parte da contagem de kill vamos ao NPC em si.
      Crie um arquivo chamado Magnus.xml em data\npc e coloque isso dentro dele:




      Agora em data\npc\scripts crie um arquivo chamado zezeniaa.lua e adicione esse conteúdo dentro do arquivo:





      ~~~~~~~~~~~~~~~~ FEITO ISSO ESTÁ TERMINADO ~~~~~~~~~~~~~~~~~~

      Agora aprendendo a configurar:
       
      No tasksystem vc pode editar isso daqui:
      Eu fiz um sistema onde se vc estiver em party com alguém e a pessoa matar os bixos conta como se você tivesse matado; Assim incentiva o pessoal a ir numa cave de Dragon e ao invés de matar quem está lá pra ficar sozinho na cave, eles vão chamar party pra fazerem a task juntos.. assim fazer amigos fica mais fácil e com maiores laços é maior a chance do povo não abandonar o seu server.

      Apenas digite "true" ou "false" pra ativar/desativar esse sistema e em baixo temos a distancia máxima pro monstro estar do cara que está fazendo a task pra contar o kill. Se a distancia entre o monstro e a pessoa for maior que 7 não vai contar pra ele a kill.


      No zezeniaa.lua as coisas que dão pra configurar são maiores mas são igualmente simples:
      Toda vez que vc pedir uma task short (curta) vc vai ter de 100 a 400 monstros pra matar, ele gera um número de 0 a 6 e multiplica por 5 e soma com os 100 iniciais.. o mesmo vale pra todos os outros valores.

      levelcollect é o level mínimo pra fazer tasks do tipo collect.
      time é o tempo em segundos que você vai ficar sem poder falar com o npc caso desista de alguma task, o padrão é 8 * 60 * 60 (8 horas)
      bonus é por quanto vai multiplicar caso vc permita que o npc escolha aleatoriamente entre todas as opções.. o padrão é 20% de bonus (1.2)
      multiplicador é uma coisa que eu adicionei pra ficar mais fácil mexer na fórmula sem cometer cagadas, se vc tá ganhando 10% de exp e quer ganhar 80% é só colocar 8 no multiplicador.

       
      Isso daqui é o banco de dados principal do sistema de kill, toda vez que vc escolher uma task do tipo fácil, médio, dificil ele vai acessar essas tabelas contendo o nome das criaturas.. vc pode facilmente adicionar novos nomes, o npc já está programado pra lidar com isso, apenas siga o padrão e mantenha sempre o último sem vírgula!

      Ex: adicionando Morgaroth na tabela de hard
      local hard = { [1] = "Giant Spider", [2] = "Dragon Lord", [3] = "Grim Reaper", [4] = "Demon", [5] = "Crystal Spider", [6] = "Demon Skeleton", [7] = "Juggernaut", [8] = "Destroyer", [9] = "Hand of Cursed Fate", [10] = "Morgaroth" } atente-se também pra não repetir o número no index.. se o anterior era [9] use [10].

      O restante das tabelas são separadas para o banco de dados das tasks de collect:
       
      segue a mesma lógica da de kill só que aqui você tem o id dos itens que serão usados... aquela count não tem nada a ver com o item pois ele vai gerar tanto o item aleatoriamente quanto à count;
      Ex: 
      [1] = {id = 5880, count = 20}, -- iron ore isso não significa que se cair iron ore (id 5880) irá cair sempre 20.. até porque eu poderia escolher uma task long e easy e pegar a task de trazer até 50 iron ores, apenas tente manter os padrões que são os intervalos definidos.
      No easy ele varia de 10 a 20, no medium ele varia de 20 a 35 e no hard de 40 a 50.



      Espero que vocês tenham curtido, é um sistema grande mas bem simples de se mexer... se tiverem quaisquer problemas podem comentar aqui. Deu trabalho fazer isso então se você gostou deixe o seu comentário aí e o seu "Gostei" que vai me incentivar a trazer mais coisas desse tipo pra cá. Abraços do lobo.


      PS: Pra sumonar o npc digite com o GOD: /n Magnus ou coloque ele pelo map editor.



×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo