been playing your mod for a while now, (i use it to test my mod with, its fantastic! ).
I have had a couple of interesting ideas and was wondering what you thought of them.
1. Is it possible for the AI to follow a human players orders.
ie Pinging. Curently the AI only sometimes responds to a ping. however i am not sure if this is due to luck or it is code. However, when you have an ai on your team, it would be really nice if i was able to ping somewhere on the map and have them rapidly move to this location. Uses of this would be: i would be able to set up ganks, i would be able to retreat and know the tower/myself is covered. This would make for much better multiplayer experience as well, as i would be able to retreat my AI to my/ a teammates location so they cant get pressured all the time and would prevent the silly portal flag ninja that occurs by low level ai (although you have really fixed alot of this problem already, the computer will still sometimes try this. Myself or teammates seeing this occuring would then be able to call the demigod back before it got too damaged. The ping information is already shared, (because it occurs on everyone minimap) so i think that this might be possible. (i will look into this myself but i think it might require a new ai script and i am not familiar with the code for this).
I havn't seen anything in the code related to map ping. The AI has a few actions on sticking together (move to ally, attack with help) and i upped the related goal's priority to increase thier likelihood of doing those actions and working together.
If the Ping is detectable in code it could be a condition of initiating an action (move to X,Y or teleport to building near x, y). I added simple teleport actions to defend portal flags whenever enemy demigod's get within a certain range, also similiar teleport action when enemies get in a certain range of a damaged ally tower.
2. AI will often go for multiple targets when in groups. Is it possible to get the ai to all focus fire on an individual target (as is done in high ranked play). Ie detect which demigod has the least health, or has taken the most recently (or by a player) and all focus damage on that target.
This is already in the attack actions, so they should select the same target, but positioning range to target may give them different targets. Might be interesting to play with the range it looks for targets to see if they will more often find the same weakest target.
The attackactions.lua contains the Hero attacks. They call a target function: FilterRunningAwayUnits, that finds all the heroes not running away and returns the weakest one.
3. Set AI to follow mode.
This is probably quite difficult and would need a UI mod as well, but i was wondering if it was possible to set the ai to follow a player.
Bmans godlike team panel can select a demigod and move the camera to the target. Is it possible to use this to select ai demigod and set them onto a follow behaviour?
It is probably possible by killing most/all the other movement actions and creating a custom one or expanding the move to ally one to have the AI stick to the player.
4. Is it possible for AI to recognise commands through chat? even something simple like -R tells all AI demigods to retreat to the nearest tower.
Also does the AI have behaviours (ie agressive, passive, defensive) that could be selected throught chat or a UI mod?
AI has no behaviours. Only high level goals that can be achieved through its list of simple actions. Goals are weighted and the weights can be modified on the fly/continously based many inputs. Goals near the top of the list tend to have available actions performed. Goals can have many actions with varrying effect on the goal weight and actions can apply to several/many goals. Whenever the AI performs an action the goal(s) are reduced by the weights specified in the action. The AI is constantly trying to reduce the positive weight of the highest goals.
So an example: There is a high level survival goal. This goal constantly updates its positive weight by the amount of health the demigod has and damage it is taking at the moment. There are many actions that the AI will select from to reduce its survival goal (move away from combat, move to ally tower, move to health statue). Those actions reduced the survival goal. I forget the exacts, but the first two are small -10 -20, while moving to the health statue is large like -100.
5. Is it possible to assign hotkeys to ai commands: ie = brings up a target console to assign a target for all nearby AI demigods (or even creeps as well).
Unless the way the AI functions is changed from Goals + Action picker to more scripted command driven i don't think this would be possible.
6. I know this isnt in the AI but you have done it for them, is it possible to send chat information about allied human demigods. Ie when humans begin using a capture lock (this will prevent miscommunitcation about who is locking the flag, and prevent the wasting of a caplock). Also could be applied to other events such as pots (prevent sedna healing an ally which is about to heal at the same time).
The AI capping action could have chat added to say it is capping to let the player know and the AI can detect what actions are being done in the area and not CAP a flag that is already being capped. The code for that is already in for the interupt skills it would just involve filter it down to the capping action and making that a condition of using the capture actions.
Kinda related to above, I am not sure if you have done much with the minimap ping, but is it possible that when someone teleports it sets off a ping to the intended location? This would be useful as it would indicate to players their teammates actions and would require less manual communication.
Sorry for the big list of questions just was curious
Exx
The Teleport commands can indicate thier target, but most targets on the map don't have useful names outside of the flags. When i had the chat on it would say teleporting to tower of light 2542 or something odd like that.
Not sure if the AI can initiate a ping, but if it can that would be pretty easy if there is a function to say ping X,Y as the teleport and move functions all have position coordinates. I don't think you could have this ping and the first ping you asked for (to have them teleport or move to pings) as there probably isn't a way to categorize a ping as one to move to vs one for the player to see where AI's are teleporting.