BombDog

 

Ok so it's possibly a little sick, but it was the Russians that came up with the idea (WW2, they trained dogs to run underneath tanks, then strapped explosives to thier backs with proximity fuses). It's really just a way to show a way to implement the chase code.

The included model is from a Cujo mod for quake (I converted it, but don't have a pallete for Q2 so the colours are off) put the code into a mod directory called cujo, and extract the model and skin to a subdirectory called models. It won't work otherwise, unless you relink the skin (don't email me asking how, look at the various model sites out there for details. I'm a coder not a modeler/skinner)


Anyway, down to details. Add the files s_ai.c and cujo.c to your project. (s_ai.c is the same file as is in all the sentry tutorials) make sure to unzip s_ai.h to your mod source dir as well

Next open up g_local.h and find monsterinfo_t monsterinfo;. Insert the code below, just under it

 
        int BombDogpointset;
        vec3_t BombDogpoint;

Now open g_cmds.c. add the following prototypes in , just after #include "g_local.h".

void Mark_BombDog_Spawn_Point(edict_t *ent);
void Spawn_BombDog(edict_t *ent);

Now scroll to the bottom and find the following code

        else if (Q_stricmp (cmd, "wave") == 0)
               Cmd_Wave_f (ent);
        else if (Q_stricmp(cmd, "playerlist") == 0)
               Cmd_PlayerList_f(ent);

and change it to

        else if (Q_stricmp (cmd, "wave") == 0)
               Cmd_Wave_f (ent);
        else if (Q_stricmp(cmd,"marksentry")==0)
               Mark_BombDog_Spawn_Point(ent);
        else if (Q_stricmp(cmd,"spawnsentry")==0)
               Spawn_BombDog(ent);
        else if (Q_stricmp(cmd, "playerlist") == 0)
               Cmd_PlayerList_f(ent);

now go into the game and type makedog at the console. then move off a short distance and type spawndog. a dog will appear rotating on the spot marked. when it sees an enemy it will sprint off to it and explode.

Enjoy :)

Resources


Skunkworks Tutorials