Jump to content
  • 0

Admin system


Pinki95

Question

Cum as pute face ca acest fs sa fie pe ZCMD adica comenzile sa fie pe zcmd(vreau doar un exemplu de comanda pe zcmd pusa in acest fs):

[pawn]#include <a_samp>

#include <dini>

#include <dudb>

#include <sscanf2>

#pragma unused ret_memcpy

#define COLOR_GREY 0xAFAFAFAA

#define COLOR_GREEN 0x33AA33AA

#define COLOR_ORANGE 0xFF9900AA

#define COLOR_RED 0xAA3333AA

#define COLOR_YELLOW 0xFFFF00AA

#define COLOR_WHITE 0xFFFFFFFF

enum pInfo

{

pAdminLevel,

pVipLevel,

pCash,

pScore,

}

new PlayerInfo[MAX_PLAYERS][pInfo];

new gPlayerLogged[MAX_PLAYERS];

#define SERVER_USER_FILE "DATABASE/%s.ini"

public OnFilterScriptInit()

{

print("\n--------------------------------------");

print(" Blank Filterscript by your name here");

print("--------------------------------------\n");

return 1;

}

public OnFilterScriptExit()

{

return 1;

}

public OnPlayerConnect(playerid)

{

gPlayerLogged[playerid] = 0;

new name[MAX_PLAYER_NAME], file[256];

GetPlayerName(playerid, name, sizeof(name));

format(file, sizeof(file), SERVER_USER_FILE, name);

if (!dini_Exists(file))

{

ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Hi your not registered", "Welcome, your not registered mate, input your registration pw below", "Register", "Leave");

}

if(fexist(file))

{

ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Hi your registered", "Fucken awesome mate, your registered :D. Inpute your pw below", "Login", "Leave");

}

return 1;

}

public OnPlayerDisconnect(playerid, reason)

{

new name[MAX_PLAYER_NAME], file[256];

GetPlayerName(playerid, name, sizeof(name));

format(file, sizeof(file), SERVER_USER_FILE, name);

if(gPlayerLogged[playerid] == 1)

{

dini_IntSet(file, "Score", PlayerInfo[playerid][pScore]);

dini_IntSet(file, "Money", PlayerInfo[playerid][pCash]);

dini_IntSet(file, "AdminLevel",PlayerInfo[playerid][pAdminLevel]);

dini_IntSet(file, "VipLevel",PlayerInfo[playerid][pVipLevel]);

}

gPlayerLogged[playerid] = 0;

return 1;

}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])

{

if (dialogid == 1)

{

new name[MAX_PLAYER_NAME], file[256], string[128];

GetPlayerName(playerid, name, sizeof(name));

format(file, sizeof(file), SERVER_USER_FILE, name);

if(!response) return Kick(playerid);

if (!strlen(inputtext)) return

ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Hi your not registered", "Welcome, your not registered mate, input your registration pw below", "Register", "Leave");

dini_Create(file);

dini_IntSet(file, "Password", udb_hash(inputtext));

dini_IntSet(file, "AdminLevel",PlayerInfo[playerid][pAdminLevel] = 0);

dini_IntSet(file, "VipLevel",PlayerInfo[playerid][pVipLevel] = 0);

dini_IntSet(file, "Money",PlayerInfo[playerid][pCash] = 500);

dini_IntSet(file, "Score",PlayerInfo[playerid][pScore] = 0);

format(string, 128, "[sYSTEM]: You succesfully registered the nickname %s with password %s, you have been auto logged in.", name, inputtext);

SendClientMessage(playerid, COLOR_YELLOW, string);

gPlayerLogged[playerid] = 1;

}

if (dialogid == 2)

{

new name[MAX_PLAYER_NAME], file[256];

GetPlayerName(playerid, name, sizeof(name));

format(file, sizeof(file), SERVER_USER_FILE, name);

if(!response) return Kick(playerid);

if (!strlen(inputtext)) return ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Hi your registered", "Fucken awesome mate, your registered :D. Inpute your pw below", "Login", "Leave");

new tmp;

tmp = dini_Int(file, "Password");

if(udb_hash(inputtext) != tmp) {

SendClientMessage(playerid, COLOR_RED, "Wrong PW sir.");

ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Hi your registered", "Fucken awesome mate, your registered :D. Inpute your pw below", "Login", "Leave");

}

else

{

gPlayerLogged[playerid] = 1;

PlayerInfo[playerid][pAdminLevel] = dini_Int(file, "AdminLevel");

PlayerInfo[playerid][pVipLevel] = dini_Int(file, "VipLevel");

SetPlayerScore(playerid, PlayerInfo[playerid][pScore]);

GivePlayerMoney(playerid, dini_Int(file, "Money")-GetPlayerMoney(playerid));

SendClientMessage(playerid,COLOR_RED, "[sYSTEM]: Successfully logged in!");

}

}

return 1;

}

[/pawn]

