Untitled diff

Created Diff never expires
112 removals
452 lines
48 additions
386 lines
#include maps\_utility;
#include maps\_utility;
#include common_scripts\utility;
#include common_scripts\utility;
#include maps\_zombiemode_utility;
#include maps\_zombiemode_utility;
#using_animtree( "generic_human" );
#using_animtree( "generic_human" );
init()
init()
{
{
set_zombie_var( "freezegun_cylinder_radius", 120 );
set_zombie_var( "freezegun_cylinder_radius", 120 );
set_zombie_var( "freezegun_inner_range", 60 );
set_zombie_var( "freezegun_inner_range", 60 );
set_zombie_var( "freezegun_outer_range", 600 );
set_zombie_var( "freezegun_outer_range", 600 );
set_zombie_var( "freezegun_inner_damage", 1000 );
set_zombie_var( "freezegun_inner_damage", 1000 );
set_zombie_var( "freezegun_outer_damage", 500 );
set_zombie_var( "freezegun_outer_damage", 500 );
set_zombie_var( "freezegun_shatter_range", 180 );
set_zombie_var( "freezegun_shatter_range", 180 );
set_zombie_var( "freezegun_shatter_inner_damage", 500 );
set_zombie_var( "freezegun_shatter_inner_damage", 500 );
set_zombie_var( "freezegun_shatter_outer_damage", 250 );
set_zombie_var( "freezegun_shatter_outer_damage", 250 );
set_zombie_var( "freezegun_cylinder_radius_upgraded", 180 );
set_zombie_var( "freezegun_cylinder_radius_upgraded", 180 );
set_zombie_var( "freezegun_inner_range_upgraded", 120 );
set_zombie_var( "freezegun_inner_range_upgraded", 120 );
set_zombie_var( "freezegun_outer_range_upgraded", 900 );
set_zombie_var( "freezegun_outer_range_upgraded", 900 );
set_zombie_var( "freezegun_inner_damage_upgraded", 1500 );
set_zombie_var( "freezegun_inner_damage_upgraded", 1500 );
set_zombie_var( "freezegun_outer_damage_upgraded", 750 );
set_zombie_var( "freezegun_outer_damage_upgraded", 750 );
set_zombie_var( "freezegun_shatter_range_upgraded", 300 );
set_zombie_var( "freezegun_shatter_range_upgraded", 300 );
set_zombie_var( "freezegun_shatter_inner_damage_upgraded", 750 );
set_zombie_var( "freezegun_shatter_inner_damage_upgraded", 750 );
set_zombie_var( "freezegun_shatter_outer_damage_upgraded", 500 );
set_zombie_var( "freezegun_shatter_outer_damage_upgraded", 500 );
level._effect[ "freezegun_shatter" ] = LoadFX( "weapon/freeze_gun/fx_trail_freezegun_blood_streak_waw" );
level._effect[ "freezegun_shatter" ] = LoadFX( "ugxm/freeze_gun/fx_freezegun_shatter" );
level._effect[ "freezegun_smoke_cloud" ] = Loadfx( "weapon/freeze_gun/fx_freezegun_smoke_cloud_waw" );
level._effect[ "freezegun_smoke_cloud" ] = loadfx( "ugxm/freeze_gun/fx_freezegun_smoke_cloud" );
level._effect[ "freezegun_damage_torso" ] = LoadFX( "weapon/freeze_gun/fx_zombie_freeze_torso_waw" );
level._effect[ "freezegun_damage_torso" ] = LoadFX( "ugxm/freeze_gun/fx_zombie_freeze_torso" );
level._effect[ "freezegun_damage_sm" ] = LoadFX( "weapon/freeze_gun/fx_zombie_freeze_sm_waw" );
level._effect[ "freezegun_damage_sm" ] = LoadFX( "ugxm/freeze_gun/fx_zombie_freeze_md" );
level._zombie_freezegun_death["zombie"] = %ai_zombie_taunts_9;
level.ugxm_fx["boss_frozen_smoke"] = loadFx("ugxm/freeze_gun/fx_zombie_freeze_md_inf");
thread freezegun_on_player_connect();
level._zombie_freezegun_death["zombie"] = %ai_zombie_frozen_trem;
level thread freezegun_on_player_connect();
}
}
freezegun_on_player_connect()
freezegun_on_player_connect()
{
{
for(;;)
for(;;)
{
{
level waittill("connecting", player);
level waittill("connecting", player);
player thread wait_for_freezegun_fired();
player thread wait_for_freezegun_fired();
}
}
}
}
wait_for_freezegun_fired()
wait_for_freezegun_fired()
{
{
self endon("disconnect");
self endon("disconnect");
self waittill("spawned_player");
self.freezegun_enemies = [];
self.freezegun_enemies = [];
for (;;)
for (;;)
{
{
// iprintln("Checking for freeze gun fired");
self waittill("projectile_impact", weapon, point, radius);
self waittill("projectile_impact", weapon, point, radius);
switch(weapon)
switch(weapon)
{
{
case "freeze_gun":
case "freezegun_sp":
// iprintln("Freezegun Fired");
self.freeze_upgraded = undefined;
self thread freezegun_death(self, 0, "MOD_PROJECTILE", point);
break;
case "freeze_gun_upgraded":
self.freeze_upgraded = true;
self thread freezegun_death(self, 0, "MOD_PROJECTILE", point);
self thread freezegun_death(self, 0, "MOD_PROJECTILE", point);
break;
break;
}
}
}
}
}
}
freezegun_death(player, amount, type, point)
freezegun_death(player, amount, type, point) //time to die, bitch
{
{
self endon("death");
self endon("death"); //should keep this func from playing duplicate sounds, even though the zom will already be deleted (thus not able to play sounds for fx)
self freezegun_get_enemies_in_range(false, player, amount, point, type);
self freezegun_get_enemies_in_range(false, player, amount, point, type); //find the bitch's homies
self thread freezegun_slowdown(player, amount);
self thread freezegun_slowdown(player, amount); //slow down the nearby bitches so they be walkin
if(level.round_number >= 18)
{
if (!isdefined(self.freeze_upgraded)) // Non Upgraded
{
if( RandomInt( 100 ) < 70 )
self.freeze_enemy = true;
else
self.freeze_enemy = undefined;
}
else // Upgraded
{
if( RandomInt( 100 ) < 85 )
self.freeze_enemy = true;
else
self.freeze_enemy = undefined;
if (level.round_number <= 24)
self.freeze_enemy = true;
}
}
else
self.freeze_enemy = true;
original_zombie = player.freezegun_enemies[player.freezegun_enemies.size];
original_zombie = player.freezegun_enemies[player.freezegun_enemies.size];
// iprintln("freezegun death");
if(isDefined(player.freezegun_enemies) && player.freezegun_enemies.size > 0)
if(isDefined(player.freezegun_enemies) && player.freezegun_enemies.size > 0)
{
{
for(i=0;i<player.freezegun_enemies.size;i++)
for(i=0;i<player.freezegun_enemies.size;i++)
{
{
if(isdefined(self.freeze_enemy))
player.freezegun_enemies[i] thread freezegun_fx(); //if there are any nearby bitches, freeze their asses
{
player.freezegun_enemies[i] thread freezegun_death_reward(player, type, point); //give the shooter his points for popin' a cap in a bitch
player.freezegun_enemies[i] thread freezegun_fx();
player.freezegun_enemies[i] thread freezegun_wait_for_shoot_shatter(player, type, point);
player.freezegun_enemies[i] thread freezegun_death_reward(player, type, point);
player.freezegun_enemies[i] thread freezegun_wait_for_touch_shatter(player, type, point);
player.freezegun_enemies[i] thread freezegun_wait_for_shoot_shatter(player, type, point);
player.freezegun_enemies[i] thread freezegun_death_end(player, type, point);
player.freezegun_enemies[i] thread freezegun_wait_for_touch_shatter(player, type, point);
player.freezegun_enemies[i] thread freezegun_death_end(player, type, point);
}
else
{
if (!isdefined(player.freezegun_enemies[i].slow))
player.freezegun_enemies[i] thread slowdown_zombie();
else
{
player.freezegun_enemies[i] thread freezegun_fx();
player.freezegun_enemies[i] thread freezegun_death_reward(player, type, point);
player.freezegun_enemies[i] thread freezegun_wait_for_shoot_shatter(player, type, point);
player.freezegun_enemies[i] thread freezegun_wait_for_touch_shatter(player, type, point);
player.freezegun_enemies[i] thread freezegun_death_end(player, type, point);
}
}
}
}
maps\ugxm_challenges::SpecialChallengeFreezegunZombies(player.freezegun_enemies.size);
}
}
player.freezegun_enemies = [];
player.freezegun_enemies = []; //empty the array
}
}
freezegun_death_end(player, type, point)
freezegun_death_end(player, type, point)
{
{
self endon("death");
self endon("death");
wait(getanimlength(level._zombie_freezegun_death["zombie"]));
wait(getanimlength(level._zombie_freezegun_death["zombie"]));
PlayFx(level._effect["freezegun_shatter"], self getTagOrigin("J_MainRoot"));
PlayFx(level._effect["freezegun_shatter"], self getTagOrigin("J_MainRoot"));
thread spawn_sound("ice_break", self getTagOrigin("J_MainRoot"));
thread spawn_sound("fg_shatter", self getTagOrigin("J_MainRoot"));
self thread stop_magic_bullet_shield();
self thread stop_magic_bullet_shield();
new_origin = (self.freezegun_ice_fx.origin[0], self.freezegun_ice_fx.origin[1], self.origin[2]);
new_origin = (self.freezegun_ice_fx.origin[0], self.freezegun_ice_fx.origin[1], self.origin[2]);
self.freezegun_ice_fx delete();
self.freezegun_ice_fx delete();
self hide();
self hide(); // hide cuz dropping a powerup has a chance of taking some time
self drop_powerup_manually(player, new_origin);
self drop_powerup_manually(player, new_origin);
player maps\ugxm_challenges::WeaponChallenge(self, "freezegun_sp", "MOD_FREEZEGUN_NORMAL");
self delete();
self delete();
}
}
drop_powerup_manually(player, drop_origin)
drop_powerup_manually(player, drop_origin)
{
{
if(isDefined(level.ugxm_powerup_settings["using_custom_powerups"]) && level.ugxm_powerup_settings["using_custom_powerups"])
player maps\ugxm_powerups::powerup_drop( drop_origin, self );
else
level maps\_zombiemode_powerups::powerup_drop( drop_origin );
level maps\_zombiemode_powerups::powerup_drop( drop_origin );
}
}
spawn_sound(sound_name, origin)
spawn_sound(sound_name, origin)
{
{
sound = Spawn("script_origin", origin);
sound = Spawn("script_origin", origin);
sound PlaySound(sound_name);
sound PlaySound(sound_name);
wait 5;
wait 5;
sound delete();
sound delete(); // delete sounds otherwise you get a gspawn error
}
}
freezegun_get_enemies_in_range( upgraded, player, amount, point, type )
freezegun_get_enemies_in_range( upgraded, player, amount, point, type )
{
{
outer_range = 300;
outer_range = 300;
zombies = get_array_of_closest( point, GetAiSpeciesArray( "axis", "all" ), undefined, undefined, outer_range);
zombies = get_array_of_closest( point, GetAiSpeciesArray( "axis", "all" ), undefined, undefined, outer_range);
if(!isDefined(zombies))
if(!isDefined(zombies))
{
{
return;
return;
}
}
// else iPrintLn("# of zombies found nearby: "+zombies.size);
//else iPrintLn("# of zombies found nearby: "+zombies.size);
for(i=0;i<zombies.size;i++)
for(i=0;i<zombies.size;i++)
{
{
if(!isDefined(zombies[i]) || !isAlive(zombies[i]))
if(!isDefined(zombies[i]) || !isAlive(zombies[i]))
{
{
continue;
continue;
}
}
if(!within_fov(self GetEye(), self GetPlayerAngles(), zombies[i].origin, cos(30)))
if(!within_fov(self GetEye(), self GetPlayerAngles(), zombies[i].origin, cos(30)))
{
{
if(distance2d(zombies[i].origin, self.origin) > 175) //there is a flaw with within_fov where zombies who are in your face are excluded from the FOV. By exlcuding zombies that are close, this eliminates the bug
if(distance2d(zombies[i].origin, self.origin) > 175) //there is a flaw with within_fov where zombies who are in your face are excluded from the FOV. By exlcuding zombies that are close, this eliminates the bug
continue;
continue;
}
}
if (0 == zombies[i] DamageConeTrace(self.origin + (0,0, 72/2 + 10), self))
if (0 == zombies[i] DamageConeTrace(self.origin + (0,0, 72/2 + 10), self))
{
{
continue;
continue;
}
}
if(isdefined(zombies[i].boss_enemy))
if(zombies[i].isbosszombie)
{
{
//zombies[i] thread maps\ugxm_boss::boss_handle_freezegun(); // do this before the check for inground/traversing because this should always damage the boss
continue;
continue;
}
}
if(!zombies[i] inmap())
if(zombies[i].in_the_ground || zombies[i].currentlyTraversing || !zombies[i].found_flesh)
{
{
zombies[i] thread after_death_freeze_fx();
zombies[i] thread after_death_freeze_fx();
wait 0.01;
wait 0.01;
self maps\ugxm_challenges::WeaponChallenge(zombies[i], "freezegun_sp", "MOD_FREEZEGUN_INSTANTKILL");
zombies[i] DoDamage(zombies[i].health + 666, self.origin, self); //kill zombies who are rising/traversing instead of freezging
zombies[i] DoDamage(zombies[i].health + 666, self.origin, self); //kill zombies who are rising/traversing instead of freezging
continue;
continue;
}
}
if(!zombies[i].frozen)
if(!zombies[i].frozen)
{
{
player.freezegun_enemies[player.freezegun_enemies.size] = zombies[i];
player.freezegun_enemies[player.freezegun_enemies.size] = zombies[i];
zombies[i].frozen = true;
zombies[i].frozen = true;
}
}
}
}
}
}
slowdown_zombie()
{
if ( "sprint" == self.run_combatanim )
{
self.run_combatanim = level.scr_anim["zombie"]["run1"];
}
else
{
self.run_combatanim = level.scr_anim["zombie"]["walk1"];
}
self.slow = true;
wait .1;
self maps\_zombiemode_spawner::set_zombie_run_cycle( self.new_move_speed );
// Freeze FX
PlayFxOnTag( level._effect[ "freezegun_damage_sm" ], self, "J_Elbow_RI" );
PlayFxOnTag( level._effect[ "freezegun_damage_sm" ], self, "J_Elbow_LE" );
PlayFxOnTag( level._effect[ "freezegun_damage_sm" ], self, "J_Knee_RI" );
PlayFxOnTag( level._effect[ "freezegun_damage_sm" ], self, "J_Knee_LE" );
self.freezegun_ice_fx = Spawn( "script_model", self GetTagOrigin( "J_SpineLower" ) );
self.freezegun_ice_fx.angles = self GetTagAngles("J_SpineLower");
self.freezegun_ice_fx SetModel( "tag_origin" );
self.freezegun_ice_fx LinkTo( self, "J_SpineLower" );
PlayFxOnTag( level._effect[ "freezegun_damage_torso" ], self.freezegun_ice_fx, "tag_origin" );
}
freezegun_slowdown( player, amount )
freezegun_slowdown( player, amount )
{
{
self.freezegun_damage += amount;
self.freezegun_damage += amount;
new_move_speed = self.zombie_move_speed;
new_move_speed = self.zombie_move_speed;
percent_dmg = self enemy_percent_damaged_by_freezegun();
percent_dmg = self enemy_percent_damaged_by_freezegun();
if ( 0.66 <= percent_dmg )
if ( 0.66 <= percent_dmg )
{
{
new_move_speed = "walk";
new_move_speed = "walk";
}
}
else if ( 0.33 <= percent_dmg )
else if ( 0.33 <= percent_dmg )
{
{
if ( "sprint" == self.zombie_move_speed )
if ( "sprint" == self.zombie_move_speed )
{
{
new_move_speed = "run";
new_move_speed = "run";
}
}
else
else
{
{
new_move_speed = "walk";
new_move_speed = "walk";
}
}
}
}
if ( !self.isdog && self.zombie_move_speed != new_move_speed )
if ( !self.isdog && self.zombie_move_speed != new_move_speed )
{
{
maps\_zombiemode_spawner::set_zombie_run_cycle( new_move_speed );
maps\_zombiemode_spawner::set_zombie_run_cycle( new_move_speed );
}
}
}
}
freezegun_do_damage( upgraded, player, dist_ratio )
freezegun_do_damage( upgraded, player, dist_ratio )
{
{
damage = Int((freezegun_get_outer_damage(upgraded) + freezegun_get_inner_damage(upgraded)) * dist_ratio );
damage = Int((freezegun_get_outer_damage(upgraded) + freezegun_get_inner_damage(upgraded)) * dist_ratio );
self waittill("freezegun_do_damage"); //sent by _spawner after deathanim is set and fx are played
self waittill("freezegun_do_damage"); //sent by _spawner after deathanim is set and fx are played
self DoDamage( damage, player.origin, player, undefined, "projectile" );
self DoDamage( damage, player.origin, player, undefined, "projectile" );
self freezegun_debug_print( damage, (0, 1, 0) );
//self freezegun_debug_print( damage, (0, 1, 0) );
}
}
freezegun_fx()
freezegun_fx()
{
{
PlayFxOnTag( level._effect[ "freezegun_damage_sm" ], self, "J_Elbow_RI" );
PlayFxOnTag( level._effect[ "freezegun_damage_sm" ], self, "J_Elbow_RI" );
PlayFxOnTag( level._effect[ "freezegun_damage_sm" ], self, "J_Elbow_LE" );
PlayFxOnTag( level._effect[ "freezegun_damage_sm" ], self, "J_Elbow_LE" );
PlayFxOnTag( level._effect[ "freezegun_damage_sm" ], self, "J_Knee_RI" );
PlayFxOnTag( level._effect[ "freezegun_damage_sm" ], self, "J_Knee_RI" );
PlayFxOnTag( level._effect[ "freezegun_damage_sm" ], self, "J_Knee_LE" );
PlayFxOnTag( level._effect[ "freezegun_damage_sm" ], self, "J_Knee_LE" );
self thread magic_bullet_shield(); //dont let the engine take the death
self thread magic_bullet_shield(); //dont let the engine take the death
self.freezegun_ice_fx = Spawn( "script_model", self GetTagOrigin( "J_SpineLower" ) );
self.freezegun_ice_fx = Spawn( "script_model", self GetTagOrigin( "J_SpineLower" ) );
self.freezegun_ice_fx.angles = self GetTagAngles("J_SpineLower");
self.freezegun_ice_fx.angles = self GetTagAngles("J_SpineLower");
self.freezegun_ice_fx SetModel( "tag_origin" );
self.freezegun_ice_fx SetModel( "tag_origin" );
self.freezegun_ice_fx LinkTo( self, "J_SpineLower" );
self.freezegun_ice_fx LinkTo( self, "J_SpineLower" );
PlayFxOnTag( level._effect[ "freezegun_damage_torso" ], self.freezegun_ice_fx, "tag_origin" );
PlayFxOnTag( level._effect[ "freezegun_damage_torso" ], self.freezegun_ice_fx, "tag_origin" );
self model_playanim(level._zombie_freezegun_death["zombie"]);
self model_playanim(level._zombie_freezegun_death["zombie"]); //precached in ugx_freezegun.gsc, slows down zombie while he freezes
}
}
freezegun_wait_for_touch_shatter(player, type, point)
freezegun_wait_for_touch_shatter(player, type, point)
{
{
self endon("death");
self endon("death");
while(1)
while(1)
{
{
players = getplayers();
players = getplayers();
for(i=0;i<players.size;i++)
for(i=0;i<players.size;i++)
{
{
dist = distance(players[i].origin, self.origin);
dist = distance(players[i].origin, self.origin);
if(dist < 72)
if(dist < 72)
{
{
PlayFx(level._effect["freezegun_shatter"], self getTagOrigin("J_MainRoot"));
PlayFx(level._effect["freezegun_shatter"], self getTagOrigin("J_MainRoot"));
thread spawn_sound("ice_break", self getTagOrigin("J_MainRoot"));
thread spawn_sound("fg_shatter", self getTagOrigin("J_MainRoot"));
self thread stop_magic_bullet_shield();
self thread stop_magic_bullet_shield();
if (!isdefined(level.chaos_high_per))
level.chaos_percent += randomintrange(50,85);
new_origin = (self.freezegun_ice_fx.origin[0], self.freezegun_ice_fx.origin[1], self.origin[2]);
new_origin = (self.freezegun_ice_fx.origin[0], self.freezegun_ice_fx.origin[1], self.origin[2]);
self.freezegun_ice_fx delete();
self.freezegun_ice_fx delete();
self hide(); // hide cuz dropping a powerup has a chance of taking some time
self hide(); // hide cuz dropping a powerup has a chance of taking some time
self drop_powerup_manually(players[i], new_origin);
self drop_powerup_manually(players[i], new_origin);
players[i] maps\ugxm_challenges::WeaponChallenge(self, "freezegun_sp", "MOD_FREEZEGUN_TOUCH");
self delete();
self delete();
break;
break;
}
}
}
}
wait 0.05;
wait 0.05;
}
}
}
}
freezegun_wait_for_shoot_shatter(player, type, point)
freezegun_wait_for_shoot_shatter(player, type, point)
{
{
self endon("death");
self endon("death");
orig_attacker = self.attacker;
orig_attacker = self.attacker;
while(1)
while(1)
{
{
self waittill( "damage", amount, attacker, direction_vec, spot, mod ); //if the zomb gets shot again while he's freezing/frozen, check the attacker, then prematurely shatter him
self waittill( "damage", amount, attacker, direction_vec, spot, mod ); //if the zomb gets shot again while he's freezing/frozen, check the attacker, then prematurely shatter him
if(isDefined(attacker) && IsPlayer(attacker))//attacker == orig_attacker)
if(isDefined(attacker) && IsPlayer(attacker))//attacker == orig_attacker)
{
{
PlayFx(level._effect["freezegun_shatter"], self getTagOrigin("J_MainRoot"));
PlayFx(level._effect["freezegun_shatter"], self getTagOrigin("J_MainRoot"));
thread spawn_sound("ice_break", self getTagOrigin("J_MainRoot"));
thread spawn_sound("fg_shatter", self getTagOrigin("J_MainRoot"));
self thread stop_magic_bullet_shield();
self thread stop_magic_bullet_shield();
self notify("freezegun_do_damage");
self notify("freezegun_do_damage");
new_origin = (self.freezegun_ice_fx.origin[0], self.freezegun_ice_fx.origin[1], self.origin[2]);
new_origin = (self.freezegun_ice_fx.origin[0], self.freezegun_ice_fx.origin[1], self.origin[2]);
self.freezegun_ice_fx delete();
self.freezegun_ice_fx delete();
self hide(); // hide cuz dropping a powerup has a chance of taking some time
self hide(); // hide cuz dropping a powerup has a chance of taking some time
self drop_powerup_manually(player, new_origin);
self drop_powerup_manually(player, new_origin);
player maps\ugxm_challenges::WeaponChallenge(self, "freezegun_sp", "MOD_FREEZEGUN_SHOOT");
self delete();
self delete();
break;
break;
}
}
wait 0.05;
wait 0.05;
}
}
}
}
after_death_freeze_fx(fx1, fx2, fx3, fx4)
after_death_freeze_fx(fx1, fx2, fx3, fx4)
{
{
fx1 = self spawn_after_death_freeze_fx("J_Elbow_RI");
fx1 = self spawn_after_death_freeze_fx("J_Elbow_RI");
fx2 = self spawn_after_death_freeze_fx("J_Elbow_LE");
fx2 = self spawn_after_death_freeze_fx("J_Elbow_LE");
fx3 = self spawn_after_death_freeze_fx("J_Knee_RI");
fx3 = self spawn_after_death_freeze_fx("J_Knee_RI");
fx4 = self spawn_after_death_freeze_fx("J_Knee_LE");
fx4 = self spawn_after_death_freeze_fx("J_Knee_LE");
wait 7;
wait 7;
fx1 delete();
fx1 delete();
fx2 delete();
fx2 delete();
fx3 delete();
fx3 delete();
fx4 delete();
fx4 delete();
}
}
spawn_after_death_freeze_fx(tag)
spawn_after_death_freeze_fx(tag)
{
{
fx = Spawn( "script_model", self GetTagOrigin( tag ) );
fx = Spawn( "script_model", self GetTagOrigin( tag ) );
fx.angles = (0,0,0);
fx.angles = (0,0,0);
fx SetModel( "tag_origin" );
fx SetModel( "tag_origin" );
fx LinkTo( self, tag );
fx LinkTo( self, tag );
PlayFxOnTag( level.ugxm_fx["boss_frozen_smoke"], fx, "tag_origin" );
return fx;
return fx;
}
}
freezegun_death_reward(player, type, point)
freezegun_death_reward(player, type, point)
{
{
self waittill("death");
self waittill("death");
player maps\_zombiemode_score::player_add_points( "death", type, point , false);
player maps\_zombiemode_score::player_add_points( "death", type, point , false);
player.kills++;
player.kills++;
}
}
//Shithole
//Shithole
freezegun_debug_print( msg, color )
freezegun_debug_print( msg, color )
{
{
players = getplayers();
players = getplayers();
players[0] iPrintLn(msg);
//players[0] iPrintLn(msg);
}
}
model_playanim(animname)
model_playanim(animname)
{
{
self useanimtree(#animtree);
self useanimtree(#animtree);
self animscripted("test_anim",self.origin,self.angles, animname);
self animscripted("test_anim",self.origin,self.angles, animname);
}
}
enemy_percent_damaged_by_freezegun()
enemy_percent_damaged_by_freezegun()
{
{
return self.freezegun_damage / self.maxhealth;
return self.freezegun_damage / self.maxhealth;
}
}
freezegun_get_cylinder_radius( upgraded )
freezegun_get_cylinder_radius( upgraded )
{
{
if ( upgraded )
if ( upgraded )
{
{
return level.zombie_vars["freezegun_cylinder_radius_upgraded"];
return level.zombie_vars["freezegun_cylinder_radius_upgraded"];
}
}
else
else
{
{
return level.zombie_vars["freezegun_cylinder_radius"];
return level.zombie_vars["freezegun_cylinder_radius"];
}
}
}
}
freezegun_get_inner_range( upgraded )
freezegun_get_inner_range( upgraded )
{
{
if ( upgraded )
if ( upgraded )
{
{
return level.zombie_vars["freezegun_inner_range_upgraded"];
return level.zombie_vars["freezegun_inner_range_upgraded"];
}
}
else
else
{
{
return level.zombie_vars["freezegun_inner_range"];
return level.zombie_vars["freezegun_inner_range"];
}
}
}
}
freezegun_get_outer_range( upgraded )
freezegun_get_outer_range( upgraded )
{
{
if ( upgraded )
if ( upgraded )
{
{
return level.zombie_vars["freezegun_outer_range_upgraded"];
return level.zombie_vars["freezegun_outer_range_upgraded"];
}
}
else
else
{
{
return level.zombie_vars["freezegun_outer_range"];
return level.zombie_vars["freezegun_outer_range"];
}
}
}
}
freezegun_get_inner_damage( upgraded )
freezegun_get_inner_damage( upgraded )
{
{
if ( upgraded )
if ( upgraded )
{
{
return level.zombie_vars["freezegun_inner_damage_upgraded"];
return level.zombie_vars["freezegun_inner_damage_upgraded"];
}
}
else
else
{
{
return level.zombie_vars["freezegun_inner_damage"];
return level.zombie_vars["freezegun_inner_damage"];
}
}
}
}
freezegun_get_outer_damage( upgraded )
freezegun_get_outer_damage( upgraded )
{
{
if ( upgraded )
if ( upgraded )
{
{
return level.zombie_vars["freezegun_outer_damage_upgraded"];
return level.zombie_vars["freezegun_outer_damage_upgraded"];
}
}
else
else
{
{
return level.zombie_vars["freezegun_outer_damage"];
return level.zombie_vars["freezegun_outer_damage"];
}
}
}
}
freezegun_get_shatter_range( upgraded )
freezegun_get_shatter_range( upgraded )
{
{
if ( upgraded )
if ( upgraded )
{
{
return level.zombie_vars["freezegun_shatter_range_upgraded"];
return level.zombie_vars["freezegun_shatter_range_upgraded"];
}
}
else
else
{
{
return level.zombie_vars["freezegun_shatter_range"];
return level.zombie_vars["freezegun_shatter_range"];
}
}
}
}
freezegun_get_shatter_inner_damage( upgraded )
freezegun_get_shatter_inner_damage( upgraded )
{
{
if ( upgraded )
if ( upgraded )
{
{
return level.zombie_vars["freezegun_shatter_inner_damage_upgraded"];
return level.zombie_vars["freezegun_shatter_inner_damage_upgraded"];
}
}
else
else
{
{
return level.zombie_vars["freezegun_shatter_inner_damage"];
return level.zombie_vars["freezegun_shatter_inner_damage"];
}
}
}
}
freezegun_get_shatter_outer_damage( upgraded )
freezegun_get_shatter_outer_damage( upgraded )
{
{
if ( upgraded )
if ( upgraded )
{
{
return level.zombie_vars["freezegun_shatter_outer_damage_upgraded"];
return level.zombie_vars["freezegun_shatter_outer_damage_upgraded"];
}
}
else
else
{
{
return level.zombie_vars["freezegun_shatter_outer_damage"];
return level.zombie_vars["freezegun_shatter_outer_damage"];
}
}
}
}
inMap() // If target is in playable area
{
playableArea = getEntArray("playable_area", "targetname");
for(m = 0; m < playableArea.size; m++)
if(self isTouching(playableArea[m]))
return true;
return false;
}