From 0a169db4ab3db1f05f3a95b73e3b55f0268239c5 Mon Sep 17 00:00:00 2001 From: x3Karma Date: Thu, 20 Jan 2022 18:12:31 +0800 Subject: Update _burnmeter.gnut - fixed infinite map hacks - fixed "SONAR DETECTED" message playing with "MAPHACK DETECTED" - increased the range of the pulse of map hack - for whatever reason, dying while a map hack is going on stops the map hack. --- .../mod/scripts/vscripts/burnmeter/_burnmeter.gnut | 35 +++++++++++++++------- 1 file changed, 25 insertions(+), 10 deletions(-) (limited to 'Northstar.CustomServers') diff --git a/Northstar.CustomServers/mod/scripts/vscripts/burnmeter/_burnmeter.gnut b/Northstar.CustomServers/mod/scripts/vscripts/burnmeter/_burnmeter.gnut index d1f4bd80..dcae6bd2 100644 --- a/Northstar.CustomServers/mod/scripts/vscripts/burnmeter/_burnmeter.gnut +++ b/Northstar.CustomServers/mod/scripts/vscripts/burnmeter/_burnmeter.gnut @@ -378,25 +378,40 @@ void function PlayerUsesMaphackBurncardThreaded( entity player ) array aliveplayers = GetPlayerArray() foreach ( entity otherPlayer in GetPlayerArray() ) { - Remote_CallFunction_Replay( otherPlayer, "ServerCallback_SonarPulseFromPosition", player.GetOrigin().x, player.GetOrigin().y, player.GetOrigin().z, SONAR_GRENADE_RADIUS ) + Remote_CallFunction_Replay( otherPlayer, "ServerCallback_SonarPulseFromPosition", player.GetOrigin().x, player.GetOrigin().y, player.GetOrigin().z, 2000) - if ( otherPlayer.GetTeam() != player.GetTeam() && aliveplayers.find(otherPlayer) != -1 && aliveplayers.find(player) != -1 ) + if ( otherPlayer.GetTeam() != player.GetTeam() && aliveplayers.find(otherPlayer) != -1 ) { - StatusEffect_AddTimed( otherPlayer, eStatusEffect.maphack_detected, 1.0, MAPHACK_PULSE_DELAY / 2, 0.0 ) - SonarStart( otherPlayer, player.GetOrigin(), player.GetTeam(), player ) - IncrementSonarPerTeam( player.GetTeam() ) + MapHackSonar(player, otherPlayer) } } wait MAPHACK_PULSE_DELAY - foreach ( entity otherPlayer in GetPlayerArray() ) { - if ( otherPlayer.GetTeam() != player.GetTeam() && aliveplayers.find(otherPlayer) != -1 && aliveplayers.find(player) != -1 ) { - SonarEnd (otherPlayer, player.GetTeam() ) - DecrementSonarPerTeam( player.GetTeam() ) + foreach ( entity otherPlayer in GetPlayerArray() ) + { + if ( otherPlayer.GetTeam() != player.GetTeam() && aliveplayers.find(otherPlayer) != -1 ) { + MapHackSonarStop(player, otherPlayer) } } } } +void function MapHackSonar(entity player, entity otherPlayer) +{ + // doing this should prevent infinite map hacks + StatusEffect_AddTimed( otherPlayer, eStatusEffect.maphack_detected, 1.0, MAPHACK_PULSE_DELAY / 2, 0.0 ) + Highlight_SetEnemyHighlight( otherPlayer, "enemy_sonar" ) + Highlight_SetSonarHighlightWithParam1( otherPlayer, "enemy_sonar", player.GetOrigin() ) + Highlight_SetSonarHighlightOrigin( otherPlayer, player.GetOrigin() ) + otherPlayer.HighlightEnableForTeam( player.GetTeam() ) +} +void function MapHackSonarStop(entity player, entity otherPlayer) +{ + otherPlayer.HighlightDisableForTeam( player.GetTeam() ) + otherPlayer.HighlightSetTeamBitField( 0 ) + if (Hightlight_HasEnemyHighlight( otherPlayer, "enemy_sonar")) + Highlight_ClearEnemyHighlight( otherPlayer ) +} + void function PlayerUsesPhaseRewindBurncard( entity player ) { thread PlayerUsesPhaseRewindBurncardThreaded( player ) @@ -510,4 +525,4 @@ void function PlayerUsesReaperfallBurncard( entity player ) DispatchSpawn( reaper ) thread SuperSpectre_WarpFall( reaper ) -} \ No newline at end of file +} -- cgit v1.2.3