Here is a neat communcation system I have adapted for my own use. The original code, IMO, was difficult to read (as a template) and used too many function keys. My binding philosphy is to have everything within reach of my left hand while playing TF -- so this one is better suited for that.
In short, this script turns f1 to f4 into team messages. Press once for message topic, press again for specific message. 16 combinations are allowed in a 4 by 4 setting. The messages (and number of) can be easily adapted to suit any need. The messages are really tentative -- no doubt that I will perfect it as I use it. I just wanted everyone else to see this system as soon as possible.
Do not add this code to your autoexec.cfg -- it may overload it. Instead, execute it from within TF or execute it from within an existing script.
Download TFComm.zip (2k) here.
You can look at it below... if you have any questions, just ask. If you try it, you'll understand how and why it works.
// Jarv's TF Comm Macros
// Based on idea from:
// Chris "Slim" Bloxom <email@example.com> - Communications menus
// You may have to add the -zone 512
// parameter to quake startup if this cfg file
// makes quake/tf crash!
// +Simplified menu system (template)
// +Added repeat last message
// F6 = Displays Main Menu or Abort current setup
// F5 = Repeasts last message
// F1 - F4 Changes function based on usage... w/help menus
// If you really want to shorten things, remove the "last" (f5) ability
alias menutxt "echo [f1=flag f2=help
alias m_reset "bind f1 flagmenu; bind f2 helpmenu; bind f3 incomingmenu; bind f4 miscmenu"
alias mainmenu "m_reset; menutxt"
alias last "echo Nothing to repeat... yet."
bind f5 last;
bind f6 mainmenu;
alias f1txt "echo FLAG : [f1=basement
f2=ramp f3=bridge f4=water]"
alias f1txt1 "say_team Flag in basement;alias last f1txt1;m_reset"
alias f1txt2 "say_team Flag in ramp;alias last f1txt2;m_reset"
alias f1txt3 "say_team Flag on bridge;alias last f1txt3;m_reset"
alias f1txt4 "say_team Flag in water;alias last f1txt4;m_reset"
alias flagmenu "bind f1 f1txt1; bind f2 f1txt2; bind f3 f1txt3;bind f4 f1txt4; f1txt"
alias f2txt "echo HELP : [f1=flag
f2=lobby f3=ramp f4=sniper]"
alias f2txt1 "say_team Need help in flagroom;alias last f2txt1;m_reset"
alias f2txt2 "say_team Need help in lobby;alias last f2txt2;m_reset"
alias f2txt3 "say_team Need help at our ramp;alias last f2txt3;m_reset"
alias f2txt4 "say_team Need help at sniper loft;alias last f2txt4; m_reset"
alias helpmenu "bind f1 f2txt1; bind f2 f2txt2; bind f3 f2txt3;bind f4 f2txt4; f2txt"
alias f3txt "echo INCOMING : [f1=front
f2=water f3=rj f4=spy]"
alias f3txt1 "say_team Incoming: front entrance;alias last f3txt1; m_reset"
alias f3txt2 "say_team Incoming: water;alias last f3txt2;m_reset"
alias f3txt3 "say_team Incoming: rocket-jumper;alias last f3txt3; m_reset"
alias f3txt4 "say_team Incoming: Spy;alias last f3txt4; m_reset"
alias incomingmenu "bind f1 f3txt1; bind f2 f3txt2; bind f3 f3txt3;bind f4 f3txt4; f3txt"
alias f4txt "echo MISC : [f1=flag
f2=secured f3=sentry f4=roger]"
alias f4txt1 "say_team I have the flag;alias last f4txt1; m_reset"
alias f4txt2 "say_team Our flag is secured;alias last f4txt2;m_reset"
alias f4txt3 "say_team Sentry destroyed;alias last f4txt3; m_reset"
alias f4txt4 "say_team Roger;alias last f4txt4; m_reset"
alias miscmenu "bind f1 f4txt1; bind f2 f4txt2; bind f3 f4txt3;bind f4 f4txt4; f4txt"