Loading, Please Wait... HOME
T h e   C a r t o r i u m

Training - Scripting

Basic Scripting
(World Knot Example)

by Sonork

      Tools Used
Loathing
 
      Resources
[none]
 
      Prerequisites
Basic Loathing Usage

      Basic Scripting
Starting the Game with a World Knot

You must first have the map you will be using already prepared and all intended units placed. Say you have four Bowmen, 12 Berserks, and four Heron Guards as your player units. A real time saver: group each of your units separately. In other words, create a map action for each unit type (Bowmen, Berserks, and Heron Guards). Under the column named Map Actions, press New. Under Name, type out the group's name. Keep the map action type as None. Press OK. Moving over to Parameters. Press Add Custom... In the top line type: subj . In the second line, go down two to monster_identifier. Press OK. Now click on each of the particular units. In this case, you should have three map actions: Bowmen, Berserks, and Heron Guards. Now make another Map Action labeled: Player Units. Under Parameters, click on Add, and finally hit Link. While Link is highlighted, go over to Elements. Click Add..., click on Bowmen. Again click Add..., then hit Berserks. Do the same for the Heron Guards.

What just happened there? Well, you just made four map actions identifying each group of your player units, and you linked all of them together, calling it your Player Units. Now, whenever you need to call upon your player units, you won't have to click on each individual unit. You can call upon all player units, a certain group, or of course, individual units. I must confess; I just made you go through the long way of labeling groups of units. Now you know what happens, and why it happens.

Go to your map by clicking on the preview tool. Add 25 thrall, in a box formation. Highlight the thrall by clicking your mouse, and dragging it over them. Click on Selection in the menu bar, and choose Create Data Container. Name it Thrall. Go back into map actions, by clicking on the map actions tool. See your Thrall? Just a little quicker way of labeling units. What if you have six different groups of thrall? Well, I'm sure you wouldn't want all of them in the same group, so give each their own individual name. Something like: NW Thrall, Initial Thrall, Wandering Thrall... you get the idea. Just like the Player Units are grouped together, you will want to group all the enemy forces together. Label the map action as Dark Forces, and link all of your dark forces to here.

You will need to script in endgame conditions. When the player wins, and when the player loses. Make a new map action, and call it: Player Wins. Type: Endgame Condition. If you want it to be initially active, check it. If you plan on transporting your units in through something like a World Knot, you do not want this to be initially active. I will explain later. Under Parameters, click Add... and hit Light Victory. If you don't want a celebration, add No Celebration to the parameter list, otherwise only have Light Victory in the parameters list. If the game continues endlessly when you should win, add true to the Light Victory elements. It isn't a bad idea to add the true to each element you want to be true. Now make a new map action labeled Player Loses. Again, if you plan on transporting your units in through something like a World Knot, you do not want this to be initially active. I will explain later. Instead of Light Victory, add Dark Victory. Celebration/no celebration is up to you.

So far you have at least eight map actions: your unit groups, Player Units, Dark Forces, and endgame conditions. If you play the game now, nothing planned will happen. The enemy will attack, if you get too close, but nothing has really been scripted yet. You just made the initial set up of who will do what you later script in. Lets add some real scripting now.

As Ares put it in his tutorial, TUNI (test unit) is your best friend. This little gem allows you to test certain conditions, and when true, gives orders to do something. Covered more in depth in the Test Unit explanation. An example:

Map Actions
   TUNI. Initials dead?
      Expiration Mode: on successful execution
      Parameters Elements
      Unit Count Equal To 0
      Activates On Success Player Loses
      Link Player Units

What this map action does is immediately on start up, starts testing how many Player Units (the Link) there are on the map. If, and when all the Player Units are exterminated, this map action calls up the new map action: Player Loses. If you made a level that had a goal of killing all of the enemies, instead of a location-type goal, you would link the map action to your Dark Forces, and Activate Player Wins On Success.

Earlier, I stated that, if you plan on transporting your units in through something like a World Knot, you do not want endgame conditions to be initially active. It should be fairly obvious, but if it isn't, here is the explanation: once the game starts, there are no players on the map, as they are being transported in. So, the endgame condition kicks in, and the player loses. This of course applies to unit testing for unit count equal to 0; like the above example. The way around this is to have another action trigger the "TUNI Initials Dead?" action. In one of my maps, I had the units transported in (explained later), and had a "TUNI Player out of world knot?" action, which defined an area around the world knot. When the unit count equals zero, then the game could (eventually, as you will see) run the "TUNI Player Dead?" action.

