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

[Feedback] Compiled List of 1.30 / 1.29 Bugs & Issues

Status
Not open for further replies.
I tested the new natives for specialeffects: set yaw, pitch and roll (using GUI, but the result should be the same in jass). Well I am no expert for that 3d angle subject, therefore I could say something beeing wrong, but wana share my test here.
This images are for understanding what yaw roll pitch are.

images


200px-Flight_dynamics_with_text.png


From that 2 images one would expect:
  • yaw: is what we know as "facing" for units
  • roll: kinda left right fliping like in movies with planes.
  • pitch: rising / falling or looking down/up
But in Warcraft 3, yaw and roll are switched.

Also setPitch behaves different than set oriantion in regards of pitch.
  • Setpitch: the effect flips (forward and backwards), if pitch jumps over ~1.6 / ~4.8
  • SetOrientation: has no such behaviour the model is just circling.
A test map is provided in which one can increase yaw, roll & pitch; by holding right, left / down arrow key.
The used test effect model is admiral proudmoor.
Inside the test map yaw, roll & pitch are reduced to 0, if they exceed 2 PI.

Edit 11.05.2018: Uploaded 2 images showing that flipping with pitch at ~1.6 and corretected ~5 -> ~4.8
 

Attachments

  • pitch roll yaw.w3x
    20.2 KB · Views: 106
  • roll.jpg
    roll.jpg
    421 KB · Views: 181
  • yaw.jpg
    yaw.jpg
    428.5 KB · Views: 183
  • Pitch 1.6 SetPitch.jpg
    Pitch 1.6 SetPitch.jpg
    478 KB · Views: 135
  • Pitch 1.6 SetOri.jpg
    Pitch 1.6 SetOri.jpg
    488.2 KB · Views: 124
Last edited:
Level 5
Joined
May 10, 2018
Messages
129
Something strange happened when I was playing DotA 6.83d on patch 1.29. The map proved to be OK on earlier version of wc3(1.26/1.24e). So it may be a bug of patch 1.29?

When I equip Earth Spirit with Aghanim Scepter, the expected aghnim skill "Petrify" turn out to be buggy. (shown in pic. 1)

Same to Treant Protector. (shown in pic. 2)


The map is official version by Icefrog and can be downloaded from here: www.getdota.com

It seems like the buggy skills are ones simply not mentioned in XXabilities.txt, but actually they are. And a usual missing-tool-tip skill functions properly, but those not!

Then I added a skill cast capturer (copied from PBMN ai map) to see what exactly happened.

Code:
function AWH takes nothing returns nothing
call DisplayTextToPlayer(V8,0,0,"SC "+GetUnitName(GetTriggerUnit())+" Cast "+I2S(GetSpellAbilityId())+"("+XW7(GetSpellAbilityId())+")"+" on "+GetUnitName(GetSpellTargetUnit())+" at ("+I2S(R2I(GetSpellTargetX()))+","+I2S(R2I(GetSpellTargetY()))+")")
endfunction

As shown in pic.3, (taking Treant Protector as an example), the SpellAbility id of the buggy skill is 852182, which is an order id. (Yes, 852182 is the order id of "Tree eye"-'A01V', but it should be 'A01V')

Functions dealt with hero's scepters are very simple. As for Earth Spirit and Treant Protector simply execute an function to add a skill to the hero.

Code:
function IA1 takes unit SFI,integer IB1 returns nothing
call UnitAddAbility(SFI,IB1)
call UnitMakeAbilityPermanent(SFI,true,IB1)
endfunction
function XBO takes nothing returns nothing
call IA1(GK,'A01V')
endfunction
...
elseif GetItemTypeId(BA1)==FR0[L70]and GetUnitTypeId(SFI)=='Hamg' then
set GK=SFI
call ExecuteFunc("XBO")
...

