• 🏆 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!

Taxation in WCIII

Status
Not open for further replies.
Level 4
Joined
Jan 6, 2009
Messages
100
Hey there. Im new here, and i have no idea were i would put this sort of post. I was thinking Triggers, but thats neither here nor there.

I had a dream.

A dream where you could have buildings taxed. Like gold mining, but without the building getting destroyed and possibly without the need of any collecter at all.

And this is were i need help, because i have no idea how to do somthing like this. I would greatly appreciate any help.
 
Level 3
Joined
Feb 20, 2009
Messages
28
I think to do this you will need some trigger help...if you are talking for meelee map then you have to harvest the gold all by yourself. If is an RPG you can take one Gold Mine place it Wherever you like and do the trigger.like this
  • GoldGetEnter
  • Events
    • Unit - Enters Region (GoldMine_01)
  • Conditions
    • (Entering Unit)is A Hero) Equal to True
  • Actions
    • Trigger - Turn On (GoldGet)
You will Also need this
2- Turn on
  • GoldGet
  • Events
    • Time - Every 2.00 Seconds
  • Conditions
  • Actions
    • Property - Give 5 Gold to (Entering Unit)
3-Now The Turn off
  • GoldGetLeave
  • Events
    • Unit - Leaves Region (GoldMine_01)
  • Conditions
  • Actions
    • Trigger - Turn off (GoldGet)
In order for this trigger to work the Unit Close to mine must be Hero and you have to create a region covering the mine and be a little bigger than the mine.
also triggers 2 and 3 must be Unchecked the Box Initially on at Top of the Trigger .
 
Level 8
Joined
Mar 12, 2008
Messages
437
What do you mean? You want the player to lose gold depending on how many structures it has? I think that should be
  • Tax
    • Events
      • Time - Every X seconds of game time
    • Conditions
    • Actions
      • Player Group - Pick every player in (All players) and do (Actions)
        • Player - Set (Picked player) Current gold to (((Picked player) Current gold) x (1 - (Integer((0.01 x (Real((Number of units in (Units in (Playable map area) owned by (Picked player))))))))))
This will remove 1% of the every player's gold for every building they have every X seconds. So if they have 20 buildings, they'll lose 20%.

The functions are (in order):
"Time - Periodic event"
"Player Group - Pick every player in player group and do multiple actions"
"Player - Set property"
"Arithmetic"
"Player - Player property"
"Arithmetic"
"Conversion - Convert real to integer"
"Arithmetic"
"Conversion - Convert integer to real"
"Unit - Count units in unit group"
"Units in region owned by player"
 
Level 4
Joined
Jan 6, 2009
Messages
100
What i mean is that:

For every, say, 40 seconds, the building (whatever it may be) will give the Owning Player X amount of gold. Thats what im trying to accomplish.
 
Level 3
Joined
Feb 20, 2009
Messages
28
he Doesnt want for a number of Buildings Dude...
he says he wants to have 1 Building which will automatic increase his Gold Amount every 40 seconds.....
 
Level 8
Joined
Mar 12, 2008
Messages
437
Argh, me so stupid.
  • Events
    • Every X seconds
  • Conditions
    • Player Group - Pick every player in (All players) and do (Actions)
      • If (All conditions are true) then do (Then actions) else do (Else actions)
        • If - conditions
          • (Number of units in (All units owned by (Picked player))) Greater than or equal to 1
        • Then - actions
          • Player - Add X to (Picked player) Current gold
 
Level 2
Joined
Mar 29, 2009
Messages
16
tax

i had that same idea for an empire builder based map im making, but instad of that, i just used the citizens idea that is usd in other taxation maps, such as:

Events
Time- every 5 seconds of the game
Conditions
None
Actions
Set RedCitiCount = (RedCitiCount + (Number of units in (Units owned by Player 1 (Red) of type Human Citizen)))
Wait 0.50 seconds
Unit Group - Pick every unit in (Units owned by Player 1 (Red) of type Human Citizen) and do (Unit - Remove (Picked unit) from the game)



if you do that, every time you create a citizen, your income will increase by 2
and it will also remove the citizens created so that the game does not lag later.

to calculate the income you could do this:

Events
Time - Every 30.00 seconds of game time
Conditions
None
Actions
Player - Add (RedCitiCount x TwoGold) to Player 1 (Red) Current gold


and with that, you could gain an income based off of how many citizens you have made and multiply it by 2, and every 30 seconds, you will gain that amount.
 
Level 4
Joined
Jan 6, 2009
Messages
100
Awsome, thanks Smiddle. Is it possible to affect only one player or specific players though? this taxation idea is linked to all human players for this map i'm creating.

EDIT:
Im also having trouble figureing out exactly how to piece together the trigger to do this. I've got some of it, but the rest looks like gibbberish. Can someone explain how to do it please?
 
Level 10
Joined
Mar 16, 2009
Messages
354
ok
1.) create a timer variable label it TaxTimer
2.) Create the timer initialization trigger
Event
- Time - Elapsed time is = to .10 seconds
Conditions
- none
Action
- Countdown Timer - Start TaxTimer as a repeating timer that will expire in 40 seconds
- Countdown Timer - Create a timer window for last created timer labeled Tax in . . .
3.)Create the tax trigger
Event
- Countdown Timer - Countdown timer TaxTimer has expired
Condition
- none
Action
- Player - add (integer variable entitled red) to player 1's current gold

Okay now the trigger to make the variable work
Event
- unit - unit enters region playable map area
Condition
- Unit Type comparision - Triggering unit is equal to the building that provides the income boost
- Player comparision - Owner of triggering unit is = to player 1 red
Action
- Variable - Set variable (integer variable entitled red) = to (integer variable entitled red) plus (amount of income gained from that building)

now when 40 seconds expires player 1 red will recive (amount of income gained from that building) multiplied by how many of those building he has.

To create this for all other players simply copy the triggers excluding the 1 for the timer and change all the play 1 to the next player and all the (integer variable entitled red) to (integer variable entitled blues) then teals then purp and so on.

Hope this helped :)

I think its funny that random people that read the threads that didnt request the answer are the people giving out rep to everyone xD
 
Last edited:
Level 4
Joined
Jan 6, 2009
Messages
100
This helped a lot, XPQJ. Would i be right to assume that all step two and three are individual?

EDIT:

Im not 100% sure on exactly what you mean when you say:

Action
- Variable - Set variable (integer variable entitled red) = to (integer variable entitled red) plus (amount of income gained from that building)
 
Level 10
Joined
Mar 16, 2009
Messages
354
well in the GUI hit new create a varible of an integer type entitled red then goto new action and hit the top drop down menu and put it under general then hit the bottom bar and find an area called set variable click that. and put in Set (the variable you made called red) = to(hit value(its colored red)) and under the value window at the top select variable then hit then in the window it should say under arithmatic red + 1 change the + 1 to whatever amount you want to be lost per building. Red + 1 means that for every building red has he/she gains 1 times the amount of buildings gold. you can also set a negitive value which would cause a taxation by putting a number like -30 then they lose 30 gold per building every 30 seconds if you have any othe questions post them here.

yes it would be right to assume step 2 and 3 are different triggers
 
Status
Not open for further replies.
Top