Inside3D tutorials.
Created By: | ShockMan |
eMail: | qfiles@quakemania.com |
Difficulty Scale: | Medium-Hard |
First open up weapons.qc, search for the W_FireAxe function and replace it with this:
void() W_FireAxe = { local vector source; local vector org; source = self.origin + '0 0 16'; traceline (source, source + v_forward*64, FALSE, self); if (trace_fraction == 1.0) return; org = trace_endpos - v_forward*4; if (trace_ent.takedamage) { trace_ent.axhitme = 1; GetPoisoned(trace_ent); // I added this... SpawnBlood (org, '0 0 0', 20); T_Damage (trace_ent, self, self, 10); // changed the last number to 10 // instead of 20 to make the axe // not do so much damage... } else { // hit wall sound (self, CHAN_WEAPON, "player/axhit2.wav", 1, ATTN_NORM); WriteByte (MSG_BROADCAST, SVC_TEMPENTITY); WriteByte (MSG_BROADCAST, TE_GUNSHOT); WriteCoord (MSG_BROADCAST, org_x); WriteCoord (MSG_BROADCAST, org_y); WriteCoord (MSG_BROADCAST, org_z); } };
void() OnPoisonThink = { if (self.waterlevel >= 2) // if you get to water it stops { remove(self); return; } T_Damage (self.owner, self, self, 5); // do damage self.nextthink = time + 1; }; void(entity ent) GetPoisoned = { local entity poison; poison = spawn (); poison.owner = ent; poison.movetype = MOVETYPE_NONE; poison.solid = SOLID_NOT; setmodel (poison, ""); setsize (poison, '0 0 0', '0 0 0'); setorigin (poison, '0 0 0'); poison.nextthink = time + 1; poison.think = OnPoisonThink; };