WC3 Patch 1.23b

Learn about and comment on the next version of EotA in development.
Post Reply
Message
Author
User avatar
SeasonsOfLove
Resident
Resident
Posts: 118
Joined: May 27th, 2006, 8:18 pm

WC3 Patch 1.23b

#1 Post by SeasonsOfLove »

EotAers need to make sure the map doesn't break with all the new JASS changes being made (H2I being the most notable one). I doubt EotA is a "popular" map (aka DotA), so I'm sure that Yak hasn't actually been given help or warning like IceFrog probably was. (Nobody in TDG or on WC3C was either... go figure).

User avatar
DarnYak
Site Admin
Site Admin
Posts: 2364
Joined: August 12th, 2006, 2:54 pm

Re: WC3 Patch 1.23b

#2 Post by DarnYak »

Yea, that's going to break everything.

Just what i needed, rewriting massive swaths of EotA.

DarnYak

User avatar
GeneralFunk
3/4s Weeaboo
Posts: 328
Joined: June 3rd, 2009, 11:56 pm
Realm: Azeroth (U.S. East)
Contact:

Re: WC3 Patch 1.23b

#3 Post by GeneralFunk »

That's why you should have made your own handlers, you haxxing bastard. Are you sure it's going to be H2I exploit that's going to take a hit? Because I can only imagine I2H() being the potentially bad one.
Image

User avatar
DarnYak
Site Admin
Site Admin
Posts: 2364
Joined: August 12th, 2006, 2:54 pm

Re: WC3 Patch 1.23b

#4 Post by DarnYak »

GeneralFunk wrote:That's why you should have made your own handlers, you haxxing bastard. Are you sure it's going to be H2I exploit that's going to take a hit? Because I can only imagine I2H() being the potentially bad one.
To be fair, it does depend on how they did it. If I can still use the gamecache and just have to change the return bug, then it might only take 30s to fix.

This is the main reason I waited a long ass time to touch anything related to that bug too. Finally i figured if they hadn't fixed it now, they never would.

DarnYak

User avatar
GeneralFunk
3/4s Weeaboo
Posts: 328
Joined: June 3rd, 2009, 11:56 pm
Realm: Azeroth (U.S. East)
Contact:

Re: WC3 Patch 1.23b

#5 Post by GeneralFunk »

I'd like to imagine they'll add pointer support of they remove H2I ability, a lot of maps will be down in result of it. >_>
Image

User avatar
Dekar
Jelly Doughnut
Posts: 1433
Joined: May 27th, 2006, 8:13 am
Realm: Northrend (Europe)
Battle.net name: Dekar
Location: Germany

Re: WC3 Patch 1.23b

#6 Post by Dekar »

Just wait 2 days for the DotA community to find a solution.
<EotA@Azeroth> YAKS GO MOOOOOOOOOOOOOOOOOOOOOOOO

Dekar: the ultimate ocean themed hero should buff and depend on spawn waves!
DarnYak: why is that
Dekar: WAVES
Dekar: :D
DarnYak: i was afraid that was the answer

User avatar
DarnYak
Site Admin
Site Admin
Posts: 2364
Joined: August 12th, 2006, 2:54 pm

Re: WC3 Patch 1.23b

#7 Post by DarnYak »

Anyone tried EotA on the test server btw?

DarnYak

User avatar
GeneralFunk
3/4s Weeaboo
Posts: 328
Joined: June 3rd, 2009, 11:56 pm
Realm: Azeroth (U.S. East)
Contact:

Re: WC3 Patch 1.23b

#8 Post by GeneralFunk »

Looks like map makers won't be so boned, just type "GetHandleID" select it, press ctrl + x, then do ctrl + F; then repeat the following, "find next", click, then ctrl + v.

And it seems Blizzard has added a lot of native support to what vJass has to offer, and opens new doors to what Vexorian can do with vJass.
Blizzard wrote:Welcome Developers,

This guide has been written to help advanced Warcraft III map developers understand the changes that we’ve made to the JASS functionality. Please note that these changes apply to only a small set of custom map developers, and most Warcraft 3 custom maps remain unaffected. For those developers whose maps are affected by the changes we’ve made, please review the steps below to understand how to bring your map into compliance with our new implementation.

Note: JASS-enabled maps that are not brought into compliance with the may not work correctly or at all after we release the next Warcraft III patch.

Details on our new implementation:

This patch includes 97 new native JASS functions and one new JASS handle type designed to assist map makers. These enhancements are part of a new hashtable storage system which is very similar in structure to the GameCache.

While the original GameCache JASS functions only allowed units and JASS primitives to be stored (Integer, Real, Boolean, and String), hashtables can store most JASS handle types. However unlike the GameCache which uses strings for keys, the hashtable uses integers. Additionally, storing and retrieving data in hashtables are much faster and safer than storing data in the GameCache.

The new functions GetHandleId and StringHash are to assist in turning either a handle or a string into an integer. This indirectly allows handles and strings to be used as hashtable keys.