O.K., but how do I make a world knot, and make it active? You must first have your world knot models placed on the map. By the way, you don't HAVE to have four world knot models in order for it to work. You could, for example, have one world knot model facing a steep embankment, and when the player passes between the two, the world knot action kicks in. Anyway, to get things started, you have to make a quite few map actions. First, make a Model Effect (MOEF) action called Power Up Pylon #X, where X = the pylon number. In the Parameters column, there will be a parameter labeled: Model (mode, model_identifier). Highlight that parameter, and click on the world knot model. In the parameter column, add the following: Duration, New Permutation, and Permutation Only. Add the element 3 to the Duration parameter. The number 3 means that the pylon will be active for 3 seconds, so you can use any number you want. Bungie uses 3, so I did the same. Make a new MOEF action for each pylon. Make sure you don't label the same pylon more than once. Each model effect should have its own pylon. If you have the traditional four world knot models, you should have four unique model effects.

If you are powering up the pylons, you have to power down the pylons, right? Shortcut: highlight the four MOEFs you just made by clicking on the last, and dragging your mouse upward to the first. In the Map Actions column, click Duplicate. Double click on each of the duplicates (or single click, then click Edit), and change the word "up" to "down". You now have four MOEF actions to power up the world knot, and four to power it down. Just like the Player Units, and Dark Forces, you will want to place them into groups; one to power up, and one to power down. This is achieved through Action Lists (ACLI). Make two ACLIs; one labeled Power Up World Knot, and the other labeled Power Down World Knot. In the parameters column, add Actions to Activate, and add the respective elements for each ACLI. There will be four for each ACLI. Now when you need to power the world knot, you only need to reference one element. The world knot won't actually do anything, yet. It is only set up to operate, when told to.

The Geometry Filter (GEOM) is very similar to the TUNI, except that the GEOM doesn't test units, it tests a particular location. Points placed on the map define the location, or the location can be the entire map. Why have a GEOM for the entire map? Beats me, I haven't figured that one out yet, I do know that it is used fairly often, though. At any rate, I will show you what I did to transport units in to the world knot. First, I made a GEOM action labeled: "Player In Knot?" Trigger Time (seconds after action is activated before actually following through): 1.00 to 1.00. Expiration Mode: Never. a Only Initial Delay. In the Parameters, I had a Link to each group I wanted transported in at that particular time. Polygon Points-arranged around the outside of the world knot by clicking on the map's landscape. (For some reason you must arrange the points in a convex, clockwise fashion.) Closed Polygon; I didn't want a gap in the polygon. Tested items Inside Field Name = subj (remember labeling each individual unit...subj, monster_identifier was used). Results Action Identifier = "Player Enters". Activates on Failure = "Power Up World Knot", "Player Enters", and "Player Out?" Activates on Failure? Of course...Is there anyone within the polygon points yet? No-the test failed, so the actions listed are activated. I suppose the Expiration Mode could be "on successful execution"; I just used "Never"-no big deal.

You saw how the Power Up World Knot was made. Now to get the player units on to the screen; I assume you already have your units invisible, otherwise you would not need to transport them in. This is accomplished through the Unit Control (CTRL). In the parameters, I added the following: a link to each group I wanted transported in, World Knot Visibility Flag, Visibility Flag, Received Use Control Flag, and Deactivates on Success = "Player In Knot?"- I don't want the game to continuously check if there are any units in the world knot after they appear, so I deactivated it. The last action activated by the GEOM was 'Player Out?". For this, I used TUNI, although a GOEM would probably work as well (and would be easier to do - what do you expect; I don't know jack s--- about programming). Again linking to each group I wanted transported in. More Polygon Points, and Closed Polygon. Unit Count Equal To 0. Activates on Success = Power Down World Knot, and Initial Wights Attack.

Lets look at what has happened so far. All units are named, and are grouped into different teams. By the way, you can have a third enemy, that is an enemy to the first two. It's pretty cool to watch two of your enemies attacking each other (talk about scripting...). A world knot was constructed, is operational, and it transports your units onto your map. THAT'S ALL???? As I said before; if you think map making is stressful, do not even attempt scripting a level! If you noticed, the endgame conditions haven't been introduced yet. I tried to activate them when the 'Player Enters', but that was still too early- the game kept ending prematurely. To solve that problem I activated the endgame conditions after the wights had successfully received the attack command. For extra insurance, I placed a delay of 4.00-5.00 seconds. That way, I knew that my units would be on the map, and detectable.

This all was just to make an initial, somewhat eventful start to your level. I will go through all of the action types that I know, and their parameters--not in any particular order. I know most of the actions that you will want to use, and how to manipulate them. Admittedly, I don't know ALL the actions, but when you RTFM (I had to use it SOMEWHERE!), it appears as though nobody really knows all the actions, anyway.



Attack