Like what is shown in pic. 4, some other heroes who have similar scepter functions don't bug, such as Goblin Shredder.
I wondered if it is the base skill matter? So I replaced the buggy aghanim skill with other skill with same order string ("Petrify"-'A2S9' with "Electronic vortex"- 'A14R') , and it was still the same. (BTW, 'A14R' works well on Storm spirit)

When the bug appears, it is impossible to learn a new skill or upgrade a skill. And sometimes it will make other normal skill buggy.
 

Attachments

  • [1]earth spirit aghanim bug.jpg
    [1]earth spirit aghanim bug.jpg
    693.7 KB · Views: 169
  • [2]treant aghanim bug.jpg
    [2]treant aghanim bug.jpg
    695.6 KB · Views: 165
  • [3]spell id.jpg
    [3]spell id.jpg
    462.4 KB · Views: 133
  • [4]shredder aghanim.jpg
    [4]shredder aghanim.jpg
    730.2 KB · Views: 160
one of the V1.29 patches seemes to have broken localized wts-Files in a map. Previously one could add multiple wts files to a map by naming them war3map#<lcid>.wts (lcid in hex) for example war3map#407.wts (german) and war3map.wts (default).
Edit: This lcid number one would not have to use, proper mpq editors were doing that in the background when using it's set Locale feature.
It was working pre 1.29, As tested in that thread which was on date 4. febuary 2018 probably version 1.28.6 the last 1.28 version.
 
Last edited:
Level 6
Joined
Jun 29, 2011
Messages
181
Custom games do not work properly. I'm attaching a RoC game where one player took team 1 and the other team 4. Also 2 observers were watching.

The result was -> loading screen didn't show one of the teams and also the spawning place was the same for both.

I'm attaching the map too (which was created pre 1.29).

Also, game lobby chat cursor is still bugged (like when you change your team).
 

Attachments

  • Replay_2018_05_13_1257.w3g
    2 KB · Views: 90
  • (6)rocarenaScorchedBasin2.0.w3m
    144 KB · Views: 70
Last edited:
Level 13
Joined
May 10, 2009
Messages
868
call BlzSetSpecialEffectTime(bj_lastCreatedEffect, 5.00)
doesn't work for me, is it supposed to play special effect for 5 seconds?
Not exactly, that function is for skipping some frames from a special effect. It's useful for effects like Wisp Explode, which has a small delay prior to showing that blast effect.

The function that sort of fits what you're looking for is this:
BlzSetSpecialEffectTimeScale(bj_lastCreatedEffect, 1.00) // 100% - It modifies how fast a SFX is played
 
Level 11
Joined
Jun 2, 2004
Messages
849
The GUI version of Set Base Damage has a bug: it lets you select index 0 or 1, but the attack indexes are 1 and 2. So it's impossible to modify index 2 with GUI. The dice functions are similarly bugged, but notably the attack speed one is not; it will let you select either indexes 1 and 2. Obviously this does not affect the JASS natives.

(though of course, one could argue that the REAL bug is that weapon indexes start counting from 1 and not 0, mumble grumble)
 
Level 5
Joined
May 10, 2018
Messages
129
must be yet another issue with optimized maps and SLK? Drop the AbilityData content related to the skills to see
A01V Aesn 1 1 1 tree,vuln,invu 3600 3600 25 100 160 375 XEsn tree,vuln,invu 30 30 225 75 2000 630 630 450 XEsn tree,vuln,invu 30 30 150 50 2000 660 660 450 XEsn _
A2S9 AOcl 1 1 1 2 hero,notself 45 150 500 600 1 enemies 18 50 500 100 1 enemies 14 50 500 100 1 air,ground,enemy,neutral,organic 9 120 500 700 180 8 0.15
A14R AOcl 1 4 1 air,ground,enemy,neutral,organic 21 100 500 300 1 0.15 air,ground,enemy,neutral,organic 20 110 500 300 1 0.15 air,ground,enemy,neutral,organic 19 120 500 300 1 0.15 air,ground,enemy,neutral,organic 18 130 500 300 1 0.15
Do you mean abilitydata as above?
clear.png


