Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Lembre-se de criar a pasta "Contas" !
- #include a_samp
- #include YSI\y_commands
- #include sscanf2
- #include bINi
- #define GetNick(%0) (GetPlayerName(playerid, gPlayerData[%0][E_NOME], 24), gPlayerData[%0][E_NOME])
- #define IsPlayerLogged(%0) gPlayerData[%0][E_LOGGED]
- #define Vermelho 0xFF0000FF
- enum E_ADMIN{
- bool: E_LOGGED,
- E_NOME[24],
- E_PLAYER,
- E_VALOR,
- E_NIVEL
- };
- new
- gPlayerData [ MAX_PLAYERS ] [ E_ADMIN ],
- gString [128]
- ;
- public OnPlayerConnect(playerid){
- for(new i, e = _:E_ADMIN; i != e; ++i){
- gPlayerData[playerid][E_ADMIN: i] = 0;
- }
- return true;
- }
- public OnPlayerRequestSpawn(playerid){
- format(gString, 128, "/Contas/%s.ips", GetNick(playerid));
- if(fexist(gString) && !IsPlayerLogged(playerid)){
- SendClientMessage(playerid, 0x00FF00FF, "[Info]: Sua conta está registrada em nosso banco de dados, por favor digite /Logar.");
- return false;
- }
- return true;
- }
- CMD:registrar(playerid, params[]){
- if(IsPlayerLogged(playerid)){
- return SendClientMessage(playerid, Vermelho, "[Erro]: Você já está logado!");
- }
- new Senha[32];
- if(sscanf(params, "s[32]", Senha))
- return SendClientMessage(playerid, Vermelho, "[Erro]: /Registrar <Senha>");
- if(strlen(Senha) < 3)
- return SendClientMessage(playerid, Vermelho, "[Erro]: Sua senha tem que ter no mínimo 3 caracteres!");
- format(gString, 128, "/Contas/%s.ips", GetNick(playerid));
- INI_Open(gString);
- INI_WriteString(gString, "Senha", Senha);
- INI_WriteInt(gString, "Score", GetPlayerScore(playerid));
- INI_WriteInt(gString, "Dinheiro", GetPlayerMoney(playerid));
- INI_Save();
- INI_Close();
- SendClientMessage(playerid, -1, "Registrado!");
- return true;
- }
- CMD:logar(playerid, params[]){
- if(IsPlayerLogged(playerid)){
- return SendClientMessage(playerid, Vermelho, "[Erro]: Você já está logado!");
- }
- format(gString, 128, "/Contas/%s.ips", GetNick(playerid));
- if(!fexist(gString)){
- return SendClientMessage(playerid, Vermelho, "[Erro]: Em nosso banco de dados a sua conta não está registrada. Digite /Registrar.");
- }
- new Senha[32];
- if(sscanf(params, "s[32]", Senha))
- return SendClientMessage(playerid, Vermelho, "[Erro]: /Logar <Senha>");
- if(strlen(Senha) < 3)
- return SendClientMessage(playerid, Vermelho, "[Erro]: Sua senha tem que ter no mínimo 3 caracteres!");
- INI_Open(gString);
- if(strcmp(INI_ReadString(gString, "Senha"), Senha, false) != 0)
- return SendClientMessage(playerid, Vermelho, "[Erro]: Senha incorreta.");
- ResetPlayerMoney(playerid);
- SetPlayerScore(playerid, 0);
- SetPlayerScore(playerid, INI_ReadInt(gString, "Score"));
- GivePlayerMoney(playerid, INI_ReadInt(gString, "Dinheiro"));
- SendClientMessage(playerid, -1, "Logado");
- gPlayerData[playerid][E_LOGGED] = true;
- return true;
- }
- CMD:setlevel(playerid, params[]){
- if(!IsPlayerAdmin(playerid)){
- if(!IsPlayerLogged(playerid))
- return SendClientMessage(playerid, Vermelho, "[Erro]: Você não está logado para usar este comando");
- if(gPlayerData[playerid][E_NIVEL] < 5)
- return SendClientMessage(playerid, Vermelho, "[Erro]: Você não tem nível suficiente para usar este comando!");
- }
- if(sscanf(params, "ii", gPlayerData[playerid][E_PLAYER], gPlayerData[playerid][E_VALOR]))
- return SendClientMessage(playerid, Vermelho, "[Erro]: Uso: /Setlevel <id> <level>");
- if(!IsPlayerConnected(gPlayerData[playerid][E_PLAYER]))
- return SendClientMessage(playerid, Vermelho, "[Erro]: Player não conectado!");
- if(gPlayerData[playerid][E_VALOR] < 0 || gPlayerData[playerid][E_VALOR] > 5)
- return SendClientMessage(playerid, Vermelho, "[Erro]: Nível inválido!, escolha de 0(retirar moderação) até 5(admin master)");
- static tempID;
- tempID = gPlayerData[playerid][E_PLAYER];
- if(!gPlayerData[tempID][E_LOGGED])
- return SendClientMessage(playerid, Vermelho, "[Erro]: Player não logado!");
- gPlayerData[tempID][E_NIVEL] = gPlayerData[playerid][E_VALOR];
- format(gString, 128, "O Administrador %s deu ao player %s o nível de administração #%i", GetNick(playerid), GetNick(tempID), gPlayerData[playerid][E_VALOR]);
- SendClientMessageToAll(-1, gString);
- return true;
- }
- CMD:kick(playerid, params[]){
- if(!IsPlayerLogged(playerid))
- return SendClientMessage(playerid, Vermelho, "[Erro]: Você não está logado para usar este comando");
- if(gPlayerData[playerid][E_NIVEL] < 3)
- return SendClientMessage(playerid, Vermelho, "[Erro]: Você não tem nível suficiente para usar este comando!");
- if(sscanf(params, "u", gPlayerData[playerid][E_PLAYER]))
- return SendClientMessage(playerid, Vermelho, "[Erro]: Uso: /Kick <id>");
- if(!IsPlayerConnected(gPlayerData[playerid][E_PLAYER]))
- return SendClientMessage(playerid, Vermelho, "[Erro]: Player não conectado!");
- static tempID;
- tempID = gPlayerData[playerid][E_PLAYER];
- format(gString, 128, "O Administrador %s Kickou o player %s", GetNick(playerid), GetNick(tempID));
- SendClientMessageToAll(-1, gString);
- Kick(tempID);
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement