18/03/2023 02:14
(Esta mensagem foi modificada pela última vez a: 18/03/2023 02:17 por White_Blue.)
Isso é bem simples de fazer. Se for realmente abrir um servidor, vai ter que salvar as variáveis.
Aqui vai um exemplo utilizando variáveis:
Obs: Notei que você está usando strcmp, o que é ultrapassado e extremamente não recomendado para fazer comandos hoje em dia no SA-MP. Use Pawn.CMD, além de ser muito mais rápido é bem mais fácil e prático de usar. https://github.com/katursis/Pawn.CMD/
Aqui vai um exemplo utilizando variáveis:
Código PHP:
new Admin[MAX_PLAYERS] = 0;
public OnPlayerConnect(playerid) {
Admin[playerid] = 0; // Zera a variável ao player se conectar
return 1;
}
public OnPlayerDisconnect(playerid, reason) {
Admin[playerid] = 0; // Zera a variável quando o player desconectar
return 1;
}
CMD:daradmin(playerid, const params[]) {
new id, level, str[128];
if(sscanf(params, "ud", id, level)) return SendClientMessage(playerid, -1, "Use: /daradmin [id] [nível]");
if(!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, "O jogador não está conectado.");
format(str, sizeof(str), "O(A) dono %s[%d] lhe pôs na administração!", GetPlayerNameEx(playerid), playerid);
SetPlayerAdmin(playerid, id, str, 0x086A87AA, level);
return 1;
}
stock SetPlayerAdmin(playerid, target, const message[], color, level) {
Admin[target] = level;
if(level == 0 && Admin[target] >= 1) return SendClientMessage(target, -1, "Você foi retirado da administração");
else if(level > 7) return SendClientMessage(playerid, -1, "Nível de admin inválido. Use níveis de 1 a 7.");
SendClientMessage(target, color, message);
return 1;
}
stock GetPlayerNameEx(playerid) {
static Name[MAX_PLAYER_NAME];
GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
return Name;
}
CMD:ban(playerid, const params[]) { // Comando de teste
new id, motivo[128];
if(Admin[playerid] < 1) return SendClientMessage(playerid, -1, "Você não tem permissão.");
if(sscanf(params, "us[128]", id, motivo)) return SendClientMessage(playerid, -1, "Use: /ban [id] [motivo]");
if(strlen(motivo) > 128 || strlen(motivo) <= 0) return SendClientMessage(playerid, -1, "A mensagem deve conter entre 1 e 128 caracteres.");
Ban(id);
return 1;
}
Obs: Notei que você está usando strcmp, o que é ultrapassado e extremamente não recomendado para fazer comandos hoje em dia no SA-MP. Use Pawn.CMD, além de ser muito mais rápido é bem mais fácil e prático de usar. https://github.com/katursis/Pawn.CMD/
Gráfico feito pelo autor:
Não estou disponível para realizar serviços relacionados ao SA-MP e não costumo responder a mensagens privadas, a menos que estejam relacionadas à moderação do fórum.