AIを強化する - 多人数用

 AI相手でしばしば起こるのが、戦力差が酷いのになんとか勝ってしまうこと。特に、少人数のハラスに対して、喩え相手は本陣侵攻中でもAI側は全力で全員が防衛に帰ってしまう点はいただけない。この点だけでも何とかならないかと考えたのが、このTrigger。

 3人マップなら、Trigger ModuleにこのTriggerをコピペしてしまえば、AIは喩え味方の拠点が襲われようとも、一度食らいついたWorkerやStructureへの攻撃はやめなくなる。

 もちろん、自陣の重要な拠点が攻撃されたり、戦闘が不利な場合は戦力を戻すが、侵攻のタイミングはちゃんとAI同士合わせてくれるので頼もしい。

 FrenzyTimerは30secに設定してあるが、マップによって調整してみてもいいと思う。

 4人マップも少し手直しすればそのまま使える。


FrenzyTime = 30.0
FrenzyTimer = (New timer)

FrenzyAttack (Trigger)

Events
Unit - Any Unit is attacked
Local Variables
Conditions
And
Conditions
( (Owner of (Triggering unit)) is in (Players on team 1)) == true
Or
Conditions
(Duration of FrenzyTimer[(Owner of (Attacking Unit))]) <= 0.0
(Duration of FrenzyTimer[(Owner of (Attacking Unit))]) >= FrenzyTime
Or
Conditions
( (Unit type of (Triggering unit)) has Structure attribute) == true
( (Unit type of (Triggering unit)) is Worker) == true
Actions
Player - Make player (Player 1 from (Players on team 2)) treat player (Owner of (Attacking Unit)) as Neutral With Shared Vision
Player - Make player (Player 2 from (Players on team 2)) treat player (Owner of (Attacking Unit)) as Neutral With Shared Vision
Player - Make player (Player 3 from (Players on team 2)) treat player (Owner of (Attacking Unit)) as Neutral With Shared Vision
Timer - Start FrenzyTimer[(Owner of (Attacking Unit))] as a One Shot timer that will expire in FrenzyTime Game Time seconds


FrenzyEnd (Trigger)

Events
Timer - FrenzyTimer[4] expires
Local Variables
Conditions
Actions
Player - Make player (Player 1 from (Players on team 2)) treat player 4 as Ally With Shared Vision
Player - Make player (Player 2 from (Players on team 2)) treat player 4 as Ally With Shared Vision
Player - Make player (Player 3 from (Players on team 2)) treat player 4 as Ally With Shared Vision


FrenzyEnd 2 (Trigger)

Events
Timer - FrenzyTimer[5] expires
Local Variables
Conditions
Actions
Player - Make player (Player 1 from (Players on team 2)) treat player 5 as Ally With Shared Vision
Player - Make player (Player 2 from (Players on team 2)) treat player 5 as Ally With Shared Vision
Player - Make player (Player 3 from (Players on team 2)) treat player 5 as Ally With Shared Vision


FrenzyEnd 3 (Trigger)

Events
Timer - FrenzyTimer[6] expires
Local Variables
Conditions
Actions
Player - Make player (Player 1 from (Players on team 2)) treat player 6 as Ally With Shared Vision
Player - Make player (Player 2 from (Players on team 2)) treat player 6 as Ally With Shared Vision
Player - Make player (Player 3 from (Players on team 2)) treat player 6 as Ally With Shared Vision