MAGSEC4 - Secondary Function
Created By: | Marius |
eMail: | lordshoel@yahoo.com |
Difficulty Scale: | Easy |
//Magsec4 Floats .float MAGSEC_MODE; float PRIMARY = 1; float SECONDARY = 2;Explanation:
if (self.impulse == 15) { if (self.weapon == IT_NAILGUN) { if (self.MAGSEC_MODE == PRIMARY) { self.MAGSEC_MODE = SECONDARY; centerprint (self, "Secondary Mode of Fire\n\n Three Round Burst"); } else if (self.MAGSEC_MODE == SECONDARY) { self.MAGSEC_MODE = PRIMARY; centerprint (self, "Primary Mode of Fire\n\n Single Shot"); } } }
else if (self.weapon == IT_NAILGUN) { player_shot1 (); W_FireMagsec (); self.attack_finished = time + 0.25; }Replace the above with what follows:
else if (self.weapon == IT_NAILGUN) { player_shot1 (); if (self.MAGSEC_MODE == PRIMARY) { W_FireMagsec (); self.attack_finished = time + 0.25; } else if (self.MAGSEC_MODE == SECONDARY) { if (self.ammo_nails < 3) return; //If less than three nails don't fire W_FireMagsecBurst (); self.attack_finished = time + 0.6; } }
self.MAGSEC_MODE = PRIMARY;This sets the mode to Primary on spawning.
void() W_FireMagsecBurst = { local vector dir, org1, org2, org3, case; local entity old; makevectors(self.v_angle); case = aim (self,10000); if (self.ammo_nails < 3) return; //If less than three nails don't fire self.currentammo = self.ammo_nails = self.ammo_nails - 3; sound (self, CHAN_WEAPON, "weapons/spike2.wav", 1, ATTN_NORM); //Origin For Bullet No. 1 if (random() < 0.1) org1 = self.origin + '0 0 20'+(v_right * -2); else if (random() < 0.2) org1 = self.origin + '0 0 16'+(v_right * 3); else if (random() < 0.3) org1 = self.origin + '0 0 12'+(v_right * -1); else if (random() < 0.4) org1 = self.origin + '0 0 16'+(v_right * 1); else if (random() < 0.5) org1 = self.origin + '0 0 18'+(v_right * -4); else if (random() < 0.6) org1 = self.origin + '0 0 14'+(v_right * 4); else if (random() < 0.7) org1 = self.origin + '0 0 13'+(v_right * -3); else if (random() < 0.8) org1 = self.origin + '0 0 17'+(v_right * 2); else if (random() < 0.9) org1 = self.origin + '0 0 20'+(v_right * 1); else org1 = self.origin + '0 0 16'; //Origin For Bullet No. 2 if (random() < 0.1) org2 = self.origin + '0 0 20'+(v_right * -2); else if (random() < 0.2) org2 = self.origin + '0 0 16'+(v_right * 3); else if (random() < 0.3) org2 = self.origin + '0 0 12'+(v_right * -1); else if (random() < 0.4) org2 = self.origin + '0 0 16'+(v_right * 1); else if (random() < 0.5) org2 = self.origin + '0 0 18'+(v_right * -4); else if (random() < 0.6) org2 = self.origin + '0 0 14'+(v_right * 4); else if (random() < 0.7) org2 = self.origin + '0 0 13'+(v_right * -3); else if (random() < 0.8) org2 = self.origin + '0 0 17'+(v_right * 2); else if (random() < 0.9) org2 = self.origin + '0 0 20'+(v_right * 1); else org2 = self.origin + '0 0 16'; //Origin For Bullet No. 3 if (random() < 0.1) org3 = self.origin + '0 0 20'+(v_right * -2); else if (random() < 0.2) org3 = self.origin + '0 0 16'+(v_right * 3); else if (random() < 0.3) org3 = self.origin + '0 0 12'+(v_right * -1); else if (random() < 0.4) org3 = self.origin + '0 0 16'+(v_right * 1); else if (random() < 0.5) org3 = self.origin + '0 0 18'+(v_right * -4); else if (random() < 0.6) org3 = self.origin + '0 0 14'+(v_right * 4); else if (random() < 0.7) org3 = self.origin + '0 0 13'+(v_right * -3); else if (random() < 0.8) org3 = self.origin + '0 0 17'+(v_right * 2); else if (random() < 0.9) org3 = self.origin + '0 0 20'+(v_right * 1); else org3 = self.origin + '0 0 16'; LaunchProjectile(org1); //Fire Bullet No. 1 eject_case (((self.origin + (v_forward * 12)) + (v_up * 13)),case); LaunchProjectile(org2); //Fire Bullet No. 2 eject_case (((self.origin + (v_forward * 12)) + (v_up * 13)),case); LaunchProjectile(org3); //Fire Bullet No. 3 eject_case (((self.origin + (v_forward * 12)) + (v_up * 13)),case); self.punchangle_x = -2; };