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
|