07.09.2015, 10:10
If I set someone as an admin, it doesn't save whenever the server restarts.
How do I save the admins from being an admin?
I use <dini>
How do I save the admins from being an admin?
I use <dini>
#include <dini> |
enum pInfo { AdminLevel } |
#define DIALOG_REGISTER 2 #define DIALOG_LOGIN 3 |
public OnPlayerConnect(playerid)
{
new pData[120];
mutedtime[playerid] = 0;
GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
format(pData, sizeof pData, "/Accounts/%s.txt", pName);
if(dini_Exists(pData))
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Login", "Enter your password", "Login", "Cancel");
}
else
{
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Register", "Fill in a password to register", "Register", "Cancel");
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
if(dialogid==DIALOG_LOGIN)
{
if(response==0)
{
SendClientMessage(playerid, COLOR_RED, "You have been automatically kicked from the server!");
Kick(playerid);
return 1;
}
if(response==1)
{
if(!strlen(inputtext))
{
SendClientMessage(playerid, COLOR_RED, "Enter your password!");
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Login", "Enter your password", "Login", "Cancel");
return 1;
}
else
{
Login(playerid, inputtext);
return 1;
}
}
}
if(dialogid==DIALOG_REGISTER)
{
if(response==0)
{
SendClientMessage(playerid, COLOR_RED, "You have been automatically kicked from the server!");
Kick(playerid);
return 1;
}
if(response==1)
{
if(!strlen(inputtext))
{
SendClientMessage(playerid, COLOR_RED, "Fill in a password to register!");
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Register", "Fill in a password to register", "Register", "Cancel");
return 1;
}
else
{
Register(playerid, inputtext);
return 1;
}
}
}
CMD:setadmin(playerid, params[])
{
if(!IsPlayerAdmin(playerid)) return 0;
new targetplayer, pName[MAX_PLAYER_NAME], pName2[MAX_PLAYER_NAME], string[150], Levels;
if(sscanf(params, "ui", targetplayer, Levels)) return SendClientMessage(playerid, COLOR_ORANGE, "Usage: /setadmin [ID] [Level 1-5]");
if(Levels < 1 || Levels > 5) return SendClientMessage(playerid, COLOR_RED, "Error: Available admin levels [1 - 5]");
if(!IsPlayerConnected(targetplayer)) return SendClientMessage(playerid, COLOR_RED, "Error: Player is not connected!");
if(PlayerInfo[targetplayer][AdminLevel] == Levels) return SendClientMessage(playerid, COLOR_RED, "Error: The player is already this admin level.");
GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
GetPlayerName(targetplayer, pName2, MAX_PLAYER_NAME);
format(string, sizeof string, "%s has set your admin level to %d.", pName, Levels);
SendClientMessage(targetplayer, COLOR_GREEN, string);
format(string, sizeof string, "You have set %s his admin level to %d.", pName2, Levels);
SendClientMessage(playerid, COLOR_WHITE, string);
PlayerInfo[targetplayer][AdminLevel] = Levels;
return 1;
}
CMD:setadmin(playerid, params[])
{
if(!IsPlayerAdmin(playerid)) return 0;
new targetplayer, pName[MAX_PLAYER_NAME], pName2[MAX_PLAYER_NAME], string[150], Levels;
if(sscanf(params, "ui", targetplayer, Levels)) return SendClientMessage(playerid, COLOR_ORANGE, "Usage: /setadmin [ID] [Level 1-5]");
if(Levels < 1 || Levels > 5) return SendClientMessage(playerid, COLOR_RED, "Error: Available admin levels [1 - 5]");
if(!IsPlayerConnected(targetplayer)) return SendClientMessage(playerid, COLOR_RED, "Error: Player is not connected!");
if(PlayerInfo[targetplayer][AdminLevel] == Levels) return SendClientMessage(playerid, COLOR_RED, "Error: The player is already this admin level.");
GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
GetPlayerName(targetplayer, pName2, MAX_PLAYER_NAME);
format(string, sizeof string, "%s has set your admin level to %d.", pName, Levels);
SendClientMessage(targetplayer, COLOR_GREEN, string);
format(string, sizeof string, "You have set %s his admin level to %d.", pName2, Levels);
SendClientMessage(playerid, COLOR_WHITE, string);
PlayerInfo[targetplayer][AdminLevel] = Levels;
dUserSetINT(PlayerName2(targetplayer)).("AdminLevel",(Levels));
return 1;
}
PlayerName2(playerid) {
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, sizeof(pname));
return pname;
}
CMD:setadmin(playerid, params[])
{
if(!IsPlayerAdmin(playerid)) return 0;
new targetplayer, pName[MAX_PLAYER_NAME], pName2[MAX_PLAYER_NAME], string[150], Levels;
if(sscanf(params, "ui", targetplayer, Levels)) return SendClientMessage(playerid, COLOR_ORANGE, "Usage: /setadmin [ID] [Level 1-5]");
if(Levels < 1 || Levels > 5) return SendClientMessage(playerid, COLOR_RED, "Error: Available admin levels [1 - 5]");
if(!IsPlayerConnected(targetplayer)) return SendClientMessage(playerid, COLOR_RED, "Error: Player is not connected!");
if(PlayerInfo[targetplayer][AdminLevel] == Levels) return SendClientMessage(playerid, COLOR_RED, "Error: The player is already this admin level.");
GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
GetPlayerName(targetplayer, pName2, MAX_PLAYER_NAME);
format(string, sizeof string, "%s has set your admin level to %d.", pName, Levels);
SendClientMessage(targetplayer, COLOR_GREEN, string);
format(string, sizeof string, "You have set %s his admin level to %d.", pName2, Levels);
SendClientMessage(playerid, COLOR_WHITE, string);
PlayerInfo[targetplayer][AdminLevel] = Levels;
dini_IntSet(pData, "AdminLevel", Levels);
return 1;
}