• 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.

[General] Gold Mine slow workers Bug & Heroes don't show their names

Level 13
Joined
Sep 11, 2013
Messages
467
Greetings!
I have 2 new problems and I need your help once again:).

1. I wanted to be able to build a Town Hall with "return gold and lumber" ability, very close to the Gold Mine and this is impossible by default so I found a solution on hive, but a new problem has arrived.
  • Town Hall Fixed
    • Events
      • Unit - A unit Finishes construction
    • Conditions
      • ((Constructed structure) is A town-hall-type unit) Equal to True
    • Actions
      • Unit - Add Return Gold and Lumber to (Constructed structure)
With this solution I can place the Town Hall very close to the gold mine but after second harvest, the workers start to walk very slow and I don't want that and I don't know how to fix this problem. You can see this problem in the video below.


2. In the second problem I noticed the name of the hero is missing from the description box and in the past version all was good. I wish to see the name of the hero just like before because is very annyoing not to see the name of the hero in my map when I have a random option to choose a hero and then the hero will be hidden for 30 sec and the players don't know what hero is because all hero doesn't have names in the description box.

This bug is now in all maps.

1.jpg


This is on 1.26 Patch
2.jpg

If you can help me to solve those 2 problems, the help will be appreciated! :peasant-bowing:
 

Dr Super Good

Spell Reviewer
Level 64
Joined
Jan 18, 2005
Messages
27,287
With this solution I can place the Town Hall very close to the gold mine but after second harvest, the workers start to walk very slow and I don't want that and I don't know how to fix this problem. You can see this problem in the video below.
Likely the mechanism that tries to require and optimise gold mines for X workers? It is slowing them down because they are arriving too fast.

Solution is not to fight it, but instead change the amount that the workers haul per trip to suit your desired mining rate per worker at this closer distance.
 
Level 34
Joined
May 14, 2021
Messages
1,602
In the second problem I noticed the name of the hero is missing from the description box and in the past version all was good. I wish to see the name of the hero just like before because is very annyoing not to see the name of the hero in my map when I have a random option to choose a hero and then the hero will be hidden for 30 sec and the players don't know what hero is because all hero doesn't have names in the description box.

This bug is now in all maps.
For this problem, it's not something that I can fix. It's amazing what a huge number of bugs Blizzard has made in recent years, especially with the release of Reforged 2.0. that even broke a couple of things more, such as in-game models getting messed up when you attempt to load your previous saves. I don't even played Reforged just yet, but I assume that you don't have such a problem on pre-Reforged versions (like the yours with 1.26 and mine with 1.29.2), and without the "Random Hero" option being enabled (the game starts normally without randomized hero for your playable race). I believe "Random Hero" option also gets bugged in the later patches where AIs won't be able to learn their spells with this mode (even though this bug was worsened on 1.31). In short, it's a bug in the game and some people have the same thing and not only yours.
 

Uncle

Warcraft Moderator
Level 73
Joined
Aug 10, 2018
Messages
7,877
I imagine the Workers movement speed gets reduced at a key moment like on gold/lumber delivery. Catch this Order and adjust their Movement Speed yourself to undo the effects. It may be possible with one simple trigger, otherwise, a system could be put in place that monitors the workers and constantly forces change.
 
Level 13
Joined
Sep 11, 2013
Messages
467
I imagine the Workers movement speed gets reduced at a key moment like on gold/lumber delivery. Catch this Order and adjust their Movement Speed yourself to undo the effects. It may be possible with one simple trigger, otherwise, a system could be put in place that monitors the workers and constantly forces change.
Sadly, I have no idea how to catch the order or how to make such a system.. and I think a lot of bugs can appear if i move the workers with such a system.. idk..
 

Uncle

Warcraft Moderator
Level 73
Joined
Aug 10, 2018
Messages
7,877
Sadly, I have no idea how to catch the order or how to make such a system.. and I think a lot of bugs can appear if i move the workers with such a system.. idk..
You wouldn't be moving them. Anyway, just about everything you tell a Unit to do in Warcraft 3 is considered an Order. Orders precede ability usage, movement, attacks, etc.

There's 3 Events related to Orders:
  • Events
    • Unit - A unit issues an order targeting an object
    • Unit - A unit issues an order targeting a point
    • Unit - A unit issues an order with no target
The names are pretty self-explanatory.

If you select a Worker and right click a gold mine then the Worker will issue an Order to harvest gold from that gold mine. This order is targeting an object -> the gold mine. If you tell a unit to Move to some patch of grass then that's a point order. If there is no targeting, like Ordering a unit to Stop, Hold Position, or cast the Thunderclap ability then it was a no target Order.

