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.
  • Varine Varine:
    I ordered like five blocks for 15 dollars. They're just little aluminum blocks with holes drilled into them
  • Varine Varine:
    They are pretty much disposable. I have shitty nozzles though, and I don't think these were designed for how hot I've run them
  • Varine Varine:
    I tried to extract it but the thing is pretty stuck. Idk what else I can use this for
  • Varine Varine:
    I'll throw it into my scrap stuff box, I'm sure can be used for something
  • Varine Varine:
    I have spare parts for like, everything BUT that block lol. Oh well, I'll print this shit next week I guess. Hopefully it fits
  • Varine Varine:
    I see that, despite your insistence to the contrary, we are becoming a recipe website
  • Varine Varine:
    Which is unique I guess.
  • The Helper The Helper:
    Actually I was just playing with having some kind of mention of the food forum and recipes on the main page to test and see if it would engage some of those people to post something. It is just weird to get so much traffic and no engagement
  • The Helper The Helper:
    So what it really is me trying to implement some kind of better site navigation not change the whole theme of the site
  • Varine Varine:
    How can you tell the difference between real traffic and indexing or AI generation bots?
  • The Helper The Helper:
    The bots will show up as users online in the forum software but they do not show up in my stats tracking. I am sure there are bots in the stats but the way alot of the bots treat the site do not show up on the stats
  • Varine Varine:
    I want to build a filtration system for my 3d printer, and that shit is so much more complicated than I thought it would be
  • Varine Varine:
    Apparently ABS emits styrene particulates which can be like .2 micrometers, which idk if the VOC detectors I have can even catch that
  • Varine Varine:
    Anyway I need to get some of those sensors and two air pressure sensors installed before an after the filters, which I need to figure out how to calculate the necessary pressure for and I have yet to find anything that tells me how to actually do that, just the cfm ratings
  • Varine Varine:
    And then I have to set up an arduino board to read those sensors, which I also don't know very much about but I have a whole bunch of crash course things for that
  • Varine Varine:
    These sensors are also a lot more than I thought they would be. Like 5 to 10 each, idk why but I assumed they would be like 2 dollars
  • Varine Varine:
    Another issue I'm learning is that a lot of the air quality sensors don't work at very high ambient temperatures. I'm planning on heating this enclosure to like 60C or so, and that's the upper limit of their functionality
  • Varine Varine:
    Although I don't know if I need to actually actively heat it or just let the plate and hotend bring the ambient temp to whatever it will, but even then I need to figure out an exfiltration for hot air. I think I kind of know what to do but it's still fucking confusing
  • The Helper The Helper:
    Maybe you could find some of that information from AC tech - like how they detect freon and such
  • Varine Varine:
    That's mostly what I've been looking at
  • Varine Varine:
    I don't think I'm dealing with quite the same pressures though, at the very least its a significantly smaller system. For the time being I'm just going to put together a quick scrubby box though and hope it works good enough to not make my house toxic
  • Varine Varine:
    I mean I don't use this enough to pose any significant danger I don't think, but I would still rather not be throwing styrene all over the air

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top