Helper Level not saving - y_ini
#1

How come this doesn't save the Helper Level?

Код:
CMD:sethelperlevel(playerid, params[])
{
	new targetid, targetname[24], adminname[24], string1[128], string2[128], level, string3[128];

	if(IsPlayerAdmin(playerid))
	{
	    if(sscanf(params, "ud", targetid, level)) return SendClientMessage(playerid, COLOR_RED, "USAGE: /sethelperlevel [ID] [LEVEL]");
	    {
    		new INI:file = INI_Open(Path(playerid));

			INI_WriteInt(file,"HelperLevel",level);

			INI_Close(file);

			GetPlayerName(targetid, targetname, 24);
			GetPlayerName(playerid, adminname, 24);

			format(string1, 128, "You have promoted %s to Helper Level %d.", targetname, level);
			format(string2, 128, "Admin %s has promoted you to Helper Level %d. ", adminname, level);
			format(string3, 128, "Admin %s has used the command: SetHelperLevel", adminname);

			MessageToAdmins(COLOR_ORANGE, string3);
			SendClientMessage(playerid, COLOR_GREEN, string1);
			SendClientMessage(targetid, COLOR_GREEN, string2);
		}
	}
	else SendClientMessage(playerid, COLOR_RED, "You are not an Admin.");
	return 1;
}
Reply
#2

pawn Код:
if(sscanf(params, "ud", targetid, level)) return SendClientMessage(playerid, COLOR_RED, "USAGE: /sethelperlevel [ID] [LEVEL]");
new INI:file = INI_Open(Path(playerid));
INI_WriteInt(file,"HelperLevel",level);
INI_Close(file);

GetPlayerName(targetid, targetname, 24);
GetPlayerName(playerid, adminname, 24);

format(string1, 128, "You have promoted %s to Helper Level %d.", targetname, level);
format(string2, 128, "Admin %s has promoted you to Helper Level %d. ", adminname, level);
format(string3, 128, "Admin %s has used the command: SetHelperLevel", adminname);

MessageToAdmins(COLOR_ORANGE, string3);
SendClientMessage(playerid, COLOR_GREEN, string1);
SendClientMessage(targetid, COLOR_GREEN, string2);
Reply
#3

I think it's because you are opening the wrong file, you want to open the targetid's data file and save the level..right?
pawn Код:
new INI:file = INI_Open(Path(targetid));
INI_WriteInt(file,"HelperLevel",level);
INI_Close(file);
Try that.
Reply
#4

Quote:
Originally Posted by SyntaxQ
Посмотреть сообщение
I think it's because you are opening the wrong file, you want to open the targetid's data file and save the level..right?
pawn Код:
new INI:file = INI_Open(Path(targetid));
INI_WriteInt(file,"HelperLevel",level);
INI_Close(file);
Try that.
Tried it, no difference.

I logged into RCON and set my level, but it didn't save it. After I set my level, I tried using /acmds, which is admin only, but it says "You are not an Admin." One thing I noticed, is that there is 2 "Adminlevel" and "HelperLevel" lines in my .ini file in the scriptfiles.

