[HELP] Bonus System for Cops who arrested Criminal
#1

Hi everyone, how can I add bonus system for cops who arrested a criminal, which means if a cop arrest criminal (4 - 6 wanted level) they get cash bonus (random - Higher wanted levels, higher bonus). How do I do that and with Client Message and Game Textdraw?

Here's my arrest command.



Код:
	if(strcmp(cmd, "/arrest", true) == 0 || strcmp(cmd, "/ar", true) == 0)
	{
	new string[250];
    if(IsSpawned[playerid] == 0)
	{
	SendClientMessage(playerid, COLOR_ERROR, "You are dead. You cannot use this command");
    return 1;
    }
    if(gTeam[playerid] != COP && gTeam[playerid] != SWAT && gTeam[playerid] != ARMY && gTeam[playerid] != FBI)
	{
    SendClientMessage(playerid,COLOR_ERROR,"You are not a Law Enforcement officer.");
    return 1;
    }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
	{
    SendClientMessage(playerid, COLOR_ERROR, "USAGE: /ar (id)");
    return 1;
    }
    giveplayerid = strval(tmp);
    if(!IsNumeric(tmp))
	{
    SendClientMessage(playerid, COLOR_ERROR, "USAGE: /ar (id)");
    return 1;
    }
    if(!IsPlayerConnected(giveplayerid))
	{
    format(string, sizeof(string), "ID (%d) is not an active player", giveplayerid);
    SendClientMessage(playerid, COLOR_ERROR, string);
    return 1;
    }
    new oname[24];
    new pname[24];
    GetPlayerName(playerid,oname, 24);
	GetPlayerName(giveplayerid, pname, 24);
	if(GetPlayerWantedLevel(giveplayerid) <= 3)
	{
	format(string, sizeof(string), "%s(%d) does not have a warrant. You cannot arrest a player without a warrant",pname,giveplayerid);
	SendClientMessage(playerid,COLOR_ERROR,string);
    return 1;
    }
    if(IsPlayerInAnyVehicle(playerid))
	{
    SendClientMessage(playerid,COLOR_ERROR,"You cannot arrest a suspect if you are in a car.");
    return 1;
    }
    if(GetDistanceBetweenPlayers(playerid,giveplayerid) > 10)
	{
    format(string, sizeof(string), "%s(%d) is too far away. You cannot arrest that player",pname,giveplayerid);
    SendClientMessage(playerid,COLOR_ERROR,string);
    return 1;
    }
    if(IsSpawned[giveplayerid] == 0)
	{
	format(string, sizeof(string), "%s(%d) is dead. You cannot arrest a dead criminal.",pname,giveplayerid);
    SendClientMessage(playerid,COLOR_ERROR,string);
    return 1;
    }
    SetPlayerVirtualWorld(giveplayerid,0);
    if(GetPlayerWantedLevel(playerid) >=1)
	{
    SendClientMessage(playerid,COLOR_ERROR,"You cannot use this command if you are wanted by the police");
    return 1;
    }
    if(giveplayerid == playerid)
	{
    SendClientMessage(playerid,COLOR_ERROR,"You cannot arrest yourself");
    return 1;
    }
    new spawn = random(sizeof(PrisonSpawn)), string2[250], Float:health, copname[MAX_PLAYER_NAME], arrested[MAX_PLAYER_NAME];
    GetPlayerName(playerid, copname, sizeof(copname));
    GetPlayerName(strval(tmp), arrested, sizeof(arrested));
    GetPlayerHealth(strval(tmp), health);
	SendClientMessage(strval(tmp), GREY, "|_| San Andreas Police Dept. |_|");
	format(string, sizeof(string), "You have been arrested by Law Enforcement Officer %s (%d).", copname);
	SendClientMessage(strval(tmp), WHITE, string);
	ResetPlayerWeapons(strval(tmp));
	SetPlayerPos(strval(tmp), PrisonSpawn[spawn][0], PrisonSpawn[spawn][1], PrisonSpawn[spawn][2]);
	SetPlayerFacingAngle(strval(tmp), PrisonSpawn[spawn][3]);
	SetCameraBehindPlayer(strval(tmp));
	if(GetPlayerWantedLevel(strval(tmp)) >= 4 && GetPlayerWantedLevel(strval(tmp)) <= 5)
	{
	PrisonTime[strval(tmp)] = 60;
	GivePlayerMoney(playerid,25000);
	GivePlayerScore(playerid,1);
	}
	else if(GetPlayerWantedLevel(strval(tmp)) >= 6 && GetPlayerWantedLevel(strval(tmp)) <= 8)
	{
	PrisonTime[strval(tmp)] = 120;
	GivePlayerMoney(playerid,35000);
	GivePlayerScore(playerid,1);
	}
	else if(GetPlayerWantedLevel(strval(tmp)) >= 9 && GetPlayerWantedLevel(playerid) <= 11)
	{
	PrisonTime[strval(tmp)] = 180;
	GivePlayerMoney(playerid,45000);
	GivePlayerScore(playerid,2);
	}
	else if(GetPlayerWantedLevel(strval(tmp)) >= 12 && GetPlayerWantedLevel(strval(tmp)) <= 14)
	{
	PrisonTime[strval(tmp)] = 240;
	GivePlayerMoney(playerid,55000);
	GivePlayerScore(playerid,2);
	}
	else if(GetPlayerWantedLevel(strval(tmp)) >= 15)
	{
	PrisonTime[strval(tmp)] = 300;
	GivePlayerMoney(playerid,65000);
	GivePlayerScore(playerid,3);
	}
	SetPlayerWantedLevel(strval(tmp), 0);
	SetPlayerInterior(strval(tmp),3);
	SetPlayerHealth(strval(tmp),99999);
	TogglePlayerControllable(strval(tmp), true);
	SetPlayerJailed(strval(tmp), true);
	format(string2, sizeof(string2), "Law Enforcement Officer %s (%d) has arrested Wanted Suspect %s (%d).", copname, playerid, arrested, strval(tmp));
	Announce(string2);
	if(health <= 90)
	{
    SendClientMessage(strval(tmp), GREY, "|_| San Andreas Police Dept. |_|");
    SendClientMessage(strval(tmp), WHITE, "SAPD has given you some food.");
    SetPlayerHealth(strval(tmp), health+10);
    ApplyAnimation(strval(tmp), "FOOD", "EAT_Burger", 4.0, 0, 0, 0, 0, 0);
	}
    return 1;
    }
