From 7817efc738ee5f2d79b32b472a411e711fc527b5 Mon Sep 17 00:00:00 2001 From: JezuzLizard Date: Fri, 10 Jul 2020 08:00:00 -0700 Subject: [PATCH] checked 11 patch_mp mp scripts checked _acousticsensor.gsc, _ballistic_knife.gsc, _bouncingbetty.gsc, _empgrenade.gsc, _entityheadicons.gsc, _flashgrenades.gsc, _mgturret.gsc, _scrambler.gsc, _sensor_grenade.gsc, _teargrenades.gsc, and _treadfx.gsc. --- patch_mp/maps/mp/_acousticsensor.gsc | 142 +++++++++++------------ patch_mp/maps/mp/_ballistic_knife.gsc | 50 ++++---- patch_mp/maps/mp/_bouncingbetty.gsc | 30 ++--- patch_mp/maps/mp/_empgrenade.gsc | 68 +++++------ patch_mp/maps/mp/_entityheadicons.gsc | 47 ++++---- patch_mp/maps/mp/_flashgrenades.gsc | 76 ++++++------ patch_mp/maps/mp/_mgturret.gsc | 108 ++++++++--------- patch_mp/maps/mp/_scrambler.gsc | 161 ++++++++++++-------------- patch_mp/maps/mp/_sensor_grenade.gsc | 155 ++++++++++++------------- patch_mp/maps/mp/_teargrenades.gsc | 66 +++++------ patch_mp/maps/mp/_treadfx.gsc | 9 +- patch_mp/readme.md | 30 ++--- 12 files changed, 440 insertions(+), 502 deletions(-) diff --git a/patch_mp/maps/mp/_acousticsensor.gsc b/patch_mp/maps/mp/_acousticsensor.gsc index 4d5da2d..c1049c0 100644 --- a/patch_mp/maps/mp/_acousticsensor.gsc +++ b/patch_mp/maps/mp/_acousticsensor.gsc @@ -1,3 +1,4 @@ +//checked includes match cerberus output #include maps/mp/gametypes/_damagefeedback; #include maps/mp/gametypes/_globallogic_player; #include maps/mp/_scoreevents; @@ -7,13 +8,13 @@ #include maps/mp/gametypes/_weaponobjects; #include common_scripts/utility; -init() +init() //checked matches cerberus output { level._effect[ "acousticsensor_enemy_light" ] = loadfx( "misc/fx_equip_light_red" ); level._effect[ "acousticsensor_friendly_light" ] = loadfx( "misc/fx_equip_light_green" ); } -createacousticsensorwatcher() +createacousticsensorwatcher() //checked matches cerberus output { watcher = self maps/mp/gametypes/_weaponobjects::createuseweaponobjectwatcher( "acoustic_sensor", "acoustic_sensor_mp", self.team ); watcher.onspawn = ::onspawnacousticsensor; @@ -25,7 +26,7 @@ createacousticsensorwatcher() watcher.ondamage = ::watchacousticsensordamage; } -onspawnacousticsensor( watcher, player ) +onspawnacousticsensor( watcher, player ) //checked matches cerberus output { self endon( "death" ); self thread maps/mp/gametypes/_weaponobjects::onspawnuseweaponobject( watcher, player ); @@ -41,7 +42,7 @@ onspawnacousticsensor( watcher, player ) self thread watchshutdown( player, self.origin ); } -acousticsensordetonate( attacker, weaponname ) +acousticsensordetonate( attacker, weaponname ) //checked matches cerberus output { from_emp = maps/mp/killstreaks/_emp::isempweapon( weaponname ); if ( !from_emp ) @@ -60,12 +61,12 @@ acousticsensordetonate( attacker, weaponname ) self destroyent(); } -destroyent() +destroyent() //checked matches cerberus output { self delete(); } -watchshutdown( player, origin ) +watchshutdown( player, origin ) //checked matches cerberus output { self waittill_any( "death", "hacked" ); if ( isDefined( player ) ) @@ -74,7 +75,7 @@ watchshutdown( player, origin ) } } -watchacousticsensordamage( watcher ) +watchacousticsensordamage( watcher ) //checked changed to match cerberus output { self endon( "death" ); self endon( "hacked" ); @@ -84,82 +85,75 @@ watchacousticsensordamage( watcher ) { self.damagetaken = 0; } - for ( ;; ) + while ( 1 ) { - while ( 1 ) + self.maxhealth = 100000; + self.health = self.maxhealth; + self waittill( "damage", damage, attacker, direction, point, type, tagname, modelname, partname, weaponname, idflags ); + if ( !isDefined( attacker ) || !isplayer( attacker ) ) { - self.maxhealth = 100000; - self.health = self.maxhealth; - self waittill( "damage", damage, attacker, direction, point, type, tagname, modelname, partname, weaponname, idflags ); - if ( !isDefined( attacker ) || !isplayer( attacker ) ) + continue; + } + if ( level.teambased && attacker.team == self.owner.team && attacker != self.owner ) + { + continue; + } + if ( isDefined( weaponname ) ) + { + switch( weaponname ) { - continue; - } - while ( level.teambased && attacker.team == self.owner.team && attacker != self.owner ) - { - continue; - } - if ( isDefined( weaponname ) ) - { - switch( weaponname ) - { - case "concussion_grenade_mp": - case "flash_grenade_mp": - if ( watcher.stuntime > 0 ) + case "concussion_grenade_mp": + case "flash_grenade_mp": + if ( watcher.stuntime > 0 ) + { + self thread maps/mp/gametypes/_weaponobjects::stunstart( watcher, watcher.stuntime ); + } + if ( level.teambased && self.owner.team != attacker.team ) + { + if ( maps/mp/gametypes/_globallogic_player::dodamagefeedback( weaponname, attacker ) ) { - self thread maps/mp/gametypes/_weaponobjects::stunstart( watcher, watcher.stuntime ); - } - if ( level.teambased && self.owner.team != attacker.team ) - { - if ( maps/mp/gametypes/_globallogic_player::dodamagefeedback( weaponname, attacker ) ) - { - attacker maps/mp/gametypes/_damagefeedback::updatedamagefeedback(); - } - continue; - } - else - { - if ( !level.teambased && self.owner != attacker ) - { - if ( maps/mp/gametypes/_globallogic_player::dodamagefeedback( weaponname, attacker ) ) - { - attacker maps/mp/gametypes/_damagefeedback::updatedamagefeedback(); - } - } + attacker maps/mp/gametypes/_damagefeedback::updatedamagefeedback(); } } - case "emp_grenade_mp": - damage = damagemax; - default: - if ( maps/mp/gametypes/_globallogic_player::dodamagefeedback( weaponname, attacker ) ) - { - attacker maps/mp/gametypes/_damagefeedback::updatedamagefeedback(); - } - break; + else if ( !level.teambased && self.owner != attacker ) + { + if ( maps/mp/gametypes/_globallogic_player::dodamagefeedback( weaponname, attacker ) ) + { + attacker maps/mp/gametypes/_damagefeedback::updatedamagefeedback(); + } } - } - else - { - weaponname = ""; - } - while ( isplayer( attacker ) && level.teambased && isDefined( attacker.team ) && self.owner.team == attacker.team && attacker != self.owner ) - { continue; - } - if ( type == "MOD_MELEE" ) - { - self.damagetaken = damagemax; - } - else - { - self.damagetaken += damage; - } - if ( self.damagetaken >= damagemax ) - { - watcher thread maps/mp/gametypes/_weaponobjects::waitanddetonate( self, 0, attacker, weaponname ); - return; - } + case "emp_grenade_mp": + damage = damagemax; + default: + if ( maps/mp/gametypes/_globallogic_player::dodamagefeedback( weaponname, attacker ) ) + { + attacker maps/mp/gametypes/_damagefeedback::updatedamagefeedback(); + } + break; } } + else + { + weaponname = ""; + } + if ( isplayer( attacker ) && level.teambased && isDefined( attacker.team ) && self.owner.team == attacker.team && attacker != self.owner ) + { + continue; + } + if ( type == "MOD_MELEE" ) + { + self.damagetaken = damagemax; + } + else + { + self.damagetaken += damage; + } + if ( self.damagetaken >= damagemax ) + { + watcher thread maps/mp/gametypes/_weaponobjects::waitanddetonate( self, 0, attacker, weaponname ); + return; + } } } + diff --git a/patch_mp/maps/mp/_ballistic_knife.gsc b/patch_mp/maps/mp/_ballistic_knife.gsc index 8b4286c..d6d17c1 100644 --- a/patch_mp/maps/mp/_ballistic_knife.gsc +++ b/patch_mp/maps/mp/_ballistic_knife.gsc @@ -1,14 +1,15 @@ +//checked includes match cerberus output #include maps/mp/_challenges; #include common_scripts/utility; #include maps/mp/_utility; -init() +init() //checked matches cerberus output { precachemodel( "t6_wpn_ballistic_knife_projectile" ); precachemodel( "t6_wpn_ballistic_knife_blade_retrieve" ); } -onspawn( watcher, player ) +onspawn( watcher, player ) //checked changed to match cerberus output { player endon( "death" ); player endon( "disconnect" ); @@ -31,12 +32,9 @@ onspawn( watcher, player ) { isfriendly = 1; } - else + else if ( level.teambased && isai( prey ) && player.team == prey.aiteam ) { - if ( level.teambased && isai( prey ) && player.team == prey.aiteam ) - { - isfriendly = 1; - } + isfriendly = 1; } if ( !isfriendly ) { @@ -49,13 +47,10 @@ onspawn( watcher, player ) retrievable_model linkto( prey, bone ); } } - else + else if ( isfriendly ) { - if ( isfriendly ) - { - retrievable_model physicslaunch( normal, ( randomint( 10 ), randomint( 10 ), randomint( 10 ) ) ); - normal = ( 0, 0, 1 ); - } + retrievable_model physicslaunch( normal, ( randomint( 10 ), randomint( 10 ), randomint( 10 ) ) ); + normal = ( 0, 0, 1 ); } } watcher.objectarray[ watcher.objectarray.size ] = retrievable_model; @@ -76,7 +71,7 @@ onspawn( watcher, player ) } } -wait_to_show_glowing_model( prey ) +wait_to_show_glowing_model( prey ) //checked matches cerberus output { level endon( "game_ended" ); self endon( "death" ); @@ -91,7 +86,7 @@ wait_to_show_glowing_model( prey ) glowing_retrievable_model setmodel( "t6_wpn_ballistic_knife_blade_retrieve" ); } -watch_shutdown() +watch_shutdown() //checked matches cerberus output { pickuptrigger = self.pickuptrigger; glowing_model = self.glowing_model; @@ -106,7 +101,7 @@ watch_shutdown() } } -onspawnretrievetrigger( watcher, player ) +onspawnretrievetrigger( watcher, player ) //checked matches cerberus output { player endon( "death" ); player endon( "disconnect" ); @@ -147,7 +142,7 @@ onspawnretrievetrigger( watcher, player ) retrievable_model thread watch_shutdown(); } -watch_use_trigger( trigger, model, callback, playersoundonuse, npcsoundonuse ) +watch_use_trigger( trigger, model, callback, playersoundonuse, npcsoundonuse ) //checked changed to match cerberus output { self endon( "death" ); self endon( "delete" ); @@ -156,11 +151,11 @@ watch_use_trigger( trigger, model, callback, playersoundonuse, npcsoundonuse ) while ( 1 ) { trigger waittill( "trigger", player ); - while ( !isalive( player ) ) + if ( !isalive( player ) ) { continue; } - while ( !player isonground() ) + if ( !player isonground() ) { continue; } @@ -172,7 +167,7 @@ watch_use_trigger( trigger, model, callback, playersoundonuse, npcsoundonuse ) { continue; } - while ( !player hasweapon( "knife_ballistic_mp" ) ) + if ( !player hasweapon( "knife_ballistic_mp" ) ) { continue; } @@ -198,11 +193,11 @@ watch_use_trigger( trigger, model, callback, playersoundonuse, npcsoundonuse ) player playsound( npcsoundonuse ); } self thread [[ callback ]]( player ); - return; + break; } } -pick_up( player ) +pick_up( player ) //checked matches cerberus output { self destroy_ent(); current_weapon = player getcurrentweapon(); @@ -227,7 +222,7 @@ pick_up( player ) } } -destroy_ent() +destroy_ent() //checked matches cerberus output { if ( isDefined( self ) ) { @@ -244,7 +239,7 @@ destroy_ent() } } -dropknivestoground() +dropknivestoground() //checked matches cerberus output { self endon( "death" ); for ( ;; ) @@ -254,16 +249,16 @@ dropknivestoground() } } -droptoground( origin, radius ) +droptoground( origin, radius ) //checked changed to match cerberus output { if ( distancesquared( origin, self.origin ) < ( radius * radius ) ) { - self physicslaunch( ( 0, 0, 1 ), vectorScale( ( 0, 0, 1 ), 5 ) ); + self physicslaunch( ( 0, 0, 1 ), vectorScale( ( 1, 1, 1 ), 5 ) ); self thread updateretrievetrigger(); } } -updateretrievetrigger() +updateretrievetrigger() //checked matches cerberus output { self endon( "death" ); self waittill( "stationary" ); @@ -271,3 +266,4 @@ updateretrievetrigger() trigger.origin = ( self.origin[ 0 ], self.origin[ 1 ], self.origin[ 2 ] + 10 ); trigger linkto( self ); } + diff --git a/patch_mp/maps/mp/_bouncingbetty.gsc b/patch_mp/maps/mp/_bouncingbetty.gsc index 4cf680f..6d051ed 100644 --- a/patch_mp/maps/mp/_bouncingbetty.gsc +++ b/patch_mp/maps/mp/_bouncingbetty.gsc @@ -1,10 +1,11 @@ +//checked includes match cerberus output #include maps/mp/_scoreevents; #include maps/mp/_challenges; #include maps/mp/gametypes/_weaponobjects; #include common_scripts/utility; #include maps/mp/_utility; -init() +init() //checked matches cerberus output { precachemodel( "t6_wpn_bouncing_betty_world" ); level.bettyexplosionfx = loadfx( "weapon/bouncing_betty/fx_betty_explosion" ); @@ -13,19 +14,19 @@ init() level._effect[ "fx_betty_friendly_light" ] = loadfx( "weapon/bouncing_betty/fx_betty_light_green" ); level._effect[ "fx_betty_enemy_light" ] = loadfx( "weapon/bouncing_betty/fx_betty_light_red" ); level.bettymindist = 20; - level.bettygraceperiod = 0,6; + level.bettygraceperiod = 0.6; level.bettyradius = 192; level.bettystuntime = 1; level.bettydamageradius = 256; level.bettydamagemax = 210; level.bettydamagemin = 70; level.bettyjumpheight = 65; - level.bettyjumptime = 0,65; + level.bettyjumptime = 0.65; level.bettyrotatevelocity = ( 0, 750, 32 ); - level.bettyactivationdelay = 0,1; + level.bettyactivationdelay = 0.1; } -createbouncingbettywatcher() +createbouncingbettywatcher() //checked matches cerberus output { watcher = self createproximityweaponobjectwatcher( "bouncingbetty", "bouncingbetty_mp", self.team ); watcher.onspawn = ::onspawnbouncingbetty; @@ -46,7 +47,7 @@ createbouncingbettywatcher() watcher.activationdelay = level.bettyactivationdelay; } -onspawnbouncingbetty( watcher, owner ) +onspawnbouncingbetty( watcher, owner ) //checked matches cerberus output { onspawnproximityweaponobject( watcher, owner ); self thread spawnminemover(); @@ -69,14 +70,14 @@ spawnminemover() self thread killminemoveronpickup(); } -killminemoveronpickup() +killminemoveronpickup() //checked matches cerberus output { self.minemover endon( "death" ); self waittill_any( "picked_up", "hacked" ); self killminemover(); } -killminemover() +killminemover() //checked matches cerberus output { if ( isDefined( self.minemover ) ) { @@ -88,7 +89,7 @@ killminemover() } } -bouncingbettydetonate( attacker, weaponname ) +bouncingbettydetonate( attacker, weaponname ) //checked matches cerberus output { if ( isDefined( weaponname ) ) { @@ -114,7 +115,7 @@ bouncingbettydetonate( attacker, weaponname ) } } -bouncingbettydestroyed() +bouncingbettydestroyed() //checked matches cerberus output { playfx( level.bettydestroyedfx, self.origin ); playsoundatposition( "dst_equipment_destroy", self.origin ); @@ -134,7 +135,7 @@ bouncingbettydestroyed() self delete(); } -bouncingbettyjumpandexplode() +bouncingbettyjumpandexplode() //checked matches cerberus output { explodepos = self.origin + ( 0, 0, level.bettyjumpheight ); self moveto( explodepos, level.bettyjumptime, level.bettyjumptime, 0 ); @@ -146,14 +147,14 @@ bouncingbettyjumpandexplode() self thread mineexplode(); } -mineexplode() +mineexplode() //checked matches cerberus output { if ( !isDefined( self ) || !isDefined( self.owner ) ) { return; } self playsound( "fly_betty_explo" ); - wait 0,05; + wait 0.05; if ( !isDefined( self ) || !isDefined( self.owner ) ) { return; @@ -161,7 +162,7 @@ mineexplode() self hide(); self radiusdamage( self.origin, level.bettydamageradius, level.bettydamagemax, level.bettydamagemin, self.owner, "MOD_EXPLOSIVE", "bouncingbetty_mp" ); playfx( level.bettyexplosionfx, self.origin ); - wait 0,2; + wait 0.2; if ( !isDefined( self ) || !isDefined( self.owner ) ) { return; @@ -173,3 +174,4 @@ mineexplode() self.killcament delete(); self delete(); } + diff --git a/patch_mp/maps/mp/_empgrenade.gsc b/patch_mp/maps/mp/_empgrenade.gsc index 50ce67d..c0e22fd 100644 --- a/patch_mp/maps/mp/_empgrenade.gsc +++ b/patch_mp/maps/mp/_empgrenade.gsc @@ -1,14 +1,15 @@ +//checked includes match cerberus output #include maps/mp/killstreaks/_emp; #include common_scripts/utility; #include maps/mp/_utility; -init() +init() //checked matches cerberus output { precacheshellshock( "flashbang" ); thread onplayerconnect(); } -onplayerconnect() +onplayerconnect() //checked matches cerberus output { for ( ;; ) { @@ -17,7 +18,7 @@ onplayerconnect() } } -onplayerspawned() +onplayerspawned() //checked matches cerberus output { self endon( "disconnect" ); for ( ;; ) @@ -27,7 +28,7 @@ onplayerspawned() } } -monitorempgrenade() +monitorempgrenade() //checked changed to match cerberus output { self endon( "disconnect" ); self endon( "death" ); @@ -43,30 +44,28 @@ monitorempgrenade() } hurtvictim = 1; hurtattacker = 0; + /* /# assert( isDefined( self.team ) ); #/ + */ if ( level.teambased && isDefined( attacker ) && isDefined( attacker.team ) && attacker.team == self.team && attacker != self ) { if ( level.friendlyfire == 0 ) { + continue; } - } - else if ( level.friendlyfire == 1 ) - { - hurtattacker = 0; - hurtvictim = 1; - break; - } - else if ( level.friendlyfire == 2 ) - { - hurtvictim = 0; - hurtattacker = 1; - break; - } - else - { - if ( level.friendlyfire == 3 ) + else if ( level.friendlyfire == 1 ) + { + hurtattacker = 0; + hurtvictim = 1; + } + else if ( level.friendlyfire == 2 ) + { + hurtvictim = 0; + hurtattacker = 1; + } + else if ( level.friendlyfire == 3 ) { hurtattacker = 1; hurtvictim = 1; @@ -84,13 +83,13 @@ monitorempgrenade() } } -applyemp( attacker ) +applyemp( attacker ) //checked matches cerberus output { self notify( "applyEmp" ); self endon( "applyEmp" ); self endon( "disconnect" ); self endon( "death" ); - wait 0,05; + wait 0.05; if ( self == attacker ) { if ( isDefined( self.empendtime ) ) @@ -117,7 +116,7 @@ applyemp( attacker ) self.empgrenaded = 1; self shellshock( "flashbang", 1 ); self.empendtime = getTime() + ( self.empduration * 1000 ); - self thread emprumbleloop( 0,75 ); + self thread emprumbleloop( 0.75 ); self setempjammed( 1 ); self thread empgrenadedeathwaiter(); wait self.empduration; @@ -125,7 +124,7 @@ applyemp( attacker ) self checktoturnoffemp(); } -empgrenadedeathwaiter() +empgrenadedeathwaiter() //checked matches cerberus output { self notify( "empGrenadeDeathWaiter" ); self endon( "empGrenadeDeathWaiter" ); @@ -134,17 +133,17 @@ empgrenadedeathwaiter() self checktoturnoffemp(); } -checktoturnoffemp() +checktoturnoffemp() //checked changed to match cerberus output { self.empgrenaded = 0; - if ( level.teambased || maps/mp/killstreaks/_emp::emp_isteamemped( self.team ) && !level.teambased && isDefined( level.empplayer ) && level.empplayer != self ) + if ( level.teambased && maps/mp/killstreaks/_emp::emp_isteamemped( self.team ) || !level.teambased && isDefined( level.empplayer ) && level.empplayer != self ) { return; } self setempjammed( 0 ); } -emprumbleloop( duration ) +emprumbleloop( duration ) //checked matches cerberus output { self endon( "emp_rumble_loop" ); self notify( "emp_rumble_loop" ); @@ -152,11 +151,11 @@ emprumbleloop( duration ) while ( getTime() < goaltime ) { self playrumbleonentity( "damage_heavy" ); - wait 0,05; + wait 0.05; } } -watchempexplosion( owner, weaponname ) +watchempexplosion( owner, weaponname ) //checked changed to match cerberus output { owner endon( "disconnect" ); owner endon( "team_changed" ); @@ -165,20 +164,17 @@ watchempexplosion( owner, weaponname ) owner addweaponstat( weaponname, "used", 1 ); self waittill( "explode", origin, surface ); ents = getdamageableentarray( origin, 512 ); - _a223 = ents; - _k223 = getFirstArrayKey( _a223 ); - while ( isDefined( _k223 ) ) + foreach ( ent in ents ) { - ent = _a223[ _k223 ]; ent dodamage( 1, origin, owner, owner, "none", "MOD_GRENADE_SPLASH", 0, weaponname ); - _k223 = getNextArrayKey( _a223, _k223 ); } } -watchempgrenadeshutdown() +watchempgrenadeshutdown() //checked matches cerberus output { self endon( "explode" ); self waittill( "death" ); - wait 0,05; + wait 0.05; self notify( "shutdown_empgrenade" ); } + diff --git a/patch_mp/maps/mp/_entityheadicons.gsc b/patch_mp/maps/mp/_entityheadicons.gsc index b7ce832..55623ae 100644 --- a/patch_mp/maps/mp/_entityheadicons.gsc +++ b/patch_mp/maps/mp/_entityheadicons.gsc @@ -1,6 +1,7 @@ +//checked includes match cerberus output #include common_scripts/utility; -init() +init() //checked matches cerberus output { if ( isDefined( level.initedentityheadicons ) ) { @@ -11,12 +12,14 @@ init() return; } level.initedentityheadicons = 1; + /* /# assert( isDefined( game[ "entity_headicon_allies" ] ), "Allied head icons are not defined. Check the team set for the level." ); #/ /# assert( isDefined( game[ "entity_headicon_axis" ] ), "Axis head icons are not defined. Check the team set for the level." ); #/ + */ precacheshader( game[ "entity_headicon_allies" ] ); precacheshader( game[ "entity_headicon_axis" ] ); if ( !level.teambased ) @@ -26,7 +29,7 @@ init() level.entitieswithheadicons = []; } -setentityheadicon( team, owner, offset, icon, constant_size ) +setentityheadicon( team, owner, offset, icon, constant_size ) //checked changed to match cerberus output { if ( !level.teambased && !isDefined( owner ) ) { @@ -57,16 +60,14 @@ setentityheadicon( team, owner, offset, icon, constant_size ) { self.entityheadiconoffset = ( 0, 0, 0 ); } - while ( isDefined( self.entityheadicons ) ) + if ( isDefined( self.entityheadicons ) ) { - i = 0; - while ( i < self.entityheadicons.size ) + for ( i = 0; i < self.entityheadicons.size; i++ ) { if ( isDefined( self.entityheadicons[ i ] ) ) { self.entityheadicons[ i ] destroy(); } - i++; } } self.entityheadicons = []; @@ -79,84 +80,80 @@ setentityheadicon( team, owner, offset, icon, constant_size ) { if ( !isplayer( owner ) ) { + /* /# assert( isDefined( owner.owner ), "entity has to have an owner if it's not a player" ); #/ + */ owner = owner.owner; } owner updateentityheadclienticon( self, icon, constant_size ); } - else + else if ( isDefined( owner ) && team != "none" ) { - if ( isDefined( owner ) && team != "none" ) - { - owner updateentityheadteamicon( self, team, icon, constant_size ); - } + owner updateentityheadteamicon( self, team, icon, constant_size ); } self thread destroyheadiconsondeath(); } -updateentityheadteamicon( entity, team, icon, constant_size ) +updateentityheadteamicon( entity, team, icon, constant_size ) //checked matches cerberus output { headicon = newteamhudelem( team ); headicon.archived = 1; headicon.x = entity.entityheadiconoffset[ 0 ]; headicon.y = entity.entityheadiconoffset[ 1 ]; headicon.z = entity.entityheadiconoffset[ 2 ]; - headicon.alpha = 0,8; + headicon.alpha = 0.8; headicon setshader( icon, 6, 6 ); headicon setwaypoint( constant_size ); headicon settargetent( entity ); entity.entityheadicons[ entity.entityheadicons.size ] = headicon; } -updateentityheadclienticon( entity, icon, constant_size ) +updateentityheadclienticon( entity, icon, constant_size ) //checked matches cerberus output { headicon = newclienthudelem( self ); headicon.archived = 1; headicon.x = entity.entityheadiconoffset[ 0 ]; headicon.y = entity.entityheadiconoffset[ 1 ]; headicon.z = entity.entityheadiconoffset[ 2 ]; - headicon.alpha = 0,8; + headicon.alpha = 0.8; headicon setshader( icon, 6, 6 ); headicon setwaypoint( constant_size ); headicon settargetent( entity ); entity.entityheadicons[ entity.entityheadicons.size ] = headicon; } -destroyheadiconsondeath() +destroyheadiconsondeath() //checked changed to match cerberus output { self waittill_any( "death", "hacked" ); - i = 0; - while ( i < self.entityheadicons.size ) + for ( i = 0; i < self.entityheadicons.size; i++ ) { if ( isDefined( self.entityheadicons[ i ] ) ) { self.entityheadicons[ i ] destroy(); } - i++; } } -destroyentityheadicons() +destroyentityheadicons() //checked changed to match cerberus output { - while ( isDefined( self.entityheadicons ) ) + if ( isDefined( self.entityheadicons ) ) { - i = 0; - while ( i < self.entityheadicons.size ) + for ( i = 0; i < self.entityheadicons.size; i++ ) { if ( isDefined( self.entityheadicons[ i ] ) ) { self.entityheadicons[ i ] destroy(); } - i++; } } } -updateentityheadiconpos( headicon ) +updateentityheadiconpos( headicon ) //checked matches cerberus output { headicon.x = self.origin[ 0 ] + self.entityheadiconoffset[ 0 ]; headicon.y = self.origin[ 1 ] + self.entityheadiconoffset[ 1 ]; headicon.z = self.origin[ 2 ] + self.entityheadiconoffset[ 2 ]; } + diff --git a/patch_mp/maps/mp/_flashgrenades.gsc b/patch_mp/maps/mp/_flashgrenades.gsc index be03485..53e8e53 100644 --- a/patch_mp/maps/mp/_flashgrenades.gsc +++ b/patch_mp/maps/mp/_flashgrenades.gsc @@ -1,6 +1,7 @@ +//checked includes match cerberus output #include maps/mp/_utility; -main() +main() //checked matches cerberus output { precacheshellshock( "flashbang" ); level.sound_flash_start = ""; @@ -8,17 +9,17 @@ main() level.sound_flash_stop = ""; } -startmonitoringflash() +startmonitoringflash() //checked matches cerberus output { self thread monitorflash(); } -stopmonitoringflash( disconnected ) +stopmonitoringflash( disconnected ) //checked matches cerberus output { self notify( "stop_monitoring_flash" ); } -flashrumbleloop( duration ) +flashrumbleloop( duration ) //checked matches cerberus output { self endon( "stop_monitoring_flash" ); self endon( "flash_rumble_loop" ); @@ -27,46 +28,45 @@ flashrumbleloop( duration ) while ( getTime() < goaltime ) { self playrumbleonentity( "damage_heavy" ); - wait 0,05; + wait 0.05; } } -monitorflash_internal( amount_distance, amount_angle, attacker, direct_on_player ) +monitorflash_internal( amount_distance, amount_angle, attacker, direct_on_player ) //checked changed to match cerberus output { hurtattacker = 0; hurtvictim = 1; - if ( amount_angle < 0,5 ) + if ( amount_angle < 0.5 ) { - amount_angle = 0,5; + amount_angle = 0.5; } - else + else if ( amount_angle > 0.8 ) { - if ( amount_angle > 0,8 ) - { - amount_angle = 1; - } + amount_angle = 1; } if ( isDefined( attacker ) && attacker == self ) { - amount_distance *= 0,5; + amount_distance *= 0.5; } duration = amount_distance * amount_angle * 6; - if ( duration < 0,25 ) + if ( duration < 0.25 ) { return; } rumbleduration = undefined; if ( duration > 2 ) { - rumbleduration = 0,75; + rumbleduration = 0.75; } else { - rumbleduration = 0,25; + rumbleduration = 0.25; } + /* /# assert( isDefined( self.team ) ); #/ + */ if ( level.teambased && isDefined( attacker ) && isDefined( attacker.team ) && attacker.team == self.team && attacker != self ) { if ( level.friendlyfire == 0 ) @@ -78,25 +78,22 @@ monitorflash_internal( amount_distance, amount_angle, attacker, direct_on_player } else if ( level.friendlyfire == 2 ) { - duration *= 0,5; - rumbleduration *= 0,5; + duration *= 0.5; + rumbleduration *= 0.5; hurtvictim = 0; hurtattacker = 1; } - else + else if ( level.friendlyfire == 3 ) { - if ( level.friendlyfire == 3 ) - { - duration *= 0,5; - rumbleduration *= 0,5; - hurtattacker = 1; - } + duration *= 0.5; + rumbleduration *= 0.5; + hurtattacker = 1; } } if ( self hasperk( "specialty_flashprotection" ) ) { - duration *= 0,1; - rumbleduration *= 0,1; + duration *= 0.1; + rumbleduration *= 0.1; } if ( hurtvictim ) { @@ -119,14 +116,14 @@ monitorflash_internal( amount_distance, amount_angle, attacker, direct_on_player } } -monitorflash() +monitorflash() //checked changed to match cerberus output { self endon( "disconnect" ); self.flashendtime = 0; while ( 1 ) { self waittill( "flashbang", amount_distance, amount_angle, attacker ); - while ( !isalive( self ) ) + if ( !isalive( self ) ) { continue; } @@ -134,7 +131,7 @@ monitorflash() } } -monitorrcbombflash() +monitorrcbombflash() //checked matches cerberus output { self endon( "death" ); self.flashendtime = 0; @@ -150,7 +147,7 @@ monitorrcbombflash() } } -applyflash( duration, rumbleduration, attacker ) +applyflash( duration, rumbleduration, attacker ) //checked matches cerberus output { if ( !isDefined( self.flashduration ) || duration > self.flashduration ) { @@ -161,7 +158,7 @@ applyflash( duration, rumbleduration, attacker ) self.flashrumbleduration = rumbleduration; } self thread playflashsound( duration ); - wait 0,05; + wait 0.05; if ( isDefined( self.flashduration ) ) { self shellshock( "flashbang", self.flashduration, 0 ); @@ -176,7 +173,7 @@ applyflash( duration, rumbleduration, attacker ) self.flashrumbleduration = undefined; } -playflashsound( duration ) +playflashsound( duration ) //checked matches cerberus output { self endon( "death" ); self endon( "disconnect" ); @@ -186,20 +183,21 @@ playflashsound( duration ) flashsound thread deleteentonownerdeath( self ); flashsound playsound( level.sound_flash_start ); flashsound playloopsound( level.sound_flash_loop ); - if ( duration > 0,5 ) + if ( duration > 0.5 ) { - wait ( duration - 0,5 ); + wait ( duration - 0.5 ); } flashsound playsound( level.sound_flash_start ); - flashsound stoploopsound( 0,5 ); - wait 0,5; + flashsound stoploopsound( 0.5 ); + wait 0.5; flashsound notify( "delete" ); flashsound delete(); } -deleteentonownerdeath( owner ) +deleteentonownerdeath( owner ) //checked matches cerberus output { self endon( "delete" ); owner waittill( "death" ); self delete(); } + diff --git a/patch_mp/maps/mp/_mgturret.gsc b/patch_mp/maps/mp/_mgturret.gsc index da50168..0f249f2 100644 --- a/patch_mp/maps/mp/_mgturret.gsc +++ b/patch_mp/maps/mp/_mgturret.gsc @@ -1,28 +1,26 @@ +//checked includes match cerberus output #include common_scripts/utility; #include maps/mp/_utility; -main() +main() //checked changed to match cerberus output dvar taken from beta dump { - if ( getDvar( #"7C9A91DF" ) == "" ) + if ( getDvar( "mg42" ) == "" ) { setdvar( "mgTurret", "off" ); } level.magic_distance = 24; turretinfos = getentarray( "turretInfo", "targetname" ); - index = 0; - while ( index < turretinfos.size ) + for ( index = 0; index < turretinfos.size; index++ ) { turretinfos[ index ] delete(); - index++; } } -set_difficulty( difficulty ) +set_difficulty( difficulty ) //checked changed to match cerberus output { init_turret_difficulty_settings(); turrets = getentarray( "misc_turret", "classname" ); - index = 0; - while ( index < turrets.size ) + for ( index = 0; index < turrets.size; index++ ) { if ( isDefined( turrets[ index ].script_skilloverride ) ) { @@ -45,39 +43,37 @@ set_difficulty( difficulty ) break; break; default: - } } turret_set_difficulty( turrets[ index ], difficulty ); - index++; } } } -init_turret_difficulty_settings() +init_turret_difficulty_settings() //checked matches cerberus output { - level.mgturretsettings[ "easy" ][ "convergenceTime" ] = 2,5; + level.mgturretsettings[ "easy" ][ "convergenceTime" ] = 2.5; level.mgturretsettings[ "easy" ][ "suppressionTime" ] = 3; - level.mgturretsettings[ "easy" ][ "accuracy" ] = 0,38; + level.mgturretsettings[ "easy" ][ "accuracy" ] = 0.38; level.mgturretsettings[ "easy" ][ "aiSpread" ] = 2; - level.mgturretsettings[ "easy" ][ "playerSpread" ] = 0,5; - level.mgturretsettings[ "medium" ][ "convergenceTime" ] = 1,5; + level.mgturretsettings[ "easy" ][ "playerSpread" ] = 0.5; + level.mgturretsettings[ "medium" ][ "convergenceTime" ] = 1.5; level.mgturretsettings[ "medium" ][ "suppressionTime" ] = 3; - level.mgturretsettings[ "medium" ][ "accuracy" ] = 0,38; + level.mgturretsettings[ "medium" ][ "accuracy" ] = 0.38; level.mgturretsettings[ "medium" ][ "aiSpread" ] = 2; - level.mgturretsettings[ "medium" ][ "playerSpread" ] = 0,5; - level.mgturretsettings[ "hard" ][ "convergenceTime" ] = 0,8; + level.mgturretsettings[ "medium" ][ "playerSpread" ] = 0.5; + level.mgturretsettings[ "hard" ][ "convergenceTime" ] = 0.8; level.mgturretsettings[ "hard" ][ "suppressionTime" ] = 3; - level.mgturretsettings[ "hard" ][ "accuracy" ] = 0,38; + level.mgturretsettings[ "hard" ][ "accuracy" ] = 0.38; level.mgturretsettings[ "hard" ][ "aiSpread" ] = 2; - level.mgturretsettings[ "hard" ][ "playerSpread" ] = 0,5; - level.mgturretsettings[ "fu" ][ "convergenceTime" ] = 0,4; + level.mgturretsettings[ "hard" ][ "playerSpread" ] = 0.5; + level.mgturretsettings[ "fu" ][ "convergenceTime" ] = 0.4; level.mgturretsettings[ "fu" ][ "suppressionTime" ] = 3; - level.mgturretsettings[ "fu" ][ "accuracy" ] = 0,38; + level.mgturretsettings[ "fu" ][ "accuracy" ] = 0.38; level.mgturretsettings[ "fu" ][ "aiSpread" ] = 2; - level.mgturretsettings[ "fu" ][ "playerSpread" ] = 0,5; + level.mgturretsettings[ "fu" ][ "playerSpread" ] = 0.5; } -turret_set_difficulty( turret, difficulty ) +turret_set_difficulty( turret, difficulty ) //checked matches cerberus output { turret.convergencetime = level.mgturretsettings[ difficulty ][ "convergenceTime" ]; turret.suppressiontime = level.mgturretsettings[ difficulty ][ "suppressionTime" ]; @@ -86,7 +82,7 @@ turret_set_difficulty( turret, difficulty ) turret.playerspread = level.mgturretsettings[ difficulty ][ "playerSpread" ]; } -turret_suppression_fire( targets ) +turret_suppression_fire( targets ) //checked matches beta dump { self endon( "death" ); self endon( "stop_suppression_fire" ); @@ -109,36 +105,27 @@ turret_suppression_fire( targets ) } } -burst_fire_settings( setting ) +burst_fire_settings( setting ) //checked changed to match cerberus output { if ( setting == "delay" ) { - return 0,2; + return 0.2; } - else + else if ( setting == "delay_range" ) { - if ( setting == "delay_range" ) - { - return 0,5; - } - else - { - if ( setting == "burst" ) - { - return 0,5; - } - else - { - if ( setting == "burst_range" ) - { - return 4; - } - } - } + return 0.5; + } + else if ( setting == "burst" ) + { + return 0.5; + } + else if ( setting == "burst_range" ) + { + return 4; } } -burst_fire( turret, manual_target ) +burst_fire( turret, manual_target ) //checked matches cerberus output { turret endon( "death" ); turret endon( "stopfiring" ); @@ -190,7 +177,7 @@ burst_fire( turret, manual_target ) } } -burst_fire_unmanned() +burst_fire_unmanned() //checked changed at own discretion { self notify( "stop_burst_fire_unmanned" ); self endon( "stop_burst_fire_unmanned" ); @@ -243,7 +230,7 @@ burst_fire_unmanned() self cleartargetentity(); self settargetentity( self.manual_targets[ randomint( self.manual_targets.size ) ] ); } - duration = ( pauseuntiltime - getTime() ) * 0,001; + duration = ( pauseuntiltime - getTime() ) * 0.001; if ( self isfiringturret() && duration <= 0 ) { if ( turretstate != "fire" ) @@ -259,32 +246,28 @@ burst_fire_unmanned() self.script_shooting = 0; duration = turret_delay + randomfloat( turret_delay_range ); pauseuntiltime = getTime() + int( duration * 1000 ); - continue; } - else + else if ( turretstate != "aim" ) { - if ( turretstate != "aim" ) - { - turretstate = "aim"; - } - self thread turret_timer( duration ); - self waittill( "turretstatechange" ); + turretstate = "aim"; } + self thread turret_timer( duration ); + self waittill( "turretstatechange" ); } } -do_shoot() +do_shoot() //checked matches cerberus output { self endon( "death" ); self endon( "turretstatechange" ); for ( ;; ) { self shootturret(); - wait 0,112; + wait 0.112; } } -turret_timer( duration ) +turret_timer( duration ) //checked matches cerberus output { if ( duration <= 0 ) { @@ -298,7 +281,7 @@ turret_timer( duration ) } } -random_spread( ent ) +random_spread( ent ) //checked matches cerberus output { self endon( "death" ); self notify( "stop random_spread" ); @@ -317,6 +300,7 @@ random_spread( ent ) ent.origin = self.manual_target.origin; } ent.origin += ( 20 - randomfloat( 40 ), 20 - randomfloat( 40 ), 20 - randomfloat( 60 ) ); - wait 0,2; + wait 0.2; } } + diff --git a/patch_mp/maps/mp/_scrambler.gsc b/patch_mp/maps/mp/_scrambler.gsc index eb82634..6e5262c 100644 --- a/patch_mp/maps/mp/_scrambler.gsc +++ b/patch_mp/maps/mp/_scrambler.gsc @@ -1,3 +1,4 @@ +//checked includes match cerberus output #include maps/mp/gametypes/_damagefeedback; #include maps/mp/gametypes/_globallogic_player; #include maps/mp/_challenges; @@ -6,7 +7,7 @@ #include common_scripts/utility; #include maps/mp/_utility; -init() +init() //checked matches cerberus output { level._effect[ "scrambler_enemy_light" ] = loadfx( "misc/fx_equip_light_red" ); level._effect[ "scrambler_friendly_light" ] = loadfx( "misc/fx_equip_light_green" ); @@ -16,7 +17,7 @@ init() level.scramblerinnerradiussq = 360000; } -createscramblerwatcher() +createscramblerwatcher() //checked matches cerberus output { watcher = self maps/mp/gametypes/_weaponobjects::createuseweaponobjectwatcher( "scrambler", "scrambler_mp", self.team ); watcher.onspawn = ::onspawnscrambler; @@ -28,7 +29,7 @@ createscramblerwatcher() watcher.ondamage = ::watchscramblerdamage; } -onspawnscrambler( watcher, player ) +onspawnscrambler( watcher, player ) //checked matches cerberus output { player endon( "disconnect" ); self endon( "death" ); @@ -46,7 +47,7 @@ onspawnscrambler( watcher, player ) level notify( "scrambler_spawn" ); } -scramblerdetonate( attacker, weaponname ) +scramblerdetonate( attacker, weaponname ) //checked matches cerberus output { from_emp = maps/mp/killstreaks/_emp::isempweapon( weaponname ); if ( !from_emp ) @@ -61,7 +62,7 @@ scramblerdetonate( attacker, weaponname ) self delete(); } -watchshutdown( player ) +watchshutdown( player ) //checked matches cerberus output { self waittill_any( "death", "hacked" ); level notify( "scrambler_death" ); @@ -71,12 +72,12 @@ watchshutdown( player ) } } -destroyent() +destroyent() //checked matches cerberus output { self delete(); } -watchscramblerdamage( watcher ) +watchscramblerdamage( watcher ) //checked changed to match beta dump { self endon( "death" ); self endon( "hacked" ); @@ -86,86 +87,78 @@ watchscramblerdamage( watcher ) { self.damagetaken = 0; } - for ( ;; ) + while ( 1 ) { - while ( 1 ) + self.maxhealth = 100000; + self.health = self.maxhealth; + self waittill( "damage", damage, attacker, direction, point, type, tagname, modelname, partname, weaponname, idflags ); + if ( !isDefined( attacker ) || !isplayer( attacker ) ) { - self.maxhealth = 100000; - self.health = self.maxhealth; - self waittill( "damage", damage, attacker, direction, point, type, tagname, modelname, partname, weaponname, idflags ); - if ( !isDefined( attacker ) || !isplayer( attacker ) ) + continue; + } + if ( level.teambased && attacker.team == self.owner.team && attacker != self.owner ) + { + continue; + } + if ( isDefined( weaponname ) ) + { + switch( weaponname ) { - continue; - } - while ( level.teambased && attacker.team == self.owner.team && attacker != self.owner ) - { - continue; - } - if ( isDefined( weaponname ) ) - { - switch( weaponname ) - { - case "concussion_grenade_mp": - case "flash_grenade_mp": - if ( watcher.stuntime > 0 ) + case "concussion_grenade_mp": + case "flash_grenade_mp": + if ( watcher.stuntime > 0 ) + { + self thread maps/mp/gametypes/_weaponobjects::stunstart( watcher, watcher.stuntime ); + } + if ( level.teambased && self.owner.team != attacker.team ) + { + if ( maps/mp/gametypes/_globallogic_player::dodamagefeedback( weaponname, attacker ) ) { - self thread maps/mp/gametypes/_weaponobjects::stunstart( watcher, watcher.stuntime ); - } - if ( level.teambased && self.owner.team != attacker.team ) - { - if ( maps/mp/gametypes/_globallogic_player::dodamagefeedback( weaponname, attacker ) ) - { - attacker maps/mp/gametypes/_damagefeedback::updatedamagefeedback(); - } - continue; - } - else - { - if ( !level.teambased && self.owner != attacker ) - { - if ( maps/mp/gametypes/_globallogic_player::dodamagefeedback( weaponname, attacker ) ) - { - attacker maps/mp/gametypes/_damagefeedback::updatedamagefeedback(); - } - } + attacker maps/mp/gametypes/_damagefeedback::updatedamagefeedback(); } } - case "emp_grenade_mp": - damage = damagemax; - default: - if ( maps/mp/gametypes/_globallogic_player::dodamagefeedback( weaponname, attacker ) ) - { - attacker maps/mp/gametypes/_damagefeedback::updatedamagefeedback(); - } - break; + else if ( !level.teambased && self.owner != attacker ) + { + if ( maps/mp/gametypes/_globallogic_player::dodamagefeedback( weaponname, attacker ) ) + { + attacker maps/mp/gametypes/_damagefeedback::updatedamagefeedback(); + } } - } - else - { - weaponname = ""; - } - while ( isplayer( attacker ) && level.teambased && isDefined( attacker.team ) && self.owner.team == attacker.team && attacker != self.owner ) - { continue; - } - if ( type == "MOD_MELEE" ) - { - self.damagetaken = damagemax; - } - else - { - self.damagetaken += damage; - } - if ( self.damagetaken >= damagemax ) - { - watcher thread maps/mp/gametypes/_weaponobjects::waitanddetonate( self, 0, attacker, weaponname ); - } + case "emp_grenade_mp": + damage = damagemax; + default: + if ( maps/mp/gametypes/_globallogic_player::dodamagefeedback( weaponname, attacker ) ) + { + attacker maps/mp/gametypes/_damagefeedback::updatedamagefeedback(); + } + break; } } + else + { + weaponname = ""; + } + if ( isplayer( attacker ) && level.teambased && isDefined( attacker.team ) && self.owner.team == attacker.team && attacker != self.owner ) + { + continue; + } + if ( type == "MOD_MELEE" ) + { + self.damagetaken = damagemax; + } + else + { + self.damagetaken += damage; + } + if ( self.damagetaken >= damagemax ) + { + watcher thread maps/mp/gametypes/_weaponobjects::waitanddetonate( self, 0, attacker, weaponname ); + } } } -ownersameteam( owner1, owner2 ) +ownersameteam( owner1, owner2 ) //checked matches cerberus output { if ( !level.teambased ) { @@ -182,7 +175,7 @@ ownersameteam( owner1, owner2 ) return owner1.team == owner2.team; } -checkscramblerstun() +checkscramblerstun() //checked partially changed to match cerberus output see info.md { scramblers = getentarray( "grenade", "classname" ); if ( isDefined( self.name ) && self.name == "scrambler_mp" ) @@ -198,31 +191,29 @@ checkscramblerstun() i++; continue; } - else if ( !isDefined( scrambler.name ) ) + if ( !isDefined( scrambler.name ) ) { i++; continue; } - else if ( scrambler.name != "scrambler_mp" ) + if ( scrambler.name != "scrambler_mp" ) { i++; continue; } - else if ( ownersameteam( self.owner, scrambler.owner ) ) + if ( ownersameteam( self.owner, scrambler.owner ) ) { i++; continue; } - else + flattenedselforigin = ( self.origin[ 0 ], self.origin[ 1 ], 0 ); + flattenedscramblerorigin = ( scrambler.origin[ 0 ], scrambler.origin[ 1 ], 0 ); + if ( distancesquared( flattenedselforigin, flattenedscramblerorigin ) < level.scramblerouterradiussq ) { - flattenedselforigin = ( self.origin[ 0 ], self.origin[ 1 ], 0 ); - flattenedscramblerorigin = ( scrambler.origin[ 0 ], scrambler.origin[ 1 ], 0 ); - if ( distancesquared( flattenedselforigin, flattenedscramblerorigin ) < level.scramblerouterradiussq ) - { - return 1; - } + return 1; } i++; } return 0; } + diff --git a/patch_mp/maps/mp/_sensor_grenade.gsc b/patch_mp/maps/mp/_sensor_grenade.gsc index f13baf0..e076775 100644 --- a/patch_mp/maps/mp/_sensor_grenade.gsc +++ b/patch_mp/maps/mp/_sensor_grenade.gsc @@ -1,3 +1,4 @@ +//checked includes match cerberus output #include maps/mp/gametypes/_damagefeedback; #include maps/mp/gametypes/_globallogic_player; #include maps/mp/_utility; @@ -8,12 +9,12 @@ #include maps/mp/gametypes/_weaponobjects; #include common_scripts/utility; -init() +init() //checked matches cerberus output { level.isplayertrackedfunc = ::isplayertracked; } -createsensorgrenadewatcher() +createsensorgrenadewatcher() //checked matches cerberus output { watcher = self maps/mp/gametypes/_weaponobjects::createuseweaponobjectwatcher( "sensor_grenade", "sensor_grenade_mp", self.team ); watcher.headicon = 0; @@ -26,7 +27,7 @@ createsensorgrenadewatcher() watcher.enemydestroy = 1; } -onspawnsensorgrenade( watcher, player ) +onspawnsensorgrenade( watcher, player ) //checked matches cerberus output { self endon( "death" ); self thread maps/mp/gametypes/_weaponobjects::onspawnuseweaponobject( watcher, player ); @@ -40,7 +41,7 @@ onspawnsensorgrenade( watcher, player ) self thread watchforexplode( player ); } -watchforstationary( owner ) +watchforstationary( owner ) //checked matches cerberus output { self endon( "death" ); self endon( "hacked" ); @@ -51,7 +52,7 @@ watchforstationary( owner ) checkfortracking( self.origin ); } -watchforexplode( owner ) +watchforexplode( owner ) //checked matches cerberus output { self endon( "hacked" ); self endon( "delete" ); @@ -61,18 +62,15 @@ watchforexplode( owner ) checkfortracking( origin + ( 0, 0, 1 ) ); } -checkfortracking( origin ) +checkfortracking( origin ) //checked changed to match cerberus output { if ( isDefined( self.owner ) == 0 ) { return; } players = level.players; - _a85 = level.players; - _k85 = getFirstArrayKey( _a85 ); - while ( isDefined( _k85 ) ) + foreach ( player in level.players ) { - player = _a85[ _k85 ]; if ( player isenemyplayer( self.owner ) ) { if ( !player hasperk( "specialty_nomotionsensor" ) ) @@ -87,11 +85,10 @@ checkfortracking( origin ) } } } - _k85 = getNextArrayKey( _a85, _k85 ); } } -tracksensorgrenadevictim( victim ) +tracksensorgrenadevictim( victim ) //checked matches cerberus output { if ( !isDefined( self.sensorgrenadedata ) ) { @@ -103,7 +100,7 @@ tracksensorgrenadevictim( victim ) } } -isplayertracked( player, time ) +isplayertracked( player, time ) //checked matches cerberus output { playertracked = 0; if ( isDefined( self.sensorgrenadedata ) && isDefined( self.sensorgrenadedata[ player.clientid ] ) ) @@ -116,7 +113,7 @@ isplayertracked( player, time ) return playertracked; } -sensorgrenadedestroyed( attacker, weaponname ) +sensorgrenadedestroyed( attacker, weaponname ) //checked matches cerberus output { from_emp = maps/mp/killstreaks/_emp::isempweapon( weaponname ); if ( !from_emp ) @@ -135,7 +132,7 @@ sensorgrenadedestroyed( attacker, weaponname ) self delete(); } -watchsensorgrenadedamage( watcher ) +watchsensorgrenadedamage( watcher ) //checked changed to match beta dump { self endon( "death" ); self endon( "hacked" ); @@ -145,81 +142,77 @@ watchsensorgrenadedamage( watcher ) { self.damagetaken = 0; } - for ( ;; ) + while ( 1 ) { - while ( 1 ) + self.maxhealth = 100000; + self.health = self.maxhealth; + self waittill( "damage", damage, attacker, direction, point, type, tagname, modelname, partname, weaponname, idflags ); + if ( !isDefined( attacker ) || !isplayer( attacker ) ) { - self.maxhealth = 100000; - self.health = self.maxhealth; - self waittill( "damage", damage, attacker, direction, point, type, tagname, modelname, partname, weaponname, idflags ); - if ( !isDefined( attacker ) || !isplayer( attacker ) ) + continue; + } + if ( level.teambased && isplayer( attacker ) ) + { + if ( !level.hardcoremode && self.owner.team == attacker.pers[ "team" ] && self.owner != attacker ) { continue; } - while ( level.teambased && isplayer( attacker ) ) + } + if ( isDefined( weaponname ) ) + { + switch( weaponname ) { - while ( !level.hardcoremode && self.owner.team == attacker.pers[ "team" ] && self.owner != attacker ) - { + case "concussion_grenade_mp": + case "flash_grenade_mp": + if ( watcher.stuntime > 0 ) + { + self thread maps/mp/gametypes/_weaponobjects::stunstart( watcher, watcher.stuntime ); + } + if ( level.teambased && self.owner.team != attacker.team ) + { + if ( maps/mp/gametypes/_globallogic_player::dodamagefeedback( weaponname, attacker ) ) + { + attacker maps/mp/gametypes/_damagefeedback::updatedamagefeedback(); + } + } + else + { + if ( !level.teambased && self.owner != attacker ) + { + if ( maps/mp/gametypes/_globallogic_player::dodamagefeedback( weaponname, attacker ) ) + { + attacker maps/mp/gametypes/_damagefeedback::updatedamagefeedback(); + } + } + } continue; - } - } - if ( isDefined( weaponname ) ) - { - switch( weaponname ) - { - case "concussion_grenade_mp": - case "flash_grenade_mp": - if ( watcher.stuntime > 0 ) - { - self thread maps/mp/gametypes/_weaponobjects::stunstart( watcher, watcher.stuntime ); - } - if ( level.teambased && self.owner.team != attacker.team ) - { - if ( maps/mp/gametypes/_globallogic_player::dodamagefeedback( weaponname, attacker ) ) - { - attacker maps/mp/gametypes/_damagefeedback::updatedamagefeedback(); - } - continue; - } - else - { - if ( !level.teambased && self.owner != attacker ) - { - if ( maps/mp/gametypes/_globallogic_player::dodamagefeedback( weaponname, attacker ) ) - { - attacker maps/mp/gametypes/_damagefeedback::updatedamagefeedback(); - } - } - } + case "emp_grenade_mp": + damage = damagemax; + default: + if ( maps/mp/gametypes/_globallogic_player::dodamagefeedback( weaponname, attacker ) ) + { + attacker maps/mp/gametypes/_damagefeedback::updatedamagefeedback(); } - case "emp_grenade_mp": - damage = damagemax; - default: - if ( maps/mp/gametypes/_globallogic_player::dodamagefeedback( weaponname, attacker ) ) - { - attacker maps/mp/gametypes/_damagefeedback::updatedamagefeedback(); - } - break; - } - } - else - { - weaponname = ""; - } - if ( type == "MOD_MELEE" ) - { - self.damagetaken = damagemax; - } - else - { - self.damagetaken += damage; - } - if ( self.damagetaken >= damagemax ) - { - watcher thread maps/mp/gametypes/_weaponobjects::waitanddetonate( self, 0, attacker, weaponname ); - return; - } + break; } } + else + { + weaponname = ""; + } + if ( type == "MOD_MELEE" ) + { + self.damagetaken = damagemax; + } + else + { + self.damagetaken += damage; + } + if ( self.damagetaken >= damagemax ) + { + watcher thread maps/mp/gametypes/_weaponobjects::waitanddetonate( self, 0, attacker, weaponname ); + return; + } } } + diff --git a/patch_mp/maps/mp/_teargrenades.gsc b/patch_mp/maps/mp/_teargrenades.gsc index fdf1b6d..18f8fb2 100644 --- a/patch_mp/maps/mp/_teargrenades.gsc +++ b/patch_mp/maps/mp/_teargrenades.gsc @@ -1,6 +1,7 @@ +//checked includes match cerberus output #include maps/mp/gametypes/_perplayer; -main() +main() //checked matches cerberus output { level.tearradius = 170; level.tearheight = 128; @@ -13,20 +14,20 @@ main() maps/mp/gametypes/_perplayer::enable( fgmonitor ); } -startmonitoringtearusage() +startmonitoringtearusage() //checked matches cerberus output { self thread monitortearusage(); } -stopmonitoringtearusage( disconnected ) +stopmonitoringtearusage( disconnected ) //checked matches cerberus output { self notify( "stop_monitoring_tear_usage" ); } -monitortearusage() +monitortearusage() //checked changed to match cerberus output { self endon( "stop_monitoring_tear_usage" ); - wait 0,05; + wait 0.05; if ( !self hasweapon( "tear_grenade_mp" ) ) { return; @@ -35,19 +36,15 @@ monitortearusage() while ( 1 ) { ammo = self getammocount( "tear_grenade_mp" ); - while ( ammo < prevammo ) + if ( ammo < prevammo ) { num = prevammo - ammo; -/# -#/ - i = 0; - while ( i < num ) + for ( i = 0; i < num; i++ ) { grenades = getentarray( "grenade", "classname" ); bestdist = undefined; bestg = undefined; - g = 0; - while ( g < grenades.size ) + for ( g = 0; g < grenades.size; g++ ) { if ( !isDefined( grenades[ g ].teargrenade ) ) { @@ -58,29 +55,27 @@ monitortearusage() bestg = g; } } - g++; } if ( isDefined( bestdist ) ) { grenades[ bestg ].teargrenade = 1; grenades[ bestg ] thread teargrenade_think( self.team ); } - i++; } } prevammo = ammo; - wait 0,05; + wait 0.05; } } -teargrenade_think( team ) +teargrenade_think( team ) //checked matches cerberus output { wait level.teargrenadetimer; ent = spawnstruct(); ent thread tear( self.origin ); } -tear( pos ) +tear( pos ) //checked changed to match beta dump { trig = spawn( "trigger_radius", pos, 0, level.tearradius, level.tearheight ); starttime = getTime(); @@ -89,7 +84,7 @@ tear( pos ) while ( 1 ) { trig waittill( "trigger", player ); - while ( player.sessionstate != "playing" ) + if ( player.sessionstate != "playing" ) { continue; } @@ -98,16 +93,16 @@ tear( pos ) curheight = level.tearheight; if ( time < level.teargasfillduration ) { - currad *= time / level.teargasfillduration; - curheight *= time / level.teargasfillduration; + currad = currad * ( time / level.teargasfillduration ); + curheight = curheight * ( time / level.teargasfillduration ); } offset = ( player.origin + vectorScale( ( 0, 0, 1 ), 32 ) ) - pos; offset2d = ( offset[ 0 ], offset[ 1 ], 0 ); - while ( lengthsquared( offset2d ) > ( currad * currad ) ) + if ( lengthsquared( offset2d ) > ( currad * currad ) ) { continue; } - while ( ( player.origin[ 2 ] - pos[ 2 ] ) > curheight ) + if ( ( player.origin[ 2 ] - pos[ 2 ] ) > curheight ) { continue; } @@ -119,13 +114,13 @@ tear( pos ) } } -teartimer() +teartimer() //checked matches cerberus output { wait level.teargasduration; self notify( "tear_timeout" ); } -teargassuffering() +teargassuffering() //checked changed to match cerberus output { self endon( "death" ); self endon( "disconnect" ); @@ -140,10 +135,7 @@ teargassuffering() { break; } - else - { - wait 1; - } + wait 1; } self shellshock( "teargas", 1 ); if ( self mayapplyscreeneffect() ) @@ -152,7 +144,7 @@ teargassuffering() } } -drawcylinder( pos, rad, height ) +drawcylinder( pos, rad, height ) //checked changed to match beta dump { time = 0; while ( 1 ) @@ -161,27 +153,23 @@ drawcylinder( pos, rad, height ) curheight = height; if ( time < level.teargasfillduration ) { - currad *= time / level.teargasfillduration; - curheight *= time / level.teargasfillduration; + currad = currad * ( time / level.teargasfillduration ); + curheight = curheight * ( time / level.teargasfillduration ); } - r = 0; - while ( r < 20 ) + for ( r = 0; r < 20; r++ ) { theta = ( r / 20 ) * 360; theta2 = ( ( r + 1 ) / 20 ) * 360; line( pos + ( cos( theta ) * currad, sin( theta ) * currad, 0 ), pos + ( cos( theta2 ) * currad, sin( theta2 ) * currad, 0 ) ); line( pos + ( cos( theta ) * currad, sin( theta ) * currad, curheight ), pos + ( cos( theta2 ) * currad, sin( theta2 ) * currad, curheight ) ); line( pos + ( cos( theta ) * currad, sin( theta ) * currad, 0 ), pos + ( cos( theta ) * currad, sin( theta ) * currad, curheight ) ); - r++; } - time += 0,05; + time += 0.05; if ( time > level.teargasduration ) { return; } - else - { - wait 0,05; - } + wait 0.05; } } + diff --git a/patch_mp/maps/mp/_treadfx.gsc b/patch_mp/maps/mp/_treadfx.gsc index 131c6c1..577128f 100644 --- a/patch_mp/maps/mp/_treadfx.gsc +++ b/patch_mp/maps/mp/_treadfx.gsc @@ -1,5 +1,5 @@ -loadtreadfx( vehicle ) +loadtreadfx( vehicle ) //checked matches cerberus output { treadfx = vehicle.treadfxnamearray; if ( isDefined( treadfx ) ) @@ -116,13 +116,12 @@ loadtreadfx( vehicle ) } } -preloadtreadfx( vehicle ) +preloadtreadfx( vehicle ) //checked changed to match cerberus output { treadfx = getvehicletreadfxarray( vehicle ); - i = 0; - while ( i < treadfx.size ) + for ( i = 0; i < treadfx.size; i++ ) { loadfx( treadfx[ i ] ); - i++; } } + diff --git a/patch_mp/readme.md b/patch_mp/readme.md index 9d32e40..ff9e582 100644 --- a/patch_mp/readme.md +++ b/patch_mp/readme.md @@ -27,14 +27,20 @@ patch_mp/maps/codescripts/character_mp.gsc patch_mp/maps/codescripts/delete.gsc patch_mp/maps/codescripts/struct.gsc +patch_mp/maps/mp/_acousticsensor.gsc patch_mp/maps/mp/_ambientpackage.gsc patch_mp/maps/mp/_audio.gsc +patch_mp/maps/mp/_ballistic_knife.gsc patch_mp/maps/mp/_bb.gsc +patch_mp/maps/mp/_bouncingbetty.gsc patch_mp/maps/mp/_busing.gsc patch_mp/maps/mp/_compass.gsc patch_mp/maps/mp/_demo.gsc patch_mp/maps/mp/_development_dvars.gsc +patch_mp/maps/mp/_empgrenade.gsc +patch_mp/maps/mp/_entityheadicons.gsc patch_mp/maps/mp/_explosive_bolt.gsc +patch_mp/maps/mp/_flashgrenades.gsc patch_mp/maps/mp/_fxanim.gsc patch_mp/maps/mp/_medals.gsc patch_mp/maps/mp/_menus.gsc @@ -42,8 +48,12 @@ patch_mp/maps/mp/_multi_extracam.gsc patch_mp/maps/mp/_music.gsc patch_mp/maps/mp/_pc.gsc patch_mp/maps/mp/_satchel_charge.gsc +patch_mp/maps/mp/_scrambler.gsc +patch_mp/maps/mp/_sensor_grenade.gsc patch_mp/maps/mp/_smokegrenade.gsc patch_mp/maps/mp/_sticky_grenade.gsc +patch_mp/maps/mp/_teargrenades.gsc +patch_mp/maps/mp/_treadfx.gsc patch_mp/maps/mp/mp_bridge.gsc patch_mp/maps/mp/mp_carrier.gsc patch_mp/maps/mp/mp_castaway.sc @@ -149,19 +159,9 @@ patch_mp/maps/mp/teams/_teamset_multiteam.gsc ``` patch_mp/maps/common_scripts/utility.gsc -patch_mp/maps/mp/_acousticsensor.gsc -patch_mp/maps/mp/_art.gsc -patch_mp/maps/mp/_ballistic_knife.gsc -patch_mp/maps/mp/_bouncingbetty.gsc patch_mp/maps/mp/_challenges.gsc -patch_mp/maps/mp/_createfx.gsc -patch_mp/maps/mp/_createfxmenu.gsc -patch_mp/maps/mp/_createfxundo.gsc patch_mp/maps/mp/_decoy.gsc patch_mp/maps/mp/_destructible.gsc -patch_mp/maps/mp/_empgrenade.gsc -patch_mp/maps/mp/_entityheadicons.gsc -patch_mp/maps/mp/_flashgrenades.gsc patch_mp/maps/mp/_fx.gsc patch_mp/maps/mp/_gameadvertisement.gsc patch_mp/maps/mp/_gamerep.gsc @@ -175,13 +175,8 @@ patch_mp/maps/mp/_popups.gsc patch_mp/maps/mp/_proximity_grenade.gsc patch_mp/maps/mp/_riotshield.gsc patch_mp/maps/mp/_scoreevents.gsc -patch_mp/maps/mp/_scrambler.gsc -patch_mp/maps/mp/_script_gen.gsc -patch_mp/maps/mp/_sensor_grenade.gsc patch_mp/maps/mp/_tabun.gsc patch_mp/maps/mp/_tacticalinsertion.gsc -patch_mp/maps/mp/_teargrenades.gsc -patch_mp/maps/mp/_treadfx.gsc patch_mp/maps/mp/_trophy_system.gsc patch_mp/maps/mp/_utility.gsc patch_mp/maps/mp/_vehicles.gsc @@ -216,6 +211,11 @@ patch_mp/maps/mp/killstreaks/_turret_killstreak.gsc ``` ### The following scipts are dev scripts filled with dev calls making them useless to modify for now ``` +patch_mp/maps/mp/_art.gsc +patch_mp/maps/mp/_createfx.gsc +patch_mp/maps/mp/_createfxmenu.gsc +patch_mp/maps/mp/_createfxundo.gsc +patch_mp/maps/mp/_script_gen.gsc patch_mp/maps/mp/gametypes/_dev.gsc patch_mp/maps/mp/gametypes/_dev_class.gsc ```