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: DamieN
eMail: decker96@ix.netcom.com
Difficulty Scale: Easy\Medium


Step 1
In this lesson we will try to create a self teleporter. This is is made by editing the weapons.qc file, and the defs.qc file (Just like the MOTD lesson) I suggest we edit the weapons.qc file first, so open it up.

Step 2
Now, the first this you'll see, is a lot of viod functions. We're gonna add a few of those, just like i have done under. The added ones are commented.
/*
*/
void (entity targ, entity inflictor, entity attacker, float damage) T_Damage;
void () player_run;
void(entity bomb, entity attacker, float rad, entity ignore) T_RadiusDamage;
void(vector org, vector vel, float damage) SpawnBlood;
void() SuperDamageSound;
void() DropTeleport;                             	   //Add this
void() Teleport_to_drop;                          	  //Add this
void (vector org) spawn_tfog;                      	 //Add this  
void (vector org, entity death_owner) spawn_tdeath; 	//Add this 

Step 3
Ok, now what we have to do, is to add the teleport functions. Search for "ImpulseCommands" and place the text shown below, just over the the impulse commands (The beginning of the impulse list is shown below in blue, just so that you'll manage to place everything right :)
/*
==========
Self Teleporter
==========
*/

void() DropTeleport =             //Will drop location for The destination
{
        if(!self.tele_dropped)  {
                self.teledrop_dest = spawn();    //create a temp entity for location of Teleporter
        }
        self.teledrop_dest.origin = self.origin;      //records the location
        self.teledrop_dest.mangle = self.angles;
        self.tele_dropped = 1;
        dprint("Teleport destination dropped.");
};

void() Teleport_to_drop =
{  //This will Teleport you to the Teleport Location temp entity that was recorded above
        local vector org;
        if(!self.tele_dropped)  {
                dprint("No destination dropped.");
                return;
        }

        if(self.health <= 0)  {
                return;
        }

        spawn_tfog (self.teledrop_dest.origin);

        makevectors (self.teledrop_dest.mangle);
        org = self.teledrop_dest.origin;

        spawn_tfog (org);
        spawn_tdeath (org,self);

        setorigin (self,self.teledrop_dest.origin);
        self.angles = self.teledrop_dest.mangle;
        self.fixangle = 1;
        self.velocity = v_forward * 100;
        self.teleport_time = time + 0.5;  // Shorter teleport recovery time
        self.flags = self.flags - self.flags & FL_ONGROUND;
};


/*
============
ImpulseCommands

============


Step 4
Now scroll down just a little bit, under Impulse Commands, and before
self.impulse = 0; add(add is red) these lines:


	if (self.impulse == 14)
	      DropTeleport ();
	if (self.impulse == 15)
	      Teleport_to_drop ();
self.impulse = 0;

Step 5
Now, the last step is to edit the defs.qc file, a thing wich is quite easy.Just open it, and scroll down all the way to the end, then insert

.entity teledrop_dest;
.float tele_dropped;

(They are going to be the 2 very last lines in the defs.qc file!)

Step 6
And that's it! Compile it, and load it up the usual way. And remember to bind the impulses to a key! That makes it alot easier to get away from a beeing killed!






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.