• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

triggers about gold property

Status
Not open for further replies.
Level 2
Joined
Nov 16, 2011
Messages
13
ok I am trying to make a gold system where every 30 seconds you gain 5 gold. along with this with every farm you build. every time u gain gold from that 30 second period each farm increases it by 3 gold. can someone explain to me how I can make this work? ive been trying this out for hours and I cant get it to work. perhaps im not understanding something :vw_wtf:
 

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,190
Your wording is a bit confusing...
Do you mean...
Each time income happens, income increases by 3 times the number of farms.
Each farm increases income by 3.

Both require you to keep track of the number of farms. It is advisable to use an integer variable for this instead of counting the units of a type. Building farms increments the variable. Farms that die decrements the variable. If there are many players with separate incomes you need to use an integer array where the array index is the player slot number.

Each time income happens, income increases by 3 times the number of farms.
You need an integer variable to keep track of current income. Then do the folowing pesudo code.
income = income + 3 * farms
add income to player's gold

You need to set income to 5 at map initialization. You will also need to make income an array if multiple players have separate income and the index used is the player slot number who's income is being processed.

Each farm increases income by 3.
Much simpler than above.
add 5 + 3 * farms to player's gold

If income is separate for many players then you will need to loop through all players with income every income period and do the income for them one at a time. Use player slot number as the index for any arrays.

The income period can be done via a timer with a timer window (for ingame visuals) or even a perodic trigger set to fire every 30 seconds.
 
Level 16
Joined
Mar 3, 2006
Messages
1,564
Try this
  • Ore Gen Fixed Time
    • Events
      • Time - Every 30.00 seconds of game time
    • Conditions
    • Actions
      • For each (Integer A) from 1 to MaxPlayers, do (Actions)
        • Loop - Actions
          • Set loopingPlayer = (Player((Integer A)))
          • Custom script: set bj_wantDestroyGroup = true
          • Set NumOfMinesOwned[(Integer A)] = (Number of living OreMine units owned by loopingPlayer)
          • Set VariableValue = (NumOfMinesOwned[(Integer A)] x ValuePerDuration)
          • Player - Add (FixedValue + VariableValue) to loopingPlayer Current gold
 
Last edited:
Status
Not open for further replies.
Top