diff --git a/gamemodes/irresistible/cnr/features/business/business.pwn b/gamemodes/irresistible/cnr/features/business/business.pwn index fa70306..65d2bf3 100644 --- a/gamemodes/irresistible/cnr/features/business/business.pwn +++ b/gamemodes/irresistible/cnr/features/business/business.pwn @@ -310,14 +310,15 @@ CMD:business( playerid, params[ ] ) new bool: has = false; - szLargeString = ""COL_WHITE"Name\t"COL_WHITE"Production Time\t"COL_WHITE"Product\n"; + szLargeString = ""COL_WHITE"Name\t"COL_WHITE"Production Time\t"COL_WHITE"Product\t"COL_WHITE"Bank\n"; foreach ( new businessid : business ) if ( IsBusinessAssociate( playerid, businessid ) ) { - format( szLargeString, sizeof( szLargeString ), "%s%s\t%s\t"COL_GOLD"%s\n", + format( szLargeString, sizeof( szLargeString ), "%s%s\t%s\t"COL_GOLD"%s\t"COL_GREEN"%s\n", szLargeString, g_businessData[ businessid ] [ E_NAME ], g_businessData[ businessid ] [ E_PROD_TIMESTAMP ] ? ( secondstotime( g_businessData[ businessid ] [ E_PROD_TIMESTAMP ], ", ", 5 ) ) : ( ""COL_GREEN"Production Finished" ), - g_businessData[ businessid ] [ E_PRODUCT ] == 0 ? ( ""COL_RED"No Product" ) : ( cash_format( g_businessData[ businessid ] [ E_PRODUCT ] * GetProductPrice( businessid ) ) ) + g_businessData[ businessid ] [ E_PRODUCT ] == 0 ? ( ""COL_RED"No Product" ) : ( cash_format( g_businessData[ businessid ] [ E_PRODUCT ] * GetProductPrice( businessid ) ) ), + cash_format( g_businessData[ businessid ][ E_BANK ] ) ), has = true; } diff --git a/gamemodes/irresistible/cnr/features/damage_feed.pwn b/gamemodes/irresistible/cnr/features/damage_feed.pwn index b820593..03a7206 100644 --- a/gamemodes/irresistible/cnr/features/damage_feed.pwn +++ b/gamemodes/irresistible/cnr/features/damage_feed.pwn @@ -236,6 +236,16 @@ public OnPlayerTakenDamage( playerid, issuerid, Float: amount, weaponid, bodypar PlayerPlaySound( issuerid, g_HitmarkerSounds[ soundid ] [ E_SOUND_ID ], 0.0, 0.0, 0.0 ); } + + // play noise for admins + foreach ( new i : Player ) + { + if ( IsPlayerSpectatingPlayer( i, issuerid ) ) + { + new soundid = p_VIPLevel[ i ] ? p_HitmarkerSound{ i } : 0; + PlayerPlaySound( i, g_HitmarkerSounds[ soundid ] [ E_SOUND_ID ], 0.0, 0.0, 0.0 ); + } + } } DamageFeedAddHitTaken( playerid, issuerid, amount, weaponid ); @@ -282,6 +292,11 @@ stock DamageFeedAddHitTaken( playerid, issuerid, Float: amount, weaponid ) AddDamageHit( g_damageTaken[ playerid ], playerid, issuerid, amount, weaponid ); } +stock IsPlayerSpectatingPlayer( playerid, targetid ) +{ + return ( p_Spectating{ playerid } && p_whomSpectating[ playerid ] == targetid && playerid != targetid ); +} + stock UpdateDamageFeed( playerid, bool: modified = false ) { /* ** Core ** */ diff --git a/gamemodes/irresistible/cnr/features/minijobs/pilot.pwn b/gamemodes/irresistible/cnr/features/minijobs/pilot.pwn index 65a09e9..bed2439 100644 --- a/gamemodes/irresistible/cnr/features/minijobs/pilot.pwn +++ b/gamemodes/irresistible/cnr/features/minijobs/pilot.pwn @@ -361,7 +361,7 @@ CMD:pilot( playerid, params[ ] ) p_PilotMapIcon [ playerid ] = CreateDynamicMapIconEx( g_AirportLocations[ p_PilotRoute[ playerid ] { 0 } ] [ E_X ], g_AirportLocations[ p_PilotRoute[ playerid ] { 0 } ] [ E_Y ], g_AirportLocations[ p_PilotRoute[ playerid ] { 0 } ] [ E_Z ], 51, 0, MAPICON_GLOBAL, 6000.0, { -1 }, { -1 }, aPlayer ); p_PilotCheckPoint [ playerid ] = CreateDynamicRaceCP( 0, g_AirportLocations[ p_PilotRoute[ playerid ] { 0 } ] [ E_X ], g_AirportLocations[ p_PilotRoute[ playerid ] { 0 } ] [ E_Y ], g_AirportLocations[ p_PilotRoute[ playerid ] { 0 } ] [ E_Z ], 0.0, 0.0, 0.0, 10.0, -1, -1, playerid ); - if( p_PilotDifficulty[ playerid ] ) { // give the player 6 wanted for starting + if( p_PilotDifficulty[ playerid ] == RISK_FACTOR_HARD ) { // give the player 6 wanted for starting GivePlayerWantedLevel( playerid, 6 ); } diff --git a/gamemodes/irresistible/cnr/features/weapon_drop.pwn b/gamemodes/irresistible/cnr/features/weapon_drop.pwn index 00c9de4..43381f7 100644 --- a/gamemodes/irresistible/cnr/features/weapon_drop.pwn +++ b/gamemodes/irresistible/cnr/features/weapon_drop.pwn @@ -138,6 +138,10 @@ hook OnPlayerPickUpDynPickup( playerid, pickupid ) if ( p_PlayerPickupDelay[ playerid ] > GetServerTime( ) ) return 1; + // if player is in passive mode cannot pickup weapons, ammo + if ( IsPlayerPassive( playerid ) ) + return 1; + // Player Drops foreach ( new dropid : weapondrop ) { diff --git a/gamemodes/irresistible/cnr/wanted_level.pwn b/gamemodes/irresistible/cnr/wanted_level.pwn index 0559096..f3c415e 100644 --- a/gamemodes/irresistible/cnr/wanted_level.pwn +++ b/gamemodes/irresistible/cnr/wanted_level.pwn @@ -71,7 +71,7 @@ stock CNR_SetPlayerWantedLevel( playerid, level ) /* ** Functions ** */ stock GivePlayerWantedLevel( playerid, level ) { - if ( ! IsPlayerConnected( playerid ) || IsPlayerNPC( playerid ) || IsPlayerJailed( playerid ) || level == 0 ) + if ( ! IsPlayerConnected( playerid ) || IsPlayerNPC( playerid ) || IsPlayerJailed( playerid ) || IsPlayerDueling( playerid ) || level == 0 ) return 0; new diff --git a/gamemodes/sf-cnr.pwn b/gamemodes/sf-cnr.pwn index 7a3bfcd..eb3499d 100644 --- a/gamemodes/sf-cnr.pwn +++ b/gamemodes/sf-cnr.pwn @@ -2195,7 +2195,7 @@ public OnPlayerDeath( playerid, killerid, reason ) // Reset player variables p_Spawned{ playerid } = false; p_QuitToAvoidTimestamp[ playerid ] = 0; - CutSpectation( playerid ); + //CutSpectation( playerid ); StopPlayerNpcRobbery( playerid ); RemovePlayerFromRace( playerid ); RemovePlayerStolensFromHands( playerid ); @@ -4316,7 +4316,7 @@ CMD:jaillist( playerid, params[ ] ) szBigString[ 0 ] = '\0'; foreach( new i : Player ) if ( IsPlayerJailed( i ) ) { - format( szBigString, sizeof( szBigString ), "%s%s%s(%d)\t%d seconds", szBigString, p_AdminJailed{ i } ? ( COL_RED ) : ( COL_WHITE ), ReturnPlayerName( i ), i, p_JailTime[ i ] ); + format( szBigString, sizeof( szBigString ), "%s%s%s(%d)\t%d seconds\n", szBigString, p_AdminJailed{ i } ? ( COL_RED ) : ( COL_WHITE ), ReturnPlayerName( i ), i, p_JailTime[ i ] ); } if ( szBigString[ 0 ] == '\0' ) { @@ -5677,7 +5677,7 @@ CMD:location( playerid, params[ ] ) pID ; - if ( p_Class[ playerid ] == CLASS_CIVILIAN ) return SendError( playerid, "This is not accessible by civilians." ); + if ( p_Class[ playerid ] == CLASS_CIVILIAN || p_Class[ playerid ] == CLASS_FIREMAN ) return SendError( playerid, "This is restricted to police only." ); else if ( sscanf( params, "u", pID ) ) return SendUsage( playerid, "/loc(ation) [PLAYER_ID]" ); else if ( ! IsPlayerConnected( pID ) || IsPlayerNPC( pID ) ) return SendError( playerid, "This player isn't connected!" ); else if ( ! IsPlayerSpawned( pID ) ) return SendError( playerid, "The player selected isn't spawned." );