When it comes to attacking, wights are a special case. You can use the Attack (ATTA) command, or the Suicide (SUIC) command. The ATTA is more universal, so that is the one I used for this particular map. When attacking, change the expiration mode to Never. I don't know if that makes a real difference, but logic tells me that I don't want the enemies to stop until one of us is dead. If I'm dead, game over. If that group is dead, then they can't attack anyway. You can set the ATTA to attack all enemies, or specific targets. Also, you can set it to attack the nearest target. When attacking the nearest target, all enemies will gang up on a single unit. When set to attack all enemies, the units will scatter about seeking enemy units to attack. If you have one of your Player Units on one side of your map, and all the others in a group, some of the attacking units will wander away from your larger group to attack your single unit. There are positives and negatives for both. Attacking specific targets is just like attacking the nearest - they all gang up on those specific targets, and ignore the others. They will attack other units, if the other units get too close. With wights, and certain others, you will want to use special ability when attacking. Wights won't actually do anything unless they are told to use special ability. They will wander up to the player, and basically stand there until they realize that they are next to an enemy, then they will flee. A myrkridian giant, on the other hand, has two attack options; its regular attack, and its special ability. As I pointed out before, upon activating the Initial Wights Attack action, the 'Player Dead?' action was activated, using the parameter Activates on Activation. The parameter Deactivates on Activation = 'Player Out?' was added - I don't want the game to constantly check if my units are out of the GEOM. Attackers - Click on the units that you want to attack with. Can't get any simpler. Targets - Click on the units you want to be attacked. Umm...yea. Attack Ground Location - Click on your map where you want to attack. Say you have a pile of mortars and you want a fetch to throw a bolt of lightning in the middle of it once a player is near. This would suffice. Don't Retarget Flag - From what I gather, if you have something like a group of gohls; say 10. Five of them have specific targets. The other five would be used to attack the rest of the targets. The Polygon and Closed Polygon are the same as in the GEOM. Reversed Polygon Flag - Instead of testing INSIDE the polygon, the test is directed to the OUTSIDE of the polygon, ignoring what is inside the polygon. The same applies to the GEOM and TUNI.



Suicide

The SUIC attack, specifically for wights, has some very different parameters that can be used for your wight needs. The subject parameter defines the wights you want to use for this map action; you can use up to 64 wights. Personally, I prefer to have each wight act independently of each other when using the SUIC. Visibility Radius = "the area around the unit he can see". A number is placed in the elements column, and I believe the number represents world units. If I'm not mistaken, I believe Bungie uses 26. If a unit is outside of the set radius, the wight cannot see it. Fear Duration--Basically, if you have your bowmen facing a wight, the wight won't attack, but if they are facing away from the wight, the wight will wait for the time you set before attacking. You've seen it before; you see a wight wandering around, out of range until you turn your back on them. The wights then think you are no longer paying attention to them (forget about them; they aren't a threat- they're just wandering around over there), then the wights will go on their suicide mission. Enemy Detonation Threshhold - the number of adjacent enemies that must be present before detonation. If you set this number to 3, and have two berserks wandering around, teasing the wight, the wight won't attack-- until you bring in a third unit. Power Over Distance Threshhold - place a number, representing a radius; if a more powerful unit is within the set radius, the wight will attack the more powerful unit instead of the original/closer unit. Say a wight is coming at an archer, on his suicide mission, and a berserk is suddenly within the set radius, the wight will abandon the archer, and attack the berserk instead. Detonation Radius - the detonation effects that which is within the radius. Basically; this is the radius around the wight, anything outside of the radius will not be effected by the detonation. Minimum Power Threshhold - If the enemy's power is less than the number provided, the wight won't attack. Initial Delay - Instead of having the wight attack immediately, you can use this parameter to have the wight wait, up to the maximum # of calls you set, before starting the suicide mission. You pick the maximum, and the game will randomly pick a number anywhere from 0 to the number you selected as a delay. Each unit is evaluated separately. Activate on Casualty - Like the ACLI, it is a list of actions to activate when there is a casualty in your group of wight subjects, in this map action. Inhibition - If there are units that are still in delay, they will not be created (activated?). Never Avoid - Just as it implies; a true suicide mission. The wight will avoid nobody. Place a wight on your map, but don't script anything for it. Send one of your non-missile units near it. The wight will avoid the unit by walking away. When it reaches a certain point, it will stop and do nothing, unless approached again. Wights absolutely need scripting for them to do anything.



Unit Control

