08/09/2024 09:21
(08/09/2024 02:38)xbruno1000x Escreveu: Fiz um script rápido com a ajuda do GPT e pedi para que ele documentasse tudo com comentários. Acho que isso vai te dar uma ótima base:
Código:#include <a_samp>
#include <zcmd>
#define DIALOG_ARENAS 1
// Array para armazenar a contagem de jogadores em cada arena
new gArenaPlayers[11];
// Função para exibir a dialog com a contagem real
stock ShowArenaDialog(playerid)
{
new string[512];
format(string, sizeof(string),
"Nome Arena\tPlayers\n"
"[1] Arena Mobile\t%d\n"
"[2] Full M4 (1)\t%d\n"
"[3] Full AK\t%d\n"
"[4] PT DESERT\t%d\n"
"[5] PT Silenciada\t%d\n"
"[6] Arena Prédio\t%d\n"
"[7] Esgoto\t%d\n"
"[8] Ammunation\t%d\n"
"[9] Sniper\t%d\n"
"[10] Arena Doze\t%d\n"
"[11] C-Bug (PC)\t%d",
gArenaPlayers[0], gArenaPlayers[1], gArenaPlayers[2], gArenaPlayers[3],
gArenaPlayers[4], gArenaPlayers[5], gArenaPlayers[6], gArenaPlayers[7],
gArenaPlayers[8], gArenaPlayers[9], gArenaPlayers[10]
);
ShowPlayerDialog(playerid, DIALOG_ARENAS, DIALOG_STYLE_TABLIST, "Arenas do servidor: 10", string, "Entrar", "Voltar");
}
public OnPlayerConnect(playerid)
{
// Quando o jogador conectar, mostra a dialog
ShowArenaDialog(playerid);
return 1;
}
// Função para atualizar a arena de um jogador
stock SetPlayerArena(playerid, arenaid)
{
if(arenaid >= 0 && arenaid < sizeof(gArenaPlayers)) // Validação do ID da arena
{
// Adiciona o jogador à arena e atualiza a contagem
gArenaPlayers[arenaid]++;
}
}
// Função para remover o jogador da arena
stock RemovePlayerFromArena(playerid, arenaid)
{
if(arenaid >= 0 && arenaid < sizeof(gArenaPlayers)) // Validação do ID da arena
{
if(gArenaPlayers[arenaid] > 0) // Garante que não fique negativo
{
gArenaPlayers[arenaid]--;
}
}
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_ARENAS)
{
if(response) // Se o jogador clicar em "Entrar"
{
// O 'listitem' será o índice da arena
SetPlayerArena(playerid, listitem);
SendClientMessage(playerid, -1, "Você entrou na arena selecionada!");
ShowArenaDialog(playerid); // Atualiza a dialog com as novas contagens
}
else // Se o jogador clicar em "Voltar"
{
SendClientMessage(playerid, -1, "Você voltou para o menu anterior.");
}
}
return 1;
}
É literalmente fazer alguns ajustes e já vai ficar funcional.
deu alguns erros, você sabe me dizer oque pode ser?
https://imgur.com/a/6cw6rXA