31.01.2010, 22:09
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
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
