diff --git a/zm_transit_patch/maps/mp/gametypes_zm/zmeat.gsc b/zm_transit_patch/maps/mp/gametypes_zm/zmeat.gsc index c4f2ad5..14a59ae 100644 --- a/zm_transit_patch/maps/mp/gametypes_zm/zmeat.gsc +++ b/zm_transit_patch/maps/mp/gametypes_zm/zmeat.gsc @@ -1,3 +1,4 @@ +//checked includes changed to match cerberus output #include maps/mp/zombies/_zm_spawner; #include maps/mp/zombies/_zm_utility; #include maps/mp/gametypes_zm/_globallogic_score; @@ -8,14 +9,15 @@ #include maps/mp/zombies/_zm_audio; #include maps/mp/zombies/_zm_game_module; #include maps/mp/zombies/_zm; +#include maps/mp/gametypes_zm/_zm_gametype; #include maps/mp/zombies/_zm_game_module_meat_utility; #include common_scripts/utility; #include maps/mp/gametypes_zm/_hud_util; #include maps/mp/_utility; -#using_animtree( "zombie_meat" ); +//#using_animtree( "zombie_meat" ); -main() +main() //checked matches cerberus output { maps/mp/gametypes_zm/_zm_gametype::main(); registerclientfield( "allplayers", "holding_meat", 7000, 1, "int" ); @@ -29,7 +31,7 @@ main() set_gamemode_var( "match_end_notify", "meat_end" ); set_gamemode_var( "match_end_func", ::meat_end_match ); level._no_static_unitriggers = 1; - level._game_module_player_damage_callback = ::maps/mp/gametypes_zm/_zm_gametype::game_module_player_damage_callback; + level._game_module_player_damage_callback = maps/mp/gametypes_zm/_zm_gametype::game_module_player_damage_callback; level._game_module_player_laststand_callback = ::meat_last_stand_callback; level.no_end_game_check = 1; maps/mp/gametypes_zm/_zm_gametype::post_gametype_main( "zmeat" ); @@ -55,21 +57,19 @@ main() init_animtree(); } -onprecachegametype() +onprecachegametype() //checked changed to match cerberus output { level thread maps/mp/zombies/_zm_game_module_meat_utility::init_item_meat( "zmeat" ); maps/mp/gametypes_zm/_zm_gametype::rungametypeprecache( "zmeat" ); game_mode_objects = getstructarray( "game_mode_object", "targetname" ); meat_objects = getstructarray( "meat_object", "targetname" ); all_structs = arraycombine( game_mode_objects, meat_objects, 1, 0 ); - i = 0; - while ( i < all_structs.size ) + for ( i = 0; i < all_structs.size; i++ ) { if ( isDefined( all_structs[ i ].script_parameters ) ) { precachemodel( all_structs[ i ].script_parameters ); } - i++; } precacheshellshock( "grief_stab_zm" ); precacheitem( "minigun_zm" ); @@ -81,7 +81,7 @@ onprecachegametype() precachemodel( "p6_zm_sign_meat_01_step4" ); } -meat_hub_start_func() +meat_hub_start_func() //checked changed to match cerberus output { level thread meat_player_initial_spawn(); level thread item_meat_reset( level._meat_start_point ); @@ -103,9 +103,9 @@ meat_hub_start_func() level._get_game_module_players = ::get_game_module_players; level.powerup_drop_count = 0; level.meat_spawners = level.zombie_spawners; - if ( isDefined( level._meat_callback_initialized ) && !level._meat_callback_initialized ) + if ( !is_true( level._meat_callback_initialized ) ) { - maps/mp/zombies/_zm::register_player_damage_callback( ::maps/mp/zombies/_zm_game_module::damage_callback_no_pvp_damage ); + maps/mp/zombies/_zm::register_player_damage_callback( maps/mp/zombies/_zm_game_module::damage_callback_no_pvp_damage ); level._meat_callback_initialized = 1; } setmatchtalkflag( "DeadChatWithDead", 1 ); @@ -118,11 +118,9 @@ meat_hub_start_func() level thread zmbmusicsetupmeat(); level.zombie_spawn_fx = level._effect[ "spawn_cloud" ]; weapon_spawns = getentarray( "weapon_upgrade", "targetname" ); - i = 0; - while ( i < weapon_spawns.size ) + for ( i = 0; i < weapon_spawns.size; i++ ) { weapon_spawns[ i ] trigger_off(); - i++; } level thread monitor_meat_on_side(); level thread item_meat_watch_for_throw(); @@ -134,15 +132,17 @@ meat_hub_start_func() level.team_b_downed = 0; } -meat_on_player_connect() +meat_on_player_connect() //checked matches cerberus output { hotjoined = flag( "initial_players_connected" ); self thread spawn_player_meat_manager(); self thread wait_for_player_disconnect(); self thread wait_for_player_downed(); + /* /# self thread watch_debug_input(); #/ + */ if ( hotjoined ) { one = 1; @@ -175,7 +175,7 @@ meat_on_player_connect() } } -meat_on_player_disconnect() +meat_on_player_disconnect() //checked changed to match cerberus output { team0 = 1; team1 = 2; @@ -183,11 +183,9 @@ meat_on_player_disconnect() team_counts[ team0 ] = 0; team_counts[ team1 ] = 0; players = get_players(); - i = 0; - while ( i < players.size ) + for ( i = 0; i < players.size; i++ ) { team_counts[ players[ i ]._meat_team ] += 1; - i++; } if ( team_counts[ team0 ] == 0 ) { @@ -199,15 +197,16 @@ meat_on_player_disconnect() } } -wait_for_player_disconnect() +wait_for_player_disconnect() //checked matches cerberus output { level endon( "end_game" ); self waittill( "disconnect" ); meat_on_player_disconnect(); } -watch_debug_input() +watch_debug_input() //dev call didn't check { + /* /# self endon( "disconnect" ); for ( ;; ) @@ -223,9 +222,10 @@ watch_debug_input() wait 0,05; #/ } + */ } -zmbmusicsetupmeat() +zmbmusicsetupmeat() //checked matches cerberus output { level thread maps/mp/zombies/_zm_audio::setupmusicstate( "waiting", "ENC_WAITING", 0, 0, 0, undefined ); level thread maps/mp/zombies/_zm_audio::setupmusicstate( "round_start", "ENC_ROUND_START", 0, 0, 0, undefined ); @@ -234,7 +234,7 @@ zmbmusicsetupmeat() level thread maps/mp/zombies/_zm_audio::setupmusicstate( "match_over", "ENC_MATCH_OVER", 0, 0, 0, undefined ); } -monitor_meat_on_side() +monitor_meat_on_side() //checked changed to match cerberus output { level endon( "meat_end" ); level waittill( "meat_grabbed" ); @@ -246,54 +246,25 @@ monitor_meat_on_side() { if ( !isDefined( level._meat_team_1_volume ) || !isDefined( level._meat_team_2_volume ) ) { - iprintlnbold( "BUG: There is something wrong with the team volumes" ); + //iprintlnbold( "BUG: There is something wrong with the team volumes" ); } if ( isDefined( level._meat_team_1_volume ) && level.item_meat istouching( level._meat_team_1_volume ) ) { level._meat_on_team = 1; level.meat_lost_time = undefined; } - else + else if ( isDefined( level._meat_team_2_volume ) && level.item_meat istouching( level._meat_team_2_volume ) ) { - if ( isDefined( level._meat_team_2_volume ) && level.item_meat istouching( level._meat_team_2_volume ) ) - { - level._meat_on_team = 2; - level.meat_lost_time = undefined; - break; - } - else - { - if ( isDefined( last_team ) ) - { - if ( !isDefined( level.meat_lost_time ) ) - { - level.meat_lost_time = getTime(); - break; - } - else - { - if ( ( getTime() - level.meat_lost_time ) > level.meat_lost_time_limit ) - { - add_meat_event( "level_lost_meat" ); - level thread item_meat_reset( level._meat_start_point, 1 ); - level.meat_lost_time = undefined; - level waittill( "meat_grabbed" ); - } - } - } - } + level._meat_on_team = 2; + level.meat_lost_time = undefined; } - } - else player_with_meat = get_player_with_meat(); - if ( !isDefined( player_with_meat ) ) - { - if ( !isDefined( level.meat_lost_time ) ) + else if ( isDefined( last_team ) ) { - level.meat_lost_time = getTime(); - } - else - { - if ( ( getTime() - level.meat_lost_time ) > level.meat_lost_time_limit ) + if ( !isDefined( level.meat_lost_time ) ) + { + level.meat_lost_time = getTime(); + } + else if ( ( getTime() - level.meat_lost_time ) > level.meat_lost_time_limit ) { add_meat_event( "level_lost_meat" ); level thread item_meat_reset( level._meat_start_point, 1 ); @@ -302,83 +273,103 @@ monitor_meat_on_side() } } } - else + else { - level.meat_lost_time = undefined; + player_with_meat = get_player_with_meat(); + if ( !isDefined( player_with_meat ) ) + { + if ( !isDefined( level.meat_lost_time ) ) + { + level.meat_lost_time = getTime(); + } + else if ( ( getTime() - level.meat_lost_time ) > level.meat_lost_time_limit ) + { + add_meat_event( "level_lost_meat" ); + level thread item_meat_reset( level._meat_start_point, 1 ); + level.meat_lost_time = undefined; + level waittill( "meat_grabbed" ); + } + } + else + { + level.meat_lost_time = undefined; + } } + if ( isDefined( level._meat_on_team ) && isDefined( last_team ) && level._meat_on_team != last_team ) { level notify( "clear_ignore_all" ); add_meat_event( "level_meat_team", level._meat_on_team ); last_team = level._meat_on_team; assign_meat_to_team( undefined, level._meat_on_team ); + /* /# if ( isDefined( level.item_meat ) ) { playfx( level._effect[ "spawn_cloud" ], level.item_meat.origin ); #/ } + */ } - wait 0,05; + wait 0.05; } } -item_meat_watch_for_throw() +item_meat_watch_for_throw() //checked changed to match beta dump { level endon( "meat_end" ); for ( ;; ) { level waittill( "meat_thrown", who ); add_meat_event( "player_thrown", who ); - if ( isDefined( who._spawning_meat ) && who._spawning_meat ) + if ( is_true( who._spawning_meat ) ) { continue; } - else + if ( randomintrange( 1, 101 ) <= 10 ) { - if ( randomintrange( 1, 101 ) <= 10 ) - { - } - who._has_meat = 0; - if ( isDefined( who._has_meat_hud ) ) - { - who._has_meat_hud destroy(); - } - assign_meat_to_team( undefined, level._meat_on_team ); } + who._has_meat = 0; + if ( isDefined( who._has_meat_hud ) ) + { + who._has_meat_hud destroy(); + } + assign_meat_to_team( undefined, level._meat_on_team ); } } -hold_meat_monitor() +hold_meat_monitor() //checked changed to match beta dump { level endon( "meat_end" ); level waittill( "meat_grabbed" ); while ( 1 ) { player = get_player_with_meat(); - while ( !isDefined( player ) ) + if ( !isDefined( player ) ) { - wait 0,2; + wait 0.2; + continue; } - while ( !should_try_to_bring_back_teammate( player._meat_team ) ) + if ( !should_try_to_bring_back_teammate( player._meat_team ) ) { - wait 0,2; + wait 0.2; + continue; } - if ( isDefined( player._bringing_back_teammate ) && !player._bringing_back_teammate ) + if ( !is_true( player._bringing_back_teammate ) ) { player thread bring_back_teammate_progress(); } - wait 0,2; + wait 0.2; } } -meat_zombie_post_spawn_init() +meat_zombie_post_spawn_init() //checked matches cerberus output { } -create_item_meat_watcher() +create_item_meat_watcher() //checked matches cerberus output { - wait 0,05; + wait 0.05; watcher = self maps/mp/gametypes_zm/_weaponobjects::createuseweaponobjectwatcher( "item_meat", get_gamemode_var( "item_meat_name" ), self.team ); watcher.pickup = ::item_meat_on_pickup; watcher.onspawn = ::item_meat_spawned; @@ -386,21 +377,21 @@ create_item_meat_watcher() watcher.headicon = 0; } -item_meat_spawned( unused0, unused1 ) +item_meat_spawned( unused0, unused1 ) //checked matches cerberus output { maps/mp/gametypes_zm/_weaponobjects::voidonspawn( unused0, unused1 ); self.meat_is_moving = 0; self.meat_is_flying = 0; } -wait_for_player_downed() +wait_for_player_downed() //checked matches cerberus output { self endon( "disconnect" ); while ( isDefined( self ) ) { self waittill_any( "player_downed", "fake_death", "death" ); add_meat_event( "player_down", self ); - wait 0,1; + wait 0.1; if ( isDefined( self._meat_team ) ) { self thread watch_save_player(); @@ -412,14 +403,14 @@ wait_for_player_downed() } } -item_meat_watch_stationary() +item_meat_watch_stationary() //checked changed to match beta dump { self endon( "death" ); self endon( "picked_up" ); self.meat_is_moving = 1; self waittill( "stationary" ); self playloopsound( "zmb_meat_looper", 2 ); - if ( isDefined( self._fake_meat ) && !self._fake_meat ) + if ( !is_true( self._fake_meat ) ) { add_meat_event( "meat_stationary", self ); } @@ -427,39 +418,34 @@ item_meat_watch_stationary() { add_meat_event( "fake_meat_stationary", self ); } - if ( isDefined( self._fake_meat ) && !self._fake_meat ) + if ( !is_true( self._fake_meat ) ) { level._meat_moving = 0; level._meat_splitter_activated = 0; level._last_person_to_throw_meat = undefined; } self.meat_is_moving = 0; - while ( isDefined( level._meat_on_team ) ) + if ( isDefined( level._meat_on_team ) ) { teamplayers = get_players_on_meat_team( level._meat_on_team ); - i = 0; - while ( i < teamplayers.size ) + for ( i = 0; i < teamplayers.size; i++ ) { if ( isDefined( teamplayers[ i ] ) && isDefined( teamplayers[ i ]._encounters_team ) ) { level thread maps/mp/zombies/_zm_audio_announcer::leaderdialog( "meat_land", teamplayers[ i ]._encounters_team ); - return; - } - else - { - i++; + break; } } } } -item_meat_watch_bounce() +item_meat_watch_bounce() //checked changed to match beta dump { self endon( "death" ); self endon( "picked_up" ); self.meat_is_flying = 1; self waittill( "grenade_bounce", pos, normal, ent ); - if ( isDefined( self._fake_meat ) && !self._fake_meat ) + if ( !is_true( self._fake_meat ) ) { add_meat_event( "meat_bounce", self, pos, normal, ent ); } @@ -489,7 +475,7 @@ item_meat_watch_bounce() playfxontag( level._effect[ "meat_marker" ], self, "tag_origin" ); } -watch_for_roll() +watch_for_roll() //checked matches cerberus output { self endon( "stationary" ); self endon( "death" ); @@ -507,20 +493,22 @@ watch_for_roll() } } -stop_rolling() +stop_rolling() //checked matches cerberus output { self.origin = self.origin; self.angles = self.angles; } -hit_player_with_meat( hit_player ) +hit_player_with_meat( hit_player ) //checked matches cerberus output { + /* /# println( "MEAT: Player " + self.name + " hit " + hit_player.name + " with the meat\n" ); #/ + */ } -item_meat_pickup() +item_meat_pickup() //checked matches cerberus output { self.meat_is_moving = 0; self.meat_is_flying = 0; @@ -529,7 +517,7 @@ item_meat_pickup() self notify( "picked_up" ); } -player_wait_take_meat( meat_name ) +player_wait_take_meat( meat_name ) //checked matches cerberus output { self.dont_touch_the_meat = 1; if ( isDefined( self.pre_meat_weapon ) && self hasweapon( self.pre_meat_weapon ) ) @@ -545,9 +533,11 @@ player_wait_take_meat( meat_name ) } else { + /* /# assert( 0, "Player has no weapon" ); #/ + */ self maps/mp/zombies/_zm_weapons::give_fallback_weapon(); } } @@ -561,7 +551,7 @@ player_wait_take_meat( meat_name ) self.dont_touch_the_meat = 0; } -cleanup_meat() +cleanup_meat() //checked matches cerberus output { if ( isDefined( self.altmodel ) ) { @@ -570,12 +560,12 @@ cleanup_meat() self delete(); } -init_animtree() +init_animtree() //checked matches cerberus output { scriptmodelsuseanimtree( -1 ); } -animate_meat( grenade ) +animate_meat( grenade ) //checked matches cerberus output { grenade waittill_any( "bounce", "stationary", "death" ); waittillframeend; @@ -591,7 +581,7 @@ animate_meat( grenade ) grenade.altmodel = altmodel; while ( isDefined( grenade ) ) { - wait 0,05; + wait 0.05; } if ( isDefined( altmodel ) ) { @@ -600,34 +590,32 @@ animate_meat( grenade ) } } -indexinarray( array, value ) +indexinarray( array, value ) //checked partially changed to match cerberus output changed at own discretion { - if ( isDefined( array ) && isarray( array ) || !isDefined( value ) && !isinarray( array, value ) ) + if ( isDefined( array ) || isarray( array ) || !isDefined( value ) || !isinarray( array, value ) ) { return undefined; } - _a686 = array; - index = getFirstArrayKey( _a686 ); - while ( isDefined( index ) ) + index = 0; + foreach ( item in array ) { - item = _a686[ index ]; if ( item == value ) { return index; } - index = getNextArrayKey( _a686, index ); + index++; } return undefined; } -item_meat_on_spawn_retrieve_trigger( watcher, player, weaponname ) +item_meat_on_spawn_retrieve_trigger( watcher, player, weaponname ) //checked changed to match beta dump { self endon( "death" ); add_meat_event( "meat_spawn", self ); thread animate_meat( self ); - while ( isDefined( level.splitting_meat ) && level.splitting_meat ) + while ( is_true( level.splitting_meat ) ) { - wait 0,15; + wait 0.15; } if ( isDefined( player ) ) { @@ -637,7 +625,7 @@ item_meat_on_spawn_retrieve_trigger( watcher, player, weaponname ) self.oldangles = self.angles; if ( player hasweapon( weaponname ) ) { - if ( isDefined( self._fake_meat ) && !self._fake_meat ) + if ( !is_true( self._fake_meat ) ) { player thread player_wait_take_meat( weaponname ); } @@ -647,17 +635,17 @@ item_meat_on_spawn_retrieve_trigger( watcher, player, weaponname ) player decrement_is_drinking(); } } - if ( isDefined( self._fake_meat ) && !self._fake_meat ) + if ( !is_true( self._fake_meat ) ) { - if ( isDefined( self._respawned_meat ) && !self._respawned_meat ) + if ( !is_true( self._respawned_meat ) ) { - level notify( "meat_thrown" ); + level notify( "meat_thrown", player ); level._last_person_to_throw_meat = player; level._last_person_to_throw_meat_time = getTime(); } } } - if ( isDefined( self._fake_meat ) && !self._fake_meat ) + if ( !is_true( self._fake_meat ) ) { level._meat_moving = 1; if ( isDefined( level.item_meat ) && level.item_meat != self ) @@ -681,7 +669,7 @@ item_meat_on_spawn_retrieve_trigger( watcher, player, weaponname ) { self.meat_id = 0; } - if ( isDefined( level.dont_allow_meat_interaction ) && level.dont_allow_meat_interaction ) + if ( is_true( level.dont_allow_meat_interaction ) ) { self.item_meat_pick_up_trigger setinvisibletoall(); } @@ -694,31 +682,27 @@ item_meat_on_spawn_retrieve_trigger( watcher, player, weaponname ) self._respawned_meat = undefined; } -last_stand_meat_nudge() +last_stand_meat_nudge() //checked changed to match cerberus output { level endon( "meat_grabbed" ); level endon( "end_meat" ); self endon( "death" ); - wait 0,15; + wait 0.15; while ( 1 ) { players = get_players(); - _a789 = players; - _k789 = getFirstArrayKey( _a789 ); - while ( isDefined( _k789 ) ) + foreach ( player in players ) { - player = _a789[ _k789 ]; if ( distancesquared( player.origin, self.origin ) < 2304 && player maps/mp/zombies/_zm_laststand::player_is_in_laststand() ) { player thread kick_the_meat( self, 1 ); } - _k789 = getNextArrayKey( _a789, _k789 ); } - wait 0,05; + wait 0.05; } } -kick_meat_monitor() +kick_meat_monitor() //checked partially changed to match cerberus output see info.md { level endon( "meat_grabbed" ); level endon( "end_meat" ); @@ -728,11 +712,8 @@ kick_meat_monitor() { players = get_players(); curr_time = getTime(); - _a813 = players; - _k813 = getFirstArrayKey( _a813 ); - while ( isDefined( _k813 ) ) + foreach ( player in players ) { - player = _a813[ _k813 ]; if ( isDefined( level._last_person_to_throw_meat ) && player == level._last_person_to_throw_meat && ( curr_time - level._last_person_to_throw_meat_time ) <= kick_meat_timeout ) { } @@ -747,20 +728,23 @@ kick_meat_monitor() } } } - _k813 = getNextArrayKey( _a813, _k813 ); } - wait 0,05; + wait 0.05; } } -is_meat( weapon ) +is_meat( weapon ) //checked changed at own discretion { - return weapon == get_gamemode_var( "item_meat_name" ); + if ( weapon == get_gamemode_var( "item_meat_name" ) ) + { + return 1; + } + return 0; } -spike_the_meat( meat ) +spike_the_meat( meat ) //checked changed to match beta dump { - if ( isDefined( self._kicking_meat ) && self._kicking_meat ) + if ( is_true( self._kicking_meat ) ) { return; } @@ -769,7 +753,7 @@ spike_the_meat( meat ) self._spawning_meat = 1; org = self getweaponmuzzlepoint(); vel = meat getvelocity(); - if ( isDefined( meat._fake_meat ) && !meat._fake_meat ) + if ( !is_true( meat._fake_meat ) ) { meat cleanup_meat(); level._last_person_to_throw_meat = self; @@ -784,7 +768,7 @@ spike_the_meat( meat ) kickangles = self.angles; kickangles += ( randomfloatrange( -30, -20 ), randomfloatrange( -5, 5 ), 0 ); launchdir = anglesToForward( kickangles ); - speed = length( vel ) * 1,5; + speed = length( vel ) * 1.5; launchvel = vectorScale( launchdir, speed ); grenade = self magicgrenadetype( get_gamemode_var( "item_meat_name" ), org, ( launchvel[ 0 ], launchvel[ 1 ], 380 ) ); grenade playsound( "zmb_meat_meat_tossed" ); @@ -795,17 +779,17 @@ spike_the_meat( meat ) grenade thread delete_on_real_meat_pickup(); level._kicked_meat = grenade; } - wait 0,1; + wait 0.1; self._spawning_meat = 0; self._kicking_meat = 0; if ( !fake_meat ) { - level notify( "meat_thrown" ); + level notify( "meat_thrown", self ); level notify( "meat_kicked" ); } } -show_meat_throw_hint() +show_meat_throw_hint() //checked matches cerberus output { level endon( "meat_thrown" ); self endon( "player_downed" ); @@ -815,7 +799,7 @@ show_meat_throw_hint() self thread meat_screen_message_delete(); } -meat_create_hint_message( string_message_1, string_message_2, string_message_3, n_offset_y ) +meat_create_hint_message( string_message_1, string_message_2, string_message_3, n_offset_y ) //checked changed to match cerberus output { if ( !isDefined( n_offset_y ) ) { @@ -826,15 +810,15 @@ meat_create_hint_message( string_message_1, string_message_2, string_message_3, self._screen_message_1 = newclienthudelem( self ); self._screen_message_1.elemtype = "font"; self._screen_message_1.font = "objective"; - self._screen_message_1.fontscale = 1,8; + self._screen_message_1.fontscale = 1.8; self._screen_message_1.horzalign = "center"; self._screen_message_1.vertalign = "middle"; self._screen_message_1.alignx = "center"; self._screen_message_1.aligny = "middle"; self._screen_message_1.y = -60 + n_offset_y; self._screen_message_1.sort = 2; - self._screen_message_1.color = ( 0, 0, 0 ); - self._screen_message_1.alpha = 0,7; + self._screen_message_1.color = ( 1, 1, 1 ); + self._screen_message_1.alpha = 0.7; self._screen_message_1.hidewheninmenu = 1; } self._screen_message_1 settext( string_message_1 ); @@ -845,25 +829,22 @@ meat_create_hint_message( string_message_1, string_message_2, string_message_3, self._screen_message_2 = newclienthudelem( self ); self._screen_message_2.elemtype = "font"; self._screen_message_2.font = "objective"; - self._screen_message_2.fontscale = 1,8; + self._screen_message_2.fontscale = 1.8; self._screen_message_2.horzalign = "center"; self._screen_message_2.vertalign = "middle"; self._screen_message_2.alignx = "center"; self._screen_message_2.aligny = "middle"; self._screen_message_2.y = -33 + n_offset_y; self._screen_message_2.sort = 2; - self._screen_message_2.color = ( 0, 0, 0 ); - self._screen_message_2.alpha = 0,7; + self._screen_message_2.color = ( 1, 1, 1 ); + self._screen_message_2.alpha = 0.7; self._screen_message_2.hidewheninmenu = 1; } level._screen_message_2 settext( string_message_2 ); } - else + else if ( isDefined( self._screen_message_2 ) ) { - if ( isDefined( self._screen_message_2 ) ) - { - self._screen_message_2 destroy(); - } + self._screen_message_2 destroy(); } if ( isDefined( string_message_3 ) ) { @@ -872,29 +853,26 @@ meat_create_hint_message( string_message_1, string_message_2, string_message_3, self._screen_message_3 = newclienthudelem( self ); self._screen_message_3.elemtype = "font"; self._screen_message_3.font = "objective"; - self._screen_message_3.fontscale = 1,8; + self._screen_message_3.fontscale = 1.8; self._screen_message_3.horzalign = "center"; self._screen_message_3.vertalign = "middle"; self._screen_message_3.alignx = "center"; self._screen_message_3.aligny = "middle"; self._screen_message_3.y = -6 + n_offset_y; self._screen_message_3.sort = 2; - self._screen_message_3.color = ( 0, 0, 0 ); - self._screen_message_3.alpha = 0,7; + self._screen_message_3.color = ( 1, 1, 1 ); + self._screen_message_3.alpha = 0.7; self._screen_message_3.hidewheninmenu = 1; } self._screen_message_3 settext( string_message_3 ); } - else + else if ( isDefined( self._screen_message_3 ) ) { - if ( isDefined( self._screen_message_3 ) ) - { - self._screen_message_3 destroy(); - } + self._screen_message_3 destroy(); } } -meat_screen_message_delete() +meat_screen_message_delete() //checked matches cerberus output { self endon( "disconnect" ); level waittill_notify_or_timeout( "meat_thrown", 5 ); @@ -912,7 +890,7 @@ meat_screen_message_delete() } } -meat_screen_message_delete_on_death() +meat_screen_message_delete_on_death() //checked matches cerberus output { level endon( "meat_thrown" ); self endon( "disconnect" ); @@ -931,52 +909,44 @@ meat_screen_message_delete_on_death() } } -set_ignore_all() +set_ignore_all() //checked changed to match beta dump { level endon( "clear_ignore_all" ); - if ( isDefined( level._zombies_ignoring_all ) && level._zombies_ignoring_all ) + if ( is_true( level._zombies_ignoring_all ) ) { return; } level._zombies_ignoring_all = 1; zombies = getaiarray( level.zombie_team ); - _a1051 = zombies; - _k1051 = getFirstArrayKey( _a1051 ); - while ( isDefined( _k1051 ) ) + foreach ( zombie in zombies ) { - zombie = _a1051[ _k1051 ]; if ( isDefined( zombie ) ) { zombie.ignoreall = 1; } - _k1051 = getNextArrayKey( _a1051, _k1051 ); } - wait 0,5; + wait 0.5; clear_ignore_all(); } -clear_ignore_all() +clear_ignore_all() //checked changed to match beta dump { - if ( isDefined( level._zombies_ignoring_all ) && !level._zombies_ignoring_all ) + if ( !is_true( level._zombies_ignoring_all ) ) { return; } zombies = getaiarray( level.zombie_team ); - _a1070 = zombies; - _k1070 = getFirstArrayKey( _a1070 ); - while ( isDefined( _k1070 ) ) + foreach ( zombie in zombies ) { - zombie = _a1070[ _k1070 ]; if ( isDefined( zombie ) ) { zombie.ignoreall = 0; } - _k1070 = getNextArrayKey( _a1070, _k1070 ); } level._zombies_ignoring_all = 0; } -bring_back_teammate_progress() +bring_back_teammate_progress() //checked matches cerberus output { self notify( "bring_back_teammate_progress" ); self endon( "bring_back_teammate_progress" ); @@ -990,7 +960,7 @@ bring_back_teammate_progress() if ( !isDefined( player.revive_team_progressbar ) ) { player.revive_team_progressbar = player createprimaryprogressbar(); - player.revive_team_progressbar updatebar( 0,01, 1 / revivetime ); + player.revive_team_progressbar updatebar( 0.01, 1 / revivetime ); player.revive_team_progressbar.progresstext = player createprimaryprogressbartext(); player.revive_team_progressbar.progresstext settext( &"ZOMBIE_MEAT_RESPAWN_TEAMMATE" ); player thread destroy_revive_progress_on_downed(); @@ -1004,59 +974,52 @@ bring_back_teammate_progress() player._bringing_back_teammate = 0; progress = -1; } - wait 0,1; + wait 0.1; } player._bringing_back_teammate = 0; player destroy_revive_progress(); } -should_try_to_bring_back_teammate( team ) +should_try_to_bring_back_teammate( team ) //checked changed to match cerberus output { players = get_players(); - i = 0; - while ( i < players.size ) + for ( i = 0; i < players.size; i++ ) { if ( players[ i ]._meat_team == team && players[ i ].sessionstate == "spectator" ) { return 1; } - i++; } return 0; } -bring_back_dead_teammate( team ) +bring_back_dead_teammate( team ) //checked changed to match cerberus output { players = get_players(); - i = 0; - while ( i < players.size ) + for ( i = 0; i < players.size; i++ ) { if ( players[ i ]._meat_team == team && players[ i ].sessionstate == "spectator" ) { player = players[ i ]; break; } - else - { - i++; - } } if ( !isDefined( player ) ) { return; } player playsound( level.zmb_laugh_alias ); - wait 0,25; + wait 0.25; playfx( level._effect[ "poltergeist" ], player.spectator_respawn.origin ); playsoundatposition( "zmb_bolt", player.spectator_respawn.origin ); - earthquake( 0,5, 0,75, player.spectator_respawn.origin, 1000 ); + earthquake( 0.5, 0.75, player.spectator_respawn.origin, 1000 ); level.custom_spawnplayer = ::respawn_meat_player; player.pers[ "spectator_respawn" ] = player.spectator_respawn; player [[ level.spawnplayer ]](); level.custom_spawnplayer = undefined; } -respawn_meat_player() +respawn_meat_player() //checked matches cerberus output { spawnpoint = self maps/mp/gametypes_zm/_globallogic_score::getpersstat( "meat_spectator_respawn" ); self spawn( spawnpoint.origin, spawnpoint.angles ); @@ -1071,7 +1034,7 @@ respawn_meat_player() self.ignoreme = 0; } -destroy_revive_progress_on_downed() +destroy_revive_progress_on_downed() //checked matches cerberus output { level endon( "end_game" ); level endon( "meat_end" ); @@ -1079,7 +1042,7 @@ destroy_revive_progress_on_downed() self destroy_revive_progress(); } -destroy_revive_progress() +destroy_revive_progress() //checked matches cerberus output { if ( isDefined( self.revive_team_progressbar ) ) { @@ -1088,9 +1051,9 @@ destroy_revive_progress() } } -kick_the_meat( meat, laststand_nudge ) +kick_the_meat( meat, laststand_nudge ) //checked changed to match beta dump { - if ( isDefined( self._kicking_meat ) && self._kicking_meat ) + if ( is_true( self._kicking_meat ) ) { return; } @@ -1098,7 +1061,7 @@ kick_the_meat( meat, laststand_nudge ) self._kicking_meat = 1; self._spawning_meat = 1; org = meat.origin; - if ( isDefined( meat._fake_meat ) && !meat._fake_meat ) + if ( !is_true( meat._fake_meat ) ) { meat cleanup_meat(); level._last_person_to_throw_meat = self; @@ -1114,9 +1077,9 @@ kick_the_meat( meat, laststand_nudge ) kickangles += ( randomfloatrange( -30, -20 ), randomfloatrange( -5, 5 ), 0 ); launchdir = anglesToForward( kickangles ); vel = self getvelocity(); - speed = length( vel ) * 1,5; + speed = length( vel ) * 1.5; height_boost = 380; - if ( isDefined( laststand_nudge ) && laststand_nudge ) + if ( is_true( laststand_nudge ) ) { if ( vel == ( 0, 0, 0 ) ) { @@ -1135,19 +1098,19 @@ kick_the_meat( meat, laststand_nudge ) grenade thread delete_on_real_meat_pickup(); level._kicked_meat = grenade; } - wait 0,1; + wait 0.1; self._spawning_meat = 0; self._kicking_meat = 0; if ( !fake_meat ) { - level notify( "meat_thrown" ); + level notify( "meat_thrown", self ); level notify( "meat_kicked" ); } } -delete_on_real_meat_pickup() +delete_on_real_meat_pickup() //checked changed to match beta dump { - if ( isDefined( self._fake_meat ) && !self._fake_meat ) + if ( !is_true( self._fake_meat ) ) { return; } @@ -1164,12 +1127,12 @@ delete_on_real_meat_pickup() } } -play_item_meat_on_spawn_retrieve_trigger( watcher, player ) +play_item_meat_on_spawn_retrieve_trigger( watcher, player ) //checked changed to match beta dump { self item_meat_on_spawn_retrieve_trigger( watcher, player, get_gamemode_var( "item_meat_name" ) ); } -can_revive( revivee ) +can_revive( revivee ) //checked changed to match beta dump { if ( self hasweapon( get_gamemode_var( "item_meat_name" ) ) ) { @@ -1182,7 +1145,7 @@ can_revive( revivee ) return 1; } -pickup_origin() +pickup_origin() //checked matches cerberus output { origin = self get_eye(); if ( !isDefined( origin ) ) @@ -1200,7 +1163,7 @@ pickup_origin() return origin; } -can_spike_meat() +can_spike_meat() //checked matches cerberus output { if ( isDefined( level._last_person_to_throw_meat ) && self == level._last_person_to_throw_meat ) { @@ -1208,7 +1171,7 @@ can_spike_meat() } meat = level.item_meat; meat_spike_dist_sq = 4096; - meat_spike_dot = 0,1; + meat_spike_dot = 0.1; if ( isDefined( meat ) ) { view_pos = self getweaponmuzzlepoint(); @@ -1220,7 +1183,7 @@ can_spike_meat() return 0; } -start_encounters_round_logic() +start_encounters_round_logic() //checked matches cerberus output { if ( isDefined( level.flag[ "start_zombie_round_logic" ] ) ) { @@ -1233,23 +1196,21 @@ start_encounters_round_logic() } } -onstartgametype() +onstartgametype() //checked matches cerberus output { thread start_encounters_round_logic(); maps/mp/gametypes_zm/_zm_gametype::rungametypemain( "zmeat", ::meat_hub_start_func, 1 ); } -hide_non_meat_objects() +hide_non_meat_objects() //checked partially changed to match cerberus output see info.md { door_trigs = getentarray( "zombie_door", "targetname" ); - i = 0; - while ( i < door_trigs.size ) + for ( i = 0; i < door_trigs.size; i++ ) { if ( isDefined( door_trigs[ i ] ) ) { door_trigs[ i ] delete(); } - i++; } objects = getentarray(); i = 0; @@ -1260,44 +1221,39 @@ hide_non_meat_objects() i++; continue; } - else if ( objects[ i ] iszbarrier() ) + if ( objects[ i ] iszbarrier() ) { i++; continue; } - else + if ( isDefined( objects[ i ].spawnflags ) && objects[ i ].spawnflags == 1 ) { - if ( isDefined( objects[ i ].spawnflags ) && objects[ i ].spawnflags == 1 ) - { - objects[ i ] connectpaths(); - } - objects[ i ] notsolid(); - objects[ i ] hide(); + objects[ i ] connectpaths(); } + objects[ i ] notsolid(); + objects[ i ] hide(); i++; } } -is_meat_object() +is_meat_object() //checked changed to match cerberus output { if ( !isDefined( self.script_parameters ) ) { return 1; } tokens = strtok( self.script_parameters, " " ); - i = 0; - while ( i < tokens.size ) + for ( i = 0; i < tokens.size; i++ ) { if ( tokens[ i ] == "meat_remove" ) { return 0; } - i++; } return 1; } -setup_meat_world_objects() +setup_meat_world_objects() //checked partially changed to match cerberus output see info.md { objects = getentarray( level.scr_zm_map_start_location, "script_noteworthy" ); i = 0; @@ -1308,36 +1264,33 @@ setup_meat_world_objects() i++; continue; } - else if ( isDefined( objects[ i ].script_gameobjectname ) ) + if ( isDefined( objects[ i ].script_gameobjectname ) ) { i++; continue; } - else + if ( isDefined( objects[ i ].script_vector ) ) { - if ( isDefined( objects[ i ].script_vector ) ) - { - objects[ i ] moveto( objects[ i ].origin + objects[ i ].script_vector, 0,05 ); - objects[ i ] waittill( "movedone" ); - } - if ( isDefined( objects[ i ].spawnflags ) && objects[ i ].spawnflags == 1 && isDefined( level._dont_reconnect_paths ) && !level._dont_reconnect_paths ) - { - objects[ i ] disconnectpaths(); - } + objects[ i ] moveto( objects[ i ].origin + objects[ i ].script_vector, 0.05 ); + objects[ i ] waittill( "movedone" ); + } + if ( isDefined( objects[ i ].spawnflags ) && objects[ i ].spawnflags == 1 && isDefined( level._dont_reconnect_paths ) && !level._dont_reconnect_paths ) + { + objects[ i ] disconnectpaths(); } i++; } level clientnotify( "meat_" + level.scr_zm_map_start_location ); } -spawn_meat_zombies() +spawn_meat_zombies() //checked changed to match beta dump { level endon( "meat_end" ); force_riser = 0; force_chaser = 0; num = 0; max_ai_num = 15; - if ( getDvarInt( #"CD22CF55" ) > 0 ) + if ( getDvarInt( "zm_encounters_cheat" ) > 0 ) { max_ai_num = 0; } @@ -1351,15 +1304,13 @@ spawn_meat_zombies() ai = getaiarray( level.zombie_team ); if ( ai.size > max_ai_num ) { - wait 0,1; + wait 0.1; } else { if ( ( num % 2 ) == 0 ) { spawn_points = level._meat_team_1_zombie_spawn_points; - num++; - continue; } else { @@ -1372,8 +1323,7 @@ spawn_meat_zombies() startindex = randomint( spawn_points.size ); while ( !isDefined( spawn_point ) ) { - i = 0; - while ( i < spawn_points.size ) + for ( i = 0; i < spawn_points.size; i++ ) { index = ( startindex + i ) % spawn_points.size; point = spawn_points[ index ]; @@ -1386,16 +1336,12 @@ spawn_meat_zombies() players = get_players_on_meat_team( 2 ); } clear = 1; - _a1503 = players; - _k1503 = getFirstArrayKey( _a1503 ); - while ( isDefined( _k1503 ) ) + foreach ( player in players ) { - player = _a1503[ _k1503 ]; if ( distancesquared( player.origin, point.origin ) < distcheck ) { clear = 0; } - _k1503 = getNextArrayKey( _a1503, _k1503 ); } if ( clear ) { @@ -1416,7 +1362,7 @@ spawn_meat_zombies() dist /= 4; distcheck = dist * dist; } - wait 0,05; + wait 0.05; } zombie = spawn_meat_zombie( level.meat_spawners[ 0 ], "meat_zombie", spawn_point, level._meat_zombie_spawn_health ); if ( isDefined( zombie ) ) @@ -1428,17 +1374,17 @@ spawn_meat_zombies() } } -spawn_meat_zombie( spawner, target_name, spawn_point, round_number ) +spawn_meat_zombie( spawner, target_name, spawn_point, round_number ) //checked changed to match cerberus output { level endon( "meat_end" ); if ( !isDefined( spawner ) ) { - iprintlnbold( "BUG: There is something wrong with the zombie spawners" ); + //iprintlnbold( "BUG: There is something wrong with the zombie spawners" ); return; } - while ( isDefined( level._meat_zombie_spawning ) && level._meat_zombie_spawning ) + while ( is_true( level._meat_zombie_spawning ) ) { - wait 0,05; + wait 0.05; } level._meat_zombie_spawning = 1; level.zombie_spawn_locations = []; @@ -1451,14 +1397,14 @@ spawn_meat_zombie( spawner, target_name, spawn_point, round_number ) } else { - iprintlnbold( "BUG: There is something wrong with the zombie spawning" ); + //iprintlnbold( "BUG: There is something wrong with the zombie spawning" ); } spawner._spawning = undefined; level._meat_zombie_spawning = 0; return zombie; } -monitor_meat_on_team() +monitor_meat_on_team() //checked partially changed to match beta dump see info.md { level endon( "meat_end" ); while ( 1 ) @@ -1474,50 +1420,47 @@ monitor_meat_on_team() i++; continue; } + if ( players[ i ]._meat_team == level._meat_on_team ) + { + if ( players[ i ].ignoreme ) + { + players[ i ].ignoreme = 0; + } + } else { - if ( players[ i ]._meat_team == level._meat_on_team ) + if ( !players[ i ].ignoreme ) { - if ( players[ i ].ignoreme ) - { - players[ i ].ignoreme = 0; - } + players[ i ].ignoreme = 1; } - else - { - if ( !players[ i ].ignoreme ) - { - players[ i ].ignoreme = 1; - } - } - wait 0,05; } + wait 0.05; i++; } } - else i = 0; - while ( i < players.size ) + else { - if ( !isDefined( players[ i ] ) ) - { - i++; - continue; - } - else + i = 0; + while ( i < players.size ) { + if ( !isDefined( players[ i ] ) ) + { + i++; + continue; + } if ( players[ i ].ignoreme ) { players[ i ].ignoreme = 0; } - wait 0,05; + wait 0.05; + i++; } - i++; } - wait 0,1; + wait 0.1; } } -item_meat_reset( origin, immediate ) +item_meat_reset( origin, immediate ) //checked changed to match beta dump { level notify( "new_meat" ); level endon( "new_meat" ); @@ -1526,7 +1469,7 @@ item_meat_reset( origin, immediate ) level.item_meat cleanup_meat(); level.item_meat = undefined; } - if ( isDefined( immediate ) && !immediate ) + if ( !is_true( immediate ) ) { level waittill( "reset_meat" ); } @@ -1537,7 +1480,7 @@ item_meat_reset( origin, immediate ) } } -meat_player_initial_spawn() +meat_player_initial_spawn() //checked changed to match beta dump { players = get_players(); one = 1; @@ -1547,8 +1490,7 @@ meat_player_initial_spawn() one = 2; two = 1; } - i = 0; - while ( i < players.size ) + for ( i = 0; i < players.size; i++ ) { if ( get_game_var( "side_selection" ) == 1 ) { @@ -1561,13 +1503,16 @@ meat_player_initial_spawn() players[ i ]._meat_team = two; } } - else if ( players[ i ].team == "allies" ) + else { - players[ i ]._meat_team = two; - } - else - { - players[ i ]._meat_team = one; + if ( players[ i ].team == "allies" ) + { + players[ i ]._meat_team = two; + } + else + { + players[ i ]._meat_team = one; + } } if ( isDefined( level.custom_player_fake_death_cleanup ) ) { @@ -1585,16 +1530,18 @@ meat_player_initial_spawn() players[ i ]._meat_team = two; } } - else if ( players[ i ].team == "axis" ) + else { - players[ i ]._meat_team = one; - } - else - { - players[ i ]._meat_team = two; + if ( players[ i ].team == "axis" ) + { + players[ i ]._meat_team = one; + } + else + { + players[ i ]._meat_team = two; + } } players[ i ] meat_player_setup(); - i++; } waittillframeend; maps/mp/gametypes_zm/_zm_gametype::start_round(); @@ -1602,7 +1549,7 @@ meat_player_initial_spawn() award_grenades_for_team( 2 ); } -meat_player_setup() +meat_player_setup() //checked matches cerberus output { self.pers[ "zteam" ] = self._meat_team; self maps/mp/gametypes_zm/_globallogic_score::initpersstat( "encounters_team", 0 ); @@ -1628,37 +1575,39 @@ meat_player_setup() self freeze_player_controls( 1 ); } -can_touch_meat() +can_touch_meat() //checked changed to match beta dump { - if ( isDefined( self.dont_touch_the_meat ) && self.dont_touch_the_meat ) + if ( is_true( self.dont_touch_the_meat ) ) { return 0; } meat = level.item_meat; if ( isDefined( meat ) ) { - meatorg = meat.origin + vectorScale( ( 0, 0, 0 ), 8 ); + meatorg = meat.origin + vectorScale( ( 0, 0, 1 ), 8 ); trace = bullettrace( self pickup_origin(), meatorg, 0, meat ); return distancesquared( trace[ "position" ], meatorg ) < 1; } return 0; } -trying_to_use() +trying_to_use() //checked changed at own discretion { - self.use_ever_released |= !self usebuttonpressed(); - if ( self.use_ever_released ) + //self.use_ever_released |= !self usebuttonpressed(); + if ( self usebuttonpressed() ) { - return self usebuttonpressed(); + return 1; } + return 0; } -trying_to_spike( item ) +trying_to_spike( item ) //checked changed at own discretion { - if ( item.meat_is_flying ) + if ( item.meat_is_flying && self meleebuttonpressed() ) { - return self meleebuttonpressed(); + return 1; } + return 0; } item_quick_trigger( meat_id, trigger ) @@ -1675,18 +1624,16 @@ item_quick_trigger( meat_id, trigger ) } trigrad2 = radius * radius; players = get_players(); - i = 0; - while ( i < players.size ) + for ( i = 0; i < players.size; i++ ) { player = players[ i ]; player.use_ever_released = !player usebuttonpressed(); - i++; } while ( isDefined( trigger ) ) { trigorg = trigger.origin; players = get_players(); - while ( players.size ) + if ( players.size ) { random_start_point = randomint( players.size ); i = 0; @@ -1706,36 +1653,31 @@ item_quick_trigger( meat_id, trigger ) i++; continue; } - else meleeing = player ismeleeing(); - if ( isDefined( trigger ) && player istouching( trigger ) && distance2dsquared( player.origin, trigorg ) < trigrad2 && !player maps/mp/zombies/_zm_laststand::player_is_in_laststand() && !player trying_to_use() && self.meat_is_flying && meleeing && player can_touch_meat() ) + meleeing = player ismeleeing(); + //if any problems occur while compiling check here + if ( /*( player trying_to_use() || self.meat_is_flying && meleeing )*/ isDefined( trigger ) && player istouching( trigger ) && distance2dsquared( player.origin, trigorg ) < trigrad2 && !player maps/mp/zombies/_zm_laststand::player_is_in_laststand() && player can_touch_meat() ) { if ( self.meat_is_flying && meleeing ) { if ( player can_spike_meat() ) { player.trying_to_trigger_meat[ meat_id ] = 0; - trigger notify( "usetrigger" ); + trigger notify( "usetrigger", player ); } } + else if ( !is_true( player.trying_to_trigger_meat[ meat_id ] ) ) + { + player.trying_to_trigger_meat[ meat_id ] = 1; + player.trying_to_trigger_meat_time[ meat_id ] = getTime(); + } else { - if ( isDefined( player.trying_to_trigger_meat[ meat_id ] ) && !player.trying_to_trigger_meat[ meat_id ] ) + if ( ( getTime() - player.trying_to_trigger_meat_time[ meat_id ] ) >= meat_trigger_time ) { - player.trying_to_trigger_meat[ meat_id ] = 1; - player.trying_to_trigger_meat_time[ meat_id ] = getTime(); - break; - } - else - { - if ( ( getTime() - player.trying_to_trigger_meat_time[ meat_id ] ) >= meat_trigger_time ) - { - player.trying_to_trigger_meat[ meat_id ] = 0; - trigger notify( "usetrigger" ); - } + player.trying_to_trigger_meat[ meat_id ] = 0; + trigger notify( "usetrigger", player ); } } - i++; - continue; } else { @@ -1744,30 +1686,30 @@ item_quick_trigger( meat_id, trigger ) i++; } } - wait 0,05; + wait 0.05; } } -item_meat_watch_trigger( meat_id, trigger, callback, playersoundonuse, npcsoundonuse ) +item_meat_watch_trigger( meat_id, trigger, callback, playersoundonuse, npcsoundonuse ) //checked changed to match beta dump { self endon( "death" ); self thread item_quick_trigger( meat_id, trigger ); while ( 1 ) { trigger waittill( "usetrigger", player ); - while ( !isalive( player ) ) + if ( !isalive( player ) ) { continue; } - while ( !is_player_valid( player ) ) + if ( !is_player_valid( player ) ) { continue; } - while ( player has_powerup_weapon() ) + if ( player has_powerup_weapon() ) { continue; } - while ( player maps/mp/zombies/_zm_laststand::is_reviving_any() ) + if ( player maps/mp/zombies/_zm_laststand::is_reviving_any() ) { continue; } @@ -1776,28 +1718,25 @@ item_meat_watch_trigger( meat_id, trigger, callback, playersoundonuse, npcsoundo volley = player meleebuttonpressed(); } player.volley_meat = volley; - if ( isDefined( self._fake_meat ) && self._fake_meat ) + if ( is_true( self._fake_meat ) ) { add_meat_event( "player_fake_take", player, self ); } + else if ( volley ) + { + add_meat_event( "player_volley", player, self ); + break; + } + else if ( self.meat_is_moving ) + { + add_meat_event( "player_catch", player, self ); + break; + } else { - if ( volley ) - { - add_meat_event( "player_volley", player, self ); - break; - } - else if ( self.meat_is_moving ) - { - add_meat_event( "player_catch", player, self ); - break; - } - else - { - add_meat_event( "player_take", player, self ); - } + add_meat_event( "player_take", player, self ); } - if ( isDefined( self._fake_meat ) && self._fake_meat ) + if ( is_true( self._fake_meat ) ) { player playlocalsound( level.zmb_laugh_alias ); wait_network_frame(); @@ -1818,7 +1757,6 @@ item_meat_watch_trigger( meat_id, trigger, callback, playersoundonuse, npcsoundo if ( volley ) { self item_meat_volley( player ); - break; } else { @@ -1837,7 +1775,6 @@ item_meat_watch_trigger( meat_id, trigger, callback, playersoundonuse, npcsoundo if ( volley ) { player thread spike_the_meat( self ); - continue; } else { @@ -1851,34 +1788,42 @@ item_meat_watch_trigger( meat_id, trigger, callback, playersoundonuse, npcsoundo } } -item_meat_volley( player ) +item_meat_volley( player ) //checked matches cerberus output { + /* /# println( "MEAT: Spiked the meat\n" ); #/ + */ } -item_meat_caught( player, in_air ) +item_meat_caught( player, in_air ) //checked matches cerberus output { if ( in_air ) { + /* /# println( "MEAT: Caught the meat on the fly\n" ); #/ + */ } else { + /* /# println( "MEAT: Caught the meat while moving\n" ); #/ + */ } } -item_meat_on_pickup( player ) +item_meat_on_pickup( player ) //checked matches cerberus output { + /* /# assert( !player maps/mp/zombies/_zm_laststand::player_is_in_laststand(), "Player in last stand triggered meat pickup" ); #/ + */ player maps/mp/gametypes_zm/_weaponobjects::deleteweaponobjecthelper( self ); self cleanup_meat(); level.item_meat = undefined; @@ -1897,7 +1842,7 @@ item_meat_on_pickup( player ) player thread waittill_thrown(); } -waittill_thrown() +waittill_thrown() //checked matches cerberus output { self endon( "death" ); self endon( "disconnect" ); @@ -1907,7 +1852,7 @@ waittill_thrown() grenade thread waittill_loopstart(); } -waittill_loopstart() +waittill_loopstart() //checked matches cerberus output { self endon( "stationary" ); self endon( "death" ); @@ -1918,12 +1863,12 @@ waittill_loopstart() { self waittill( "grenade_bounce", pos, normal, ent ); self stopsounds(); - wait 0,05; + wait 0.05; self playsound( "zmb_meat_bounce" ); } } -item_meat_watch_shutdown() +item_meat_watch_shutdown() //checked matches cerberus output { self waittill( "death" ); if ( isDefined( self.item_meat_pick_up_trigger ) ) @@ -1933,7 +1878,7 @@ item_meat_watch_shutdown() } } -item_meat_clear() +item_meat_clear() //checked changed to match cerberus output { if ( isDefined( level.item_meat ) ) { @@ -1942,29 +1887,25 @@ item_meat_clear() } if ( isDefined( level._fake_meats ) ) { - _a2090 = level._fake_meats; - _k2090 = getFirstArrayKey( _a2090 ); - while ( isDefined( _k2090 ) ) + foreach ( meat in level._fake_meats ) { - meat = _a2090[ _k2090 ]; if ( isDefined( meat ) ) { meat cleanup_meat(); } - _k2090 = getNextArrayKey( _a2090, _k2090 ); } level._fake_meats = undefined; } } -zombie_path_timer_override() +zombie_path_timer_override() //matches cerberus output { - return getTime() + ( randomfloatrange( 0,35, 1 ) * 1000 ); + return getTime() + ( randomfloatrange( 0.35, 1 ) * 1000 ); } -meat_poi_override_func() +meat_poi_override_func() //checked changed to match beta dump { - if ( isDefined( level.item_meat ) && isDefined( level.item_meat.meat_is_moving ) && level.item_meat.meat_is_moving ) + if ( isDefined( level.item_meat ) && is_true( level.item_meat.meat_is_moving ) ) { if ( abs( level.item_meat.origin[ 2 ] - groundpos( level.item_meat.origin )[ 2 ] ) < 35 ) { @@ -1982,23 +1923,20 @@ meat_poi_override_func() return undefined; } -meat_end_match( winning_team ) +meat_end_match( winning_team ) //checked changed to match cerberus output { players = get_players(); - i = 0; - while ( i < players.size ) + for ( i = 0; i < players.size; i++ ) { if ( isDefined( players[ i ].has_minigun ) && players[ i ].has_minigun ) { primaryweapons = players[ i ] getweaponslistprimaries(); - x = 0; - while ( x < primaryweapons.size ) + for ( x = 0; x < primaryweapons.size; x++ ) { if ( primaryweapons[ x ] == "minigun_zm" ) { players[ i ] takeweapon( "minigun_zm" ); } - x++; } players[ i ] notify( "minigun_time_over" ); players[ i ].zombie_vars[ "zombie_powerup_minigun_on" ] = 0; @@ -2015,18 +1953,17 @@ meat_end_match( winning_team ) players[ i ] takeweapon( get_gamemode_var( "item_meat_name" ) ); players[ i ] decrement_is_drinking(); } - i++; } - level notify( "game_module_ended" ); - wait 0,1; + level notify( "game_module_ended", winning_team ); + wait 0.1; level delay_thread( 2, ::item_meat_clear ); - if ( isDefined( level.gameended ) && level.gameended ) + if ( is_true( level.gameended ) ) { level clientnotify( "end_meat" ); } } -updatedownedcounters() +updatedownedcounters() //checked matches cerberus output { if ( self._encounters_team == "A" ) { @@ -2042,23 +1979,21 @@ updatedownedcounters() } } -waitforrevive( team ) +waitforrevive( team ) //checked matches cerberus output { self endon( "death" ); self waittill( "player_revived" ); if ( team == "A" ) { level.team_a_downed--; - } else { level.team_b_downed--; - } } -assign_meat_to_team( player, team_num ) +assign_meat_to_team( player, team_num ) //checked partially changed to match beta dump see info.md { meat_team = undefined; players = get_players(); @@ -2072,38 +2007,29 @@ assign_meat_to_team( player, team_num ) i++; continue; } - else + if ( players[ i ] != player || is_true( player._meat_hint_shown ) ) { - if ( players[ i ] != player || isDefined( player._meat_hint_shown ) && player._meat_hint_shown ) - { - players[ i ] iprintlnbold( &"ZOMBIE_GRABBED_MEAT", player.name ); - } + players[ i ] iprintlnbold( &"ZOMBIE_GRABBED_MEAT", player.name ); } i++; } meat_team = player._meat_team; } - else + else if ( isDefined( team_num ) ) { - if ( isDefined( team_num ) ) + for ( i = 0; i < players.size; i++ ) { - i = 0; - while ( i < players.size ) + if ( players[ i ]._meat_team == team_num ) { - if ( players[ i ]._meat_team == team_num ) - { - players[ i ] iprintlnbold( &"ZOMBIE_YOUR_TEAM_MEAT" ); - i++; - continue; - } - else - { - players[ i ] iprintlnbold( &"ZOMBIE_OTHER_TEAM_MEAT" ); - } - i++; + players[ i ] iprintlnbold( &"ZOMBIE_YOUR_TEAM_MEAT" ); } - meat_team = team_num; + else + { + players[ i ] iprintlnbold( &"ZOMBIE_OTHER_TEAM_MEAT" ); + } + i++; } + meat_team = team_num; } level._meat_on_team = meat_team; teamplayers = get_players_on_meat_team( meat_team ); @@ -2131,7 +2057,7 @@ assign_meat_to_team( player, team_num ) i++; continue; } - else if ( isDefined( player ) && players[ i ] == player ) + if ( isDefined( player ) && players[ i ] == player ) { if ( isDefined( players[ i ]._has_meat ) && players[ i ]._has_meat ) { @@ -2148,11 +2074,12 @@ assign_meat_to_team( player, team_num ) continue; } } + players[ i ] thread create_meat_team_hud( meat_team ); i++; } } -zmbvoxmeatonteamspecific( team ) +zmbvoxmeatonteamspecific( team ) //checked matches cerberus output { if ( !isDefined( level.zmbvoxteamlasthadmeat ) ) { @@ -2168,7 +2095,7 @@ zmbvoxmeatonteamspecific( team ) level thread maps/mp/zombies/_zm_audio_announcer::leaderdialog( "meat_grab_" + otherteam, otherteam ); } -create_meat_team_hud( meat_team, destroy_only ) +create_meat_team_hud( meat_team, destroy_only ) //checked changed to match beta dump { if ( isDefined( self._has_meat_hud ) ) { @@ -2192,8 +2119,8 @@ create_meat_team_hud( meat_team, destroy_only ) elem.y = -10; elem.foreground = 1; elem.font = "default"; - elem.fontscale = 1,4; - elem.color = vectorScale( ( 0, 0, 0 ), 0,9 ); + elem.fontscale = 1.4; + elem.color = vectorScale( ( 1, 1, 0 ), 0.9 ); elem.alpha = 1; if ( isDefined( self._meat_team ) && self._meat_team == meat_team ) { @@ -2206,7 +2133,7 @@ create_meat_team_hud( meat_team, destroy_only ) self._has_meat_hud = elem; } -create_meat_player_hud() +create_meat_player_hud() //checked changed to match beta dump { if ( isDefined( self._has_meat_hud ) ) { @@ -2222,47 +2149,44 @@ create_meat_player_hud() elem.y = -10; elem.foreground = 1; elem.font = "default"; - elem.fontscale = 1,4; - elem.color = vectorScale( ( 0, 0, 0 ), 0,9 ); + elem.fontscale = 1.4; + elem.color = vectorScale( ( 1, 1, 0 ), 0.9 ); elem.alpha = 1; elem.label = &"ZOMBIE_PLAYER_HAS_MEAT"; self._has_meat_hud = elem; } -slow_down_player_with_meat() +slow_down_player_with_meat() //checked changed to match beta dump { self endon( "disconnect" ); self setclientfield( "holding_meat", 1 ); - self setmovespeedscale( 0,6 ); + self setmovespeedscale( 0.6 ); self thread zmbvoxstartholdcounter(); - while ( isDefined( self._has_meat ) && self._has_meat ) + while ( is_true( self._has_meat ) ) { level._meat_player_tracker_origin = self.origin; - wait 0,2; + wait 0.2; } self setmovespeedscale( 1 ); self setclientfield( "holding_meat", 0 ); } -zmbvoxstartholdcounter() +zmbvoxstartholdcounter() //checked changed to match beta dump { meat_hold_counter = 0; - while ( isDefined( self._has_meat ) && self._has_meat ) + while ( is_true( self._has_meat ) ) { if ( meat_hold_counter >= 15 ) { self thread maps/mp/zombies/_zm_audio_announcer::leaderdialogonplayer( "meat_hold" ); return; } - else - { - wait 0,5; - meat_hold_counter++; - } + wait 0.5; + meat_hold_counter++; } } -reset_meat_when_player_downed() +reset_meat_when_player_downed() //checked matches cerberus output { self notify( "reset_downed" ); self endon( "reset_downed" ); @@ -2275,20 +2199,20 @@ reset_meat_when_player_downed() grenade._respawned_meat = 1; level._last_person_to_throw_meat = undefined; playsoundatposition( "zmb_spawn_powerup", self.origin ); - wait 0,1; + wait 0.1; self._spawning_meat = undefined; level notify( "meat_reset" ); } -meat_last_stand_callback( einflictor, attacker, idamage, smeansofdeath, sweapon, vdir, shitloc, psoffsettime, deathanimduration ) +meat_last_stand_callback( einflictor, attacker, idamage, smeansofdeath, sweapon, vdir, shitloc, psoffsettime, deathanimduration ) //checked matches cerberus output { - if ( isDefined( self._has_meat ) && self._has_meat ) + if ( is_true( self._has_meat ) ) { level thread item_meat_drop( self.origin, self._meat_team ); } } -reset_meat_when_player_disconnected() +reset_meat_when_player_disconnected() //checked matches cerberus output { level endon( "meat_thrown" ); level endon( "meat_reset" ); @@ -2298,7 +2222,7 @@ reset_meat_when_player_disconnected() level thread item_meat_drop( level._meat_player_tracker_origin, team ); } -item_meat_drop( org, team ) +item_meat_drop( org, team ) //checked matches cerberus output { players = get_alive_players_on_meat_team( team ); if ( players.size > 0 ) @@ -2310,39 +2234,37 @@ item_meat_drop( org, team ) grenade._respawned_meat = 1; level._last_person_to_throw_meat = undefined; playsoundatposition( "zmb_spawn_powerup", grenade.origin ); - wait 0,1; + wait 0.1; player._spawning_meat = undefined; level notify( "meat_reset" ); } } -player_has_meat( player ) +player_has_meat( player ) //checked matches cerberus output { return player getcurrentweapon() == get_gamemode_var( "item_meat_name" ); } -get_player_with_meat() +get_player_with_meat() //checked changed to match cerberus output { players = get_players(); - i = 0; - while ( i < players.size ) + for ( i = 0; i < players.size; i++ ) { if ( isDefined( players[ i ]._has_meat ) && players[ i ]._has_meat ) { return players[ i ]; } - i++; } return undefined; } -spawn_player_meat_manager() +spawn_player_meat_manager() //checked matches cerberus output { self thread player_watch_weapon_change(); self thread player_watch_grenade_throw(); } -player_watch_weapon_change() +player_watch_weapon_change() //checked changed to match cerberus output { self endon( "death_or_disconnect" ); for ( ;; ) @@ -2353,14 +2275,11 @@ player_watch_weapon_change() add_meat_event( "player_meat", self ); continue; } - else - { - add_meat_event( "player_no_meat", self ); - } + add_meat_event( "player_no_meat", self ); } } -player_watch_grenade_throw() +player_watch_grenade_throw() //checked matches cerberus output { self endon( "death_or_disconnect" ); for ( ;; ) @@ -2374,17 +2293,20 @@ player_watch_grenade_throw() } } -spawn_level_meat_manager() +spawn_level_meat_manager() //dev call didn't check { + /* /# level.meat_manager = spawnstruct(); level.meat_manager.events = []; level.meat_manager thread handle_meat_events(); #/ + */ } -add_meat_event( e, p1, p2, p3, p4 ) +add_meat_event( e, p1, p2, p3, p4 ) //dev call didn't check { + /* /# event = spawnstruct(); event.e = e; @@ -2415,9 +2337,10 @@ add_meat_event( e, p1, p2, p3, p4 ) level.meat_manager.events[ level.meat_manager.events.size ] = event; #/ } + */ } -handle_meat_events() +handle_meat_events() //checked matches cerberus output { while ( 1 ) { @@ -2426,12 +2349,13 @@ handle_meat_events() self handle_meat_event( self.events[ 0 ] ); arrayremoveindex( self.events, 0 ); } - wait 0,05; + wait 0.05; } } -paramstr( param ) +paramstr( param ) //dev call didn't check { + /* /# if ( !isDefined( param ) ) { @@ -2451,10 +2375,12 @@ paramstr( param ) } return ""; #/ + */ } -handle_meat_event( event ) +handle_meat_event( event ) //dev call didn't check { + /* /# estr = "ZM MEAT: [" + event.e + "]("; i = 0; @@ -2470,4 +2396,5 @@ handle_meat_event( event ) estr += ") \n"; println( estr ); #/ + */ } diff --git a/zm_transit_patch/readme.md b/zm_transit_patch/readme.md index ad5a877..7ce7fd9 100644 --- a/zm_transit_patch/readme.md +++ b/zm_transit_patch/readme.md @@ -1,6 +1,7 @@ ### The following gscs compile and run successfully with no known errors: ``` zm_transit_patch/maps/mp/gametypes_zm/zgrief.gsc +zm_transit_patch/maps/mp/gametypes_zm/zmeat.gsc zm_transit_patch/maps/mp/zm_transit_classic.gsc zm_transit_patch/maps/mp/zm_transit_utility.gsc ``` @@ -17,7 +18,6 @@ zm_transit_patch/maps/mp/zombies/_zm_weap_jetgun.gsc ### The following scripts are not checked yet, uploaded to setup a baseline: ``` -zm_transit_patch/maps/mp/gametypes_zm/zmeat.gsc zm_transit_patch/maps/mp/gametypes_zm/zstandard.gsc zm_transit_patch/maps/mp/zombies/_zm_ai_avogadro.gsc