Maybe...Let me make my question a little simpler: why 'A14R'(Electronic Vortex) works well when it is an initial skill of Storm Spirit but gets something wrong when
UnitAddAbility(hero,'A14R')?
 
Level 19
Joined
Dec 12, 2010
Messages
2,069
A01V Aesn 1 1 1 tree,vuln,invu 3600 3600 25 100 160 375 XEsn tree,vuln,invu 30 30 225 75 2000 630 630 450 XEsn tree,vuln,invu 30 30 150 50 2000 660 660 450 XEsn _
A2S9 AOcl 1 1 1 2 hero,notself 45 150 500 600 1 enemies 18 50 500 100 1 enemies 14 50 500 100 1 air,ground,enemy,neutral,organic 9 120 500 700 180 8 0.15
A14R AOcl 1 4 1 air,ground,enemy,neutral,organic 21 100 500 300 1 0.15 air,ground,enemy,neutral,organic 20 110 500 300 1 0.15 air,ground,enemy,neutral,organic 19 120 500 300 1 0.15 air,ground,enemy,neutral,organic 18 130 500 300 1 0.15
Do you mean abilitydata as above?
clear.png


Maybe...Let me make my question a little simpler: why 'A14R'(Electronic Vortex) works well when it is an initial skill of Storm Spirit but gets something wrong when
UnitAddAbility(hero,'A14R')?
nah this way slks are unreadable, I prefer it classic way
wzpDrxj.png


anyway, maybe they broke caching bug with channels even further
WC3 never stops to surprise me / Блог им. DracoL1ch / D1Stats Blogs
 
Level 5
Joined
May 10, 2018
Messages
129
nah this way slks are unreadable, I prefer it classic way
wzpDrxj.png


anyway, maybe they broke caching bug with channels even further
WC3 never stops to surprise me / Блог им. DracoL1ch / D1Stats Blogs
Oh... I get your point of the caching bug of ANcl. Maybe reusable dummies should be killed and recreated after issued channel skills?

...but my problem is not this type of bug, for none of the abilities is based on ANcl. It is probably another type of bug from my accidental discovery today.
After Earth Spirit got the aghanim bug (the bug I mentioned), I ordered it to put a stone on ground. A few seconds later, its "Stone Remnant"'s usage was charged, then the buggy ability icon disappears. Later, I bought it another aghanim scepter(because in icefrog's dota, scepter(earth spirit) is undroppable, or I would drop and pick it), "Petrify" appears as usual, no bug there any more!!!
So solution to my bug will be: try to add another new ability or something else to kill the buggy skill icon then re-add it.
 
Level 6
Joined
Aug 28, 2015
Messages
213
Calling
JASS:
call BlzSetSpecialEffectX( myEffect, posX )
call BlzSetSpecialEffectY( myEffect, posY )
call BlzSetSpecialEffectZ( myEffect, posZ )
like this, just calls the last one the first ones are ignored.
I worked around with set location and set height.
 
Level 5
Joined
Aug 19, 2015
Messages
68
The leaderboard shrink when a timer is displayed has already been reported, but i have another one you haven't listed:
Corrupted map when too many "unit enters region" events on a big map
When i increased the map size to 256x256 i was getting weird unbuildable pixels..
I have around 20-30 "unit enters region: playable map area" events.
Since i merged some of these events into one trigger who simply calls the other triggers it works again.
 

Wrda

Spell Reviewer
Level 25
Joined
Nov 18, 2012
Messages
1,864
When I press alt-enter in-game it puts the game into windowed mode, then when I press alt-enter again it gets put into fullscreen mode but the game looks blurred, as if the resolution isn't correct. Anyone else get this too?
This has nothing to do with the recent patches if it's that what you're asking, can happen in any of them, happened to me too. Just try not to press alt + enter.
 
