Title : id CTF toogle Hook HOW-TO Author: Terry 'DS' Hendrix ('the evil one' as the llama say) Date : 980617 late at night, oh oh I should be in bed ------------------------------------------------------ 1) Put this in g_cmds.c function [void ClientCommand]: ------------------------------------------------------ // #ifdef CTF // SABIN members uncomment this line if (Q_stricmp (cmd, "+hook") == 0) { extern void CTFWeapon_Grapple_Fire(edict_t* ent); CTFWeapon_Grapple_Fire(ent); return; } else if (Q_stricmp (cmd, "-hook") == 0) { CTFPlayerResetGrapple(ent); return; } // #endif // SABIN members uncomment this line ------------------------------------------------------ 2) SABIN members put this in sabin_cmds.c [sabin_cmds]: ------------------------------------------------------ else if (Q_stricmp (cmd, "botcmd") == 0) { extern void CTFWeapon_Grapple_Fire(edict_t* ent); char* name = gi.argv(1); char* botcmd = gi.argv(2); edict_t* bot; bot = SABIN_FindBot(name); if (bot) { #ifdef CTF if (Q_stricmp (botcmd, "+hook") == 0) { CTFWeapon_Grapple_Fire(bot); return true; } else if (Q_stricmp (botcmd, "-hook") == 0) { CTFPlayerResetGrapple(bot); return true; } #endif } } ------------------------------------------------------ 3) Now make a file called hook.cfg in your game directory: ------------------------------------------------------ alias +hook "cmd +hook" alias -hook "cmd -hook" alias +bothook "cmd botcmd Perfect +hook" alias -bothook "cmd botcmd Perfect -hook" bind shift "+hook" bind p "+bothook" In quake type "exec hook.cfg" ------------------------------------------------------ 4) How to have fun: ------------------------------------------------------ Now run a game with a bot named Perfect, do a chase camera and press and release 'p' to screw with it's poor little head. ;) Press and release 'shift' when you're a ctf player to use a LMCTF action hook.