The Control (CTRL) action is used quite frequently. It is used to make units visible/invisible and types of visibility used. You give a unit something to carry, change its health, and make it controllable/uncontrollable, among others. Monsters - Those you want to control (click on the individual units). Received Use Control Flag - If you have a unit that is uncontrollable for whatever reason (like when the berserk picks up the scepter), and you want the player to have control of that unit, use this parameter. Ignores User Control Flag - If you want to take control away from the player, and script the actions of the unit(s). Does Not Autotarget Flag - The unit(s) will not automatically attack nearby enemies. If you intend on using this parameter, you must add 'true' to the elements column. Cannot Be Autotargeted Flag - The unit(s) will not be automatically targeted; as in 'Attack All Enemies'. This, too must be set to 'true' if you intend on using it. Delete Monsters - Removes units from the map. Can be used to change the difficulty of the level, or if you have an initial battle scene, and you don't want any residual monsters when the level starts. Fade Flag - Fades the monster(s) off the map. If you want a "meeting of the monsters", where some will not contribute to the game; you just want them to leave- uncontrollably, of course. Visible Flag/Invisible Flag - makes unit(s) visible/invisible. I have had monsters that were not yet activated come and attack my player units. I solved it by making them initially invisible, and upon activation, made them visible. Monster Source Flag - I'm not quite sure, but I believe that you use this to identify an object as a source for generating monsters. Kind of like a world knot. Health Fraction - Used to increase or decrease the health to a number between 0 and 1. New Monster Name - In Fear, there are string lists of monster names. Count down the list to the name you want to use - use that number here.Experience - Numerically sets the experience that unit has as in how many kills the unit obtained; naturally, higher is better. Levels Survived - Sets the number of levels the unit has survived. It is not necessarily true. You could, for example set the number to 35, even though there aren't 35 levels to survive. Use Monster's Entrance Flag - Make the monster appear using its entrance projectile group. Some have them, some don't. World Knot Visibility Flag - Makes the monster appear as if appearing through a world knot - world knot not required. Tain Visibility Flag - The Tain appearance method is applied - different from world knot visibility. Try them both, and use the one you like best. Magic Visibility Flag - They're magically delicious...I mean they magically appear/disappear. Refer to Dwarf Pathfinder. Set Marker Height - Adds the value you provide to the monster's marker height. Give Monster Artifact or Projectile - When activated, the monster suddenly has the item you gave. The monster will not go to retrieve it; it is all automatic. If you want a monster to go to an object, and pick it up, don't use this. Ammunition - Sets the amount of ammo the monster has. You can give an archer 150 flaming arrows, or you can take them all away. This parameter ignores the limit set in Fear. Remove Artifact From Unit - Takes away an object a monster has. The monster does not drop the item, the item is basically deleted. Reinforcements Alert - The statement: "New Units Received" is audible. Transparent Flag - Makes unit half-visible. Maybe for a ghost? I don't know.



Test Unit
Again, from Ares: "TUNI is your best friend". It will be used for nearly group of units on your map. You test units for the presence of other units, their health, their location...and when the set conditions are true (or false), you usually activate/deactivate other action(s). The expiration mode is usually set at 'on successful execution'. Once the TUNI is successfully executed, you usually don't need it anymore. Unit Count Greater Than - Tests for a unit count greater than the number you provide. Unit Count Less Than and Unit Count Greater Than - This should be obvious... Polygon - Make a polygon. The polygon is used for the test. Make sure it is clockwise and convex. Click on the landscape to place the points. On a side note; concave vs. convex: doesn't it all depend on the orientation between your view and the polygon itself? If I look at the front of the letter C, it is concave, look at it from behind and it is convex. So, why is there the statement: "must be clockwise and convex"? If anyone can explain this one, please do. Closed Polygon - Connects the last point to the first, closing the polygon. Reversed Polygon - Tests for Items OUTSIDE the polygon. It is assumed that the test is for inside the polygon unless this parameter is inserted. Vitality Greater Than and Vitality Less Than - Tests for vitality being greater than/less than the number provided; between 0(dead) and 1(full health). Change in Vitality - Tests for greater percent change in vitality for the entire group, than the number (%) you provide. Power Greater Than and Power Less Than - Tests for the group's power being greater/less than the number provided. Difficulty Greater Than or Equal To, Difficulty Less Than or Equal To and Difficulty Equal To - Tests for the level of difficulty the player chooses. Power Ratio Less Than and Power Ratio Greater Than - Tests the power ratio (between player and enemy?). Received User Command - Tests if player gives the unit a command. Object Held and Object Held By All Units Flag - Tests if a unit or all units are holding the object,respectively. Object Test Radius - Radius to test for an object. The radius consists of at least one point (explained later); the second point is optional. The first point is the center point. If you have a group of 25 thrall in a box formation, and click on the ground beneath the center thrall, the center of the group is the center point. If you then click on a point just outside of the thrall, then the object test radius is right there. It does not move with the thrall, if the thrall are moving. Radius About Center Point - If you didn't place a second point for the object test radius, you need to add a number here, defining the size of the radius. Enemy List - The list of enemies you wish to use in conjunction with object test radius. If you fail to provide a list, then all opposing team members make up the list. Enemy Closer Than Radius - Tests for enemies that are closer than the radius you provide to the units tested. If you use this, and you will, remember to Link both the subject(s) being tested, and the enemies that are being tested for. Clarification: you have 8 maul lying in wait. You set the enemy closer than radius value to 25. You want the enemies the maul are testing for to be the players berserks only. You need to add 'Link' to the parameters list, and add these particular 8 maul and the berserks to the elements. If the archers waltz into your defined radius, the maul couldn't care less about them; they aren't linked to this action. Ignore Invisible Units Flag - All magically invisible units are ignored. This is how the dwarf pathfinder walks past everyone undetected. Units Must Be Selected Flag - Tests whether all units are selected or not. It appears as though Bungie warns against the use of this parameter, as the warning: "WILL CAUSE NET GAMES AND REPLAYS TO GO OUT OF SYNC" is added. Ammunition Greater Than - Tests if the unit has more ammo than this amount. Mana Percent Greater Than - Tests the units fraction of mana; a number between 0 and 1. Unit is Taunting - Is the unit taunting? Unit Has a Waypoint Near - Tests if the unit has a waypoint within 3 world units of a given point. This is a true/false test. You don't place the point, so what is the given point?



