HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

Completely removing AI

11-16-2009, 09:50 PM#1
Saishy
I'm trying to use Neutral - Extra and Neutral - Victim as the owners for some units, they are supposed to walk in roads and that is all.

But the AI seems to hate walking in roads, and especially like to attack random heroes that pass by them...

So, how can I take off that AI? I want it to do absolute nothing, I will trigger everything.

Thanks in advance ^^
11-17-2009, 09:10 AM#2
DioD
you cant disable it.
no one can.

Fix constants, disable "building" flag for towers and it will go fine.

other way to monitor orders, AI will give "move" order only, easy to reorder.
11-17-2009, 04:00 PM#3
Saishy
Quote:
Originally Posted by DioD
you cant disable it.
no one can.

Fix constants, disable "building" flag for towers and it will go fine.

other way to monitor orders, AI will give "move" order only, easy to reorder.
The AI will forget the battle to run after any enemy hero that pass near it...

I though there was a AI editor, can't I make my AI and make it do nothing? D:
Or at least make the AI obey the priority in battle, and stop chasing my heroes ¬¬
11-18-2009, 05:27 AM#4
Neco
Wait, so are you saying that if the Neutral units are in combat, you want them to ignore any enemy hero that walks past?

If you just want them to ignore the players completely...
Hidden information:

You could just make a trigger to change their behavior to certain players:

Trigger:
Collapse Events
Unit - Map Initialization
Conditions
Collapse Actions
Collapse For each (Integer A) from 1 to 12, do (Actions)
Collapse Loop - Actions
Player - For Neutral Victim, turn Alliance (non-aggression) On toward (Player((Integer A)))
Player - For Neutral Extra, turn Alliance (non-aggression) On toward (Player((Integer A)))
11-18-2009, 11:36 AM#5
Saishy
Quote:
Originally Posted by Neco
Wait, so are you saying that if the Neutral units are in combat, you want them to ignore any enemy hero that walks past?

If you just want them to ignore the players completely...
Sorry, I think you missed what I said:

Quote:
Or at least make the AI obey the priority in battle, and stop chasing my heroes ¬¬

I want it to obey the combat priority, no matter the numbers in the Unit Editor, the AI always attack the Hero first, I want it to attack the units in the priority order, like a normal combat.

I'm almost giving up, and I was so close to finishing my map D:
11-18-2009, 11:51 AM#6
Tot
what about using Necros way and coding your own "AI" to command them?
11-18-2009, 02:13 PM#7
Saishy
Quote:
Originally Posted by Tot
what about using Necros way and coding your own "AI" to command them?
Why not see if there is a solution to this before reinventing the wheel?

(Also, neco way? its a gui trigger that change alliance... its not even an AI...)
11-18-2009, 02:22 PM#8
Tot
Quote:
Originally Posted by Saishy
Why not see if there is a solution to this before reinventing the wheel?

(Also, neco way? its a gui trigger that change alliance... its not even an AI...)

hrmpf...

it's clear that necro's way is no ai

what i ment was:
1) make your AI player neutral to everyone
2) trigger all actions (move/attack/cast/...)
3) done
11-18-2009, 06:12 PM#9
Saishy
Quote:
Originally Posted by Tot
hrmpf...

it's clear that necro's way is no ai

what i ment was:
1) make your AI player neutral to everyone
2) trigger all actions (move/attack/cast/...)
3) done
Ok the map is a base wars:

There is 5 bases, each base spawns 1 creep wave for every base near it, and the main bases spawn 1 creep wave more than the others.
The creeps follow the road (with the attack-move command) and will fight any enemy that pass by.
The creeps are Neutral-Victim and Neutral-Extra controlled, so the game can be played 6x6.
Everything works fine and good, but when a Hero fight with the creeps, any creep attacked by the hero and near creeps automatically goes toward the hero, ignoring the unit priority (in Unit-Editor).

Doing an AI now will be too much work, since I will need to constantly check things like:
- How far he chased someone, so he can come back to the road.
- How far the creep is from the nearest road.
- If the nearest road is a route to the base he wants to go (If not, he needs to find the road he was)
- Only attack a hero if he isn't attacking anything now and the hero attacks him first.
(Problem: Attack orders are the same, regards the unit is actually attacking or chasing)
- Give up chasing the hero if the unit is chasing the hero and another enemy appear closer
- Don't give up attacking the hero if its already attacking the hero (and not chasing it)

