UjAPI

Добавлен , опубликован
Лауреат премии 2023 года


Данный ресурс работает ТОЛЬКО с патчами 1.24e/1.26а/1.27a/1.27b/1.28f

Как пользоваться?

  1. Распакуйте все файлы из архива, желательно в отдельную папку, вот так:
скриншоты
  1. Запустите UjAPI.exe.
    • Если же у вас приложение не запускается, то скачайте и установите: .NET Framework 4.7.2.
    • Если же ни в игре, ни в World Editor UjAPI не работает, то скачайте и установите: C++ Redistributables 2012
  2. Установите путь для Warcraft 3, вот так:
скриншоты
  • Можно указать и на Frozen Throne.exe или же на Warcraft III.exe (но рекомендуется использовать именно war3.exe для патчей 1.27б и ниже).
  • На патче 1.28.5(f) рекомендуется использовать непосредственно Warcraft III.exe.
  1. Установите путь для World Editor, вот так:
скриншоты
  • Рекомендуется использовать JNGP версии Прометея: скачать
  • Пароль от архива: JNGP
4.1 Для удобства, добавления подсветки/автозаполнения, скачайте: [UjAPI] TESH Подсветка (спасибо DevilVsLife и Nazarpunk) и просто положите его в папку tesh/data вот так:
скриношоты
  1. Готово, вы можете теперь смело запускать как игру, так и World Editor через UjAPI Launcher.
    • Для использования оконного режима в Warcraft III нажмите галочку на "Additional command line arguments" и в появившееся окно, пропишите -window, вот так:
скриншоты

Полезные файлы

