CMD:fine(playerid, params[])
{
new playerid2;
new id;
if (sscanf(params, "u", id)) SendClientMessage(playerid, 0xCCCC99AA, "USAGE: /fine [playerid]");
else if (id == INVALID_PLAYER_ID) SendClientMessage(playerid, 0xFF0000AA, "Player is not online.");
else
{
if(PlayerInfo[playerid][pClass] == 3)
{
if(GetDistanceBetweenPlayers(playerid, playerid2) > 5)
{
if(PlayerInfo[playerid][pWantedLevel] < 0)
{
SendClientMessage(playerid, 0x00FF00AA, "Player is not wanted!");
}
if(PlayerInfo[playerid][pWantedLevel] < 1)
{
GivePlayerMoney(playerid, 500);
GivePlayerMoney(id, -500);
new tname[MAX_PLAYER_NAME];
GetPlayerName(id,tname,sizeof(tname));
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid,pname,sizeof(pname));
new tstring[128];
new pstring[128];
SetPlayerScore( playerid, GetPlayerScore( playerid ) + 1 );
format(tstring,sizeof(tstring),"You Have Been Fined -$1000 By Police Officer %s(%d).",pname,playerid);
format(tstring,sizeof(pstring),"You have fined %s(%d)! And His Wanted Level Was 1 You Got +1000$",tname,id);
SendClientMessage(id,COLOR_RED,tstring);
SendClientMessage(playerid,COLOR_RED,pstring);
}
}
}
}
return 1;
}
GivePlayerMoney(playerid, PlayerInfo[playerid][pWantedLevel]*500); GivePlayerMoney(id, PlayerInfo[playerid][pWantedLevel]*-500);
Код:
GivePlayerMoney(playerid, PlayerInfo[playerid][pWantedLevel]*500); GivePlayerMoney(id, PlayerInfo[playerid][pWantedLevel]*-500); If player's wanted level is 5, it will calculate 5 x 500 = 2500. |
CMD:fine(playerid, params[]) { if(PlayerInfo[playerid][pClass] == 3) { new iTargetID; if(sscanf(params, "u", iTargetID)) { SendClientMessage(playerid, COLOR_WHITE, "USAGE: /fine [player]"); return 1; } if(GetDistanceBetweenPlayers(playerid, playerid2) > 5) { if(!IsPlayerConnected(iTargetID)) { SendClientMessage(playerid, COLOR_WHITE, "ERROR: Invalid player specified."); return 1; } else if(PlayerInfo[iTargetID][pClass] == 3) { SendClientMessage(playerid, COLOR_WHITE, "You can't use this command on a law enforcement officer."); return 1; } else if(PlayerInfo[iTargetID][pWantedLevel] >= 6) { SendClientMessage(playerid, COLOR_GRAD2, "Target is already most wanted."); return 1; } else { switch(PlayerInfo[iTargetID][pWantedLevel]) { case 0: { } case 1: { GivePlayerMoney(playerid, 500); GivePlayerMoney(iTargetID, -500); new tname[MAX_PLAYER_NAME]; GetPlayerName(iTargetID,tname,sizeof(tname)); new pname[MAX_PLAYER_NAME]; GetPlayerName(playerid,pname,sizeof(pname)); new tstring[128]; new pstring[128]; SetPlayerScore(playerid, ++) format(tstring,sizeof(tstring),"You Have Been Fined -$1000 By Police Officer %s(%d).",pname,playerid); format(tstring,sizeof(pstring),"You have fined %s(%d)! And His Wanted Level Was 1 You Got +1000$",tname,iTargetID); SendClientMessage(iTargetID,COLOR_RED,tstring); SendClientMessage(playerid,COLOR_RED,pstring); return 1; } case 2: { } case 3: { } case 4: { } case 5: { } } } } else SendClientMessage(playerid, COLOR_GRAD2, "You're not near the player specified."); } else SendClientMessage(playerid, COLOR_GRAD2, "You're not a law enforcement officer."); return 1; }
So I don't need if(PlayerInfo[playerid][pWantedLevel] < 1),if(PlayerInfo[playerid][pWantedLevel] < 2) etc?
|
How about this
Код:
CMD:fine(playerid, params[]) { if(PlayerInfo[playerid][pClass] == 3) { new iTargetID; if(sscanf(params, "u", iTargetID)) { SendClientMessage(playerid, COLOR_WHITE, "USAGE: /fine [player]"); } else if(!IsPlayerConnected(iTargetID)) { SendClientMessage(playerid, COLOR_WHITE, "{0049FF}ERROR{00A5FF}: Invalid player specified."); } else if(PlayerInfo[iTargetID][pClass] == 3) { SendClientMessage(playerid, COLOR_WHITE, "You can't use this command on a law enforcement officer."); } else if(PlayerInfo[iTargetID][pWantedLevel] >= 6) { SendClientMessage(playerid, COLOR_GRAD2, "Target is already most wanted."); } else { switch(PlayerInfo[iTargetID][pWantedLevel]) { case 0: { } case 1: { GivePlayerMoney(playerid, 500); GivePlayerMoney(iTargetID, -500); new tname[MAX_PLAYER_NAME]; GetPlayerName(iTargetID,tname,sizeof(tname)); new pname[MAX_PLAYER_NAME]; GetPlayerName(playerid,pname,sizeof(pname)); new tstring[128]; new pstring[128]; SetPlayerScore(playerid, ++) format(tstring,sizeof(tstring),"You Have Been Fined -$1000 By Police Officer %s(%d).",pname,playerid); format(tstring,sizeof(pstring),"You have fined %s(%d)! And His Wanted Level Was 1 You Got +1000$",tname,iTargetID); SendClientMessage(id,COLOR_RED,tstring); SendClientMessage(playerid,COLOR_RED,pstring); return 1; } case 2: { } case 3: { } case 4: { } case 5: { } } } } else SendClientMessage(playerid, COLOR_GRAD2, "You're not a law enforcement officer."); return 1; } 0 = 1 1 = 2 2 = 3 3 = 4 4 = 5 and 6 is already most wanted, you might want to make some more features for that :P |
Yes.
No, don't do that. This way is not faster. 6 is not the highest wanted level only because you can see 6 start in the HUD. It can go much more higher. |
CMD:fine(playerid, params[]) { if(PlayerInfo[playerid][pClass] == 3) { new iTargetID; if(sscanf(params, "u", iTargetID)) { SendClientMessage(playerid, COLOR_WHITE, "USAGE: /fine [player]"); return 1; } if(GetDistanceBetweenPlayers(playerid, playerid2) > 5) { if(!IsPlayerConnected(iTargetID)) { SendClientMessage(playerid, COLOR_WHITE, "ERROR: Invalid player specified."); return 1; } else if(PlayerInfo[iTargetID][pClass] == 3) { SendClientMessage(playerid, COLOR_WHITE, "You can't use this command on a law enforcement officer."); return 1; } else if(PlayerInfo[iTargetID][pWantedLevel] >= 10)// If they are Level 10 Wanted Level { SendClientMessage(playerid, COLOR_GRAD2, "Target is already most wanted."); return 1; } else { switch(PlayerInfo[iTargetID][pWantedLevel]) { case 0:// If they are Level 0 Wanted Level { } case 1:// If they are Level 1 Wanted Level { GivePlayerMoney(playerid, 500); GivePlayerMoney(iTargetID, -500); new tname[MAX_PLAYER_NAME]; GetPlayerName(iTargetID,tname,sizeof(tname)); new pname[MAX_PLAYER_NAME]; GetPlayerName(playerid,pname,sizeof(pname)); new tstring[128]; new pstring[128]; SetPlayerScore(playerid, ++) format(tstring,sizeof(tstring),"You Have Been Fined -$1000 By Police Officer %s(%d).",pname,playerid); format(tstring,sizeof(pstring),"You have fined %s(%d)! And His Wanted Level Was 1 You Got +1000$",tname,iTargetID); SendClientMessage(iTargetID,COLOR_RED,tstring); SendClientMessage(playerid,COLOR_RED,pstring); return 1; } case 2:// If they are Level 2 Wanted Level { } case 3:// If they are Level 3 Wanted Level { } case 4:// If they are Level 4 Wanted Level { } case 5:// If they are Level 5 Wanted Level { } case 6:// If they are Level 6 Wanted Level { } case 7:// If they are Level 7 Wanted Level { } case 8:// If they are Level 8 Wanted Level { } case 9:// If they are Level 9 Wanted Level { } } } } else SendClientMessage(playerid, COLOR_GRAD2, "You're not near the player specified."); } else SendClientMessage(playerid, COLOR_GRAD2, "You're not a law enforcement officer."); return 1; }
Indeed 6 is max you can see, what is the point in adding more than 6 if the player can not see them without extra Textdraws?
He wanted the fine for them, he got it, but he can easily set it more than 6 |
CMD:fine(playerid, params[])
{
if(PlayerInfo[playerid][pClass] == 3)
{
if(PlayerInfo[playerid][pJailTime] > 0) return SendClientMessageEx(playerid, COLOR_WHITE, "You cannot use this in jail/prison.");
new iTargetID;
if(sscanf(params, "u", iTargetID)) return SendClientMessageEx(playerid, COLOR_WHITE, "USAGE: (/su)spect [player]");
if(!IsPlayerConnected(iTargetID)) return SendClientMessageEx(playerid, COLOR_WHITE, "{0049FF}ERROR{00A5FF}: Invalid player specified.");
if(PlayerInfo[iTargetID][pClass] == 3) return SendClientMessageEx(playerid, COLOR_WHITE, "You can't use this command on a law enforcement officer.");
if(PlayerInfo[iTargetID][pWantedLevel] >= 6) return SendClientMessageEx(playerid, COLOR_GRAD2, "Target is already most wanted.");
if(PlayerInfo[iTargetID][pWantedLevel] == 0) return SendClientMessageEx(playerid, COLOR_WHITE, "Player is not wanted.");
GivePlayerMoney(playerid, PlayerInfo[playerid][pWantedLevel]*500); // darkwood's code | 2 * 500 = 1000 | 5 * 500 = 25000, a quicker way.
GivePlayerMoney(id, PlayerInfo[playerid][pWantedLevel] * -500); // ^^^
new tname[MAX_PLAYER_NAME];
GetPlayerName(id,tname,sizeof(tname));
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid,pname,sizeof(pname));
new tstring[128];
new pstring[128];
SetPlayerScore( playerid, GetPlayerScore( playerid ) + 1 );
format(tstring,sizeof(tstring),"You Have Been Fined -$1000 By Police Officer %s(%d).",pname,playerid);
format(pstring,sizeof(pstring),"You have fined %s(%d)! And His Wanted Level Was 1 You Got +1000$",tname,id);
SendClientMessage(id,COLOR_RED,tstring);
SendClientMessage(playerid,COLOR_RED,pstring);
}
else SendClientMessageEx(playerid, COLOR_GRAD2, "You're not a law enforcement officer.");
return 1;
}
pawn Код:
|
In 1 way, yes this is optimized, but what if he wanted other things to happen at a higher wanted level, eg: loss of usage of guns at 4 wanted level + or take drivers license away only at wanted level 1,2,3
|