diff --git a/scripts/zm/_zm_reimagined.gsc b/scripts/zm/_zm_reimagined.gsc index ce49efe6..5d32c927 100644 --- a/scripts/zm/_zm_reimagined.gsc +++ b/scripts/zm/_zm_reimagined.gsc @@ -818,25 +818,25 @@ zone_name_hud() flag_wait("hud_visible"); vars = []; - vars["prev_zone_name"] = ""; + vars["prev_zone_name"] = &""; while (1) { player = self get_current_spectating_player(); vars["zone"] = player get_current_zone(); - vars["zone_name"] = get_zone_display_name(vars["zone"]); + vars["zone_name"] = player get_zone_display_name(vars["zone"]); if (vars["zone_name"] != vars["prev_zone_name"]) { - if (vars["prev_zone_name"] != "") + if (vars["prev_zone_name"] != &"") { self luinotifyevent(&"hud_update_zone_fade_out"); wait 0.25; } - if (vars["zone_name"] != "") + if (vars["zone_name"] != &"") { self luinotifyevent(&"hud_update_zone_fade_in", 1, vars["zone_name"]); @@ -856,14 +856,14 @@ get_zone_display_name(zone) { if (!isDefined(zone)) { - return ""; + return &""; } if (level.script == "zm_tomb") { if (isDefined(self.teleporting) && self.teleporting) { - return ""; + return &""; } } @@ -1106,6 +1106,8 @@ last_stand_restore_pistol_ammo(only_store_info = false) if (weapon == check_weapon) { + dual_wield_name = weapondualwieldweaponname(weapon); + if (self.stored_weapon_info[weapon].given_amt == 0) { self setweaponammoclip(weapon, self.stored_weapon_info[weapon].clip_amt); @@ -1118,8 +1120,6 @@ last_stand_restore_pistol_ammo(only_store_info = false) break; } - dual_wield_name = weapondualwieldweaponname(weapon); - last_clip = self getweaponammoclip(weapon); last_left_clip = 0; @@ -2118,6 +2118,11 @@ remove_buildable_pieces(buildable_name) jetgun_remove_forced_weapon_switch() { + if (!IsDefined(level.zombie_include_buildables)) + { + return; + } + foreach (buildable in level.zombie_include_buildables) { if (IsDefined(buildable.name) && buildable.name == "jetgun_zm") @@ -2752,6 +2757,8 @@ additionalprimaryweapon_update_weapon_slots() } } + weapon_slots = []; + // remove any trailing undefined slots for (i = self.weapon_slots.size - 1; i >= 0; i--) { @@ -2760,9 +2767,11 @@ additionalprimaryweapon_update_weapon_slots() break; } - arrayRemoveIndex(self.weapon_slots[i], i); + weapon_slots[i] = self.weapon_slots[i]; } + self.weapon_slots = weapon_slots; + for (i = 0; i < vars["primaries_that_can_be_taken"].size; i++) { vars["weapon"] = vars["primaries_that_can_be_taken"][i]; diff --git a/scripts/zm/replaced/_zm_buildables.gsc b/scripts/zm/replaced/_zm_buildables.gsc index 28f539a2..9dc9eaff 100644 --- a/scripts/zm/replaced/_zm_buildables.gsc +++ b/scripts/zm/replaced/_zm_buildables.gsc @@ -697,7 +697,7 @@ buildablestub_update_prompt(player) if (player has_player_equipment(self.weaponname)) { - if (self.weaponname == level.riotshield_name && player has_player_damaged_riotshield_equipped()) + if (isdefined(level.riotshield_name) && self.weaponname == level.riotshield_name && player has_player_damaged_riotshield_equipped()) { self.hint_string = &"ZOMBIE_REPAIR_RIOTSHIELD"; return true; diff --git a/scripts/zm/replaced/_zm_buildables_pooled.gsc b/scripts/zm/replaced/_zm_buildables_pooled.gsc index e556fa1e..a82b01f5 100644 --- a/scripts/zm/replaced/_zm_buildables_pooled.gsc +++ b/scripts/zm/replaced/_zm_buildables_pooled.gsc @@ -421,7 +421,12 @@ pooled_buildable_place_think() continue; } - bind_to = self.stub.buildable_pool pooledbuildable_stub_for_equipname(level.buildables_available[self.stub.buildables_available_index]); + bind_to = self.stub; + + if (isdefined(self.stub.buildables_available_index)) + { + bind_to = self.stub.buildable_pool pooledbuildable_stub_for_equipname(level.buildables_available[self.stub.buildables_available_index]); + } if (!isdefined(bind_to) || isdefined(self.stub.bound_to_buildable) && self.stub.bound_to_buildable != bind_to || isdefined(bind_to.bound_to_buildable) && self.stub != bind_to.bound_to_buildable) { diff --git a/scripts/zm/replaced/_zm_laststand.gsc b/scripts/zm/replaced/_zm_laststand.gsc index 6740d189..dcb43f07 100644 --- a/scripts/zm/replaced/_zm_laststand.gsc +++ b/scripts/zm/replaced/_zm_laststand.gsc @@ -92,7 +92,6 @@ revive_do_revive(playerbeingrevived, revivergun) self.is_reviving_any++; self thread laststand_clean_up_reviving_any(playerbeingrevived_player); self.reviveprogressbar updatebar(0.01, 1 / revivetime); - playerbeingrevived_player.beingrevivedprogressbar updatebar(0.01, 1 / revivetime); if (isDefined(playerbeingrevived_player.beingrevivedprogressbar)) { diff --git a/scripts/zm/replaced/_zm_powerups.gsc b/scripts/zm/replaced/_zm_powerups.gsc index 2bc6391b..df30f1e9 100644 --- a/scripts/zm/replaced/_zm_powerups.gsc +++ b/scripts/zm/replaced/_zm_powerups.gsc @@ -948,7 +948,7 @@ powerup_hud_monitor() { player set_clientfield_powerups(client_field_name, powerup_timer, powerup_on, flashing_timers, flashing_values); - if (isdefined(enemy_powerup_timer) && isdefined(enemy_powerup_on)) + if (isdefined(enemy_client_field_name) && isdefined(enemy_powerup_timer) && isdefined(enemy_powerup_on)) { player set_clientfield_powerups(enemy_client_field_name, enemy_powerup_timer, enemy_powerup_on, flashing_timers, flashing_values); } diff --git a/scripts/zm/replaced/_zm_score.gsc b/scripts/zm/replaced/_zm_score.gsc index 984aa4ef..eb492c3a 100644 --- a/scripts/zm/replaced/_zm_score.gsc +++ b/scripts/zm/replaced/_zm_score.gsc @@ -27,7 +27,7 @@ add_to_player_score(points, add_to_total) self incrementplayerstat("score", points); } -minus_to_player_score(points) +minus_to_player_score(points, ignore_double_points_upgrade) { if (!isDefined(points) || level.intermission) { diff --git a/scripts/zm/replaced/_zm_spawner.gsc b/scripts/zm/replaced/_zm_spawner.gsc index 845a4874..2f79cd69 100644 --- a/scripts/zm/replaced/_zm_spawner.gsc +++ b/scripts/zm/replaced/_zm_spawner.gsc @@ -560,7 +560,7 @@ zombie_can_drop_powerups(zombie) zombie_complete_emerging_into_playable_area() { - if (self.animname == "zombie" && is_true(self.has_legs)) + if (isdefined(self.animname) && self.animname == "zombie" && is_true(self.has_legs)) { self setphysparams(15, 0, 60); } diff --git a/scripts/zm/replaced/zm_highrise_elevators.gsc b/scripts/zm/replaced/zm_highrise_elevators.gsc index 0efe25bb..b8dabb18 100644 --- a/scripts/zm/replaced/zm_highrise_elevators.gsc +++ b/scripts/zm/replaced/zm_highrise_elevators.gsc @@ -366,7 +366,7 @@ elevator_roof_watcher() if (self.is_moving) self waittill_any("movedone", "forcego"); - if (self.current_level == 0) + if (self.current_level == "0") { break; // don't make climber at top level } @@ -505,7 +505,7 @@ watch_for_elevator_during_faller_spawn() } else { - if (is_true(self.zombie_faller_location.is_blocked)) + if (isdefined(self.zombie_faller_location) && is_true(self.zombie_faller_location.is_blocked)) { should_gib = 1; } diff --git a/scripts/zm/replaced/zmeat.gsc b/scripts/zm/replaced/zmeat.gsc index 4ca8fb64..a6ddecc3 100644 --- a/scripts/zm/replaced/zmeat.gsc +++ b/scripts/zm/replaced/zmeat.gsc @@ -121,8 +121,6 @@ item_meat_watch_bounce() { self waittill("grenade_bounce", pos, normal, ent); - playfxontag(level._effect["meat_marker"], self, "tag_origin"); - if (isdefined(level.meat_bounce_override)) { self thread [[level.meat_bounce_override]](pos, normal, ent, true); diff --git a/scripts/zm/zgrief/zgrief_reimagined.gsc b/scripts/zm/zgrief/zgrief_reimagined.gsc index 6285fbaf..d6cf434b 100644 --- a/scripts/zm/zgrief/zgrief_reimagined.gsc +++ b/scripts/zm/zgrief/zgrief_reimagined.gsc @@ -1617,7 +1617,7 @@ game_module_player_damage_callback(einflictor, eattacker, idamage, idflags, smea return; } - if (isDefined(eattacker.is_zombie) || eattacker.is_zombie && isplayer(eattacker)) + if (isDefined(eattacker.is_zombie) && eattacker.is_zombie || isplayer(eattacker)) { self.last_damage_from_zombie_or_player = 1; } @@ -2349,8 +2349,9 @@ save_teams_on_intermission() else { players = array_randomize(get_players()); + i = 0; - for (i = 0; i < players.size; i++) + foreach (player in players) { if (i % 2 == 0) { @@ -2360,6 +2361,8 @@ save_teams_on_intermission() { allies_guids += player getguid() + " "; } + + i++; } }