#include maps\mp\zm_transit_lava; #include common_scripts\utility; #include maps\mp\_utility; #include maps\mp\zombies\_zm_utility; #include maps\mp\_visionset_mgr; #include maps\mp\animscripts\zm_death; player_lava_damage(trig) { self endon("zombified"); self endon("death"); self endon("disconnect"); max_dmg = 15; min_dmg = 5; burn_time = 1; if (isdefined(self.is_zombie) && self.is_zombie) return; self thread player_stop_burning(); if (isdefined(trig.script_float)) { max_dmg *= trig.script_float; min_dmg *= trig.script_float; burn_time *= trig.script_float; if (burn_time >= 1.5) burn_time = 1.5; } if (max_dmg < 15) { max_dmg = 5; } if (!isdefined(self.is_burning) && is_player_valid(self)) { self.is_burning = 1; maps\mp\_visionset_mgr::vsmgr_activate("overlay", "zm_transit_burn", self, burn_time, level.zm_transit_burn_max_duration); self notify("burned"); if (isdefined(trig.script_float) && trig.script_float >= 0.1) self thread player_burning_fx(); radiusdamage(self.origin, 10, max_dmg, min_dmg); wait 0.5; self.is_burning = undefined; } } zombie_exploding_death(zombie_dmg, trap) { self endon("stop_flame_damage"); if (isdefined(self.isdog) && self.isdog && isdefined(self.a.nodeath)) return; while (isdefined(self) && self.health >= zombie_dmg && (isdefined(self.is_on_fire) && self.is_on_fire)) wait 0.5; if (!isdefined(self) || !(isdefined(self.is_on_fire) && self.is_on_fire) || isdefined(self.damageweapon) && (self.damageweapon == "tazer_knuckles_zm" || self.damageweapon == "jetgun_zm") || isdefined(self.knuckles_extinguish_flames) && self.knuckles_extinguish_flames) return; tag = "J_SpineLower"; if (isdefined(self.animname) && self.animname == "zombie_dog") tag = "tag_origin"; if (is_mature()) { if (isdefined(level._effect["zomb_gib"])) playfx(level._effect["zomb_gib"], self gettagorigin(tag)); } else if (isdefined(level._effect["spawn_cloud"])) playfx(level._effect["spawn_cloud"], self gettagorigin(tag)); self radiusdamage(self.origin, 128, 15, 15, undefined, "MOD_EXPLOSIVE"); self ghost(); if (isdefined(self.isdog) && self.isdog) self hide(); else self delay_thread(1, ::self_delete); }