560x95_F01616_1625F2_030303_000000.png
Link to comment
Share on other sites

3 answers to this question

Recommended Posts

Ma refeream la o comanda facuta dar am rezolvat eu si am facut mai multe comenzi!

Acest fs insa are o mica problema nu se salveaza banii si scorul:

[pawn]#include <a_samp>

#include <dini>

#include <dudb>

#include <sscanf2>

#include <zcmd>

#include <SII>

#pragma unused ret_memcpy

#define COLOR_GREY 0xAFAFAFAA

#define COLOR_GREEN 0x33AA33AA

#define COLOR_ORANGE 0xFF9900AA

#define COLOR_RED 0xAA3333AA

#define COLOR_YELLOW 0xFFFF00AA

#define COLOR_WHITE 0xFFFFFFFF

enum pInfo

{

pAdminLevel,

pVipLevel,

pCash,

pScore,

}

new PlayerInfo[MAX_PLAYERS][pInfo];

new gPlayerLogged[MAX_PLAYERS];

#define SERVER_USER_FILE "DATABASE/%s.ini"

public OnFilterScriptInit()

{

print("\n--------------------------------------");

print(" Blank Filterscript by your name here");

print("--------------------------------------\n");

return 1;

}

public OnFilterScriptExit()

{

return 1;

}

public OnPlayerConnect(playerid)

{

gPlayerLogged[playerid] = 0;

new name[MAX_PLAYER_NAME], file[256];

GetPlayerName(playerid, name, sizeof(name));

format(file, sizeof(file), SERVER_USER_FILE, name);

if (!dini_Exists(file))

{

ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Hi your not registered", "Welcome, your not registered mate, input your registration pw below", "Register", "Leave");

}

if(fexist(file))

{

ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Hi your registered", "Fucken awesome mate, your registered :D. Inpute your pw below", "Login", "Leave");

}

return 1;

}

public OnPlayerDisconnect(playerid, reason)

{

new name[MAX_PLAYER_NAME], file[256];

GetPlayerName(playerid, name, sizeof(name));

format(file, sizeof(file), SERVER_USER_FILE, name);

if(gPlayerLogged[playerid] == 1)

{

dini_IntSet(file, "Score", PlayerInfo[playerid][pScore]);

dini_IntSet(file, "Money", PlayerInfo[playerid][pCash]);

dini_IntSet(file, "AdminLevel",PlayerInfo[playerid][pAdminLevel]);

dini_IntSet(file, "VipLevel",PlayerInfo[playerid][pVipLevel]);

}

gPlayerLogged[playerid] = 0;

return 1;

}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])

{

if (dialogid == 1)

{

new name[MAX_PLAYER_NAME], file[256], string[128];

GetPlayerName(playerid, name, sizeof(name));

format(file, sizeof(file), SERVER_USER_FILE, name);

if(!response) return Kick(playerid);

if (!strlen(inputtext)) return

ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Hi your not registered", "Welcome, your not registered mate, input your registration pw below", "Register", "Leave");

dini_Create(file);

dini_IntSet(file, "Password", udb_hash(inputtext));

dini_IntSet(file, "AdminLevel",PlayerInfo[playerid][pAdminLevel] = 0);

dini_IntSet(file, "VipLevel",PlayerInfo[playerid][pVipLevel] = 0);

dini_IntSet(file, "Money",PlayerInfo[playerid][pCash] = 0);

dini_IntSet(file, "Score",PlayerInfo[playerid][pScore] = 0);

format(string, 128, "[sYSTEM]: You succesfully registered the nickname %s with password %s, you have been auto logged in.", name, inputtext);

SendClientMessage(playerid, COLOR_YELLOW, string);

gPlayerLogged[playerid] = 1;

}

if (dialogid == 2)

{

new name[MAX_PLAYER_NAME], file[256];

GetPlayerName(playerid, name, sizeof(name));

format(file, sizeof(file), SERVER_USER_FILE, name);

if(!response) return Kick(playerid);

if (!strlen(inputtext)) return ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Hi your registered", "Fucken awesome mate, your registered :D. Inpute your pw below", "Login", "Leave");

new tmp;

tmp = dini_Int(file, "Password");

if(udb_hash(inputtext) != tmp) {

SendClientMessage(playerid, COLOR_RED, "Wrong PW sir.");

ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Hi your registered", "Fucken awesome mate, your registered :D. Inpute your pw below", "Login", "Leave");

}

else

{

gPlayerLogged[playerid] = 1;

PlayerInfo[playerid][pAdminLevel] = dini_Int(file, "AdminLevel");

PlayerInfo[playerid][pVipLevel] = dini_Int(file, "VipLevel");

SetPlayerScore(playerid, PlayerInfo[playerid][pScore]);

GivePlayerMoney(playerid, dini_Int(file, "Money")-GetPlayerMoney(playerid));

SendClientMessage(playerid,COLOR_RED, "[sYSTEM]: Successfully logged in!");

}

}

return 1;

}

