How do you want them to be used offensively?
As in, slowly moving up to the enemy's base by building more and more towers, or simply running up and massing towers?
Does the AI have maphack vision?
Also, what sort of terrain/layout and how do players develop in general?
For reference, a relative point is used for formations.
I.E: Making a unit group move simply to a point will cluster them together, but making them move with relative point will make them move in formations.
@Klishu:
No problem, my idea is simple: Get the highest value of units in an area, and order the ai to build defenses to the closest allied "base". If there's no base, it simply build defenses 10' from them.
Those functions were coded by blizzard for their maps, i don't know if we can use it. Tell me the map and function, and i'll see if i can find it.
Haha made a typo in my first post "sue blizzard".
@StatusQ3:
RCIX answered your first question correctly, however, i'll go deeper into the second.
This would set up a wave with everything:
------- Set Wave Target
AI - Set the target for player Player 2 attack waves to (Player group(Player 1))
------- Set the attack wave gathering point for AI player
AI - Set the attack wave gather point to Point for player Player 2
------- Attack Wave
AI - Add (4 / 4 / 6 / 8) Zergling to the attack wave
AI - Send the attack wave from player Player 2 to attack in 10 seconds and Wait
There ya have it.
@Klishu:
Do a priority point creator.
First off, you need two "checkers", one for the warp prism creation, and one for the warp prism idling.
Creation:
When the warp prism is created, check all enemy units. At each enemy unit, create a temporary point (something like Point[X]). Then around that point, make it pick each unit in a range of 5 excluding structures, invuln, etc. Then put that new value in another variable, called AiValue[A]). When it is done filtering units (Set Boolean Executed to true after the loop that picks each unit, and then in the maximum value determining trigger, make a "Wait for Condition(s)" and wait for that variable to become true.
Now, you've finished the first part - finding the density of units. Remember: Density does not mean power, there may be five marines in one spot, and 4 battleships in another, the "AI" will still prioritize the marines. Obviously that's a problem, so we move onto the second part:
Unit custom values (we're going to sue blizzard since it's easier then making your own custom return values). Create a new trigger that runs at .01 game time, and set each unit's custom value (Units that you will be using in your map), to this:
Medivac = (Other value, if biological) *2
Zergling = 1
Marine = 2
Hellion = 3
As you can see, the stronger a unit will be, the higher it's custom value will be.
http://wiki.sc2mapster.com/galaxy/triggers/category-ai/
Edit: Please tell me if you want to utilize this, since it's not even halfway done. If you do, i'll finish it up.
@NobMapster:
This might be a bug within the editor. After the very last action, make a text message display. It should NOT display. If it does NOT, then remove the first condition on the bottom part (triggering unit is in zealots). Test if that works and tell me.
Updating does not bump messages :).
Does anyone have any idea how to create this?
I have a basic grasp of it; Something like this:
UnitRegister trigger
Unit enters map area (Thing I love about this event is that it detects EVERYTHING, from unit creation to unit purchase)
Set Current_Unit = Current_Units + 1
Set Unit[Current_Unit] = Entering Unit
Start timer UnitTimer[Current_Unit] as a one shot timer for 5 seconds.
Add event Last Created Timer expires to TimerExpiration
Set Unit.ValueX[Current_Unit] = X of entering unit
Set Unit.ValueY[Current_Unit] = Y of entering unit
TimerExpiration
Local Variables
A (Integer) = 0
Events
Actions
That's what i have so far. The thing is, I'm interested in making the unit "walk" backwards.
The best method that i can think of for that would be to record said unit's X, Y every .1 second while the timer is running, then play walking animation in reverse and update X,Y each .1 seconds (HP and MP comes into play here too, but that's the easy part).
The obvious problem with that is that you would require an enormous amount of variables just for one unit, but having 50+ (units) would cause the game to lag heavily.
I posted this in the galaxy section because it will be coded in galaxy, just typed the triggers out in GUI for easier reading.
@NobMapster:
Regions
Events
Unit - Any Unit Enters Death Region
Unit - Any Unit Enters Register Region
Local Variables
Conditions
Actions
General - If (Conditions) then do multiple (Actions)
If Then Else
General - Else if (Conditions) then do (Actions)
Else If
(Triggering region) == Register Region
(Unit type of (Triggering unit)) == Zealot
Then
Unit Group - Add (Triggering unit) to Zealots
General - Else if (Conditions) then do (Actions)
Else If
(Triggering region) == Death Region
(Unit type of (Triggering unit)) == Zealot
Then
Unit - Kill (Triggering unit)
If you need a coded example, i'll send you the map.
@Vietman:
Directly after you move the unit, make a new action like this:
Unit - Order (Triggering unit) to ( Stop) (Replace Existing Orders)
Triggering unit should be replaced with the proper return call.
The map can be improved in hundreds of ways; trigger debugger shows 10 events running a second and a huge amount of code errors. More modes, import units from the campaign (like medic and wraith, those kinds), new game-modes, etc.
Overall it's fun, but the popularity system doesn't like it.
If you wish to get an actual game going, i recommend picking Phantom II; pretty much the same, except it's up top on the list.
That would generate a very large amount of traffic, since the event would run every time a key is pressed (While typing too), therefore increasing lag.
0
0
0
0
0
0
0
0
0
0
0
0
0
The map can be improved in hundreds of ways; trigger debugger shows 10 events running a second and a huge amount of code errors. More modes, import units from the campaign (like medic and wraith, those kinds), new game-modes, etc.
Overall it's fun, but the popularity system doesn't like it. If you wish to get an actual game going, i recommend picking Phantom II; pretty much the same, except it's up top on the list.
0
@Dustin374: Go
That would generate a very large amount of traffic, since the event would run every time a key is pressed (While typing too), therefore increasing lag.
0
Bumped back up.