Advertisement
Guest User

Untitled

a guest
Sep 23rd, 2014
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.15 KB | None | 0 0
  1. #include maps\_utility;
  2. #include common_scripts\utility;
  3. #include maps\_zombiemode_utility;
  4.  
  5. #using_animtree( "generic_human" );
  6.  
  7.  
  8. custom_ammo_precache()
  9. {
  10. level._effect["blst_expl_ammo"] = loadfx( "explosions/fx_grenade_flash"); // explosions/fx_explosion_generator_mobile <-- for a bigger explosion
  11.  
  12. level._effect["blst_shock_ammo"] = loadfx( "maps/zombie/fx_tesla_impact_default");
  13. // level._effect["tesla_shock"] = loadfx( "maps/zombie/fx_zombie_tesla_shock" ); // default tesla fx, uncomment if no fx is playing
  14. // level._effect["tesla_shock_eyes"] = loadfx( "maps/zombie/fx_zombie_tesla_shock_eyes" ); //default tesla fx, uncomment if no fx is playing
  15.  
  16. // 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
  17.  
  18. level.expl_ammo_sound = false;
  19. }
  20.  
  21. main()
  22. {
  23. level.cost_ammo_shock = 2500; // set the price's for the different ammo-type's
  24. level.cost_ammo_shock_up = 6500;
  25. level.cost_ammo_expl = 2000;
  26. level.cost_ammo_expl_up = 6000;
  27. level.cost_ammo_flame = 1500;
  28. level.cost_ammo_flame_up = 5500;
  29.  
  30. level.alt_message_count_max = 2; // How many times the hintstring's below will appear for each player
  31.  
  32. level.hint_alt_buy_wall = "Buying normal ammo, special ammo is bought elsewhere..";
  33. level.hint_primary_buy_wall = "Special ammo is bought elsewhere..";
  34.  
  35.  
  36. // ADD WEAPONS HERE
  37. // Syntax: add_weapon( "NAME_OF_WEAPON_FILE", "DISPLAY NAME", "AMMO_TYPE", "IS UPGRADED VERSION" )
  38.  
  39. // for ammo_type choose from: "shock" , "flame" or "expl"
  40. // 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
  41. // is upgraded version: Specify if this is a PaP'ed gun, so the ammo cost increases..
  42.  
  43. add_weapon( "spas" , "DragonsBreath" , "flame" , false );
  44. add_weapon( "zombie_shotgun" , "Trenchgun - Shock" , "flame" , false );
  45. // add_weapon( "zombie_thompson_shock" , "Thompson - Shock" , "flame" , true );
  46. // add_weapon( "spas" , "Thompson - Shock" , "flame" , true );
  47. // add_weapon( "zombie_mp40" , "MP-40 - Flame" , "flame" , false );
  48. // add_weapon( "zombie_colt" , "Colt - Explosive" , "expl" , false );
  49. // add_weapon( "zombie_type100_smg" , "Type 100 - Explosive" , "expl" , false );
  50. // add_weapon( "zombie_thompson" , "Thompson - Explosive" , "expl" , false );
  51.  
  52.  
  53.  
  54.  
  55. players = get_players(); // dont change anything from this point
  56. for(i=0;i<players.size;i++)
  57. {
  58. players[i].alt_message_count = 0;
  59. }
  60. }
  61.  
  62. add_weapon( weapon_name, display_name, type, alt_upgraded )
  63. {
  64. struct = SpawnStruct();
  65. struct.weapon = weapon_name;
  66. struct.display_name = display_name;
  67. struct.is_alt_upgraded = alt_upgraded;
  68.  
  69. if( !isDefined( level.shock_ammo ) )
  70. {
  71. level.shock_ammo = [];
  72. }
  73. if( !isDefined( level.expl_ammo ) )
  74. {
  75. level.expl_ammo = [];
  76. }
  77. if( !isDefined( level.flame_ammo ) )
  78. {
  79. level.flame_ammo = [];
  80. }
  81.  
  82. switch( type )
  83. {
  84. case "shock":
  85. level.shock_ammo[weapon_name] = struct;
  86. break;
  87.  
  88. case "flame":
  89. level.flame_ammo[weapon_name] = struct;
  90. break;
  91.  
  92. case "expl":
  93. level.expl_ammo[weapon_name] = struct;
  94. break;
  95.  
  96. default:
  97. break;
  98. }
  99.  
  100. }
  101.  
  102. blst_shock( shockweapon, damagemod )
  103. {
  104. if(isdefined(level.shock_ammo[shockweapon]))
  105. {
  106. if( damagemod != "MOD_MELEE" && damagemod != "MOD_GRENADE" && damagemod != "MOD_GRENADE_SPLASH" && damagemod != "MOD_UNKNOWN" )
  107. {
  108. return true;
  109. }
  110. return false;
  111. }
  112. else
  113. {
  114. return false;
  115. }
  116. }
  117.  
  118.  
  119. blst_flame( flameweapon, damagemod )
  120. {
  121. if(isdefined(level.flame_ammo[flameweapon]))
  122. {
  123. if( damagemod != "MOD_MELEE" && damagemod != "MOD_GRENADE" && damagemod != "MOD_GRENADE_SPLASH" && damagemod != "MOD_UNKNOWN" )
  124. {
  125. return true;
  126. }
  127. return false;
  128. }
  129. else
  130. {
  131. return false;
  132. }
  133. }
  134.  
  135. blst_explosive( expl_weapon, damagemod, zombie )
  136. {
  137. if(isdefined(level.expl_ammo[expl_weapon]))
  138. {
  139. if( damagemod != "MOD_MELEE" && damagemod != "MOD_GRENADE" && damagemod != "MOD_GRENADE_SPLASH" && damagemod != "MOD_UNKNOWN" )
  140. {
  141. if( !level.expl_ammo_sound )
  142. {
  143. level.expl_ammo_sound = true;
  144. zombie playsound( "grenade_explode" );
  145. wait 0.15;
  146. level.expl_ammo_sound = false;
  147. }
  148. return true;
  149. }
  150. return false;
  151. }
  152. else
  153. {
  154. return false;
  155. }
  156. }
  157.  
  158. hit_tag( hit_location )
  159. {
  160. switch( hit_location )
  161. {
  162. case "left_foot":
  163. return "j_ankle_le";
  164.  
  165. case "left_leg_lower":
  166. return "j_knee_le";
  167.  
  168. case "left_leg_upper":
  169. return "j_hip_le";
  170.  
  171. case "right_foot":
  172. return "j_ankle_ri";
  173.  
  174. case "right_leg_lower":
  175. return "j_knee_ri";
  176.  
  177. case "right_leg_upper":
  178. return "j_hip_ri";
  179.  
  180. case "torso_lower":
  181. return "j_spinelower";
  182.  
  183. case "torso_upper":
  184. return "j_spineupper";
  185.  
  186. case "left_arm_upper":
  187. return "j_shoulder_le";
  188.  
  189. case "left_arm_lower":
  190. return "j_wrist_le";
  191.  
  192. case "right_arm_upper":
  193. return "j_shoulder_ri";
  194.  
  195. case "right_arm_lower":
  196. return "j_wrist_ri";
  197.  
  198. case "head":
  199. return "j_head";
  200.  
  201. case "helmet":
  202. return "j_head_end";
  203.  
  204. case "default":
  205. break;
  206. }
  207. }
  208.  
  209.  
  210. blst_expl_ammo( hit_location )
  211. {
  212. rand = randomint(100);
  213.  
  214. switch( hit_location )
  215. {
  216. case "left_foot":
  217. case "left_leg_lower":
  218. case "left_leg_upper":
  219. case "right_foot":
  220. case "right_leg_lower":
  221. case "right_leg_upper":
  222.  
  223. if( rand>94 && !isdefined(self.expl_crawler) && self.has_legs|| rand>80 && isdefined(self.expl_crawler) && !self.expl_crawler && self.has_legs )
  224. {
  225. self.gibbed = false;
  226. self.expl_crawler = true;
  227. refs = [];
  228. refs[refs.size] = "right_leg";
  229. refs[refs.size] = "left_leg";
  230. refs[refs.size] = "no_legs";
  231.  
  232. self.a.gib_ref = animscripts\death::get_random( refs );
  233. self thread animscripts\death::do_gib();
  234. self thread maps\_zombiemode_spawner::make_crawler();
  235. }
  236. break;
  237.  
  238.  
  239. case "torso_lower":
  240. case "torso_upper":
  241. case "left_arm_upper":
  242. case "left_arm_lower":
  243. case "right_arm_upper":
  244. case "right_arm_lower":
  245.  
  246. if( rand <= 50 && self.gibbed == false )
  247. {
  248. refs = [];
  249. refs[refs.size] = "right_arm";
  250. refs[refs.size] = "left_arm";
  251. refs[refs.size] = "guts";
  252.  
  253. self.a.gib_ref = animscripts\death::get_random( refs );
  254. self thread animscripts\death::do_gib();
  255. }
  256. break;
  257.  
  258. case "head":
  259. case "helmet":
  260. case "default":
  261. break;
  262. }
  263. }
  264.  
  265. death_anim_yaw( damageyaw )
  266. {
  267. location = undefined;
  268. expl_death_anim = undefined;
  269. rand = randomintrange( 1, 101 );
  270. if( ( damageyaw >= -45 ) &&( damageyaw <= 45 ) ) // Hit from Back quadrant
  271. {
  272. location = "back";
  273. }
  274. else if( ( damageyaw >= 135 ) || ( damageyaw <= -135 ) ) // Hit from Front quadrant
  275. {
  276. location = "front";
  277. }
  278. else if( ( damageyaw > 45 ) &&( damageyaw <= 135 ) ) // Hit from Right quadrant
  279. {
  280. location = "right";
  281. }
  282. else if( ( damageyaw < -45 ) &&( damageyaw >= -135 ) ) // Hit from Left quadrant
  283. {
  284. location = "left";
  285. }
  286.  
  287. switch( location )
  288. {
  289. case "back":
  290. if( rand < 26 )
  291. {
  292. expl_death_anim = %death_explosion_forward13;
  293. }
  294. if( rand > 25 && rand < 51 )
  295. {
  296. expl_death_anim = %death_explosion_stand_F_v3;
  297. }
  298. if( rand > 50 && rand < 76 )
  299. {
  300. expl_death_anim = %death_explosion_stand_F_v2;
  301. }
  302. if( rand > 75 && rand < 101 )
  303. {
  304. expl_death_anim = %death_explosion_run_F_v2;
  305. }
  306. return expl_death_anim;
  307.  
  308. case "front":
  309. if( rand < 21 )
  310. {
  311. expl_death_anim = %death_explosion_back13;
  312. }
  313. if( rand > 20 && rand < 36 )
  314. {
  315. expl_death_anim = %death_explosion_stand_UP_v1;
  316. }
  317. if( rand > 35 && rand < 51 )
  318. {
  319. expl_death_anim = %death_explosion_stand_B_v1;
  320. }
  321. if( rand > 50 && rand < 66 )
  322. {
  323. expl_death_anim = %death_explosion_stand_B_v2;
  324. }
  325. if( rand > 65 && rand < 81 )
  326. {
  327. expl_death_anim = %death_explosion_stand_UP_v2;
  328. }
  329. if( rand > 80 && rand < 101 )
  330. {
  331. expl_death_anim = %death_explosion_run_B_v1;
  332. }
  333. return expl_death_anim;
  334.  
  335. case "left":
  336. if( rand < 26 )
  337. {
  338. expl_death_anim = %death_explosion_right13;
  339. }
  340. if( rand > 25 && rand < 51 )
  341. {
  342. expl_death_anim = %death_explosion_stand_R_v1;
  343. }
  344. if( rand > 50 && rand < 76 )
  345. {
  346. expl_death_anim = %death_explosion_run_R_v1;
  347. }
  348. if( rand > 75 && rand < 101 )
  349. {
  350. expl_death_anim = %death_explosion_run_R_v2;
  351. }
  352. return expl_death_anim;
  353.  
  354. case "right":
  355. if( rand < 26 )
  356. {
  357. expl_death_anim = %death_explosion_left11;
  358. }
  359. if( rand > 25 && rand < 51 )
  360. {
  361. expl_death_anim = %death_explosion_run_L_v1;
  362. }
  363. if( rand > 50 && rand < 76 )
  364. {
  365. expl_death_anim = %death_explosion_run_L_v2;
  366. }
  367. if( rand > 75 && rand < 101 )
  368. {
  369. expl_death_anim = %death_explosion_stand_L_v3;
  370. }
  371. return expl_death_anim;
  372.  
  373. case "undefined":
  374. iprintln( "Death anim explosive ammo undefined!" );
  375. break;
  376.  
  377. case "default":
  378. break;
  379. }
  380. }
  381.  
  382.  
  383. blst_flame_ammo( player )
  384. {
  385. self endon( "death" );
  386. if( self.health <= (self.maxhealth/2) )
  387. {
  388. self.flame_ammo_on_fire = true;
  389. maps\_zombiemode_spawner::zombie_flame_damage( "MOD_BURNED", player );
  390. self.flame_ammo_on_fire = false;
  391. }
  392. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement