Mechwarrior 2:Mercenaries - Mission Tables & Other Headaches WITH MULTI-PLAYER AND ENEMY AI EXAMPLES Written by Edward H. Wong Created: December 12 1996 (very early in the morning) Copyright (c) 1996, 1997 Edward H. Wong (me!)
Disclaimer & Legal Stuff:1. I am in no way affiliated with Activision or FASA, so don't bug them about anything in here. 2. Everything in this document was written by me (except where stated). The examples have been tested, but not exhaustively. Some untested additions were also made to the code, but there shouldn't be any errors *cross fingers, knock on wood* 3. All rights, trademarks, copyrights, etc for Battletech and Mechwarrior 2:Mercenaries are owned by FASA and Activision.
WHY READ THIS?
Despite the efforts of those hard working Activision guys, many aspects of mission building are undocumented or misunderstood. In particular, the mission tables remain a mystery... This document was originally written as an attempt to help people understand how the mission tables work. Since it's inception it has grown to include some general information relating to the scenario file. It contains annotated examples of mission tables, and information on a few other things. If you need tips or examples to help you understand how the mission tables work, you should keep reading. There's also a few sections that are related to the scenario files and the RMGs. I do not consider any of the material in this document to be particularly obvious, so it should be useful even to veteran mission builders. If you haven't read the official FAQs, READ THEM NOW! Print them out and keep them handy at all times. They contain specific information that is required for complete understanding of the material in this document.
LOCATING THE OTHER FAQs
The Scenario Implementation Guide is at: http://www.activision.com/mercnet/mw2doc.htm The Mercnet Mission Building Faq is at: http://www.activision.com/mercnet/mercmfaq.htmTABLE OF CONTENTS
What's In This Thing Labeling Objects in an ARE file Alliance Table Star Declaration Table Affiliation The 8 Star Limit? Placing RMGs Mission Goals Undocumented Objectives Referring to Another Star's Mission Table Referring to RMGs And/Or Tables Writing Mission Tables for the AI Creating AI Mech Stars AI Mission Table AI Experiences Single Player Missions... Without Mercnet? Custom Userstar Multi-Player Examples AI Examples Contacting the Author and Document HistoryWHAT'S IN THIS THING?
As you may have already learned, mission tables are a common source of angst and hair-pulling. This stems mainly from the dearth of examples that can be used to explain the workings of mission tables. This document contains small, annotated examples of multiple objective mission tables and other related (and sometimes unrelated) files. There should be enough in this document to help people understand how objectives in mission tables can be created (and work!). There are also a few other sections that are not related to the mission tables, such as Alliance and Star Declaration information. Notes: The required formats are listed in the FAQs, so I won't repeat them here. I must again stress the importance of having the other FAQs available when you read this document. This document could well be incomprehensible without them. Don't say I didn't warn you...LABELING OBJECTS IN AN ARE FILE
Objects in the ARE files must be labelled correctly so that they will be recognised in the mission table. When you create a gamething, the fourth field is used to define the mission objective(s). To specify multiple objectives, use a semicolon as a separator. eg, gamething obj1 100 alt_obj1 recon;defend;destroy "blah..." "blah..."ALLIANCE TABLE
The star table is used as a precursor to the star declaration table, and lists the various alliances that may appear in the mission. This example is from dem1scn1.wld: #Alliance Declaration alliance FC Draconis FRR Wolf SmokeJaguar GhostBear Wild1 Wild2 end The fact is, the names can be anything. You could have one alliance as Torkan and another as Prince_Valiant. The names that are in the example are there because they correspond to the logo declarations in the map file (or vice versa...). This extract was taken from dem1map1.wld: 3dbitmap_prj lgfedcom # FedCom 3dbitmap_idlist 319 # 63 3dbitmap_prj lodracon # Alliance 1 Logo - Drakonis 3dbitmap_idlist 320 # 64 3dbitmap_prj lgfreerl # Alliance 2 Logo - FRR 3dbitmap_idlist 321 # 65 3dbitmap_prj loclwolf # Alliance 3 Logo - Wolf 3dbitmap_idlist 322 # 66 3dbitmap_prj lgclsjag # Alliance 4 Logo - Smoke Jag 3dbitmap_idlist 323 # 67 3dbitmap_prj loclbear # Alliance 5 Logo - GhostBear 3dbitmap_idlist 324 # 68 3dbitmap_prj lohanson # Alliance 6 Logo - Hansons 3dbitmap_idlist 325 # 69 3dbitmap_prj lgpirat2 # Alliance 7 Logo - Pirate 3dbitmap_idlist 326 # 70 Note: the FedCom logo can be changed to l1fedcom; lgfedcom doesn't seem to work. Now, if you wanted to pitch the Steel Vipers vs House Marik, you could use: testscn1.wld #Alliance Declaration alliance Steel_Viper Marik end testmap1.wld 3dbitmap_prj l1clvipe # Steel Viper 3dbitmap_idlist 319 # 63 3dbitmap_prj l1marick # House Marik 3dbitmap_idlist 320 # 64STAR DECLARATION TABLE
Friendly and neutral units may be declared, but only work in single player missions. In multi-player missions, everyone and everything will end up as an enemy no matter how the disposition is set. The logos on the mechs can be kept uniform by assigning the same alliance to different stars. #Star Declaration for a single player mission star #Star #Alliance #Formation #Disposition en00star FC Star Friendly testens1 GhostBear Star Neutral testens2 Draconis Star Enemy testens3 Draconis Star Enemy testens4 Draconis Star Enemy testens5 GhostBear Star Neutral testusr6 FC Star Friendly testusr7 FC Star Friendly endAFFILIATION
Objects can be made into friends or enemies using Affiliation, but only within a block declaration. The particular affiliation is defined by the star declaration table. eg, mangle_on block 0,0,0 0,0,0 affiliation 2 #turn the next object into an enemy, as defined in the SDT above. # 0 = friendly, 1=neutral (unnecessary, neutral is the default). object snoozy=... gamething snoozy ... endblock mangle_off Don't get the above example confused. It's not an arbitrary 0=friendly, 1=neutral and 2=enemy. It just so happens that in the star declaration table, the 0th entry is a friendly group, the 1st entry is a neutral group and the 2nd entry is an enemy group.THE 8 STAR LIMIT?
It is possible to create two extra stars and still stay within the file naming conventions. To create a ninth star, add an entry to the star declaration table, set a new camo, create new mission table entries and then include new start and navpoint files. Finally, you have to create all of the new files or copy and rename existing files. There's an upper limit of 30 friendly, enemy and neutral mechs including the player's mech so be careful. This is probably a limitation in the polygon rendering engine. Thanks to Stacy Harley for pointing this out.PLACING RMGs
RMGs are those generic structures that you see most commonly in Instant Action. They are a set of ready made objects that you can just plonk down anywhere on your map using a block_xform statement. For example, to place a training centre in the world file, you would use: testwld1.wld block_xform 1,1,1 0,0,0 -10000,0,0 include trainctr When you compile this, you'll get a "file not found" warning, but provided your spelling is correct, you can ignore it. Thanks to Don Halloran for pointing this out. You should only place one instance of any particular RMG into the world file. You'll find out why later on. Notes: There doesn't seem to be any way to change the affiliation of RMGs - they're always neutral. Q: Where do I find the RMGs? A: Check the /RMG directory. They're mostly self-explanatory.MISSION GOALS
There are two different types of objectives in the mission table. The first type is the mission goal: Recon, Defend, Destroy, Goto, Leave, Wait, Return Shutdown and Sleep. The second type are operators that are triggered in response to the mission goals, or are used for the purposes of mission logic. Objective states can be detected as being: Complete (C), Failed (F), or Successful (S). I do not know of a way to directly determine if a goal is still "In Progress". There is an indirect method, which is shown in one example. In electronics, a "one-shot" is a gate that can toggle from one state to another, but only once. The gate must be reset or powered down to revert to its original state. The same can be said of the objectives. They start out in the "In Progress" state, and are set in response to some action. Once they are set, they cannot change unless they are reset. Missions will succeed when all MANDATORY goals are complete. Missions will fail if a single Mandatory goal fails.UNDOCUMENTED OBJECTIVES
There are a few undocumented mission objectives: Annihilate, Explode, Msnreset and Objreset. Annihilate is much like destroy, in that it forces an AI star to actively hunt and destroy an enemy star. Explode makes objects (gamethings) marked with explode... explode! This can useful for destroying all enemy mechs in a single player game, or making objectives unobtainable when a time limit expires. eg. if you had to look for a bomb, but only had 2 minutes before it detonates. (after the 1st time, it's kind of a give-away...) Objreset will reset the state of another objective. Msnreset will reset all objectives in a table EXCEPT for itself. Objreset must be called to reset a Msnreset objective. It is possible to create non-standard objectives, but they will ALWAYS be successful. eg, 2 Jubjub Visible null (C 0) -1 Secondary Mandatory none "A Lizard!" Note: You cannot label gamethings with non-standard mission objectives.REFERRING TO ANOTHER STAR'S MISSION TABLE
A line in the Scenario Implementation Guide says: "If the objective being watched is in another star's mission table then theshould be preceded by the star's filename and an underscore ... (S userstar_5)" This is not correct. DO NOT put the underscores in the activation field. DO put them in the target field. (don't get them mixed up, either!) eg, 99 Objsucceed hidden en00star_3 (S en01star 5) none none none "" Another thing is: you cannot affect another star's objective. eg, in en00star, 99 Objsucceed hidden en02star_3 (S 5) none none none "" This line won't work. It will activate, but nothing else will happen.REFERRING TO RMGs
If you want to use an RMG as a mission target, there should only be one instance of the RMG in a world file to avoid possible conflicts. It can be referenced by placing the RMG name as the target. If you had placed a training centre at in the world file (see RMGs, above) and wanted the user to defend it... testscn1.wld ... 2 Defend Visible TRAINCTR (c 0) -1 Primary Mandatory None "Defend Me!"AND/OR TABLES
And/or tables follow simple boolean logic. In an "AND" table, all objectives must match (succeed, fail or complete) for successful activation. In an "OR" table, only one objective need match for success. The tables must be labelled "table and" or "table or", and must be placed directly after the objective that uses the table.WRITING MISSION TABLES FOR THE AI
Single player missions are currently the only place where you'll see AI mechs. Not surprisingly, writing mission tables for the AI can be just as strenuous a task as for a human, but usually isn't. However, if things aren't _exactly_ right, the results can be unpredictable - ranging from mechs running off to nowhere to the AI stars standing around, ignoring enemies during a fight. Note: AI stars can be placed in a multi-player mission, but are INVULNERABLE. In other words, they're window dressing that can blast your mech straight to hell.CREATING AI MECH STARS
AI stars in single player missions can be generated by substituting AI star files for enxxstar files, except for the en00star, which you leave alone. Although any file name may be used, the convention is to use xxxxusrx.wld for friendly stars and xxxxensx.wld for enemy stars. The other file naming conventions, as well as explanations for the gp_spec fields are listed in the Scenario Implementation Guide. For example, a two mech AI star is to be created, and will replace en05star. The mechs will be an Atlas and a Thug. testens5.wld gp_spec atlas atl00std 5 leader internal defend;destroy;explode 1 250 250 600 1 "Enemy Atlas" "ace" AlwaysTarget gp_spec thug thg00std 5 follower internal defend;destroy;explode 4 250 250 600 2 "Enemy Thug" "average" AlwaysTarget An important thing to note is the group id (the third field), which in this case is 5. Also note the target range. An AI mech will engage targets only within this range. If it is small, a mech will not engage an enemy other than the one it is assigned to. On the other hand, if it is large, an AI mech can be made to seek and destroy all enemies. Once a mech star is created, it must be put into the scenario file. This can be done using a text search & replace function to replace all instances of en05star with testens5. This means that in a multi-player game, a sixth human player would be shut out. Note: The mek filename does not have to correspond with the mech. To get a Warhammer IIC's configuration instead of the Thug's, replace thg00std with whm00std (ThugHammer, or WarThug?)AI MISSION TABLE
Now that all traces of en05star have been removed, the mission table can be written for testens5. If this were an instant action type of mission, a new star would activate after the previous star had been destroyed, or in reaction to some other event - in this case, when en00star objective 1 is complete. Otherwise the AI star would be shut down and invisible to radar. 1 Destroy Visible en00star (C en00star 1) -1 2 1 none Mandatory None "destroy user star" 2 Shutdown Hidden testst51 (C 0) -1 0 0 None Optional None "Shutdown at start point" testst51.wld is the starting navpoint file for en05star, but can also be used by the AI star. After the mission time field there are two fields that are used exclusively with AI stars. These are mpt and dnd. It is important that they are set correctly. eg 1: a four mech clan star. They're Steel Vipers, so they follow clan tradition by attacking one-on-one. 1 destroy visible en00star (C 0) -1 1 0 none none none "patrol" eg 2: a four mech inner sphere lance. These guys are looking for trouble... 1 Annihilate visible en00star (C 0) -1 4 0 none none none "patrol" Remember that this is an AI, so it will follow the objectives in the mission table in sequence.AI EXPERIENCES
The AI mechs will sometimes behave differently from what is stated in the FAQ, or from what you may expect... Defend: All assigned mechs will go to and circle the target. They won't move off unless they are approached by an enemy. Destroy: All assigned mechs will head straight for the target and attempt to destroy it. Unassigned mechs in a destroy objective will stay within the rubber band range of their leader, but will not attack. Shutdown: All mechs will shut down immediately. They won't form on the leader or go to a nav point before shutting down. Shutdown mechs will ignore approaching enemies. Sleep: Unlike Shutdown, sleeping mechs will wake up when an enemy comes within the sleep radius. Wait: The leader will stop and wait for the specified period. It will not go to a nav point before waiting. The followers will form on the leader. You should not rely on Mechs staying in formation. The mechs will sometimes run to their destinations, especially towards opponents. For this reason if you want to maintain any semblance of a formation, you should pick mechs of roughly equal speeds. One final note on AI mechs. The AI will follow the mission table strictly. For example, you cannot get a mech to simultaneously defend an object and attack another object. It must either be defending or attacking.SINGLE PLAYER MISSIONS... WITHOUT MERCNET?
Single player missions can be created to run either with or without the mercnet shell. The difference is that it is quicker if you run a mission without the mercnet shell , but you won't see the mission briefing. Also, you can't pick your mechs from the mercnet shell. Here is a method where you can create & play a single player mission without mercnet. It's a little tedious, but it does let you to bring starmates into a mission. Actually, there are several methods to do this, but I think this method causes the fewest problems by separating mercnet from the single player missions... 1. in you scenario files, replace all instances of "en00star" with "userstar". 2. replace all other instances of "enxxstar" with "xxxxensx" or "xxxxusrx", or delete them completely if they won't be used. eg, en01star --> testens1 This means that you will be working with only one user star, the rest being AI stars. 3. in the /tools directory, where you compile your missions, copy en00star.bwd to userstar.bwd. This file must be present when you compile your mission. 4. See the section below on writing mission tables for AI mechs. When you're done, you may compile your files. eg strip1 test 5. Run mercs (not mercnet) and go to instant action. pick the mechs you want to use, including mechs for your starmates. 6. Launch a mission, then exit to dos. This leaves a userstar.bwd with your current mech selections. If you've just been playing mercs, you need not go through this step. The last userstar.bwd should still exist. Similarly, if you're happy with your selected mechs you need not repeat this step. 7. create a new file in /mercs called run.bat with the following line: .\mw2.exe -S %1scn1 -T=MISSIONS\%1.mwm -cd=G where -cd is your cd-rom drive designation. My cd-rom is mounted as drive G. 8. to launch your single player mercs mission, type: run xxxx where xxxx is the mission name. Note: If userstar.bwd is present, you can also launch from mercnet.CUSTOM USERSTAR
If you don't want to go through mercs every time you pick a new mech, it is possible to create your own userstar.bwd file. The first entry in the file should be a user gp_spec. The next two entries should be AI gp_specs. eg, userstar.wld #user gp_spec gp_spec summoner smn00std 0 leader user defend;destroy "" "" #AI gp_spec gp_spec timbrwlf tbr00std 0 follower internal defend;destroy 3 250 250 600 2 "Jimbo Jones" "" AlwaysTarget gp_spec strmcrow stm00std 0 follower internal defend;destroy 3 250 250 600 4 "Biff Tannen" "" AlwaysTarget The configuration file is a .mek file, and can be a variant from your /mek directory. Now compile it to binary form using wasm. If you included a variant, wasm will give a warning, but you can ignore it. from the /tools directory: wasm /p=.. userstar.wld This creates userstar.bwd. Copy it into your /mercs directory. This is how you can create and pilot aerotechs, tanks & hovercraft in your missions. For a laugh, try: gp_spec building bld00std 0 leader user defend;destroy "" "" Using this may crash your system.MULTI-PLAYER EXAMPLES
Multi-player missions are really only limited to four types: recon, defend, destroy and goto. All missions are combinations of these. The following examples demonstrate these common mission goals. The formatting is a little bit chaotic, but all should be revealed by the end! The latter examples aren't the only way to write the mission objectives - they're just the ones I could think of at the time of this writing. I've made it fairly easy for you to cut and paste the mission objectives into your own files. You should do this, and play around with them to see how they work. I think that they are good enough as a basis for real missions, so feel free to use them and release them in your missions. However, if you do use them, please send your missions to me, or at least acknowledge my contribution somewhere! A word of advice for beginners: When your mission has a complex set of objectives, the worst thing you could do is create the whole mission table in one go. By all means plan them out on a piece of paper - in plain english, as I have written in the examples. When you're typing them in, take them one step at a time and verify each line. Having said all that, it's now time to look at the examples!SIMPLE DEFEND/DESTROY
team 1 must destroy an object in testare1, but defend an object in testare2 from team 2 (& vice versa). testare1.wld ... gamething obj1 100 . defend;destroy "object" "inspect" testare2.wld ... gamething obj2 100 . defend;destroy "object" "inspect" Note: the objects have been labelled with both defend and destroy. This is because one side must attack the objects, while the other side must defend them. There can be any combination of defend, destroy, recon, etc... testscn1.wld en00star: 1 Destroy Visible testare1 (C 0) -1 Primary Mandatory None "Destroy..." 2 Defend Visible testare2 (C 0) -1 Primary Mandatory None "Defend..." en01star: 1 Destroy Visible testare2 (C 0) -1 Primary Mandatory None "Destroy..." 2 Defend Visible testare1 (C 0) -1 Primary Mandatory None "Defend..." IMPORTANT! As soon as the first object in the are file is destroyed, the DEFEND objective FAILS. If failure is desired only when ALL objects are destroyed, you must put them in separate files and use an "and" table.COMPLEX DEFEND/DESTROY
team 1 must defend at least one of three objects in testare1, testare2 and testare3. team 2 must destroy one object. team 1 wins when all enemy mechs are destroyed. en00star: #defend 1 of 3 objects, but only list one visible objective #these could also be groups of objects in the ARE files 1 Defend Hidden testare1 (C 0) -1 None None None "" 2 Defend Hidden testare2 (C 0) -1 None None None "" 3 Defend Hidden testare3 (C 0) -1 None None None "" #now put in the visible objective - basically to do nothing until activated 4 Wait Visible Null (C 4) -1 Primary Mandatory None "Defend" #failure only if all three are destroyed 5 Objfail Hidden en00star_4 (table) -1 None None None "" # the table must be labelled "table and" or "table or", and must proceed # the objective that calls it. # AND table activates when all conditions are true. In this case, if # objectives 1-3 have failed table and F 1 F 2 F 3 endtable #if all enemy mechs are destroyed, make defence successful 6 destroy visible en01star (C 0) -1 Primary Optional none "Destroy Mechs" 7 objsucceed hidden en00star_4 (S 6) -1 none none none "" en01star: # destroy one object only... 1 destroy hidden testare1 (C 0) -1 none none none "" 2 destroy hidden testare2 (C 0) -1 none none none "" 3 destroy hidden testare3 (C 0) -1 none none none "" 4 wait visible null (C 4) -1 Primary Mandatory none "Destroy" 5 objsucceed hidden en01star_4 (table) -1 none none none "" #OR table activates if only one condition is true. In this case, if #any of objectives 1-3 have succeeded. table or S 1 S 2 S 3 endtable note: there is very little difference between the two mission tables. Team 2's mission should really be to destroy all 3 objects, but I wanted to demonstrate both AND and OR tables in the same mission. Otherwise they both would be AND tables.DEFEND POSITION FOR 1 MINUTE
This example is based on the "King of The Hill" / "Urban Riot" concept, and is a free for all mission. en00star must remain within 150m of a nav point for 60 seconds. testnav0.wld navpoint -60000,0,-60000 90 1 0 0 0 150 goto;leave "Nav Alpha" note: unlike every other distance field, the radius is in metres, not centimetres. testscn1.wld en00star: # go to a point defined in testnav00 1 goto visible testnav0 (C 0) -1 Primary Mandatory none "goto position" # set a timer for 60 seconds, and make #2 visible. also make #1 invisible 2 wait hidden null (S 1) 60 Primary Mandatory none "defend position" 3 objshow hidden en00star_1 (S 1) -1 none none none "" 4 objshow hidden en00star_2 (S 1) -1 none none none "" # if the player leaves, then reset the mission 5 leave hidden testnav0 (S 1) -1 none none none "" 6 msnreset hidden en00star_0 (S 5) -1 none none none "" # strangely, a mission reset doesn't reset the msnreset objective, # so you'll need to do it manually whenever the mission resets :( 7 objreset hidden en00star_6 (C 0) -1 none none none "" # en00star fails the mission if anyone else succeeds 8 msnfail hidden en00star_0 (table) -1 none none none "" table or S en01star 2 S en02star 2 S en03star 2 S en04star 2 S en05star 2 S en06star 2 S en07star 2 endtableRECON/ESCAPE
en00star must recon an object in testare1, and escape to testnav0 before anyone else does. en00star must also leave a second point in testnav0 10 seconds after the recon is accomplished. testnav0.wld navpoint -100000,0,0 0 1 0 0 0 150 goto "Nav Omega" navpoint 0,0,0 0 1 0 0 0 500 leave "Nav Alpha" testscn1.wld en00star: # recon an object in testare1 1 recon visible testare1 (C 0) -1 Primary Mandatory none "Inspect" # once recon is done, go to testnav1 2 goto visible testnav0 (S 1) -1 Primary Mandatory none "Escape" # make sure that en00star departs the target area by 10 seconds 3 leave visible testnav0 (S 1) 10 Primary Mandatory none "leave area" #if the leave objective is fails, en00star is still within 500m of #the nav point. The mission should now fail 4 msnfail hidden en00star_0 (F 3) -1 none none none "" # if anyone else gets there first, mission fails 5 objfail hidden en00star_0 (table) -1 none None None "" table or S en01star 2 S en02star 2 S en03star 2 S en04star 2 S en05star 2 S en06star 2 S en07star 2 endtable note 1: Mission failure can be accomplished using two methods - objfail and msnfail. These actually do the same thing: When any Mandatory objective fails, the mission also fails. msnfail and objfail both should be used to force a Mandatory objective to fail. note 2: 500m in 10s is pretty much impossible for larger mechs. If you want to play around with this example, set the time limit to around 30s.INSPECT THEN DESTROY
This example demonstrates a method of detecting "In Progress" objectives. en00star must recon an object at testare1 and then destroy it. problem: recon won't fail if the target object is destroyed first. It will remain "In progress" forever. Since there isn't any way to directly determine if a goal is still in progress, the mission will never end. solution: we set up a dummy objective, and make it fail upon startup. Then if the recon is successful, make the dummy successful. We'll test the dummy instead of the recon objective. If the recon is still in progress, we get a fail result. If the recon has been accomplished, we get a success result, en00star: #recon an object at testare1 1 Recon visible testare1 (C 0) -1 Primary none none "inspect" #a dummy objective, used as a toggle switch. it fails at startup #but succeeds when recon is successful. The dummy must be reset #before a new state can be put into it. 2 Wait hidden null (C 2) -1 none none none "dummy" 3 Objfail hidden en00star_2 (C 0) none none none "" 4 Objreset hidden en00star_2 (C 1) none none none "" 5 Objsucceed hidden en00star_2 (C 1) none none none "" #we can destroy the object at any time 6 Destroy visible testare1 (C 0) -1 Primary none none "destroy" #this is the only other Mandatory statement. 7 wait hidden null (C 7) -1 none Mandatory none "" #start the testing when the object has been destroyed #if correct order is followed, mission succeeds. 8 objsucceed hidden en00star_7 (table) none none none "" table and S 2 S 6 endtable #if object destroyed before reconned, mission fails 9 objfail hidden en00star_7 (table) none none none "" table and F 2 S 6 endtableAI EXAMPLES
AI stars exist for one purpose... So players can shoot them! There's no challenge in shooting a sitting duck, so I've cooked up some AI mission table examples for you to play with. They're very short and rather unimaginative, but typical of what you'd expect from enemy AI stars. This is partially due to the fact that it is harder to get the AI to perform multiple tasks in missions such as a simultaneous defend/destroy objective, but mainly due to my sheer laziness. All of the examples can be used with the following gp_spec. testens1.wld # make sure the targeting range is large gp_spec hnchback hch00std 1 leader internal defend;destroy;shutdown 1 250 800 800 1 "Enemy Hunchback" "killer" AlwaysTarget Remember that AI mechs only work with single player missions.DESTROY USER
An AI mech is set to attack en00star. 1 Destroy Visible en00star (C 0) -1 1 0 Primary Mandatory None "Destroy..."PROXIMITY ACTIVATION
An AI mech is on guard duty. When the player comes within 800m the AI mech will attack. There are a few ways to get this to work, depending on what is required. # The mech is active and targetable: 1 wait Visible Null (C 0) -1 1 0 None mandatory None "Look for enemies" # The mech is sleeping: 1 sleep Visible Null (C 0) -1 1 0 None mandatory None "asleep" # The mech is patrolling a nav point, testnav1. It will circle in a 50m radius: testnav1.wld navpoint 0,0,0 0 1 0 0 1 50 defend "Nav point" testscn1.wld testens1: ... 1 defend Visible testnav1 (C 0) -1 1 0 None mandatory None "circling"REACTION ACTIVATION
An AI star will be shut down until activated when en00star completes its third objective. This commonly occurred in the MW2 instant action missions, where a new mech star would become active once the previous mech star was destroyed. 1 Destroy Visible en00star (C en00star 3) -1 1 0 Primary Mandatory None "Destroy all enemy 'Mechs" 2 Shutdown Hidden testst11 (C 0) -1 0 0 None Optional None "Shutdown at start"DEFEND OBJECT
An AI star will patrol an object and will attack anyone coming within its targetting radius. #defending an object in a testare1: 1 Defend Visible testare1 (C 0) -1 1 0 Primary Mandatory None "defend..." #defending an RMG (trainctr): 1 Defend Visible trainctr (C 0) -1 1 0 Primary Mandatory None "defend..."THE END
Well, that's it. Now you know almost everything I do! (hey, I have to keep a few secrets for my missions!) Anyway, questions may be directed to me at (my new address): ehwong@tig.com.au this faq can be located at: http://homepages.tig.com.au/~ehwong/mercstable.htmDocument History
(Dates are in dd-mm-yy format) 8-1-97 HTML-ized it, and made some minor corrections. 4-1-97 Added sections on RMGs, AI stars, Affiliations, the declaration tables, extra stars, userstars, single player missions and AI examples.12-12-96 Initial document released as "Mechwarrior 2:Mercenaries Mission Table Info Sheet"