And more things that are very situational, well, a completely new AI...
A lot of work, useless if I can just make the unit obey the priority.

Actually, I think the problem is not the AI, maybe the Hero is a top-target even if is the last one in priority...
The question is, how dota made it?
11-18-2009, 06:27 PM#10
Tot
Quote:
Originally Posted by Saishy
Ok the map is a base wars:

There is 5 bases, each base spawns 1 creep wave for every base near it, and the main bases spawn 1 creep wave more than the others.
The creeps follow the road (with the attack-move command) and will fight any enemy that pass by.
The creeps are Neutral-Victim and Neutral-Extra controlled, so the game can be played 6x6.
Everything works fine and good, but when a Hero fight with the creeps, any creep attacked by the hero and near creeps automatically goes toward the hero, ignoring the unit priority (in Unit-Editor).

Doing an AI now will be too much work, since I will need to constantly check things like:
- How far he chased someone, so he can come back to the road.
- How far the creep is from the nearest road.
- If the nearest road is a route to the base he wants to go (If not, he needs to find the road he was)
- Only attack a hero if he isn't attacking anything now and the hero attacks him first.
(Problem: Attack orders are the same, regards the unit is actually attacking or chasing)
- Give up chasing the hero if the unit is chasing the hero and another enemy appear closer
- Don't give up attacking the hero if its already attacking the hero (and not chasing it)

And more things that are very situational, well, a completely new AI...
A lot of work, useless if I can just make the unit obey the priority.

Actually, I think the problem is not the AI, maybe the Hero is a top-target even if is the last one in priority...
The question is, how dota made it?

what about:
- sending them with the move command and store the units target in a table
- checking every 0.x sec if and enemy unit is in aquisition-range, if yes attack it and store the origin-point, if distance between origin-point and unit>units aquisition-range then retreat to the road and move on
- unit-players are not allied to ...
11-19-2009, 06:46 PM#11
Saishy
Quote:
Originally Posted by Tot
what about:
- sending them with the move command and store the units target in a table
- checking every 0.x sec if and enemy unit is in aquisition-range, if yes attack it and store the origin-point, if distance between origin-point and unit>units aquisition-range then retreat to the road and move on
- unit-players are not allied to ...
Bug:

Creep hit someone - the target runs - the creep hit again and the target get out of range (from the road), the creep will leave the pursuit even if the target is near the actual position of the creep.

Also, getting the origin point will make the creep returns there even if after pursuing someone the creep is near the destination.

There is no easy awnser for things like an AI.

But I know there is a way to put Heroes in the correct priority list, most AoS made it.
11-20-2009, 12:20 AM#12
DioD
neutrals attack closest unit or unit who attack.

to correctly disable overmap follow you shoud count both time and distance.
11-20-2009, 04:49 PM#13
Saishy
Quote:
Originally Posted by DioD
neutrals attack closest unit or unit who attack.

to correctly disable overmap follow you shoud count both time and distance.
I though that too, but they are attacking the heroes even if there are units already in melee battle with them.

Two creep waves spawns (One by extra and the other by victim, they are enemy)
They start battling in the middle of the road
You come closer with your hero
You attack someone with a ranged attack.
ALL the enemy creeps goes toward you, even if you keep walking they never give up the pursuit and end up killed by your allied creeps.
11-20-2009, 04:52 PM#14
Tot
Quote:
Originally Posted by Saishy
I though that too, but they are attacking the heroes even if there are units already in melee battle with them.

Two creep waves spawns (One by extra and the other by victim, they are enemy)
They start battling in the middle of the road
You come closer with your hero
You attack someone with a ranged attack.
ALL the enemy creeps goes toward you, even if you keep walking they never give up the pursuit and end up killed by your allied creeps.

Then the solution is easy, make the creep-players neutral/some-sort-of-sppecial-enemy-so-that-they-don't-attack-you but still enemies agains each other
now, you've only to trigger when they shall attack an hero
11-20-2009, 06:28 PM#15
Saishy
Quote:
Originally Posted by Tot
Then the solution is easy, make the creep-players neutral/some-sort-of-sppecial-enemy-so-that-they-don't-attack-you but still enemies agains each other
now, you've only to trigger when they shall attack an hero
I think its too much checks to be usable in 6x6 multiplayer.
Basically checking distances for 96 creeps always, and making more advanced checks in the battle to see if the hero must be attacked.