You can then use the Order Comparison condition to check which Order was issued:
  • Conditions
    • (Issued order) Equal to (Order(stop))

Now you might be wondering, how the hell do I know what the name of an Order is? Easy, you can display it in a Text Message and find out in-game:
  • Events
    • Unit - A unit issues an order targeting an object
    • Unit - A unit issues an order targeting a point
    • Unit - A unit issues an order with no target
  • Conditions
  • Actions
    • Game - Display to (All players) for 30.00 seconds the text: (String((Issued order)))
The message that appears in-game will be the same text that you put in the (parenthesis) of your Condition:
  • Conditions
    • (Issued order) Equal to (Order(order name goes here))

Regarding the Movement Speed change, there's a simple Action for that:
  • Unit - Set (Triggering unit) movement speed to 190.00

The final product would probably look something like this:
  • Events
    • Unit - A unit issues an order targeting an object
  • Conditions
    • (Issued order) Equal to (Order(harvest))
  • Actions
    • Unit - Set (Triggering unit) movement speed to 190.00
(Triggering unit) always refers to the unit mentioned in an Event -> (A unit issues an order).
 
Last edited:
Level 13
Joined
Sep 11, 2013
Messages
467
You wouldn't be moving them. Anyway, just about everything you tell a Unit to do in Warcraft 3 is considered an Order. Orders precede ability usage, movement, attacks, etc.

There's 3 Events related to Orders:
  • Events
    • Unit - A unit issues an order targeting an object
    • Unit - A unit issues an order targeting a point
    • Unit - A unit issues an order with no target
The names are pretty self-explanatory.

If you select a Worker and right click a gold mine then the Worker will issue an Order to harvest gold from that gold mine. This order is targeting an object -> the gold mine. If you tell a unit to Move to some patch of grass then that's a point order. If there is no targeting, like Ordering a unit to Stop, Hold Position, or cast the Thunderclap ability then it was a no target Order.

You can then use the Order Comparison condition to check which Order was issued:
  • Conditions
    • (Issued order) Equal to (Order(stop))

Now you might be wondering, how the hell do I know what the name of an Order is? Easy, you can display it in a Text Message and find out in-game:
  • Events
    • Unit - A unit issues an order targeting an object
    • Unit - A unit issues an order targeting a point
    • Unit - A unit issues an order with no target
  • Conditions
  • Actions
    • Game - Display to (All players) for 30.00 seconds the text: (String((Issued order)))
The message that appears in-game will be the same text that you put in the (parenthesis) of your Condition:
  • Conditions
    • (Issued order) Equal to (Order(order name goes here))

Regarding the Movement Speed change, there's a simple Action for that:
  • Unit - Set (Triggering unit) movement speed to 190.00

The final product would probably look something like this:
  • Events
    • Unit - A unit issues an order targeting an object
  • Conditions
    • (Issued order) Equal to (Order(harvest))
  • Actions
    • Unit - Set (Triggering unit) movement speed to 190.00
(Triggering unit) almost always refers to the unit mentioned in any Event -> (A unit issues an order).
Hi Uncle and thank you for your help! I just tried that now, but didn't work.. I set the movement speed to 400 but after first harvest the movement speed drop again to 277.50 and remain locked while the worker harvest even if the trigger that set speed seems to run each time. I also found that order called "resumeharvesting" with your method but nothing changed.

I put a demo map below with my tests because maybe you know better how to fix this. For tests I always put Town Hall in the middle of green grass.
 

Attachments

  • Gold Mine slow workers Bug Demo Map.w3m
    18.1 KB · Views: 4

Uncle

Warcraft Moderator
Level 73
Joined
Aug 10, 2018
Messages
7,877
Note that this isn't a bug, it's an intended mechanic.

Anyway, I found a very easy fix to getting rid of it:
  • Peasant Harvest Speed Fix
    • Events
      • Unit - A unit Is issued an order targeting an object
    • Conditions
      • (Issued order) Equal to (Order(resumeharvesting))
    • Actions
      • Unit - For (Triggering unit), Ability Harvest (Gold and Lumber), Disable ability: True, Hide UI: True
      • Unit - For (Triggering unit), Ability Harvest (Gold and Lumber), Disable ability: False, Hide UI: False
      • Game - Display to (All players) the text: (String((Current movement speed of (Triggering unit)), 1, 2))
That seems to undo the speed changes without interrupting anything.
 
Level 13
Joined
Sep 11, 2013
Messages
467
Note that this isn't a bug, it's an intended mechanic.

