SA-MP Forums Archive
Setlevel Admin Command - 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: Setlevel Admin Command (/showthread.php?tid=384512)



Setlevel Admin Command - MrReBzz - 12.10.2012

Here Is My Setlevel Command

Код:
PInfo[id][Level] = level;//sets the level of the player
	dini_IntSet(file,"Level",level);//saves the new level to the file
	format(str,sizeof(str),"You have set %s's level to %d",n,level);//creates the string
	SendClientMessage(playerid,LIGHTBLUE,str);
	return 1;
}
And It Compiles With No Errors!

But When i type /setlevel <id>

It Set My Level To The Specified Id. Please Help


Re: Setlevel Admin Command - gtakillerIV - 12.10.2012

SHow us the whole command since you say:

Quote:

But When i type /setlevel <id>

It Set My Level To The Specified Id. Please Help

And it seems you copied this code from a tutorial. You shouldn't copy and paste from tutorials..


Re: Setlevel Admin Command - MrReBzz - 12.10.2012

Код:
dcmd_setlevel(playerid,params[])
{
	new level,id,file[256],n[MAX_PLAYER_NAME];
	new tmp[256], tmp2[256], Index,str[50];
	tmp = strtok(params,Index), tmp2 = strtok(params,Index),id = strval(tmp),level = strval(tmp2);
	GetPlayerName(id,n,MAX_PLAYER_NAME);
	if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,COLOR_RED,"You are not an RCON admin!");
	if(!strlen(params)) return SendClientMessage(playerid,COLOR_RED,"USAGE: /setlevel <ID> <Level>");
	if(!IsPlayerConnected(id))return SendClientMessage(playerid,COLOR_RED,"You have entered an incorrect ID");
	
	PlayerInfo[playerid][pAdminLevel] = pAdminLevel;
	dini_IntSet(file,"AdminLevel",level);
	format(str,sizeof(str),"You have set %s's level to %d",n,level);
	SendClientMessage(playerid,COLOR_BLUE,str);
	return 1;
}
Sorry! Here's The Whole Code


Re: Setlevel Admin Command - gtakillerIV - 12.10.2012

Argh I just hate Strtok. Better use Sccanf. It's easier and better than the stock Strtok.


Re: Setlevel Admin Command - MrReBzz - 12.10.2012

Ok! So Can You Convert It TO Sscanf? I never used it before!


Re: Setlevel Admin Command - gtakillerIV - 12.10.2012

Here download it first;

https://sampforum.blast.hk/showthread.php?tid=120356

EDIT:

Found your error:

PHP код:
PlayerInfo[playerid][pAdminLevel] = pAdminLevel
Should be:

PHP код:
PlayerInfo[id][pAdminLevel] = pAdminLevel



Re: Setlevel Admin Command - MrReBzz - 12.10.2012

Ok Then?


AW: Setlevel Admin Command - BiosMarcel - 12.10.2012

I was faster ^^

PHP код:
dcmd_setlevel(playerid,params[])
{
    new 
level,id,file[256],n[100],n2[100];
    
GetPlayerName(id,n,100);
    
GetPlayerName(playerid,n2,100);
    if(!
IsPlayerAdmin(playerid)) return SendClientMessage(playerid,COLOR_RED,"You are not an RCON admin!");
    if(!
IsPlayerConnected(id))return SendClientMessage(playerid,COLOR_RED,"You have entered an incorrect ID");
    if(
sscanf(params,"ui",id,level)) SendClientMessage(playerid,COLOR_RED,"Usage: setlevel 8id] [level]");
    
PlayerInfo[id][pAdminLevel] = level;
    
dini_IntSet(file,"AdminLevel",level);
    
format(str,sizeof(str),"You have set %s's level to %d",n,level);
    
SendClientMessage(playerid,COLOR_BLUE,str);
    
format(str,sizeof(str),"%s have set your Level to %d",n2,level);
    
SendClientMessage(id,COLOR_BLUE,str);
    return 
1;




Re: Setlevel Admin Command - gtakillerIV - 12.10.2012

Here is an example with Sscanf:

PHP код:
dcmd_makeadmin(playeridparams[])
{
    new 
levelaname[MAX_PLAYER_NAME];
    if(!
IsPlayerAdmin(playerid)) return SendClientMessage(playeridRed"You must be an Admin to use this command!");
    else
    {
        new 
targetid;
        if(
sscanf(params"ui"targetidlevel)) return SendClientMessage(playeridYellow"Correct Usage: /makeadmin [PlayerID][Level]");
        if(!
IsPlayerConnected(targetid)) return SendClientMessage(playerid, -1"That play is not connected to the server");
        if(
level || level 10) return SendClientMessage(playeridLime"Admin Level Range Is From 2 To 10");
        new 
string1[90], tname[MAX_PLAYER_NAME], string2[90];
        
PlayerInfo[targetid][pAdmin]=level;
        
dini_IntSet(file,"AdminLevel",level);
        
GetPlayerName(playeridanamesizeof(aname));
        
GetPlayerName(targetidtnamesizeof(tname));
        
format(string1sizeof(string1), "Admin %s has set your Admin level to %i"anamelevel);
        
SendClientMessage(targetidGreenstring1);
        
format(string2sizeof(string1), ""COL_GREEN"Admin %s has set %s's level to %i"anametnamelevel);
        
SendClientMessageToAll(Yellowstring2);
    }
    return 
1;

Better yes?

EDIT:[Bios]Marcel: Yes you were faster!


Re: Setlevel Admin Command - Kwarde - 12.10.2012

Then your command could look like this:

pawn Код:
dcmd_setlevel(playerid, params[])
{
    new id, level, n[MAX_PLAYER_NAME], str[128];

    if (!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, "You are not a RCON admin!");
    if (sscanf(params, "dd", id, level)) return SendClientMessage(playerid, COLOR_RED, "USAGE: /setlevel <ID> <Level>");
    if (!IsPlayerConnected(id)) return SendClientMessage(playerid, COLOR_RED, "You have entered an incorrect ID");
    GetPlayerName(id, n, MAX_PLAYER_NAME);
    PlayerInfo[id][pAdminLevel] = level;
    dini_IntSet(file, "AdminLevel", level);
    format(str, 128, "You have set %s's level to %d", n, level);
    SendClientMessage(playerid, COLOR_BLUE, str);
    return 1;
}
I also see that you set the level in your command to 'pAdminLevel'. That is incorrect?

EDIT: I was too late :S