Geometry Filter

As I said before, GEOM is very much like TUNI. GEOM tests for things in relation to a particular geometry. I listed a few GEOM parameters near the beginning, so I won't list them here. Object Type - Checks for this type of object. Object types can be obje, subj, enem, wipp... obje = object, subj = subject, enem = enemy, wipp = wight pus packet. If you don't know the four letter extensions, open up Fear, and explore. For instance, to find wight pus packet, go into projectiles, find wight pus packet, and double click on it. In the upper left will be the name, wight pus packet, and the four letter extension assigned to that object, wipp. Units can be subj, obje, or enem, depending on your needs. When we initially grouped the units, we clicked on add special in the parameters and placed: subj in the first box. That made the units subjects. To make them enemies, you could do the same, except use enem instead of subj. Object Identifiers - Checks for the object identifiers within the geometry that you click on. Circle Centerpoint - Centerpoint of an intended circle. A radius will be needed to accompany this. Circle Centerpoint (Monster) - The monster you chose is the centerpoint of an intended circle. Again, a radius is needed. Circle Radius - The radius I mentioned earlier - for the two centerpoints. Health Fraction Greater Than/Less Than - These two are the same as the two vitality tests for TUNI. ÜEntire Map - I haven't seen this one used. Entire map type geometries? Entire Map - Geometry consists of the entire map. There is no need to place points! Results Action Identifiers - Location to place results of geometry test. This is a little complicated. This, along with others will be explained a little further down. Tested Items Inside/Outside Field Name - Takes the field name (subj, obje, wipp...), and defines the field name in the results action identifier in which to place monster or object identifiers that are either inside or outside the geometry, respectively. Tested Items Inside Location Field Name and Tested Items Outside Location Field Name - I must confess: no clue whatsoever. I haven't seen it used, so I really don't know what purpose they serve. Maximum Number of Items - Limits the number of items that can be added to the result. Use Markers Instead of Monsters - Monster positions won't be used, monster markers will. Only Use Uncreated Monsters - Will only use monster markers that have yet to be created. Tests For Monsters on a Given Team - I can't describe it better. Tests for Berserk Monsters - Again, I can't describe it better.

Now to try to explain this garbage! This is most often used to change a monster from (subj, monster_identifier) to either (obje, monster_identifier) or (enem, monster_identifier). I'm still not quite sure why this is done, but Bungie does it in nearly all levels. Basically, this is what happens. Another map action titled Light Forces Obje is made with no parameters. Finally, A map action titled something like 'Light Forces', and the light units are identified as (subj, monster_identifier). Next, a GEOM (initially active) with a title like 'Light Forces subj to obje' is made, expiring on execution. It is Linked to the Light Forces. Entire Map = true. Tested Items inside field Name = obje. Results Action Identifier = Light Forces obje. I believe this is what happens: At start-up, the geometries consist of the entire map, and the thing being tested is the Light Forces (Link). Since the Light Forces are in the geometry (entire map), the results of the test (Light Forces-the individual monsters) are placed in the map action called Light Forces obje. Tested Items Inside Field Name = 'obje', so the monsters are now identified as the following: (obje, monster_identifier). The Light Forces have been changed from subjects to objects. I have even seen actions taking this, and making the obje to enem using the same steps. If someone can explain this better, please--I am begging you to do so. Why not just start out labeling the units all three: subj, obje, and enem? Well, some levels do, why other levels don't is beyond me. Different people scripting different levels, I guess. If you read the map actions for 'Outside the Keep' you will encounter some other uses, some that can actually make sense, even! For example, when the Light Forces are approaching the outer wall; before encountering the castle wall, you see the Dark Forces moving into their positions. The following is what is scripted:

TUNI (Town Gate Archers?)    continued in Part 2
   Link = Light Forces.
   A polygon is placed on the outside of the wall entrance, and is closed.
   Activates on Success = (Which Town Gate Archer Targets?)
GEOM (Which Town Gate Archer Targets?)
   Same polygon points used for the TUNI, and closed
   Tested Items Inside Field Name = obje
   Results Action Identifier = (Town Gate Archer Targets)
   Activates on Success = Town Gate Archers Attack
   Activates on Failure = (Town Gate Archers Into Position)
   (Town Gate Archer Targets)
