SA-MP Forums Archive
My server is automatic gives levels ! Solve Pls - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: My server is automatic gives levels ! Solve Pls (/showthread.php?tid=645711)



My server is automatic gives levels ! Solve Pls - vikoo - 02.12.2017

Hello, i have created a server Deathmatch and after i finished that someone joined the server then i typed /admins i found his level 20 and my level is 510 how is that? anyone joining the server take a level


Re: My server is automatic gives levels ! Solve Pls - Lucases - 02.12.2017

Well, do we have to guess your code?


Re: My server is automatic gives levels ! Solve Pls - Marllun - 02.12.2017

Show the code levels and admins.


Re: My server is automatic gives levels ! Solve Pls - vikoo - 02.12.2017

i have this
Код:
CMD:giveladmin(playerid,params[]) {
	new string[128],playername[MAX_PLAYER_NAME];
	if(IsPlayerAdmin(playerid)) {
		if(PlayerInfo[playerid][LoggedIn] == 0) return SendClientMessage(playerid,COLOR_RED,"ERROR: Player must be registered to be an admin");
		CMDMessageToAdmins(playerid,"GIVELADMIN");
		GetPlayerName(playerid, playername, sizeof(playername));
		new year,month,day;
		getdate(year, month, day);
		format(string,128,"You have made yourself [Level 13] on %d/%d/%d", day, month, year);
		SendClientMessage(playerid,blue,string);
		format(string,128,"%s has made him/herself [Level 13] on %d/%d/%d", playername, day, month, year);
		SaveToFile("AdminLog",string);
		dUserSetINT(PlayerName2(playerid)).("level",(13));
		PlayerInfo[playerid][Level] = 13;
	} else	{
		SendClientMessage(playerid,COLOR_RED,"ERROR: You must be logged into rcon to use this command");
	}
	return 1;
}
and this
Код:
CMD:setlevel(playerid,params[]) {
	if(PlayerInfo[playerid][LoggedIn] == 1) {
		if(PlayerInfo[playerid][Level] >= 13 || IsPlayerAdmin(playerid)) {
		    new tmp[128], tmp2[128], Index;		tmp = strtok(params,Index), tmp2 = strtok(params,Index);
		    if(isnull(params)) return SendClientMessage(playerid, red, "{00FF40}Usage: /setlevel {FF00D9}[PlayerID][Level][0-13]");
	    	new player1, level, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
			player1 = strval(tmp);
			if(isnull(tmp2)) return SendClientMessage(playerid, red, "{00FF40}USAGE: /setlevel [playerid] [level]");
			level = strval(tmp2);

			if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
				if(PlayerInfo[player1][LoggedIn] == 1) {
					if(level > ServerInfo[MaxAdminLevel] ) return SendClientMessage(playerid,red,"ERROR: Incorrect Level");
					if(level == PlayerInfo[player1][Level]) return SendClientMessage(playerid,red,"ERROR: Player is already this level");
	       			CMDMessageToAdmins(playerid,"SETLEVEL");
					GetPlayerName(player1, playername, sizeof(playername));	GetPlayerName(playerid, adminname, sizeof(adminname));
			       	new year,month,day;   getdate(year, month, day); new hour,minute,second; gettime(hour,minute,second);

					if(level > 0) format(string,sizeof(string),"{4EEE94}Administrator %s has set you to Administrator Status {0011FF}[level %d] -|",adminname, level);
					else format(string,sizeof(string),"{4EEE94}Administrator %s has set you to Player Status {49F505}[level %d]",adminname, level);
					SendClientMessage(player1,blue,string);

					if(level > PlayerInfo[player1][Level]) GameTextForPlayer(player1,"~y~Promoted", 5000, 5);
					else GameTextForPlayer(player1,"~r~DEMOTED", 5000, 5);

					format(string,sizeof(string),"{4EEE94}You have made %s Level %d on {66CDAA}%d/%d/%d at %d:%d:%d", playername, level, day, month, year, hour, minute, second); SendClientMessage(playerid,blue,string);
					format(string,sizeof(string),"{4EEE94}Administrator %s has made %s Level %d on {0011FF}%d/%d/%d at %d:%d:%d",adminname, playername, level, day, month, year, hour, minute, second);
					SaveToFile("AdminLog",string);
					dUserSetINT(PlayerName2(player1)).("level",(level));
					PlayerInfo[player1][Level] = level;
					return PlayerPlaySound(player1,1057,0.0,0.0,0.0);
				} else return SendClientMessage(playerid,red,"ERROR: Player must be registered and logged in to be admin");
			} else return SendClientMessage(playerid, red, "{00FF40}ERROR: {03F2FF}Player is not connected");
		} else return SendClientMessage(playerid,red,"ERROR: {FF00D9}You are not a high enough {FFFFFF}level {00FF40}to use this command");
	} else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
}
and offline set level
Код:
CMD:osetlevel(playerid, params[]) {
            if(IsPlayerAdmin(playerid)) {
	        new string[128], tmp[128], tmp2[128], Index; tmp = strtok(params, Index), tmp2 = strtok(params, Index);
	        if(isnull(tmp) || isnull(tmp2)) return SendClientMessage(playerid, red, "USAGE: /osetlevel [playername] [level]");
	    	new level = strval(tmp2);
	    	if(!udb_Exists(PlayerName2(playerid))) {
		    new file[256];
			format(file, sizeof(file), "/ladmin/users/%s.ini", udb_encode(pName(playerid)));
			dUserSetINT(PlayerName2(playerid)).("level",(level));  //dUserSetINT(PlayerName2(player1)).("level",(level));   dUserSetINT(PlayerName2(playerid)), "Level", level);
			PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
    	    format(string, sizeof(string), "[INFO]: You have successfully set \"%s's\" level to %d", tmp, level);
    	    CMDMessageToAdmins(playerid, "OSETLEVEL");
			return SendClientMessage(playerid, blue, string);
		    } else return SendClientMessage(playerid, red, "ERROR: This player doesnt have an account");
	        } else return SendClientMessage(playerid, red, "ERROR: You are not a high enough level to use this command");
}



Re: My server is automatic gives levels ! Solve Pls - AjaxM - 02.12.2017

Happens with memory corruption, it sets random values to any variable. I had a similar problem.

You might have such a thing in your script:

PHP код:
new test[128];
format(test96"...", ...); 
(Thanks to Southclaw and Kar)


Re: My server is automatic gives levels ! Solve Pls - vikoo - 02.12.2017

what u did to fix that ?
iam not perfect in scripting


Re: My server is automatic gives levels ! Solve Pls - AjaxM - 02.12.2017

Find it and fix it.


Re: My server is automatic gives levels ! Solve Pls - vikoo - 02.12.2017

what u saying ? so why i posted my problem here? hah


Re: My server is automatic gives levels ! Solve Pls - AjaxM - 02.12.2017

At least I provided a solution for you. The problem might be somewhere in your gamemode. We are not here to search for the bug and fix it. Anyways, If the problem is in the script you provided, I am not going to look through it.


Re: My server is automatic gives levels ! Solve Pls - Bolex_ - 02.12.2017

The first way might be what @AjaxM said, and the seconds one you're probably not resetting the variable of admin or whatever when they connect/disconnect.