27/07/2022 12:31
(Esta mensagem foi modificada pela última vez a: 27/07/2022 15:27 por xbruno1000x.)
Estou criando um sistema de admin, estava dando tudo certo, mas a variável admin não é salva na scriptfiles na conta do player
esse é o codigo
esse é o codigo
Código:
//=================================================INCLUDES===========================================//
#include <a_samp>
#include <DOF2>
#include <sscanf2>
#include <zcmd>
main()
{
print("\n----------------------------------");
print(" Blank Gamemode by [M]ADARA");
print("----------------------------------\n");
}
//================================================CORES===========================================//
#define VERMELHO 0xFF9C9CF6
#define VERDE_BEM_CLARO 0xC5FFC2F6
#define AZUL_BEM_CLARO 0xACF6FFF6
#define ROXO 0xCBC2FFF6
#define COR_ROSA_CLARO 0xFFB7FFF6
#define COR_PRETA_TRANSPARENTE 0x00000051
#define COR_VERDE_AMARELADA 0xD8FF12F6
#define COR_BRANCA 0xFFFFFFF6
#define COR_CINZA 0xD2D2D2F6
#define COR_VERDE_FOLHA 0x90BC70F6
#define COR_LARANJA 0xFFA500F6
#define COR_AMARELO 0xEBEB00F6
//================================================VARIAVEIS======================================//
#define Dialog_Registro 1
#define Dialog_Login 2
enum pInfo
{
pLogado,
pAdmin
};
new Player[MAX_PLAYERS][pInfo];
new bool:Registrado[MAX_PLAYERS];
public OnGameModeInit()
{
SetGameModeText("Brasil Conexão RolePlay");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
DisableInteriorEnterExits();
UsePlayerPedAnims();
return 1;
}
public OnGameModeExit()
{
DOF2_Exit();
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
SetSpawnInfo(playerid, 0, 0, -2556.5728, 2898.2754, 89.0627, 346.8486, 0, 0, 0, 0, 0, 0);
SpawnPlayer(playerid);
TogglePlayerControllable(playerid, 0);
SetPlayerCameraPos(playerid, 635.4689, -1917.6497, 58.3797);
SetPlayerCameraLookAt(playerid, 534.3591, -1854.5668, 26.9556, 11000);
if(DOF2_FileExists(Arquivo(playerid))) return ShowPlayerDialog(playerid, Dialog_Login, DIALOG_STYLE_INPUT, "Login", "{FFFFFF}Digite sua Senha", "Cofirmar", "Sair");
if(!DOF2_FileExists(Arquivo(playerid))) return ShowPlayerDialog(playerid, Dialog_Registro, DIALOG_STYLE_INPUT, "Registro", "{FFFFFF}Digite sua Senha", "Cofirmar", "Sair");
return 1;
}
public OnPlayerConnect(playerid)
{
GivePlayerMoney(playerid, 5000);
Player[playerid][pAdmin] = DOF2_GetInt(Arquivo(playerid), "Admin");
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
if(DOF2_FileExists(Arquivo(playerid)))
{
DOF2_SetInt(Arquivo(playerid), "Admin", Player[playerid][pAdmin]);
DOF2_SaveFile();
}
else
{
DOF2_CreateFile(Arquivo(playerid));
DOF2_SetInt(Arquivo(playerid), "Admin", Player[playerid][pAdmin]);
DOF2_SaveFile();
}
return 1;
}
public OnPlayerSpawn(playerid)
{
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
return 1;
}
public OnVehicleSpawn(vehicleid)
{
return 1;
}
public OnVehicleDeath(vehicleid, killerid)
{
return 1;
}
public OnPlayerText(playerid, text[])
{
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/mycommand", cmdtext, true, 10) == 0)
{
// Do something here
return 1;
}
return 0;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
return 1;
}
public OnPlayerEnterCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveCheckpoint(playerid)
{
return 1;
}
public OnPlayerEnterRaceCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveRaceCheckpoint(playerid)
{
return 1;
}
public OnRconCommand(cmd[])
{
return 1;
}
public OnPlayerRequestSpawn(playerid)
{
return 1;
}
public OnObjectMoved(objectid)
{
return 1;
}
public OnPlayerObjectMoved(playerid, objectid)
{
return 1;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
return 1;
}
public OnVehicleMod(playerid, vehicleid, componentid)
{
return 1;
}
public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
return 1;
}
public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
return 1;
}
public OnPlayerSelectedMenuRow(playerid, row)
{
return 1;
}
public OnPlayerExitedMenu(playerid)
{
return 1;
}
public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
return 1;
}
public OnRconLoginAttempt(ip[], password[], success)
{
return 1;
}
public OnPlayerUpdate(playerid)
{
return 1;
}
public OnPlayerStreamIn(playerid, forplayerid)
{
return 1;
}
public OnPlayerStreamOut(playerid, forplayerid)
{
return 1;
}
public OnVehicleStreamIn(vehicleid, forplayerid)
{
return 1;
}
public OnVehicleStreamOut(vehicleid, forplayerid)
{
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == Dialog_Registro)
{
if(response)
{
if(strlen(inputtext) < 4 || strlen(inputtext) > 8) return SendClientMessage(playerid, -1, "Sua Senha deve conter entre 4 e 8 caracteres!"), ShowPlayerDialog(playerid, Dialog_Registro, DIALOG_STYLE_INPUT, "Registro", "{FFFFFF}Digite sua Senha", "Cofirmar", "Sair");
DOF2_CreateFile(Arquivo(playerid));
DOF2_SetString(Arquivo(playerid), "Senha", inputtext);
DOF2_SaveFile();
SetSpawnInfo(playerid, 0, 26, 1451.6366,-2287.0376,13.5469,267.0363,0,0,0,0,0,0);
SpawnPlayer(playerid);
TogglePlayerControllable(playerid, 1);
SetCameraBehindPlayer(playerid);
Player[playerid][pLogado] = 1;
}
else
{
Kick(playerid);
}
return 1;
}
if(dialogid == Dialog_Login)
{
if(strcmp(inputtext, DOF2_GetString(Arquivo(playerid), "Senha")) == 0)
{
SetSpawnInfo(playerid, 0, 26, 1451.6366,-2287.0376,13.5469,267.0363,0,0,0,0,0,0);
SpawnPlayer(playerid);
TogglePlayerControllable(playerid, 1);
SetCameraBehindPlayer(playerid);
Player[playerid][pLogado] = 1;
}
else
{
SendClientMessage(playerid, -1, "Senha Incorreta");
ShowPlayerDialog(playerid, Dialog_Login, DIALOG_STYLE_INPUT, "Login", "{FFFFFF}Digite sua Senha", "Cofirmar", "Sair");
}
}
else
{
Kick(playerid);
}
return 1;
}
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
return 1;
}
CMD:daradmin(playerid, params[])
{
new id, nivel, string[250];
if(!IsPlayerAdmin(playerid) && Player[playerid][pAdmin] <5) return SendClientMessage(playerid, VERMELHO,"Você não está Autorizado a utilizar este Comando");
if(sscanf(params, "dd", id, nivel)) return SendClientMessage(playerid, ROXO,"USE /DARADMIN [ID] [NIVEL]");
if(nivel < 0 || nivel > 5) return SendClientMessage(playerid, ROXO,"NIVEL DE ADMIN 0 A 5");
if (!IsPlayerConnected(id)) return SendClientMessage(playerid, VERMELHO, "digite um [id] valido");
Player[id][pAdmin] = nivel;
format(string, 250, "Você Se Tornou Admin Nivel %d", nivel);
SendClientMessage(id, -1, string);
return 1;
}
CMD:retiraradmin(playerid, params[])
{
new id, string[250];
if(!IsPlayerAdmin(playerid) && Player[playerid][pAdmin] <5) return SendClientMessage(playerid, VERMELHO,"Você não está Autorizado a utilizar este Comando");
if(sscanf(params, "d", id)) return SendClientMessage(playerid, ROXO,"USE /TIRARADMIN [ID]");
if (!IsPlayerConnected(id)) return SendClientMessage(playerid, VERMELHO, "digite um [id] valido");
Player[id][pAdmin] = 0;
format(string, 250, "Você não é mais um admin");
SendClientMessage(id, -1, string);
return 1;
}
CMD:ir(playerid, params[])
{
new id, Float:pos[3], string[150];
if(!IsPlayerAdmin(playerid) && Player[playerid][pAdmin] <1 ) return SendClientMessage(playerid, VERMELHO,"Você não está Autorizado a utilizar este Comando");
if(sscanf(params, "d", id)) return SendClientMessage(playerid, ROXO,"USE /IR [ID]");
if (!IsPlayerConnected(id)) return SendClientMessage(playerid, VERMELHO, "digite um [id] valido");
GetPlayerPos(id, pos[0], pos[1], pos[2]);
SetPlayerPos(playerid, pos[0], pos[1], pos[2]);
format(string, 150, "Você Foi Até o Jogador %s", pName(id));
SendClientMessage(playerid, -1, string);
return 1;
}
CMD:trazer(playerid, params[])
{
new id, Float:pos[3], string[150];
if(!IsPlayerAdmin(playerid) && Player[playerid][pAdmin] <1 ) return SendClientMessage(playerid, VERMELHO,"Você não está Autorizado a utilizar este Comando");
if(sscanf(params, "d", id)) return SendClientMessage(playerid, ROXO,"USE /TRAZER [ID]");
if (!IsPlayerConnected(id)) return SendClientMessage(playerid, VERMELHO, "digite um [id] valido");
GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
SetPlayerPos(id, pos[0], pos[1], pos[2]);
format(string, 150, "Você Puxou Jogador %s", pName(id));
SendClientMessage(playerid, -1, string);
return 1;
}
CMD:avisoadm(playerid, params[])
{
new mensagem[250], string[250];
if(!IsPlayerAdmin(playerid) && Player[playerid][pAdmin] <3 ) return SendClientMessage(playerid, VERMELHO,"Você não está Autorizado a utilizar este Comando");
if(sscanf(params, "s[250]", mensagem)) return SendClientMessage(playerid, ROXO,"USE /AVISO [MENSAGEM]");
format(string, 250, "%s [%d] > %s", pName(playerid), playerid, mensagem);
SendClientMessageToAll(-1, "=====Administração=====");
SendClientMessageToAll(-1, string);
return 1;
}
stock pName(playerid)
{
new Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nome, MAX_PLAYER_NAME);
return Nome;
}
stock Arquivo(playerid)
{
new string[100];
format(string, 100, "Contas/%s.ini", pName(playerid));
return string;
}