TechGeek001
New Member
- Reaction score
- 3
Hi all - I'm the new guy on the block. Been passively browsing this site for some time, particularly this section, and have found it to be very helpful. Now I have a problem of my own.
I am incorporating AI into my map but have run into a significant problem. I am running said AI through a trigger made up of simple if-then-else statements. The idea is that after a while, there's so many if-then-else's that the AI will be able to react to virtually any situation.
Before I can start on that, I have to fix the basics. My map is played similar to Footmen vs Grunts, where you have a building containing custom upgrades that are linked to spawning units through the trigger event "Unit finishes research" and the condition "Research equal to X". For example:
Player 1 researches the Sergeant unit.
I omitted nonessential bits and pieces from the above triggers, I think this gives off the basic idea. Ignore mem leaks, haven't gotten to those yet.
Anyways, the AI is initiated by detecting wether or not the player slot is used, if it is then nothing happens, if not, then the AI script is run, telling it what to research and in what order through linear if-then-else statements.
I have discovered that there is something unusual going on when researching. It appears that the AI will not research any upgrade that costs anything above 0 gold.
Alliance Forces is a free upgrade that sets the race of the player.
Sergeant is an upgrade that costs 900 gold.
All players start the game with 1000 gold - it was confirmed that the player had enough gold for the Recruit Sergeant research by displaying the player's gold as an integer converted to a string to all players during a local test.
The AI will research Alliance Forces when it is free, but when the cost to research is set to any nonzero number, it will not be researched.
I have tested this on multiple computers (Vista and XP) and have found the same results. I'm hoping that somewhere among this crowd of brilliance someone knows, or at least has some kind of workaround to this issue.
-Thanks for your time :banghead: :nuts:
I am incorporating AI into my map but have run into a significant problem. I am running said AI through a trigger made up of simple if-then-else statements. The idea is that after a while, there's so many if-then-else's that the AI will be able to react to virtually any situation.
Before I can start on that, I have to fix the basics. My map is played similar to Footmen vs Grunts, where you have a building containing custom upgrades that are linked to spawning units through the trigger event "Unit finishes research" and the condition "Research equal to X". For example:
Player 1 researches the Sergeant unit.
Code:
Research Sergeant
Events
Unit - A unit Finishes research
Conditions
(Researched tech-type) Equal to Recruit Sergeant
Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Current research level of (Researched tech-type) for (Triggering player)) Equal to 1
Then - Actions
Player Group - Pick every player in (Player group((Triggering player))) and do (Actions)
Loop - Actions
Trigger - Run Summon Sergeant <gen> (checking conditions)
Code:
Summon Sergeant
Events
Conditions
Actions
...
Then - Actions
Unit - Create 1 Sergeant for (Triggering player) at ((Triggering player) start location) facing Default building facing degrees
Special Effect - Create a special effect attached to the origin of (Last created unit) using Abilities\Spells\Human\HolyBolt\HolyBoltSpecialArt.mdl
...
Else - Actions
Do nothing
...
Then - Actions
Trigger - Run (This trigger) (ignoring conditions)
Else - Actions
Do nothing
Anyways, the AI is initiated by detecting wether or not the player slot is used, if it is then nothing happens, if not, then the AI script is run, telling it what to research and in what order through linear if-then-else statements.
I have discovered that there is something unusual going on when researching. It appears that the AI will not research any upgrade that costs anything above 0 gold.
Code:
Initiate AI
...
Player Group - Pick every player in AI_West and do (Actions)
Loop - Actions
Set RNG[(Player number of (Picked player))] = (Random integer number between 1 and 4)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
RNG[(Player number of (Picked player))] Equal to 1
Then - Actions
Unit Group - Pick every unit in (Units owned by (Picked player) of type Giant Rock [HQ]) and do (Actions)
Loop - Actions
Trigger - Run Human AI Norm <gen> (checking conditions)
Code:
Human AI Norm
Events
Conditions
Actions
Unit - Order (Picked unit) to research Alliance Forces
Wait 2.00 seconds
Unit - Order (Picked unit) to research Recruit Sergeant
Sergeant is an upgrade that costs 900 gold.
All players start the game with 1000 gold - it was confirmed that the player had enough gold for the Recruit Sergeant research by displaying the player's gold as an integer converted to a string to all players during a local test.
The AI will research Alliance Forces when it is free, but when the cost to research is set to any nonzero number, it will not be researched.
I have tested this on multiple computers (Vista and XP) and have found the same results. I'm hoping that somewhere among this crowd of brilliance someone knows, or at least has some kind of workaround to this issue.
-Thanks for your time :banghead: :nuts: