1. Новые Типы:
type orderhandle extends agent
2. Новые Нативные Функции:
native GetLightningWidth takes lightning whichBolt returns real
native SetLightningWidth takes lightning whichBolt, real value returns nothing
//
native GetUnitOrderByIndex takes unit whichUnit, integer index returns orderhandle
native GetUnitOrderByOrderId takes unit whichUnit, integer orderId, integer index returns orderhandle // since units can queue same orders, this allows to differentiate between them.
native UnitRemoveOrderByIndex takes unit whichUnit, integer index returns boolean
native UnitRemoveOrderByOrderId takes unit whichUnit, integer orderId, boolean eraseAllSimilar returns boolean
native UnitReverseOrders takes unit whichUnit returns nothing
//
native GetTriggerOrder takes nothing returns orderhandle
native OrderGetNext takes orderhandle whichOrder returns orderhandle
native OrderGetId takes orderhandle whichOrder returns integer // returns actual order id, "move" as 851986.
native OrderGetTargetX takes orderhandle whichOrder returns real
native OrderGetTargetY takes orderhandle whichOrder returns real
native OrderGetTargetLoc takes orderhandle whichOrder returns location
// Patrol orders only?
native OrderGetSourceX takes orderhandle whichOrder returns real
native OrderGetSourceY takes orderhandle whichOrder returns real
native OrderGetSourceLoc takes orderhandle whichOrder returns location
//
native OrderGetTarget takes orderhandle whichOrder returns widget
native OrderGetTargetDestructable takes orderhandle whichOrder returns destructable
native OrderGetTargetItem takes orderhandle whichOrder returns item
native OrderGetTargetUnit takes orderhandle whichOrder returns unit
//
native HandleListGetOrderCount takes handlelist whichHandleList returns integer
native HandleListGetOrderByIndex takes handlelist whichHandleList, integer index returns orderhandle
native HandleListGetFilterOrder takes nothing returns orderhandle
native HandleListGetEnumOrder takes nothing returns orderhandle
native HandleListEnumUnitOrders takes handlelist whichHandleList, unit whichUnit, boolexpr filter returns nothing
//
3. Исправлены некорректно работающие SetBuffInteger/Real/Boolean API полей с некоторыми баффами.
4. Исправлены все нативные функции Queue API, которые не добавляли приказы в очередь.
v1.1.7.172 (Хотфикс):
1. Пере-исправлено SetBuffInteger/Real/Boolean некорректная обработка в API полей, на некоторых баффах.
2. Исправлена некорректная обработка CBuffSilence через API.
3. Исправлена некорректная обработка CBuffCripple через API.
1. Новые Типы:
type orderhandle extends agent
2. Новые Нативные Функции:
native GetLightningWidth takes lightning whichBolt returns real
native SetLightningWidth takes lightning whichBolt, real value returns nothing
//
native GetUnitOrderByIndex takes unit whichUnit, integer index returns orderhandle
native GetUnitOrderByOrderId takes unit whichUnit, integer orderId, integer index returns orderhandle // since units can queue same orders, this allows to differentiate between them.
native UnitRemoveOrderByIndex takes unit whichUnit, integer index returns boolean
native UnitRemoveOrderByOrderId takes unit whichUnit, integer orderId, boolean eraseAllSimilar returns boolean
native UnitReverseOrders takes unit whichUnit returns nothing
//
native GetTriggerOrder takes nothing returns orderhandle
native OrderGetNext takes orderhandle whichOrder returns orderhandle
native OrderGetId takes orderhandle whichOrder returns integer // returns actual order id, "move" as 851986.
native OrderGetTargetX takes orderhandle whichOrder returns real
native OrderGetTargetY takes orderhandle whichOrder returns real
native OrderGetTargetLoc takes orderhandle whichOrder returns location
// Patrol orders only?
native OrderGetSourceX takes orderhandle whichOrder returns real
native OrderGetSourceY takes orderhandle whichOrder returns real
native OrderGetSourceLoc takes orderhandle whichOrder returns location
//
native OrderGetTarget takes orderhandle whichOrder returns widget
native OrderGetTargetDestructable takes orderhandle whichOrder returns destructable
native OrderGetTargetItem takes orderhandle whichOrder returns item
native OrderGetTargetUnit takes orderhandle whichOrder returns unit
//
native HandleListGetOrderCount takes handlelist whichHandleList returns integer
native HandleListGetOrderByIndex takes handlelist whichHandleList, integer index returns orderhandle
native HandleListGetFilterOrder takes nothing returns orderhandle
native HandleListGetEnumOrder takes nothing returns orderhandle
native HandleListEnumUnitOrders takes handlelist whichHandleList, unit whichUnit, boolexpr filter returns nothing
//
3. Исправлены некорректно работающие SetBuffInteger/Real/Boolean API полей с некоторыми баффами.
4. Исправлены все нативные функции Queue API, которые не добавляли приказы в очередь.
v1.1.7.172 (Хотфикс):
1. Пере-исправлено SetBuffInteger/Real/Boolean некорректная обработка в API полей, на некоторых баффах.
2. Исправлена некорректная обработка CBuffSilence через API.
3. Исправлена некорректная обработка CBuffCripple через API.
1. Новые Константы:
constant unitintegerfield UNIT_IF_PROPER_NAME_INDEX = ConvertUnitIntegerField('uprd') // Gets/Sets currently active name from the list | Instance Unit Only.
constant unitintegerfield UNIT_IF_PROPER_NAME_GENERATION = ConvertUnitIntegerField('uprg') // This sets the Roman numeration of the unit, a number is contained. | Instance Unit Only.
2. Новые Нативные Функции:
native IntToRoman takes integer i returns string
3. Исправлена неправильная работа BlzSetUnitAbilityCooldown изменяющая данные заклинаний глобально, а не на базе Instance API.
4. Исправлена неправильная работа BlzGetUnitAbilityCooldown изменяющая данные заклинаний глобально, а не на базе Instance API.
5. Исправлена неправильная работа BlzGetUnitAbilityManaCost изменяющая данные заклинаний глобально, а не на базе Instance API.
6. Исправлена неправильная работа BlzSetUnitAbilityManaCost изменяющая данные заклинаний глобально, а не на базе Instance API.
7. Добавлен метод LoadBoolean( null, 0, StringHash( "ujapi" ) ) для проверки на то, что карта на UjAPI без использования нативных функций.
Пометка: данный метод будет всегда возвращать false на Reforged и так далее.
8. Исправлены все Widget/Destructable/Item/Unit Get/SetStringField нативные функции возвращающие/устанавливающие неправильные значения.
9. Исправлена неправильная обработка GetUnitAbilityLevel (возвращаемое значение было индексом, а не уровнем, где уровень = индекс + 1.
1. Новые Константы:
constant unitintegerfield UNIT_IF_PROPER_NAME_INDEX = ConvertUnitIntegerField('uprd') // Gets/Sets currently active name from the list | Instance Unit Only.
constant unitintegerfield UNIT_IF_PROPER_NAME_GENERATION = ConvertUnitIntegerField('uprg') // This sets the Roman numeration of the unit, a number is contained. | Instance Unit Only.
2. Новые Нативные Функции:
native IntToRoman takes integer i returns string
3. Исправлена неправильная работа BlzSetUnitAbilityCooldown изменяющая данные заклинаний глобально, а не на базе Instance API.
4. Исправлена неправильная работа BlzGetUnitAbilityCooldown изменяющая данные заклинаний глобально, а не на базе Instance API.
5. Исправлена неправильная работа BlzGetUnitAbilityManaCost изменяющая данные заклинаний глобально, а не на базе Instance API.
6. Исправлена неправильная работа BlzSetUnitAbilityManaCost изменяющая данные заклинаний глобально, а не на базе Instance API.
7. Добавлен метод LoadBoolean( null, 0, StringHash( "ujapi" ) ) для проверки на то, что карта на UjAPI без использования нативных функций.
Пометка: данный метод будет всегда возвращать false на Reforged и так далее.
8. Исправлены все Widget/Destructable/Item/Unit Get/SetStringField нативные функции возвращающие/устанавливающие неправильные значения.
9. Исправлена неправильная обработка GetUnitAbilityLevel (возвращаемое значение было индексом, а не уровнем, где уровень = индекс + 1.
1. Новые Типы:
type war3image extends agent
type styleflag extends handle
type layerstyleflag extends flagtype
type controlstyleflag extends flagtype
2. Новые Конверторы:
constant native ConvertLayerStyleFlag takes integer i returns layerstyleflag
constant native ConvertControlStyleFlag takes integer i returns controlstyleflag
3. Новые Константы:
constant originframetype ORIGIN_FRAME_SIMPLE_TOP = ConvertOriginFrameType(56) // This frame contains all CSimpleRegions/CSimpleFrames.
//
constant layerstyleflag LAYER_STYLE_SVIEWPOINT = ConvertLayerStyleFlag(1)
constant layerstyleflag LAYER_STYLE_IGNORE_TRACK_EVENTS = ConvertLayerStyleFlag(2)
constant layerstyleflag LAYER_STYLE_SHADING = ConvertLayerStyleFlag(4)
constant layerstyleflag LAYER_STYLE_NO_DEPTH_SET = ConvertLayerStyleFlag(16)
constant layerstyleflag LAYER_STYLE_NO_DEPTH_TEST = ConvertLayerStyleFlag(32)
//
constant controlstyleflag CONTROL_STYLE_AUTOTRACK = ConvertControlStyleFlag(1)
constant controlstyleflag CONTROL_STYLE_CLICK_MOUSE_DOWN = ConvertControlStyleFlag(2)
constant controlstyleflag CONTROL_STYLE_RELEASE_NOTIFY = ConvertControlStyleFlag(4)
constant controlstyleflag CONTROL_STYLE_DRAG = ConvertControlStyleFlag(8)
constant controlstyleflag CONTROL_STYLE_HIGHLIGHT_FOCUS = ConvertControlStyleFlag(32)
constant controlstyleflag CONTROL_STYLE_HIGHLIGHT_HOVER = ConvertControlStyleFlag(64)
constant controlstyleflag CONTROL_STYLE_SLIDER_STEP = ConvertControlStyleFlag(128)
constant controlstyleflag CONTROL_STYLE_EXCLUSIVE = ConvertControlStyleFlag(512)
constant controlstyleflag CONTROL_STYLE_AT_LEAST_ONE = ConvertControlStyleFlag(1024)
4. Удалённые Нативные Функции:
native IsFrameDraggable takes framehandle whichFrame returns boolean
native SetFrameDraggable takes framehandle whichFrame, boolean enabled returns nothing
native GetFrameTrackState takes framehandle whichFrame returns integer
native SetFrameTrackState takes framehandle whichFrame, integer trackState returns nothing // 0 - NONE | 1 - Track | 2 - Ignore Track
5. Новые Нативные Функции:
native GetWar3ImagePlayerColour takes war3image whichWar3Image returns playercolor // This gets glow/team colour.
native SetWar3ImagePlayerColour takes war3image whichWar3Image, playercolor color returns nothing // This sets Glow and Team Colour. Mimics the SetUnitColor.
native SetWar3ImageMaterialTexture takes war3image whichWar3Image, string textureName, integer materialId, integer textureIndex returns nothing
native SetWar3ImageTexture takes war3image whichWar3Image, string textureName, integer textureIndex returns nothing
native SetWar3ImageReplaceableTexture takes war3image whichWar3Image, string textureName, integer textureIndex returns nothing // 1 - TeamColour | 2 - TeamGlow | 11 - Cliff0/1 | 21 - "grabbed texture" for CCursorFrame | 31-37 trees.
native GetWar3ImageModel takes war3image whichWar3Image returns string
native SetWar3ImageModel takes war3image whichWar3Image, string modelName returns nothing
native SetWar3ImageModelEx takes war3image whichWar3Image, string modelName, integer playerColour returns nothing // 0-15, -1 to ignore the colour.
native GetWidgetUnderCursor takes nothing returns widget // Async
native GetWidgetPlayerColour takes widget whichWidget returns playercolor
native SetWidgetPlayerColour takes widget whichWidget, playercolor color returns nothing
native GetDestructableUnderCursor takes nothing returns destructable // Async
native GetDestructablePlayerColour takes destructable whichDestructable returns playercolor
native SetDestructablePlayerColour takes destructable whichDestructable, playercolor color returns nothing
native GetItemUnderCursor takes nothing returns item // Async
native GetItemPlayerColour takes item whichItem returns playercolor
native SetItemPlayerColour takes item whichItem, playercolor color returns nothing
native IsItemDroppable takes item whichItem returns boolean
native GetUnitPlayerColour takes unit whichUnit returns playercolor
native SetUnitPlayerColour takes unit whichUnit, playercolor color returns nothing
native IsUnitGhosted takes unit whichUnit returns boolean
native SetUnitGhosted takes unit whichUnit, boolean state, real transitionTime returns nothing // Attacking from this state does not cause the unit to exit Ghost state.
native GetProjectilePlayerColour takes projectile whichProjectile returns playercolor
native GetDoodadPlayerColour takes doodad whichDoodad returns playercolor
native SetDoodadPlayerColour takes doodad whichDoodad, playercolor color returns nothing
native SetDoodadModelEx takes doodad whichDoodad, string modelFile, integer playerId returns nothing
native SetDoodadMaterialTexture takes doodad whichDoodad, string textureName, integer materialId, integer textureIndex returns nothing
native SetDoodadTexture takes doodad whichDoodad, string textureName, integer textureIndex returns nothing
native SetDoodadReplaceableTexture takes doodad whichDoodad, string textureName, integer textureIndex returns nothing
native IsFrameLayerFlag takes framehandle whichFrame, layerstyleflag whichLayerStyle returns boolean
native SetFrameLayerFlag takes framehandle whichFrame, layerstyleflag whichLayerStyle, boolean isSet returns nothing
native IsFrameControlFlag takes framehandle whichFrame, controlstyleflag whichControlStyle returns boolean
native SetFrameControlFlag takes framehandle whichFrame, controlstyleflag whichControlStyle, boolean isSet returns nothing
native GetFrameSpritePlayerColour takes framehandle whichFrame returns playercolor
native GetFrameMinMaxValues takes framehandle whichFrame, integer valueId returns real // 0 = min | 1 = max
6. SetSpecialEffectVisibility переименован в SetSpecialEffectVisible.
7. SetTrackableVisibility переименован в SetTrackableVisible.
8. Исправлено PauseUnitEx позволяющая мёртвым юнитам атаковать.
Пометка: это связано с неполным скрытием заклинаний, теперь заклинание атаки насильно скрывается.
9. Частично изменена обработка "RETURN" операции в JassVM, теперь она полностью обрабатывается через UjAPI и более не полагается на оригинальную функцию обработки байткода.
10. Исправлена критическая ошибка от CreateIllusion, так как оно ссылалась на изменённный код CAbilityInventory где я забыл, что GetIntegerField к сожалению работает со значениями с точкой в самом движке.
Пометка: это было связано с проверкой размером инвентаря.
11. Исправлена работа с характеристиками заклинания "Бонусные Характеристики" (Aamk) через Field API.
12. Исправлено GetItemStringField возвращающая неверные значения.
13. Частично переделано внутреннее API Снарядов, чтобы предотвратить критические ошибки связанные с неправильным использованием API в коде.
14. Полностью переделано GetProjectileTargetX/Y/Z, теперь их значения хранятся в std::unordered_map, так как игра к сожалению не хранит эти точки, а если и хранит, то не так явно.
15. Исправлена критическая ошибка от HandleListGetHandleById.
16. Исправлена HandleListContainsTypeId срабатывающая только на первый индекс.
Пометка: эта проблема появилась пару версий назад, после большого рефактора кода.
17. Исправлены поведения SetProjectileTargetX/Y/Z, которыеп запускали снаряд, заместо лишь установки точки цели.
Пометка: если снаряд уже был запущен, то эти функции будут "перезапускать" снаряд на новую установленную точку, как и должны были.
18. Исправлена SetProjectileArc устанавливающая неверное значение.
19. Исправлено инвертирование событие CHECKBOX.
20. Добавлен темплейт для фреймов типа CHECKBOX.
21. SetFrameTexture теперь работает со всеми фреймами типа CControl.
22. SetFrameTexture теперь может менять текстуру галочки через эти индексы: 5 - галочка, 6 - галочка отключённая (серая).
23. widget теперь расширяет тип war3image вместо agent.
24. sprite теперь расширяет тип war3image вместо agent.
25. projectile теперь расширяет тип war3image вместо agent.
26. doodad теперь расширяет тип war3image вместо agent.
24. racepreference теперь расширяет тип flagtype вместо handle.
25. gametype теперь расширяет тип flagtype вместо handle.
26. mapflag теперь расширяет тип flagtype вместо handle.
27. movetype теперь расширяет тип flagtype вместо handle.
28. pathingaitype теперь расширяет тип flagtype вместо handle.
29. collisiontype теперь расширяет тип flagtype вместо handle.
30. targetflag теперь расширяет тип flagtype вместо handle.
31. unitcategory теперь расширяет тип flagtype вместо handle.
32. pathingflag теперь расширяет тип flagtype вместо handle.
33. GetUnitAbilityLevel now also properly works with buffs.
1. Новые Типы:
type war3image extends agent
type styleflag extends handle
type layerstyleflag extends flagtype
type controlstyleflag extends flagtype
2. Новые Конверторы:
constant native ConvertLayerStyleFlag takes integer i returns layerstyleflag
constant native ConvertControlStyleFlag takes integer i returns controlstyleflag
3. Новые Константы:
constant originframetype ORIGIN_FRAME_SIMPLE_TOP = ConvertOriginFrameType(56) // This frame contains all CSimpleRegions/CSimpleFrames.
//
constant layerstyleflag LAYER_STYLE_SVIEWPOINT = ConvertLayerStyleFlag(1)
constant layerstyleflag LAYER_STYLE_IGNORE_TRACK_EVENTS = ConvertLayerStyleFlag(2)
constant layerstyleflag LAYER_STYLE_SHADING = ConvertLayerStyleFlag(4)
constant layerstyleflag LAYER_STYLE_NO_DEPTH_SET = ConvertLayerStyleFlag(16)
constant layerstyleflag LAYER_STYLE_NO_DEPTH_TEST = ConvertLayerStyleFlag(32)
//
constant controlstyleflag CONTROL_STYLE_AUTOTRACK = ConvertControlStyleFlag(1)
constant controlstyleflag CONTROL_STYLE_CLICK_MOUSE_DOWN = ConvertControlStyleFlag(2)
constant controlstyleflag CONTROL_STYLE_RELEASE_NOTIFY = ConvertControlStyleFlag(4)
constant controlstyleflag CONTROL_STYLE_DRAG = ConvertControlStyleFlag(8)
constant controlstyleflag CONTROL_STYLE_HIGHLIGHT_FOCUS = ConvertControlStyleFlag(32)
constant controlstyleflag CONTROL_STYLE_HIGHLIGHT_HOVER = ConvertControlStyleFlag(64)
constant controlstyleflag CONTROL_STYLE_SLIDER_STEP = ConvertControlStyleFlag(128)
constant controlstyleflag CONTROL_STYLE_EXCLUSIVE = ConvertControlStyleFlag(512)
constant controlstyleflag CONTROL_STYLE_AT_LEAST_ONE = ConvertControlStyleFlag(1024)
4. Удалённые Нативные Функции:
native IsFrameDraggable takes framehandle whichFrame returns boolean
native SetFrameDraggable takes framehandle whichFrame, boolean enabled returns nothing
native GetFrameTrackState takes framehandle whichFrame returns integer
native SetFrameTrackState takes framehandle whichFrame, integer trackState returns nothing // 0 - NONE | 1 - Track | 2 - Ignore Track
5. Новые Нативные Функции:
native GetWar3ImagePlayerColour takes war3image whichWar3Image returns playercolor // This gets glow/team colour.
native SetWar3ImagePlayerColour takes war3image whichWar3Image, playercolor color returns nothing // This sets Glow and Team Colour. Mimics the SetUnitColor.
native SetWar3ImageMaterialTexture takes war3image whichWar3Image, string textureName, integer materialId, integer textureIndex returns nothing
native SetWar3ImageTexture takes war3image whichWar3Image, string textureName, integer textureIndex returns nothing
native SetWar3ImageReplaceableTexture takes war3image whichWar3Image, string textureName, integer textureIndex returns nothing // 1 - TeamColour | 2 - TeamGlow | 11 - Cliff0/1 | 21 - "grabbed texture" for CCursorFrame | 31-37 trees.
native GetWar3ImageModel takes war3image whichWar3Image returns string
native SetWar3ImageModel takes war3image whichWar3Image, string modelName returns nothing
native SetWar3ImageModelEx takes war3image whichWar3Image, string modelName, integer playerColour returns nothing // 0-15, -1 to ignore the colour.
native GetWidgetUnderCursor takes nothing returns widget // Async
native GetWidgetPlayerColour takes widget whichWidget returns playercolor
native SetWidgetPlayerColour takes widget whichWidget, playercolor color returns nothing
native GetDestructableUnderCursor takes nothing returns destructable // Async
native GetDestructablePlayerColour takes destructable whichDestructable returns playercolor
native SetDestructablePlayerColour takes destructable whichDestructable, playercolor color returns nothing
native GetItemUnderCursor takes nothing returns item // Async
native GetItemPlayerColour takes item whichItem returns playercolor
native SetItemPlayerColour takes item whichItem, playercolor color returns nothing
native IsItemDroppable takes item whichItem returns boolean
native GetUnitPlayerColour takes unit whichUnit returns playercolor
native SetUnitPlayerColour takes unit whichUnit, playercolor color returns nothing
native IsUnitGhosted takes unit whichUnit returns boolean
native SetUnitGhosted takes unit whichUnit, boolean state, real transitionTime returns nothing // Attacking from this state does not cause the unit to exit Ghost state.
native GetProjectilePlayerColour takes projectile whichProjectile returns playercolor
native GetDoodadPlayerColour takes doodad whichDoodad returns playercolor
native SetDoodadPlayerColour takes doodad whichDoodad, playercolor color returns nothing
native SetDoodadModelEx takes doodad whichDoodad, string modelFile, integer playerId returns nothing
native SetDoodadMaterialTexture takes doodad whichDoodad, string textureName, integer materialId, integer textureIndex returns nothing
native SetDoodadTexture takes doodad whichDoodad, string textureName, integer textureIndex returns nothing
native SetDoodadReplaceableTexture takes doodad whichDoodad, string textureName, integer textureIndex returns nothing
native IsFrameLayerFlag takes framehandle whichFrame, layerstyleflag whichLayerStyle returns boolean
native SetFrameLayerFlag takes framehandle whichFrame, layerstyleflag whichLayerStyle, boolean isSet returns nothing
native IsFrameControlFlag takes framehandle whichFrame, controlstyleflag whichControlStyle returns boolean
native SetFrameControlFlag takes framehandle whichFrame, controlstyleflag whichControlStyle, boolean isSet returns nothing
native GetFrameSpritePlayerColour takes framehandle whichFrame returns playercolor
native GetFrameMinMaxValues takes framehandle whichFrame, integer valueId returns real // 0 = min | 1 = max
6. SetSpecialEffectVisibility переименован в SetSpecialEffectVisible.
7. SetTrackableVisibility переименован в SetTrackableVisible.
8. Исправлено PauseUnitEx позволяющая мёртвым юнитам атаковать.
Пометка: это связано с неполным скрытием заклинаний, теперь заклинание атаки насильно скрывается.
9. Частично изменена обработка "RETURN" операции в JassVM, теперь она полностью обрабатывается через UjAPI и более не полагается на оригинальную функцию обработки байткода.
10. Исправлена критическая ошибка от CreateIllusion, так как оно ссылалась на изменённный код CAbilityInventory где я забыл, что GetIntegerField к сожалению работает со значениями с точкой в самом движке.
Пометка: это было связано с проверкой размером инвентаря.
11. Исправлена работа с характеристиками заклинания "Бонусные Характеристики" (Aamk) через Field API.
12. Исправлено GetItemStringField возвращающая неверные значения.
13. Частично переделано внутреннее API Снарядов, чтобы предотвратить критические ошибки связанные с неправильным использованием API в коде.
14. Полностью переделано GetProjectileTargetX/Y/Z, теперь их значения хранятся в std::unordered_map, так как игра к сожалению не хранит эти точки, а если и хранит, то не так явно.
15. Исправлена критическая ошибка от HandleListGetHandleById.
16. Исправлена HandleListContainsTypeId срабатывающая только на первый индекс.
Пометка: эта проблема появилась пару версий назад, после большого рефактора кода.
17. Исправлены поведения SetProjectileTargetX/Y/Z, которыеп запускали снаряд, заместо лишь установки точки цели.
Пометка: если снаряд уже был запущен, то эти функции будут "перезапускать" снаряд на новую установленную точку, как и должны были.
18. Исправлена SetProjectileArc устанавливающая неверное значение.
19. Исправлено инвертирование событие CHECKBOX.
20. Добавлен темплейт для фреймов типа CHECKBOX.
21. SetFrameTexture теперь работает со всеми фреймами типа CControl.
22. SetFrameTexture теперь может менять текстуру галочки через эти индексы: 5 - галочка, 6 - галочка отключённая (серая).
23. widget теперь расширяет тип war3image вместо agent.
24. sprite теперь расширяет тип war3image вместо agent.
25. projectile теперь расширяет тип war3image вместо agent.
26. doodad теперь расширяет тип war3image вместо agent.
24. racepreference теперь расширяет тип flagtype вместо handle.
25. gametype теперь расширяет тип flagtype вместо handle.
26. mapflag теперь расширяет тип flagtype вместо handle.
27. movetype теперь расширяет тип flagtype вместо handle.
28. pathingaitype теперь расширяет тип flagtype вместо handle.
29. collisiontype теперь расширяет тип flagtype вместо handle.
30. targetflag теперь расширяет тип flagtype вместо handle.
31. unitcategory теперь расширяет тип flagtype вместо handle.
32. pathingflag теперь расширяет тип flagtype вместо handle.
33. GetUnitAbilityLevel now also properly works with buffs.
1. Новые Типы:
type connectiontype extends handle
2. Новые Конверторы:
constant native ConvertConnectionType takes integer i returns connectiontype
3. Новые Константы:
constant connectiontype CONNECTION_TYPE_SINGLE_PLAYER = ConvertConnectionType(0)
constant connectiontype CONNECTION_TYPE_LOCAL_GAME = ConvertConnectionType(1)
constant connectiontype CONNECTION_TYPE_BATTLE_NET = ConvertConnectionType(2)
constant connectiontype CONNECTION_TYPE_REPLAY = ConvertConnectionType(3)
4. Новые Нативные Функции:
native GetConnectionType takes nothing returns connectiontype
5. Исправлена некорректная работа GetFrameUnderCursor со фреймами не CSimpleFrame типа.
6. Исправлено некорректное поведение GetEventIsAttack в DAMAGED событии.
7. Добавлена поддержка CommandButton_0 по CommandButton_11 в GetFrameByName с contextId 0.
Пометка: эти имена отвечают за кнопки заклинаний. Пример: GetFrameByName( "CommandButton_0", 0 ).
8. Добавлена поддержка CommandButton_0 по CommandButton_5 в GetFrameByName с contextId 1.
Пометка: эти имена отвечают за кнопки предметов. Пример: GetFrameByName( "CommandButton_0", 1 ).
9. Исправлена некорректная обработка цвета в SetModel.
Новые Нативные Функции:
native GetConnectionType takes nothing returns connectiontype
Исправлена некорректная работа GetFrameUnderCursor со фреймами не CSimpleFrame типа.
Исправлено некорректное поведение GetEventIsAttack в DAMAGED событии.
Добавлена поддержка CommandButton_0 по CommandButton_11 в GetFrameByName с contextId 0.
Пометка: эти имена отвечают за кнопки заклинаний. Пример: GetFrameByName( "CommandButton_0", 0 ).
Добавлена поддержка CommandButton_0 по CommandButton_5 в GetFrameByName с contextId 1.
Пометка: эти имена отвечают за кнопки предметов. Пример: GetFrameByName( "CommandButton_0", 1 ).
Исправлена некорректная обработка цвета в SetModel.
1. Новые Нативные Функции:
native TextFileRead takes textfilehandle whichTextFile returns string
native UnitAddItemToSlot takes unit whichUnit, item whichItem, integer itemSlot returns boolean
native ReviveUnit takes unit whichUnit, real x, real y returns boolean
native ReviveUnitLoc takes unit whichUnit, location loc returns boolean
2. TextFileReadAll переименован в TextFileReadAllLines, теперь оно читает именно текст, а не сам файл.
3. Добавлена экспериментальная поддержка CSimpleFrame в АПИ CBackdropFrame.
4. Исправлена критическая ошибка от всех вариантов SetModel, эта ошибка связана с не-Ex вариациями, ибо цвет обрабатывался неверно.
5. Добавлена более точная, но менее строгая внутренняя проверка на "активность" Агента (то, что он не удалён).
Пометка: это изменение по большей части затрагивает новое АПИ юнитов, которое было через-чур строгое к скрытым/убитым/удалённым юнитам.
Новые Нативные Функции:
native TextFileRead takes textfilehandle whichTextFile returns string
native UnitAddItemToSlot takes unit whichUnit, item whichItem, integer itemSlot returns boolean
native ReviveUnit takes unit whichUnit, real x, real y returns boolean
native ReviveUnitLoc takes unit whichUnit, location loc returns boolean
TextFileReadAll переименован в TextFileReadAllLines, теперь оно читает именно текст, а не сам файл.
Добавлена экспериментальная поддержка CSimpleFrame в АПИ CBackdropFrame.
Исправлена критическая ошибка от всех вариантов SetModel, эта ошибка связана с не-Ex вариациями, ибо цвет обрабатывался неверно.
Добавлена более точная, но менее строгая внутренняя проверка на "активность" Агента (то, что он не удалён).
Пометка: это изменение по большей части затрагивает новое АПИ юнитов, которое было через-чур строгое к скрытым/убитым/удалённым юнитам.
Исправлен баг связанный с добавлением/удалением заклинаний скрытому юниту.
Пометка: это в целом плохой подход, когда юнит спрятан вы не должны ничего с ним делать, отобразите его в начале, а потом уже делайте что нужно!
Исправлен баг связанный с добавлением/удалением заклинаний скрытому юниту.
Пометка: это в целом плохой подход, когда юнит спрятан вы не должны ничего с ним делать, отобразите его в начале, а потом уже делайте что нужно!
Новые Нативные Функции:
native GetMapFogZ takes nothing returns real
native SetMapFogZ takes real z returns nothing
native GetMapFogColour takes nothing returns integer
native SetMapFogColour takes integer colour returns nothing
native IsAbilityAutocastEnabled takes ability whichAbility returns boolean
GetSpellAbility теперь работает с событиями баффов и новыми событиями заклинаний.
GetSpellAbilityId теперь работает с событиями баффов и новыми событиями заклинаний.
Исправлена SetAbilityOwner, которая не до конца работала с активными заклинаниями (они не отображались в панели, если были созданы напрямую через CreateAbility).
Исправлена критическая ошибка от SetDoodadZ на 1.28f.
Новые Нативные Функции:
native GetMapFogZ takes nothing returns real
native SetMapFogZ takes real z returns nothing
native GetMapFogColour takes nothing returns integer
native SetMapFogColour takes integer colour returns nothing
native IsAbilityAutocastEnabled takes ability whichAbility returns boolean
GetSpellAbility теперь работает с событиями баффов и новыми событиями заклинаний.
GetSpellAbilityId теперь работает с событиями баффов и новыми событиями заклинаний.
Исправлена SetAbilityOwner, которая не до конца работала с активными заклинаниями (они не отображались в панели, если были созданы напрямую через CreateAbility).
Исправлена критическая ошибка от SetDoodadZ на 1.28f.
Скинь все эти карты, я готов тебе потыкать где и как создатель этих карт буквально нагадил и в коде и в штаны. А то этот сыр бор - банально мимо кассы.
И повторюсь, коли так тебя душат ОП лимиты у тебя есть несколько выборов:
UjAPI.
MemHack.
Патч 1.29 или выше.
Реф.
Тебя кто-то душит сидеть на 1.26а и тем более Ванильном? Если да, то тогда соизволь пытаться умещаться в лимиты, а не городить костыли обходить то, что достигаться и не должно.
Где-то была инфа что обычные boolexpr не плодятся а кэшируются, но если юзать And Or Not (те которые для булекспров) то вот тогда они будут постоянно плодится. Хотя это не миф наверное.
Не совсем так. And, Or и Not создают хендлы "самих себя", куда по итогу записывается исход и так на каждый вызов (что логично), такая же логика у Location, Rect ибо им неоткуда брать "заготовку", ибо координаты/данные динамические.
Хотя на деле Condition/Filter кэшируется лишь за счёт того, что количество функций ограничено, потому можно хранить сами функции и брать базируясь на ней кондишен. Что опять же логично. :)
В картах обычно цикл до 8192 (прелести структур и вджасс) - и это подавляющее большинство. Если каким-то чудом цикл уже больше 8192 - то это скорее проблема разработчика, нежели ОП лимита.
И нет, обычно проблема не в циклах, а в перегруженности потока, который можно "разгружать" - да. Но все эти проблемы ОП лимита обходятся дроблениями main функции, да и самих циклов на отдельные "потоки" либо через ExecuteFunc, либо через TimerStart. В любом случае, такой прямо катастрофической проблемы банально нет.
Говоря проще, причина по которой не было подобных тем - скорее потому что ОП лимит достигается лишь фокусниками/извращенцами, нежели из-за неизбежности/случайно, ну а те, кто юзают Мемхак этот лимит могут поднять вручную, на UjAPI он вообще 2 миллиарда, а на рефе 30 миллионов с 300к.
Тут уже скорее проблема ванилы, но и она на деле не проблема, ибо испытывается единицами.
Отредактирован Unryze
» Unryze Jass API / UjAPI - Что нового?
v1.1.7.171
v1.1.7.172 (Хотфикс):
Отредактирован Unryze
» Unryze Jass API / UjAPI
v1.1.7.171
v1.1.7.172 (Хотфикс):
» Unryze Jass API / UjAPI - Система Контролей
» Unryze Jass API / UjAPI - Что нового?
v1.1.6.169
» Unryze Jass API / UjAPI
v1.1.6.169
» Unryze Jass API / UjAPI - Что нового?
v1.1.5.168
Отредактирован Unryze
» Unryze Jass API / UjAPI
v1.1.5.168
» Unryze Jass API / UjAPI - Система Выбора Героев
» Unryze Jass API / UjAPI - Система Магазина
» Unryze Jass API / UjAPI - Пример Кнопки с Перезарядкой
Отредактирован Unryze
» Unryze Jass API / UjAPI - Что нового?
v1.1.4.167
Отредактирован Unryze
» Unryze Jass API / UjAPI
v1.1.4.167
Отредактирован Unryze
» Unryze Jass API / UjAPI - Что нового?
v1.1.3.165
» Unryze Jass API / UjAPI
v1.1.3.165
type connectiontype extends handle
constant native ConvertConnectionType takes integer i returns connectiontype
constant connectiontype CONNECTION_TYPE_SINGLE_PLAYER = ConvertConnectionType(0)
constant connectiontype CONNECTION_TYPE_LOCAL_GAME = ConvertConnectionType(1)
constant connectiontype CONNECTION_TYPE_BATTLE_NET = ConvertConnectionType(2)
constant connectiontype CONNECTION_TYPE_REPLAY = ConvertConnectionType(3)
native GetConnectionType takes nothing returns connectiontype
Пометка: эти имена отвечают за кнопки заклинаний. Пример: GetFrameByName( "CommandButton_0", 0 ).
Пометка: эти имена отвечают за кнопки предметов. Пример: GetFrameByName( "CommandButton_0", 1 ).
Отредактирован Unryze
» Unryze Jass API / UjAPI - Что нового?
v1.1.2.163
» Unryze Jass API / UjAPI
v1.1.2.163
native TextFileRead takes textfilehandle whichTextFile returns string
native UnitAddItemToSlot takes unit whichUnit, item whichItem, integer itemSlot returns boolean
native ReviveUnit takes unit whichUnit, real x, real y returns boolean
native ReviveUnitLoc takes unit whichUnit, location loc returns boolean
Пометка: это изменение по большей части затрагивает новое АПИ юнитов, которое было через-чур строгое к скрытым/убитым/удалённым юнитам.
Отредактирован Unryze
» Unryze Jass API / UjAPI - Что нового?
v1.1.1.160
Пометка: это в целом плохой подход, когда юнит спрятан вы не должны ничего с ним делать, отобразите его в начале, а потом уже делайте что нужно!
Отредактирован Unryze
» Unryze Jass API / UjAPI
v1.1.1.160
Пометка: это в целом плохой подход, когда юнит спрятан вы не должны ничего с ним делать, отобразите его в начале, а потом уже делайте что нужно!
» Unryze Jass API / UjAPI - Что нового?
v1.1.1.159
» Unryze Jass API / UjAPI
v1.1.1.159
» Unryze Jass API / UjAPI - Что нового?
v1.1.1.158
constant playerunitevent EVENT_PLAYER_UNIT_ABILITY_ADDED = ConvertPlayerUnitEvent(503)
constant playerunitevent EVENT_PLAYER_UNIT_ABILITY_REMOVED = ConvertPlayerUnitEvent(504)
constant playerunitevent EVENT_PLAYER_UNIT_ABILITY_AUTOCAST_ON = ConvertPlayerUnitEvent(505)
constant playerunitevent EVENT_PLAYER_UNIT_ABILITY_AUTOCAST_OFF = ConvertPlayerUnitEvent(506)
constant unitevent EVENT_UNIT_ABILITY_ADDED = ConvertUnitEvent(513)
constant unitevent EVENT_UNIT_ABILITY_REMOVED = ConvertUnitEvent(514)
constant unitevent EVENT_UNIT_ABILITY_AUTOCAST_ON = ConvertUnitEvent(515)
constant unitevent EVENT_UNIT_ABILITY_AUTOCAST_OFF = ConvertUnitEvent(516)
constant originframetype ORIGIN_FRAME_FPS_TEXT = ConvertOriginFrameType(54)
constant originframetype ORIGIN_FRAME_MEMORY_TEXT = ConvertOriginFrameType(55)
native GetMapFogZ takes nothing returns real
native SetMapFogZ takes real z returns nothing
native GetMapFogColour takes nothing returns integer
native SetMapFogColour takes integer colour returns nothing
native IsAbilityAutocastEnabled takes ability whichAbility returns boolean
» Unryze Jass API / UjAPI
v1.1.1.158
constant playerunitevent EVENT_PLAYER_UNIT_ABILITY_ADDED = ConvertPlayerUnitEvent(503)
constant playerunitevent EVENT_PLAYER_UNIT_ABILITY_REMOVED = ConvertPlayerUnitEvent(504)
constant playerunitevent EVENT_PLAYER_UNIT_ABILITY_AUTOCAST_ON = ConvertPlayerUnitEvent(505)
constant playerunitevent EVENT_PLAYER_UNIT_ABILITY_AUTOCAST_OFF = ConvertPlayerUnitEvent(506)
constant unitevent EVENT_UNIT_ABILITY_ADDED = ConvertUnitEvent(513)
constant unitevent EVENT_UNIT_ABILITY_REMOVED = ConvertUnitEvent(514)
constant unitevent EVENT_UNIT_ABILITY_AUTOCAST_ON = ConvertUnitEvent(515)
constant unitevent EVENT_UNIT_ABILITY_AUTOCAST_OFF = ConvertUnitEvent(516)
constant originframetype ORIGIN_FRAME_FPS_TEXT = ConvertOriginFrameType(54)
constant originframetype ORIGIN_FRAME_MEMORY_TEXT = ConvertOriginFrameType(55)
native GetMapFogZ takes nothing returns real
native SetMapFogZ takes real z returns nothing
native GetMapFogColour takes nothing returns integer
native SetMapFogColour takes integer colour returns nothing
native IsAbilityAutocastEnabled takes ability whichAbility returns boolean
» WarCraft 3 / Циклы и их лимиты (+ способы обхода лимитов)
» WarCraft 3 / Jass MythBusters
» WarCraft 3 / Циклы и их лимиты (+ способы обхода лимитов)