make hide from radar last one minute
This commit is contained in:
parent
278f3f7c6b
commit
be16355bee
@ -8,14 +8,66 @@
|
|||||||
/* ** Includes ** */
|
/* ** Includes ** */
|
||||||
#include < YSI\y_hooks >
|
#include < YSI\y_hooks >
|
||||||
|
|
||||||
|
/* ** Variables ** */
|
||||||
|
static stock
|
||||||
|
bool: p_OffRadar [ MAX_PLAYERS char ],
|
||||||
|
p_OffRadarTimestamp [ MAX_PLAYERS ],
|
||||||
|
p_OffRadarVisible [ MAX_PLAYERS ]
|
||||||
|
;
|
||||||
|
|
||||||
/* ** Hooks ** */
|
/* ** Hooks ** */
|
||||||
|
hook OnPlayerDisconnect( playerid, reason )
|
||||||
|
{
|
||||||
|
p_OffRadar{ playerid } = false;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
hook OnPlayerSpawn( playerid )
|
||||||
|
{
|
||||||
|
p_OffRadar{ playerid } = false;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
hook OnPlayerUpdateEx( playerid )
|
||||||
|
{
|
||||||
|
if ( IsPlayerHiddenFromRadar( playerid ) )
|
||||||
|
{
|
||||||
|
new
|
||||||
|
current_time = GetServerTime( );
|
||||||
|
|
||||||
|
// Expire stealth mode after 30 seconds
|
||||||
|
if ( p_OffRadarTimestamp[ playerid ] != 0 && current_time > p_OffRadarTimestamp[ playerid ] ) {
|
||||||
|
p_OffRadar{ playerid } = false;
|
||||||
|
SetPlayerColorToTeam( playerid );
|
||||||
|
SendServerMessage( playerid, "Your hide from radar perk has now expired." );
|
||||||
|
}
|
||||||
|
|
||||||
|
// Stealth mode after getting shot
|
||||||
|
else if ( p_OffRadarVisible[ playerid ] != 0 && current_time > p_OffRadarVisible[ playerid ] ) {
|
||||||
|
SetPlayerColorToTeam( playerid ), p_OffRadarVisible[ playerid ] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
hook OnPlayerWeaponShot( playerid, weaponid, hittype, hitid, Float: fX, Float: fY, Float: fZ )
|
||||||
|
{
|
||||||
|
if ( hittype == BULLET_HIT_TYPE_PLAYER ) {
|
||||||
|
// Exposing stealth mode player
|
||||||
|
if ( IsPlayerHiddenFromRadar( playerid ) ) {
|
||||||
|
SetPlayerColor( playerid, setAlpha( GetPlayerColor( playerid ), 0xFF ) ), p_OffRadarVisible[ playerid ] = g_iTime + 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
hook OnDialogResponse( playerid, dialogid, response, listitem, inputtext[ ] )
|
hook OnDialogResponse( playerid, dialogid, response, listitem, inputtext[ ] )
|
||||||
{
|
{
|
||||||
if ( dialogid == DIALOG_PERKS && response )
|
if ( dialogid == DIALOG_PERKS && response )
|
||||||
{
|
{
|
||||||
switch( listitem )
|
switch( listitem )
|
||||||
{
|
{
|
||||||
case 0: ShowPlayerDialog( playerid, DIALOG_PERKS_P, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Game Perks", ""COL_WHITE"Item Name\t"COL_WHITE"Total Level Req.\t"COL_WHITE"Cost ($)\nUnlimited Ammunition\t"COL_GOLD"50\t"COL_GREEN"$9,900\nStealth Mode\t"COL_GOLD"75\t"COL_GREEN"$15,000", "Select", "Back" );
|
case 0: ShowPlayerDialog( playerid, DIALOG_PERKS_P, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Game Perks", ""COL_WHITE"Item Name\t"COL_WHITE"Total Level Req.\t"COL_WHITE"Cost ($)\nHide From Radar\t"COL_GOLD"75\t"COL_GREEN"$25,000\nUnlimited Ammunition\t"COL_GOLD"50\t"COL_GREEN"$9,900", "Select", "Back" );
|
||||||
case 1: ShowPlayerDialog( playerid, DIALOG_PERKS_V, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Game Perks", ""COL_WHITE"Item Name\t"COL_WHITE"Total Level Req.\t"COL_WHITE"Cost ($)\nFix & Flip vehicle\t"COL_GOLD"75\t"COL_GREEN"$9,900\nRepair Vehicle\t"COL_GOLD"75\t"COL_GREEN"$7,500\nAdd NOS\t"COL_GOLD"50\t"COL_GREEN"$3,000\nFlip vehicle\t"COL_GOLD"40\t"COL_GREEN"$2,500", "Select", "Back" );
|
case 1: ShowPlayerDialog( playerid, DIALOG_PERKS_V, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Game Perks", ""COL_WHITE"Item Name\t"COL_WHITE"Total Level Req.\t"COL_WHITE"Cost ($)\nFix & Flip vehicle\t"COL_GOLD"75\t"COL_GREEN"$9,900\nRepair Vehicle\t"COL_GOLD"75\t"COL_GREEN"$7,500\nAdd NOS\t"COL_GOLD"50\t"COL_GREEN"$3,000\nFlip vehicle\t"COL_GOLD"40\t"COL_GREEN"$2,500", "Select", "Back" );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -30,6 +82,32 @@ hook OnDialogResponse( playerid, dialogid, response, listitem, inputtext[ ] )
|
|||||||
switch( listitem )
|
switch( listitem )
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
|
{
|
||||||
|
if ( total_level < 75 ) {
|
||||||
|
return SendError( playerid, "Your total level must be at least 75 to use this (/level)." );
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( GetPlayerCash( playerid ) < 25000 ) {
|
||||||
|
return SendError( playerid, "You do not have enough money for this item ($25,000)." );
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( GetPlayerClass( playerid ) != CLASS_CIVILIAN ) {
|
||||||
|
return SendError( playerid, "You need to be a civilian to use this perk." );
|
||||||
|
}
|
||||||
|
|
||||||
|
p_OffRadar{ playerid } = true;
|
||||||
|
p_OffRadarTimestamp[ playerid ] = GetServerTime( ) + 60;
|
||||||
|
|
||||||
|
GivePlayerCash( playerid, -25000 );
|
||||||
|
|
||||||
|
SendServerMessage( playerid, "You have hidden yourself from the radar (1 minute) for $25,000." );
|
||||||
|
ShowPlayerHelpDialog( playerid, 3000, "~g~~h~Hide from radar ~w~will be deactivate in 1 minute." );
|
||||||
|
|
||||||
|
SetPlayerColor( playerid, setAlpha( GetPlayerColor( playerid ), 0x00 ) );
|
||||||
|
Beep( playerid );
|
||||||
|
}
|
||||||
|
|
||||||
|
case 1:
|
||||||
{
|
{
|
||||||
if ( total_level < 50 ) {
|
if ( total_level < 50 ) {
|
||||||
return SendError( playerid, "Your total level must be at least 50 to use this (/level)." );
|
return SendError( playerid, "Your total level must be at least 50 to use this (/level)." );
|
||||||
@ -52,31 +130,6 @@ hook OnDialogResponse( playerid, dialogid, response, listitem, inputtext[ ] )
|
|||||||
SetPlayerArmedWeapon( playerid, 0 );
|
SetPlayerArmedWeapon( playerid, 0 );
|
||||||
Beep( playerid );
|
Beep( playerid );
|
||||||
}
|
}
|
||||||
|
|
||||||
case 1:
|
|
||||||
{
|
|
||||||
if ( total_level < 75 ) {
|
|
||||||
return SendError( playerid, "Your total level must be at least 75 to use this (/level)." );
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( GetPlayerCash( playerid ) < 11500 ) {
|
|
||||||
return SendError( playerid, "You do not have enough money for this item ($11,500)." );
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( p_OffRadar{ playerid } ) {
|
|
||||||
return SendError( playerid, "You have already purchased this item." );
|
|
||||||
}
|
|
||||||
|
|
||||||
p_OffRadar{ playerid } = true;
|
|
||||||
|
|
||||||
GivePlayerCash( playerid, -11500 );
|
|
||||||
|
|
||||||
SendServerMessage( playerid, "You have brought stealth mode for $15,000." );
|
|
||||||
ShowPlayerHelpDialog( playerid, 3000, "~g~~h~Stealth mode ~w~will be deactivate once you respawn." );
|
|
||||||
|
|
||||||
SetPlayerColor( playerid, setAlpha( GetPlayerColor( playerid ), 0x00 ) );
|
|
||||||
Beep( playerid );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ( dialogid == DIALOG_PERKS_V )
|
else if ( dialogid == DIALOG_PERKS_V )
|
||||||
@ -171,3 +224,8 @@ CMD:perks( playerid, params[ ] )
|
|||||||
}
|
}
|
||||||
return ShowPlayerDialog( playerid, DIALOG_PERKS, DIALOG_STYLE_LIST, "{FFFFFF}Game Perks", "Player Perks\nVehicle Perks", "Select", "Cancel" );
|
return ShowPlayerDialog( playerid, DIALOG_PERKS, DIALOG_STYLE_LIST, "{FFFFFF}Game Perks", "Player Perks\nVehicle Perks", "Select", "Cancel" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ** Functions ** */
|
||||||
|
stock IsPlayerHiddenFromRadar( playerid ) {
|
||||||
|
return p_OffRadar{ playerid };
|
||||||
|
}
|
||||||
|
@ -205,7 +205,6 @@ new
|
|||||||
p_LastPlayerState [ MAX_PLAYERS char ],
|
p_LastPlayerState [ MAX_PLAYERS char ],
|
||||||
p_RespondDelay [ MAX_PLAYERS ],
|
p_RespondDelay [ MAX_PLAYERS ],
|
||||||
p_VisibleOnRadar [ MAX_PLAYERS ],
|
p_VisibleOnRadar [ MAX_PLAYERS ],
|
||||||
p_OffRadarVisible [ MAX_PLAYERS ],
|
|
||||||
p_InGarage [ MAX_PLAYERS ] = { -1, ... },
|
p_InGarage [ MAX_PLAYERS ] = { -1, ... },
|
||||||
p_WorkCooldown [ MAX_PLAYERS ],
|
p_WorkCooldown [ MAX_PLAYERS ],
|
||||||
p_AntiSpammyTS [ MAX_PLAYERS ],
|
p_AntiSpammyTS [ MAX_PLAYERS ],
|
||||||
@ -240,8 +239,7 @@ new
|
|||||||
p_AimedAtPolice [ MAX_PLAYERS ],
|
p_AimedAtPolice [ MAX_PLAYERS ],
|
||||||
bool: p_PassiveModeDisabled [ MAX_PLAYERS char ],
|
bool: p_PassiveModeDisabled [ MAX_PLAYERS char ],
|
||||||
p_PassiveModeExpireTimer [ MAX_PLAYERS ] = { -1, ... },
|
p_PassiveModeExpireTimer [ MAX_PLAYERS ] = { -1, ... },
|
||||||
Text3D: p_PassiveModeLabel [ MAX_PLAYERS ] = { Text3D: INVALID_3DTEXT_ID },
|
Text3D: p_PassiveModeLabel [ MAX_PLAYERS ] = { Text3D: INVALID_3DTEXT_ID }
|
||||||
bool: p_OffRadar [ MAX_PLAYERS char ]
|
|
||||||
;
|
;
|
||||||
|
|
||||||
/* ** Getters And Setters** */
|
/* ** Getters And Setters** */
|
||||||
|
@ -2131,11 +2131,6 @@ public ZoneTimer( )
|
|||||||
// CIA Visible On Radar after firing a shot
|
// CIA Visible On Radar after firing a shot
|
||||||
if ( p_VisibleOnRadar[ playerid ] != 0 && p_VisibleOnRadar[ playerid ] < g_iTime )
|
if ( p_VisibleOnRadar[ playerid ] != 0 && p_VisibleOnRadar[ playerid ] < g_iTime )
|
||||||
SetPlayerColorToTeam( playerid ), p_VisibleOnRadar[ playerid ] = 0;
|
SetPlayerColorToTeam( playerid ), p_VisibleOnRadar[ playerid ] = 0;
|
||||||
|
|
||||||
// Stealth mode after getting shot
|
|
||||||
if ( p_OffRadarVisible[ playerid ] != 0 && p_OffRadarVisible[ playerid ] < g_iTime )
|
|
||||||
SetPlayerColor( playerid, setAlpha( GetPlayerColor( playerid ), 0x00 ) ), p_OffRadarVisible[ playerid ] = 0;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@ -2852,8 +2847,6 @@ public OnPlayerSpawn( playerid )
|
|||||||
StopSound( playerid );
|
StopSound( playerid );
|
||||||
CancelEdit( playerid );
|
CancelEdit( playerid );
|
||||||
|
|
||||||
p_OffRadar{ playerid } = false;
|
|
||||||
|
|
||||||
// Approved spawn?
|
// Approved spawn?
|
||||||
if ( !approveClassSpawned( playerid ) ) {
|
if ( !approveClassSpawned( playerid ) ) {
|
||||||
SendClientMessageToAdmins( -1, ""COL_PINK"[ABNORMAL SPAWN]"COL_GREY" %s(%d) - %d skin - %d ping - %s IP", ReturnPlayerName( playerid ), playerid, GetPlayerSkin( playerid ), GetPlayerPing( playerid ), ReturnPlayerIP( playerid ) );
|
SendClientMessageToAdmins( -1, ""COL_PINK"[ABNORMAL SPAWN]"COL_GREY" %s(%d) - %d skin - %d ping - %s IP", ReturnPlayerName( playerid ), playerid, GetPlayerSkin( playerid ), GetPlayerPing( playerid ), ReturnPlayerIP( playerid ) );
|
||||||
@ -3089,10 +3082,6 @@ public OnPlayerWeaponShot( playerid, weaponid, hittype, hitid, Float:fX, Float:f
|
|||||||
if ( p_Class[ playerid ] == CLASS_POLICE && p_Class[ hitid ] != CLASS_POLICE && !p_WantedLevel[ hitid ] && GetPlayerState( hitid ) != PLAYER_STATE_WASTED && ! IsPlayerInEvent( playerid ) )
|
if ( p_Class[ playerid ] == CLASS_POLICE && p_Class[ hitid ] != CLASS_POLICE && !p_WantedLevel[ hitid ] && GetPlayerState( hitid ) != PLAYER_STATE_WASTED && ! IsPlayerInEvent( playerid ) )
|
||||||
return ShowPlayerHelpDialog( playerid, 2000, "You cannot hurt innocent civilians, you're a ~b~cop~w~~h~!" ), 0;
|
return ShowPlayerHelpDialog( playerid, 2000, "You cannot hurt innocent civilians, you're a ~b~cop~w~~h~!" ), 0;
|
||||||
|
|
||||||
// Exposing stealth mode player
|
|
||||||
if ( p_OffRadar{ playerid } )
|
|
||||||
SetPlayerColor( playerid, setAlpha( GetPlayerColor( playerid ), 0xFF ) ), p_OffRadarVisible[ playerid ] = g_iTime + 2;
|
|
||||||
|
|
||||||
// CIA Exposure when weapon is shot
|
// CIA Exposure when weapon is shot
|
||||||
if ( p_Class[ playerid ] == CLASS_POLICE && p_inFBI{ playerid } && p_inCIA{ playerid } && !p_inArmy{ playerid } )
|
if ( p_Class[ playerid ] == CLASS_POLICE && p_inFBI{ playerid } && p_inCIA{ playerid } && !p_inArmy{ playerid } )
|
||||||
SetPlayerColor( playerid, setAlpha( COLOR_CIA, 0xFF ) ), p_VisibleOnRadar[ playerid ] = g_iTime + 2;
|
SetPlayerColor( playerid, setAlpha( COLOR_CIA, 0xFF ) ), p_VisibleOnRadar[ playerid ] = g_iTime + 2;
|
||||||
@ -15177,14 +15166,9 @@ stock GivePlayerWantedLevel( playerid, wantedlevel, bool:loadingstats = false )
|
|||||||
static
|
static
|
||||||
szWanted[ 12 ];
|
szWanted[ 12 ];
|
||||||
|
|
||||||
if ( !IsPlayerConnected( playerid ) )
|
if ( ! IsPlayerConnected( playerid ) || IsPlayerNPC( playerid ) )
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
#if defined __cnr__chuffsec
|
|
||||||
if ( IsPlayerSecurityDriver( playerid ) )
|
|
||||||
return SetPlayerColor( playerid, COLOR_SECURITY );
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if ( IsPlayerJailed( playerid ) )
|
if ( IsPlayerJailed( playerid ) )
|
||||||
{
|
{
|
||||||
SendClientMessageFormatted( playerid, -1, ""COL_GOLD"[WANTED LEVEL]{FFFFFF} As you're jailed, wanted levels will not append.", wantedlevel, p_WantedLevel[ playerid ] );
|
SendClientMessageFormatted( playerid, -1, ""COL_GOLD"[WANTED LEVEL]{FFFFFF} As you're jailed, wanted levels will not append.", wantedlevel, p_WantedLevel[ playerid ] );
|
||||||
@ -15200,10 +15184,8 @@ stock GivePlayerWantedLevel( playerid, wantedlevel, bool:loadingstats = false )
|
|||||||
if ( ( wantedlevel < 0 && p_WantedLevel[ playerid ] < 6 ) || wantedlevel > 0 )
|
if ( ( wantedlevel < 0 && p_WantedLevel[ playerid ] < 6 ) || wantedlevel > 0 )
|
||||||
SetPlayerWantedLevel( playerid, p_WantedLevel[ playerid ] );
|
SetPlayerWantedLevel( playerid, p_WantedLevel[ playerid ] );
|
||||||
|
|
||||||
if ( p_WantedLevel[ playerid ] )
|
if ( p_WantedLevel[ playerid ] > 0 )
|
||||||
{
|
{
|
||||||
SetPlayerColor( playerid, COLOR_WANTED2 );
|
|
||||||
|
|
||||||
if ( IsPlayerSpawned( playerid ) )
|
if ( IsPlayerSpawned( playerid ) )
|
||||||
{
|
{
|
||||||
format( szWanted, sizeof( szWanted ), "] %d ]", p_WantedLevel[ playerid ] );
|
format( szWanted, sizeof( szWanted ), "] %d ]", p_WantedLevel[ playerid ] );
|
||||||
@ -15212,14 +15194,14 @@ stock GivePlayerWantedLevel( playerid, wantedlevel, bool:loadingstats = false )
|
|||||||
ResetPlayerPassiveMode( playerid, .passive_disabled = true ); // remove passive mode if the player is wanted
|
ResetPlayerPassiveMode( playerid, .passive_disabled = true ); // remove passive mode if the player is wanted
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else SetPlayerColorToTeam( playerid ), PlayerTextDrawHide( playerid, p_WantedLevelTD[ playerid ] ), Uncuff( playerid );
|
else
|
||||||
|
{
|
||||||
|
PlayerTextDrawHide( playerid, p_WantedLevelTD[ playerid ] );
|
||||||
|
Uncuff( playerid );
|
||||||
|
}
|
||||||
|
|
||||||
if ( p_WantedLevel[ playerid ] > 5 ) SetPlayerColor( playerid, COLOR_WANTED6 );
|
// regulate player color
|
||||||
if ( p_WantedLevel[ playerid ] > 11 ) SetPlayerColor( playerid, COLOR_WANTED12 );
|
SetPlayerColorToTeam( playerid );
|
||||||
if ( p_WantedLevel[ playerid ] > 90 ) printf( "[wanted_level] %s - %d", ReturnPlayerName( playerid ), p_WantedLevel[ playerid ] );
|
|
||||||
if ( IsPlayerAdminOnDuty( playerid ) ) SetPlayerColor( playerid, COLOR_PINK );
|
|
||||||
|
|
||||||
if ( p_OffRadar{ playerid } ) SetPlayerColor( playerid, setAlpha( GetPlayerColor( playerid ), 0x00 ) );
|
|
||||||
|
|
||||||
/*if ( p_WantedLevel[ playerid ] > 2000 ) // 8hska7082bmahu
|
/*if ( p_WantedLevel[ playerid ] > 2000 ) // 8hska7082bmahu
|
||||||
{
|
{
|
||||||
@ -15427,11 +15409,22 @@ stock SetPlayerColorToTeam( playerid )
|
|||||||
case CLASS_MEDIC: SetPlayerColor( playerid, COLOR_MEDIC );
|
case CLASS_MEDIC: SetPlayerColor( playerid, COLOR_MEDIC );
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
SetPlayerColor( playerid, COLOR_DEFAULT );
|
new
|
||||||
if ( p_GangID[ playerid ] != INVALID_GANG_ID ) SetPlayerColor( playerid, g_gangData[ p_GangID[ playerid ] ] [ E_COLOR ] );
|
default_color = COLOR_DEFAULT;
|
||||||
if ( p_WantedLevel[ playerid ] > 1 ) SetPlayerColor( playerid, COLOR_WANTED2 );
|
|
||||||
if ( p_WantedLevel[ playerid ] > 5 ) SetPlayerColor( playerid, COLOR_WANTED6 );
|
// set color according to wanted level
|
||||||
if ( p_WantedLevel[ playerid ] > 11 ) SetPlayerColor( playerid, COLOR_WANTED12 );
|
if ( p_WantedLevel[ playerid ] > 11 ) default_color = COLOR_WANTED12;
|
||||||
|
else if ( p_WantedLevel[ playerid ] > 5 ) default_color = COLOR_WANTED6;
|
||||||
|
else if ( p_WantedLevel[ playerid ] > 1 ) default_color = COLOR_WANTED2;
|
||||||
|
else if ( p_GangID[ playerid ] != INVALID_GANG_ID ) default_color = g_gangData[ p_GangID[ playerid ] ] [ E_COLOR ];
|
||||||
|
|
||||||
|
// set alpha for invisible players to 0
|
||||||
|
if ( IsPlayerHiddenFromRadar( playerid ) ) {
|
||||||
|
default_color = setAlpha( default_color, 0x00 );
|
||||||
|
}
|
||||||
|
|
||||||
|
// force the color on the player
|
||||||
|
return SetPlayerColor( playerid, default_color );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
|
Loading…
Reference in New Issue
Block a user