home *** CD-ROM | disk | FTP | other *** search
/ Chip 2011 November / CHIP_2011_11.iso / Programy / Inne / Gry / OpenArena / missionpack / mp-pak0.pk3 / botfiles / match.c < prev    next >
Encoding:
C/C++ Source or Header  |  2007-09-04  |  25.7 KB  |  329 lines

  1. /*
  2. ===========================================================================
  3. Copyright (C) 2006 Dmn_clown (aka: Bob Isaac (rjisaac@gmail.com))
  4.  
  5. This file is part of Open Arena and is based upon Mr. Elusive's fuzzy logic
  6. system found in Quake 3 Arena.
  7.  
  8. Open Arena is free software; you can redistribute it
  9. and/or modify it under the terms of the GNU General Public License as
  10. published by the Free Software Foundation; either version 2 of the License,
  11. or (at your option) any later version.
  12.  
  13. Open Arena is distributed in the hope that it will be
  14. useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
  15. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16. GNU General Public License for more details.
  17.  
  18. You should have received a copy of the GNU General Public License
  19. along with Foobar; if not, write to the Free Software
  20. Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  21. ===========================================================================
  22. */
  23.  
  24. #include "match.h"
  25.  
  26. #define PURE_CRAP    2
  27. #define MORE_CRAP    2
  28.  
  29.  
  30.  
  31. // this is rare but people can always fuckup
  32. // don't use EC"(", EC")", EC"[", EC"]" or EC":" inside player names
  33. // don't use EC": " inside map locations
  34.  
  35. //entered the game message
  36. MTCONTEXT_MISC
  37. {
  38.     
  39.     NETNAME, " has joined the game" = (MSG_ENTERGAME, 0);
  40.     NETNAME, " is the team leader" = (MSG_NEWLEADER, 0);
  41.  
  42. //team command chat messages
  43. MTCONTEXT_INITIALTEAMCHAT
  44. {
  45.     //help and/or meet someone
  46.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": help "|" meet ", TEAMMATE, " near "|" at ", "the "|"checkpoint "|"waypoint "|"", ITEM = (MSG_HELP, ST_NEARITEM);
  47.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": help "|" meet ", TEAMMATE = (MSG_HELP, ST_SOMEWHERE);
  48.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " help "|" meet ", TEAMMATE, " near "|" at ", "the "|"checkpoint "|"waypoint "|"", ITEM = (MSG_HELP, $evalint(ST_NEARITEM|ST_ADDRESSED));
  49.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " help "|" meet ", TEAMMATE = (MSG_HELP, $evalint(ST_SOMEWHERE|ST_ADDRESSED));
  50.  
  51.     //accompany someone (and meet at the rendezvous point) ("hunk follow me", "hunk go with babe", etc.)
  52.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", "go with "|"follow "|"cover "|" protect ", TEAMMATE, " near "|" at ", "the "|"checkpoint "|"waypoint "|"", ITEM, " for", TIME = (MSG_ACCOMPANY, $evalint(ST_NEARITEM|ST_TIME));
  53.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", "go with "|"follow "|"cover "|" protect ", TEAMMATE, " near "|" at ", "the "|"checkpoint "|"waypoint "|"", ITEM = (MSG_ACCOMPANY, ST_NEARITEM);
  54.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", "go with "|"follow "|"cover "|" protect ", TEAMMATE, " for", TIME = (MSG_ACCOMPANY, $evalint(ST_SOMEWHERE|ST_TIME));
  55.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", "go with "|"follow "|"cover "|" protect ", TEAMMATE = (MSG_ACCOMPANY, ST_SOMEWHERE);
  56.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " go with "|" follow "|" cover "|" protect ", TEAMMATE, " near "|" at ", "the "|"checkpoint "|"waypoint "|"", ITEM, " for", TIME = (MSG_ACCOMPANY, $evalint(ST_NEARITEM|ST_ADDRESSED|ST_TIME));
  57.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " go with "|" follow "|" cover "|" protect ", TEAMMATE, " near "|" at ", "the "|"checkpoint "|"waypoint "|"", ITEM = (MSG_ACCOMPANY, $evalint(ST_NEARITEM|ST_ADDRESSED));
  58.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " go with "|" follow "|" cover "|" protect ", TEAMMATE, " for", TIME = (MSG_ACCOMPANY, $evalint(ST_SOMEWHERE|ST_ADDRESSED|ST_TIME));
  59.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " go with "|" follow "|" cover "|" protect ", TEAMMATE = (MSG_ACCOMPANY, $evalint(ST_SOMEWHERE|ST_ADDRESSED));
  60.  
  61.     //preference
  62.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": I want to ", "be "|"", "on "|"", "defense"|"defend" = (MSG_TASKPREFERENCE, ST_DEFENDER);
  63.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": I do not want to capture ", "the "|"their ", "Red Flag"|"Blue Flag"|"flag" = (MSG_TASKPREFERENCE, ST_DEFENDER);
  64.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": I do not want to ", "get "|"capture ", "the "|"their ", "Red Flag"|"Blue Flag"|"flag" = (MSG_TASKPREFERENCE, ST_DEFENDER);
  65.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": I do not want to ", "attack"|"assault" = (MSG_TASKPREFERENCE, ST_DEFENDER);
  66.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": I do not want to harvest", " skulls"|" cubes"|"" = (MSG_TASKPREFERENCE, ST_DEFENDER);
  67.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": I do not want to be ", "on "|"", "offense" = (MSG_TASKPREFERENCE, ST_DEFENDER);
  68.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": I will defend", ""|"the base"|"the flag"|"the obelisk" = (MSG_TASKPREFERENCE, ST_DEFENDER);
  69.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": I will not harvest", " skulls"|" cubes"|"" = (MSG_TASKPREFERENCE, ST_DEFENDER);
  70.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": I am ", "on "|"", "defense" = (MSG_TASKPREFERENCE, ST_DEFENDER);
  71.  
  72.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": I will not defend", ""|"the flag"|"the base"|"the obelisk" = (MSG_TASKPREFERENCE, ST_ATTACKER);
  73.     
  74.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": I do not want to be ", "on "|"", "defense" = (MSG_TASKPREFERENCE, ST_ATTACKER);
  75.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": I want to get ", "the "|"their", "Red Flag"|"Blue Flag"|"flag" = (MSG_TASKPREFERENCE, ST_ATTACKER);
  76.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": I want to ", "attack"|"assault", ""|" the "|"their ", "Red Flag"|"Blue Flag"|"Red Obelisk"|"Blue Obelisk"|"base"|"" = (MSG_TASKPREFERENCE, ST_ATTACKER);
  77.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": I want to harvest", " skulls"|" cubes"|"" = (MSG_TASKPREFERENCE, ST_ATTACKER);
  78.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": I want to be ", "on "|"", "offense" = (MSG_TASKPREFERENCE, ST_ATTACKER);
  79.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": I will ", "attack"|"assault", ""|" the "|" their ", "Red Obelisk"|"Blue Obelisk"|"base"|"" = (MSG_TASKPREFERENCE, ST_ATTACKER);
  80.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": I will be ", "on "|"", "offense" = (MSG_TASKPREFERENCE, ST_ATTACKER);
  81.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": I will harvest", " skulls"|" cubes"|"" = (MSG_TASKPREFERENCE, ST_ATTACKER);
  82.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": I am ", "on "|"", "offense" = (MSG_TASKPREFERENCE, ST_ATTACKER);
  83.  
  84.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": I want to roam" = (MSG_TASKPREFERENCE, ST_ROAMER);
  85.     
  86.  
  87.     //get the flag
  88.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": capture ", "the blue "|"the enemy "|"the red "|"their "|"the "|"enemy ", "flag" = (MSG_GETFLAG, 0);
  89.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": get ", "the blue "|"the red "|"the enemy "|"their "|"the "|"enemy ", "flag" = (MSG_GETFLAG, 0);
  90.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " capture ", "the blue "|"the enemy"|"the red "|"their "|"the "|"enemy ", "flag" = (MSG_GETFLAG, ST_ADDRESSED);
  91.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " get ", "the blue "|"the enemy"|"the red "|"their "|"the "|"enemy ", "flag" = (MSG_GETFLAG, ST_ADDRESSED);
  92.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": get ", PURE_CRAP, " flag ", MORE_CRAP = (MSG_GETFLAG, 0);
  93.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": kill the flag carrier" = (MSG_GETFLAG, 0);
  94.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": kill the flag" = (MSG_GETFLAG, 0);
  95.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " kill the flag carrier" = (MSG_GETFLAG, ST_ADDRESSED);
  96.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " kill the flag" = (MSG_GETFLAG, ST_ADDRESSED);
  97.  
  98.     //attack the enemy base
  99.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " attack ", "enemy "|"the enemy "|"the red "|"the blue "|"their ", "base"|"flag"|"obelisk" = (MSG_ATTACKENEMYBASE, ST_ADDRESSED);
  100.  
  101.     //go harvesting
  102.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " harvest" = (MSG_HARVEST, ST_ADDRESSED);
  103.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " go harvesting" = (MSG_HARVEST, ST_ADDRESSED);
  104.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " collect ","skulls"|"cubes" = (MSG_HARVEST, ST_ADDRESSED);
  105.     
  106.     //double domination commands
  107.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " dominate point A" = (MSG_TAKEA, ST_ADDRESSED);
  108.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " dominate point B" = (MSG_TAKEB, ST_ADDRESSED);
  109.  
  110.     //kill someone (NOTE: make sure these are after the get flag match templates because of the "kill"
  111.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": kill ", ENEMY = (MSG_KILL, 0);
  112.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " kill ", ENEMY = (MSG_KILL, ST_ADDRESSED);
  113.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " wack ", ENEMY = (MSG_KILL, ST_ADDRESSED);
  114.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " take out ", ENEMY = (MSG_KILL, ST_ADDRESSED);
  115.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": hunt down ", ENEMY = (MSG_KILL, 0);
  116.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": kill ", ENEMY = (MSG_KILL, 0);
  117.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": wack ", ENEMY = (MSG_KILL, 0);
  118.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": take out ", ENEMY = (MSG_KILL, 0);
  119.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": death to ", ENEMY = (MSG_KILL, 0);
  120.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " hunt down ", ENEMY = (MSG_KILL, ST_ADDRESSED);
  121.  
  122.     //get item
  123.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " grab the "|" go grab the ", ITEM = (MSG_GETITEM, ST_ADDRESSED);
  124.     
  125.  
  126.     //defend/guard a key area
  127.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", "defend "|"guard ", "the checkpoint "|"the waypoint ", KEYAREA, " for", TIME = (MSG_DEFENDKEYAREA, ST_TIME);
  128.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", "defend "|"guard ", "the checkpoint "|"the waypoint ", KEYAREA = (MSG_DEFENDKEYAREA, 0);
  129.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " defend "|" guard ", "the ", "checkpoint "|"waypoint ", KEYAREA, " for", TIME = (MSG_DEFENDKEYAREA, $evalint(ST_ADDRESSED|ST_TIME));
  130.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " defend "|" guard ", "the checkpoint "|"the waypoint ", KEYAREA = (MSG_DEFENDKEYAREA, ST_ADDRESSED);
  131.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " defend the "|" guard the ", KEYAREA = (MSG_DEFENDKEYAREA, ST_ADDRESSED);
  132.  
  133.     //camp somewhere ("hunk camp here", "hunk camp there", "hunk camp near the rl", etc.)
  134.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " camp ", "there "|"over there ", " for", TIME = (MSG_CAMP, $evalint(ST_ADDRESSED|ST_TIME|ST_THERE));
  135.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " camp ", "there"|"over there" = (MSG_CAMP, $evalint(ST_ADDRESSED|ST_THERE));
  136.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " camp ", "here"|"over here ", " for", TIME = (MSG_CAMP, $evalint(ST_ADDRESSED|ST_TIME|ST_HERE));
  137.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " camp ", "here"|"over here" = (MSG_CAMP, $evalint(ST_ADDRESSED|ST_HERE));
  138.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " camp ", "near "|"at "|"", "the "|"checkpoint "|"waypoint ", KEYAREA, " for", TIME = (MSG_CAMP, $evalint(ST_ADDRESSED|ST_NEARITEM|ST_TIME));
  139.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " camp ", "near "|"at ", "the checkpoint "|"the waypoint ", KEYAREA = (MSG_CAMP, $evalint(ST_ADDRESSED|ST_NEARITEM));
  140.     //go to (same as camp)
  141.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " go to ", "the "|"checkpoint "|"waypoint ", KEYAREA = (MSG_CAMP, $evalint(ST_ADDRESSED|ST_NEARITEM));
  142.  
  143.     //rush to the base in CTF
  144.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " rush ", "to "|"to the "|"the ", "base" = (MSG_RUSHBASE, ST_ADDRESSED);
  145.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " go ", "to"|"to the", " base" = (MSG_RUSHBASE, ST_ADDRESSED);
  146.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", "rush base" = (MSG_RUSHBASE, 0);
  147.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", "return to base" = (MSG_RUSHBASE, 0);
  148.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", "go to base" = (MSG_RUSHBASE, 0);
  149.  
  150.     //return the flag
  151.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " return ", PURE_CRAP, " flag" = (MSG_RETURNFLAG, ST_ADDRESSED);
  152.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": return ", MORE_CRAP, " flag", PURE_CRAP = (MSG_RETURNFLAG, 0);
  153.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": return the", MESSAGE, " flag", PURE_CRAP = (MSG_RETURNFLAG, 0);
  154.  
  155.  
  156.     //who is the team leader
  157.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": who is ", "the leader"|"the team leader"|"team leader"|"leader", "?"|"" = (MSG_WHOISTEAMLAEDER, 0);
  158.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": is there a ", "leader"|"team leader", "?"|"" = (MSG_WHOISTEAMLAEDER, 0);
  159.  
  160.     //become the team leader
  161.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", TEAMMATE, " will be ", THE_TEAM, "leader" = (MSG_STARTTEAMLEADERSHIP, 0);
  162.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", TEAMMATE, " want to be ", THE_TEAM, "leader" = (MSG_STARTTEAMLEADERSHIP, 0);
  163.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", TEAMMATE, " wants to be ", THE_TEAM, "leader" = (MSG_STARTTEAMLEADERSHIP, 0);
  164.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", TEAMMATE, " is ", THE_TEAM, "leader" = (MSG_STARTTEAMLEADERSHIP, 0);
  165.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", TEAMMATE, " you are ", THE_TEAM, "leader" = (MSG_STARTTEAMLEADERSHIP, 0);
  166.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", TEAMMATE, " will be ", THE_TEAM, "leader" = (MSG_STARTTEAMLEADERSHIP, 0);
  167.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": I am ", "the leader"|"the team leader"|"team leader"|"leader" = (MSG_STARTTEAMLEADERSHIP, ST_I);
  168.     
  169.  
  170.     //stop being the team leader
  171.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", TEAMMATE, " is not ", THE_TEAM, "leader" = (MSG_STOPTEAMLEADERSHIP, 0);
  172.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", "I quit being leader"|"I no longer lead"|"i stop being the leader" = (MSG_STOPTEAMLEADERSHIP, ST_I);
  173.     
  174.  
  175.     //wait for someone
  176.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " wait for me", " near "|" at ", "the "|"checkpoint "|"waypoint ", ITEM = (MSG_WAIT, $evalint(ST_NEARITEM|ST_ADDRESSED|ST_I));
  177.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " wait for me" = (MSG_WAIT, $evalint(ST_SOMEWHERE|ST_ADDRESSED|ST_I));
  178.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " wait for ", TEAMMATE, " near "|" at ", "the "|"checkpoint "|"waypoint "|"", ITEM = (MSG_WAIT, $evalint(ST_NEARITEM|ST_ADDRESSED));
  179.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " wait for ", TEAMMATE = (MSG_WAIT, $evalint(ST_SOMEWHERE|ST_ADDRESSED));
  180.  
  181.     //ask what someone/everyone is doing
  182.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " report" = (MSG_WHATAREYOUDOING, ST_ADDRESSED);
  183.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": report" = (MSG_WHATAREYOUDOING, 0);
  184.     
  185.  
  186.     //ask the team leader what to do
  187.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": what is my command", "?"|"" = (MSG_WHATISMYCOMMAND, 0);
  188.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": what should I do", "?"|"" = (MSG_WHATISMYCOMMAND, 0);
  189.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": what am I supposed to do", "?"|"" = (MSG_WHATISMYCOMMAND, 0);
  190.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": what is my job", "?"|"" = (MSG_WHATISMYCOMMAND, 0);
  191.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " what is my command", "?"|"" = (MSG_WHATISMYCOMMAND, ST_ADDRESSED);
  192.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " what should I do", "?"|"" = (MSG_WHATISMYCOMMAND, ST_ADDRESSED);
  193.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " what am I supposed to do", "?"|"" = (MSG_WHATISMYCOMMAND, ST_ADDRESSED);
  194.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " what is my job", "?"|"" = (MSG_WHATISMYCOMMAND, ST_ADDRESSED);
  195.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": orders", "?"|"" = (MSG_WHATISMYCOMMAND, 0);
  196.  
  197.     //ask where someone or everyone is
  198.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " where are you", "?"|"" = (MSG_WHEREAREYOU, ST_ADDRESSED);
  199.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": where are you ", ADDRESSEE, "?"|"" = (MSG_WHEREAREYOU, ST_ADDRESSED);
  200.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": where is ", ADDRESSEE, "?"|"" = (MSG_WHEREAREYOU, ST_ADDRESSED);
  201.  
  202.     //join a sub team
  203.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " create squad ", TEAMNAME = (MSG_JOINSUBTEAM, ST_ADDRESSED);
  204.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " join squad ", TEAMNAME = (MSG_JOINSUBTEAM, ST_ADDRESSED);
  205.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " you"|" we", " are in", " squad ", TEAMNAME = (MSG_JOINSUBTEAM, ST_ADDRESSED);
  206.  
  207.     //leave a sub team
  208.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " leave your squad" = (MSG_LEAVESUBTEAM, ST_ADDRESSED);
  209.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " disband" = (MSG_LEAVESUBTEAM, ST_ADDRESSED);
  210.  
  211.     //what team are you in
  212.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " which "|" what ", "squad", " are you ", "in"|"on", "?"|"" = (MSG_WHICHTEAM, ST_ADDRESSED);
  213.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " what is your ", "squad","?"|"" = (MSG_WHICHTEAM, ST_ADDRESSED);
  214.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " are you ", "in"|"on", " a squad","?"|"" = (MSG_WHICHTEAM, ST_ADDRESSED);
  215.  
  216.     //dismiss
  217.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " stop action"|" roam"|" dismissed" = (MSG_DISMISS, ST_ADDRESSED);
  218.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", "cancel order"|"roam" = (MSG_DISMISS, 0);
  219.  
  220.     //remember checkpoint
  221.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", "checkpoint "|"waypoint ", NAME, " is at ", POSITION = (MSG_CHECKPOINT, 0);
  222.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " checkpoint "|" waypoint ", NAME, " is at ", POSITION = (MSG_CHECKPOINT, ST_ADDRESSED);
  223.  
  224.     //patrol
  225.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": patrol ", "from "|"", KEYAREA, " for", TIME = (MSG_PATROL, ST_TIME);
  226.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": patrol ", "from "|"", KEYAREA = (MSG_PATROL, 0);
  227.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " patrol ", "from "|"", KEYAREA, " for", TIME = (MSG_PATROL, $evalint(ST_ADDRESSED|ST_TIME));
  228.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " patrol ", "from "|"", KEYAREA = (MSG_PATROL, ST_ADDRESSED);
  229.  
  230.     
  231.     //lead the way
  232.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": lead the way" = (MSG_LEADTHEWAY, 0);
  233.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": I'll follow" = (MSG_LEADTHEWAY, 0);
  234.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": lead the way ", ADDRESSEE = (MSG_LEADTHEWAY, $evalint(ST_ADDRESSED));
  235.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": I'll follow ", ADDRESSEE = (MSG_LEADTHEWAY, $evalint(ST_ADDRESSED));
  236.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " lead the way" = (MSG_LEADTHEWAY, $evalint(ST_ADDRESSED));
  237.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": lead ", TEAMMATE, " around ", ADDRESSEE = (MSG_LEADTHEWAY, $evalint(ST_ADDRESSED|ST_SOMEONE));
  238.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " lead ", TEAMMATE, "" = (MSG_LEADTHEWAY, $evalint(ST_ADDRESSED|ST_SOMEONE));
  239.  
  240.     // suicide
  241.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": suicide" = (MSG_SUICIDE, 0);
  242.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, EC": ", ADDRESSEE, " suicide" = (MSG_SUICIDE, $evalint(ST_ADDRESSED));
  243.     
  244.     //anti-bigot bot suicide code (I hope I am not acting as the thought police...)
  245.     
  246.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, " nigger "|" nigr "|" niger "|"wop"|"macaca"|"monkey", PURE_CRAP = (MSG_SUICIDE, ST_TEAM);
  247.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, "kyke"|"kykes"|"kike"|"kikes"|"jewish pig"|"judan"|"jews"|"jew"|"jew lover"|"ex-slaves"|"slaves"|"slave"|"ex-slave"|"xslave"|"xslaves"|"red sea pedestrians"|"red sea pedestrian", PURE_CRAP = (MSG_SUICIDE, ST_TEAM);
  248.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, "niggers"|"nigrs"|"nigers"|"wops"|"macacas", PURE_CRAP = (MSG_SUICIDE, ST_TEAM);
  249.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, "rag head"|"raghead"|"rag-head"|"camel jockey"|"cml jky"|"cmljky", PURE_CRAP = (MSG_SUICIDE, ST_TEAM);
  250.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, "rag heads"|"ragheads"|"rag-heads"|"camel jokeys"|"cml jkys"|"cmljkys", PURE_CRAP = (MSG_SUICIDE, ST_TEAM);
  251.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, "towel head"|"towel heads"|"towel-head"|"towel-heads"|"towelhead"|"towelheads", PURE_CRAP = (MSG_SUICIDE, ST_TEAM);
  252.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, "homo"|"gay"|"gaygrrl"|"gaygirl"|"faggit"|"gay-girl"|"gay-grrl", PURE_CRAP = (MSG_SUICIDE, ST_TEAM);
  253.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, "faggot"|"fagit"|"fagot"|"queer"|"gayboy"|"gayboi", PURE_CRAP = (MSG_SUICIDE, ST_TEAM);
  254.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, "dyke"|"dike"|"lez"|"les"|"lezbo"|"lesbo"|"fags"|"fagz", PURE_CRAP = (MSG_SUICIDE, ST_TEAM);
  255.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, "homos"|"dykes"|"dikes"|"lesbos"|"lezbos"|"fagots"|"faggots"|"faggits"|"fagits", PURE_CRAP = (MSG_SUICIDE, ST_TEAM);
  256.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE,  "sand-nigger"|"sand-niger"|"sndngr"|"sand-niggers"|"sand-nigers"|"sndngrs", PURE_CRAP = (MSG_SUICIDE, ST_TEAM);
  257.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, "red skins"|"red-skins"|"braves"|"chiefs"|"red skin"|"red-skin"|"chief", PURE_CRAP = (MSG_SUICIDE, ST_TEAM);
  258.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, "bean-picker"|"bean picker"|"beanpicker"|"wet back"|"wetback"|"wet-back", PURE_CRAP = (MSG_SUICIDE, ST_TEAM);
  259.     EC"("|EC"[", NETNAME, EC")"|EC"]", "bean-pickers"|"beanpickers"|"bean pickers"|"wet backs"|"wetbacks"|"wet-backs", PURE_CRAP = (MSG_SUICIDE, ST_TEAM);
  260.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, "spook"|"gook"|"slant"|"mamasan", PURE_CRAP = (MSG_SUICIDE, ST_TEAM);
  261.     EC"("|EC"[", NETNAME, EC")"|EC"]", PLACE, "spooks"|"gooks"|"slants"|"mamasans"|"hitler", PURE_CRAP = (MSG_SUICIDE, ST_TEAM);
  262.     // not a good solution but it does work in certain situations...
  263.     NETNAME, EC": ", MORE_CRAP,  "sand-nigger"|"sand-niger"|"sndngr"|"sand-niggers"|"sand-nigers"|" sndngrs ", PURE_CRAP = (MSG_SUICIDE, ST_TEAM);
  264.     NETNAME, EC": ", MORE_CRAP, "red skins"|"red-skins"|" braves "|" chiefs "|"red skin"|" red-skin "|" chief ", PURE_CRAP = (MSG_SUICIDE, ST_TEAM);
  265.     NETNAME, EC": ", MORE_CRAP, " bean-picker "|" bean picker "|" beanpicker "|"wet back"|" wetback "|"wet-back", PURE_CRAP = (MSG_SUICIDE, ST_TEAM);
  266.     NETNAME, EC": ", MORE_CRAP, " bean-pickers "|" beanpickers "|"bean pickers"|"wet backs"|" wetbacks "|"wet-backs", PURE_CRAP = (MSG_SUICIDE, ST_TEAM);
  267.     NETNAME, EC": ", MORE_CRAP, " spook "|" gook "|" slant "|" mamasan ", PURE_CRAP = (MSG_SUICIDE, ST_TEAM);
  268.     NETNAME, EC": ", MORE_CRAP, " spooks "|" gooks "|" slants "|" mamasans ", PURE_CRAP = (MSG_SUICIDE, ST_TEAM);
  269.     NETNAME, EC": ", MORE_CRAP, " homo "|" gay "|" gaygrrl "|" gaygirl "|" gay-girl "|" gay-grrl "|" faggit ", PURE_CRAP = (MSG_SUICIDE, ST_TEAM);
  270.     NETNAME, EC": ", MORE_CRAP, " faggot "|" fagit "|" fagot "|" queer "|" gayboy "|" gayboi ", PURE_CRAP = (MSG_SUICIDE, ST_TEAM);
  271.     NETNAME, EC": ", MORE_CRAP, " dyke "|" dike "|" lez "|" les "|" lezbo "|" lesbo "|" fags "|" fagz ", PURE_CRAP = (MSG_SUICIDE, ST_TEAM);
  272.     NETNAME, EC": ", MORE_CRAP, " homos "|" dykes "|" dikes "|" lesbos "|" lezbos "|" faggots "|" fagots "|" faggits "|" fagits ", PURE_CRAP = (MSG_SUICIDE, ST_TEAM);
  273.     NETNAME, EC": ", MORE_CRAP, " rag head"|" raghead"|" rag-head"|" camel jockey"|" cml jky"|" cmljky", PURE_CRAP = (MSG_SUICIDE, ST_TEAM);
  274.     NETNAME, EC": ", MORE_CRAP, " rag heads"|" ragheads "|" rag-heads"|" camel jokeys"|" cml jkys", PURE_CRAP = (MSG_SUICIDE, ST_TEAM);
  275.     NETNAME, EC": ", MORE_CRAP, " towel head"|" towel heads"|" towel-head"|" towel-heads"|" towelhead"|" towelheads", PURE_CRAP = (MSG_SUICIDE, ST_TEAM);
  276.     NETNAME, EC": ", MORE_CRAP, " nigrs "|" nigers "|"wops"|" macacas ", PURE_CRAP = (MSG_SUICIDE, ST_TEAM);
  277.     NETNAME, EC": ", MORE_CRAP, " kyke "|" kykes "|" kike "|" kikes "|"jewish pig"|"judan"|" jew "|" jews "|"jew lover"|"ex-slaves"|"slaves"|"slave"|"ex-slave"|"xslave"|"xslaves"|"red sea pedestrians"|"red sea pedestrian", PURE_CRAP = (MSG_SUICIDE, ST_TEAM);
  278.     NETNAME, EC": ", MORE_CRAP, " nigger"|" nigr "|" niger "|"wop"|" macaca "|" monkey"|" hitler", PURE_CRAP = (MSG_SUICIDE, ST_TEAM);
  279.  
  280.  
  281. MTCONTEXT_CTF
  282. {
  283.     NETNAME, " got the ", FLAG, " flag", "!"|"" = (MSG_CTF, ST_GOTFLAG);
  284.     NETNAME, " captured the ", FLAG, " flag", "!"|"" = (MSG_CTF, ST_CAPTUREDFLAG);
  285.     NETNAME, " returned the ", FLAG, " flag", "!"|"" = (MSG_CTF, ST_RETURNEDFLAG);
  286.     //for One Flag CTF
  287.     NETNAME, " got the flag", "!"|"" = (MSG_CTF, ST_1FCTFGOTFLAG);
  288.  
  289. MTCONTEXT_TIME
  290. {
  291.     TIME, " minute"|" min","s"|"" = (MSG_MINUTES, 0);
  292.     TIME, " second"|" sec","s"|"" = (MSG_SECONDS, 0);
  293.     "ever" = (MSG_FOREVER, 0);
  294.     " a long time" = (MSG_FORALONGTIME, 0);
  295.     " a while" = (MSG_FORAWHILE, 0);
  296.  
  297. MTCONTEXT_PATROLKEYAREA
  298. {
  299.     "the "|"checkpoint "|"waypoint "|"", KEYAREA, " to "|" and ", MORE = (MSG_PATROLKEYAREA, ST_MORE);
  300.     "the "|"checkpoint "|"waypoint "|"", KEYAREA, " and loop"|" and back", " to the start"|"" = (MSG_PATROLKEYAREA, ST_BACK);
  301.     "the "|"checkpoint "|"waypoint "|"", KEYAREA, " and reverse" = (MSG_PATROLKEYAREA, ST_REVERSE);
  302.     "the "|"checkpoint "|"waypoint "|"", KEYAREA = (MSG_PATROLKEYAREA, 0);
  303.  
  304. MTCONTEXT_TEAMMATE
  305. {
  306.     "me"|"I" = (MSG_ME, 0);
  307.  
  308. MTCONTEXT_ADDRESSEE
  309. {
  310.     "Everyone"|"Everybody" = (MSG_EVERYONE, 0);
  311.     TEAMMATE, " and "|", "|","|" ,", MORE = (MSG_MULTIPLENAMES, 0);
  312.     TEAMMATE = (MSG_NAME, 0);
  313.  
  314. MTCONTEXT_REPLYCHAT
  315. {
  316.     EC"(", NETNAME, EC")", PLACE, EC": ", MESSAGE = (MSG_CHATTEAM, 0);
  317.     EC"[", NETNAME, EC"]", PLACE, EC": ", MESSAGE = (MSG_CHATTELL, 0);
  318.     // included for peace of mind
  319.     NETNAME, EC": ", MESSAGE = (MSG_CHATALL, 0);
  320. }
  321.  
  322.