Scenario: One special ultralisk in the middle that scheduled to attack everyone, spawns more later. At first I used a trigger such as
Unit Group - Pick each unit in (Any units in (Entire map) owned by player 13 matching Excluded: Missile, Dead, Hidden, with at most Any Amount) and do (Actions)
Actions
Unit - Order (Picked unit) to ( Attack targeting (Position of (Closest unit to (Position of (Picked unit)) in (Any units in (Entire map) owned by player Any Player matching Required: Heroic; Excluded: Missile, Dead, Hidden, with at most Any Amount)))) (Replace Existing Orders)
But that came up with a lot of bugs such as the ultralisk attacking only people who built close by then going after further people, unfair. And then people would just wall off a base at a cliff and it wouldn't know how to circle to the back to the entrance to get in and attack. So i thought if i could get the computer to behave like it does in ladder where it knows to search for you and attack even if you walled off.
I found the AI attack wave but have not figured out how to use it. Right now I have a trigger to spawn the ultralisk for player 13 but it doesnt move or do anything with this trigger :
AI Advanced - Initialize the AI for player 13
AI Advanced - Set the APM count for player 13 to 500
Player - Set player 13 difficulty level to Insane
General - Wait 15.0 Real Time seconds
AI - Add (1 / 1 / 1 / 1) Ultralisk to the attack wave
AI - Set the target for player 13 attack waves to (Enemies of player 13)
AI - Set the attack wave gather point to (Random point in Region 001) for player 13
AI - Set the target for player 13 attack (or defense) waves to be the region Region 005 with replace behavior Replace Group.
AI - Send the attack wave from player 13 to attack in 0 seconds and Don't Wait
At map init:
AI - Start campaign AI for player
Pick every pre-placed unit of that player and AI - Disable script control for picked unit
AI advanced - Set APM to ...
Note:
You need to run the "disable script control" action for every unit the computer did not build itself.
For the actual wave, a couple lines should do (to be repeated every... 50 seconds or so):
AI - Set target melee for attack waves to "enemy"
Pick every unit of that player and AI - Add picked unit to the next attack wave
AI - Send wave
While that should be enough to get basic attack waves going, I've no idea though if it helps with "walls"...
I have a feeling that you are making simple thing too complicated. Basic rule for attack waves:
1. Add units to attack wave
2. Set target point
3. Set way points
4. Set gather point
5. Send attack wave
You can also use "Issue order" action to order the Ultralisk to move at target point. That forces the Ultralisk to move there first and attack after it arrives to defined Point. If you just send attack wave it uses "attack move" and the Ultralisk attacks to first enemy on its path. (Trigger should be something like this: "Order Ultralisk to Move targeting Point01 Replace excisting orders")
You propably need only 2 actions:
1. Spawn 1 Ultralisk at target Point
2. Order last created unit to move target Point
And welcome to sc2mapster dude!
PS. Check at my signature. There may be something useful for you to learn the basics of sending attack waves etc.
Well, it's actually two lines (same for the first one with the "dsiable script"):
Unit group - Pick each unit in unit group
Unit Group - Pick each unit in (Any units in (Entire map) owned by player Player matching Excluded: Structure, Missile, Uncommandable, Dead, Hidden, with at most Any Amount) and do (Actions)
And
AI - Add unit to attack wave
AI - Add (Picked unit) to the next attack wave for player Player
The first one is a "unit group - pick each ...", and the action inside is "AI - Enable / disable script control for unit".
You can also use "Issue order" action to order the Ultralisk to move at target point. That forces the Ultralisk to move there first and attack after it arrives to defined Point. If you just send attack wave it uses "attack move" and the Ultralisk attacks to first enemy on its path. (Trigger should be something like this: "Order Ultralisk to Move targeting Point01 Replace excisting orders")
Well, I have the new script with the help from you guys below. I am using the send attack wave. I tested it by walling off the ultralisk on a cliff with supply depots and it is trying to get out without attacking the supply depot. So its using move command to area then attack when it gets there? Cause if the "send attack wave" trigger uses attack move wouldnt it attack the supply depot wall? What could fix this, I've hit a wall myself Lol....
Unit Group - Pick each unit in (Any units in (Entire map) owned by player 13 matching Excluded: Missile, Dead, Hidden, with at most Any Amount) and do (Actions)
Actions
AI - Disable script control for (Selected units for player 13)
Player - Set player 13 difficulty level to Insane
AI Advanced - Set the APM count for player 13 to 500
AI - Add (Picked unit) to the next attack wave for player 13
AI - Add (5 / 5 / 5 / 5) Ultralisk to the attack wave
AI - Set the target for player 13 attack waves to (Enemies of player 13)
AI - Set the target for player 13 attack (or defense) waves to be the region Region 005 with replace behavior Replace Group.
AI - Send the attack wave from player 13 to attack in 0 seconds and Don't Wait
The disable script control, difficulty level and APM actions only need to be set once, not every time you send a wave.
The add 5 / 5 ... action also isn't needed as you are already adding all units of that player.
I'd try with simply removing the target to region action, and only go with the target to enemies one.
An attack wave can't have more than one target anyway AFAIR.
Yes attack waves use "attack move" command. (Same things as pressing A and click location on map) That's why I'm asking you to use "move" command.
You may want to make timed trigger for each Ultralisk wave - something like this:
Elapsed time is 180 second - Order [last created unit] to "Move" at target Point002.
Elapsed time is 360 second - Order [last created unit] to "Move" at target Point003.
...
So make Points for each player's base. I don't know exactly what kind of map you have but I'm propably leading you to right direction :)
Also... Are you sure what your "Actions" part is doing exactly? In my opinion like half of the actions aren't needed. And using action "AI - Set the target for player 13 attack waves to (Enemies of player 13)" changes exact target to "just any enemy of the Ultralisk"
If I have time to I may do a some sort of test map. I may want to use same kind of event for some of my maps. (=Spawn X amount of monsters to middle of map that attack somewhere)
Scenario: One special ultralisk in the middle that scheduled to attack everyone, spawns more later. At first I used a trigger such as
Unit Group - Pick each unit in (Any units in (Entire map) owned by player 13 matching Excluded: Missile, Dead, Hidden, with at most Any Amount) and do (Actions)
Actions
Unit - Order (Picked unit) to ( Attack targeting (Position of (Closest unit to (Position of (Picked unit)) in (Any units in (Entire map) owned by player Any Player matching Required: Heroic; Excluded: Missile, Dead, Hidden, with at most Any Amount)))) (Replace Existing Orders)
But that came up with a lot of bugs such as the ultralisk attacking only people who built close by then going after further people, unfair. And then people would just wall off a base at a cliff and it wouldn't know how to circle to the back to the entrance to get in and attack. So i thought if i could get the computer to behave like it does in ladder where it knows to search for you and attack even if you walled off.
I found the AI attack wave but have not figured out how to use it. Right now I have a trigger to spawn the ultralisk for player 13 but it doesnt move or do anything with this trigger :
AI Advanced - Initialize the AI for player 13
AI Advanced - Set the APM count for player 13 to 500
Player - Set player 13 difficulty level to Insane
General - Wait 15.0 Real Time seconds
AI - Add (1 / 1 / 1 / 1) Ultralisk to the attack wave
AI - Set the target for player 13 attack waves to (Enemies of player 13)
AI - Set the attack wave gather point to (Random point in Region 001) for player 13
AI - Set the target for player 13 attack (or defense) waves to be the region Region 005 with replace behavior Replace Group.
AI - Send the attack wave from player 13 to attack in 0 seconds and Don't Wait
Can anyone help me with this please.
Thanks
@Si1ent: Go
well if your ordering it to attack the closest target what do you expect?
How about you create an array of valid points that the players build their command centers/ nexus's / hatcheries?
And then Randomly select one of these valid points as the next target for the wave?
At map init:
AI - Start campaign AI for player
Pick every pre-placed unit of that player and AI - Disable script control for picked unit
AI advanced - Set APM to ...
Note:
You need to run the "disable script control" action for every unit the computer did not build itself.
For the actual wave, a couple lines should do (to be repeated every... 50 seconds or so):
AI - Set target melee for attack waves to "enemy"
Pick every unit of that player and AI - Add picked unit to the next attack wave
AI - Send wave
While that should be enough to get basic attack waves going, I've no idea though if it helps with "walls"...
I have a feeling that you are making simple thing too complicated. Basic rule for attack waves:
1. Add units to attack wave
2. Set target point
3. Set way points
4. Set gather point
5. Send attack wave
You can also use "Issue order" action to order the Ultralisk to move at target point. That forces the Ultralisk to move there first and attack after it arrives to defined Point. If you just send attack wave it uses "attack move" and the Ultralisk attacks to first enemy on its path. (Trigger should be something like this: "Order Ultralisk to Move targeting Point01 Replace excisting orders")
You propably need only 2 actions:
1. Spawn 1 Ultralisk at target Point
2. Order last created unit to move target Point
And welcome to sc2mapster dude!
PS. Check at my signature. There may be something useful for you to learn the basics of sending attack waves etc.
And at last an example of attack wave:
Thanks for all the help! Im going to try them out today. Will tell you how it goes. Thanks alot!!!
@celerisk: Go
Hey, I was trying out your method first but I searched and searched but couldnt find a way to get this line option you made.
Pick every pre-placed unit of that player and AI - Disable script control for picked unit
Can you guide me through it?
Thanks
Well, it's actually two lines (same for the first one with the "dsiable script"):
Unit group - Pick each unit in unit group
Unit Group - Pick each unit in (Any units in (Entire map) owned by player Player matching Excluded: Structure, Missile, Uncommandable, Dead, Hidden, with at most Any Amount) and do (Actions)
And
AI - Add unit to attack wave
AI - Add (Picked unit) to the next attack wave for player Player
The first one is a "unit group - pick each ...", and the action inside is "AI - Enable / disable script control for unit".
@Terhonator:
You can also use "Issue order" action to order the Ultralisk to move at target point. That forces the Ultralisk to move there first and attack after it arrives to defined Point. If you just send attack wave it uses "attack move" and the Ultralisk attacks to first enemy on its path. (Trigger should be something like this: "Order Ultralisk to Move targeting Point01 Replace excisting orders")
Well, I have the new script with the help from you guys below. I am using the send attack wave. I tested it by walling off the ultralisk on a cliff with supply depots and it is trying to get out without attacking the supply depot. So its using move command to area then attack when it gets there? Cause if the "send attack wave" trigger uses attack move wouldnt it attack the supply depot wall? What could fix this, I've hit a wall myself Lol....
Unit Group - Pick each unit in (Any units in (Entire map) owned by player 13 matching Excluded: Missile, Dead, Hidden, with at most Any Amount) and do (Actions)
Actions
AI - Disable script control for (Selected units for player 13)
Player - Set player 13 difficulty level to Insane
AI Advanced - Set the APM count for player 13 to 500
AI - Add (Picked unit) to the next attack wave for player 13
AI - Add (5 / 5 / 5 / 5) Ultralisk to the attack wave
AI - Set the target for player 13 attack waves to (Enemies of player 13)
AI - Set the target for player 13 attack (or defense) waves to be the region Region 005 with replace behavior Replace Group.
AI - Send the attack wave from player 13 to attack in 0 seconds and Don't Wait
The disable script control, difficulty level and APM actions only need to be set once, not every time you send a wave.
The add 5 / 5 ... action also isn't needed as you are already adding all units of that player.
I'd try with simply removing the target to region action, and only go with the target to enemies one.
An attack wave can't have more than one target anyway AFAIR.
I'm not front of editor now but I'm trying to make a trigger that you need.
Yes attack waves use "attack move" command. (Same things as pressing A and click location on map) That's why I'm asking you to use "move" command.
You may want to make timed trigger for each Ultralisk wave - something like this:
Elapsed time is 180 second - Order [last created unit] to "Move" at target Point002.
Elapsed time is 360 second - Order [last created unit] to "Move" at target Point003.
...
So make Points for each player's base. I don't know exactly what kind of map you have but I'm propably leading you to right direction :)
Also... Are you sure what your "Actions" part is doing exactly? In my opinion like half of the actions aren't needed. And using action "AI - Set the target for player 13 attack waves to (Enemies of player 13)" changes exact target to "just any enemy of the Ultralisk"
If I have time to I may do a some sort of test map. I may want to use same kind of event for some of my maps. (=Spawn X amount of monsters to middle of map that attack somewhere)