UjAPI

Added by , published
Лауреат премии 2023 года


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

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

  1. Распакуйте все файлы из архива, желательно в отдельную папку, вот так:
скриншоты
  1. Запустите UjAPI.exe.
    • Если же у вас приложение не запускается, то скачайте и установите: .NET Framework 4.7.2.
    • Если же ни в игре, ни в World Editor UjAPI не работает, то скачайте и установите: C++ Redistributable 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, вот так:
скриншоты

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

Get 985
`
LOADING AD...

Only a small set of comments around the pointed one shown. Go to actual.
0
20
0
A new version is out! Scroll to the resource

v1.0.39.145

  1. Исправлено SetSpecialEffectX/Y/Z, предыдущее исправление для SetWidgetX/Y/Z повлияло на эту ошибку.
0
20
0
Unryze, когда автотесты?
0
20
0
Unryze, когда автотесты?
Надеюсь никогда. )0
2
20
2
A new version is out! Scroll to the resource

v1.0.40.147

  1. Новые Нативные Функции:
    native GetWheelDelta takes nothing returns integer
    native GetVisionMax takes nothing returns real
    native SetVisionMax takes real value returns nothing
  2. Исправлена критическая ошибка от GetAbilityStringField при применении на заклинание у которого "одно" описание на все уровни, то бишь когда нет описаний на каждый уровень отдельно.
    Пометка: эта проблема связана с SLK оптимизацией.
  3. Добавлен метод реаллокации для описаний заклинаний с несколькими уровням, у которых отсутствуют тексты для всех уровней.
    Пример: "Ubertip=text", это значит, что заклинание на всех уровнях разделяет "text" как подсказку, однако внутри движка выделяется лишь 1 индекс.
  4. Пере-пере-исправлено SetDestructableZ, эта функция вновь сломалась из-за другого фикса для виджетов.
  5. Исправлены CreateBuff/UnitAddBuff/UnitAddBuffEx/UnitAddBuffById/UnitAddBuffByIdEx, которые не работали с SLK-оптимизированными картами.
  6. Добавлен хук на CreateImage, теперь эта функция использует CreateImageSimple как базу, чтобы смена размера более не ломала изображение.
3
20
3
A new version is out! Scroll to the resource

v1.1.0.152

  1. Новые Типы:
type destructablestringfield extends agentdatafield
  1. Новые Конверторы:
constant native ConvertDestructableStringField takes integer i returns destructablestringfield
  1. Новые Константы:
constant destructablestringfield DESTRUCTABLE_SF_NAME = ConvertDestructableStringField('bnam')
constant destructablestringfield DESTRUCTABLE_SF_MODEL = ConvertDestructableStringField('bfil')
  1. Удалённые Нативные Функции:
native GetEventDamageAbilityId takes nothing returns integer
  1. Новые Нативные Функции:
native GetGameVersion takes nothing returns string
native GetDestructableStringField takes destructable whichDestructable, destructablestringfield whichField returns string
native SetDestructableStringField takes destructable whichDestructable, destructablestringfield whichField, string value returns boolean
native ItemAddAbility takes item whichItem, ability whichAbility returns boolean
native ItemRemoveAbility takes item whichItem, ability whichAbility returns boolean
native ItemAddAbilityId takes item whichItem, integer abilCode returns boolean
native ItemRemoveAbilityId takes item whichItem, integer abilCode returns boolean
native GetProjectileSourceAbility takes projectile whichProjectile returns ability
  1. Проведён большой рефакторинг кода, полностью переписаны все методы логирования на утилизацию нового std::format для полного отброса строк C-стиля.
Пометка: это изменение повлекло увеличение веса на 200кб, так как std::format достаточно увесистый.
  1. BlzSetItemName теперь полноценно реализован с его SetItemStringField эквивалентом.
  2. BlzSetItemDescription теперь полноценно реализован с его SetItemStringField SetItemStringField эквивалентом.
  3. BlzGetItemDescription теперь полноценно реализован с его SetItemStringField SetItemStringField эквивалентом.
  4. BlzSetItemTooltip теперь полноценно реализован с его SetItemStringField SetItemStringField эквивалентом.
  5. BlzGetItemTooltip теперь полноценно реализован с его SetItemStringField SetItemStringField эквивалентом.
  6. BlzSetItemExtendedTooltip теперь полноценно реализован с его SetItemStringField SetItemStringField эквивалентом.
  7. BlzGetItemExtendedTooltip теперь полноценно реализован с его SetItemStringField SetItemStringField эквивалентом.
  8. BlzSetItemIconPath теперь полноценно реализован с его SetItemStringField SetItemStringField эквивалентом.
  9. BlzGetItemIconPath теперь полноценно реализован с его SetItemStringField SetItemStringField эквивалентом.
  10. BlzSetUnitName теперь полноценно реализован с его SetItemStringField SetUnitStringField эквивалентом.
  11. BlzSetHeroProperName теперь полноценно реализован с его SetItemStringField SetUnitStringField эквивалентом.
  12. GetDestructableName теперь будет возвращать нестандартное значение, если оно существует.
  13. GetItemName теперь будет возвращать нестандартное значение, если оно существует.
  14. GetUnitName теперь будет возвращать нестандартное значение, если оно существует.
  15. GetHeroProperName теперь будет возвращать нестандартное значение, если оно существует.
  16. Исправлено неправильное поведение события OnDamaged когда входящий урон был равен нулю, так как игра посылала общий указатель, который подвергался изменению через SetEventDamage, тем самым ломая почти всю игру.
  17. Исправлена критическая ошибка от RemoveDoodad.
  18. GetUnitPrimaryStat переименован в GetHeroPrimaryAttribute.
  19. SetUnitPrimaryStat переименован в SetHeroPrimaryAttribute.
  20. GetItemAbility переименован в GetItemAbilityById.
  21. HandleListGetHandleByTypeId переименован в HandleListGetHandleById.
  22. HandleListEnumByTypeId переименован в HandleListEnumById.
  23. HandleListEnumByTypeIdEx переименован в HandleListEnumByIdEx.
  24. HandleListForEachByTypeId переименован в HandleListForEachById.
  25. HandleListForEachByTypeIdEx переименован в HandleListForEachByIdEx.
  26. BlzItemAddAbility теперь полноценно реализован с его UjAPI эквивалентом ItemAddAbilityById.
  27. BlzItemRemoveAbility теперь полноценно реализован с его UjAPI эквивалентом ItemRemoveAbilityById.
1
29
О да! Больше гаек, болтов и прочего... Мои гаечные ключи так и ждут, когда начнут закручиваться гайки, болты. Да и отвёртка тоже в деле будет. Близзарды курят нервно в сторонке. Анрайз делает годное, что даже рефорджед переплюнуло. Рефорджед близзардасов не рефорджед. UjAPI - вот он истинный рефорджед, которого все хотели. Или нет.
По сему я скажу: WarCraft III ReUnryzed
1
20
1
A new version is out! Scroll to the resource

v1.1.0.153

  1. Исправлена критическая ошибка от GetBuffBaseStringFieldById.
  2. Исправлена критическая ошибка от SetBuffBaseStringFieldById.
1
20
1
A new version is out! Scroll to the resource

v1.1.0.154

  1. Удалено бесполезное логирование для ExecuteCode и схожих нативных функций.
3
20
3
A new version is out! Scroll to the resource

v1.1.0.155

  1. Исправлена обработка пустой строки, которая вызывала тихое закрытие игры.
    Пометка: это произошло из-за внутренней рекурсии, которую я же и создал, если получаемый текст был пустой или равен nullptr.
0
29
Чую,что ещё три hotfix'а будет)
1
20
1
A new version is out! Scroll to the resource

v1.1.0.156

  1. Переделана обработка OnDamage, дабы избежать новую проблему, из-за которой юниты становились неуязвимыми.
    Пометка: это было связано с предыдущим исправлением 0-левого урона.
Only a small set of comments around the pointed one shown. Go to actual.
To leave a comment please sign in to the site.