[HELP] How do i add admin level to this register script?
#1


I need help adding admin level to this script, so that i can make admin commands



Код:
#include <a_samp>
#include <dudb>
#include <dutils>
#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1

//Colors//
#define COLOR_SYSTEM 0xEFEFF7AA
#define green 0x33FF33AA
#define blue 0x00FFFFAA

new PLAYERLIST_authed[MAX_PLAYERS];

#if defined FILTERSCRIPT

public OnFilterScriptInit()
{
	print("\n--------------------------------------");
	print("Register / Login System");
	print("--------------------------------------\n");
	return 1;
}

public OnFilterScriptExit()
{
	return 1;
}

#else

main()
{
	print("\n----------------------------------");
	print("Register / Login System");
	print("----------------------------------\n");
}

#endif

public OnPlayerRequestSpawn(playerid)
{
if (udb_Exists(PlayerName(playerid))){
if (!PLAYERLIST_authed[playerid]){
SendClientMessage(playerid,green,"You have already registered, use /login to log into your account.");
return 0;
}
}
return 1;
}

public OnPlayerDisconnect(playerid) {
  if (PLAYERLIST_authed[playerid]) {
     // If someone has logged in, it saves money and score.
    dUserSetINT(PlayerName(playerid)).("money",GetPlayerMoney(playerid));
    dUserSetINT(PlayerName(playerid)).("score",GetPlayerScore(playerid));
  }
  PLAYERLIST_authed[playerid]=false;
  return 1;
}

public OnPlayerConnect(playerid)
{

 	if (PLAYERLIST_authed[playerid]==0){
if (udb_Exists(PlayerName(playerid))){
SystemMsg(playerid,"You have already registered, please /login [password] to login.");
}
else{ SystemMsg(playerid,"You do not have an account, use /register [password] to register then /login [password] to login.");
}

return 0;
}
	return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
  dcmd(login,5,cmdtext);
  dcmd(register,8,cmdtext);
  return 0;
}

stock SystemMsg(playerid,msg[]) {
   if ((IsPlayerConnected(playerid))&&(strlen(msg)>0)) {
       SendClientMessage(playerid,COLOR_SYSTEM,msg);
   }
   return 1;
}

stock PlayerName(playerid) {
  new name[255];
  GetPlayerName(playerid, name, 255);
  return name;
}

  dcmd_register(playerid,params[]) {

    if (PLAYERLIST_authed[playerid]) return SystemMsg(playerid,"You have already had an account.");
    if (udb_Exists(PlayerName(playerid))) return SystemMsg(playerid,"You have already created an account, /login [password] to login.");
    if (strlen(params)==0) return SystemMsg(playerid,"USAGE: /register [password]");
    if (udb_Create(PlayerName(playerid),params)) return SystemMsg(playerid,"You have successfully created your account, now use /login [password] to login.");
    return true;

 }

  dcmd_login(playerid,params[]) {

    if (PLAYERLIST_authed[playerid]) return SystemMsg(playerid,"You have already logined.");
    if (!udb_Exists(PlayerName(playerid))) return SystemMsg(playerid,"You do not have an account, please /register [password]");
    if (strlen(params)==0) return SystemMsg(playerid,"USAGE: /login [password]");
    if (udb_CheckLogin(PlayerName(playerid),params)) {
       SetPlayerScore(playerid,dUserINT(PlayerName(playerid)).("score"));
  	   SetPlayerMoney(playerid,dUserINT(PlayerName(playerid)).("money"));
       PLAYERLIST_authed[playerid]=true;
       return SystemMsg(playerid,"You have successfully logined.");
    }
    return SystemMsg(playerid,"Wrong password or nickname!");
}
Reply
#2

first you need enum your PInfo.
Then you need to create a variable like pAdminLevel,
Then you need to put this definition PlayerInfo[MAX_PLAYERS][pInfo]
Then put your command and write there if(PlayerInfo[playerid][pAdminLevel] > 1)


Read a ragister/login tutorial
Reply
#3

i suggest instead of enum use PVars
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)