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

Patch 1.31 announced

Status
Not open for further replies.

Wrda

Spell Reviewer
Level 25
Joined
Nov 18, 2012
Messages
1,870
New bug (REGRESSION)

The map variable limit has been lowered from ~25k to ~14k (not sure if it's related to memory or variable count)

This causes mapfiles that were previously working to now crash wc3 when selected in the custom game list

CC @WaterKnight @Kam
Hope thats temporary.
On second thought, who even uses such a high number of variables over 14k? Does this include the wc3 already existing variables?
 

Ardenaso

HD Model Reviewer
Level 33
Joined
Jun 22, 2013
Messages
1,811
Did you feel too embarrassed to ask this to your parents or friends? Google it maybe? I mean, you are this old and still ask such a question. Makes me wonder if you live in Antarctica :D

I mean I had a shortcut but with the update the repair/launch window keeps on appearing with the same shortcut, and yes I did google.
 
Level 6
Joined
Jan 17, 2010
Messages
149
Hope thats temporary.
On second thought, who even uses such a high number of variables over 14k? Does this include the wc3 already existing variables?

Some heavy maps can use some 10,000 variables.

Each struct instance variable vjass-ed into a global array.
Each struct static variable vjass-ed into a global variable.

Reaching 14k isn't that out of the ordinary...

Any serious modding project will surpass it as they move to create object oriented architecture instead of the unscalable GUI/Jass styles.

Not necessarily a problem of WEdit, but of Vexorian dropping the ball and choosing to use array-based architecture for structs instead of heap/table based (tables are 40% slower but it doesn't matter 99% of the time)


.. Although i'm not sure what "variables" are being referred to here in this context...
 
Last edited:
Level 5
Joined
Dec 25, 2014
Messages
111
So, how does all of this natives work? i can see many, most of them is not working. I don't even know which natives are working.

JASS:
native BlzGetAbilityBooleanField                   takes ability whichAbility, abilitybooleanfield whichField returns boolean
native BlzGetAbilityIntegerField                   takes ability whichAbility, abilityintegerfield whichField returns integer
native BlzGetAbilityRealField                      takes ability whichAbility, abilityrealfield whichField returns real
native BlzGetAbilityStringField                    takes ability whichAbility, abilitystringfield whichField returns string
native BlzGetAbilityBooleanLevelField              takes ability whichAbility, abilitybooleanlevelfield whichField, integer level returns boolean
native BlzGetAbilityIntegerLevelField              takes ability whichAbility, abilityintegerlevelfield whichField, integer level returns integer
native BlzGetAbilityRealLevelField                 takes ability whichAbility, abilityreallevelfield whichField, integer level returns real
native BlzGetAbilityStringLevelField               takes ability whichAbility, abilitystringlevelfield whichField, integer level returns string
native BlzGetAbilityBooleanLevelArrayField         takes ability whichAbility, abilitybooleanlevelarrayfield whichField, integer level, integer index returns boolean
native BlzGetAbilityIntegerLevelArrayField         takes ability whichAbility, abilityintegerlevelarrayfield whichField, integer level, integer index returns integer
native BlzGetAbilityRealLevelArrayField            takes ability whichAbility, abilityreallevelarrayfield whichField, integer level, integer index returns real
native BlzGetAbilityStringLevelArrayField          takes ability whichAbility, abilitystringlevelarrayfield whichField, integer level, integer index returns string
native BlzSetAbilityBooleanField                   takes ability whichAbility, abilitybooleanfield whichField, boolean value returns boolean
native BlzSetAbilityIntegerField                   takes ability whichAbility, abilityintegerfield whichField, integer value returns boolean
native BlzSetAbilityRealField                      takes ability whichAbility, abilityrealfield whichField, real value returns boolean
native BlzSetAbilityStringField                    takes ability whichAbility, abilitystringfield whichField, string value returns boolean
native BlzSetAbilityBooleanLevelField              takes ability whichAbility, abilitybooleanlevelfield whichField, integer level, boolean value returns boolean
native BlzSetAbilityIntegerLevelField              takes ability whichAbility, abilityintegerlevelfield whichField, integer level, integer value returns boolean
native BlzSetAbilityRealLevelField                 takes ability whichAbility, abilityreallevelfield whichField, integer level, real value returns boolean
native BlzSetAbilityStringLevelField               takes ability whichAbility, abilitystringlevelfield whichField, integer level, string value returns boolean
native BlzSetAbilityBooleanLevelArrayField         takes ability whichAbility, abilitybooleanlevelarrayfield whichField, integer level, integer index, boolean value returns boolean
native BlzSetAbilityIntegerLevelArrayField         takes ability whichAbility, abilityintegerlevelarrayfield whichField, integer level, integer index, integer value returns boolean
native BlzSetAbilityRealLevelArrayField            takes ability whichAbility, abilityreallevelarrayfield whichField, integer level, integer index, real value returns boolean
native BlzSetAbilityStringLevelArrayField          takes ability whichAbility, abilitystringlevelarrayfield whichField, integer level, integer index, string value returns boolean
native BlzAddAbilityBooleanLevelArrayField         takes ability whichAbility, abilitybooleanlevelarrayfield whichField, integer level, boolean value returns boolean
native BlzAddAbilityIntegerLevelArrayField         takes ability whichAbility, abilityintegerlevelarrayfield whichField, integer level, integer value returns boolean
native BlzAddAbilityRealLevelArrayField            takes ability whichAbility, abilityreallevelarrayfield whichField, integer level, real value returns boolean
native BlzAddAbilityStringLevelArrayField          takes ability whichAbility, abilitystringlevelarrayfield whichField, integer level, string value returns boolean
native BlzRemoveAbilityBooleanLevelArrayField      takes ability whichAbility, abilitybooleanlevelarrayfield whichField, integer level, boolean value returns boolean
native BlzRemoveAbilityIntegerLevelArrayField      takes ability whichAbility, abilityintegerlevelarrayfield whichField, integer level, integer value returns boolean
native BlzRemoveAbilityRealLevelArrayField         takes ability whichAbility, abilityreallevelarrayfield whichField, integer level, real value returns boolean
native BlzRemoveAbilityStringLevelArrayField       takes ability whichAbility, abilitystringlevelarrayfield whichField, integer level, string value returns boolean

// Item 
native BlzGetItemAbilityByIndex                    takes item whichItem, integer index returns ability
native BlzGetItemAbility                           takes item whichItem, integer abilCode returns ability
native BlzItemAddAbility                           takes item whichItem, integer abilCode returns boolean
native BlzGetItemBooleanField                      takes item whichItem, itembooleanfield whichField returns boolean
native BlzGetItemIntegerField                      takes item whichItem, itemintegerfield whichField returns integer
native BlzGetItemRealField                         takes item whichItem, itemrealfield whichField returns real
native BlzGetItemStringField                       takes item whichItem, itemstringfield whichField returns string
native BlzSetItemBooleanField                      takes item whichItem, itembooleanfield whichField, boolean value returns boolean
native BlzSetItemIntegerField                      takes item whichItem, itemintegerfield whichField, integer value returns boolean
native BlzSetItemRealField                         takes item whichItem, itemrealfield whichField, real value returns boolean
native BlzSetItemStringField                       takes item whichItem, itemstringfield whichField, string value returns boolean
native BlzItemRemoveAbility                        takes item whichItem, integer abilCode returns boolean

// Unit 
native BlzGetUnitBooleanField                      takes unit whichUnit, unitbooleanfield whichField returns boolean
native BlzGetUnitIntegerField                      takes unit whichUnit, unitintegerfield whichField returns integer
native BlzGetUnitRealField                         takes unit whichUnit, unitrealfield whichField returns real
native BlzGetUnitStringField                       takes unit whichUnit, unitstringfield whichField returns string
native BlzSetUnitBooleanField                      takes unit whichUnit, unitbooleanfield whichField, boolean value returns boolean
native BlzSetUnitIntegerField                      takes unit whichUnit, unitintegerfield whichField, integer value returns boolean
native BlzSetUnitRealField                         takes unit whichUnit, unitrealfield whichField, real value returns boolean
native BlzSetUnitStringField                       takes unit whichUnit, unitstringfield whichField, string value returns boolean

// Unit Weapon
native BlzGetUnitWeaponBooleanField                takes unit whichUnit, unitweaponbooleanfield whichField, integer index returns boolean
native BlzGetUnitWeaponIntegerField                takes unit whichUnit, unitweaponintegerfield whichField, integer index returns integer
native BlzGetUnitWeaponRealField                   takes unit whichUnit, unitweaponrealfield whichField, integer index returns real
native BlzGetUnitWeaponStringField                 takes unit whichUnit, unitweaponstringfield whichField, integer index returns string
native BlzSetUnitWeaponBooleanField                takes unit whichUnit, unitweaponbooleanfield whichField, integer index, boolean value returns boolean
native BlzSetUnitWeaponIntegerField                takes unit whichUnit, unitweaponintegerfield whichField, integer index, integer value returns boolean
native BlzSetUnitWeaponRealField                   takes unit whichUnit, unitweaponrealfield whichField, integer index, real value returns boolean
native BlzSetUnitWeaponStringField                 takes unit whichUnit, unitweaponstringfield whichField, integer index, string value returns boolean
 
Level 1
Joined
Jun 27, 2019
Messages
2
!

I recently updated my Warcraft 3 folder to 1.31 patch. I was looking forward to play some custom maps I downloaded which only allowed 1.30 or now (1.31) patch.
Anyways, I lost all my files I downloaded (Thank God I kept a back-up of them) but when I put it back in the Warcraft 3 folder, it says "This application has encountered a critical error: Not enough memory resources are available to process this command."
Cheers..
- Th= KA+
 

deepstrasz

Map Reviewer
Level 69
Joined
Jun 4, 2009
Messages
18,806
Anyways, I lost all my files I downloaded (Thank God I kept a back-up of them) but when I put it back in the Warcraft 3 folder, it says "This application has encountered a critical error: Not enough memory resources are available to process this command."
Which executable are you running, the one from the x86_x64 or x86 folder? And on which operating system?
 
Level 7
Joined
Jul 4, 2007
Messages
249
Is 1.31 still PTR, or is it a live version? Because I get the question if I want to update to 1.31 in the game but nothing happens when I do.
 
Level 16
Joined
Apr 4, 2011
Messages
995
I am finally able to open my (almost finished) map again after half a year of frustration. I never got info that I was supposed to use a different launcher from the one I had been using for 10+ years. Why are there four launchers for WC and WE now??

Is there a spot I can get up to date on fixing my code and map? A bunch of stuff that used to work now goes kaput or crashes game on usage and I'd rather learn the new patch than make 20 something posts in the GUI help category. Also small chance but does anyone know if Bribe's unit indexer + associated packages still work on new patch environment?
 
Level 9
Joined
Jun 25, 2014
Messages
199
They made so many changes in game so I think they altering source code itself. If I'm right they could add legit liquid lava, reverse 1 - 12 player colors to state like they were before 24 players update (brown would again look like brown, not like orange), make all tiles enabled to swap, make possible to add more cliff types, make blight work on cliffs/underwater and alter colors of selection line/circles:

blue - player, AI allies in control & human allies,
green - AI allies,
yellow - neutral,
red - enemies.
 
Last edited:
Level 7
Joined
Jan 1, 2014
Messages
95
They made so many changes in game so I think they altering source code itself. If I'm right they could add legit liquid lava, reverse 1 - 12 player colors to state like they were before 24 players update (brown would again look like brown, not like orange), make all tiles enabled to swap, make possible to add more cliff types, make blight work on cliffs/underwater and alter colors of selection line/circles:

blue - player, AI allies in control & human allies,
green - AI allies,
yellow - neutral,
red - enemies.
I agree with you so much, I dont like 24 player colors, some colors are too similar. But it could be an extra feature that you could manually add to custom game, but they should revert ladder and all other things have just 12 standart colors.

Hell, I could even think that having multiple players with same color is better than what it is now. You could forexample make 3 player blue color and 2 player red, one white, one dark, and so forth using just standart 15 colors or how much it originally had.

Playing big game with team players having two or three same color doesnt really matter because there are already so many players, just increase the player limit to 24 separately it was good idea.
 
Level 7
Joined
Jul 4, 2007
Messages
249
Buggy. Wouldn't recommend. Better use 1.30 instead.
What's buggy about it? I've recently updated from 1.30 and I'm very pleased with using 1.31 now. It being very buggy in the beginning and breaking maps and shit is what freightened me from using it earlier, but now it seems smooth to me. It's especially chill when making tooltips :D
 

deepstrasz

Map Reviewer
Level 69
Joined
Jun 4, 2009
Messages
18,806
Level 7
Joined
Jan 1, 2014
Messages
95
Yeah, there have been reports that copying terrain would crash the editor.
I did not copy the terrain. I was doing the most basic things u could have ever done. No triggering, no touch special featuer or anything else than I was just tuning my terrain a little bit by moving some doodads, and reterrain some water parts.

Everything I did had been rock solidly working since the release of the frozen throne: i know the editor, so its new bug.
 
Level 11
Joined
Mar 31, 2016
Messages
657
I can confirm that when I work on a complex 480x480 map with lots of doodads, terrain variety and units - When selecting or copying terrain... all it takes is an accidental left click drag, selecting a tiny section of terrain, editor immediately crashes if done after the first 5 minutes of using the program.
If it's done at the beginning, right after opening the map, it works fine. I'll post a more detailed on the Bugs and Issues Thread soon.
 
Level 7
Joined
Jan 1, 2014
Messages
95
Level 5
Joined
Jun 26, 2016
Messages
60
  • Scripts can now detect when any unit is damaged
  • Scripts can now detect and modify the damage done before armor
  • Scripts can now detect and modify the attack type, damage type, and weapon type (Note, modifying these only works in the pre-armor event
Does that means we can use triggers for damage of spells like breath of frost,etc?
 
Status
Not open for further replies.
Top