UjAPI

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

v1.1.0.156

  1. Переделана обработка OnDamage, дабы избежать новую проблему, из-за которой юниты становились неуязвимыми.
    Пометка: это было связано с предыдущим исправлением 0-левого урона.
20
Вышла новая версия!
Прокрутить к ресурсу

v1.1.0.155

  1. Исправлена обработка пустой строки, которая вызывала тихое закрытие игры.
    Пометка: это произошло из-за внутренней рекурсии, которую я же и создал, если получаемый текст был пустой или равен nullptr.
20
Вышла новая версия!
Прокрутить к ресурсу

v1.1.0.154

  1. Удалено бесполезное логирование для ExecuteCode и схожих нативных функций.
20
Вышла новая версия!
Прокрутить к ресурсу

v1.1.0.153

  1. Исправлена критическая ошибка от GetBuffBaseStringFieldById.
  2. Исправлена критическая ошибка от SetBuffBaseStringFieldById.
29
О да! Больше гаек, болтов и прочего... Мои гаечные ключи так и ждут, когда начнут закручиваться гайки, болты. Да и отвёртка тоже в деле будет. Близзарды курят нервно в сторонке. Анрайз делает годное, что даже рефорджед переплюнуло. Рефорджед близзардасов не рефорджед. UjAPI - вот он истинный рефорджед, которого все хотели. Или нет.
По сему я скажу: WarCraft III ReUnryzed
Ресурс предназначенный для логирования изменений в проекте UjAPI, а так же для краткого ознакомления со внесёнными изменениями.
90 2 144
20
Вышла новая версия!
Прокрутить к ресурсу

v1.1.0.155

  1. Исправлена обработка пустой строки, которая вызывала тихое закрытие игры.
    Пометка: это произошло из-за внутренней рекурсии, которую я же и создал, если получаемый текст был пустой или равен nullptr.
20
Вышла новая версия!
Прокрутить к ресурсу

v1.1.0.154

  1. Удалено бесполезное логирование для ExecuteCode и схожих нативных функций.
20
Вышла новая версия!
Прокрутить к ресурсу

v1.1.0.153

  1. Исправлена критическая ошибка от GetBuffBaseStringFieldById.
  2. Исправлена критическая ошибка от SetBuffBaseStringFieldById.
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.