`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
3
20
3 месяца назад
3
Вышла новая версия!

v1.1.7.174 (Хотфикс)

1. Исправлена некорректная обработка длительности CBuffSpeed и её дочерних баффов: CBuffSpeedBonus/CBuffEarthquake/CBuffSlow.
2. Исправлено неверное поведение SetBuffOwner с баффами созданными через CreateBuff.
3. SetBuffRemainingDuration теперь работает с баффами, изначальная длительность которых равна 0.
4. CBuffSilence созданное через CreateBuff/UnitAddBuffById/Ex теперь правильно накладывает безмолвие на нужные заклинания/атаки.
5. Исправлена критическая ошибка от изменения любых полей у CBuffSilence через Buff Field API.
4
20
3 месяца назад
Отредактирован Unryze
4
Вышла новая версия!

v1.1.8.178

1. Новые Типы:
	type layoutstyleflag									extends flagtype
	type gridstyleflag										extends flagtype
2. Новые Конверторы:
	constant native ConvertLayoutStyleFlag					takes integer i returns layoutstyleflag
	constant native ConvertGridStyleFlag					takes integer i returns gridstyleflag
3. Новые Константы:
	constant layoutstyleflag			LAYOUT_STYLE_BOUNDING_FRAME_POSITION						= ConvertLayoutStyleFlag(1)
	constant layoutstyleflag			LAYOUT_STYLE_ALWAYS_TRACK									= ConvertLayoutStyleFlag(2)
	constant layoutstyleflag			LAYOUT_STYLE_NO_ENV											= ConvertLayoutStyleFlag(4)
	//
	constant gridstyleflag				GRID_STYLE_JUSTIFY_LEFT										= ConvertGridStyleFlag(8)
	constant gridstyleflag				GRID_STYLE_JUSTIFY_RIGHT									= ConvertGridStyleFlag(16)
	constant gridstyleflag				GRID_STYLE_JUSTIFY_TOP										= ConvertGridStyleFlag(32)
	constant gridstyleflag				GRID_STYLE_JUSTIFY_BOTTOM									= ConvertGridStyleFlag(64)
	constant gridstyleflag				GRID_STYLE_JUSTIFY_MIDDLE									= ConvertGridStyleFlag(128)
	constant gridstyleflag				GRID_STYLE_JUSTIFY_CENTER									= ConvertGridStyleFlag(256)
	constant gridstyleflag				GRID_STYLE_PACK_ITEMS										= ConvertGridStyleFlag(512)
	//
	constant layerstyleflag				LAYER_STYLE_SCROLL											= ConvertLayerStyleFlag(8)
	//
	constant controlstyleflag 			CONTROL_STYLE_HIGHLIGHT_ON_FOCUS							= ConvertControlStyleFlag(16)
	constant controlstyleflag 			CONTROL_STYLE_HIGHLIGHT										= ConvertControlStyleFlag(256)
	//
	constant abilitytype				ABILITY_TYPE_POSITIVE										= ConvertAbilityType(0)
	constant abilitytype				ABILITY_TYPE_NEGATIVE										= ConvertAbilityType(1)
	constant abilitytype				ABILITY_TYPE_AURA											= ConvertAbilityType(2)
	constant abilitytype				ABILITY_TYPE_BUFF											= ConvertAbilityType(3)
	constant abilitytype				ABILITY_TYPE_TIMED_LIFE										= ConvertAbilityType(4)
	constant abilitytype				ABILITY_TYPE_PHYSICAL										= ConvertAbilityType(5)
	constant abilitytype				ABILITY_TYPE_MAGICAL										= ConvertAbilityType(6)
	constant abilitytype				ABILITY_TYPE_AUTODISPEL										= ConvertAbilityType(7)
4. Новые Нативные Функции:
	native GetUnitAbilityEx									takes unit whichUnit, integer aid, integer id returns ability  // Allows you to search through duplicates.
	native GetUnitBuffEx									takes unit whichUnit, integer buffId, integer id returns buff // Allows you to search through duplicates.
	native IsAbilityType									takes ability whichAbility, abilitytype whichAbilityType returns boolean
	native IsBuffDispelleable								takes buff whichBuff returns boolean
	native SetBuffDispelleable								takes buff whichBuff, boolean isSet returns nothing
	native PauseBuff										takes buff whichBuff, boolean pause returns nothing
	native IsFrameLayoutFlag								takes framehandle whichFrame, layoutstyleflag whichLayoutStyle returns boolean
	native SetFrameLayoutFlag								takes framehandle whichFrame, layoutstyleflag whichLayoutStyle, boolean isSet returns nothing
	native IsFrameGridFlag									takes framehandle whichFrame, gridstyleflag whichGridStyle returns boolean
	native SetFrameGridFlag									takes framehandle whichFrame, gridstyleflag whichGridStyle, boolean isSet returns nothing
	native GetFrameGridRows 								takes framehandle grid returns integer
	native GetFrameGridColumns 								takes framehandle grid returns integer
	native SetFrameGridSize 								takes framehandle grid, integer row, integer column returns nothing
	native GetFrameGridFrame 								takes framehandle grid, integer row, integer column returns framehandle
	native GetFrameGridFrameById 							takes framehandle grid, integer id returns framehandle
	native SetFrameGridFrame 								takes framehandle grid, integer row, integer column, framehandle whichFrame returns nothing
	native IsBuffBarRenderDuplicates 						takes nothing returns boolean
	native SetBuffBarRenderDuplicates 						takes boolean allow returns nothing // this will allow the rendering (drawing) of duplicate (similar) buffs. By default is off.
6. CONTROL_STYLE_HIGHLIGHT_HOVER переименован в CONTROL_STYLE_HIGHLIGHT_ON_MOUSE_OVER.
5. Исправлено получение текстур через Get/SetFrameTexture с Console UI.
6. SetBuffRemainingDuration теперь возвращает nothing вместо boolean.
7. Исправлена ошибка по которой SetBuffRemainingDuration стартовало бафф, даже если юнит в паузе.
8. Исправлена ошибка по которой SetBuffRemainingDuration не сохраняло оставшееся значение когда юнит в паузе.
9. RefreshBuff теперь возвращает nothing вместо boolean.
10. RefreshBuff теперь вызывает события EVENT_PLAYER_UNIT_BUFF_REFRESHED и EVENT_UNIT_BUFF_REFRESHED.
11. SetFrameGridSize теперь полноценно поддерживает ORIGIN_FRAME_BUFF_BAR.
12. SetFrameGridSize теперь полноценно поддерживает ORIGIN_FRAME_COMMAND_BAR.
	Пометка: Хоткеи тоже работают.
13. Исправлена критическая ошибка от CBuffAuraEndurance при использовании через Buff API.
14. Исправлена критическая ошибка от CBuffAuraSlow при использовании через Buff API.
15. Исправлена критическая ошибка от CBuffAuraThorns при использовании через Buff API.
16. PauseUnitEx полностью переделана, теперь она более не прячет Атаку, но и не позволяет мёртвым юнитам атаковать.
Загруженные файлы
3
20
3 месяца назад
Отредактирован Unryze
3
Вышла новая версия!

v1.1.9.181

1. Новые Константы:
	constant itemintegerfield			ITEM_IF_HOTKEY												= ConvertItemIntegerField('ihot')
2. Новые Нативные Функции:
	// Base Field API
	native GetBuffBaseIntegerFieldById						takes integer bid, abilityintegerfield whichField returns integer
	native SetBuffBaseIntegerFieldById						takes integer bid, abilityintegerfield whichField, integer value returns boolean
	native GetBuffBaseBooleanFieldById						takes integer bid, abilitybooleanfield whichField returns boolean
	native SetBuffBaseBooleanFieldById						takes integer bid, abilitybooleanfield whichField, boolean value returns boolean
	native GetBuffBaseRealFieldById							takes integer bid, abilityrealfield whichField returns real
	native SetBuffBaseRealFieldById							takes integer bid, abilityrealfield whichField, real value returns boolean
	native GetBuffBaseIntegerArrayFieldById					takes integer bid, abilityintegerfield whichField, integer index returns integer
	native SetBuffBaseIntegerArrayFieldById					takes integer bid, abilityintegerfield whichField, integer index, integer value returns boolean
	native AddBuffBaseIntegerArrayFieldById					takes integer bid, abilityintegerfield whichField, integer value returns boolean
	native RemoveBuffBaseIntegerArrayFieldById				takes integer bid, abilityintegerfield whichField, integer value returns boolean
	native GetBuffBaseBooleanArrayFieldById					takes integer bid, abilitybooleanfield whichField, integer index returns boolean
	native SetBuffBaseBooleanArrayFieldById					takes integer bid, abilitybooleanfield whichField, integer index, boolean value returns boolean
	native AddBuffBaseBooleanArrayFieldById					takes integer bid, abilitybooleanfield whichField, boolean value returns boolean
	native RemoveBuffBaseBooleanArrayFieldById				takes integer bid, abilitybooleanfield whichField, boolean value returns boolean
	native GetBuffBaseRealArrayFieldById					takes integer bid, abilityrealfield whichField, integer index returns real
	native SetBuffBaseRealArrayFieldById					takes integer bid, abilityrealfield whichField, integer index, real value returns boolean
	native AddBuffBaseRealArrayFieldById					takes integer bid, abilityrealfield whichField, real value returns boolean
	native RemoveBuffBaseRealArrayFieldById					takes integer bid, abilityrealfield whichField, real value returns boolean
	native GetBuffBaseStringArrayFieldById					takes integer bid, abilitystringfield whichField, integer index returns string
	native SetBuffBaseStringArrayFieldById					takes integer bid, abilitystringfield whichField, integer index, string value returns boolean
	native AddBuffBaseStringArrayFieldById					takes integer bid, abilitystringfield whichField, string value returns boolean
	native RemoveBuffBaseStringArrayFieldById				takes integer bid, abilitystringfield whichField, string value returns boolean
	//
	// Field API
	native GetBuffIntegerArrayField							takes buff whichBuff, abilityintegerfield whichField, integer index returns integer
	native SetBuffIntegerArrayField							takes buff whichBuff, abilityintegerfield whichField, integer index, integer value returns boolean
	native AddBuffIntegerArrayField							takes buff whichBuff, abilityintegerfield whichField, integer value returns boolean
	native RemoveBuffIntegerArrayField						takes buff whichBuff, abilityintegerfield whichField, integer value returns boolean
	native GetBuffBooleanArrayField							takes buff whichBuff, abilitybooleanfield whichField, integer index returns boolean
	native SetBuffBooleanArrayField							takes buff whichBuff, abilitybooleanfield whichField, integer index, boolean value returns boolean
	native AddBuffBooleanArrayField							takes buff whichBuff, abilitybooleanfield whichField, boolean value returns boolean
	native RemoveBuffBooleanArrayField						takes buff whichBuff, abilitybooleanfield whichField, boolean value returns boolean
	native GetBuffRealArrayField							takes buff whichBuff, abilityrealfield whichField, integer index returns real
	native SetBuffRealArrayField							takes buff whichBuff, abilityrealfield whichField, integer index, real value returns boolean
	native AddBuffRealArrayField							takes buff whichBuff, abilityrealfield whichField, real value returns boolean
	native RemoveBuffRealArrayField							takes buff whichBuff, abilityrealfield whichField, real value returns boolean
	native GetBuffStringArrayField							takes buff whichBuff, abilitystringfield whichField, integer index returns string
	native SetBuffStringArrayField							takes buff whichBuff, abilitystringfield whichField, integer index, string value returns boolean
	native AddBuffStringArrayField							takes buff whichBuff, abilitystringfield whichField, string value returns boolean
	native RemoveBuffStringArrayField						takes buff whichBuff, abilitystringfield whichField, string value returns boolean
	//
3. SetFrameGridFrame теперь поддерживает CSimpleFontString и CSimpleTexture.
4. Переделана логика метода копирования CAbilityBase и CAbilityUIDef, теперь они должны работать полноценно.
5. SetAbility/BuffStringField теперь полноценно работают с ABILITY_SLF_CASTER, ABILITY_SLF_TARGET, ABILITY_SLF_SPECIAL, ABILITY_SLF_EFFECT и ABILITY_SLF_AREA_EFFECT.
6. ABILITY_SLF_CASTER, ABILITY_SLF_TARGET, ABILITY_SLF_SPECIAL, ABILITY_SLF_EFFECT and ABILITY_SLF_AREA_EFFECT теперь могут быть обработаны как массивы полей.
7. Исправлен старый визуальный баг "ванилы" связанный с перезарядкой предметов, анимация которых начиналась с нуля, а не сохраняла текущую позицию.
8. Исправлена ошибка по которой GetTriggerFrameMouseButton не работала с FRAMEEVENT_MOUSE_UP и FRAMEEVENT_MOUSE_DOWN.
9. Исправлена некорректная обработка нетКода фреймов для FRAMEEVENT_CONTROL_CLICKED и FRAMEEVENT_CONTROL_DRAG.
10. ITEM_IF_HOTKEY теперь может быть использовано для установки уникальных для предмета хоткеев, которые не привязаны к NUMPAD.
11. Убран 1024 лимит символов для подсказок (обычно используемый для имени) для Заклинаний.
12. Убран 1024 лимит символов для расширенных подсказок для Заклинаний.
13. Убран 1024 лимит символов для Researchtip/Learntip для Заклинаний.
14. Убран 96 лимит символов для подсказок (обычно используемый для имени) для баффов.
15. Убран 1024 лимит символов для расширенных подсказок для баффов.
16. Убран 96 лимит символов для подсказок (обычно используемый для имени) для предметов.
17. Убран 1024 лимит символов для расширенных подсказок для предметов.

v1.1.9.182 (Хотфикс)

1. Исправлена критическая ошибка от наведения на "предметы" в магазинах, то бишь Asud, AHer и так далее.

v1.1.9.183 (Хотфикс)

1. Исправлена критическая ошибка от оставшихся Заклинаний/Пустых заклинаний.

v1.1.9.184 (Хотфикс)

1. Исправлены бесконечно-дублюирующиеся визуалы баффов выданных аурами.
	Пометка: это происходило только если был включен режим прорисовки "дубликатов" (схожих) баффов.
2. Исправлена проблема по которой баффы выданные аурами не имели описаний.

v1.1.9.185 (Хотфикс)

1. Исправлена некорректная обработка GetItemUseSlotId, которая иногда приводила к перекрыванию других приказов.

v1.1.9.186 (Хотфикс)

1. Исправлены неправильные значения виртуальной таблицы функций CBuffIndicator для 1.27a/1.27b/1.28f.

v1.1.9.187 (Хотфикс)

1. Исправлена критическая ошибка от RemoveSprite.
Загруженные файлы
3
20
3 месяца назад
3
Вышла новая версия!

v1.1.10.190

1. Новые Типы:
	type framestate 										extends flagtype
2. Новые Конверторы:
	constant native ConvertFrameState						takes integer i returns framestate
3. Новые Константы:
	constant framestate					FRAME_STATE_SIMPLE_BUTTON_ENABLED							= ConvertFrameState(0)
	constant framestate					FRAME_STATE_SIMPLE_BUTTON_DISABLED							= ConvertFrameState(1)
	constant framestate					FRAME_STATE_SIMPLE_BUTTON_PUSHED							= ConvertFrameState(2)
	constant framestate					FRAME_STATE_SIMPLE_BUTTON_CURRENT							= ConvertFrameState(3)
	//
	constant framestate					FRAME_STATE_CONTROL_CURRENT									= ConvertFrameState(0)
	constant framestate					FRAME_STATE_CONTROL_ENABLED									= ConvertFrameState(1)
	constant framestate					FRAME_STATE_CONTROL_PUSHED									= ConvertFrameState(2)
	constant framestate					FRAME_STATE_CONTROL_DISABLED								= ConvertFrameState(3)
	constant framestate					FRAME_STATE_CONTROL_CHECK_ENABLED							= ConvertFrameState(5)
	constant framestate					FRAME_STATE_CONTROL_CHECK_DISABLED							= ConvertFrameState(6)
4. Новые Нативные Функции:
	native GetFrameState									takes framehandle whichFrame returns framestate
	native SetFrameState									takes framehandle whichFrame, framestate whichFrameState returns nothing
5. Исправлена критическая ошибка от SetFramePriority при установке приоритета выше 8 на CSimpleFrames.
6. Исправлена критическая ошибка от SetFramePriority при установке приоритета выше 4 на CSimpleRegions.
7. Исправлено инвертированное поведение SetFrameEnabled с CSimpleButtons.
8. Исправлена неправильная обработка цвета в SetFrameColour (внутренние функции были исправлены раннее, но не само АПИ).
9. Исправлена неправильная обработка некоторых полей через SetAbilityIntegerField.
2
20
3 месяца назад
Отредактирован Unryze
2
Вышла новая версия!

v1.1.10.191

1. Сделан откат фикса "эксплоита", который позволял прятать некоторые кнопки на командной панели благодаря отрицательным X/Y значениям.
	Пометка: теперь это работает универсально для всех поддерживаемых патчей, то бишь если X или же Y отрицательны, то эта кнопка не будет прорисована.
2. Исправлена критическая ошибка от виджетов у которых отсутствует описание или же расширенное описание.

v1.1.10.192

1. Исправлена застревающая на 99.99% (то бишь в самом конце) анимация перезарядки предметов.
4
20
2 месяца назад
4
Вышла новая версия!

v1.1.11.199

1. Добавлен AngelScript - новый скрпитовый язык с синтаксическим стилем C++ у которого есть строгая типизация как у Jass.
	Пометка: вы можете сравнить этот язык с vJass в плане синтаксиса. Этот язык во много раз быстрее Jass и имеет множество современных парадигм.
2. Новые Константы:
	constant gameevent					EVENT_GAME_AGENT_DESTROYED									= ConvertGameEvent(800)
	constant gameevent					EVENT_GAME_AGENT_ARRIVAL									= ConvertGameEvent(801)
	constant gameevent					EVENT_GAME_AGENT_CANT_PATH									= ConvertGameEvent(802)
	constant gameevent					EVENT_GAME_AGENT_WARP_START									= ConvertGameEvent(803)
	constant gameevent					EVENT_GAME_AGENT_WARP_END									= ConvertGameEvent(804)
	constant gameevent					EVENT_GAME_WIDGET_DAMAGING									= ConvertGameEvent(805)
	constant gameevent					EVENT_GAME_WIDGET_DAMAGED									= ConvertGameEvent(806)
	constant gameevent					EVENT_GAME_WIDGET_DEATH										= ConvertGameEvent(807)
	//
	constant playerevent				EVENT_PLAYER_WIDGET_TRACK									= ConvertPlayerEvent(320)
	constant playerevent				EVENT_PLAYER_WIDGET_GHOST_TRACK								= ConvertPlayerEvent(321)
	constant playerevent				EVENT_PLAYER_WIDGET_CLICK									= ConvertPlayerEvent(322)
	constant playerevent				EVENT_PLAYER_WIDGET_GHOST_CLICK								= ConvertPlayerEvent(323)
	constant playerevent				EVENT_PLAYER_TERRAIN_CLICK									= ConvertPlayerEvent(324)
3. Новые Нативные Функции:
	native HexToInt											takes string hex returns integer
	//
	native ResetAbilityOrder								takes ability whichAbility returns nothing
	//
	native GetWidgetZ										takes widget whichWidget returns real
	native SetWidgetZ										takes widget whichWidget, real z returns nothing
	native ResetWidgetZ										takes widget whichWidget returns nothing // returns Z control to game.
	native GetWidgetHeight									takes widget whichWidget returns real
	native SetWidgetHeight									takes widget whichWidget, real height returns nothing
	native SetWidgetPositionWithZ							takes widget whichWidget, real x, real y, real z returns nothing
	//
	native GetDestructableHeight							takes destructable whichDestructable returns real
	native SetDestructableHeight							takes destructable whichDestructable, real height returns nothing
	native GetDestructableZ									takes destructable whichDestructable returns real
	native ResetDestructableZ								takes destructable whichDestructable returns nothing // returns Z control to game.
	//
	constant native GetTriggerItem							takes nothing returns item
	native GetItemOwner										takes item whichItem returns unit
	native GetItemZ											takes item whichItem returns real
	native SetItemX											takes item whichItem, real x returns nothing
	native SetItemY											takes item whichItem, real y returns nothing
	native SetItemZ											takes item whichItem, real z returns nothing
	native SetItemPositionWithZ								takes item whichItem, real x, real y, real z returns nothing
	native ResetItemZ										takes item whichItem returns nothing // returns Z control to game.
	native GetItemHeight									takes item whichItem returns real
	native SetItemHeight									takes item whichItem, real height returns nothing
	//
	native SaveBuffHandle									takes hashtable table, integer parentKey, integer childKey, buff whichBuff returns boolean
	native SaveWar3Image									takes hashtable table, integer parentKey, integer childKey, war3image whichWar3Image returns boolean
	native LoadBuffHandle									takes hashtable table, integer parentKey, integer childKey returns buff
	native LoadWar3ImageHandle								takes hashtable table, integer parentKey, integer childKey returns war3image
	//
	native SetUnitPositionEx								takes unit whichUnit, boolean breakOrder, boolean checkPathing, real x, real y, real z returns nothing
	native SetUnitPositionWithZ								takes unit whichUnit, real x, real y, real z returns nothing
	native SetUnitZ											takes unit whichUnit, real z returns nothing
	native ResetUnitZ										takes unit whichUnit returns nothing // returns Z control to game.
	native GetUnitHeight									takes unit whichUnit returns real
	native SetUnitHeight									takes unit whichUnit, real height returns nothing
	native SetUnitResourceCurrent							takes unit whichUnit, integer amount returns nothing // only works on units that can "keep" gathered resources.
	native GetUnitResourceCapacity							takes unit whichUnit, integer resourceType returns integer // 0 for gold, 1 for lumber.
	native SetUnitResourceCapacity							takes unit whichUnit, integer resourceType, integer amount returns nothing // only works on units that can "keep" gathered resources.
	native GetUnitResourcePerGather							takes unit whichUnit, integer resourceType returns integer
	native SetUnitResourcePerGather							takes unit whichUnit, integer resourceType, integer amount returns nothing // for gold simply changes capacity
	native GetUnitResourceGatherInterval					takes unit whichUnit, returns real // wisp only
	native SetUnitResourceGatherInterval					takes unit whichUnit, real interval returns nothing
4. Удалён предыдущий механизм обработки netCode пакетов, который удалял дубликаты "событий", для избежания лимита в 1024 байта.
	Пометка: это был достаточно медленный процесс, который не особо нужен после полноценной переделки обработки NetCode.
5. Лимит в 1024 байтов был зафиксирован для нестадартных NetCode событий, так как если лимит был достигнут, то игра отвергала оставшиеся пакеты.
	Пометка: превышение лимита может вызывать проблемы, такие как неправильная обработка полученных пакетов, типа приказов юнитов и так далее.
6. Исправлена критическая ошибка от использования предметов на 1.27a/1.27b/1.28f.
7. Исправлена критическая ошибка от переноса предмета в другой слот на 1.27a/1.27b/1.28f.
8. Добавлено выведение текста загрузки UjAPI в World Editor.
9. Исправлена инвертированное поведение CBuffHowlOfTerror.
10. Исправлена критическая ошибка от SetBuffRemainingDuration на неподдерживаемых/удалённых баффах.
11. Добавлена поддержка CBuffAcidBomb в Buff API.
12. Добавлена поддержка CBuffSlowPoison в Buff API.
13. Исправлена критическая ошибка от SetFrameAlpha на 1.27a/1.27b/1.28f.
14. Исправлена GetBuffOwner всегда возвращающая 0.
15. Исправлена GetBuffTypeId всегда возвращающая 0.
16. GetUnitCurrentResources переименовано в GetUnitResourceCurrent.
17. Исправлена GetBuffIntegerField возвращающая неверные значения.
18. Исправлена SetBuffIntegerField устанавливающая неверные значения.
19. Исправлена CBuffRegenLife обработка DataC и DataD в Buff API.
20. Исправлена CBuffRegenMana обработка DataC и DataD в Buff API.
21. Исправлена CBuffRegeneration обработка DataC и DataE в Buff API.
22. Исправлена CBuffRejuvination обработка DataC и DataD в Buff API.
23. Исправлена CBuffDrunkenHaze обработка DataA в Buff API.
24. Исправлена CBuffLavaMonster обработка DataC и DataF в Buff API.
25. Исправлена CBuffSlowPoison обработка DataD в Buff API.
26. Исправлена критическая ошибка от SetFrameParent с CFrames на 1.27a.
27. SetFrameVertexColourEx теперь дополнительно берёт аргумент textureId.
28. SetFrameVertexColour теперь использует предыдущую декларацию SetFrameVertexColourEx без использования индекса текстуры.
29. SetFrameVertexColour and SetFrameVertexColourEx colour order fixed from ARBG to ARGB.
30. GetFrameAlpha/Ex теперь работает с CModelFrame/CBackdropFrame/CChatEditBar.
31. GetFrameAlpha/Ex теперь работает с CModelFrame/CBackdropFrame/CChatEditBar.
32. GetFrameColour/Ex теперь работает с CModelFrame/CBackdropFrame/CChatEditBar.
33. SetFrameColour/Ex/VertexColour/Ex теперь работает с CModelFrame/CBackdropFrame/CChatEditBar.
	Пометка: 30 - 33 работают только с моделями добавленными в CModelFrame/CBackdropFrame/CChatEditBar, а не на текстуры.
34. Полностью переписана внутренняя обработка EVENT_PLAYER_UNIT_ABILITY_ADDED.
35. Полностью переписана внутренняя обработка EVENT_UNIT_ABILITY_ADDED.
36. Полностью переписана внутренняя обработка EVENT_PLAYER_UNIT_ABILITY_REMOVED.
37. Полностью переписана внутренняя обработка EVENT_UNIT_ABILITY_REMOVED.
38. Полностью переписана внутренняя обработка EVENT_PLAYER_UNIT_ABILITY_AUTOCAST_ON.
39. Полностью переписана внутренняя обработка EVENT_PLAYER_UNIT_ABILITY_AUTOCAST_OFF.
40. Полностью переписана внутренняя обработка EVENT_UNIT_ABILITY_AUTOCAST_ON.
41. Полностью переписана внутренняя обработка EVENT_UNIT_ABILITY_AUTOCAST_OFF.
42. Полностью переписана внутренняя обработка EVENT_PLAYER_UNIT_BUFF_RECEIVED.
43. Полностью переписана внутренняя обработка EVENT_PLAYER_UNIT_BUFF_REFRESHED.
44. Полностью переписана внутренняя обработка EVENT_PLAYER_UNIT_BUFF_ENDED.
45. Полностью переписана внутренняя обработка EVENT_UNIT_BUFF_RECEIVED.
46. Полностью переписана внутренняя обработка EVENT_UNIT_BUFF_REFRESHED.
47. Полностью переписана внутренняя обработка EVENT_UNIT_BUFF_ENDED.
48. Полностью переписана внутренняя обработка EVENT_WIDGET_DAMAGING.
49. Полностью переписана внутренняя обработка EVENT_WIDGET_DAMAGED.
50. Полностью переписана внутренняя обработка EVENT_WIDGET_DEATH.
51. Полностью переписана внутренняя обработка EVENT_GAME_WIDGET_DAMAGING.
52. Полностью переписана внутренняя обработка EVENT_GAME_WIDGET_DAMAGED.
53. Полностью переписана внутренняя обработка EVENT_GAME_WIDGET_DEATH.
54. Полностью переписана внутренняя обработка EVENT_PLAYER_UNIT_DAMAGING.
55. Полностью переписана внутренняя обработка EVENT_PLAYER_UNIT_DAMAGED.
56. Полностью переписана внутренняя обработка EVENT_UNIT_DAMAGING.
57. Полностью переписана внутренняя обработка EVENT_UNIT_DAMAGED.
58. Полностью переписана внутренняя обработка EVENT_PLAYER_UNIT_PROJECTILE_LAUNCHED.
59. Полностью переписана внутренняя обработка EVENT_PLAYER_UNIT_PROJECTILE_HIT.
60. Полностью переписана внутренняя обработка EVENT_UNIT_PROJECTILE_LAUNCHED.
61. Полностью переписана внутренняя обработка EVENT_UNIT_PROJECTILE_HIT.
62. Полностью переписаны оффсеты Антихака для 1.24e.
	Пометка: 14 оффсетов было добавлено.
63. Полностью переписаны оффсеты Антихака для 1.26a.
	Пометка: 30 оффсетов было добавлено.
64. Полностью переписаны оффсеты Антихака для 1.27a.
	Пометка: 20 оффсетов было добавлено.
65. Полностью переписаны оффсеты Антихака для 1.27b.
	Пометка: 12 оффсетов было добавлено.
66. Полностью переписаны оффсеты Антихака для 1.28f.
	Пометка: 2 оффсетов было добавлено.
67. Юнит фрейма CTrainableButton теперь посылается в событие FRAMEEVENT_MOUSE_ENTER/FRAMEEVENT_MOUSE_LEAVE/FRAMEEVENT_MOUSE_UP/FRAMEEVENT_MOUSE_DOWN/FRAMEEVENT_CONTROL_CLICK.
68. Предмет/заклинание фрейма CCommandButton теперь посылается в событие FRAMEEVENT_MOUSE_ENTER/FRAMEEVENT_MOUSE_LEAVE/FRAMEEVENT_MOUSE_UP/FRAMEEVENT_MOUSE_DOWN/FRAMEEVENT_CONTROL_CLICK.
69. Юнит фрейма CCargoButton теперь посылается в событие FRAMEEVENT_MOUSE_ENTER/FRAMEEVENT_MOUSE_LEAVE/FRAMEEVENT_MOUSE_UP/FRAMEEVENT_MOUSE_DOWN/FRAMEEVENT_CONTROL_CLICK.
70. Юнит фрейма CHeroBarButton теперь посылается в событие FRAMEEVENT_MOUSE_ENTER/FRAMEEVENT_MOUSE_LEAVE/FRAMEEVENT_MOUSE_UP/FRAMEEVENT_MOUSE_DOWN/FRAMEEVENT_CONTROL_CLICK.
71. Бафф фрейма CBuffIndicator теперь посылается в событие FRAMEEVENT_MOUSE_ENTER/FRAMEEVENT_MOUSE_LEAVE/FRAMEEVENT_MOUSE_UP/FRAMEEVENT_MOUSE_DOWN/FRAMEEVENT_CONTROL_CLICK.
72. Исправлены SetDestructableX/Y/Z/Position/PositionWithZ/PositionLoc не двигающие карту путей.
	Пометка: тени карты путей не могут быть сдвинуты, так как они не привязаны к объекту.
73. Исправлены строки не работающие во второстепенных потоках. (В прелоаде, а так же в ExecuteFunc которые были вызваны из ExecuteFunc).
74. ClickFrame и ClickFrameEx теперь вызывают событие FRAMEEVENT_CONTROL_CLICK для CSimpleButton и дочерних фреймов.
75. Исправлена SetAbilityField API не обновляющая некоторые данные заклинания.
76. Исправлена CBuffAuraDevotion не дающая никаких бонусов при создании через buff API.
77. Исправлена CBuffAuraRegenLife не дающая никаких бонусов при создании через buff API.
78. Исправлена CBuffAuraRegenMana не дающая никаких бонусов при создании через buff API.
79. Исправлена CBuffAuraBrilliance не дающая никаких бонусов при создании через buff API.
80. Исправлена CBuffAuraBlightRegen не дающая никаких бонусов при создании через buff API.
81. Исправлена CBuffAuraUnholy не дающая никаких бонусов при создании через buff API.
82. Исправлена CBuffAuraEndurance не дающая никаких бонусов при создании через buff API.
83. Исправлена CBuffAuraSlow не дающая никаких бонусов при создании через buff API.
84. Исправлена CBuffAuraThorns не дающая никаких бонусов при создании через buff API.
85. Исправлена CBuffAuraVampiric не дающая никаких бонусов при создании через buff API.
86. Исправлена ошибка по которой фреймы предметов ломались если HideOriginFrames было использовано.
87. Исправлена критическая ошибка от DisplayTimedTopMessage.
88. Исправлены критические ошибки от некоторых заклинаний, которые были подвергнуты SetAbilityOrder.
89. Исправлено неправильное поведение SetAbilityOrder с CAbilityChannel.
90. Исправлена ошибка SetAbilityLevel позволяющая установить уровень выше максимального.
91. SetAbilityOrderId теперь возвращает nothing вместо boolean.
92. SetAbilityCooldown теперь возвращает nothing вместо boolean.
93. SetAbilityRemainingCooldown теперь возвращает nothing вместо boolean.
94. Все хендлы расширяющие agentdatafield теперь используют мнимые хендлы.
	Пометка: настоящие хендлы были использованы на значениях выше 0x100000, дабы луа не крашилось, это более не является приоритетом.
95. war3_lua был удалён из Modules, он будет доступен для скачивания отдельно.
2
20
2 месяца назад
2
Вышла новая версия!

v1.1.11.202

1. Исправлено повторение события WIDGET_DEATH если уже умерший виджет получал урон.
2. Исправлено событие EVENT_PLAYER_MOUSE_MOVE не возвращающее позиции на экране.
3. Обработчик событий KEY/MOUSE нажатия/отжатия был перенесён в WndProc для более стабильной обработки.
	Пометка: это должно поправить часть игнорируемых клавиш, так я более не ориентируюсь на кнопки, которые обработала игра.
4. Добавлена поддержка XButton1 кнопки в событии KEY/MOUSE нажатия/отжатия.
5. Добавлена поддержка XButton2 кнопки в событии KEY/MOUSE нажатия/отжатия.
6. Исправлена обработка клавиш SHIFT/LSHIFT/RSHIFT. LSHIFT/RSHIFT будут посылать отдельное событие после SHIFT.
7. Исправлена обработка клавиш ALT/LALT/RALT. LALT/RALT будут посылать отдельное событие после ALT.
8. Исправлена обработка клавиш CTRL/LCTRL/RCTRL. LCTRL/RCTRL будут посылать отдельное событие после CTRL.
9. Исправлен десинх, который был обнаружен с версии 1.1.11.199.
10. Исправлена LaunchProjectileAt не сохраняющая координаты цели.
11. Исправлена LaunchProjectile не работающая через SetProjectileTargetPositionWithZ.
12. GetFrameTexture теперь работает с CSimpleFrame.
13. Исправлено кеширование текстур в SetFrameTexture с CSimpleFrame которое не позволяло вернуть оригинальную текстуру.
14. Обновлён модуль UnlockMapSize до версии 1.0.1.3.
3
20
2 месяца назад
3
Вышла новая версия!

v1.1.12.205

1. Новые Нативные Функции:
	native BenchmarkStart									takes nothing returns nothing
	native BenchmarkEnd										takes nothing returns nothing
	native BenchmarkReset									takes nothing returns nothing
	native BenchmarkGetElapsed								takes integer benchType returns string // 0 for nanoseconds, 1 for microseconds, 2 for milliseconds
	//
	native GetFrameScreenX									takes framehandle whichFrame returns real
	native GetFrameScreenY									takes framehandle whichFrame returns real
	native GetFrameRelativePointParent						takes framehandle whichFrame, framepointtype point returns framehandle
	native GetFrameRelativePointType						takes framehandle whichFrame, framepointtype point returns framepointtype
	native GetFrameRelativePointX							takes framehandle whichFrame, framepointtype point returns real
	native GetFrameRelativePointY							takes framehandle whichFrame, framepointtype point returns real
	native GetFrameAbsolutePointX							takes framehandle whichFrame, framepointtype point returns real
	native GetFrameAbsolutePointY							takes framehandle whichFrame, framepointtype point returns real
	native GetFrameBackdrop									takes framehandle whichFrame, integer backdropId returns framehandle
	native IsFrameBorderEnabled 							takes framehandle whichFrame, integer backdropId returns boolean
	native SetFrameBorderEnabled 							takes framehandle whichFrame, integer backdropId, boolean isEnable returns nothing
	native GetFrameSlider 									takes framehandle whichFrame returns framehandle
	native AddFrameSlider 									takes framehandle whichFrame returns framehandle
2. Удалён стандартный темплейт LISTBOX, все настройки теперь возможны через API.
	Пометка: полная настройка возможна через код.
3. Удалён стандартный темплейт CHECKBOX, все настройки теперь возможны через API.
	Пометка: полная настройка возможна через код.
4. SetFrameFont теперь работает с CTextArea.
5. SetFrameText теперь работает с CTextArea.
6. AddFrameText теперь работает с CTextArea.
1
20
2 месяца назад
1
Вышла новая версия!

v1.1.13.208

1. Новые Константы:
	constant integer					CHAT_RECIPIENT_UNKNOWN										= 4
2. Новые Нативные Функции:
	native DisplayChatMessageEx								takes player whichPlayer, integer recipient, real duration, boolean addToLog, string message returns nothing
	//
	native UnitGetTrainingProgress 							takes unit whichUnit returns real
	native UnitSetTrainingProgress 							takes unit whichUnit, integer trainingPercentage returns nothing
	native UnitGetTrainingRemainingTime						takes unit whichUnit returns real
	native UnitSetTrainingRemainingTime						takes unit whichUnit, real time returns nothing
	native UnitGetTrainingTypeIdAt 							takes unit whichUnit, integer index returns integer
	native UnitCancelTrainingAt 							takes unit whichUnit, integer index returns nothing
	native UnitSetTrainingTypeIdAt 							takes unit whichUnit, integer index, integer typeId returns nothing
	//
	native UnitGetResearchProgress 							takes unit whichUnit returns real
	native UnitSetResearchProgress 							takes unit whichUnit, integer trainingPercentage returns nothing
	native UnitGetResearchRemainingTime						takes unit whichUnit returns real
	native UnitSetResearchRemainingTime						takes unit whichUnit, real time returns nothing
	native UnitGetResearchTypeIdAt 							takes unit whichUnit, integer index returns integer
	native UnitCancelResearchAt 							takes unit whichUnit, integer index returns nothing
	native UnitSetResearchTypeIdAt 							takes unit whichUnit, integer index, integer typeId returns nothing
3. Исправлена неверная обработка damagetype в UnitDamageTarget.
4. Исправлены два неверных оффсета в АнтиХаке для 1.26a.
5. Добавлено отображение сообщения о десинхронизации, когда какой-либо игрок вылетит от десинхронизации.
6. Переисправлена ошибка по которой фреймы предметов не перерисовывались после HideOriginFrames.
7. Исправлена GetDestructableName всегда возвращающая "Default String" вместо действительного значения.
8. Исправлена GetItemName всегда возвращающая "Default String" вместо действительного значения.
9. Исправлена GetUnitName всегда возвращающая "Default String" вместо действительного значения.
10. Исправлена GetHeroProperName всегда возвращающая "Default String" вместо действительного значения.
11. Добавлены CLI настройки AngelScript.
1
20
1 месяц назад
1
Вышла новая версия!

v1.1.13.209

1. Исправлен некорректный посыл события EVENT_PLAYER_WIDGET_GHOST_CLICK вместо EVENT_PLAYER_WIDGET_CLICK.
2. Добавлен пуш виджета под мышкой в GetTriggerWidget в событии EVENT_PLAYER_TERRAIN_CLICK.
0
15
1 месяц назад
0
А можно как-то с помощью Unryze API организовать управление на джойстике?
Ответы (6)
1
20
1 месяц назад
1
DarkLigthing, если совсем делать нечего, то при желании - возможно. Но страдать такой вакханалией я не особо горю. :)
1
37
1 месяц назад
1
Unryze, там у винды есть универсальное апи, но тот же стим позволяет off-game controls, можно и без поддержки геймпада это делать
0
15
1 месяц назад
Отредактирован DarkLigthing
0
Unryze, Да, я понимаю что это маловостребовано ведь в кто играет в Wc3 на джойстиках. Просто сейчас все больше становятся актуальны портативные устройства как Steam Deck и теоретически карты, адаптированные под управление на подобных устройствах могли бы привлечь новых людей в Wc3. (:
0
37
1 месяц назад
0
DarkLigthing, steam deck работает на линуксе, а wine будет жрать аккум как не в себя
0
15
1 месяц назад
Отредактирован DarkLigthing
0
ScorpioT1000, Steam Deck работает на той OS которую ты туда захочешь поставить. Но по дефолту на ней действительно Linux семейства Arch Linux, который Valve адаптировала под свои нужды назвав SteamOS.
А wine это предшественник современной эмуляции, который называется Proton.
На моей деке, которой я уже пользуюсь как единственным пк стоит Windows 11 и батарейка это откровенно не проблема. Вот для портативного устройства x86 архитектура процессора это проблема для батарейки, лучше был бы ARM, но тогда игры с пк не запустились бы... А в целом это просто офигенная штука, для многих игр клавиатура и мышь по моему опыту это избыточность.
0
37
1 месяц назад
0
DarkLigthing, ну, мы же про стим дек для целевой аудитории говорим как стандартный стим ос с линуксом без подключенной зарядке на постоянке, x86 есть и на смартфонах, и кто-то даже ставил туда винду, но это единицы
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.