make hide from radar last one minute
This commit is contained in:
parent
278f3f7c6b
commit
be16355bee
@ -8,14 +8,66 @@
|
||||
/* ** Includes ** */
|
||||
#include < YSI\y_hooks >
|
||||
|
||||
/* ** Variables ** */
|
||||
static stock
|
||||
bool: p_OffRadar [ MAX_PLAYERS char ],
|
||||
p_OffRadarTimestamp [ MAX_PLAYERS ],
|
||||
p_OffRadarVisible [ MAX_PLAYERS ]
|
||||
;
|
||||
|
||||
/* ** 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[ ] )
|
||||
{
|
||||
if ( dialogid == DIALOG_PERKS && response )
|
||||
{
|
||||
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" );
|
||||
}
|
||||
}
|
||||
@ -30,6 +82,32 @@ hook OnDialogResponse( playerid, dialogid, response, listitem, inputtext[ ] )
|
||||
switch( listitem )
|
||||
{
|
||||
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 ) {
|
||||
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 );
|
||||
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 )
|
||||
@ -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" );
|
||||
}
|
||||
|
||||
/* ** Functions ** */
|
||||
stock IsPlayerHiddenFromRadar( playerid ) {
|
||||
return p_OffRadar{ playerid };
|
||||
}
|
||||
|
@ -205,7 +205,6 @@ new
|
||||
p_LastPlayerState [ MAX_PLAYERS char ],
|
||||
p_RespondDelay [ MAX_PLAYERS ],
|
||||
p_VisibleOnRadar [ MAX_PLAYERS ],
|
||||
p_OffRadarVisible [ MAX_PLAYERS ],
|
||||
p_InGarage [ MAX_PLAYERS ] = { -1, ... },
|
||||
p_WorkCooldown [ MAX_PLAYERS ],
|
||||
p_AntiSpammyTS [ MAX_PLAYERS ],
|
||||
@ -240,8 +239,7 @@ new
|
||||
p_AimedAtPolice [ MAX_PLAYERS ],
|
||||
bool: p_PassiveModeDisabled [ MAX_PLAYERS char ],
|
||||
p_PassiveModeExpireTimer [ MAX_PLAYERS ] = { -1, ... },
|
||||
Text3D: p_PassiveModeLabel [ MAX_PLAYERS ] = { Text3D: INVALID_3DTEXT_ID },
|
||||
bool: p_OffRadar [ MAX_PLAYERS char ]
|
||||
Text3D: p_PassiveModeLabel [ MAX_PLAYERS ] = { Text3D: INVALID_3DTEXT_ID }
|
||||
;
|
||||
|
||||
/* ** Getters And Setters** */
|
||||
|
@ -2131,11 +2131,6 @@ public ZoneTimer( )
|
||||
// CIA Visible On Radar after firing a shot
|
||||
if ( p_VisibleOnRadar[ playerid ] != 0 && p_VisibleOnRadar[ playerid ] < g_iTime )
|
||||
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;
|
||||
}
|
||||
@ -2852,8 +2847,6 @@ public OnPlayerSpawn( playerid )
|
||||
StopSound( playerid );
|
||||
CancelEdit( playerid );
|
||||
|
||||
p_OffRadar{ playerid } = false;
|
||||
|
||||
// Approved spawn?
|
||||
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 ) );
|
||||
@ -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 ) )
|
||||
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
|
||||
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;
|
||||
@ -15177,14 +15166,9 @@ stock GivePlayerWantedLevel( playerid, wantedlevel, bool:loadingstats = false )
|
||||
static
|
||||
szWanted[ 12 ];
|
||||
|
||||
if ( !IsPlayerConnected( playerid ) )
|
||||
if ( ! IsPlayerConnected( playerid ) || IsPlayerNPC( playerid ) )
|
||||
return 0;
|
||||
|
||||
#if defined __cnr__chuffsec
|
||||
if ( IsPlayerSecurityDriver( playerid ) )
|
||||
return SetPlayerColor( playerid, COLOR_SECURITY );
|
||||
#endif
|
||||
|
||||
if ( IsPlayerJailed( 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 )
|
||||
SetPlayerWantedLevel( playerid, p_WantedLevel[ playerid ] );
|
||||
|
||||
if ( p_WantedLevel[ playerid ] )
|
||||
if ( p_WantedLevel[ playerid ] > 0 )
|
||||
{
|
||||
SetPlayerColor( playerid, COLOR_WANTED2 );
|
||||
|
||||
if ( IsPlayerSpawned( 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
|
||||
}
|
||||
}
|
||||
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 );
|
||||
if ( p_WantedLevel[ playerid ] > 11 ) SetPlayerColor( playerid, COLOR_WANTED12 );
|
||||
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 ) );
|
||||
// regulate player color
|
||||
SetPlayerColorToTeam( playerid );
|
||||
|
||||
/*if ( p_WantedLevel[ playerid ] > 2000 ) // 8hska7082bmahu
|
||||
{
|
||||
@ -15427,11 +15409,22 @@ stock SetPlayerColorToTeam( playerid )
|
||||
case CLASS_MEDIC: SetPlayerColor( playerid, COLOR_MEDIC );
|
||||
default:
|
||||
{
|
||||
SetPlayerColor( playerid, COLOR_DEFAULT );
|
||||
if ( p_GangID[ playerid ] != INVALID_GANG_ID ) SetPlayerColor( playerid, g_gangData[ p_GangID[ playerid ] ] [ E_COLOR ] );
|
||||
if ( p_WantedLevel[ playerid ] > 1 ) SetPlayerColor( playerid, COLOR_WANTED2 );
|
||||
if ( p_WantedLevel[ playerid ] > 5 ) SetPlayerColor( playerid, COLOR_WANTED6 );
|
||||
if ( p_WantedLevel[ playerid ] > 11 ) SetPlayerColor( playerid, COLOR_WANTED12 );
|
||||
new
|
||||
default_color = COLOR_DEFAULT;
|
||||
|
||||
// set color according to wanted level
|
||||
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;
|
||||
|
Loading…
Reference in New Issue
Block a user