Ir para conteúdo
  • Cadastre-se

Programação [PEDIDO] Sistema de contagem para uma determinada arena de PVP


Posts Recomendados

Base: Pokémon Imperium

 

Eu preciso de uma contagem para uma determinada arena de PVP

Queria que ao utilizar o comando /contar iria aparecer no global: 3 2 1 GO! . A contagem iria aparecer apenas na arena que eu escolhi, somente quem estivesse lá iria ver a contagem.

A contagem não apareceria todas na mesma linhas, seria tipo:

3

2

1

GO!

 

Espero que alguém consiga me ajudar. Estou precisando desse sistema.

Link para o post
Compartilhar em outros sites

Bom , aqui vai uma explicação de como configurar a fromPos e toPos
A fromPos e a toPos devem abranger todos os quadrados da arena , imagina que toPos seja = { x = 5, y = 5, z = 7 } ,  qual seria a fromPos correta? è simples , fromPos = { x = 10, y = 10, z = 7} . Essas posições devem abrigar todos os quadrados da arena.

explo.thumb.png.06499c688cabd79944b0199566216fda.png

Agora , você ja sabe como como colocar as posições corretamente , vamos a script
Talkactions

function getPlayersInArea(fromPos, toPos) 
playersInArea = {}
for x = fromPos.x, toPos.x do
for y = fromPos.y, toPos.y do
for z = fromPos.z, toPos.z do
totalArea = {x = x, y= y, z = z}
playerz = getTopCreature(totalArea)
if isPlayer(playerz.uid) then
table.insert(playersInArea, playerz.uid)
end
end
end
end
return playersInArea
end

function onSay(cid, words, param, channel)

local fromPos = {x = 10, y = 10, z = 7}
local toPos = {x = 5, y = 5, z = 7}
local area = getPlayersInArea(fromPos, toPos) 

      if area then      
           for i=1, #area do
               doPlayerBroadcastMessage(area[i], "3", 12)
               addEvent(doPlayerBroadcastMessage, 1000 , area[i], "2", 12)
               addEvent(doPlayerBroadcastMessage, 2000 , area[i], "1", 12) 
               addEvent(doPlayerBroadcastMessage, 3000 , area[i], "GO!", 12)  
           end
      else
          doPlayerSendTextMessage(cid, 27, "Não tem nenhum player na área")
      end
end

 