StringHash:
StringHash takes a string and returns an integer much like S2I, however StringHash can be used on any string.

GetHandleId:
GetHandleId takes a handle and returns an integer. GetHandleId works exactly like H2I functions that were written with the return bug. In order to reduce the number of JASS naming conflicts with existing maps, we named the function GetHandleId. We ask map makers to not create a GetHandleId alias function with the name H2I, as we will add a native H2I function to JASS in the future.

hashtable:
Hashtable variables can be declared using the type name ‘hashtable’. As mentioned before, hashtables work very similar to gamecache objects. To create a new hashtable call InitHashtable. For example local hashtable ht = InitHashtable() will create a new hashtable object and assign it to ht.

All handle types share the same key namespace. For instance, if you call SavePlayerHandle followed by SaveUnitHandle, with the same keys, then the unit handle will overwrite the player handle. Even though the handle functions share the same key space, The SaveXHandle and LoadXHandle functions are type safe. For instance, calling SavePlayerHandle followed by local unit u = LoadUnitHandle will result with u initialized to null.

All handle objects saved or removed from a hashtable are automatically reference-counted (with the exception of TextTag, Lightning, Image, Ubersplat, and FogState). This allows handle objects to be saved in the hashtable without risk of the object’s being prematurely memory freed. The reference counts are updated when an object is either added to, flushed, or overwritten in a hashtable.

The complete list of new jass functions are:

InitHashtable
GetHandleId
StringHash

SaveInteger
SaveReal
SaveBoolean
SaveStr
SavePlayerHandle
SaveWidgetHandle
SaveDestructableHandle
SaveItemHandle
SaveUnitHandle
SaveAbilityHandle
SaveTimerHandle
SaveTriggerHandle
SaveTriggerConditionHandle
SaveTriggerActionHandle
SaveTriggerEventHandle
SaveForceHandle
SaveGroupHandle
SaveLocationHandle
SaveRectHandle
SaveBooleanExprHandle
SaveSoundHandle
SaveEffectHandle
SaveUnitPoolHandle
SaveItemPoolHandle
SaveQuestHandle
SaveQuestItemHandle
SaveDefeatConditionHandle
SaveTimerDialogHandle
SaveLeaderboardHandle
SaveMultiboardHandle
SaveMultiboardItemHandle
SaveTrackableHandle
SaveDialogHandle
SaveButtonHandle
SaveTextTagHandle
SaveLightningHandle
SaveImageHandle
SaveUbersplatHandle
SaveRegionHandle
SaveFogStateHandle
SaveFogModifierHandle

LoadInteger
LoadReal
LoadBoolean
LoadStr
LoadPlayerHandle
LoadWidgetHandle
LoadDestructableHandle
LoadItemHandle
LoadUnitHandle
LoadAbilityHandle
LoadTimerHandle
LoadTriggerHandle
LoadTriggerConditionHandle
LoadTriggerActionHandle
LoadTriggerEventHandle
LoadForceHandle
LoadGroupHandle
LoadLocationHandle
LoadRectHandle
LoadBooleanExprHandle
LoadSoundHandle
LoadEffectHandle
LoadUnitPoolHandle
LoadItemPoolHandle
LoadQuestHandle
LoadQuestItemHandle
LoadDefeatConditionHandle
LoadTimerDialogHandle
LoadLeaderboardHandle
LoadMultiboardHandle
LoadMultiboardItemHandle
LoadTrackableHandle
LoadDialogHandle
LoadButtonHandle
LoadTextTagHandle
LoadLightningHandle
LoadImageHandle
LoadUbersplatHandle
LoadRegionHandle
LoadFogStateHandle
LoadFogModifierHandle

HaveSavedInteger
HaveSavedReal
HaveSavedBoolean
HaveSavedString
HaveSavedHandle

RemoveSavedInteger
RemoveSavedReal
RemoveSavedBoolean
RemoveSavedString
RemoveSavedHandle


FlushParentHashtable
FlushChildHashtable
Image

User avatar
Dekar
Jelly Doughnut
Posts: 1433
Joined: May 27th, 2006, 8:13 am
Realm: Northrend (Europe)
Battle.net name: Dekar
Location: Germany

Re: WC3 Patch 1.23b

#9 Post by Dekar »

:o

I guess that also solves save/load problems with gamecache?
<EotA@Azeroth> YAKS GO MOOOOOOOOOOOOOOOOOOOOOOOO

Dekar: the ultimate ocean themed hero should buff and depend on spawn waves!
DarnYak: why is that
Dekar: WAVES
Dekar: :D
DarnYak: i was afraid that was the answer

User avatar
GeneralFunk
3/4s Weeaboo
Posts: 328
Joined: June 3rd, 2009, 11:56 pm
Realm: Azeroth (U.S. East)
Contact:

Re: WC3 Patch 1.23b

#10 Post by GeneralFunk »

Some people have said it's "useless added features" since vJass already supports it, even though vJass just uses virtual workarounds. This makes it actually native support.
Image

Post Reply