SA-MP Forums Archive
Rank system Help - 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: Rank system Help (/showthread.php?tid=629601)



Rank system Help - silverms - 01.03.2017

so I'm trying to make a rank system but I'm facing an error called error:undefined symbol Guest
here is the code
PHP код:
    if(ran && ran<6)
        {
            
Rank[i]=Guest;
        } 
and is there any way to get player rank like strock GetPlayerRank(playerid); ?


Re: Rank system Help - silverms - 01.03.2017

any one plz?


Re: Rank system Help - jlalt - 01.03.2017

Well, your codes don't explain much, but if your Rank var is string you will need " before guest so it will be:
PHP код:
Rank[i]="Guest"



Re: Rank system Help - silverms - 01.03.2017

it is like so

PHP код:
new Rank[MAX_PLAYERS];
{
there is a timer on player connect]
forward OnRankUp(playerid);
public 
OnRankUp(playerid)
{
    for(new 
i=0i<MAX_PLAYERSi++)
    {
        new 
ran;
        
ran GetPlayerScore(i);
        if(
ran && ran<6)
        {
            
Rank[i]=Guest;
        }
        if(
ran && ran<11)
        {
              
Rank[i]=Citizen;
        }
        if(
ran 11 && ran<21)
        {
              
Rank[i]=Villager;
        }
        if(
ran 21 && ran<36)
        {
              
Rank[i]=Baron;
        }
        if(
ran 36 && ran<51)
        {
              
Rank[i]=Lord;
        }
        return 
1;
    }
    return 
1;
}
CMD:rank(playeridparams[])
{
     new 
str[128];
    
format(strsizeof(str), "{37A63D}(INFO):{FFFFFF}Your Current Rank Is: %s"Rank[playerid]);
    
SendClientMessage(playeridCOLOR_YELLOWstr);
    return 
1;

and I tried same way as yours but it didn't work I get this error (error 006: must be assigned to an array)


Re: Rank system Help - jlalt - 01.03.2017

Here you go O_O

PHP код:
new Rank[MAX_PLAYERS][15];

forward OnRankUp(playerid);
public 
OnRankUp(playerid)
{
    for(new 
i=0i<MAX_PLAYERSi++)
    {
        if(!
IsPlayerConnected(i)) continue;
        new 
ran;
        
ran GetPlayerScore(i);
        if(
ran && ran<6)
        {
            
Rank[i]="Guest";
        }
        if(
ran && ran<11)
        {
              
Rank[i]="Citizen";
        }
        if(
ran 11 && ran<21)
        {
              
Rank[i]="Villager";
        }
        if(
ran 21 && ran<36)
        {
              
Rank[i]="Baron";
        }
        if(
ran 36 && ran<51)
        {
              
Rank[i]="Lord";
        }
        return 
1;
    }
    return 
1;
}
CMD:rank(playeridparams[])
{
     new 
str[128];
    
format(strsizeof(str), "{37A63D}(INFO):{FFFFFF}Your Current Rank Is: %s"Rank[playerid]);
    
SendClientMessage(playeridCOLOR_YELLOWstr);
    return 
1;

your Rank was interget value, so it wasn't accepting an string...


Re: Rank system Help - silverms - 01.03.2017

now I got this in my saving system XD
error 032: array index out of bounds (variable "Rank")
Код:
Rank[playerid][15] = dini_Int(AddDirFile(dir_userfiles, playername), "Rank");



Re: Rank system Help - jlalt - 01.03.2017

Quote:
Originally Posted by silverms
Посмотреть сообщение
now I got this in my saving system XD
error 032: array index out of bounds (variable "Rank")
Код:
Rank[playerid][15] = dini_Int(AddDirFile(dir_userfiles, playername), "Rank");
Do you save ranks in users as number or string? [ like you save score or rank name? ]


Re: Rank system Help - Dayrion - 01.03.2017

You must optimize your code :
PHP код:
new Rank[MAX_PLAYERS][15];

forward OnRankUp(playerid);
public 
OnRankUp(playerid)
{
    for(new 
i=0i<MAX_PLAYERSi++)
    {
        if(!
IsPlayerConnected(i))
            continue;
        switch(
GetPlayerScore(i))
        {
            case 
.. Rank[i] = "Guest";
            case 
.. 10 Rank[i] = "Citizen";
            case 
11 .. 25 Rank[i] = "Villager";
            case 
26 .. 35 Rank[i] = "Baron";
            case 
36 .. 51 Rank[i] = "Lord";
        }
    }
    return 
1;




Re: Rank system Help - silverms - 02.03.2017

ok every think is okay but can I use It as if(Rank[playerid] == "Guest") now?


Re: Rank system Help - LetsOWN[PL] - 02.03.2017

I believe it doesn't quite work that way.

The best shot for you would be:

pawn Код:
if(!strcmp(Rank[i],"RANKNAME")){}
however, IMO it is quite slow. I'd recommend reconsidering your rank system, so Rank[i] would actually hold an integer rather than exact rank name.