Editado por Sttorm (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
Em 17/05/2018 em 11:40, Sttorm disse:

Bom , aqui vai uma explicação de como configurar a fromPos e toPos
A fromPos e a toPos devem abranger todos os quadrados da arena , imagina que toPos seja = { x = 5, y = 5, z = 7 } ,  qual seria a fromPos correta? è simples , fromPos = { x = 10, y = 10, z = 7} . Essas posições devem abrigar todos os quadrados da arena.

explo.thumb.png.06499c688cabd79944b0199566216fda.png

Agora , você ja sabe como como colocar as posições corretamente , vamos a script
Talkactions


function getPlayersInArea(fromPos, toPos) 
playersInArea = {}
for x = fromPos.x, toPos.x do
for y = fromPos.y, toPos.y do
for z = fromPos.z, toPos.z do
totalArea = {x = x, y= y, z = z}
playerz = getTopCreature(totalArea)
if isPlayer(playerz.uid) then
table.insert(playersInArea, playerz.uid)
end
end
end
end
return playersInArea
end

function onSay(cid, words, param, channel)

local fromPos = {x = 10, y = 10, z = 7}
local toPos = {x = 5, y = 5, z = 7}
local area = getPlayersInArea(fromPos, toPos) 

      if area then      
           for i=1, #area do
               doPlayerBroadcastMessage(area[i], "3", 12)
               addEvent(doPlayerBroadcastMessage, 1000 , area[i], "2", 12)
               addEvent(doPlayerBroadcastMessage, 2000 , area[i], "1", 12) 
               addEvent(doPlayerBroadcastMessage, 3000 , area[i], "GO!", 12)  
           end
      else
          doPlayerSendTextMessage(cid, 27, "Não tem nenhum player na área")
      end
end

 

Não entendi muito bem sobre o toPos e o fromPos, buguei todo aqui.

Tipo, teria como tu explicar com uma imagem mais arrumadinha? (não que essa ai esteja ruim, é q eu buguei com ela ksks)

Tipo, tu colocar em uma imagem, os exemplos do fromPos e do toPos. com números nela.

Link para o post
Compartilhar em outros sites
1 minuto atrás, TicioMadara disse:

Não entendi muito bem sobre o toPos e o fromPos, buguei todo aqui.

Tipo, teria como tu explicar com uma imagem mais arrumadinha? (não que essa ai esteja ruim, é q eu buguei com ela ksks)

Tipo, tu colocar em uma imagem, os exemplos do fromPos e do toPos. com números nela.


Aqui um exemplo, onde está toPos e fromPos você irá colocar as posições respectivas no Remeres :
expli.thumb.png.38ef471a2bd52dddc4e553d0c62656ea.png Esquece esse tile , é de outro sistema , onde está pos1 coloque a fromPos e onde está pos2 coloque a toPos

Link para o post
Compartilhar em outros sites

@Sttorm A contagem funcionou de boa... Mas aparece da seguinte forma:

[ADM] Fulano:

3

[ADM] Fulano:

2

[ADM] Fulano:

1

[ADM] Fulano:

GO!

 

E aparece para todos os jogadores Onlines... não só pra uma certa arena...

Eu queria que não mostrasse o nick de quem startou a contagem...

E fosse apenas pra um local, ou seja, apenas quem estava ali, dentro daquele PVP que iria ver a contagem.

Link para o post
Compartilhar em outros sites

@TicioMadara Perdão , erro meu , agora vai :

function getPlayersInArea(fromPos, toPos) 
playersInArea = {}
for x = fromPos.x, toPos.x do
for y = fromPos.y, toPos.y do
for z = fromPos.z, toPos.z do
totalArea = {x = x, y= y, z = z}
playerz = getTopCreature(totalArea)
if isPlayer(playerz.uid) then
table.insert(playersInArea, playerz.uid)
end
end
end
end
return playersInArea
end

function onSay(cid, words, param, channel)

local fromPos = {x = 10, y = 10, z = 7}
local toPos = {x = 5, y = 5, z = 7}
local area = getPlayersInArea(fromPos, toPos) 

      if area then      
           for i=1, #area do
               doPlayerSendTextMessage(area[i], 12, "3")
               addEvent(doPlayerSendTextMessage, 1000 , area[i], 12, "2")
               addEvent(doPlayerSendTextMessage, 2000 , area[i], 12, "1") 
               addEvent(doPlayerSendTextMessage, 3000 , area[i], 12, "GO!")  
           end
      else
          doPlayerSendTextMessage(cid, 27, "Não tem nenhum player na área")
      end
end

 

Link para o post
Compartilhar em outros sites

@Sttorm ta quase lá, não aparece pra quem esta fora do Local. Mas eu queria que apenas quem estivesse na Arena, iria ver a mensagem no Global.

Assim por Exemplo:

https://imgur.com/oFgvFQJ
https://imgur.com/RkjkyD4
https://imgur.com/qrfskQg
https://imgur.com/PxKte7H

 

Não precisa ser com essas letras ai (claro q se tiver como, pode ser).

Só falta isso pra finalizar o meu pedido, tem arrumar pra ficar desse jeito ai?

/contar, aparece no Global apenas pra quem ta nas Pos, e na arena. Quem esta fora não consegue ver.

Link para o post
Compartilhar em outros sites

@TicioMadara Enfim , a mensagem não aparece para quem está fora da arena se você tiver configurado corretamente e segundo , esses caracteres que você quer não são típicos de um servidor , nesse caso ai são Effects , o que você pode fazer é configurar nessa parte 

               doPlayerSendTextMessage(area[i], 21, "3")
               addEvent(doPlayerSendTextMessage, 1000 , area[i], 21, "2")
               addEvent(doPlayerSendTextMessage, 2000 , area[i], 21, "1") 
               addEvent(doPlayerSendTextMessage, 3000 , area[i], 21, "GO!")  

Onde 21 é o tipo de mensagem enviada , sendo elas :

MESSAGE_FIRST = 18
MESSAGE_STATUS_CONSOLE_RED = MESSAGE_FIRST
MESSAGE_EVENT_ORANGE = 19
MESSAGE_STATUS_CONSOLE_ORANGE = 20
MESSAGE_STATUS_WARNING = 21
MESSAGE_EVENT_ADVANCE = 22
MESSAGE_EVENT_DEFAULT = 23
MESSAGE_STATUS_DEFAULT = 24
MESSAGE_INFO_DESCR = 25
MESSAGE_STATUS_SMALL = 26
MESSAGE_STATUS_CONSOLE_BLUE = 27


Onde está 1000 , 2000 , 3000 são os milissegundos de atraso que as mensagens são enviadas 

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 Muvuka
      Alguem tem anti-nuker igual a esse 
       

       
    • Por Muvuka
      [SQLite] -=[TFS]=- 0.4 8.60 Alguem faz apk mobile pra mim ip: dexsoft.ddns.net
       
      pra mim
       
      https://www.mediafire.com/file/5klqnyy6k7jda0u/OTClientV8.rar/file
       
      TA TUDO AI
    • Por yuriowns
      Salve rapazes, estou precisando de um client próprio para o meu servidor 7.4, preciso que algum programador experiente e com referências faça um client do jeito que eu procuro. Responda aqui para fazermos um orçamento, obrigado!

      Não sei se estou no lugar certo, se não me desculpem e peço que movam por gentileza!
    • Por paulo thush
      Pessoal to com um grande problema, estou com um servidor TFS 1.4x 10.98, recentemente começou dar um problema, sempre quando falava "trade" com o npc dava um erros, com qual quer npc, o erro e o seguinte.
       
       
      me falaram que o problema e nas sourcer que precisava mudar umas coisas me passaram um link no github esse aqui 
      https://github.com/otland/forgottenserver/pull/3996/files
       
      porem eu vi vídeos no youtube ensinando a compilar, já vi muitos tópicos como compilar a sourcer, ai quando vou compilar da esse erro
      já tentei instalar, desinstala muitas coisas, alterar também não vai, minha sourcer e essa 
      https://github.com/otland/forgottenserver
       
       
      Alguém poderia me ajuda com esse erro, ou ate compilar 100% as sourcer. os Tópicos que eu tentei para compilar e esse daqui, se não poder o link me desculpe.
      https://forums.otserv.com.br/index.php?/forums/topic/169234-windowsvc2019-compilando-sources-tfs-14-vcpkg/
       
      alguém me da uma luz por favor kkk
    • Por Ryzek
      Uso tfs 0.4 trunk3884 bem simples.
      Queria acrescentar magic effects para 255 pois o meu só vai até 69. Encontrei um tópico que falava sobre porém parece ter sido removido, não consigo acessar!
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo