From 2db0b1cd61f9b70ec463ffd1630ef01f5b727d5a Mon Sep 17 00:00:00 2001 From: FutureRave Date: Wed, 29 Sep 2021 19:33:45 +0100 Subject: [PATCH] Style --- raw/scripts/_inf_alive_rewards.gsc | 137 ++++++++-------- raw/scripts/_inf_anti_camp.gsc | 105 +++++++------ raw/scripts/_inf_anti_rage_quit.gsc | 33 ++-- raw/scripts/_inf_model.gsc | 231 ++++++++++++++------------- raw/scripts/_inf_nuke_dome.gsc | 235 ++++++++++++++-------------- raw/scripts/_inf_utils.gsc | 199 +++++++++++------------ 6 files changed, 492 insertions(+), 448 deletions(-) diff --git a/raw/scripts/_inf_alive_rewards.gsc b/raw/scripts/_inf_alive_rewards.gsc index b01aad0..ab1f2c7 100644 --- a/raw/scripts/_inf_alive_rewards.gsc +++ b/raw/scripts/_inf_alive_rewards.gsc @@ -20,52 +20,64 @@ init() onConnect() { - for ( ;; ) - { - level waittill( "connected", player ); - player thread monitorForRewards(); - } + for ( ;; ) + { + level waittill( "connected", player ); + player thread monitorForRewards(); + } } monitorForRewards() { self endon( "disconnect" ); level endon( "game_ended" ); + for ( ;; ) { self waittill( "killed_enemy" ); + if ( self.pers["team"] == "axis" ) return; // It's infected. Once your team is axis you are done for the game + count = self.kills; - switch( count ) + + switch ( count ) { - case 1: - self scripts\_inf_utils::playLeaderDialog( "kill_confirmed" ); - level thread dropAmmo( self ); - break; - case 5: - self maps\mp\killstreaks\_killstreaks::giveKillstreak( "deployable_vest" ); - break; - case 9: - self maps\mp\killstreaks\_killstreaks::giveKillstreak( "predator_missile" ); - break; - case 18: - level thread maps\mp\killstreaks\_airdrop::doMegaC130FlyBy( self, self.origin, randomFloat( 360 ), "airdrop_grnd", -360 ); - break; - case 25: - self maps\mp\killstreaks\_juggernaut::giveJuggernaut( "juggernaut" ); - break; - case 45: - self maps\mp\killstreaks\_killstreaks::giveKillstreak( "ac130" ); - break; - case 85: - self maps\mp\killstreaks\_killstreaks::giveKillstreak( "helicopter_flares" ); - break; - case 100: - self maps\mp\killstreaks\_killstreaks::giveKillstreak( "osprey_gunner" ); - break; - case 120: - level thread maps\mp\killstreaks\_airdrop::dropNuke( self.origin, self, "nuke_drop" ); - break; + case 1: + self scripts\_inf_utils::playLeaderDialog( "kill_confirmed" ); + level thread dropAmmo( self ); + break; + + case 5: + self maps\mp\killstreaks\_killstreaks::giveKillstreak( "deployable_vest" ); + break; + + case 9: + self maps\mp\killstreaks\_killstreaks::giveKillstreak( "predator_missile" ); + break; + + case 18: + level thread maps\mp\killstreaks\_airdrop::doMegaC130FlyBy( self, self.origin, randomFloat( 360 ), "airdrop_grnd", -360 ); + break; + + case 25: + self maps\mp\killstreaks\_juggernaut::giveJuggernaut( "juggernaut" ); + break; + + case 45: + self maps\mp\killstreaks\_killstreaks::giveKillstreak( "ac130" ); + break; + + case 85: + self maps\mp\killstreaks\_killstreaks::giveKillstreak( "helicopter_flares" ); + break; + + case 100: + self maps\mp\killstreaks\_killstreaks::giveKillstreak( "osprey_gunner" ); + break; + + case 120: + level thread maps\mp\killstreaks\_airdrop::dropNuke( self.origin, self, "nuke_drop" ); + break; } } } @@ -90,7 +102,7 @@ dropAmmo( owner ) d = length( startPos - endPos ); flyTime = ( d / planeFlySpeed ); - + c130 = maps\mp\killstreaks\_airdrop::c130Setup( owner, startPos, endPos ); c130.veh_speed = planeFlySpeed; c130.dropType = "airdrop"; @@ -98,10 +110,11 @@ dropAmmo( owner ) c130.angles = direction; forward = anglesToForward( direction ); - c130 moveTo( endPos, flyTime, 0, 0 ); + c130 moveTo( endPos, flyTime, 0, 0 ); boomPlayed = false; minDist = distance2D( c130.origin, dropSite ); + for ( ;; ) { dist = distance2D( c130.origin, dropSite ); @@ -116,29 +129,30 @@ dropAmmo( owner ) else if ( dist < 768 ) { earthquake( 0.15, 1.5, dropSite, 1500 ); + if ( !boomPlayed ) { c130 playSound( "veh_ac130_sonic_boom" ); boomPlayed = true; } - } + } + + wait( .05 ); + } - wait( .05 ); - } - c130 thread maps\mp\killstreaks\_airdrop::dropTheCrate( dropSite, "airdrop", lbHeight, false, "ammo", startPos ); wait( 0.05 ); c130 notify ( "drop_crate" ); wait( 4 ); - c130 delete(); + c130 delete (); } ammoCrateThink( dropType ) -{ +{ self endon ( "death" ); self.usedBy = []; - + if ( dropType == "airdrop" || !level.teamBased ) maps\mp\killstreaks\_airdrop::crateSetupForUse( game["strings"]["ammo_hint"], "all", "waypoint_ammo_friendly" ); else @@ -150,7 +164,7 @@ ammoCrateThink( dropType ) for ( ;; ) { self waittill ( "captured", player ); - + if ( isDefined( self.owner ) && player != self.owner ) { if ( !level.teamBased || player.team != self.team ) @@ -160,8 +174,8 @@ ammoCrateThink( dropType ) else player thread maps\mp\killstreaks\_airdrop::hijackNotify( self, "emergency_airdrop" ); } - } - + } + player maps\mp\killstreaks\_teamammorefill::refillAmmo( true ); self maps\mp\killstreaks\_airdrop::deleteCrate(); } @@ -176,24 +190,25 @@ giveJuggernautStub( juggType ) if ( isDefined( self.hasLightArmor ) && self.hasLightArmor == true ) maps\mp\perks\_perkfunctions::removeLightArmor( self.previousMaxHealth ); - switch( juggType ) + switch ( juggType ) { - case "juggernaut": - self.isJuggernaut = true; - self maps\mp\gametypes\_class::giveLoadout( self.pers["team"], juggType, false, false ); - break; - case "juggernaut_recon": - self.isJuggernautRecon = true; - self maps\mp\gametypes\_class::giveLoadout( self.pers["team"], juggType, false, false ); + case "juggernaut": + self.isJuggernaut = true; + self maps\mp\gametypes\_class::giveLoadout( self.pers["team"], juggType, false, false ); + break; - portable_radar = spawn( "script_model", self.origin ); - portable_radar.team = self.team; + case "juggernaut_recon": + self.isJuggernautRecon = true; + self maps\mp\gametypes\_class::giveLoadout( self.pers["team"], juggType, false, false ); - portable_radar makePortableRadar( self ); - self.personalRadar = portable_radar; + portable_radar = spawn( "script_model", self.origin ); + portable_radar.team = self.team; - self thread maps\mp\killstreaks\_juggernaut::radarMover( portable_radar ); - break; + portable_radar makePortableRadar( self ); + self.personalRadar = portable_radar; + + self thread maps\mp\killstreaks\_juggernaut::radarMover( portable_radar ); + break; } if ( !getDvarInt( "camera_thirdPerson" ) ) @@ -214,7 +229,7 @@ giveJuggernautStub( juggType ) self thread maps\mp\killstreaks\_juggernaut::juggernautSounds(); self setPerk( "specialty_radarjuggernaut", true, false ); - self thread teamPlayerCardSplash( level.juggSettings[ juggType ].splashUsedName, self ); + self thread teamPlayerCardSplash( level.juggSettings[ juggType ].splashUsedName, self ); self PlaySoundToTeam( game[ "voice" ][ self.team ] + "use_juggernaut", self.team, self ); self PlaySoundToTeam( game[ "voice" ][ level.otherTeam[ self.team ] ] + "enemy_juggernaut", level.otherTeam[ self.team ] ); diff --git a/raw/scripts/_inf_anti_camp.gsc b/raw/scripts/_inf_anti_camp.gsc index 4ea819e..50b8967 100644 --- a/raw/scripts/_inf_anti_camp.gsc +++ b/raw/scripts/_inf_anti_camp.gsc @@ -11,76 +11,83 @@ ANTI_CAMP_RADIUS = 350; init() { - thread onConnect(); + thread onConnect(); } onConnect() { - for ( ;; ) - { - level waittill( "connected", player ); - player thread monitorKillStreak(); - player thread connected(); - } + for ( ;; ) + { + level waittill( "connected", player ); + player thread monitorKillStreak(); + player thread connected(); + } } connected() { - self endon( "disconnect" ); - level endon( "game_ended" ); - for ( ;; ) - { - self waittill( "spawned_player" ); - if ( self.pers["team"] != "allies" ) - self.anti_camp = false; - } + self endon( "disconnect" ); + level endon( "game_ended" ); + + for ( ;; ) + { + self waittill( "spawned_player" ); + + if ( self.pers["team"] != "allies" ) + self.anti_camp = false; + } } startAntiCamp() { - assert( self.pers["team"] == "allies" ); + assert( self.pers["team"] == "allies" ); - level endon( "game_ended" ); - self endon ( "disconnect" ); + level endon( "game_ended" ); + self endon ( "disconnect" ); - oldPosition = self.origin; - self iPrintLnBold( "^1Run ^:For Your Life^7!" ); - self scripts\_inf_utils::playLeaderDialog( "pushforward" ); - for ( ;; ) - { - wait( 7.5 ); - if ( !self.anti_camp ) return; + oldPosition = self.origin; + self iPrintLnBold( "^1Run ^:For Your Life^7!" ); + self scripts\_inf_utils::playLeaderDialog( "pushforward" ); - if ( self isUsingRemote() ) continue; + for ( ;; ) + { + wait( 7.5 ); - newPosition = self.origin; + if ( !self.anti_camp ) return; - if ( distance2D( oldPosition, newPosition ) < ANTI_CAMP_RADIUS ) - { - dmg = 80; - if ( self.health > 100 ) dmg = 300; // Jugg ? + if ( self isUsingRemote() ) continue; - radiusDamage( newPosition, 36, dmg, dmg * 0.75, undefined, "MOD_TRIGGER_HURT" ); - self scripts\_inf_utils::playLeaderDialog( "new_positions" ); - } + newPosition = self.origin; - oldPosition = self.origin; - } + if ( distance2D( oldPosition, newPosition ) < ANTI_CAMP_RADIUS ) + { + dmg = 80; + + if ( self.health > 100 ) dmg = 300; // Jugg ? + + radiusDamage( newPosition, 36, dmg, dmg * 0.75, undefined, "MOD_TRIGGER_HURT" ); + self scripts\_inf_utils::playLeaderDialog( "new_positions" ); + } + + oldPosition = self.origin; + } } monitorKillStreak() { - level endon( "game_ended" ); - self endon ( "disconnect" ); - for ( ;; ) - { - self waittill( "killed_enemy" ); - count = self getPlayerData( "killstreaksState", "count" ); - if ( count > 24 && self.pers["team"] != "axis" ) - { - self.anti_camp = true; - self thread startAntiCamp(); - return; - } - } + level endon( "game_ended" ); + self endon ( "disconnect" ); + + for ( ;; ) + { + self waittill( "killed_enemy" ); + count = self getPlayerData( "killstreaksState", "count" ); + + if ( count > 24 && self.pers["team"] != "axis" ) + { + self.anti_camp = true; + self thread startAntiCamp(); + return; + } + } } diff --git a/raw/scripts/_inf_anti_rage_quit.gsc b/raw/scripts/_inf_anti_rage_quit.gsc index bd6fc03..f2424bf 100644 --- a/raw/scripts/_inf_anti_rage_quit.gsc +++ b/raw/scripts/_inf_anti_rage_quit.gsc @@ -9,27 +9,28 @@ init() { - thread antiRageQuit(); + thread antiRageQuit(); } antiRageQuit() { - level endon( "game_ended" ); - gameFlagWait( "prematch_done" ); + level endon( "game_ended" ); + gameFlagWait( "prematch_done" ); + + for ( ;; ) + { + wait( .5 ); - for ( ;; ) - { - wait( .5 ); // If it's only 2 people let them quit - if (level.players.size < 3) continue; + if ( level.players.size < 3 ) continue; - foreach( player in level.players ) - { - if ( player.pers["team"] == "axis" ) - { - player closepopupmenu( "" ); - player closeingamemenu(); - } - } - } + foreach ( player in level.players ) + { + if ( player.pers["team"] == "axis" ) + { + player closepopupmenu( "" ); + player closeingamemenu(); + } + } + } } diff --git a/raw/scripts/_inf_model.gsc b/raw/scripts/_inf_model.gsc index 0f30ec4..f8c19fd 100644 --- a/raw/scripts/_inf_model.gsc +++ b/raw/scripts/_inf_model.gsc @@ -10,143 +10,154 @@ init() { - replaceFunc( maps\mp\gametypes\_teams::playerModelForWeapon, ::playerModelForWeaponStub ); + replaceFunc( maps\mp\gametypes\_teams::playerModelForWeapon, ::playerModelForWeaponStub ); - thread onConnect(); + thread onConnect(); - preCacheShader( "specialty_carepackage_crate" ); - preCacheShader( "iw5_cardicon_medkit" ); - preCacheShader( "iw5_cardicon_juggernaut_a" ); + preCacheShader( "specialty_carepackage_crate" ); + preCacheShader( "iw5_cardicon_medkit" ); + preCacheShader( "iw5_cardicon_juggernaut_a" ); - preCacheItem( "at4_mp" ); - precacheItem( "uav_strike_marker_mp" ); + preCacheItem( "at4_mp" ); + precacheItem( "uav_strike_marker_mp" ); } onConnect() { - for ( ;; ) - { - level waittill( "connected", player ); - player thread connected(); - } + for ( ;; ) + { + level waittill( "connected", player ); + player thread connected(); + } } connected() { - self endon( "disconnect" ); - level endon( "game_ended" ); - for ( ;; ) - { - self waittill( "spawned_player" ); - waittillframeend; - if ( self.pers["team"] == "allies" ) - { - self giveAllPerks(); - } - else - { - self giveAllPerks(); - self SetOffhandPrimaryClass( "other" ); - self giveWeapon( "bouncingbetty_mp" ); - } - } + self endon( "disconnect" ); + level endon( "game_ended" ); + + for ( ;; ) + { + self waittill( "spawned_player" ); + waittillframeend; + + if ( self.pers["team"] == "allies" ) + { + self giveAllPerks(); + } + else + { + self giveAllPerks(); + self SetOffhandPrimaryClass( "other" ); + self giveWeapon( "bouncingbetty_mp" ); + } + } } giveAllPerks() { - perks = []; - perks[ perks.size ] = "specialty_longersprint"; - perks[ perks.size ] = "specialty_fastreload"; - perks[ perks.size ] = "specialty_scavenger"; - perks[ perks.size ] = "specialty_blindeye"; - perks[ perks.size ] = "specialty_paint"; - perks[ perks.size ] = "specialty_hardline"; - perks[ perks.size ] = "specialty_coldblooded"; - perks[ perks.size ] = "specialty_quickdraw"; + perks = []; + perks[ perks.size ] = "specialty_longersprint"; + perks[ perks.size ] = "specialty_fastreload"; + perks[ perks.size ] = "specialty_scavenger"; + perks[ perks.size ] = "specialty_blindeye"; + perks[ perks.size ] = "specialty_paint"; + perks[ perks.size ] = "specialty_hardline"; + perks[ perks.size ] = "specialty_coldblooded"; + perks[ perks.size ] = "specialty_quickdraw"; - perks[ perks.size ] = "_specialty_blastshield"; - perks[ perks.size ] = "specialty_detectexplosive"; - perks[ perks.size ] = "specialty_autospot"; - perks[ perks.size ] = "specialty_bulletaccuracy"; + perks[ perks.size ] = "_specialty_blastshield"; + perks[ perks.size ] = "specialty_detectexplosive"; + perks[ perks.size ] = "specialty_autospot"; + perks[ perks.size ] = "specialty_bulletaccuracy"; - perks[ perks.size ] = "specialty_quieter"; - perks[ perks.size ] = "specialty_stalker"; + perks[ perks.size ] = "specialty_quieter"; + perks[ perks.size ] = "specialty_stalker"; - perks[ perks.size ] = "specialty_bulletpenetration"; - perks[ perks.size ] = "specialty_marksman"; - perks[ perks.size ] = "specialty_sharp_focus"; - perks[ perks.size ] = "specialty_holdbreathwhileads"; - perks[ perks.size ] = "specialty_longerrange"; - perks[ perks.size ] = "specialty_fastermelee"; - perks[ perks.size ] = "specialty_reducedsway"; - perks[ perks.size ] = "specialty_lightweight"; + perks[ perks.size ] = "specialty_bulletpenetration"; + perks[ perks.size ] = "specialty_marksman"; + perks[ perks.size ] = "specialty_sharp_focus"; + perks[ perks.size ] = "specialty_holdbreathwhileads"; + perks[ perks.size ] = "specialty_longerrange"; + perks[ perks.size ] = "specialty_fastermelee"; + perks[ perks.size ] = "specialty_reducedsway"; + perks[ perks.size ] = "specialty_lightweight"; - foreach( perkName in perks ) - { - if( !self _hasPerk( perkName ) ) - { - self givePerk( perkName, false ); - if( maps\mp\gametypes\_class::isPerkUpgraded( perkName ) ) - { - perkUpgrade = tablelookup( "mp/perktable.csv", 1, perkName, 8 ); - self givePerk( perkUpgrade, false ); - } - } - } + foreach ( perkName in perks ) + { + if ( !self _hasPerk( perkName ) ) + { + self givePerk( perkName, false ); + + if ( maps\mp\gametypes\_class::isPerkUpgraded( perkName ) ) + { + perkUpgrade = tablelookup( "mp/perktable.csv", 1, perkName, 8 ); + self givePerk( perkUpgrade, false ); + } + } + } } playerModelForWeaponStub( weapon, secondary ) { - team = self.team; + team = self.team; - if ( isDefined( game[ team + "_model" ][weapon] ) ) - { - [[game[ team + "_model" ][weapon]]](); - return; - } + if ( isDefined( game[ team + "_model" ][weapon] ) ) + { + [[game[ team + "_model" ][weapon]]](); + return; + } // Hack for infected players - if ( self.pers["team"] == "axis" ) - { - if ( level.environment != "" && self isItemUnlocked( "ghillie_" + level.environment ) ) - [[game[ team + "_model" ]["GHILLIE"]]](); - else - [[game[ team + "_model" ]["SNIPER"]]](); - return; - } + if ( self.pers["team"] == "axis" ) + { + if ( level.environment != "" && self isItemUnlocked( "ghillie_" + level.environment ) ) + [[game[ team + "_model" ]["GHILLIE"]]](); + else + [[game[ team + "_model" ]["SNIPER"]]](); - weaponClass = tablelookup( "mp/statstable.csv", 4, weapon, 2 ); + return; + } - switch ( weaponClass ) - { - case "weapon_smg": - [[game[ team + "_model" ]["SMG"]]](); - break; - case "weapon_assault": - [[game[ team + "_model" ]["ASSAULT"]]](); - break; - case "weapon_sniper": - if ( level.environment != "" && self isItemUnlocked( "ghillie_" + level.environment ) ) - [[game[ team + "_model" ]["GHILLIE"]]](); - else - [[game[ team + "_model" ]["SNIPER"]]](); - break; - case "weapon_lmg": - [[game[ team + "_model" ]["LMG"]]](); - break; - case "weapon_riot": - [[game[ team + "_model" ]["RIOT"]]](); - break; - case "weapon_shotgun": - [[game[ team + "_model" ]["SHOTGUN"]]](); - break; - default: - [[game[team+"_model"]["ASSAULT"]]](); - break; - } + weaponClass = tablelookup( "mp/statstable.csv", 4, weapon, 2 ); - if ( self isJuggernaut() ) - { - [[game[ team + "_model" ]["JUGGERNAUT"]]](); - } + switch ( weaponClass ) + { + case "weapon_smg": + [[game[ team + "_model" ]["SMG"]]](); + break; + + case "weapon_assault": + [[game[ team + "_model" ]["ASSAULT"]]](); + break; + + case "weapon_sniper": + if ( level.environment != "" && self isItemUnlocked( "ghillie_" + level.environment ) ) + [[game[ team + "_model" ]["GHILLIE"]]](); + else + [[game[ team + "_model" ]["SNIPER"]]](); + + break; + + case "weapon_lmg": + [[game[ team + "_model" ]["LMG"]]](); + break; + + case "weapon_riot": + [[game[ team + "_model" ]["RIOT"]]](); + break; + + case "weapon_shotgun": + [[game[ team + "_model" ]["SHOTGUN"]]](); + break; + + default: + [[game[team + "_model"]["ASSAULT"]]](); + break; + } + + if ( self isJuggernaut() ) + { + [[game[ team + "_model" ]["JUGGERNAUT"]]](); + } } diff --git a/raw/scripts/_inf_nuke_dome.gsc b/raw/scripts/_inf_nuke_dome.gsc index ee889b8..8eb7b6e 100644 --- a/raw/scripts/_inf_nuke_dome.gsc +++ b/raw/scripts/_inf_nuke_dome.gsc @@ -9,176 +9,179 @@ init() { - level._effect[ "nolight_burst_mp" ] = loadfx( "fire/firelp_huge_pm_nolight_burst" ); - precacheMpAnim( "windmill_spin_med" ); - precacheMpAnim( "foliage_desertbrush_1_sway" ); - precacheMpAnim( "oilpump_pump01" ); - precacheMpAnim( "oilpump_pump02" ); - precacheMpAnim( "windsock_large_wind_medium" ); + level._effect[ "nolight_burst_mp" ] = loadfx( "fire/firelp_huge_pm_nolight_burst" ); + precacheMpAnim( "windmill_spin_med" ); + precacheMpAnim( "foliage_desertbrush_1_sway" ); + precacheMpAnim( "oilpump_pump01" ); + precacheMpAnim( "oilpump_pump02" ); + precacheMpAnim( "windsock_large_wind_medium" ); - thread domeDyn(); - thread nukeDeath(); + thread domeDyn(); + thread nukeDeath(); } domeDyn() { - if ( getDvar( "mapname" ) != "mp_dome" ) return; + if ( getDvar( "mapname" ) != "mp_dome" ) return; - animated = getentarray( "animated_model", "targetname" ); + animated = getentarray( "animated_model", "targetname" ); - for ( i = 0; i < animated.size; i++ ) - { - model_name = animated[i].model; - if ( isSubStr( model_name, "fence_tarp_" ) ) - { + for ( i = 0; i < animated.size; i++ ) + { + model_name = animated[i].model; + + if ( isSubStr( model_name, "fence_tarp_" ) ) + { // print( "domeDyn fence_tarp_" ); - animated[i].targetname = "dynamic_model"; - precacheMpAnim( model_name + "_med_01" ); - animated[i] ScriptModelPlayAnim( model_name + "_med_01" ); - } - else if ( model_name == "machinery_windmill" ) - { + animated[i].targetname = "dynamic_model"; + precacheMpAnim( model_name + "_med_01" ); + animated[i] ScriptModelPlayAnim( model_name + "_med_01" ); + } + else if ( model_name == "machinery_windmill" ) + { // print( "domeDyn machinery_windmill" ); - animated[i].targetname = "dynamic_model"; - animated[i] ScriptModelPlayAnim( "windmill_spin_med" ); - } - else if ( isSubStr( model_name, "foliage" ) ) - { + animated[i].targetname = "dynamic_model"; + animated[i] ScriptModelPlayAnim( "windmill_spin_med" ); + } + else if ( isSubStr( model_name, "foliage" ) ) + { // print( "domeDyn foliage" ); - animated[i].targetname = "dynamic_model"; - animated[i] ScriptModelPlayAnim( "foliage_desertbrush_1_sway" ); - } - else if ( isSubStr( model_name, "oil_pump_jack" ) ) - { + animated[i].targetname = "dynamic_model"; + animated[i] ScriptModelPlayAnim( "foliage_desertbrush_1_sway" ); + } + else if ( isSubStr( model_name, "oil_pump_jack" ) ) + { // print( "domeDyn oil_pump_jack" ); - animated[i].targetname = "dynamic_model"; - animation = "oilpump_pump0" + ( randomint( 2 ) + 1 ); - animated[i] ScriptModelPlayAnim( animation ); - } - else if ( model_name == "accessories_windsock_large" ) - { + animated[i].targetname = "dynamic_model"; + animation = "oilpump_pump0" + ( randomint( 2 ) + 1 ); + animated[i] ScriptModelPlayAnim( animation ); + } + else if ( model_name == "accessories_windsock_large" ) + { // print( "domeDyn accessories_windsock_large" ); - animated[i].targetname = "dynamic_model"; - animated[i] ScriptModelPlayAnim( "windsock_large_wind_medium" ); - } - } + animated[i].targetname = "dynamic_model"; + animated[i] ScriptModelPlayAnim( "windsock_large_wind_medium" ); + } + } } doBoxEffect( effect ) { - wait ( 3 ); - forward = AnglesToForward( self.angles ); - up = AnglesToUp( self.angles ); + wait ( 3 ); + forward = AnglesToForward( self.angles ); + up = AnglesToUp( self.angles ); - effect delete(); - PlayFX( getfx( "box_explode_mp" ), self.origin, forward, up ); + effect delete (); + PlayFX( getfx( "box_explode_mp" ), self.origin, forward, up ); - self self_func( "scriptModelClearAnim" ); - self Hide(); + self self_func( "scriptModelClearAnim" ); + self Hide(); } fenceEffect() { - forward = AnglesToForward( self.angles ); - up = AnglesToUp( self.angles ); + forward = AnglesToForward( self.angles ); + up = AnglesToUp( self.angles ); - fxEnt = SpawnFx( getfx( "nolight_burst_mp" ), self.origin, forward, up ); - TriggerFx( fxEnt ); + fxEnt = SpawnFx( getfx( "nolight_burst_mp" ), self.origin, forward, up ); + TriggerFx( fxEnt ); - self thread doBoxEffect( fxEnt ); + self thread doBoxEffect( fxEnt ); } clearAmim( delay ) { - wait ( delay ); - self self_func( "scriptModelClearAnim" ); + wait ( delay ); + self self_func( "scriptModelClearAnim" ); } windsockLarge() { - self self_func( "scriptModelClearAnim" ); - self.origin += ( 0, 0, 20 ); - bounds_1 = spawn("script_model", self.origin + ( 15, -7, 0 ) ); - bounds_2 = spawn("script_model", self.origin + ( 70, -38, 0 ) ); + self self_func( "scriptModelClearAnim" ); + self.origin += ( 0, 0, 20 ); + bounds_1 = spawn( "script_model", self.origin + ( 15, -7, 0 ) ); + bounds_2 = spawn( "script_model", self.origin + ( 70, -38, 0 ) ); - bounds_1 setModel( "com_plasticcase_friendly" ); - bounds_2 setModel( "com_plasticcase_friendly" ); + bounds_1 setModel( "com_plasticcase_friendly" ); + bounds_2 setModel( "com_plasticcase_friendly" ); - bounds_1 hide(); - bounds_2 hide(); + bounds_1 hide(); + bounds_2 hide(); - bounds_1 CloneBrushmodelToScriptmodel( level.airDropCrateCollision ); - bounds_2 CloneBrushmodelToScriptmodel( level.airDropCrateCollision ); + bounds_1 CloneBrushmodelToScriptmodel( level.airDropCrateCollision ); + bounds_2 CloneBrushmodelToScriptmodel( level.airDropCrateCollision ); - bounds_1 SetContents( 1 ); - bounds_2 SetContents( 1 ); + bounds_1 SetContents( 1 ); + bounds_2 SetContents( 1 ); - bounds_1.angles = self.angles + ( 0, 90, 0 ); - bounds_2.angles = bounds_1.angles; + bounds_1.angles = self.angles + ( 0, 90, 0 ); + bounds_2.angles = bounds_1.angles; - self linkto( bounds_2 ); - bounds_2 linkto( bounds_1 ); - bounds_1 PhysicsLaunchServer( ( 0, 0, 0 ), ( -400, -250, 10 ) ); + self linkto( bounds_2 ); + bounds_2 linkto( bounds_1 ); + bounds_1 PhysicsLaunchServer( ( 0, 0, 0 ), ( -400, -250, 10 ) ); } nukeDeath() { - level endon( "game_ended" ); - gameFlagWait( "prematch_done" ); - if ( getDvar( "mapname" ) != "mp_dome" ) return; + level endon( "game_ended" ); + gameFlagWait( "prematch_done" ); - for ( ;; ) - { - level waittill( "nuke_death" ); - dynamic = getentarray( "dynamic_model", "targetname" ); + if ( getDvar( "mapname" ) != "mp_dome" ) return; - for ( i = 0; i < dynamic.size; i++ ) - { - model_name = dynamic[i].model; - if ( isSubStr( model_name, "fence_tarp_" ) ) - { + for ( ;; ) + { + level waittill( "nuke_death" ); + dynamic = getentarray( "dynamic_model", "targetname" ); + + for ( i = 0; i < dynamic.size; i++ ) + { + model_name = dynamic[i].model; + + if ( isSubStr( model_name, "fence_tarp_" ) ) + { // print( "Doing fenceEffect" ); - dynamic[i] thread fenceEffect(); - } + dynamic[i] thread fenceEffect(); + } - else if ( model_name == "machinery_windmill" ) - { + else if ( model_name == "machinery_windmill" ) + { // print( "Doing machinery_windmill" ); - dynamic[i] rotateroll( 80, 2, .5, .1 ); - dynamic[i] thread clearAmim( 1 ); - } + dynamic[i] rotateroll( 80, 2, .5, .1 ); + dynamic[i] thread clearAmim( 1 ); + } - else if ( isSubStr( model_name, "foliage" ) ) - { + else if ( isSubStr( model_name, "foliage" ) ) + { // print( "Doing foliage" ); - dynamic[i].origin -= ( 0, 0, 50 ); - } + dynamic[i].origin -= ( 0, 0, 50 ); + } - else if ( isSubStr( model_name, "oil_pump_jack" ) ) - { + else if ( isSubStr( model_name, "oil_pump_jack" ) ) + { // print( "Doing oil_pump_jack" ); - dynamic[i] self_func( "scriptModelClearAnim" ); - } + dynamic[i] self_func( "scriptModelClearAnim" ); + } - else if ( model_name == "accessories_windsock_large" ) - { + else if ( model_name == "accessories_windsock_large" ) + { // print( "Doing accessories_windsock_large" ); - dynamic[i] thread windsockLarge(); - } - } + dynamic[i] thread windsockLarge(); + } + } - wait( 5 ); - ents_to_blowup = getentarray("destructable", "targetname"); - ents_to_blowup = array_combine( ents_to_blowup, getentarray( "destructible_toy", "targetname" ) ); - ents_to_blowup = array_combine( ents_to_blowup, getentarray( "destructible_vehicle", "targetname" ) ); - ents_to_blowup = array_combine( ents_to_blowup, getentarray( "explodable_barrel", "targetname" ) ); + wait( 5 ); + ents_to_blowup = getentarray( "destructable", "targetname" ); + ents_to_blowup = array_combine( ents_to_blowup, getentarray( "destructible_toy", "targetname" ) ); + ents_to_blowup = array_combine( ents_to_blowup, getentarray( "destructible_vehicle", "targetname" ) ); + ents_to_blowup = array_combine( ents_to_blowup, getentarray( "explodable_barrel", "targetname" ) ); - for (i = 0; i < ents_to_blowup.size; i++) - { - ents_to_blowup[i] thread maps\mp\_destructables::destructable_destruct(); - } + for ( i = 0; i < ents_to_blowup.size; i++ ) + { + ents_to_blowup[i] thread maps\mp\_destructables::destructable_destruct(); + } - level notify( "game_cleanup" ); - print( "Destroyed a lot of stuff" ); - } + level notify( "game_cleanup" ); + print( "Destroyed a lot of stuff" ); + } } diff --git a/raw/scripts/_inf_utils.gsc b/raw/scripts/_inf_utils.gsc index e2d63f2..4babcb4 100644 --- a/raw/scripts/_inf_utils.gsc +++ b/raw/scripts/_inf_utils.gsc @@ -9,147 +9,154 @@ init() { - replaceFunc( maps\mp\perks\_perkfunctions::GlowStickDamageListener, ::GlowStickDamageListenerStub ); - replaceFunc( maps\mp\perks\_perkfunctions::GlowStickEnemyUseListener, ::GlowStickEnemyUseListenerStub ); + replaceFunc( maps\mp\perks\_perkfunctions::GlowStickDamageListener, ::GlowStickDamageListenerStub ); + replaceFunc( maps\mp\perks\_perkfunctions::GlowStickEnemyUseListener, ::GlowStickEnemyUseListenerStub ); - create_dvar( "sv_fallDamage", 0 ); - setDvar( "scr_killcam_time", 7 ); - setDvar( "scr_killcam_posttime", 2 ); + create_dvar( "sv_fallDamage", 0 ); + setDvar( "scr_killcam_time", 7 ); + setDvar( "scr_killcam_posttime", 2 ); - setDvar( "g_playerCollision", 2 ); - setDvar( "g_playerEjection", 2 ); - setDvar( "sv_enableBounces", 1 ); - setDvar( "jump_slowdownEnable", 0 ); + setDvar( "g_playerCollision", 2 ); + setDvar( "g_playerEjection", 2 ); + setDvar( "sv_enableBounces", 1 ); + setDvar( "jump_slowdownEnable", 0 ); - thread gameEnded(); - thread gameStart(); + thread gameEnded(); + thread gameStart(); - if ( getDvarInt( "sv_fallDamage" ) != 0 ) return; - level.prevCallbackPlayerDamage = level.callbackPlayerDamage; - level.callbackPlayerDamage = ::codeCallbackPlayerDamage; + if ( getDvarInt( "sv_fallDamage" ) != 0 ) return; + + level.prevCallbackPlayerDamage = level.callbackPlayerDamage; + level.callbackPlayerDamage = ::codeCallbackPlayerDamage; } gameEnded() { - gameFlagWait( "prematch_done" ); - for ( ;; ) - { - level waittill( "game_ended", team ); - foreach ( player in level.players ) - { - player setClientDvar ( "cg_thirdperson", true ); - player setClientDvar ( "cg_thirdPersonRange", 170 ); - } - wait( 1.5 ); - foreach ( player in level.players ) - { - player freezecontrols( false ); - } - } + gameFlagWait( "prematch_done" ); + + for ( ;; ) + { + level waittill( "game_ended", team ); + + foreach ( player in level.players ) + { + player setClientDvar ( "cg_thirdperson", true ); + player setClientDvar ( "cg_thirdPersonRange", 170 ); + } + + wait( 1.5 ); + + foreach ( player in level.players ) + { + player freezecontrols( false ); + } + } } // Might need to set cg_thirdperson to false when a player spawns gameStart() { - gameFlagWait( "prematch_done" ); - foreach ( player in level.players ) - { - player setClientDvar ( "cg_thirdperson", false ); - } + gameFlagWait( "prematch_done" ); + + foreach ( player in level.players ) + { + player setClientDvar ( "cg_thirdperson", false ); + } } codeCallbackPlayerDamage( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset ) { - self endon( "disconnect" ); + self endon( "disconnect" ); - if ( sMeansOfDeath == "MOD_FALLING" || self isUsingRemote() ) - { - eAttacker maps\mp\gametypes\_damagefeedback::updateDamageFeedback( "" ); - return; - } + if ( sMeansOfDeath == "MOD_FALLING" || self isUsingRemote() ) + { + eAttacker maps\mp\gametypes\_damagefeedback::updateDamageFeedback( "" ); + return; + } - [[level.prevCallbackPlayerDamage]]( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset ); + [[level.prevCallbackPlayerDamage]]( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset ); } playLeaderDialog( sound ) { - assert( self.pers["team"] != "spectator" ); + assert( self.pers["team"] != "spectator" ); - suffix = "1mc_" + sound; + suffix = "1mc_" + sound; - if ( self.pers["team"] == "allies" ) - { - self playLocalSound( getTeamVoicePrefix( game["allies"] ) + suffix ); - } - else - { - self playLocalSound( getTeamVoicePrefix( game["axis"] ) + suffix ); - } + if ( self.pers["team"] == "allies" ) + { + self playLocalSound( getTeamVoicePrefix( game["allies"] ) + suffix ); + } + else + { + self playLocalSound( getTeamVoicePrefix( game["axis"] ) + suffix ); + } } getTeamVoicePrefix( team ) { - return tableLookup( "mp/factionTable.csv", 0, team, 7 ); + return tableLookup( "mp/factionTable.csv", 0, team, 7 ); } GlowStickDamageListenerStub( owner ) { - self endon ( "death" ); + self endon ( "death" ); - self setCanDamage( true ); + self setCanDamage( true ); - self.health = 999999; - self.maxHealth = 100; - self.damageTaken = 0; + self.health = 999999; + self.maxHealth = 100; + self.damageTaken = 0; - for ( ;; ) - { - self waittill( "damage", damage, attacker, direction_vec, point, type, modelName, tagName, partName, iDFlags, weapon ); + for ( ;; ) + { + self waittill( "damage", damage, attacker, direction_vec, point, type, modelName, tagName, partName, iDFlags, weapon ); - if ( !maps\mp\gametypes\_weapons::friendlyFireCheck( self.owner, attacker ) ) - continue; + if ( !maps\mp\gametypes\_weapons::friendlyFireCheck( self.owner, attacker ) ) + continue; + + if ( !isdefined( self ) ) + return; - if ( !isdefined( self ) ) - return; // Can only be damaged by knife - if ( type == "MOD_MELEE" ) - { - self.damageTaken += self.maxHealth; - self.wasDamaged = true; - } + if ( type == "MOD_MELEE" ) + { + self.damageTaken += self.maxHealth; + self.wasDamaged = true; + } - if( isPlayer( attacker ) ) - { - attacker maps\mp\gametypes\_damagefeedback::updateDamageFeedback( "tactical_insertion" ); - } + if ( isPlayer( attacker ) ) + { + attacker maps\mp\gametypes\_damagefeedback::updateDamageFeedback( "tactical_insertion" ); + } - if ( self.damageTaken >= self.maxHealth ) - { - if ( isDefined( owner ) && attacker != owner ) - { - attacker notify ( "destroyed_insertion", owner ); - attacker notify( "destroyed_explosive" ); // count towards SitRep Pro challenge - owner thread leaderDialogOnPlayer( "ti_destroyed" ); - } + if ( self.damageTaken >= self.maxHealth ) + { + if ( isDefined( owner ) && attacker != owner ) + { + attacker notify ( "destroyed_insertion", owner ); + attacker notify( "destroyed_explosive" ); // count towards SitRep Pro challenge + owner thread leaderDialogOnPlayer( "ti_destroyed" ); + } - attacker thread maps\mp\perks\_perkfunctions::deleteTI( self ); - } - } + attacker thread maps\mp\perks\_perkfunctions::deleteTI( self ); + } + } } GlowStickEnemyUseListenerStub( owner ) { - self endon ( "death" ); - level endon ( "game_ended" ); - owner endon ( "disconnect" ); + self endon ( "death" ); + level endon ( "game_ended" ); + owner endon ( "disconnect" ); - self.enemyTrigger setCursorHint( "HINT_NOICON" ); - self.enemyTrigger setHintString( &"MP_DESTROY_TI" ); - self.enemyTrigger makeEnemyUsable( owner ); - - for ( ;; ) - { - self.enemyTrigger waittill ( "trigger", player ); - player iPrintLnBold( "Nice try" ); - } + self.enemyTrigger setCursorHint( "HINT_NOICON" ); + self.enemyTrigger setHintString( &"MP_DESTROY_TI" ); + self.enemyTrigger makeEnemyUsable( owner ); + + for ( ;; ) + { + self.enemyTrigger waittill ( "trigger", player ); + player iPrintLnBold( "Nice try" ); + } }