Level 1
Joined
May 19, 2018
Messages
5
When using the player issues move mouse events it can Drastically increase your ping(/ping) causing huge delays in trigger sleep functions, among other issues. I was able to get my ping as high as 30 thousand earlier this morning by quickly moving my mouse around the screen for a minute or so.
Restarting warcraft before playing the game using these events seems to fix the issue for whatever reason. It also seems to happen nomatter how simple or inexpensive the code following the mouse move event.
This makes using mouse natives almost pointless, I'd appreciate if this was added to the list so there is a chance it'll get fixed. This issue will not occure if this is the first map you've played since logging online to b.net, so if you are trying to recreate the issue, play some other maps first.
Thank in advance, Gbud
 
Level 5
Joined
Aug 19, 2015
Messages
68
- i can not add a copy of the ability Avul (invulnerable neutral) to units anymore. had to switch over to "make unit invulnerable, true/false" (this only happens with copies of the ability, the original one works)
- this has been a bug forever i think, but when you mess around too much with unit groups from what a player has selected ..
function SetVariableToTrueIfUnitIsSelected takes nothing returns nothing
if GetEnumUnit() == GetTriggerUnit() then
set udg_unitisselected = true
endif
endfunction

local player = GetOwningPlayer(GetTriggerUnit())
local group ggg= GetUnitsSelectedAll(player)
ForGroupBJ(ggg, function SetVariableToTrueIfUnitIsSelected)
call DestroyGroup(ggg)
set ggg=null
call ReplaceUnitBJ(...)
if udg_unitisselected == true then
call SelectUnitForPlayerSingle( GetLastReplacedUnitBJ(), player )
endif
.. in multiplayer games, units from other players sometimes get stuck and unresponsive.
 
Last edited:
Level 5
Joined
Oct 28, 2010
Messages
21
Think I saw something about gameplay constants related to neutral hostile being broken. But just in case!

The Gamplay Constant: "Combat - Call For Help Range, Creeps" has no effect when changing its value. This has broken a lot of maps that had it set to lower values. Loads of creep camps getting pulled left and right, that shouldn't be.
 
Level 11
Joined
Jun 2, 2004
Messages
849
This has been noted in other places on this site, but it's not in the first post of this thread, so I'll mention since I came across it:

Attachments with team color aren't working properly and default to red. There exists a workaround to fix it: after giving the unit the attachment, change the color of the unit to its owner's after a short wait.

Common attachments that use team color include hero glow attachments and the like.


EDIT: Screenies were requested so they are now provided. First screenie is the problem, second screenie is showing that it's fixed with the provided trigger below.

Here's the trigger I used to fix the team color:

  • Hero Selected
    • Events
      • Unit - A unit Sells a unit
    • Conditions
      • ((Sold unit) is A Hero) Equal to True
    • Actions
      • Custom script: local unit temp_unit
      • -------- fix hero glow attachment to use the correct color --------
      • Custom script: set temp_unit = GetSoldUnit()
      • Wait 0.01 game-time seconds
      • Custom script: set udg_TempUnit = temp_unit
      • Unit - Change color of TempUnit to (Color of (Owner of TempUnit))
The attachment is given through a dummy ability with the Art - Target set to the hero glow model, which uses team color. The ability is assigned in the object editor, not given through triggers.
 

Attachments

  • teamglow1.png
    teamglow1.png
    346.3 KB · Views: 110
  • teamglow2.png
    teamglow2.png
    420.6 KB · Views: 101
Last edited:
Level 6
Joined
Sep 9, 2015
Messages
130
I think you should add one more bug to list "Game":

11: All floating text wrong postion (Critical number, Miss, -Mana burn, +Gold, +Lumber, and floating texts created by trigger)
More wider your screen, more distance the text pushed to the right!
 
