25/03/2023 18:11
Código PHP:
// Comando para remover um jogador banido da lista de nicks
CMD:unban(playerid, params[]) {
// Verifica se o jogador tem permissão para usar o comando
if(!IsPlayerAdmin(playerid)) {
SendClientMessage(playerid, -1, "Você não tem permissão para usar este comando.");
return 0;
}
// Verifica se o comando foi usado corretamente
if(!strlen(params)) {
SendClientMessage(playerid, -1, "Use: /unban <nick>");
return 0;
}
// Abre o arquivo de nicks banidos
new file = fopen("nicks_banidos.txt", "r");
// Verifica se o arquivo foi aberto com sucesso
if(file == INVALID_FILE) {
SendClientMessage(playerid, -1, "Erro ao abrir o arquivo de nicks banidos.");
return 0;
}
// Lê o arquivo linha por linha e armazena os nicks em um array
new bannedNicks[50][MAX_PLAYER_NAME];
new numBannedNicks = 0;
new line[MAX_PLAYER_NAME + 1];
while(fgets(file, line, sizeof(line))) {
strtok(line, "\n");
format(line, sizeof(line), "%s", line);
format(bannedNicks[numBannedNicks], sizeof(bannedNicks[numBannedNicks]), "%s", line);
numBannedNicks++;
}
// Fecha o arquivo
fclose(file);
// Verifica se o nick está na lista de nicks banidos
new nick[MAX_PLAYER_NAME];
format(nick, sizeof(nick), "%s", params);
new isBanned = false;
for(new i = 0; i < numBannedNicks; i++) {
if(!strcmp(bannedNicks[i], nick)) {
isBanned = true;
break;
}
}
// Se o nick não estiver na lista de nicks banidos, envia uma mensagem de erro
if(!isBanned) {
SendClientMessage(playerid, -1, "Este nick não está na lista de nicks banidos.");
return 0;
}
// Abre o arquivo novamente, desta vez para escrever
file = fopen("nicks_banidos.txt", "w");
// Verifica se o arquivo foi aberto com sucesso
if(file == INVALID_FILE) {
SendClientMessage(playerid, -1, "Erro ao abrir o arquivo de nicks banidos.");
return 0;
}
// Escreve os nicks que não são o nick banido no arquivo
for(new i = 0; i < numBannedNicks; i++) {
if(strcmp(bannedNicks[i], nick)) {
fprintf(file, "%s\n", bannedNicks[i]);
}
}
// Fecha o arquivo
fclose(file);
// Envia uma mensagem de confirmação para o jogador
SendClientMessage(playerid, -1, "O nick %s foi removido da lista de nicks banidos.", nick);
return 1;
}