ATTA (Town Gate Archers Attack)
   Link = Town Gate Archers
   Link = Town Gate Archer Targets
   Activates on Activation = (Irrelevant)

   Firstly, the Light Forces are all (subj, monster_identifier). The game is testing if any of the Light Forces have come into the polygon. If they have yet to reach the polygon, nothing happens. Once a single unit from the light forces enters the polygon, the GEOM starts its test, and the TUNI expires because it was successfully executed. Every unit that enters the polygon results in that unit type (subj) being placed into the map action called (Town Gate Archer Targets). The tested items inside field are now obje names. This changes the light forces from being (subj, monster_identifier) to (obje, monster_identifier). As soon as that happens (Activates on Success), the Town Gate Archers are given the ATTA command. Notice, that when you move your units out of the polygon (Activates on Failure), the Town Gate Archers stop attacking, and move back into place. The ATTA sequence is linked to both the Town Gate Archers, and the Town Gate Archer Targets. The light forces are not Town Gate Archer Targets, unless they are in the polygon. This application makes sense; the prior one is questionable, still.



Endgame Condition

We saw most of the ENDG parameters, but there are a few more that you can use. Failure Flag - I believe this is used when you have a game with a mission. If you finish the level, but fail to meet the mission objectives, use this parameter. This of course only applies to the players units. Suspend Flag - This is used when making a multi-player map, and when certain criteria are met, you want the game to go into a sudden death mode. Winning Team - Displays winning team? Multi-player, probably. No Celebration - If you don't want the winning team to crack open the Jack Daniels bottles, and pour the liquor all over each other.



Movement

This is one of those actions that work for Bungie, but I can't duplicate the simple way to save my life! I)ll show you what I mean later, after the parameter explanations. Monsters - the ones you want to move. Waypoints - the points on the map you want your monsters to move to. Click on the map where you want the waypoints to be. Cycle Flag - The monsters all get on their unicycles and parade around like clowns. I'm sorry; I don't know where that came from. The monsters continuously cycle through the waypoints. (Point 1 to 2 to 3 to 4 to 5 to 6 to 1...). Back and Forth - Instead of going from the last point to the first, the monsters travel from the first waypoint to the last; turn around and go from the last to the point prior, etc. until they reach the first. They then start all over again. (Point 1 to 2 to 3 to 4 to 5 to 4 to 3 to 2 to 1...). Preserve Target Flag - Maybe you can tell me what this is for. Formation Index - Using the numbers Loathing provides, chose the one that represents the formation you want the monsters to use when traveling. Subtract 1 from the numbers used when actually playing the game. Circle = 9, not Ü1. Final Facing - The direction you want the monsters to face at the end of their journey. Click on the ground. An arrow will appear on the ground. Move your mouse until the arrow faces the direction you want. Object to Point At - Monster to Point At might be better. Click on the monsters you want the moving monsters to face at the end of their journey. For some reason, Bungie can set multiple waypoints in each action, and I can't. All it takes is clicking on the ground, creating a path you want the monsters to take. When I do that, the monsters don't do anything. Its like I'm giving them directions in Swahili. I had to make a single action for each waypoint I wanted the monsters to travel to. Here's what I did:

