Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include maps\_utility;
- #include common_scripts\utility;
- #include maps\_zombiemode_utility;
- #using_animtree( "generic_human" );
- custom_ammo_precache()
- {
- level._effect["blst_expl_ammo"] = loadfx( "explosions/fx_grenade_flash"); // explosions/fx_explosion_generator_mobile <-- for a bigger explosion
- level._effect["blst_shock_ammo"] = loadfx( "maps/zombie/fx_tesla_impact_default");
- // level._effect["tesla_shock"] = loadfx( "maps/zombie/fx_zombie_tesla_shock" ); // default tesla fx, uncomment if no fx is playing
- // level._effect["tesla_shock_eyes"] = loadfx( "maps/zombie/fx_zombie_tesla_shock_eyes" ); //default tesla fx, uncomment if no fx is playing
- // level._effect["character_fire_pain_sm"] = loadfx( "env/fire/fx_fire_player_sm_1sec" ); //this one is in your _zombiemode by default, uncomment if no fx is playing
- level.expl_ammo_sound = false;
- }
- main()
- {
- level.cost_ammo_shock = 2500; // set the price's for the different ammo-type's
- level.cost_ammo_shock_up = 6500;
- level.cost_ammo_expl = 2000;
- level.cost_ammo_expl_up = 6000;
- level.cost_ammo_flame = 1500;
- level.cost_ammo_flame_up = 5500;
- level.alt_message_count_max = 2; // How many times the hintstring's below will appear for each player
- level.hint_alt_buy_wall = "Buying normal ammo, special ammo is bought elsewhere..";
- level.hint_primary_buy_wall = "Special ammo is bought elsewhere..";
- // ADD WEAPONS HERE
- // Syntax: add_weapon( "NAME_OF_WEAPON_FILE", "DISPLAY NAME", "AMMO_TYPE", "IS UPGRADED VERSION" )
- // for ammo_type choose from: "shock" , "flame" or "expl"
- // Display name: is the name used to print on the screen, instead of the "zombie_thompson". Just looks nicer. So make it "Thompson - Shock ammo" for example
- // is upgraded version: Specify if this is a PaP'ed gun, so the ammo cost increases..
- add_weapon( "spas" , "DragonsBreath" , "flame" , false );
- add_weapon( "zombie_shotgun" , "Trenchgun - Shock" , "flame" , false );
- // add_weapon( "zombie_thompson_shock" , "Thompson - Shock" , "flame" , true );
- // add_weapon( "spas" , "Thompson - Shock" , "flame" , true );
- // add_weapon( "zombie_mp40" , "MP-40 - Flame" , "flame" , false );
- // add_weapon( "zombie_colt" , "Colt - Explosive" , "expl" , false );
- // add_weapon( "zombie_type100_smg" , "Type 100 - Explosive" , "expl" , false );
- // add_weapon( "zombie_thompson" , "Thompson - Explosive" , "expl" , false );
- players = get_players(); // dont change anything from this point
- for(i=0;i<players.size;i++)
- {
- players[i].alt_message_count = 0;
- }
- }
- add_weapon( weapon_name, display_name, type, alt_upgraded )
- {
- struct = SpawnStruct();
- struct.weapon = weapon_name;
- struct.display_name = display_name;
- struct.is_alt_upgraded = alt_upgraded;
- if( !isDefined( level.shock_ammo ) )
- {
- level.shock_ammo = [];
- }
- if( !isDefined( level.expl_ammo ) )
- {
- level.expl_ammo = [];
- }
- if( !isDefined( level.flame_ammo ) )
- {
- level.flame_ammo = [];
- }
- switch( type )
- {
- case "shock":
- level.shock_ammo[weapon_name] = struct;
- break;
- case "flame":
- level.flame_ammo[weapon_name] = struct;
- break;
- case "expl":
- level.expl_ammo[weapon_name] = struct;
- break;
- default:
- break;
- }
- }
- blst_shock( shockweapon, damagemod )
- {
- if(isdefined(level.shock_ammo[shockweapon]))
- {
- if( damagemod != "MOD_MELEE" && damagemod != "MOD_GRENADE" && damagemod != "MOD_GRENADE_SPLASH" && damagemod != "MOD_UNKNOWN" )
- {
- return true;
- }
- return false;
- }
- else
- {
- return false;
- }
- }
- blst_flame( flameweapon, damagemod )
- {
- if(isdefined(level.flame_ammo[flameweapon]))
- {
- if( damagemod != "MOD_MELEE" && damagemod != "MOD_GRENADE" && damagemod != "MOD_GRENADE_SPLASH" && damagemod != "MOD_UNKNOWN" )
- {
- return true;
- }
- return false;
- }
- else
- {
- return false;
- }
- }
- blst_explosive( expl_weapon, damagemod, zombie )
- {
- if(isdefined(level.expl_ammo[expl_weapon]))
- {
- if( damagemod != "MOD_MELEE" && damagemod != "MOD_GRENADE" && damagemod != "MOD_GRENADE_SPLASH" && damagemod != "MOD_UNKNOWN" )
- {
- if( !level.expl_ammo_sound )
- {
- level.expl_ammo_sound = true;
- zombie playsound( "grenade_explode" );
- wait 0.15;
- level.expl_ammo_sound = false;
- }
- return true;
- }
- return false;
- }
- else
- {
- return false;
- }
- }
- hit_tag( hit_location )
- {
- switch( hit_location )
- {
- case "left_foot":
- return "j_ankle_le";
- case "left_leg_lower":
- return "j_knee_le";
- case "left_leg_upper":
- return "j_hip_le";
- case "right_foot":
- return "j_ankle_ri";
- case "right_leg_lower":
- return "j_knee_ri";
- case "right_leg_upper":
- return "j_hip_ri";
- case "torso_lower":
- return "j_spinelower";
- case "torso_upper":
- return "j_spineupper";
- case "left_arm_upper":
- return "j_shoulder_le";
- case "left_arm_lower":
- return "j_wrist_le";
- case "right_arm_upper":
- return "j_shoulder_ri";
- case "right_arm_lower":
- return "j_wrist_ri";
- case "head":
- return "j_head";
- case "helmet":
- return "j_head_end";
- case "default":
- break;
- }
- }
- blst_expl_ammo( hit_location )
- {
- rand = randomint(100);
- switch( hit_location )
- {
- case "left_foot":
- case "left_leg_lower":
- case "left_leg_upper":
- case "right_foot":
- case "right_leg_lower":
- case "right_leg_upper":
- if( rand>94 && !isdefined(self.expl_crawler) && self.has_legs|| rand>80 && isdefined(self.expl_crawler) && !self.expl_crawler && self.has_legs )
- {
- self.gibbed = false;
- self.expl_crawler = true;
- refs = [];
- refs[refs.size] = "right_leg";
- refs[refs.size] = "left_leg";
- refs[refs.size] = "no_legs";
- self.a.gib_ref = animscripts\death::get_random( refs );
- self thread animscripts\death::do_gib();
- self thread maps\_zombiemode_spawner::make_crawler();
- }
- break;
- case "torso_lower":
- case "torso_upper":
- case "left_arm_upper":
- case "left_arm_lower":
- case "right_arm_upper":
- case "right_arm_lower":
- if( rand <= 50 && self.gibbed == false )
- {
- refs = [];
- refs[refs.size] = "right_arm";
- refs[refs.size] = "left_arm";
- refs[refs.size] = "guts";
- self.a.gib_ref = animscripts\death::get_random( refs );
- self thread animscripts\death::do_gib();
- }
- break;
- case "head":
- case "helmet":
- case "default":
- break;
- }
- }
- death_anim_yaw( damageyaw )
- {
- location = undefined;
- expl_death_anim = undefined;
- rand = randomintrange( 1, 101 );
- if( ( damageyaw >= -45 ) &&( damageyaw <= 45 ) ) // Hit from Back quadrant
- {
- location = "back";
- }
- else if( ( damageyaw >= 135 ) || ( damageyaw <= -135 ) ) // Hit from Front quadrant
- {
- location = "front";
- }
- else if( ( damageyaw > 45 ) &&( damageyaw <= 135 ) ) // Hit from Right quadrant
- {
- location = "right";
- }
- else if( ( damageyaw < -45 ) &&( damageyaw >= -135 ) ) // Hit from Left quadrant
- {
- location = "left";
- }
- switch( location )
- {
- case "back":
- if( rand < 26 )
- {
- expl_death_anim = %death_explosion_forward13;
- }
- if( rand > 25 && rand < 51 )
- {
- expl_death_anim = %death_explosion_stand_F_v3;
- }
- if( rand > 50 && rand < 76 )
- {
- expl_death_anim = %death_explosion_stand_F_v2;
- }
- if( rand > 75 && rand < 101 )
- {
- expl_death_anim = %death_explosion_run_F_v2;
- }
- return expl_death_anim;
- case "front":
- if( rand < 21 )
- {
- expl_death_anim = %death_explosion_back13;
- }
- if( rand > 20 && rand < 36 )
- {
- expl_death_anim = %death_explosion_stand_UP_v1;
- }
- if( rand > 35 && rand < 51 )
- {
- expl_death_anim = %death_explosion_stand_B_v1;
- }
- if( rand > 50 && rand < 66 )
- {
- expl_death_anim = %death_explosion_stand_B_v2;
- }
- if( rand > 65 && rand < 81 )
- {
- expl_death_anim = %death_explosion_stand_UP_v2;
- }
- if( rand > 80 && rand < 101 )
- {
- expl_death_anim = %death_explosion_run_B_v1;
- }
- return expl_death_anim;
- case "left":
- if( rand < 26 )
- {
- expl_death_anim = %death_explosion_right13;
- }
- if( rand > 25 && rand < 51 )
- {
- expl_death_anim = %death_explosion_stand_R_v1;
- }
- if( rand > 50 && rand < 76 )
- {
- expl_death_anim = %death_explosion_run_R_v1;
- }
- if( rand > 75 && rand < 101 )
- {
- expl_death_anim = %death_explosion_run_R_v2;
- }
- return expl_death_anim;
- case "right":
- if( rand < 26 )
- {
- expl_death_anim = %death_explosion_left11;
- }
- if( rand > 25 && rand < 51 )
- {
- expl_death_anim = %death_explosion_run_L_v1;
- }
- if( rand > 50 && rand < 76 )
- {
- expl_death_anim = %death_explosion_run_L_v2;
- }
- if( rand > 75 && rand < 101 )
- {
- expl_death_anim = %death_explosion_stand_L_v3;
- }
- return expl_death_anim;
- case "undefined":
- iprintln( "Death anim explosive ammo undefined!" );
- break;
- case "default":
- break;
- }
- }
- blst_flame_ammo( player )
- {
- self endon( "death" );
- if( self.health <= (self.maxhealth/2) )
- {
- self.flame_ammo_on_fire = true;
- maps\_zombiemode_spawner::zombie_flame_damage( "MOD_BURNED", player );
- self.flame_ammo_on_fire = false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement