UjAPI

UjAPI — полноценная модификация для Warcraft III версий 1.24e/1.26а/1.27a/1.27b/1.28f кардинально расширяющая функционал игры, добавляющая новые native-функции и типы доступные в редакторе, исправляющая известные проблемы (утечки, неработающие функции и т.п.)
Дополнительно планируется интегрировать и другие проекты, такие как UjAPI - AngelScript, War3 LUA.
В данный момент для тестов и нахождения недочётов доступен альфа-релиз.
Лауреат премии 2023 года
347 7 868
20
Вышла новая версия!
Прокрутить к ресурсу

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.
20
Вышла новая версия!
Прокрутить к ресурсу

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 как базу, чтобы смена размера более не ломала изображение.
20
Unryze, когда автотесты?
Надеюсь никогда. )0
20
Вышла новая версия!
Прокрутить к ресурсу

v1.0.39.145

  1. Исправлено SetSpecialEffectX/Y/Z, предыдущее исправление для SetWidgetX/Y/Z повлияло на эту ошибку.
38
Нужно instanceof в мире хендлов)
Ресурс предназначенный для логирования изменений в проекте UjAPI, а так же для краткого ознакомления со внесёнными изменениями.
90 2 144
20
Вышла новая версия!
Прокрутить к ресурсу

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 как базу, чтобы смена размера более не ломала изображение.
20
Вышла новая версия!
Прокрутить к ресурсу

v1.0.39.145

  1. Исправлено SetSpecialEffectX/Y/Z, предыдущее исправление для SetWidgetX/Y/Z повлияло на эту ошибку.
Ресурс посвящённый важным темам связанным с проектом UjAPI, созданный для удобства навигации и поиска информации на интересующие вас вопросы по данному проекту.
13 3 455