Rank problem during class selection - 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 problem during class selection (
/showthread.php?tid=398287)
Rank problem during class selection -
Eminem 2ka9 - 08.12.2012
I have ranks set, these ranks can be earned by having a certain amount of score. Only problem is, this rank rule is not working with class selection. I have multiple classes such as medic, engineer, etc. Let's say I try to choose a medic class which requires 100 score, even if I had 500 score, I couldn't choose this class and it would say "Rank not high enough". I believe the problem may lay below, what do you think?
Код:
if(PRESSED(KEY_JUMP)) // LSHIFT
{
if(IsPlayerChoosingClass[playerid] == 1)
{
if(ClassChoosingStep[playerid] == 0) // ASSAULT
{
gClass[playerid] = ASSAULT;
}
if(ClassChoosingStep[playerid] == 1) // MEDIC
{
if(Rank(playerid) != 2) return SendClientMessage(playerid, C_WHITE, "Your rank is not high enough!");
gClass[playerid] = MEDIC;
}
if(ClassChoosingStep[playerid] == 2) // ANTI-TANK
{
if(Rank(playerid) != 3) return SendClientMessage(playerid, C_WHITE, "Your rank is not high enough!");
gClass[playerid] = ANTI-TANK;
}
if(ClassChoosingStep[playerid] == 3) // ENGINEER
{
if(Rank(playerid) != 4) return SendClientMessage(playerid, C_WHITE, "Your rank is not high enough!");
gClass[playerid] = ENGINEER;
}
if(ClassChoosingStep[playerid] == 4) // AIRFORCE
{
if(Rank(playerid) != 5) return SendClientMessage(playerid, C_WHITE, "Your rank is not high enough!");
gClass[playerid] = AIRFORCE;
}
if(ClassChoosingStep[playerid] == 5) // SPECICAL-OPS
{
if(Rank(playerid) != 6) return SendClientMessage(playerid, C_WHITE, "Your rank is not high enough!");
gClass[playerid] = SPEC-OPS;
}
TextDrawHideForPlayer(playerid, ClassBox);
TextDrawHideForPlayer(playerid, ClassNameLine);
TextDrawHideForPlayer(playerid, ClassWeapons);
TextDrawHideForPlayer(playerid, ClassDescription1);
TextDrawHideForPlayer(playerid, ClassDescription2);
TextDrawHideForPlayer(playerid, ClassRequiredRank);
TextDrawHideForPlayer(playerid, ClassHelpBox);
TextDrawHideForPlayer(playerid, ClassClick);
TextDrawHideForPlayer(playerid, ClassSpawn);
IsPlayerChoosingClass[playerid] = 0;
TogglePlayerControllable(playerid, 1);
SpawnPlayer(playerid);
}
}
return 1;
}
Re: Rank problem during class selection -
Eminem 2ka9 - 08.12.2012
Anyone able to help?
Re: Rank problem during class selection -
mamorunl - 09.12.2012
I take it that the score is somehow interpreted into the Rank(playerid) and that Rank() is indeed a function (if it was a variable (array) it would be Rank[playerid]).
Also, if the rank would just be 2 for a specific type and not just for, lets say, 200 score then the code will not work as your rank is too high if you have rank 3.
So: your if-statements would be if(Rank[playerid] < 2) return SendClientMessage(playerid, C_WHITE, "Your rank is not high enough");