Tower Def. AIs (How?)

diggoran

New Member
Reaction score
3
Anyone know a good tutorial that teaches the basics of AI?

WorldEdit has an AI feature, but I don't think that it can handle two different "jobs". There are inner TDers and Outer Meleers.

I tried to make an AI trigger that basically sais that the Inner CP should build the best towers it can make, to a max of 20 towers. after that limit is reached start upgrading. I know its not the best strategy for a TD but so far it's not showing any sign of running.

Code:
Test Red Ingame
    Events
        Time - Every 10.00 seconds of game time
    Conditions
    Actions
        If ((Player 1 (Red) slot status) Equal to Has left the game) then do (Trigger - Turn on Red Al <gen>) else do (Do nothing)
        If ((Player 1 (Red) slot status) Equal to Is unused) then do (Trigger - Turn on Red Al <gen>) else do (Do nothing)

Code:
Red Al
    Events
        Time - Every 1.00 seconds of game time
    Conditions
        (Inner Builder 0003 <gen> is paused) Equal to True
    Actions
        Trigger - Turn off Test Red Ingame <gen>
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Count structures controlled by Player 1 (Red) (Include incomplete structures)) Greater than or equal to 20
                (Player 1 (Red) Current gold) Greater than or equal to 30
            Then - Actions
                For each (Integer A) from 1 to ((Player 1 (Red) Current gold) / 30), do (Actions)
                    Loop - Actions
                        Unit Group - Pick every unit in (Units owned by Player 1 (Red) of type Arrow Tower) and do (Actions)
                            Loop - Actions
                                Unit - Replace (Picked unit) with a Spear Tower using The old unit's relative life and mana
            Else - Actions
        If ((Player 1 (Red) Current gold) Greater than or equal to 10) then do (If ((Player 1 (Red) Current gold) Less than 30) then do (Unit - Order Inner Builder 0003 <gen> to build a Arrow Tower at (Random point in Inner <gen>)) else do (If (((Player 1 (Red) Current gold) Greater than or equal to 30) and ((Player 1 (Red) Current gold else do (Do nothing)

Sorry about that last line. It's all deciding what tower to build.
 

diggoran

New Member
Reaction score
3
.... I see that this is a tough subject. Does no one have any clue what I am talking about? :confused:
 

darkbeer

Beer is Good!
Reaction score
84
hm, your trigger leaks and i dont get how the inner builder will build something when the condition is that hes paused?

and why dont you use player leaves game event?

and on Map Init add: Trigger run Test Red Ingame <gen>

Code:
Test Red Ingame
    Events
        Player leaves Game // why dont use this?
    Conditions
        Or - Multiple Conditions are true
             Conditions - (Player 1 (Red) slot status) Equal to Has left the game)
                              (Player 1 (Red) slot status) Equal to Is unused)
    Actions
        Trigger - Turn on Red Al <gen>

Code:
Red Al
    Events
        Time - Every 1.00 seconds of game time
    Conditions
         //(Inner Builder 0003 <gen> is paused) Equal to True //[COLOR="Red"] I dont get this????[/COLOR]
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Count structures controlled by Player 1 (Red) (Include incomplete structures)) Greater than or equal to 20
                (Player 1 (Red) Current gold) Greater than or equal to 30 
            Then - Actions
                For each (Integer A) from 1 to ((Player 1 (Red) Current gold) / 30), do (Actions)
                    Loop - Actions
                        Unit Group - Pick every unit in (Units owned by Player 1 (Red) of type Arrow Tower) and do (Actions)
                            Loop - Actions
                                Unit - Replace (Picked unit) with a Spear Tower using The old unit's relative life and mana
            Else - Actions
        If ((Player 1 (Red) Current gold) Greater than or equal to 10) then do (If ((Player 1 (Red) Current gold) Less than 30) then do (Unit - Order Inner Builder 0003 <gen> to build a Arrow Tower at (Random point in Inner <gen>)[COLOR="Red"])//leaks a location here// whats with the rest, you could simply end here and please use the other if with multiple actions??[/COLOR] else do (If (((Player 1 (Red) Current gold) Greater than or equal to 30) and ((Player 1 (Red) Current gold else do (Do nothing)
 

diggoran

New Member
Reaction score
3
thx a reply!!!

ok 2 things:
1) I guessed that paused was a bad check, but i didn't find an "unactive" or "ordered- stop".
2) where does it leak? and how? I'm not making dummies.
 

darkbeer

Beer is Good!
Reaction score
84
Paused means unable to do anything, used Order Comparism Current Order of Unit = stop

Code:
Red AI
    Ereignisse
        Zeit - Every 1.00 seconds of game time
    Bedingungen
        Or - Any (Conditions) are true
            Bedingungen
                (Current order of (UR UNIT)) Gleich (Order(stop))
                (Current order of (UR UNIT)) Gleich (Order(hold))
                // add whatever you want here
    Aktionen
        Set TempLoc = (Random point in (UR RECT!))
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Count structures controlled by Player 1 (Red) (Include incomplete structures)) Greater than or equal to 20
                (Player 1 (Red) Current gold) Greater than or equal to 30 
            Then - Actions
                For each (Integer A) from 1 to ((Player 1 (Red) Current gold) / 30), do (Actions)
                    Loop - Actions
                        Unit Group - Pick every unit in (Units owned by Player 1 (Red) of type Arrow Tower) and do (Actions)
                            Loop - Actions
                                Unit - Replace (Picked unit) with a Spear Tower using The old unit's relative life and mana
            Else - Actions
                 If ((Player 1 (Red) Current gold) Greater than or equal to 10) then do (Unit - Order Inner Builder 0003 <gen> to build a Arrow Tower at (TempLoc)) else Do nothing // put this under else
        CustomScript: call RemoveLocation(udg_TempLoc)
 

trb92

Throwing science at the wall to see what sticks
Reaction score
142
>2) where does it leak? and how? I'm not making dummies.

Everytime you do this
Code:
(Random point in Inner <gen>)
It leaks.

>1) I guessed that paused was a bad check, but i didn't find an "unactive" or "ordered- stop".

Tried this?
Code:
(Current order of (Inner Builder 0003)) Equal to (Order(stop))
It's under Order Comparison.
 

diggoran

New Member
Reaction score
3
thx a lot guys. looks like i need to do some leak research...

EDIT: Wait, I cant find "Current order of (<name>)" anywhere, not in Order Comparison either.
 

diggoran

New Member
Reaction score
3
darkbeer:
>and why dont you use player leaves game event?

I need it so that if there never was a player. (slot was left "Closed" or "Open" when the game started)

trb:
Does (Order(Inner Builder)) Equal to (Order(stop))
 

darkbeer

Beer is Good!
Reaction score
84
darkbeer:
>and why dont you use player leaves game event?

I need it so that if there never was a player. (slot was left "Closed" or "Open" when the game started)

thats why i said:

and on Map Init add: Trigger run Test Red Ingame <gen>

Code:
Code:

Test Red Ingame
    Events
        Player leaves Game // why dont use this?
    Conditions
        Or - Multiple Conditions are true
             Conditions - (Player 1 (Red) slot status) Equal to Has left the game)
                              (Player 1 (Red) slot status) Equal to Is unused)
    Actions
        Trigger - Turn on Red Al <gen>
 

diggoran

New Member
Reaction score
3
that trigger only runs AFTER a person LEAVES the game. I want computers to take over from the start if necessary.

EDIT: does trigger- run... skip the actions?
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top