WHAT THIS IS: I started with the friend code from Jeff Epler (jepler@inetnebr.com, Synger on IRC (linuxnet and undernet, primarily)) and pretty much did a rework to provide the following added features: - You can give your pets the following commands: Come. (impulse 57) Your pets will stop attacking (if they are) and come to you. Normally, your pets follow you around. Attack. (impulse 56) You must be "looking" at a monster. The closest monster will be chosen. Play dead. (impulse 55) This gibs all your pets. This is sometimes necessary because Shamblers can't always get through some doors. - Monsters with the FL_FRIENDLY flag check to see if they already have an owner and will not automatically acquire a new master - You must "resurrect" a dead monster as a "pet." (affectionately known as Spot). Big Note: I added Jeff's "solid monsters" code in here too. This was necessary since the FindRadius builtin ignores "non-solid" entities. - Resurrecting Spot takes the following toll on your health Dog - 25 hp. Soldier - 50 hp Fiend - 90 hp Shambler - 99 hp Note: this was to provide some balance for the ability to resurrect monsters. The Fiends and Shamblers are formidable pets and so have a high cost :) - You can only have one pet. Note: the code is in there to allow for multiple pets, but remember... your pets are pretty dumb and the commands affect all of them. (i.e. they have a tendency to start fighting amongst themselves because they get in each other's way. They also have a tendency to get in your way.) You'll have to take out the one check (it's in weapons.qc) to allow for multiple pets. Note2: I did have a lot of fun walking around with my personal army of 8 grunts :) - You can't take your pets with you between levels. I may add this in, but it will be difficult due to limitations in the engine. - Your pets will not hunt for monsters. They will, however, automatically attack any monster that attacks you. This is no different than Jeff's code. - When you now "push" your pet, it will try to move sideways and get out of your way. - Dogs, Fiends, and Shamblers will attack corpses. I about died laughing the first time I hit the attack key and my dog started tearing into the nearest body. The grunts don't have a melee attack and so won't do anything to a corpse. This can be frustrating if you are trying to get the grunt to attack a monster and he just stands there because a body is closer to you and in your line of sight. :( - In deathmatch or teamplay, unless you put the monsters back in you have no one to resurrect. I'm working on the ability to resurrect dead players for deathmatch and teamplay. TO BE ADDED. - Heal! You can tell Spot to follow to your right side, left side, behind you (very dangerous if your pet is a grunt or shambler) or in front of you. - Guard. Stay Spot, stay! You can toss a stick to an area (like in front of a door) and Spot will go to the stick and guard the area and search out monsters. Just pick up the stick to have Spot resume following you around like a good puppy. - Fetch. Scared to go in and get that box of shells? Have Spot do it! - Deathmatch and Teamplay stuff. - New textures for Spot. I am attempting to allow it to follow your color code for deathmatch and teamplay. - A new item which grants you the ability to resurrect one pet per item. WHEN WILL THEY BE ADDED When it's done. Hey, it works for id :) HOW TO TRY THIS OUT: Read howpatch.txt for details on how to use this patch file Bind keys to: 'impulse 250' to resurrect a corpse as Spot. 'impulse 55' to give the play dead command. 'impulse 56' to give the attack monster command. 'impulse 57' to give the come here command. ABOUT MY CODE: I added a .pet and a .petlist property to all entities. I reworked Jeff's code so that the linking of multiple pets no longer has to spawn new entities (a lot safer). I ensure that all pets are killed when a pet dies, when you die, or when you exit a level. I use FindRadius to find dead monsters and to find monsters to attack. Everything found must be in the players line of sight. If you are standing on the corpse when you resurrect it, it will gib. KNOWN PROBLEMS This is untested in deathmatch and teamplay. Code needs to be added so you don't get the frag for killing your own pet. I'll need feedback for this one since I only have a 14.4 modem and deathmatch is out. THANKS TO Jeff Epler, for his excellent friend code and solid monster code. id, for the game and all the openness about it. DISCLAIMER Use this hack at your own risk. The writer of this hack takes no responsibility for crashed games, unusable saves, or if Spot eats your homework or gibs your mailman. GIVE ME FEEDBACK: Please mail me with your thoughts about this hack. Joe Faske (Joebo) faske@ols.net