• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.
  • The Hive's 22nd Icon Contest: Creep Abilities is now concluded, time to vote for your favourite set of icons! Click here to vote!
  • ✅ The POLL for Hive's Texturing Contest #34 is OPEN! Vote for the TOP 3 SKINS! 🔗Click here to cast your vote!
  • ✅ The POLL for Hive's Techtree Contest #20 is OPEN! Vote for the TOP 3 FACTIONS! 🔗Click here to cast your vote!

Setting up the Attributes of a Hero per level up

Status
Not open for further replies.
Level 4
Joined
May 16, 2009
Messages
61
Is there a way I can set up the heroes I make so that they have unique attribute gains per level while using only one veterancy?

So while Hero1 may gain only 1.9 str, 2.2 agil, and 2.7 int
Hero 2 gains 2.9 str, 1.2 agil, and 1.7 int

I ask this because I made a trigger that shows the stacks each buff has on a unit however I had to use If checks to remove Strength, Agility, and Intelligence attributes because the trigger editor only allows us to specify behaviors not buffs and so I do not want to make an If check to exclude the veterancy for EVERY SINGLE hero in my map

If not is there any way to exclude attributes and veterancies from a list of behaviors a unit has without specifying each in an If check
 
Last edited:
the trigger editor only allows us to specify behaviors not buffs
This is not true... You can use the Catalog natives to detects what scope a data element is.
If not is there any way to exclude attributes and veterancies from a list of behaviors a unit has without specifying each in an If check
Yes there is... You use the Catalog natives to do this.

Code:
native string CatalogEntryScope (int catalog, string entry);
catalog is an integer reference to the specific catalog the data is in.
entry is just the reference string to the data you want the scope of.

The returned value is a string which is unique for each scope within a single catalog.
A scope is the super element of all catalog entries and is itself an entry in the catalog. You will find the parent of a lot of entries is also it's scope. It is impossible to declare new scopes as far as I know (they interact with the game enigne in a hard coded way).
 
So how do I use that? Would it be like
  • General - For each integer Variable from 1 to Total Behaviors with increment 1, do (Actions)
    • Actions
      • General - If (Conditions) then do (Actions) else do (Actions)
        • If
          • (Catalog Behaviors entry (Catalog Catalog entry at index Variable) scope) != CBehaviorVeterancy
        • Then
  • Do Something
 
Catalog Catalog entry at index Variable
Replace that with the behaviour entry identifier string from the unit's behaviour list. (not real code but idea).

Thus you..
1. Itterate through all behaviours effecting a unit.
2. Test the behaviour scope on every itteration.
3. If the behaviour scope passes, you display it or do whatever.
 
Status
Not open for further replies.
Back
Top