2025-09-09, 08:36 PM
(This post was last modified: Yesterday, 06:34 PM by Crazy_ArKzX.)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Nesse Tutorial vou Mostrar como Você Pode Guardar a Maior Quantia de Players que seu Servidor já Teve Online
Nesse Tutorial Usaremos 2 Includes
zcmd ou Pawn.CMD = Pra Registrar o Comando /record que vai exibir Nossa SendClientMessage
sscanf = Pra ler o Valor que está na record.txt depois do =
y_hooks(opcional) = Ao Invés de Public Podemos Usar Hook Caso seu Código Seja Separada por Vários Arquivos
Voce Pode Usar Como Salvamento a Include DOF2 ou MySQL, Tem Várias que Voce Pode Usar, mas no Tutorial Usaremos Funções Nativas do Samp
Começando o Tutorial
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Primeiro Precisamos de uma Variável que Guarda a Quantia de Players Online
Vamos Definir ela no Começo do Script Depois das #include
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Agora Precisamos de uma stock que Salve o Arquivo record.txt
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Prontinho, Agora Precisamos Carregar o Record
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Agora Precisamos Chamar a Função CarregarRecorde em OnGameModeInit
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Agora Precisamos Atualizar o Recorde Quando o Player Connecta
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Agora Aqui é Opcional, Você Pode Criar um Comando Simples que Exibe o Record
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Se Voce Tiver Alguma Dúvida Pode Perguntar Aqui em Baixo
Ou Se Tiver uma Sugestão
Edit 1:
Agradecimentos a Leamir, por Sugerir que o Código Evitasse Loops
Eu não sei muito bem como evitar uso de loops mas estou aprendendo cada dia mais
Pesquesei como evitar loops no código e achei este Tutorial e deu pra ter uma boa noção de como evitar os Loops
Obrigado Leamir!
Nesse Tutorial vou Mostrar como Você Pode Guardar a Maior Quantia de Players que seu Servidor já Teve Online
Nesse Tutorial Usaremos 2 Includes
zcmd ou Pawn.CMD = Pra Registrar o Comando /record que vai exibir Nossa SendClientMessage
sscanf = Pra ler o Valor que está na record.txt depois do =
y_hooks(opcional) = Ao Invés de Public Podemos Usar Hook Caso seu Código Seja Separada por Vários Arquivos
Voce Pode Usar Como Salvamento a Include DOF2 ou MySQL, Tem Várias que Voce Pode Usar, mas no Tutorial Usaremos Funções Nativas do Samp
Começando o Tutorial
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Primeiro Precisamos de uma Variável que Guarda a Quantia de Players Online
Vamos Definir ela no Começo do Script Depois das #include
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Code:
new PlayerRecord = 0; // Maior Pico ja Registrado
new PlayersOnline = 0; // Contador Atual de Players Online
Agora Precisamos de uma stock que Salve o Arquivo record.txt
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
PHP Code:
stock SalvarRecorde()
{
new File:abrir = fopen("record.txt", io_write);
if(abrir)
{
new string[32];
format(string, sizeof(string), "%d", PlayerRecord);
fwrite(abrir, string);
fclose(abrir);
}
return 1;
}
Prontinho, Agora Precisamos Carregar o Record
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
PHP Code:
stock trim(string[])
{
new len = strlen(string);
if (len == 0) return 1;
if (string[len - 1] == '\n' || string[len - 1] == '\r' || string[len - 1] == ' ')
{
string[len - 1] = '\0';
trim(string);
}
return 1;
}
stock CarregarRecorde()
{
if(!fexist("record.txt")) return 1; // Se não Existe, sai
new File:arquivo = fopen("record.txt", io_read);
if(arquivo)
{
new linha[64];
// lê a Primeira Linha do Arquivo
if(fread(arquivo, linha))
{
trim(linha);
PlayerRecord = strval(linha);
}
fclose(arquivo);
}
return 1;
}
}
Agora Precisamos Chamar a Função CarregarRecorde em OnGameModeInit
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
PHP Code:
public OnGameModeInit()
{
PlayersOnline = 0; // Inicia o Contador
CarregarRecorde();
return 1;
}
Agora Precisamos Atualizar o Recorde Quando o Player Connecta
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
PHP Code:
public OnPlayerConnect(playerid)
{
PlayersOnline++; // conta +1
if(PlayersOnline > PlayerRecord)
{
PlayerRecord = PlayersOnline;
SalvarRecorde();
new msg[128];
format(msg, sizeof(msg), "[RECORD]: Novo Recorde de Players Online: %d Voces sao fodasss!!!", PlayerRecord);
SendClientMessageToAll(0x00FF00FF, msg);
}
return 1;
}
}
PHP Code:
public OnPlayerDisconnect(playerid, reason)
{
if(PlayersOnline > 0) PlayersOnline--;
return 1;
}
Agora Aqui é Opcional, Você Pode Criar um Comando Simples que Exibe o Record
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
PHP Code:
CMD:record(playerid, params[])
{
new string[64];
format(string, sizeof(string), "Recorde de Players Online: %d", PlayerRecord);
SendClientMessage(playerid, 0x33AA33AA, string);
return 1;
}
}
Se Voce Tiver Alguma Dúvida Pode Perguntar Aqui em Baixo
Ou Se Tiver uma Sugestão
Edit 1:
Agradecimentos a Leamir, por Sugerir que o Código Evitasse Loops
Eu não sei muito bem como evitar uso de loops mas estou aprendendo cada dia mais
Pesquesei como evitar loops no código e achei este Tutorial e deu pra ter uma boa noção de como evitar os Loops
Obrigado Leamir!