My Rank System Is Not Working Properly -
Eminem 2ka9 - 04.08.2012
My rank System that I got "Zcmd" or w/e has a problem: If I had 301 score and I needed to reach 400 score to become Major, then I wouldn't need 400 score because I would already be Major Once I go anywhere above 300 It automatically promotes the person without even having to reach the next score. It's the same thing on ALL of my Ranks.
Here is what I got:
Код:
//===========================GetPlayerRankInfo Function==================================//
forward GetPlayerRankInfo(playerid);
public GetPlayerRankInfo(playerid)
{
new Pname[50];
GetPlayerName(playerid, Pname, 50);
new string[250];
if(GetPlayerScore(playerid) <= 0)
{
SendClientMessage(playerid, COLOR_WHITE, "Your Current Rank: "#COL_GREEN#" Private");
format(string, sizeof(string),"Name:%s [Your Current Score: "#COL_GREEN#"%d]",Pname, GetPlayerScore(playerid));
SendClientMessage(playerid, COLOR_WHITE, string);
}
else if(GetPlayerScore(playerid) <= 30)
{
SendClientMessage(playerid, COLOR_WHITE, "Your Current Rank: "#COL_GREEN#" Corporal");
format(string, sizeof(string),"Name:%s [Your Currect Score: "#COL_GREEN#"%d]",Pname, GetPlayerScore(playerid));
SendClientMessage(playerid, COLOR_WHITE, string);
}
else if(GetPlayerScore(playerid) <= 50)
{
SendClientMessage(playerid, COLOR_WHITE, "Your Current Rank Is "#COL_GREEN#" Sergeant");
format(string, sizeof(string),"Name:%s [Your score is: "#COL_GREEN#"%d]",Pname, GetPlayerScore(playerid));
SendClientMessage(playerid, COLOR_WHITE, string);
}
else if(GetPlayerScore(playerid) <= 85)
{
SendClientMessage(playerid, COLOR_WHITE, "Your Current Rank: "#COL_GREEN#" Officer");
format(string, sizeof(string),"Name:%s [Your Current Score: "#COL_GREEN#"%d]",Pname, GetPlayerScore(playerid));
SendClientMessage(playerid, COLOR_WHITE, string);
}
else if(GetPlayerScore(playerid) <= 250)
{
SendClientMessage(playerid, COLOR_WHITE, "Your Current Rank: "#COL_GREEN#" Lieutenant Major");
format(string, sizeof(string),"Name:%s [Your Current Score: "#COL_GREEN#"%d]",Pname, GetPlayerScore(playerid));
SendClientMessage(playerid, COLOR_WHITE, string);
}
else if(GetPlayerScore(playerid) <= 300)
{
SendClientMessage(playerid, COLOR_WHITE, "Your Current Rank: "#COL_GREEN#" Captain");
format(string, sizeof(string),"Name:%s [Your Current Score: "#COL_GREEN#"%d]",Pname, GetPlayerScore(playerid));
SendClientMessage(playerid, COLOR_WHITE, string);
}
else if(GetPlayerScore(playerid) <= 400)
{
SendClientMessage(playerid, COLOR_WHITE, "Your Current Rank "#COL_GREEN#"Major");
format(string, sizeof(string),"Name:%s [Your Current Score: "#COL_GREEN#"%d]",Pname, GetPlayerScore(playerid));
SendClientMessage(playerid, COLOR_WHITE, string);
}
else if(GetPlayerScore(playerid) <= 500)
{
SendClientMessage(playerid, COLOR_WHITE, "Your Current Rank: "#COL_GREEN#"Colonel");
format(string, sizeof(string),"Name:%s [Your Current Score: "#COL_GREEN#"%d]",Pname, GetPlayerScore(playerid));
SendClientMessage(playerid, COLOR_WHITE, string);
}
else if(GetPlayerScore(playerid) <= 750)
{
SendClientMessage(playerid, COLOR_WHITE, "Your Current Rank: "#COL_GREEN#"General");
format(string, sizeof(string),"Name:%s [Your Current Score is: "#COL_GREEN#"%d]",Pname, GetPlayerScore(playerid));
SendClientMessage(playerid, COLOR_WHITE, string);
}
else if(GetPlayerScore(playerid) <= 1000)
{
SendClientMessage(playerid, COLOR_WHITE, "Your Current Rank: "#COL_GREEN#"Field Marshall");
format(string, sizeof(string),"Name:%s [Your Current Score: "#COL_GREEN#"%d]",Pname, GetPlayerScore(playerid));
SendClientMessage(playerid, COLOR_WHITE, string);
}
else if(GetPlayerScore(playerid) <= 1500)
{
SendClientMessage(playerid, COLOR_WHITE, "Your Current Rank: "#COL_GREEN#"Master Of War");
format(string, sizeof(string),"Name:%s [Your Current Score: "#COL_GREEN#"%d]",Pname, GetPlayerScore(playerid));
SendClientMessage(playerid, COLOR_WHITE, string);
}
return 1;
}
Re: My Rank System Is Not Working Properly -
SnG.Scot_MisCuDI - 04.08.2012
EDIT: His was better :P
V
V
V
V
V
V
V
Re: My Rank System Is Not Working Properly -
Misiur - 04.08.2012
pawn Код:
forward GetPlayerRankInfo(playerid);
public GetPlayerRankInfo(playerid)
{
new Pname[50], string[250], tmp[32] = "Your Current Rank: "#COL_GREEN#"", rank[18], score;
GetPlayerName(playerid, Pname, 50);
score = GetPlayerScore(playerid);
switch(score) {
case 0..29: {
rank = "Private";
}
case 30..49: {
rank = "Corporal";
}
case 50..84: {
rank = "Sergeant";
}
case 85..249: {
rank = "Officer";
}
case 250..299: {
rank = "Lieutenant Major";
}
case 300..399: {
rank = "Captain";
}
case 400..499: {
rank = "Major";
}
case 500..749: {
rank = "Colonel";
}
case 750..999: {
rank = "General";
}
case 1000..1499: {
rank = "Field Marshall";
}
default: {
rank = "Master Of War";
}
}
strcat(tmp, rank);
SendClientMessage(playerid, COLOR_WHITE, tmp);
format(string, sizeof(string),"Name:%s [Your Current Score: "#COL_GREEN#"%d]",Pname, score);
SendClientMessage(playerid, COLOR_WHITE, string);
return 1;
}
Use this OP (v2, some edits)
Re: My Rank System Is Not Working Properly -
Eminem 2ka9 - 04.08.2012
Thanks Misiur, but for some reason when I enter that, it only shows my rank as like "Majo" or "Priv" it only shows 4 letters?
Re: My Rank System Is Not Working Properly -
Misiur - 04.08.2012
Change tmp[32] to tmp[50]
Re: My Rank System Is Not Working Properly -
Eminem 2ka9 - 04.08.2012
It works, thanks a ton. How would I make this appear when the person spawns?
I put this, but I got 1 error about symbol already defined: SendClientMessage.
Код:
public OnPlayerSpawn(playerid)
{
SendClientMessage(playerid, COLOR_WHITE, tmp);
format(string, sizeof(string),"Name:%s - Your Current Score: "#COL_GREEN#"%d]",Pname, score);
SendClientMessage(playerid, COLOR_WHITE, string);
return 1;
}
Re: My Rank System Is Not Working Properly -
Misiur - 04.08.2012
In OnPlayerSpawn just place GetPlayerRankInfo(playerid). The error probably shows because the command is outside any callback
Re: My Rank System Is Not Working Properly -
Eminem 2ka9 - 04.08.2012
Btw that last rank problem was part of a filterscript! So. I entered this code under playerspawn
Код:
public OnPlayerSpawn(playerid)
{
GivePlayerWeapon(playerid,27,1000);
GivePlayerWeapon(playerid,25,1000);
GivePlayerWeapon(playerid,28,1000);
GivePlayerWeapon(playerid,34,500);
GivePlayerWeapon(playerid,24,500);
}
GetPlayerRankInfo(playerid)
{
SendClientMessage(playerid, COLOR_WHITE, tmp);
format(string, sizeof(string),"Name:%s - Your Current Score: "#COL_GREEN#"%d]",Pname, score);
SendClientMessage(playerid, COLOR_WHITE, string);
But now I get 1 warning! I'm not sure what it means
Код:
C:\Users\Administration\Desktop\My Script\gamemodes\MyScript.pwn(2259) : warning 203: symbol is never used: "GetPlayerRankInfo"
Re: My Rank System Is Not Working Properly -
Misiur - 04.08.2012
If you are using this filterscript with this gamemode, use this:
pawn Код:
//Change
public OnPlayerSpawn(playerid)
{
GivePlayerWeapon(playerid,27,1000);
GivePlayerWeapon(playerid,25,1000);
GivePlayerWeapon(playerid,28,1000);
GivePlayerWeapon(playerid,34,500);
GivePlayerWeapon(playerid,24,500);
}
GetPlayerRankInfo(playerid)
SendClientMessage(playerid, COLOR_WHITE, tmp);
format(string, sizeof(string),"Name:%s - Your Current Score: "#COL_GREEN#"%d]",Pname, score);
SendClientMessage(playerid, COLOR_WHITE, string);
//To
public OnPlayerSpawn(playerid)
{
GivePlayerWeapon(playerid,27,1000);
GivePlayerWeapon(playerid,25,1000);
GivePlayerWeapon(playerid,28,1000);
GivePlayerWeapon(playerid,34,500);
GivePlayerWeapon(playerid,24,500);
CallRemoteFunction("GetPlayerRankInfo", "d", playerid);
}
Re: My Rank System Is Not Working Properly -
Eminem 2ka9 - 04.08.2012
It works xD Thanks repped