Tutorial Simple Triggered Hero Artificial Intelligence in GUI

denmax

You can change this now in User CP.
Reaction score
155
This is my first Tutorial that I submitted so don't complain about my "Unadvanced" Guide. (PS: Possible that RoC does not have this triggers in existence)
If you cannot understand some descriptions in the tutorial because of grammar/spelling/any other things, then ask some people that can understand and can translate it into a more "Good English" way.
PS: Notice that this is just simple AI, (No Item System, Quite Stupid, Ranks [Insane, Normal, Easy] aren't applied, and some more features aren't added)

Code:
Contents
 I. Some things to know about
   1. Uses of AI Triggers
   2. Difference of Triggered and AI Editor Scripts
 II. The Hero Triggers
   1. Creating the Hero
   2. Learning and Using of Abilities
   3. Attacking, Chasing and Retreating
   4. Item System

I. Some Things to Know About


1. Uses of AI Triggering

AI triggering is for advanced Artificial Intelligence to those maps which the AI Editor cannot be applied. Common genres that uses Triggered AI are AoS, Hero Arena, Hero Defense, RPG (Role Playing Game), etc. Other things that aren't included (Tags, TDs (Tower Defense), TWs (TowerWars), Maul, CD's (Castle Defense) but aren't purposed for Triggered AI is because that these kind of games is too long and these kind of genres cannot be practiced even with AI Players.


2. Difference of Triggered and AI Editor Scripts

Triggered AI shows more advanced mechanics on the Heroes and its the map makers choice on what he wants to do with the Artificial Intelligence. As of AI Scripts, it's mechanics is equal to every unit than just caring for the Hero. AI Scripts are most used in Melee and Campaign maps.




II. The Hero Triggers


1. Creating the Hero

First, we have to create the Hero for the AI, depending on the style of how to get the hero. Some styles are using a building to upgrade it to a hero, taverns and arenas. The following codes are at the bottom and you can see if it is for its style (this trigger also gives random heroes of choice)​