CMD:bani(playerid,params[])

{

    if(PlayerInfo[playerid][pAdminLevel] < 2) return SendClientMessage(playerid,-4,"Ai nevoie de Level 3 pentru a folosi aceasta comanda!");//Checking if the player has  level 3, if not it sends him a message.

GivePlayerMoney(playerid, 12500);

    return 1;

}

CMD:score(playerid,params[])

{

if(PlayerInfo[playerid][pAdminLevel] < 1) return SendClientMessage(playerid,-1,"You need Level 1");

SetPlayerScore(playerid, 150);

return 1;

}

CMD:arme(playerid,params[])

{

if(PlayerInfo[playerid][pAdminLevel] < 3) return SendClientMessage(playerid,-2,"You need Level 3");

GivePlayerWeapon(playerid, 29, 1000);

GivePlayerWeapon(playerid, 31, 1500);

GivePlayerWeapon(playerid, 38, 2000);

return 1;

}

CMD:health(playerid,params[])

{

if(PlayerInfo[playerid][pAdminLevel] < 4) return SendClientMessage(playerid,-3,"You need Level 4");

SetPlayerHealth(playerid, 100);

return 1;

}

CMD:armour(playerid,params[])

{

if(PlayerInfo[playerid][pAdminLevel] < 5) return SendClientMessage(playerid,-5,"You need Level 5");

SetPlayerArmour(playerid, 100);

return 1;

}

CMD:fun(playerid,params[])

{

if(PlayerInfo[playerid][pVipLevel] < 5) return SendClientMessage(playerid,-5,"You need Vip Level 5");

SetPlayerHealth(playerid, 100);

SetPlayerArmour(playerid, 100);

GivePlayerWeapon(playerid, 29, 2500);

GivePlayerWeapon(playerid, 31, 3000);

GivePlayerWeapon(playerid, 24, 200);

GivePlayerWeapon(playerid, 36, 150);

return 1;

}

CMD:setlevel(playerid,params[])

{

    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,-4,"Doar Adminii RCON pot folosii comanda [/setlevel]!");//Checking if the player is rcon admin to set an admin level

    new id, level;//Creating the id variable to store the selected id and a level variable for the chosen admin level.

    if(sscanf(params,"ui",id,level)) return SendClientMessage(playerid,-1,"USAGE: /setlevel <id> <level>");//Check if the player inputted a username or id and a admin level.

    if(!IsPlayerConnected(id)) return SendClientMessage(playerid,-4,"That player is not connected!");//Checking if the selected user is connected or not.

    new file[64],PlayerName[24];//Creating a variable to store the file path, and a variable to store the players name.

    GetPlayerName(id,PlayerName,sizeof PlayerName);//Retrieving the selected id's name,

    format(file,sizeof file,"DATABASE/%s.ini",PlayerName);

    if(!fexist(file)) return SendClientMessage(playerid,-4,"That player is not registered");//Checking if the player is not registered

    INI_Open(file);//Opening the file with SII include

    INI_WriteInt("Level",level);//Writing the line "Level" the selected admin level.

    INI_Save();//Saving the file

    INI_Close();//Closing the file

    PlayerInfo[id][pAdminLevel] = level;

    SendClientMessage(playerid,-1,"You have changed the selected user's admin level");

    SendClientMessage(id,-1,"Your admin level has been changed");

    return 1;

}

CMD:setvip(playerid,params[])

{

    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,-4,"Doar Adminii RCON pot folosii comanda [/setlevel]!");//Checking if the player is rcon admin to set an admin level

    new id, level;//Creating the id variable to store the selected id and a level variable for the chosen admin level.

    if(sscanf(params,"ui",id,level)) return SendClientMessage(playerid,-1,"USAGE: /setlevel <id> <level>");//Check if the player inputted a username or id and a admin level.

    if(!IsPlayerConnected(id)) return SendClientMessage(playerid,-4,"That player is not connected!");//Checking if the selected user is connected or not.

    new file[64],PlayerName[24];//Creating a variable to store the file path, and a variable to store the players name.

    GetPlayerName(id,PlayerName,sizeof PlayerName);//Retrieving the selected id's name,

    format(file,sizeof file,"DATABASE/%s.ini",PlayerName);

    if(!fexist(file)) return SendClientMessage(playerid,-4,"That player is not registered");//Checking if the player is not registered

    INI_Open(file);//Opening the file with SII include

    INI_WriteInt("Level",level);//Writing the line "Level" the selected admin level.

    INI_Save();//Saving the file

    INI_Close();//Closing the file

    PlayerInfo[id][pVipLevel] = level;

    SendClientMessage(playerid,-1,"You have changed the selected user's admin level");

    SendClientMessage(id,-1,"Your admin level has been changed");

    return 1;

}[/pawn]

560x95_F01616_1625F2_030303_000000.png
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.