Cop level benefits
This commit is contained in:
parent
81d64d22e5
commit
829b2ed39f
@ -180,6 +180,9 @@ CMD:arrest( playerid, params[ ] )
|
||||
if ( GetPlayerState( playerid ) == PLAYER_STATE_WASTED ) return SendError( playerid, "You cannot use this command since you are dead." );
|
||||
new totalCash = ( p_WantedLevel[ victimid ] < MAX_WANTED_LVL ? p_WantedLevel[ victimid ] : MAX_WANTED_LVL ) * ( COP_ARREST_PAY_PER_WANTED );
|
||||
new totalSeconds = p_WantedLevel[ victimid ] * ( JAIL_SECONDS_MULTIPLIER );
|
||||
if ( GetPlayerLevel( victimid, E_POLICE ) >= 75 ) {
|
||||
totalSeconds = floatround( float( totalSeconds ) * 0.5 );
|
||||
}
|
||||
GivePlayerScore( playerid, 2 );
|
||||
GivePlayerExperience( playerid, E_POLICE );
|
||||
GivePlayerCash( playerid, totalCash );
|
||||
@ -396,9 +399,13 @@ stock BreakPlayerCuffs( playerid )
|
||||
}
|
||||
else p_BobbyPins[ playerid ] --;
|
||||
|
||||
new probability = 50; // success rate probability
|
||||
new Float: probability = fRandomEx( 0, 100 );
|
||||
|
||||
if ( random( 101 ) <= probability )
|
||||
// multiply success rate every 25 levels (only 1, 2, 3, 4x)
|
||||
probability *= GetPlayerLevel( playerid, E_POLICE ) / 25.0 + 1.0;
|
||||
|
||||
// if probability >= n% after multiplying as well then uncuff
|
||||
if ( probability >= 75.0 )
|
||||
{
|
||||
if ( ! IsPlayerCuffed( playerid ) )
|
||||
{
|
||||
@ -439,12 +446,12 @@ stock AwardNearestLEO( playerid, reason )
|
||||
{
|
||||
if ( ! IsPlayerConnected( playerid ) || playerid == INVALID_PLAYER_ID || GetPlayerWantedLevel( playerid ) < 2 || IsPlayerDead( playerid ) )
|
||||
return false;
|
||||
|
||||
|
||||
#if defined __cloudy_event_system
|
||||
if ( IsPlayerInEvent( playerid ) )
|
||||
return false;
|
||||
#endif
|
||||
|
||||
|
||||
new Float: radius = ( IsPlayerInAnyVehicle( playerid ) ? 150.0 : 75.0 ); // If player is in a vehicle, increase radius due to ability to get farther quicker.
|
||||
|
||||
new closestLEO = GetClosestPlayerEx( playerid, CLASS_POLICE, radius );
|
||||
|
@ -32,7 +32,7 @@ CMD:bail( playerid, params[ ] )
|
||||
else if ( GetPVarInt( pID, "bail_antispam" ) > g_iTime ) return SendError( playerid, "You must wait 10 seconds before offering a bail to this player." );
|
||||
else
|
||||
{
|
||||
equa = BAIL_DOLLARS_PER_SECOND * p_JailTime[ pID ];
|
||||
equa = floatround( float( BAIL_DOLLARS_PER_SECOND * p_JailTime[ pID ] ) * GetPlayerLevel( playerid, E_POLICE ) / 100 + 1.0 );
|
||||
if ( p_JailTime[ pID ] >= ALCATRAZ_TIME_WANTED ) equa *= 2;
|
||||
p_BailOfferer[ pID ] = playerid;
|
||||
p_BailTimestamp[ pID ] = g_iTime + 120;
|
||||
@ -46,7 +46,7 @@ CMD:bail( playerid, params[ ] )
|
||||
CMD:acceptbail( playerid, params[ ] )
|
||||
{
|
||||
new
|
||||
equa = BAIL_DOLLARS_PER_SECOND * p_JailTime[ playerid ];
|
||||
equa = floatround( float( BAIL_DOLLARS_PER_SECOND * p_JailTime[ playerid ] ) * GetPlayerLevel( playerid, E_POLICE ) / 100 + 1.0 );
|
||||
|
||||
if ( p_JailTime[ playerid ] >= ALCATRAZ_TIME_WANTED )
|
||||
equa *= 2;
|
||||
|
@ -538,6 +538,10 @@ stock createRobberyLootInstance( playerid, robberyid, type )
|
||||
random_chance = 100.0;
|
||||
}
|
||||
|
||||
if ( GetPlayerLevel( playerid, E_POLICE ) >= 50 ) {
|
||||
random_chance = 100.0;
|
||||
}
|
||||
|
||||
// level increase chance of success
|
||||
random_chance += GetPlayerLevel( playerid, E_ROBBERY ) * 0.2; // increase success rate by 0.2% per level
|
||||
|
||||
@ -603,14 +607,20 @@ stock createRobberyLootInstance( playerid, robberyid, type )
|
||||
else if ( business_id != -1 )
|
||||
GetZoneFromCoordinates( szLocation, g_businessData[ business_id ] [ E_X ], g_businessData[ business_id ] [ E_Y ], g_businessData[ business_id ] [ E_Z ] );
|
||||
|
||||
if ( GetPlayerInterior( playerid ) != 0 )
|
||||
SendClientMessageToCops( -1, ""COL_BLUE"[ROBBERY]"COL_WHITE" %s has failed robbing %s"COL_WHITE" near %s.", ReturnPlayerName( playerid ), g_robberyData[ robberyid ] [ E_NAME ], szLocation );
|
||||
else
|
||||
SendClientMessageToCops( -1, ""COL_BLUE"[ROBBERY]"COL_WHITE" %s has failed robbing %s"COL_WHITE".", ReturnPlayerName( playerid ), g_robberyData[ robberyid ] [ E_NAME ] );
|
||||
if ( GetPlayerLevel( playerid, E_POLICE ) < 50 )
|
||||
{
|
||||
if ( GetPlayerInterior( playerid ) != 0 ) {
|
||||
SendClientMessageToCops( -1, ""COL_BLUE"[ROBBERY]"COL_WHITE" %s has failed robbing %s"COL_WHITE" near %s.", ReturnPlayerName( playerid ), g_robberyData[ robberyid ] [ E_NAME ], szLocation );
|
||||
} else {
|
||||
SendClientMessageToCops( -1, ""COL_BLUE"[ROBBERY]"COL_WHITE" %s has failed robbing %s"COL_WHITE".", ReturnPlayerName( playerid ), g_robberyData[ robberyid ] [ E_NAME ] );
|
||||
}
|
||||
|
||||
SendClientMessage( playerid, -1, ""COL_GREY"[SERVER]"COL_WHITE" No loot, and the alarm went off. Cops have been alerted." );
|
||||
GivePlayerWantedLevel( playerid, 6 );
|
||||
CreateCrimeReport( playerid );
|
||||
SendClientMessage( playerid, -1, ""COL_GREY"[SERVER]"COL_WHITE" No loot, and the alarm went off. Cops have been alerted." );
|
||||
GivePlayerWantedLevel( playerid, 6 );
|
||||
CreateCrimeReport( playerid );
|
||||
} else {
|
||||
SendClientMessage( playerid, -1, ""COL_GREY"[SERVER]"COL_WHITE" No loot could be found. Cops have not been alerted as your police level is high." );
|
||||
}
|
||||
}
|
||||
g_robberyData[ robberyid ] [ E_ROB_TIME ] = g_iTime + MAX_ROBBERY_WAIT;
|
||||
g_robberyData[ robberyid ] [ E_ROBBED ] = true;
|
||||
|
Loading…
Reference in New Issue
Block a user