Inside3D tutorials.

Inside3D
 • Front Page
 • Articles
 • Downloads
 • Forums
 • Hosting
 • Help Wanted
 • Interviews
 • Reviews
 • Staff

 
Allied Sites
 - AI Cafe
 - Bot Epidemic
 - Dark Places
 - Flat Earth
 - FrikBot
 - Ghoulish Art
 - Kilbert3D
 - Quake Info Pool
 - QSG: Quake Standards
 - Rusted Fork
 - Stroggs Gone Mad
 - More...
 
Quake
 - Getting Started
 - QuakeC Specs v1.0
 - QuakeC Tutorials
 - Quake Mod Index
 
Quake II
 - Getting Started
 - dll Sourcecode
 - Coding Tutorials
 
.dll Central
 - Getting Started
 - Learning
 - dll Primer
 - dll in C
 - dll in Delphi
 - Compilers
 
Jedi Knight
 - Getting Started
 - COG Specs
 - Sound Specs
 - Tutorials
 
Level Editing
 - Tutorials/Tips
 
 
Telefragged!!!
Created By: Ivana Gibson
eMail: jkirklan@mines.edu
Difficulty Scale: Easy



Hey, a cool qc tut to teach one to make gibs kickable. It's pretty much a novelty patch.

I ask only one condition: anything that goes wrong is not my fault (as if this could hurt anything). Use this and distribute this file as much as you want. Don't worry about giving credit (Ivana Gibson is my Quake alias anyway).

By the way: If you know enough qc, you can define a variable to turn on and of the kicking of gibs. Simpily add an impulse in weapons.qc to toggle that variable from TRUE/FALSE and test it in the begining of kick_touch() to exit the routine depending that variable.

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 by Ivana Gibson
//**********************************************

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!








The Inside3D content and design is copyrighted by the Inside3D team, and may not be re-produced or copied without proper consent. All rights reserved. Any work credited to any author not part of InsideQC is copyrighted by that author. If you have any feedback, suggestions or flames please send it in to the author. Inside3D is hosted by telefragged and the design was originated by project-9.