Anyway, I found a very easy fix to getting rid of it:
  • Peasant Harvest Speed Fix
    • Events
      • Unit - A unit Is issued an order targeting an object
    • Conditions
      • (Issued order) Equal to (Order(resumeharvesting))
    • Actions
      • Unit - For (Triggering unit), Ability Harvest (Gold and Lumber), Disable ability: True, Hide UI: True
      • Unit - For (Triggering unit), Ability Harvest (Gold and Lumber), Disable ability: False, Hide UI: False
      • Game - Display to (All players) the text: (String((Current movement speed of (Triggering unit)), 1, 2))
That seems to undo the speed changes without interrupting anything.
This is brilliant! Work like a charm! Thank you!

Edit: I wonder if that will produce lag when will be 150 workers on the map at the same time:?
 
Level 13
Joined
Sep 11, 2013
Messages
467
Note that this isn't a bug, it's an intended mechanic.

Anyway, I found a very easy fix to getting rid of it:
  • Peasant Harvest Speed Fix
    • Events
      • Unit - A unit Is issued an order targeting an object
    • Conditions
      • (Issued order) Equal to (Order(resumeharvesting))
    • Actions
      • Unit - For (Triggering unit), Ability Harvest (Gold and Lumber), Disable ability: True, Hide UI: True
      • Unit - For (Triggering unit), Ability Harvest (Gold and Lumber), Disable ability: False, Hide UI: False
      • Game - Display to (All players) the text: (String((Current movement speed of (Triggering unit)), 1, 2))
That seems to undo the speed changes without interrupting anything.
Well I just encountered a new problem with this fix:)) :peasant-sad:
In a normal game, I saw that the workers become like ghost(visible) (without collision) when they harvest gold or lumber and you can't body block them and they don't get stuck. After they stop harvesting/resumeharvesting gold or lumber, they become normal units with collision again.


Right Now, with this trigger, the workers don't have that "ghost visible without collision" ability that is hard coded in Harvest (Gold and Lumber) ability I think and has a delay until is activated (and will never become activated because of the trigger) and they stuck because collision and they stop harvest gold or lumber.

I try to find a solution with ghost visible ability but i am not lucky for the moment.
 

Uncle

Warcraft Moderator
Level 73
Joined
Aug 10, 2018
Messages
7,877
Perhaps try something like this:
  • Peasant Harvest Speed Fix
    • Events
      • Unit - A unit Is issued an order targeting an object
    • Conditions
      • (Issued order) Equal to (Order(resumeharvesting))
    • Actions
      • Unit - For (Triggering unit), Ability Harvest (Gold and Lumber), Disable ability: True, Hide UI: True
      • Unit - For (Triggering unit), Ability Harvest (Gold and Lumber), Disable ability: False, Hide UI: False
      • Unit - Turn collision for (Triggering unit) off
  • Peasant Harvest Collision Fix
    • Events
      • Unit - A unit Is issued an order targeting a point
      • Unit - A unit Is issued an order targeting an object
      • Unit - A unit Is issued an order with no target
    • Conditions
      • (Level of Harvest (Gold and Lumber) for (Triggering unit)) Equal to 1
      • (Issued order) Not equal to (Order(resumeharvesting))
      • (Issued order) Not equal to (Order(harvest))
    • Actions
      • Unit - Turn collision for (Triggering unit) on
You can also try to use the Ghost ability instead of toggling collision.
 
Level 13
Joined
Sep 11, 2013
Messages
467
Perhaps try something like this:
  • Peasant Harvest Speed Fix
    • Events
      • Unit - A unit Is issued an order targeting an object
    • Conditions
      • (Issued order) Equal to (Order(resumeharvesting))
    • Actions
      • Unit - For (Triggering unit), Ability Harvest (Gold and Lumber), Disable ability: True, Hide UI: True
      • Unit - For (Triggering unit), Ability Harvest (Gold and Lumber), Disable ability: False, Hide UI: False
      • Unit - Turn collision for (Triggering unit) off
  • Peasant Harvest Collision Fix
    • Events
      • Unit - A unit Is issued an order targeting a point
      • Unit - A unit Is issued an order targeting an object
      • Unit - A unit Is issued an order with no target
    • Conditions
      • (Level of Harvest (Gold and Lumber) for (Triggering unit)) Equal to 1
      • (Issued order) Not equal to (Order(resumeharvesting))
      • (Issued order) Not equal to (Order(harvest))
    • Actions
      • Unit - Turn collision for (Triggering unit) on
You can also try to use the Ghost ability instead of toggling collision.
I tried many triggers with collision and ghost and somehow work but not so good. In the end I found an ez solution. I set the collision size of the peasant from 16 to 1 and they don't stuck anymore.:peasant-ok-hand: Your trigger still fix the speed problem so everything run very good now! Thank you!
 
Top