You can add some stuff like the ff. in the actions:
Actions
Player Group - Pick every Player in (All Players) and do Player - Make [Hero-Type] Unavailable for training/constructing for (Picked Player)
Game - Display to (All Players) the text: (Name of Player (#) + picked + [Name of your Hero]
Hero - Create [item] and give it to (Last Created Unit)


Code:
[I]Building Upgrade to Hero[/I]
    Events
        Time - Elapsed game time is [...] seconds
    Conditions
        ([COLOR="Red"][U]Player [#](color)[/U][/COLOR] controller) Equal to Computer
    Actions
        If (All Condition are true) then do (Actions) Else do (Else Actions)
            If - Conditions
                (Random integer between 1 and 2) Equal to 1
            Then - Actions
                Set AIHero[[COLOR="Red"][U]Array#[/U][/COLOR]] = ([COLOR="Red"][U]Building Of Player[#][/U][/COLOR])
                Unit - Order [[COLOR="Red"][U]Player [#]'s building[/U][/COLOR]] to train/upgrade to a [COLOR="Red"][U][desired hero][/U][/COLOR]
                [If you would like to add something here, then add it]
            Else - Actions
                Unit - Order [[COLOR="Red"][U]Player [#]'s building[/U][/COLOR]] to train/upgrade to a [[U][COLOR="Red"]desired hero[/COLOR][/U]]
                [If you would like to add something here, then add it]

Code:
[I]Hero Tavern[/I]
    Events
        Time - Elapsed game time is [...] seconds
    Conditions
        ([COLOR="Red"][U]Player [#](color)[/U][/COLOR] controller) Equal to Computer
    Actions
        If (All Condition are true) then do (Actions) Else do (Else Actions)
            If - Conditions
                (Random integer between 1 and 2) Equal to 1
            Then - Actions
                Set Point = (Random Point of (Region))
                Unit - Create 1 [[COLOR="Red"][U]Hero[/U][/COLOR]] for [Player (#)] at [Point] facing [Default Facing Degrees]
                Custom Script: call RemoveLocation(udg_Point)
            Else - Actions
                Set Point = (Random Point of (Region))
                Unit - Create 1 [[COLOR="Red"][U]Hero[/U][/COLOR]] for [Player (#)] at [Point] facing [Default Facing Degrees]
                Custom Script - call RemoveLocation(udg_Point)
        Set AIHero[[COLOR="Red"][U]Array#[/U][/COLOR]] = (Last Created Unit)

Code:
[I]Hero Arena[/I]
    Events
        Time - Elapsed game time is [...] seconds
    Conditions
        ([COLOR="Red"][U]Player [#](color)[/U][/COLOR] controller) Equal to Computer
    Actions
        If (All Condition are true) then do (Actions) Else do (Else Actions)
             If - Conditions
                 (Random integer between 1 and 2) Equal to 1
             Then - Actions
                 Set BlaHeroLoc = (Random Point in ([COLOR="Red"][U]Region[/U][/COLOR]))
                 Unit - Order [[COLOR="Red"][U]Hero Picker of Player (#)[/U][/COLOR]] to Move to [BlaHeroLoc]
                 Custom Script - call RemoveLocation(udg_BlaHeroLoc)
             Else - Actions
                 Set BlaHeroLoc = (Random Point in ([COLOR="Red"][U]Region[/U][/COLOR]))
                 Unit - Order [[COLOR="Red"][U]Hero Picker of Player (#)[/U][/COLOR]] to Move to [BlaHeroLoc]
                 Custom Script - call RemoveLocation(udg_BlaHeroLoc)

Setting the Variable to the Arena.. Add these Actions

Code:
Actions
    [Add your Actions Here]
    If (Owner of (Entering Unit)) Equal to (Player[#]) and (Player[#] controller) Equal to Computer then do Set AIHero[Array#] = (Last Created Unit) else do Do Nothing


2. Learning and Using of Abilities
Now, what we need is a trigger that makes the Hero Artificial Intelligence to Learn Abilities and know when to use some abilities, especially the triggered ones. The order of learning of abilities is the best ability (Most Ultimate) to the Least Best (Attribute Bonus or the weakest ability). Even though the Ultimate has a level requirement, it means the AI will try to Learn the Ultimate first than the others, meaning, at level 6 or something, instead of learning the other abilities, the Hero will learn the Ultimate.​


Code:
[I]Learn Abilities[/I]
    Events
        Unit - A unit Gains a Level
    Conditions
        ([COLOR="Red"][U]Player [#](color)[/U][/COLOR] controller) Equal to Computer
        (Owner of (Leveling/Triggering Unit) Equal to [COLOR="Red"][U]Player [#](color)[/U][/COLOR]
    Actions
        Hero - Learn skill for (Leveling/Triggering Unit): [[COLOR="Red"][U]Strongest Ability/Ultimate of First Hero[/U][/COLOR]]
        Hero - Learn skill for (Leveling/Triggering Unit): [[COLOR="Red"][U]Strongest Ability/Ultimate of Second Hero[/U][/COLOR]]
        Hero - Learn skill for (Leveling/Triggering Unit): [[COLOR="Red"][U]Moderate Strong Ability of First Hero[/U][/COLOR]]
        Hero - Learn skill for (Leveling/Triggering Unit): [[COLOR="Red"][U]Moderate Strong Ability Second Hero[/U][/COLOR]]
        Hero - Learn skill for (Leveling/Triggering Unit): [[COLOR="Red"][U]Moderate Weak Ability of First Hero[/U][/COLOR]]
        Hero - Learn skill for (Leveling/Triggering Unit): [[COLOR="Red"][U]Moderate Weak Ability of Second Hero[/U][/COLOR]]
        Hero - Learn skill for (Leveling/Triggering Unit): [[COLOR="Red"][U]Weakest Ability of First Hero[/U][/COLOR]]
        Hero - Learn skill for (Leveling/Triggering Unit): [[COLOR="Red"][U]Weakest Ability of Second Hero[/U][/COLOR]]

You can also make the Hero randomly learn abilities with the If/Then/Else Actions. Also remember that this can choose 2 random heroes so you better put all of their abilities in.

*=Optional
Code:
[I]Usage of Abilities[/I]
    Events
        Time - Every 1 seconds of the game
    Conditions
        ([COLOR="Red"][U]Player [#](color)[/U][/COLOR] controller) Equal to Computer
    Actions
        Set VarUnitGroup = (Units within [[COLOR="Red"][U]distance[/U][/COLOR]] of (Position of (AIHero[[COLOR="Red"][U]Array#[/U][/COLOR]]) matching (((Matching Unit) is Alive) Equal to True) and ((Matching Unit) belongs to an enemy of (Owner of (AIHero[[COLOR="Red"][U]Array#[/U][/COLOR]])) Equal to True) and (((Matching Unit) is A Hero) Equal to True)
        Unit - Pick every unit in VarUnitGroup then do (Actions) else do (Else Actions)
            Loop - Actions
                If (All Condition are true) then do (Actions) Else do (Else Actions)
                    If - Conditions
                        (Integer((Life of (Picked Unit)))) Less than or Equal to [desired life]
                    Then - Actions
                        Set Point = (Position of (Picked Unit))
                        Unit - Order AIHero[[COLOR="Red"][U]Array#[/U][/COLOR]] to [[COLOR="Red"][U]Ability[/U][/COLOR]] [to (Picked Unit)/Point]
                        Custom Script - call DestroyGroup(udg_VarUnitGroup)
                        Custom Script - call DestroyGroup(udg_Point)
                    Else - Actions
                        Custom Script - call DestroyGroup(udg_VarUnitGroup)
                        Custom Script - call DestroyGroup(udg_Point)

I'm not quite sure about Custom Script, because the Variable is still going to be used again, so better use the other setting of the variable.



3. Attacking, Chasing and Retreating
Lastly, we need the AI Hero to farm, have intelligence to chase heroes and also intelligence when to retreat. There are many kinds of attacking depending on genres, there is lanes, arenas, defense. (Feature on defending base on AoS and Hero Defense Genre AI will be added soon)​

Code:
[I]Attacking - Lanes Part One[/I]
    Events
        Time - Every 1 seconds of the game
    Conditions
        ([COLOR="Red"][U]Player[#](color)[/U][/COLOR] controller) Equal to Computer
    Actions
        Set RandomLane[[COLOR="Red"][U]Array#[/U][/COLOR]] = (Random integer from 1 and 3)
        Unit Group - Pick every unit in [[COLOR="Red"][U]Base Region[/U][/COLOR]] and do (If (Percentage Life of (Picked Unit) Greater than or Equal to 85) and ((Owner of (Picked Unit)) Equal to ([COLOR="Red"][U]Player[#][/U][/COLOR])) then do (If RandomLane[[COLOR="Red"][U]Array#[/U][/COLOR]] Equal to 1) then do (Unit - Order (Picked Unit) to Attack - Move to (Center of [Mid Of Lane 1]) else do (If RandomLane[[COLOR="Red"][U]Array#[/U][/COLOR]] Equal to 2) then do (Unit - Order (Picked Unit) to Attack - Move to (Center of [Mid Of Lane 2]) else do (Unit - Order (Picked Unit) to Attack - Move to (Center of [Mid Of Lane 3])
        If RandomLane[[COLOR="Red"][U]Array#[/U][/COLOR]] Equal to 1 then do Turn On (Charging - After Locking - Lanes[1] Part One) else do Do Nothing
        If RandomLane[[COLOR="Red"][U]Array#[/U][/COLOR]] Equal to 1 then do Turn On (Attacking - After Casting Spells - Lanes[1] Part One)
        If RandomLane[[COLOR="Red"][U]Array#[/U][/COLOR]] Equal to 3 then do Turn On (Charging - After Locking - Lanes[3] Part One) else do Do Nothing
        If RandomLane[[COLOR="Red"][U]Array#[/U][/COLOR]] Equal to 3 then do Turn On (Attacking - After Casting Spells - Lanes[3] Part One)

We have to create a Integer Variable Lane Randomizer because using the "Chance" style will sometimes not work. You can find out whats the use of the Turn On triggers after reading Attacking.

Code:
[I]Attacking - Lanes Part Two[/I]
    Events
        Unit - A unit enters Mid Of Lane1
        Unit - A unit enters Mid Of Lane2
        Unit - A unit enters Mid Of Lane3
    Conditions
        ([COLOR="Red"][U]Player[#](color)[/U][/COLOR] controller) Equal to Computer
    Actions
        Set EnemyBase = (Center of (Enemy Base)
        Unit Group - Pick every unit in (Units within 500 of Mid Of Lane1) and do (If ((Owner of (Picked Unit)) Equal to (Player[#]))) then do (Unit - Order (Picked Unit) to Attack - Move to (EnemyBase) else do Do Nothing
        Unit Group - Pick every unit in (Units within 500 of Mid Of Lane2) and do (If ((Owner of (Picked Unit)) Equal to (Player[#]))) then do (Unit - Order (Picked Unit) to Attack - Move to (EnemyBase) else do Do Nothing
        Unit Group - Pick every unit in (Units within 500 of Mid Of Lane3) and do (If ((Owner of (Picked Unit)) Equal to (Player[#]))) then do (Unit - Order (Picked Unit) to Attack - Move to (EnemyBase) else do Do Nothing
        Trigger - Turn On (Charging - After Locking - Lanes Part Two)
        Trigger - Turn On (Attacking - After Casting Spells - Lanes Part Two)
        Trigger - Turn Off (Attacking - After Casting Spells - Lanes[1] Part One)
        Trigger - Turn Off (Attacking - After Casting Spells - Lanes[3] Part One)
        Trigger - Turn Off (Charging - After Locking - Lanes[1] Part One)
        Trigger - Turn Off (Charging - After Locking - Lanes[3] Part One)
        Custom Script - call RemoveLocation(udg_EnemyBase)

An example of AoS Lane Attacking, this trigger has 3 lanes. Mid Of Lane is not a variable, it is a region. Put this region in the Middle of each lane.

Code:
[I]Attacking - Arena[/I]
    Events
        Time - Every 1 seconds of the game
    Conditions
        ([COLOR="Red"][U]Player[#](color)[/U][/COLOR] controller) Equal to Computer
    Actions
        Set RandomPointArena = (Random Point in (Arena Region))
        Unit Group - Pick Every Unit in [[COLOR="Red"][U]Fountain Spot for Player[#][/U][/COLOR]) and do (If (Percentage Life of (Picked Unit) Greater than or Equal to 85) and ((Owner of (Picked Unit) Equal to [COLOR="Red"][U]Player[#][/U][/COLOR]) then do Unit - Order AIHero[[COLOR="Red"][U]Array#[/U][/COLOR]] to Attack-Move to RandomPointArena else do Do Nothing
        Custom Script: call RemoveLocation(udg_RandomPointArena)

This is the most simplest Attacking Trigger for AI in Arena. I'm not sure if there are still many.

Code:
[I]Attacking - After Casting Spells - Lanes[1] Part One (Initially On)[/I]
    Events
        Unit - A unit Starts the Effect of an Ability
    Conditions
        (Owner of (Triggering Unit)) Equal to ([COLOR="Red"][U]Player[#](color)[/U][/COLOR])
        ([COLOR="Red"][U]Player[#](color)[/U][/COLOR] controller) Equal to Computer
    Actions
        Set MidLane[1] = (Center of (Mid Lane 1))
        Unit - Order (Triggering Unit) to Attack Move to (Mid of Lane1)
        Custom Script: call RemoveLocation(udg_MidLane[1])

Lane1 = West; Lane2 = Middle; Lane3 = East

Code:
[I]Attacking - After Casting Spells - Lanes[3] Part One (Initially On)[/I]
    Events
        Unit - A unit Starts the Effect of an Ability
    Conditions
        (Owner of (Triggering Unit)) Equal to ([U][COLOR="Red"]Player[#](color)[/COLOR][/U])
        ([COLOR="Red"][U]Player[#](color) controller[/U][/COLOR]) Equal to Computer
    Actions
        Set MidLane[3] = (Center of (Mid of Lane3)
        Unit - Order (Triggering Unit) to Attack Move to (Mid of Lane3)
        Custom Script: call RemoveLocation(udg_MidLane[3])

Lane1 = West; Lane2 = Middle; Lane3 = East

Code:
[I]Attacking - After Casting Spells - Lanes Part Two (Initially On)[/I]
    Events
        Unit - A unit Starts the Effect of an Ability
    Conditions
        (Owner of (Triggering Unit)) Equal to ([COLOR="Red"][U]Player[#](color)[/U][/COLOR])
        ([COLOR="Red"][U]Player[#](color)[/U][/COLOR] controller) Equal to Computer
    Actions
        Set EnemyBase = (Enemy Base Ragion)
        Unit - Order (Triggering Unit) to Attack Move to (EnemyBase)
        Custom Script: call RemoveRect(udg_EnemyBase)

Code:
[I]Charging - Lock Target[/I]
    Events
        Time - Every 1 seconds of the game
    Conditions
        (Player [#](color) controller) Equal to Computer
    Actions
        Set VarUnitGroup = (Units within [[COLOR="Red"][U]distance[/U][/COLOR]] of (Position of (AIHero[[COLOR="Red"][U]Array#[/U][/COLOR]]) matching (((Matching Unit) is Alive) Equal to True) and ((Matching Unit) belongs to an enemy of (Owner of (AIHero[[COLOR="Red"][U]Array#[/U][/COLOR]])) Equal to True) and (((Matching Unit) is A Hero) Equal to True)
        Unit - Pick every unit in VarUnitGroup then do (Actions) else do (Else Actions)
            Loop - Actions
                If (All Condition are true) then do (Actions) Else do (Else Actions)
                    If - Conditions
                        (Integer((Life of (Picked Unit)))) Less than or Equal to [desired life]
                    Then - Actions
                        Set Target[[COLOR="Red"][U]Array#[/U][/COLOR]] = (Picked Unit)
                        Unit - Order AIHero[[COLOR="Red"][U]Array#[/U][/COLOR]] to Attack Target[[COLOR="Red"][U]Array#[/U][/COLOR]]
                        Set VarUnitGroup = (Units in (Region(0.00, 0.00, 0.00, 0.00))
                        Custom Script: call DestroyGroup(udg_VarUnitGroup[Array#])
                     Else - Actions
                        Set VarUnitGroup = (Units in (Region(0.00, 0.00, 0.00, 0.00))
                        Custom Script: call DestroyGroup(udg_VarUnitGroup[Array#])

Code:
[I]Charging - After Locking - Arena[/I]
    Events
        Unit - A unit dies
    Conditions
        (Dying Unit) Equal to Target[Array#] or (Dying Unit) Equal to AIHero[Array#]
    Actions
        Set RandomPointArena = (Random Point of (Arena))
        Unit - Order (AIHero[[U][COLOR="Red"]Array#[/COLOR][/U]]) to Attack Move to (RandomPointArena)
        Custom Script: call RemoveLocation(udg_RandomPointArena)

Code:
[I]Charging - After Locking - Lanes[1] Part One (Initially On)[/I]
    Events
        Unit - A unit dies
    Conditions
        (Dying Unit) Equal to Target[[COLOR="Red"][U]Array#[/U][/COLOR]] or (Dying Unit) Equal to AIHero[[COLOR="Red"][U]Array#[/U][/COLOR]]
    Actions
        Set MidLane[1] = (Center of (Mid Of Lane1))
        Unit - Order (AIHero[COLOR="Red"][U][Array#[/U][/COLOR]]) to Attack Move to MidLane[1]
        Custom Script: call RemoveLocation(udg_MidLane[1])

Lane1 = West; Lane2 = Middle; Lane3 = East;

Code:
[I]Charging - After Locking - Lanes[3] Part One (Initially On)[/I]
    Events
        Unit - A unit dies
    Conditions
        (Dying Unit) Equal to Target[[COLOR="Red"][U]Array#[/U][/COLOR]] or (Dying Unit) Equal to AIHero[[COLOR="Red"][U]Array#[/U][/COLOR]]
    Actions
        Set MidLane[3] = (Center of (Mid Of Lane3))
        Unit - Order (AIHero[[COLOR="Red"][U]Array#[/U][/COLOR]]) to Attack Move to (MidLane[3])
        Custom Script: call RemoveLocation(udg_MidLane[3])

Lane1 = West; Lane2 = Middle; Lane3 = East;

Code:
[I]Charging - After Locking - Lanes Part Two (Initially On)[/I]
    Events
        Unit - A unit dies
    Conditions
        (Dying Unit) Equal to Target[[COLOR="Red"][U]Array#[/U][/COLOR]] or (Dying Unit) Equal to AIHero[[COLOR="Red"][U]Array#[/U][/COLOR]]
    Actions
        Set EnemyBase = (Center of (Enemy Base Region))
        Unit - Order (AIHero[[COLOR="Red"][U]Array#[/U][/COLOR]]) to Attack Move to EnemyBase
        Custom Script: call RemoveLocation(udg_EnemyBase)


Code:
[I]Retreat[/I]
    Events
        Time - Every 1 seconds of the game
    Conditions
        (Player[#](color) controller) Equal to Computer
    Actions
        Set VarUnitGroup = (Units in (Playable Map Area))
        Unit Group - Pick Every Unit in (VarUnitGroup) and do (If (Life of (Picked Unit) Less than or Equal to 400) and ((Owner of (Picked Unit) Equal to Player[#]) then do Unit - Order AIHero[[COLOR="Red"][U]Array#[/U][/COLOR]] to Move to Center of [[COLOR="Red"][U]Fountain Point of Player[#]/Base[/U][/COLOR]] else do Do Nothing
        Custom Script: call DestroyGroup(udg_VarUnitGroup)


4. Item System
The only thing we need now is to make the Hero AI buy items. I really can't explain more in here so I'm gonna skip the description.​

Code:
[I]Going Near Shops[/I]
    Events
        Player - Player[#]'s Current Gold becomes Greater than or Equal to [..]
    Conditions
        (Player[#](color) controller) Equal to Computer
    Actions
        Set ItemSpot = (Center of (Item Spot Region))
        Unit - Order AIHero[[COLOR="Red"][U]Array#[/U][/COLOR]] to Move to ItemSpot
        Custom Script: call RemoveLocation(udg_ItemSpot)

The Item Spot Region must be near a shop but is not in the Base Region. Remember that the AI will attack if he enters the Base Region.

Code:
[I]Buying Items[/I]
    Events
        Unit - A unit enters [Item Spot Region]
    Conditions
        (Owner of (Entering Unit)) Equal to ([COLOR="Red"][U]Player[#](color)[/U][/COLOR])
        ([COLOR="Red"][U]Player[#](color)[/U][/COLOR] controller) Equal to Computer
    Actions
        If (All Conditions are true) then do (Actions) else do (Else Actions)
            If - Conditions
                ([COLOR="Red"][U]Player[#](color)[/U][/COLOR]'s Current Gold) Greater than or Equal to [..]
            Then - Actions
                If (All Conditions are true) then do (Actions) else do (Else Actions)
                    If - Conditions
                        Or - Any conditions are true
                            (Item type of (Item type carried by AIHero[[COLOR="Red"][U]Array#[/U][/COLOR]] in slot 1) Equal to (Item Type of No Item)
                            (Item type of (Item type carried by AIHero[[COLOR="Red"][U]Array#[/U][/COLOR]] in slot 2) Equal to (Item Type of No Item)
                            (Item type of (Item type carried by AIHero[[COLOR="Red"][U]Array#[/U][/COLOR]] in slot 3) Equal to (Item Type of No Item)
                            (Item type of (Item type carried by AIHero[[COLOR="Red"][U]Array#[/U][/COLOR]] in slot 4) Equal to (Item Type of No Item)
                            (Item type of (Item type carried by AIHero[[COLOR="Red"][U]Array#[/U][/COLOR]] in slot 5) Equal to (Item Type of No Item)
                            (Item type of (Item type carried by AIHero[[COLOR="Red"][U]Array#[/U][/COLOR]] in slot 6) Equal to (Item Type of No Item)
                   Then - Actions
                       Item - Create [item] at [anywhere]
                       Set AIItem[[COLOR="Red"][U]Array#[/U][/COLOR]] = (Last Created Item)
                       Hero - Give AIItem[[COLOR="Red"][U]Array#[/U][/COLOR]] to AIHero[Array#]
                       Player - Add -[..] Current Gold to [U][COLOR="Red"]Player[#](color)[/COLOR][/U]
                       Turn Off (this trigger)
                       Turn On (Advanced Items 1/Selling Items)
                   Else - Actions
                       Do Nothing
            Else - Actions
                Do Nothing

You can also use random integers to make the hero choose from random items.

Code:
[I]Selling Items (Initially On)[/I]
    Actions
        [B]Item - Remove AIItem[[COLOR="Red"][U]Array#[/U][/COLOR]] from the game[/B]
        [B]Player - Add +[..] Current Gold to Player[#](color)[/B]

Add these actions to more Advanced items to replace older items for money

Thank you for reading this tutorial..

Code:
Updates:
 Added the Item System
 Removed Most/All Leaks
 Added Color Coding
 

denmax

You can change this now in User CP.
Reaction score
155
Thnx really appreciate it. I'll add Item System maybe tomorrow.
Aw pinoyz XD

Nvm I'll try adding it now.
 

W!†A_cRaft

Ultra Cool Member
Reaction score
28
I only dont like 1 thing, u are using random number intrigers.

From my past expiriances (but this may be a bug) it is not working properly:

Lets say u run the map, and by triggers (for example):

Player 1 rolls intriger 2 and gets hero 2
Player 2 rolls intriger 8 and gets hero 8
Player 3 rolls intriger X and gets hero X

So whats the problem they are random u ask me?

Well than u press F10 E Q, than ok and start the map again

Player 1 will roll intriger 2 AGAIN and get hero 2
Player 2 will roll intriger 8 AGAIN and get hero 8
Player X will AGAIN ROLL THE SAME X INTRIGER, its not random at all, it is random to a single map but every time u run that map the players will get same heroes, it is boring.

First i thought it was my maps but than i downloaded DotA AI, and this happens all the same.

Every time i play( as a sentinel ) MY TWO ALLIES GET URSA AND SAND KING

intrigers are bad to me :(

PLEASE TRY IT AND INFORM ME IS THIS HAPPENING TO U TOO using PM
 

denmax

You can change this now in User CP.
Reaction score
155
Well in my map it works.. It creates random heroes and also even if you restart it, sometimes it is the same, sometimes it isn't... Why would I give this tutorial if it doesn't work anyway?

EDIT: I'm going to do Item System tomorrow, I'm tired. Just ignore 3rd post.
 

denmax

You can change this now in User CP.
Reaction score
155
Thnx waaaks! really appreciate it..

This is a SPAM post.. has no reason of why i posted this stuff..

TY tolz, ito lang ang "source of rep" ko at wala na ako magagawa
 

Sirroelivan

Gunnerkrigg Court
Reaction score
95
I only dont like 1 thing, u are using random number intrigers.

From my past expiriances (but this may be a bug) it is not working properly:

Lets say u run the map, and by triggers (for example):

Player 1 rolls intriger 2 and gets hero 2
Player 2 rolls intriger 8 and gets hero 8
Player 3 rolls intriger X and gets hero X

So whats the problem they are random u ask me?

Well than u press F10 E Q, than ok and start the map again

Player 1 will roll intriger 2 AGAIN and get hero 2
Player 2 will roll intriger 8 AGAIN and get hero 8
Player X will AGAIN ROLL THE SAME X INTRIGER, its not random at all, it is random to a single map but every time u run that map the players will get same heroes, it is boring.

First i thought it was my maps but than i downloaded DotA AI, and this happens all the same.

Every time i play( as a sentinel ) MY TWO ALLIES GET URSA AND SAND KING

intrigers are bad to me :(

PLEASE TRY IT AND INFORM ME IS THIS HAPPENING TO U TOO using PM

Are you testing your map via world editor, cause in world editor the random numbers are always the same by default. You can turn this of under preferences I believe
 

denmax

You can change this now in User CP.
Reaction score
155
Update:
Removed Most/All leaks in the Tutorial..
 

D359

Member
Reaction score
1
Hy I have a pretty silly question:how can the computer tell the diference between the strongest ability and the weakest ability of a hero?Are they marked somehow within the unit ability editor?
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • 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 The Helper:
    New dessert added to recipes Southern Pecan Praline Cake https://www.thehelper.net/threads/recipe-southern-pecan-praline-cake.193555/
  • The Helper The Helper:
    Another bot invasion 493 members online most of them bots that do not show up on stats
  • Varine Varine:
    I'm looking at a solid 378 guests, but 3 members. Of which two are me and VSNES. The third is unlisted, which makes me think its a ghost.
    +1
  • The Helper The Helper:
    Some members choose invisibility mode
    +1
  • The Helper The Helper:
    I bitch about Xenforo sometimes but it really is full featured you just have to really know what you are doing to get the most out of it.
  • The Helper The Helper:
    It is just not easy to fix styles and customize but it definitely can be done
  • The Helper The Helper:
    I do know this - xenforo dropped the ball by not keeping the vbulletin reputation comments as a feature. The loss of the Reputation comments data when we switched to Xenforo really was the death knell for the site when it came to all the users that left. I know I missed it so much and I got way less interested in the site when that feature was gone and I run the site.
  • Blackveiled Blackveiled:
    People love rep, lol
    +1
  • The Helper The Helper:
    The recipe today is Sloppy Joe Casserole - one of my faves LOL https://www.thehelper.net/threads/sloppy-joe-casserole-with-manwich.193585/
  • The Helper The Helper:
    Decided to put up a healthier type recipe to mix it up - Honey Garlic Shrimp Stir-Fry https://www.thehelper.net/threads/recipe-honey-garlic-shrimp-stir-fry.193595/

      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