Well, i'm now ready to answer:
Three problems are mixed here
1) Editor bug
There was an error in my editor, and i'll fix it now. End point of a nameless object was not saved if it matches start point, and this made Artemis go crazy and create different map every time or even crash.
2) Artemis inconsistency
Artemis reacts differently to nameless objects without end point specified each time. Sometimes you'll get crash, sometimes something else. I describe it here
http://www.artemis.eochu.com/?page_id=28#/20120515/another-inconsistency-in-artemis-mission-pars-1583984/ 3) Your mistakes and misunderstandings
* (Start Node) You should not create nebulas and mines one by one, like you do. Even if you insist on doing it, then you should set the count to 1. Right now, you're hand placing packs of 10 mines/asteroids/nebulas at a single point. Generally, you should spawn nebulas in a circle or an arc or a line, with a random range, this will look natural. Mines, if you want to have them look like a minefield, should be placed w/o random range or with minimal random range, and you will have to place numerous packs of mines on an arc or a line, to make them look like they do in the Invasion mode. Asteroids are generally spawned in a line with a random range. You can paste the code at the bottom of my post and see it achieves almost the same form of the nebula and mines and asteroids, but with way less statements (9 vs ~250)
* (Event 1) You should generally never make an event that has no Conditions, since this even will be executed EVERY tick (every spare moment Artemis sever has, means it will happen 30 or more times per second, more frequently if your server is ran on faster PC.
* (Event 2) Same applies (usually) to event who's only condition is "timer finished", since this condition will be true forever after the timer has finished, and event will execute every tick from there on. So you should only make this if you want something to happen each X seconds, then you start timer once at some point, and then in the event that has "timer finished" as condition, set that timer.
* (Event 3) If you want something to happen once, after an object comes closer to other object, then first, you should not use "=" but "<=", because since server progresses time only a fixed discrete times per second, distance may never be equal to 1000, it may be 1001 at one tick and 999 at next tick, passing 1000 without =1000 being true. Second, you should use another condition, "variable <name> = 0", and inside the event, you should set that variable to something other than 0 (usually 1). This ensures that the event will happen only once.
* (Event 3) When creating more than one object with the same name, keep in mind that all following statements will affect only the FIRST one. This means, that if you check "if distance", its checked ONLY against the first created object with that name, not against every object. Also if you destroy named object, only first one will be destroyed, and so on. Generally, you want to name your objects with different names, using extra spaces if you need the player to see those names as same names.
* (Event 4) When checking for distance between objects, or for shield state, do not check for =0, but rather for <1, because most values in the game are in float, and distances and shields and other values are rarely equal to straight zero, bur rather to some 0.00001 or other such value.
* (Event 5) First of all, generally you'd want to use "ship count in fleet = 0" for all ships on the map, or in some specific fleet (add all ships spawned in one event to a single fleet), not check each vessel individually. If you clear ai stack and dont add "follow leader" commands to ai brain stack, you wont have enemies of the same fleet bunch together, so it will be no problem even if spawned ships are all around the map and doing different things (like in your case). Second, before you created those ships, they will obviously not exist, so the condition will be true. This makes your Event 5 happen at the beginning on the mission. Add a condition for some variable to be equal to 1, and set it to 1 in the event where you create the ships - this way event that happens after ship's extinction will not happen before that ship was created.
* (Event 6) If you want your mission to end after final objective is completed, make sure it cannot be futfilled earlier by just skipping. You should not only check for whatever your last objective is (being docked to last station in your case), but also that all other events that are supposed to happen before have happened, so you should set some variable in other event and check it here. For example, in your case you should set some variable inside Event 5 and check for that in Event 6.
* (Event 8) When player fails the mission indirectly, like if you fail to protect the ship you were ordered to escort, you should tell the player why the mission is over, otherwise player will just see "Simulations stopped because mission has ended" or similar message and will be left clueless to what happened. Use Big_Message or some other way and give player some 10-15 seconds to read and understand that message before ending mission.
* Even in cases when player directly ends mission with player ship's destruction or final objective completion, its good to let the player know with a message that he won or lost, and give player some times to read and understand that, before ending mission.
* (Event 1) Throttle in add_ai commands usually means a multiplier, not percent setting. It means that throttle 100 is "move at 100 times the normal speed" command, not "move at 100% of normal speed" command.
* (Event 1) Set relative position is a one-time command. If you intend for one ship to follow the other, use Add_ai target_throttle command
PS:
<create type="mines" startX="61171.0" startY="0.0" startZ="2446.0" endX="52554.0" endY="0.0" endZ="32446.0" count="10" />
<create type="mines" startX="98511.0" startY="0.0" startZ="46968.0" endX="61490.0" endY="0.0" endZ="37074.0" count="10" />
<create type="mines" startX="1490.0" startY="0.0" startZ="34840.0" endX="43458.0" endY="0.0" endZ="33882.0" count="10" />
<create type="asteroids" startX="62766.0" startY="0.0" startZ="28457.0" endX="58777.0" endY="0.0" endZ="30851.0" count="5" randomRange="2574" />
<create type="asteroids" startX="47447.0" startY="0.0" startZ="31489.0" endX="46330.0" endY="0.0" endZ="29734.0" count="5" randomRange="2574" />
<create type="asteroids" startX="51437.0" startY="0.0" startZ="39308.0" endX="51756.0" endY="0.0" endZ="38191.0" count="5" randomRange="2574" />
<create type="nebulas" startX="95320.0" startY="0.0" startZ="47287.0" endX="52394.0" endY="0.0" endZ="35957.0" count="110" randomRange="10610" />
<create type="nebulas" startX="852.0" startY="0.0" startZ="35000.0" endX="75213.0" endY="0.0" endZ="31808.0" count="200" randomRange="9681" />
<create type="nebulas" startX="58777.0" startY="0.0" startZ="-266.0" endX="51437.0" endY="0.0" endZ="23829.0" count="100" randomRange="7542" />
[Last edited May 15, 2012 11:01:46]