In my ds map I avoided this issue where other ds maps has the issue too.. especialy giving units (not buildings)from one player to another can cause order issues.. other issue is the units beeing ordered too frequently. I still have the issue with siege tanks when they Are sieged they dont react on order an unsiege moving forward.. for siege tank i order em to move than 1 sec after i order them patrol for my siege tank its improved alot but it can happen that a siege tank Will stuck but thats the only unit on my map. I have a trigger deteting sieged tanks staying behind the lines (those I fix with the system happy mentioned having a timer to detect when they Are stuck) than i remove and create a New unsieged tank which than can be ordered. My ds uses alot of units moving towards each other so thats more less same i think. Im pretty sure you can play around with the order functions, some unit act differently.. you can make the unit iddle by moving it to the excakt location it already is.. iddle units use spells or burrow instantly. You welcome to ask more but be specific about what youre doin right now than i can better help you.
Btw happy was not fully right on hes attack patrol difference. Here youll have it, theres not much difference on the patrol and attack order function. Ill try explain. If you order a unit to attack to a location where at the middle of location theres No units than the unit Will move to that spot if it meet enemys on the path it Will attack those precisely as if a human player clicked a unit and pressed it attack to this area. If tho theres an enemy unit excaktly in the middle of the location you order a unit to attack too than the unit Will attack that specific unit and ignore other units on the path. Excaktly like it would happen if a human player press attack on a specific enemy unit. Hence prankenstein said when using attack order the often seem to ignore other units. When using patrol you can avoid units ignoring enemys on their path. So thats why using patrol for Mass control is Best suited. Tho siege tank and lurkers spell casters Ai can be improved by setting their state to iddle.
There can be issues with using patrole order if you dont make em patrol passed enemy units than the units you order patrol Will hit their destiantion and than move back to the destination the where at when they received the order, excaktly like it would be if a human player pressed a unit patrol to destination
The way i fix stucked siege tank is not the Best way only use that if other options not possible cause it Will look seem weird.
I avoided using comments cause than I need open the trigger each time i need check for faults or changes or which dc is used in the trigger this can become an annoying issue if you use up nearly All awaliable dc variables. Without comments i fast see how the trigger looks like
I recall some Months ago one player asked if he could make a Marine hit a zergling before a zealot if both a zergling and a zealot is in the marines range. I told him its possible if he center a Marine range location on the Marine and then center a small location on zerglings inside the Marine range location and if that condition is meet then order the Marine to attack to the small location that was center on the zergling that way the Marine Will avoid using sc bw priotizing and attack the zergling before hand hitting other units like zealots this way he can fully contol the unit Ai insanly time consuming to do with All units but its possible.
Currently, a rough example of my locations are like:
-------------------------------------------------------------------------------------
| Play Area
| -----------------------------------------------------------------------------
| Enemy Spawn | Zone 1 | Zone 2 | Zone 3 | Enemy Attack Location
| -----------------------------------------------------------------------------
|
-------------------------------------------------------------------------------------
And here's the attack trigger:
//-----------------------------------------------------------------//
Trigger("Computer Enemy"){
Conditions:
Bring("Computer Enemy", "Men", "Play Area", At least, 1);
Actions:
Comment("Enemy Attack");
Move Unit("Computer Enemy", "Men", All, "Play Area", "Unmovable Terrain"); // This is meant to unfreeze/reset the unit
Order("Computer Enemy", "Men", "Play Area", "Enemy Attack Location", patrol);
Wait(5000);
Preserve Trigger();
}
//-----------------------------------------------------------------//