|
![]() |
|
Thread Tools | Search this Thread |
![]() |
#1 | ||||
User
Join Date: Feb 2006
Posts: 218
![]() |
![]() NOTE: You have been redirected in order for our attachments to be made available to you. This will only last two minutes; these measures where taken to avoid hotlinking and bandwidth theft. To avoid these restrictions Log in or Register Imaging you are playing a really nice tower defense map. It gets hard, but you have a good feeling that you will beat the next waves. But whats that?? Suddenly there is no next wave... You realize that one or more units are stuck anywhere.
I often ran into this situation with random tower defense maps. As im also into wc3 editing, i didn't want to release a map where these problems could happen too. So i digged into this issue. 1st warcraft 3 bug: region size situation: in the final game, regions are bigger than the size they were created/ set. their width & length respectively is increased by 32 units, extending the top edge & the right edge of the original region (the one in the editor). solution: when creating regions, appropriately make them smaller! example: when creating regions via rectangles instead of "Rect(-32, -32, 32, 32)" do "Rect(-32, -32, 0, 0)". info: Rect(min x, min y, max x, max y) links: http://www.wc3c.net/showpost.php?p=1077324 http://www.wc3c.net/showpost.php?p=1077401
2nd warcraft 3 "bug": movement order (IssuePointOrderLoc) situation: when you order a unit to a desired location, the units final actual location isn't the same in 99% cases. the causing factor of these deviations isn't the units collision size, scale or model file. after enough tests (to express it in numbers: in sum not less than 312k) i was able to prove that it is the movement speed & document how much the max & min differences are! solution: when you order units to a random point of the next region, you have two choices i think. the easy one: just order them to the next random location inside a region inside a 16 units big border. the hard one: receive the default movement speed of the entering unit & order it with the help of a custom system in reference to the values in the table attached at the end of this passage. however, keep in mind that these values still doesn't seem to be exact as they vary for different directions sometimes. i dont think that the direction is the cause of that, it is just some random factor & still too less tests. anyway in my map i will use the simple workarround with a fixed border of 16 units. here are some pics:
3rd warcraft 3 bug: regions intersecting or bordering on each other situation: when regions intersect or border on each other the 'unit entering event' of the 2nd region won't fire. example: region 1: Rect(-32, -32, 0, 0) in editor = Rect(-32, -32, 32, 32) in game region 2: Rect(-32, 32, 0, 64) in editor = Rect(-32, 32, 32, 96) in game when a unit enters 1 & you order it to 2, the unit will walk to 2, but the event from 2 isn't fired, meaning that the unit will get stuck at 2! when a unit enters 2 & you order it to 1, the unit will walk to 1, but the event from 1 isn't fired, meaning that the unit will get stuck at 1! solution: when placing regions, leave at least 32 units empty space between them! why exactly 32 units? because the regions coordinate system is a multiple of 32 units of the default warcraft 3 coordinate system. leaving 32 units space between regions already is the smallest possible distance. the next bigger distance would be 64, then 96, and so on...
4th warcraft 3 bug: units blocking each other caused by their collision radius size situation: when there are too many units with decent collision radius blocking each other, it happens quite often that one or a few of them lose their location orders & get stuck. solution: you can either turn collision off which completely solves this issue or (because no collision seems strange) you can add a periodical timer (for example every 3 seconds) to every creep unit which temporarily turns off collision for a few seconds & orders it to the last given location if the unit's current orderid was null. in my map i will use the approach with the timer as i dont want to miss the funny effects of collision. perhaps i will even mix it. some waves with collision, some without :-p
all of the above informations were gathered in Warcraft 3 The Frozen Throne Version Build 1.26.0.6401 (Patch 1.26a). So if there comes out another patch, I cannot guarantee if everything mentioned here still is valid. Thanks: Anitarf for the nice talks via chat for remembering me to also change the gameplay constants of min & max movement speed first before i run my tests! i already had some wrong results giving me a headache finding out a pattern. MindWorX for helping & assisting me in running up to 12 instances of warcraft 3 in singleplayer without autopause on 1 notebook simultaneously. (kLoader & Cheat Engine & appropriate memory key) all I forgot to add here! ;-p PS: concerning bug 2 I would have attached the original Excel-file if someone wanted to make further tests or just for reference, but it is 11 MB in size. Even with 7zip i can only reduce it to 8 MB. EDIT: bug 2 picture explanations are somewhat less described from me. if you need more informations on this, just let me know. but for now i want to resume editing my map instead of enhancing this thread even more... Last edited by MasterofSickness : 04-16-2014 at 07:32 PM. |
||||
![]() |
![]() |
Sponsored Links - Login to hide this ad! |
|
![]() |
#2 |
PhD
Cinematics Moderator
|
![]() Great work! I don't really like regions to begin with, but it's great that you did this work :)
__________________ |
![]() |
![]() |
![]() |
#3 |
User
Join Date: Feb 2006
Posts: 218
![]() |
![]() Thanks for the kind words iNfraNe & therefor the motivation!
__________________updated post #1:
Last edited by MasterofSickness : 04-16-2014 at 07:34 PM. |
![]() |
![]() |
![]() |
Thread Tools | Search this Thread |
|
|