작성자 | Nios | ||
---|---|---|---|
작성일 | 2009-06-10 13:24:07 KST | 조회 | 7,995 |
첨부 |
|
||
제목 |
워3 1.23b 베타 패치 업데이트 안내
|
--------------------------------------------------------------------------
Patch 1.23b
--------------------------------------------------------------------------
PC WORLD EDITOR CHANGES
- Added new JASS hash table functions to replace the lost functionality from
fixing unsafe type casting.
- Hash Table - Save Item Handle
- Hash Table - Save Unit Handle
- ...
- Hash Table - Load Item Handle
- Hash Table - Load Unit Handle
- ...
- Hash Table - Get Handle ID
FIXES
- Fixed an exploit related to unsafe type casting that allowed users to
execute arbitrary code in maps.
- Fixed the JASS unsafe type casting exploit ("return bug").
- Fixed several World Editor crashes.
Battle.net Map Making PTR
Following our temporary fix to address the recently identified Warcraft III exploit, we have begun preparations to implement a permanent resolution of the issue on Battle.net. As a consequence of this fix (which prevents the possibility of malicious software being spread through Warcraft III maps), we do anticipate that some functionality in current maps will need to be adjusted before it will work properly. Before deploying the fix, we’ll be working closely with the makers of some of the most popular maps to ensure that their maps continue to stay playable on Battle.net with little to no interruption. In the meantime, we’ll be hosting a Public Test Realm (PTR) for map makers to test their maps beginning on June 9th, 2009. We will also be hosting online guides to help map makers make the transition into the new patch during this process. Throughout this process we’ll keep everyone posted on any updates leading up to the release of the patch.
FAQ
Will I be able to play my favorite custom maps online on Battle.net?
We’ll be working closely with the map creators of many popular custom maps on Battle.net to ensure that they’re consistently playable online throughout this process.
Will my computer catch a virus while playing on Battle.net right now?
Our temporary fix has addressed the immediate issues that have been identified on Battle.net, but we still recommend that players avoid downloading maps from unofficial sources or websites they do not trust -- be aware that corrupted maps may share the same name as other popular maps.
How do I know if my map will work with the new patch?
The PTR will be going live on June 9th, 2009 and you will be able to test your maps there.
How do I fix my map if it does not work properly on the PTR?
A guide will be up on Battle.net shortly giving more technical details on how to fix many of the issues that may cause certain features on the map to malfunction. A link to that guide will also be updated in this forum thread as well when available.
For Map Makers - Transition Guide into v1.23b
http://forums.battle.net/thread.html?topicId=17730193178
Note: Only english-US builds will be allowed to connect with Westfall
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
▲ 베타 패치인 만큼, 게이트웨이에서 Westfall (Beta) 를 선택하여 접속해야 합니다.
▲ 패치가 완료되면 1.23.0 에서 1.23.1 버전으로 업그레이드 됩니다.
참고: 다시 칼림도어 같은 종전 서버로 접속하면 1.23 버전으로 롤백됩니다.
따라서, 1.23 버전과 1.23b 버전을 번갈아가면서 쓰실 수 있으니 패치에 따른 불이익은 없습니다.
워3 1.23b 패치는 지난 달 초에 공지되었던 워3 커스텀 맵 보안 취약점을 완전히 해결하기 위한 업데이트 입니다. 따라서, 별다른 밸런스 등의 변경 없이 순수히 월드에디터와 관련된 패치입니다.
다만, 이번 업데이트 인해 현재 맵들의 호환성 문제가 불거질 수 있습니다. 이에 따라 블리자드에서는 웨스트폴(베타) 서버를 오픈하여 정규 서버에 업데이트 되기 전에 현재 맵들에 대해 충분히 호환성 개선 작업을 할 수 있도록 맵 제작자 분들께 편의를 제공할 예정입니다.
현재 북미 포럼에는 패치 관련 소식과 맵 제작자를 위한 가이드가 제공되고 있습니다. 이 자료는 한국어 토론장에서도 제공하지 않을까하여 별다른 번역은 안했습니다. 한국어 토론장에 자료 올라오면 바로 업데이트 해드리겠습니다.
맵 제작자 분들은 이번 업데이트에 따른 맵의 호환성 부분을 체크하여 보시기 바랍니다.
참고 사항
1.23b 패치가 정규 서버에 적용될 경우, 호환성 점검을 미처 하지 못해 호환성 문제가 발생하는 맵들은 더 이상 배틀넷에서 플레이 할 수 없게 됩니다. 때문에, 맵 제작자 분들은 이번 호환성 점검을 꼭 하시길 강력히 추천합니다.
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
© PlayXP Inc. All Rights Reserved.