From 7025b0d66ddb89b8aafa35136a763855bb7da3d5 Mon Sep 17 00:00:00 2001 From: FutureRave Date: Tue, 1 Mar 2022 13:13:35 +0000 Subject: [PATCH] Fix mp_radar --- raw/maps/mp/mp_radar.gsc | 64 +++++++++++++++++++++++++++++ raw/scripts/_inf_anti_rage_quit.gsc | 17 ++++++++ raw/scripts/_inf_utils.gsc | 28 ------------- 3 files changed, 81 insertions(+), 28 deletions(-) create mode 100644 raw/maps/mp/mp_radar.gsc diff --git a/raw/maps/mp/mp_radar.gsc b/raw/maps/mp/mp_radar.gsc new file mode 100644 index 0000000..50e991b --- /dev/null +++ b/raw/maps/mp/mp_radar.gsc @@ -0,0 +1,64 @@ +// IW5 GSC SOURCE +// Decompiled by https://github.com/xensik/gsc-tool + +main() +{ + maps\mp\mp_radar_precache::main(); + maps\createart\mp_radar_art::main(); + maps\mp\mp_radar_fx::main(); + maps\mp\_explosive_barrels::main(); + maps\mp\_load::main(); + ambientplay( "ambient_mp_radar" ); + maps\mp\_compass::setupMiniMap( "compass_map_mp_radar" ); + setdvar( "r_lightGridEnableTweaks", 1 ); + setdvar( "r_lightGridIntensity", 1.33 ); + game["attackers"] = "allies"; + game["defenders"] = "axis"; + audio_settings(); +} + +audio_settings() +{ + maps\mp\_audio::add_reverb( "default", "mountains", 0.2, 0.9, 2 ); +} + +_id_4410() +{ + level endon( "game_ended" ); + var_0 = common_scripts\utility::getstruct( "mig_start", "targetname" ); + var_1 = common_scripts\utility::getstruct( "mig_launch", "targetname" ); + var_2 = common_scripts\utility::getstruct( "mig_air1", "targetname" ); + var_3 = common_scripts\utility::getstruct( "mig_end", "targetname" ); + var_4 = distance( var_0.origin, var_1.origin ); + var_5 = distance( var_1.origin, var_2.origin ); + var_6 = distance( var_2.origin, var_3.origin ); + var_7 = vectortoangles( vectornormalize( var_1.origin - var_0.origin ) ); + var_8 = vectortoangles( vectornormalize( var_2.origin - var_1.origin ) ); + var_9 = vectortoangles( vectornormalize( var_3.origin - var_2.origin ) ); + var_10 = spawn( "script_model", var_0.origin ); + var_10 setmodel( "vehicle_mig29_low_mp" ); + + for (;;) + { + wait(randomintrange( 10, 25 )); + var_10.origin = var_0.origin; + var_10.angles = var_7; + var_10 show(); + playfxontag( level.fx_airstrike_afterburner, var_10, "tag_origin" ); + var_10 playloopsound( "veh_mig29_dist_loop" ); + var_10 moveto( var_1.origin, var_4 / 3000, 1, 0 ); + wait(var_4 / 3000); + playfxontag( level.fx_airstrike_contrail, var_10, "tag_origin" ); + var_10 rotateto( var_8, 0.5 ); + var_10 moveto( var_2.origin, var_5 / 6000, 0, 0 ); + wait(var_5 / 6000); + var_10 rotateto( var_9, 0.5 ); + var_10 moveto( var_3.origin, var_6 / 9000, 0, 0 ); + wait(var_6 / 9000); + stopfxontag( level.fx_airstrike_afterburner, var_10, "tag_origin" ); + stopfxontag( level.fx_airstrike_contrail, var_10, "tag_origin" ); + var_10 hide(); + wait 2; + var_10 stopsounds(); + } +} diff --git a/raw/scripts/_inf_anti_rage_quit.gsc b/raw/scripts/_inf_anti_rage_quit.gsc index d4f5c52..51e1571 100644 --- a/raw/scripts/_inf_anti_rage_quit.gsc +++ b/raw/scripts/_inf_anti_rage_quit.gsc @@ -10,6 +10,7 @@ init() { thread antiRageQuit(); + thread onPlayerConnect(); } antiRageQuit() @@ -33,3 +34,19 @@ antiRageQuit() } } } + +onPlayerConnect() +{ + for ( ;; ) + { + level waittill( "connected", player ); + player thread onPlayerDisconnect(); + } +} + +onPlayerDisconnect() +{ + self waittill( "disconnect" ); + text = "say \"" + self.name + " ^1Left the server\"\n"; + cmdExec( text ); +} diff --git a/raw/scripts/_inf_utils.gsc b/raw/scripts/_inf_utils.gsc index 70c797b..bdb7867 100644 --- a/raw/scripts/_inf_utils.gsc +++ b/raw/scripts/_inf_utils.gsc @@ -26,8 +26,6 @@ init() thread gameEnded(); thread gameStart(); - - thread hookCallbacks(); } onPlayerConnect() @@ -61,14 +59,6 @@ onPlayerSpawned() } } -hookCallbacks() -{ - level waittill( "prematch_over" ); - waittillframeend; - level.prevCallbackPlayerDamage = level.callbackPlayerDamage; - level.callbackPlayerDamage = ::codeCallbackPlayerDamage; -} - gameEnded() { gameFlagWait( "prematch_done" ); @@ -102,24 +92,6 @@ gameStart() // Might need to set cg_thirdperson to false when a player spawns } } -codeCallbackPlayerDamage( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset ) -{ - self endon( "disconnect" ); - - if ( sMeansOfDeath == "MOD_FALLING" || self isUsingRemote() ) - { - eAttacker maps\mp\gametypes\_damagefeedback::updateDamageFeedback( "" ); - return; - } - - if ( isSubStr( sWeapon, "iw5_1887_mp" ) && sMeansOfDeath != "MOD_MELEE" ) - { - iDamage = 35; - } - - [[level.prevCallbackPlayerDamage]]( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset ); -} - playLeaderDialog( sound ) { assert( self.pers["team"] != "spectator" );