Fix mp_radar

This commit is contained in:
6arelyFuture 2022-03-01 13:13:35 +00:00
parent 6c38074b5c
commit 7025b0d66d
No known key found for this signature in database
GPG Key ID: E883E2BC9657D955
3 changed files with 81 additions and 28 deletions

64
raw/maps/mp/mp_radar.gsc Normal file
View File

@ -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();
}
}

View File

@ -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 );
}

View File

@ -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" );