Код:
CMD:setlevel(playerid, params[])
{
	new targetid, targetname[24], adminname[24], string1[128], string2[128], level, string3[128];
	
	if(IsPlayerAdmin(playerid))
	{
	    if(sscanf(params, "ud", targetid, level)) return SendClientMessage(playerid, COLOR_RED, "USAGE: /setlevel [ID] [LEVEL]");
	    {
    		new INI:file = INI_Open(Path(targetid));

			INI_WriteInt(file,"AdminLevel",level);

			INI_Close(file);

			GetPlayerName(targetid, targetname, 24);
			GetPlayerName(playerid, adminname, 24);

			format(string1, 128, "You have promoted %s to level %d.", targetname, level);
			format(string2, 128, "Admin %s has promoted you to level %d. ", adminname, level);
			format(string3, 128, "Admin %s has used the command: SetLevel", adminname);
			
			MessageToAdmins(COLOR_ORANGE, string3);
			SendClientMessage(playerid, COLOR_GREEN, string1);
			SendClientMessage(targetid, COLOR_GREEN, string2);
		}
	}
	else SendClientMessage(playerid, COLOR_RED, "You are not an Admin.");
	return 1;
}
Here: (y_ini .ini file for me)
Код:
AdminLevel = 2
[User's Data]
Password = x
AdminLevel = 0
Money = 0
Score = 0
Kills = 0
Deaths = 0
Interior = 0
Reply
#5

pawn Код:
new INI:file = INI_Open(Path(targetid));
INI_SetTag(file, "User's Data");
INI_WriteInt(file,"HelperLevel",level);
INI_Close(file);
Reply
#6

Try this.
pawn Код:
CMD:setlevel(playerid, params[])
{
   
    if(IsPlayerAdmin(playerid))
    {
            new targetid, targetname[24], adminname[24], string1[128], string2[128], level, string3[128];
        if(sscanf(params, "ud", targetid, level))
            {
            SendClientMessage(playerid, COLOR_RED, "USAGE: /setlevel [ID] [LEVEL]");
            return 1;
            }
            else
        {
           

            GetPlayerName(targetid, targetname, 24);
            GetPlayerName(playerid, adminname, 24);

            format(string1, 128, "You have promoted %s to level %d.", targetname, level);
            format(string2, 128, "Admin %s has promoted you to level %d. ", adminname, level);
            format(string3, 128, "Admin %s has used the command: SetLevel", adminname);
           
                        PlayerInfo[targetid][AdminLevel] = level; //See this line carefully.
 
            MessageToAdmins(COLOR_ORANGE, string3);
            SendClientMessage(playerid, COLOR_GREEN, string1);
            SendClientMessage(targetid, COLOR_GREEN, string2);
                        level = 0;
        }
    }
    else
        {
        SendClientMessage(playerid, COLOR_RED, "You are not an Admin.");
    return 1;
        }
        return 1;
}
Save the Admin level when player disconnects
Under OnPlayerDisconnect
Код:
    new INI:file = INI_Open(UserPath(playerid));
    INI_SetTag(file,"data");
    INI_WriteInt(file,"Cash",GetPlayerMoney(playerid));
    INI_WriteInt(file,"Admin Level",PlayerInfo[playerid][pAdmin]);
    INI_WriteInt(file,"Kills",PlayerInfo[playerid][pKills]);
    INI_WriteInt(file,"Deaths",PlayerInfo[playerid][pDeaths]);
    INI_Close(file);
Reply
#7

pawn Код:
CMD:sethelperlevel(playerid, params[])
{
    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, "You are not an Admin.");
    new targetid, level;
    if(sscanf(params, "ud", targetid, level)) return SendClientMessage(playerid, COLOR_RED, "USAGE: /sethelperlevel [ID] [LEVEL]");
    if(!IsPlayerConnected(targetid) || targetid == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_RED, "Player not connected.");
    //Recommended that you add a LEVEL check here, to make sure the value they entered is a valid helper level.
    new INI:file = INI_Open(Path(targetid));
    INI_SetTag(file, "User's Data");
    INI_WriteInt(file, "HelperLevel", level);
    INI_Close(file);
    new playername[MAX_PLAYER_NAME], string1[75];
    GetPlayerName(targetid, playername, sizeof(playername));
    format(string1, sizeof(string1), "You have promoted %s to Helper Level %d.", playername, level);
    SendClientMessage(playerid, COLOR_GREEN, string1);
    GetPlayerName(playerid, playername, sizeof(playername));
    format(string1, sizeof(string1), "Admin %s has promoted you to Helper Level %d.", playername, level);
    SendClientMessage(targetid, COLOR_GREEN, string1);
    format(string1, sizeof(string1), "Admin %s has used the command: SetHelperLevel", playername);
    MessageToAdmins(COLOR_ORANGE, string1);
    return 1;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)