27/07/2022 18:31
(Esta mensagem foi modificada pela última vez a: 27/07/2022 18:31 por White_Blue.)
Então, a lógica de salvamento em DOF2 é simples, basicamente funciona em input/output, você salva os dados que estão armazenados em uma variável e puxa no evento desejado. Irei fazer um exemplo sistema de admin simples abaixo.
Código PHP:
new Arq[128];
new Admin[MAX_PLAYERS];
#define Contas "/Contas/%s.ini"
public OnPlayerConnect(playerid) { // Como eu não irei criar uma tela de login, eu salvo a conta do player assim que ele entrar no servidor!
format(Arq, sizeof(Arq), Contas, PlayerName(playerid));
if(!DOF2_FileExists(Arq)) DOF2_CreateFile(Arq);
Input(playerid);
return 1;
}
stock Input(playerid) {
format(Arq, sizeof(Arq), Contas, PlayerName(playerid));
if(Admin[playerid] > 0) Admin[playerid] = DOF2_GetInt(Arq, "Admin");
else {
Admin[playerid] = 0;
}
return 1;
}
stock PlayerName(playerid) {
static Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nome, MAX_PLAYER_NAME);
return Nome;
}
CMD:daradmin(playerid, params[]) {
new plid, level, str[128];
if(!IsPlayerAdmin(playerid)) return 1;
if(sscanf(params, "ud", plid, level)) return SendClientMessage(playerid, -1, "/daradmin [id] [level]");
if(level < 1 || level > 1) return SendClientMessage(playerid, -1, "O level deve ser entre 1 e 2!"); // Farei apenas dois níveis de admin neste exemplo.
Admin[plid] = level;
format(str, sizeof(str), "Você recebeu %d level de admin!", level);
SendClientMessage(playerid, -1, str);
return 1;
}
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.