Level 5
Joined
May 10, 2018
Messages
129
BlzUnitDisableAbility(hero,'A000',false,false) doesn't work if we previously called BlzUnitDisableAbility(hero,'A000',true,false) twice!
 
Level 20
Joined
Apr 12, 2018
Messages
494
This has been noted in other places on this site, but it's not in the first post of this thread, so I'll mention since I came across it:

Attachments with team color aren't working properly and default to red. There exists a workaround to fix it: after giving the unit the attachment, change the color of the unit to its owner's after a short wait.

Common attachments that use team color include hero glow attachments and the like.
As far as I know this has always been true since Warcraft 3 first came out. I know I've seen this in Reign of Chaos before (by accident) and is the main reason why I thought people used explicitly colored aura attachments.
 
Level 8
Joined
Mar 19, 2017
Messages
248
Can somebody replicate this:
- If you use BlzGetUnitAmor inside it's respective set function like this "BlzSetUnitArmor(u, BlzGetUnitArmor(u))" then it modifies base armor as it should be. One would say that it returns base armor value.
- But if you use BlzGetUnitArmor separatedly, like "set realvar = BlzGetUnitArmor(u)", here "realvar" returns base armor plus modifiers. Should be noted that i'm using Item abilities to add armor.
- The new base damage function doesn't replicate this behaviour.

To be fair this actually welcomed and very intuitive.
Maybe my editor is special? LOL
 
Level 11
Joined
Jun 2, 2004
Messages
849
That's... goofy as all fuck if true. What could be going on under the hood to cause such bizarre and broken behavior?

Whether a function is being called to set a variable or to pass an argument should make no difference as to its return value.
 
Level 19
Joined
Dec 12, 2010
Messages
2,069
That's... goofy as all fuck if true. What could be going on under the hood to cause such bizarre and broken behavior?

Whether a function is being called to set a variable or to pass an argument should make no difference as to its return value.
Guess he didn't make his homework at all. Native operates with memory cell which keeps current armor (sum). This cell contains final armor amount, no matter what. If you dont modify it (as his first line doenst modify it), nothing happens. Once you inc/dec armor, bonus gets added/sub'd from white armor becuase green armor is calculated every tick and cannot be modified. There are nothing wrong with behavior, his examples rather wrong
 
Level 8
Joined
Mar 19, 2017
Messages
248
Guess he didn't make his homework at all. Native operates with memory cell which keeps current armor (sum). This cell contains final armor amount, no matter what. If you dont modify it (as his first line doenst modify it), nothing happens. Once you inc/dec armor, bonus gets added/sub'd from white armor becuase green armor is calculated every tick and cannot be modified. There are nothing wrong with behavior, his examples rather wrong

I understand how it works but this could also be interpreted as lack of information provided by the Blizzard team. In the end i'm glad that things work mechanically correct, that's why i said "it's welcomed". Read "is logical".
For example the GetHeroStats -Int/Str/etc- (the only other functions that altere infocard stats before this new version) functions can be toggled to get total stat or just the base (true/false). The new GetArmor doesn't support such thing, so what are we going to presume when calling "GetArmor"? (white?, white plus green?, has to be one of these actually, but "common sense" will tell you that i can't be both, since you could guess that different values should be getted by different functions). This is why it impressed me that only by calling GetArmor inside the SetArmor you are getting white.

To try the effect just do "local real var = GetArmor..etc and display a message to get the value of the real var. It will show base plus modifiers. Then in the same function do the "SetArmor...(u, GetArmor + X).

So, BlzSetUnitArmor sets the total after modifiers. Well that's bizarre too but less than I was thinking.

Having a base armor getter/setter would be nice.
I think that the conclusion is GetArmor references total armor with modifiers, but SetArmor, should you reference GetArmor, it can't help but get white armor (as the explication of Dracolich).

TLDR; IF YOU ALREADY DON'T KNOW IT (DracoL1ch explicitely excluded), GetArmor (BlzGetUnitArmor) function can be used to get base armor and armor+modifiers.
 