Help please!
Reply
#2

After the line: Announce(string2);

Add this:
pawn Код:
GivePlayerMoney(playerid, 500);// Check your script for another GivePlayerMoney type function (usually SafeGivePlayerMoney), you'll prob have one if you use a money anticheat system.
SendClientMessage(playerid,COLOR_Green,"Arrest bonus of $500 given!");
Reply
#3

How do I make it random bonus? like 1.5k (minimum) - 25k (max)? Which means higher wanted level, higher bonus?
Reply
#4

pawn Код:
stock random_e( min, max )
{
      return ( min + random(max - min));
}
Reply
#5

Quote:
Originally Posted by Rajat_Pawar
Посмотреть сообщение
pawn Код:
stock random_e( min, max )
{
      return ( min + random(max - min));
}
I'm new at these things, what is that and what does it do, and how do I use it?
Reply
#6

You should write a mathematical function to calculate a bonus based on the player's own level and the criminal's wanted level. Something like:

pawn Код:
new bonus = playerlevel * 100 + criminalwantedlevel * 100 + random(100);
This is a really simple example, but it should give you an idea of what to look for. It doesn't seem fair to others if it's totally random.
Reply
#7

Quote:
Originally Posted by Vince
Посмотреть сообщение
You should write a mathematical function to calculate a bonus based on the player's own level and the criminal's wanted level. Something like:

pawn Код:
new bonus = playerlevel * 100 + criminalwantedlevel * 100 + random(100);
This is a really simple example, but it should give you an idea of what to look for. It doesn't seem fair to others if it's totally random.
This. You can always use the function I posted like
pawn Код:
GivePlayerMoney(playerid,
random_e(1200, 1500));
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)