(a)
MOVE (Move Thrall #3a) (Exp. Mode: on trigger, trigger time: 3.00 to 4.00, Only Initial Delay)
   Monsters = I clicked on the each thrall in group #3
   Waypoints = I clicked on a location on the map, not too far from where they currently stand
   Formation Index = 4 (Box)
   Final Facing = 34.45 (click on ground, moved mouse in direction I want thrall to face)
   Activates on Success = (Move Thrall #3b)
   Deactivates on Activation = (Move Thrall #3r)
b
   MOVE (Move Thrall #3r) (Exp. Mode: on trigger, trigger time: 3.00 to 4.00, Only Initial Delay)
   Monsters = I clicked on the each thrall in group #3
   Waypoints = I clicked on a location on the map, not too far from where they currently stand
   Formation Index = 4 (Box)
   Final Facing = 89.65 (click on ground, moved mouse in direction I want thrall to face)
   Activates on Success = (Move Thrall #3a)
   Deactivates on Activation = (Move Thrall #3q)

It took me 17 map actions to accomplish what should have been only one! I put the trigger time and the initial delay in so all the thrall could get into position before moving on to their next destination. The thrall ended up looking like they were marching--not too bad. Once the thrall successfully reached the waypoint, the next waypoint movement was activated, and when the next waypoint was activated, the last waypoint was deactivated. The 17 map actions were basically one, with a Cycle Flag parameter thrown in. Also, I didn't want the thrall to march endlessly, even if being fired upon, or if a player unit ended up too close to the thrall. After the MOVE (Move Thrall #3r) action, I placed two TUNIs. One to test the vitality of the group--are they hurting? Once successful; vitality < 1.0, activate an attack. The other was to test if any player units were near. Enemy closer than radius = 15. Link to players units, and to the thrall. Once successful; player within the radius, activate the same attack used in the first TUNI. The ATTA had a Deactivates on Activates = both TUNIs.



Meander Action

MEAN is a basic wandering, where you provide specific points to wander to. There is no particular order to follow. The monsters wander from one point to the other, randomly. Meanderers - The monsters you want to meander. You can have a maximum of 64 meanderers. Meander Points - The points you want the meanderers to meander to. Again there is a maximum of 64 points. Clicking on the map places the points. Be aware of the terrain. A monster cannot visit a point that is impassable. Activate on Casualty - This is a list of actions you want the meanderers to take if there is a casualty among them. (Attack, Rout, Make Invisible...). Scan For Threats - Do you want the meanderers to scan the area for any threats; acknowledge the presence of any threats? Threat Scan Width - The number of cells away is the scan width. Use this with Scan For Threats. Say you have a group of wights meandering around in a certain area. If they are not set to scan for threats, a player unit can come up to the wight and slap it; the wight will do nothing but continue to meander.



Action List

There isn't much to the ACLI. Actions to Activate - Just a list of actions to activate-remember powering up the world knot? Random Selection Flag - If you have more than one action listed in the actions to activate parameter, this tells it to randomly select one from the list. Activate Only One - Starts at the top of the actions to activate list. If the first action won't activate, it goes to the second, and so on. Chance of Activating - If you want the actions to activate only sometimes. I'm guessing here, but I think that 1 = 100%, and 0 = 0%. Actions to Deactivate - A list of actions you want to deactivate. Chance of Deactivating - See Chance of Activating.



Observer Movement

This is one of the more fun things to play with, once you get it to work. When you first choose the observer movement (OBMO), there will be two parameters automatically listed. The first is, as always; the name of the action. The next is the Camera Mode - Controls how the camera acts by assigning a number to it. Ü1=User control - The user controls the camera, just as you do during normal game play. 0=Uncontrolable by user - Player cannot control the camera, no matter what. 1=Controlled by map actions - The camera "has a mind of its own". If you are going to use the OBMO, most likely you will use 1. 2=Object tracking - I'm guessing here, but I think it is very much like number 1, but the camera would follow something like the debris from an explosion. Next are the rest of the parameters to choose from. Destination - This is where you want the camera to stop; fairly obvious. Final Facing-The direction the camera is pointed when it reaches its destination. You get the final facing by clicking on the ground, and dragging your mouse until the arrow points where you want the camera to point. Viewing Subject - If you want the camera to view a particular unit, click on that unit. Linear Interpolant Separation - Basically, it's the speed at which the camera moves in a linear direction. The lower the number, the slower the camera moves. Angular Interpolant Separation - Another guess; the angular speed, or the speed of the camera when it turns. Maximum Time Before Cutting - If you set up an OBMO, and the camera does not move, it is probably because it has too long of a distance to travel. Place a number in the elements (which I assume represents seconds). If the camera takes longer than the provided number to reach its destination, the camera will just cut to the destination point. Don't Return User Control Flag - If you don't want the player to move the camera when it reaches its destination. Useful if you want the player to watch some sort of action taking place when the camera is done moving; such as a conversation between two units. Shake Camera Flag - If used, the camera will shake (obviously). Shake Duration - How long, in seconds the camera shakes. The default is eight seconds (that's pretty long!). Shake Intensity - How violent the camera shakes. The default is 0.5 WU; I don't know how intense that is. I'm guessing (again) here, but it is probably the middle; 0.0 being the minimum intensity, and 1.0 being the maximum.



General Action

Again, two parameters are automatically added. The first, as always is the name of the map action. The second is Command Type - gives a type of command, based on the number assigned to it. The numbers and their command type are as follows. 0=stop, 1=scatter, 2=retreat, 3=special ability (immediate), 4=guard, and 5=taunt. I have seen this used most often when pertaining to wights. You want them to use their special ability (explode) immediately, when this action is called. This obviously is not the only instance where one would want to use the GENE. The only unique parameter to choose is Monsters - As stated before; those units that you want this map action to affect.



Harass (for Ghols)

The Harass (GIRL) is specifically intended for Ghols (duh!). Since Ghols are unique little pests, they should have their own map action. Some of the parameters have been covered before, so I'm not going to waste my time going over them again. Initial Delay-- The number of consecutive calls to this action before the subject(s) begin evaluation. Reevaluation Delay - The number of consecutive calls to this action before the subject(s) reevaluate the situation. Projectile Radius - The radius around the subject(s) to look for a projectile to throw. The projectiles could be anything a gohl can carry. Guard Waypoint - If there isn't an enemy within the unit's visibility radius, the unit goes to this waypoint.


Netgame Type

Basically, the netgame type (NGTY) is used if you intend to do some scripting for a multi-player map. Using a number between 0 and 13 identifies the scoring Types. They are all listed, and I am getting tired recreating those lists! Winning Team Index - Which team is winning at this particular point in time? Winning Team Can Tie - If true, this allows the winning team index to succeed if there is a tie between the team in the winning team index, and another team. Winning Team Winning Score - Before winning, the winning team must have, at minimum, the score provided.



Platoon

The platoon (PLAT) is associated with platoon movements and squads. The PLAT automatically assigns five parameters to the map action. As always; the name is first. The second is the Initial State. What is the platoon doing, initially? It is linked to another map action; usually a platoon movement action. The third is Initial Squads - Initially, which squads are involved in this platoon. Centerpoint is the fourth, and it is supposedly is the initial centerpoint of the platoon, although I have seen Bungie place the centerpoint a long way away from the actual centerpoint. I don't know why they do that, so I would just place it at the platoon's actual initial centerpoint, and be done with it. The last is the Facing, which is the direction the platoon is initially facing. Click on the ground, and drag your mouse until the arrow points in the direction you want. The Allies is the only unique parameter provided, and it is a list of other platoons you designate to help when this platoon is attacking.



Platoon Movement

The platoon movement (PLMO) is very much like any MOVE action. This action automatically provides three parameters + the name: The Waypoints, Waypoint Radii, and Radii. The Waypoints are the points you want the platoon to move to. The Waypoint Radii are radii around each waypoint; I don't think I have ever seen this used, and I don't really know what it is for. Really, what could it possibly be used for? The Radii are the minimum and maximum radii for detecting and attacking enemies. Again, what could the Waypoint Radii possibly be used for? Loop Flag - Just like the cycle flag in a MOVE action; use it to loop through the waypoints. Charge Flag - Charge the enemy when told to attack. I believe that when an enemy enters one of the Radii, that is a signal to attack. Congregate Flag - Tells the units to gather at the centerpoint before moving. Interpolate Flag and Interpolant Spacing - No clue whatsoever!



Squad

The Squads (SQUA) are the individuals in each group that make up a platoon. A platoon may make up three squads: archers, berserks, and warriors. The archer squad consists of four archers, the berserk squad consists of 12 berserks, and the warrior squad has 6 warriors in it. So, the platoon has 22 individual units. The parameters: Centerpoint, Facing, Formation, and Monsters have all been covered before, So I won't cover them now.



Sound

This is used when you want to insert a sound for whatever reason; any sound in the sound library from a pig grunt to the level 6 narration. The Sound Tag parameter is where you choose the sound you want to use, of course. Monster - If you want a particular unit to make the sound, point to the one you want to do the utterance. Override Flag - The sound is played whether or not the particular unit was given a command.



Conclusion

Now, I realize that there are only 17 map actions identified here, but if you read them all, they started to become redundant toward the end. Armed with these 17 map actions, you will know how to do at least 90% of what you want to accomplish. More than likely, this is everything you will use. You may come across something you need that isn't covered here, like LEGI, but I'm sure you can apply what you now know to figure everything out.



If you find any mistakes, please let me know. Also, if you know something I don't please clue me in. If you still are having problems, I will be more than happy to help you, if need be. Just email me at sonork@xoommail.com and I will do my best to help.



The Cartorium is brought to you by... YOU! If you are a Myth modmaker and feel you have something that you simply must share with the world, then by all means, let us know.

Home  |  Tools  |  Training  |  Resources  |  People  |  The Forge  |  The Mill

Cartorium concept by and HTML by Forrest. Scripting by (You?). Thanks to Funky J for the name.

Myth at Bungie.org is now maintained almost entirely by Gholsbane and Zandervix; Forrest is (theoretically) still around calling the shots when he can be bothered to check his email, and Claude, as always, OWNZ U. Original Nontoxic™ webpage design copyright (c) 1998 by Joshstar; updates and revisions mostly by Forrest. Many thanks to all those old Nontoxic™ munkies - you know who you are.

No portion of this website may be reprinted without explicit permission from Bungie.org, unless it is content created and submitted by you. By submitting content to this site, you grant Bungie.org the right to use it as they see fit, unless otherwise negotiated in writing.

Myth: The Fallen Lords, Myth II: Soulblighter, and all materials derived therefrom are trademarks and copyrights of Bungie Software Products Corporation (now Bungie Studios, a wholly owned subsidary of the Microsoft Corporation). We are not Bungie; we are an independantly run fan organization who Bungie has been so kind as to not sue for using their trademarked name in our domain. The Myth franchise is now owned by Take Two Interactive; Myth III: The Wolf Age is a trademark/copyright of Mumbo Jumbo, Inc., and is published by Gathering of Developers and MacSoft - none of whom are associated with us.
 
[ 2425089 ]
[ 26731 ]