Last edited:
Level 3
Joined
May 5, 2018
Messages
31
Seems like BlzSetHeroProperName makes units stuck, if they were acting (like moving somewhere) making them unable to response to player commands, and only reselecting these units fixed that things. It's even affected enemy units somehow, they were unable to do a thing. Or maybe its just my retarded code caused a problem
Wtf.png
 

Rui

Rui

Level 41
Joined
Jan 7, 2005
Messages
7,550
@Kolladan Stormrage that's an old bug that went undocumented for long; I've reported it only recently. To my surprise, it had gone unnoticed outside the roleplayers' community.

The bug has been well known among those players (of maps such as DoBRP, CotMRP and the likes) since 2005. It was known as the selection bug. The bug's effects are as you describe: units becoming unresponsive to player commands, and/or sometimes actions performed over unit groups enumerated from a player's selection affecting units that were not actually selected by the player. Interestingly enough, the latter case was not limited to 12 units.

It was never clear what caused it, though throughout the years we noticed two things: 1) less players meant it happened less often, and 2) with later RP maps scripted purely in JASS the bug was mostly absent. I suspect it might have something to do with BJ function GetUnitsSelectedAll, which is used when you call “Unit Group - Pick every unit in (Units currently selected by Player X)”
 
Last edited:
Level 6
Joined
Jan 26, 2012
Messages
230
Don't know if this has been discussed, but I am having a problem that makes the game almost unplayable.

When clicking on the interface (map skills etc) my mouse is "off" by 1 cm or so to the left. So lets say I click something on the minimap, and my camera goes 1cm to the right. Same thing with skills.

Is there any way to fix this? I have a 1280/1024 resolution, thought maybe theres some issue with that .Tried others but same problem it seems.

EDIT: found a solution. tried multiple resolutions. 1024/768 seems to work.
 
Last edited:
Level 13
Joined
Jul 15, 2007
Messages
763
I have found an inconvenience with the Set Armor function:
  • Unit - Set Armor of (Picked unit) to 0.00
It takes into account any bonus armor (green +armor) from abilities like devotion aura and items like ring of protection. So if you have a unit with a +100 devotion aura, and set its armor to 0, the unit's base armor will become -100. Obviously this makes the function dangerous to use, as if the unit loses this devotion aura, it will now have -100 armor and the armor calculation will need to be run again (needless to say how inconvenient it is to detect when an armor-giving ability/item is added/removed from a unit).

The function should be changed to (or added) Set Base Armor so that it's easier to set the armor of a unit to an intended value even when there are buffs/items involved. I believe i am right in saying that a huge amount of WC3 custom maps contain abilities that temporarily modify armor which in my opinion makes it more apparent at how limited the current Set Armor function is.

Another reason why this quirk irritates me is that the function Set Base Damage is something you could run with Set Armor to endlessly scale the combat stats of units in custom maps. Set Base Damage works perfectly as it ignores green +damage, meaning you can dynamically scale the damage of units all game long without abilities and items skewing calculations, but you can't do the same with armor, because as soon as a unit has a +armor buff or item then you effectively should not run the function on them (or write a massive long calculation to take temporary bonuses into account)

The same can be said for Set Max HP and Set Max Mana; it would be nice to also have Set Base Max HP and Set Base Max Mana. But we already have ways of efficiently adding base HP and base mana to units already (unlike Armour) so they're definitely less important.
 
Although not new in 1.29, Warcraft III does not save changes when you modify the terrain by triggers. For example, if you use Environment - Change Terrain Type and then save and load the game, all the changes are gone. It has been like this always in Warcraft III, but I guess you could fix it now. I have attached a test map to this post.
 

Attachments

  • EnvironmentTriggerTest.w3x
    17.4 KB · Views: 91
Status
Not open for further replies.
Top