1 void() pistol_ready_01;
\r
2 void() pistol_fire1_01;
\r
3 void() pistol_fire2_01;
\r
4 void() pistol_deselect_01;
\r
5 void() pistol_select_01;
\r
7 float() pistol_check =
\r
9 if (self.ammo_shells >= 1)
\r
14 void(float req) w_pistol =
\r
16 if (self.next_pistol_fire > time)
\r
20 else if (req == WR_FIRE1)
\r
21 weapon_prepareattack(pistol_check, pistol_check, pistol_fire1_01, cvar("g_balance_pistol_refire"));
\r
22 else if (req == WR_FIRE2)
\r
23 stuffcmd(self, "reload\n");
\r
24 else if (req == WR_RAISE)
\r
26 else if (req == WR_UPDATECOUNTS)
\r
27 self.currentammo = self.ammo_shells;
\r
28 else if (req == WR_DROP)
\r
29 pistol_deselect_01();
\r
30 else if (req == WR_SETUP)
\r
31 weapon_setup(WEP_PISTOL, "w_soldpistol.zym", IT_SHELLS);
\r
32 else if (req == WR_CHECKAMMO)
\r
33 weapon_hasammo = pistol_check();
\r
36 void W_Pistol_Attack (void)
\r
45 local vector trueaim;
\r
46 org = self.origin + self.view_ofs;
\r
47 end = self.origin + self.view_ofs + v_forward * 4096;
\r
48 traceline(org,end,TRUE,self);
\r
50 trueaim = trace_endpos;
\r
52 sound (self, CHAN_WEAPON, "weapons/pistol_fire.wav", 1, ATTN_NORM);
\r
53 bullets = cvar("g_balance_pistol_bullets");
\r
55 d = cvar("g_balance_pistol_damage");
\r
57 org = self.origin + self.view_ofs + (v_right * 1) - (v_up * 1) + (v_forward * 25);
\r
58 spread = cvar("g_balance_pistol_spread");
\r
59 for (sc = 0;sc < bullets;sc = sc + 1)
\r
60 // fireBullet (org, v_forward, spread, d, IT_PISTOL, sc < 3);
\r
61 fireBullet (org, normalize(trueaim - org), spread, d, WEP_PISTOL, sc < 3);
\r
62 if (cvar("g_use_ammunition"))
\r
63 self.ammo_shells = self.ammo_shells - 1;
\r
68 e.movetype = MOVETYPE_FLY;
\r
69 e.solid = SOLID_NOT;
\r
70 e.think = SUB_Remove;
\r
71 e.nextthink = time + vlen(trace_endpos - self.origin) / 6000;
\r
72 e.velocity = v_forward * 1000;
\r
73 e.angles = vectoangles (v_forward);
\r
75 // soonmodel (e, "models/tracer.mdl", .1);
\r
76 setmodel (e, "models/tracer.mdl");
\r
77 setsize (e, '0 0 0', '0 0 0');
\r
79 e.effects = e.effects | EF_ADDITIVE;*/
\r
83 if (cvar("g_casings") >= 1)
\r
85 org = self.origin + self.view_ofs + (v_right * 6) - (v_up * 8) + (v_forward * 10);
\r
86 SpawnCasing (org, ((random () * 50 + 50) * v_right) - ((random () * 25 + 25) * v_forward) - ((random () * 5 + 10) * v_up), 2, v_forward,'0 250 0', 100, 1);
\r
89 org = self.origin + self.view_ofs + (v_right * 6) - (v_up * 8) + (v_forward * 20);
\r
90 //W_Smoke(org, v_forward, 12);
\r
91 //te_smallflash(org);
\r
93 self.punchangle_x = -1;
\r
95 self.clip_pistol = self.clip_pistol - 1;
\r
96 if (self.clip_pistol <= 0)
\r
98 DoReload (1, CLIP_MAX_PISTOL); // weapon type 1 is pistol
\r
103 void() pistol_ready_01 = {weapon_thinkf(WFRAME_IDLE, 0.1, pistol_ready_01); self.weaponentity.state = WS_READY;};
\r
104 void() pistol_select_01 = {weapon_thinkf(-1, cvar("g_balance_weaponswitchdelay"), w_ready); weapon_boblayer1(PLAYER_WEAPONSELECTION_SPEED, '0 0 0');};
\r
105 void() pistol_deselect_01 = {weapon_thinkf(-1, cvar("g_balance_weaponswitchdelay"), w_clear); weapon_boblayer1(PLAYER_WEAPONSELECTION_SPEED, PLAYER_WEAPONSELECTION_RANGE);};
\r
106 void() pistol_fire1_01 =
\r
108 self.pistol_fired = 1;
\r
109 weapon_doattack(pistol_check, pistol_check, W_Pistol_Attack);
\r
110 weapon_thinkf(WFRAME_FIRE1, cvar("g_balance_pistol_refire2"), pistol_ready_01);
\r
112 void() pistol_fire2_03 =
\r
114 weapon_doattack(pistol_check, pistol_check, W_Pistol_Attack);
\r
115 weapon_thinkf(WFRAME_FIRE1, cvar("g_balance_pistol_refire2"), pistol_ready_01);
\r
117 void() pistol_fire2_02 =
\r
119 weapon_doattack(pistol_check, pistol_check, W_Pistol_Attack);
\r
120 weapon_thinkf(WFRAME_FIRE1, cvar("g_balance_pistol_refire2"), pistol_fire2_03);
\r
122 void() pistol_fire2_01 =
\r
124 weapon_doattack(pistol_check, pistol_check, W_Pistol_Attack);
\r
125 weapon_thinkf(WFRAME_FIRE1, cvar("g_balance_pistol_refire2"), pistol_fire2_02);
\r