Kick that head!
Posted: Sun Dec 10, 2006 10:37 pm
Gunter, I found a cool coding that allows you to kick heads! Look:
Add this to FvF!!!
Code: Select all
Step 1
1) Open player.qc.
2) Find the function ThrowHead()
3) Replace this:
self.solid = SOLID_NOT;
With:
self.solid = SOLID_TRIGGER;
self.touch = kick_touch;
4) Find the function ThrowGib()
5) Replace:
new.solid = SOLID_NOT;
With:
new.solid = SOLID_TRIGGER; // Set it up for a trigger event
new.touch = kick_touch; // Call kick_touch when touched
6) Open up world.qc
7) Find the line (188) that says:
// sounds used from C physics code
8) Below it, add:
precache_sound ("zombie/z_miss.wav");
precache_sound ("zombie/z_hit.wav");
9) Now, find the fuction CopyToBodyQue().
10) At the beginning of the function, add this:
bodyque_head.touch = ent.touch;
bodyque_head.solid = ent.solid;
11)Open up progs.src
12) Add this line just before player.qc:
KickGibs.qc
13) Create a new file. Call it KickGibs.qc
14) Put the following text into it:
//***********************
//Kicking Gibs n Dead Heads
//***********************
void() kick_touch;
void() kick_touch =
{
local vector v;
// only a player can kick it
if (other.classname != "player")
return;
//randomize sound
if (random()< 0.8)
sound(other, CHAN_ITEM, "zombie/z_hit.wav", 1, ATTN_NORM);
else
sound(other, CHAN_ITEM, "zombie/z_miss.wav", 1, ATTN_NORM);
//define velocity
//you can play with these formulas to adjust
//trajectory
v_x = (other.velocity_x*2+50*random());
v_y = (other.velocity_y*2+50*random());
v_z =250 + 160 * random()+(other.velocity_y+other.velocity_x)*0.30;
self.flags = self.flags - ( self.flags & FL_ONGROUND );
self.velocity = v;
};
15) Save everything, compile, and have fun kicking heads and gibs!
Add this to FvF!!!