Ir para conteúdo
  • Cadastre-se

Pedido [Pedido - Script] TFS 1.x Movements checar quantos PLAYERS há em uma determinada área


Posts Recomendados

Preciso de um script que checa quantos players há em uma determinada área do mapa, mas com alguns detalhes importantes:
- TFS 1.x

- Script só faz a contagem se for player ou tutor (ou seja, de: group ID 1 ou 2).

- Caso houver alguém com cargo no server dentro da área da checagem, (group ID 3 - senior tutor à 6 - god) o script não conte e não soma junto na checagem, apenas ignore esses players com cargos.

- Preciso que o script cheque mais de 1 andar/floor no mapa. Será usado pra checar uma cidade inteira, (andares acima e esgotos).

 

Link para o post
Compartilhar em outros sites
local config = {
    fromPosition = { x = 100, y = 100, z = 6 },
    toPosition = { x = 1000, y = 1000, z = 8 },
}

local players = {}
for _, cid in ipairs(getPlayersOnline()) do
    if isInRange(getThingPos(cid), config.fromPosition, config.toPosition) then
        table.insert(players, cid)
    end
end

print(#players)

 

Explicando:

Imprimirá no console do teu otserv, a quantidade de pessoas presentes em determinada área, fromPosition, toPosition.

Link para o post
Compartilhar em outros sites
23 horas atrás, Anderson Sacani disse:


local config = {
    fromPosition = { x = 100, y = 100, z = 6 },
    toPosition = { x = 1000, y = 1000, z = 8 },
}

local players = {}
for _, cid in ipairs(getPlayersOnline()) do
    if isInRange(getThingPos(cid), config.fromPosition, config.toPosition) then
        table.insert(players, cid)
    end
end

print(#players)

 

Explicando:

Imprimirá no console do teu otserv, a quantidade de pessoas presentes em determinada área, fromPosition, toPosition.

 

É possível falar quantos players tem na área em número apenas? sem falar os nicks?

Eu já vi algo parecido com essa contagem de players em números em evento firestorm. Tentei achar e tentar incluir no script mas não consegui. Tem evento que fala "[Fire Storm] Tal player foi morto. Agora restam X players no evento.

 

Ele faz uma atualização da contagem sempre que alguém morre pelo fogo no evento. É exatamente essa forma de contagem e essa forma fazer a atualização dela que preciso. D;

Preciso da parte de teleportar o último player vivo para o templo principal também. Position 200, 200, 7.

Editado por DiigooMix (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Moderador
6 horas atrás, Movie disse:

É bem simples esse script que você necessita. Apenas a função Game.getSpectators e um if.

 

Não consigo fazer agora para você, mas vai seguindo a lógica que te passei ai.

 

Eu tentei isso e não consegui kk essa função está me bugando a cabeça, quando acho que está certo não funciona

Link para o post
Compartilhar em outros sites
Em 02/01/2023 em 23:48, DiigooMix disse:

 

Eu tentei isso e não consegui kk essa função está me bugando a cabeça, quando acho que está certo não funciona


Use o script base do @Anderson Sacani que você conseguirá fazer oque deseja, porque cada vez q passa o “isInRange” vai checar os players na área e irá printar no console. Basta fazer os checks (ifs) para oque você deseja.

 

O Game.getSpectators é uma função muito mal otimizada e ruim de delimitar a área, eu não aconselho usar ela em 1.X+, já que a outra faz tudo de forma melhor.

Link para o post
Compartilhar em outros sites
Em 04/01/2023 em 12:21, Toruk disse:


Use o script base do @Anderson Sacani que você conseguirá fazer oque deseja, porque cada vez q passa o “isInRange” vai checar os players na área e irá printar no console. Basta fazer os checks (ifs) para oque você deseja.

 

O Game.getSpectators é uma função muito mal otimizada e ruim de delimitar a área, eu não aconselho usar ela em 1.X+, já que a outra faz tudo de forma melhor.

mas como seria esse if? a função isInRange trás nomes dos players, não números x.x

Link para o post
Compartilhar em outros sites
Em 05/01/2023 em 18:36, DiigooMix disse:

mas como seria esse if? a função isInRange trás nomes dos players, não números x.x

    local RoomPosition = {x = 250, y = 114, z = 7} -- pos (centro)
    local rangex, rangey = 20, 10 -- quantos sqms x e y
    local specter = getSpectators(RoomPosition, rangex, rangey, false)

    for count, spec in pairs(specter) do
        if isPlayer(spec) then
            print(count) -- quantidade de jogadores na area
        end
    end

Eu não conheço as funções da tfs 1.+ mas acredito que você so precisará modificar o getSpectators para game.getSpectators, acredito que seja isso que você deseja

Link para o post
Compartilhar em outros sites
10 horas atrás, hiquezerah disse:

    local RoomPosition = {x = 250, y = 114, z = 7} -- pos (centro)
    local rangex, rangey = 20, 10 -- quantos sqms x e y
    local specter = getSpectators(RoomPosition, rangex, rangey, false)

    for count, spec in pairs(specter) do
        if isPlayer(spec) then
            print(count) -- quantidade de jogadores na area
        end
    end

Eu não conheço as funções da tfs 1.+ mas acredito que você so precisará modificar o getSpectators para game.getSpectators, acredito que seja isso que você deseja

 

Então o que eu estou tentando fazer é o seguinte:

É tipo um evento porém funcionando 24h, sem parar. Fiz 2 mapas pvp pequenos, e 2 salas de espera. Cada mapa, e cada sala de espera poderá ter no máximo 20 players.

 

 

1. Teleport principal no templo.

- Este TP ficará sempre aberto

- Este tp fará a contagem de players na sala de espera 1 e 2. Caso tenha menos de 20 players na sala de espera 1, o player será teleportado para dentro desta, caso ela estiver cheia (com 20 players), ele fará a contagem na segunda sala de espera. Caso tenha vaga na segunda sala, o player será teleportado para ela. E se caso não houver vaga em nenhuma sala de espera, não será teleportado.

 

2. Sala de espera.

- Como disse acima, cada uma destas salas terá apenas 20 vagas.

- O player que estiver dentro dela poderá sair a hora que quiser, e quando o player sair, a contagem de vagas vai atualizar +1 vaga.

- Enquanto houver players na área pvp, quem estiver na sala de espera não poderá entrar.

 

3. Área pvp.

- Quando esta área estiver vazia, ou seja, a contagem de player nesta área for 0, só será teleportado para esta área quando houver os 20 players na sala de espera.

- Quando um player morrer na área pvp, vai atualizar a contagem de players na área.

- Quando houver o último sobrevivente, ele será teleportado para o templo e ganhará uma recompensa. E então, liberará a área pvp para quem espera poder entrar e recomeçar o ciclo.

 

 

Não sei se vou precisar criar algo em creaturescripts, globalevents e tals. Seja como for, preciso fazer isso funcionar ;s

 

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 LasseXeterno
      Então, estou tentando adicionar uma nova "race" no meu Ot de base Cyan, tentei seguir 3 tutoriais aqui do tibiaking, um sobre race, porém nos códigos do meu servidor não tem o constant.h e nem o monster.cpp. E o outro tutorial, eu fiz tudo que ele pediu e quando entrei no game para testar, funcionava os golpes e as imunidades, porém não aparecia o número do dano e nem a cor.  Usei esse tutorial como base: 
      Pois ele é derivado. E o outro tutorial que usei foi: 
      Porém nesse, não consegui achar a const.h, e quando fui nos arquivos do creaturescript e adicionei uma cor nova a "COLOR_FAIRY", quando abro o jogo, os pokemons que seriam teoricamente "fada", o que eu usei de teste foi a Clefable. A Clefable tomava IK e dava IK no seu atk do tipo fada. 
      Além de que, o meu erro principal é esse: Warning - Monsters::loadMonster] Unknown race type fairy. (data/monster/pokes/geracao 1/Clefable.xml)
       Pois como eu já disse, não consigo achar onde adicionar uma nova race.

    • Por yuriowns
      Salve rapazes, tranquilo? Preciso de ajuda pra colocar para os npc's que vendem pots verificarem quantos itens possuem no tile em que o player está e se tiver com +80 itens no sqm, o npc avisa e não vende nada até o player ir em um sqm com menos de 80 itens no chão.
       
    • Por A.Mokk
      .Qual servidor ou website você utiliza como base? 
      TFS 0.4
      Qual o motivo deste tópico? 
      Bom pessoal, a algumas semanas atras eu joguei um servidor que havia sistema de imbuimento sendo 8.60, no servidor se utilizava a spellwand para encantar as armas, os comandos eram dado no canal Imbuiment... Gostaria de saber se alguém teria como disponibilizar algum sistema de imbuimento, já procurei pra caramba aqui no fórum mas tudo que encontro é pra versões acima da que eu uso.
       
    • Por Mateus Robeerto
      Não sei se aqui é a área ou algum local para solicitar a alteração do email antigo... Não lembro mais a senha dele, nem a resposta secreta para acessar. Peço a algum administrador ou moderador para, por favor, alterar o email para o novo.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo