make admin command
#1

Hi, i need help making my /makeadmin
please help. ok
i have this:
new IsLogged[MAX_PLAYERS];
enum pInfo
{
AdminLevel,
Cash,

}
new PlayerInfo[MAX_PLAYERS][pInfo];
and at register it already creates a AdminLevel line in player file... sayin he is adminlevel 0, so at login it fetches the adminlevel which is 0 and makes player level 0. perfect till there
how do i make a /makeadmin command to change player AdminLevel from 0 to what i tell it to be, in the player file.
if it helps, my register and my login commands are these:
if(strcmp(cmd, "/register", true) == 0)
{
new name[MAX_PLAYER_NAME];
tmp = strtok(cmdtext, idx);
GetPlayerName(playerid, name, sizeof(name));
if(strlen(tmp) == 0) return SendClientMessage(playerid, red, "Usage: /register <password>");
format(file,sizeof(file),"/admin/users/%s.ini",name);
if(!fexist(file))
{
dini_Create(file);
dini_IntSet(file, "Password", udb_hash(tmp));
dini_IntSet(file,"AdminLevel", 0);
dini_IntSet(file,"Cash", 0);
SendClientMessage(playerid, red, "Your Account has Been Created. Please /login now");
PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
GetPlayerName(playerid, name, sizeof(name));
printf("%s has now registered!", name);
}
else
{
SendClientMessage(playerid, red, " This account already exists");
PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
return 1;
}

}
if(strcmp(cmd, "/login", true) == 0)
{
new PlayerName[24];
tmp = strtok(cmdtext, idx);
if(strlen(tmp) == 0) return SendClientMessage(playerid, red, "USAGE: /login <password>");
new name[MAX_PLAYER_NAME];
if(IsLogged[playerid] == 1)
{
SendClientMessage(playerid, red, "You already are logged in!");
return 1;
}
else
{
GetPlayerName(playerid, name, sizeof(name));
format(file,sizeof(file),"/admin/users/%s.ini",name);
if(fexist(file))
{
tmp2 = dini_Get(file, "Password");
if(udb_hash(tmp) != strval(tmp2))
{
SendClientMessage(playerid, red, "Login Fail!");
GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
printf("%s Failed to log in", name);
}
else
{
IsLogged[playerid] = 1;
SetPlayerMoney(playerid, dini_Int(file, "Cash"));
PlayerInfo[playerid][AdminLevel] = dini_Int(file, "AdminLevel");
SendClientMessage(playerid, red, "You are Now logged in!");
}
}
}
return 1;
}


THANKS IN ADVANCE and please help me
Reply
#2

pawn Код:
if(!strcmp(cmdtext[1],"makeadmin",true,9))
{
  if(!IsPlayerAdmin(playerid)||PlayerInfo[playerid][AdminLevel]<5)return SendClientMessage(playerid,0xFF0000FF,"You're not authorized to use that command");
  new tmpspace = strfind(cmdtext," ",true,11);
  if(!cmdtext[11])return SendClientMessage(playerid,0xFF0000FF,"USAGE: /MakeAdmin <playerid> <admin level>");
  if(!cmdtext[tmpspace+1])return SendClientMessage(playerid,0xFF0000FF,"USAGE: /MakeAdmin <playerid> <admin level>");
  PlayerInfo[strval(cmdtext[11])][AdminLevel]=strval(cmdtext[tmpspace+1]);
  new tmpstring[128];
  GetPlayerName(strval(cmdtext[11]),tmpstring,MAX_PLAYER_NAME);
  format(tmpstring,128,"You made %s AdminLevel %d",tmpstring,strval(cmdtext[tmpspace+1]));
  SendClientMessage(playerid,0xFFFFFFFF,tmpstring);
  GetPlayerName(playerid,tmpstring,MAX_PLAYER_NAME);
  format(tmpstring,128,"%s made you AdminLevel %d",tmpstring,strval(cmdtext[tmpspace+1]));
  return SendClientMessage(strval(cmdtext[11]),0xFFFFFFFF,tmpstring);
}
Reply
#3

thanks, ur the best
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)