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++ 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, вот так:
скриншоты

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

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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Этот комментарий удален
38
Или бахнуть на webview xD
20
Ev3nt, ну это то понятно.
Unryze, что ж, это хорошо, что планируете. Если хотите сделать красивый лаунчер, с красивыми кнопками, рамкой, фоном и т д - пишите в лс, попробую помочь, нарисовать. Только мне потребуется эскиз и список картинок с параметрами: формат и размер в пикселях. За основу возьму интерфейс главного меню вк3.
Спасибо, но стилистику War 3 я вряд ли в целом буду использовать, текущий лаунчер - просто пустышка, визуально будет конечно переделываться. По дизайну я склоняюсь ближе к лаунчеру Battle.net, нежели именно Вар 3 тематики, но когда руки до этого дойдут, буду знать к кому обращаться. :)
30
Спасибо, но стилистику War 3 я вряд ли в целом буду использовать
И правильно, на лаунчер не нужно луюбоваться, им пользоваться нужно. ИМХО нарисовать всё на системном ui с поддержкой тем и обязательно опциональную восьмибитную музычку.
20
Вышла новая версия! Прокрутить к ресурсу

v1.0.1.9

  1. Новые нативные функции:
    native ForceHasPlayer takes force whichForce, player whichPlayer returns boolean
    native ForceCountPlayers takes force whichForce returns integer
    native GetUnitBuff takes unit whichUnit, integer buffId returns buff
    native GetUnitBuffLevel takes unit whichUnit, integer buffId returns integer
    native GetBuffLevel takes buff whichBuff returns integer
    native RefreshBuff takes buff whichBuff returns boolean
    native SetBuffDuration takes buff whichBuff, real duration returns boolean
  1. Исправлена ошибка по которой утекало 20 байт в CScriptEvent ввиду повторного выделения памяти.
  2. Исправлено неверное название нативной функции (SetFrameFront) на SetFrameFont.
  3. Включены эти нативные функции:
    1. TriggerRegisterFrameEvent
    2. GetTriggerFrame
    3. GetTriggerFrameEvent
  4. Исправлена критическая ошибка, если была использована какая-либо нативная функция фреймов, где в аргументах фигурировал string.
  5. Все кейсы HotKey исправлены на Hotkey.
  6. Все новые геттеры и сеттеры связанные с кнопками используют тип oskeytype.
  7. MorphUnitToTypeIdEx расшифрована, теперь все аргументы имеют правильные названия.
  8. Исправлена ошибка, по которой новые нативки работали лишь у хоста в локальной/игре по сети.
  9. Исправлен запуск w3l и прочих сторонних "запускаторов" игры через UjAPI.exe.
    Пометка: сторонние "запускаторы" не поддерживают мульти-окно и War3Lua дебаг режим, для их работы нужно запускать игру через war3.exe и прочее.
  10. Добавлен модуль War3_Lua.dll в папку Modules.
20
Вышла новая версия! Прокрутить к ресурсу

v1.0.2.12

  1. Новые нативные функции:
    native SaveFrameHandle takes hashtable table, integer parentKey, integer childKey, framehandle whichFrame returns boolean
    native LoadFrameHandle takes hashtable table, integer parentKey, integer childKey returns framehandle

    native GetEventPreDamage takes nothing returns real
  1. Весь common.j был отредактирован и "оттабулирован" (это изменение никак не влияет на производительность, только на семантику и синтаксис).
  2. Нативные функции GroupAddGroupEx и GroupRemoveGroupEx теперь возвращают целочисленное значение, вместо флага (то есть сколько юнитов было добавлено/удалено).
  3. Добавлены новые нативные типы вместе с их конвертаторами и глобальными константами:
    type abilityintegerfield extends handle
    type abilityrealfield extends handle
    type abilitybooleanfield extends handle
    type abilitystringfield extends handle
    type abilityintegerlevelfield extends handle
    type abilityreallevelfield extends handle
    type abilitybooleanlevelfield extends handle
    type abilitystringlevelfield extends handle
    type abilityintegerlevelarrayfield extends handle
    type abilityreallevelarrayfield extends handle
    type abilitybooleanlevelarrayfield extends handle
    type abilitystringlevelarrayfield extends handle
    type unitintegerfield extends handle
    type unitrealfield extends handle
    type unitbooleanfield extends handle
    type unitstringfield extends handle
    type unitweaponintegerfield extends handle
    type unitweaponrealfield extends handle
    type unitweaponbooleanfield extends handle
    type unitweaponstringfield extends handle
    type itemintegerfield extends handle
    type itemrealfield extends handle
    type itembooleanfield extends handle
    type itemstringfield extends handle
  1. Исправлена критическая ошибка от нативной функции CreateFrameByType на патче 1.27a.
  2. Исправлены все нативные функции SpecialEffectAPI, большинство из них не работало/вызывало краш.
30
только на сменатику и синтаксис
Сменатика очень важна для для работы)
20
Вышла новая версия! Прокрутить к ресурсу
только на сменатику и синтаксис
Сменатика очень важна для для работы)
Ой, произошла дислексия, вместо "семантика" написал какого-то смегола. Спасибо, поправлю. :)

v1.0.3.15

  1. Исправлена критическая ошибка от нативных функций имеющих string в аргументах из Item API.
  2. Новые нативные функции:
    native BitwiseNOT takes integer i returns integer
    native BitwiseAND takes integer bit1, integer bit2 returns integer
    native BitwiseOR takes integer bit1, integer bit2 returns integer
    native BitwiseXOR takes integer bit1, integer bit2 returns integer
    native BitwiseShiftLeft takes integer bit1, integer bitsToShift returns integer
    native BitwiseShiftRight takes integer bit1, integer bitsToShift returns integer
    native Id2String takes integer i returns string
    native String2Id takes string idString returns integer
    native GetUnitBaseDescriptionById takes integer unitTypeId returns string
    native SetUnitBaseDescriptionById takes integer unitTypeId, string name returns nothing
    native GetUnitBaseIconById takes integer unitTypeId returns string
    native SetUnitBaseIconById takes integer unitTypeId, string name returns nothing
    native GetUnitBaseDescription takes unit whichUnit returns string
    native SetUnitBaseDescription takes unit whichUnit, string name returns nothing
    native GetUnitBaseIcon takes unit whichUnit returns string
    native SetUnitBaseIcon takes unit whichUnit, string name returns nothing
    native GetItemBaseDescriptionById takes takes integer itemId returns string
    native SetItemBaseDescriptionById takes integer itemId, string name returns nothing
    native GetItemBaseDescription takes item whichItem returns string
    native SetItemBaseDescription takes item whichItem, string name returns nothing
  1. Внутренние флаги MorphUnitToTypeId isUpdateHealthState, isUpdateManaState и isResetBuildingAnimation теперь являются "истиной", ранее были "ложью".
  2. MorphUnitToTypeId теперь также восстанавливает "белое" значение атаки до оригинального показателя.
  3. SetUnitBaseProperNameById изменена последовательность аргументов на "unit, integer, string" заместо "unit, string, integer".
  4. Исправлены все "сеттеры" для SpecialEffectAPI.
  5. Исправлены эти нативные функции:
    native GroupGetUnitByIndex takes group whichGroup, integer index returns unit
    native GroupForEachUnit takes group whichGroup returns unit
    native GroupAddGroupEx takes group destGroup, group sourceGroup returns integer
    native GroupRemoveGroupEx takes group destGroup, group sourceGroup returns integer
20
Вышла новая версия! Прокрутить к ресурсу

v1.0.4.22

  1. Нативная функция IsAbilityShown переименована в IsAbilityVisible.
  2. Все возвращаемые типы сеттеров в AbilityAPI были изменены с "integer" на "nothing", ввиду того, что возвращаемые данные были не валидными.
  3. Новые нативные функции:
    native I2C takes integer i returns code
    native C2I takes code c returns integer
    native MathRound takes real r returns integer
    native MathRealRound takes real r returns real
    native MathRealFloor takes real r returns real
    native MathRealCeil takes real r returns real
    native MathRealAbs takes real r returns real
    native MathRealLog takes real r returns real
    native MathRealLn takes real r returns real
    native MathIntegerAbs takes integer i returns integer
    native MathIntegerLog takes integer i returns real
    native MathIntegerLn takes integer i returns real
    native StringContains takes string s, string whichString returns boolean
    native StringFind takes string s, string whichString returns integer
    native StringFindFirstOf takes string s, string whichString returns integer
    native StringFindFirstNotOf takes string s, string whichString returns integer
    native StringFindLastOf takes string s, string whichString returns integer
    native StringFindLastNotOf takes string s, string whichString returns integer
    native IsOperationLimitEnabled takes nothing returns boolean
    native EnableOperationLimit takes boolean enable returns nothing
    native ExecuteFuncEx takes string funcName returns nothing
    native GetUnitDamageReduction takes unit whichUnit returns real
    native IsUnitAbilityVisible takes unit whichUnit, integer abilityId returns integer
    native ShowUnitAbility takes unit whichUnit, integer abilityId, boolean flag returns nothing
  4. Расшифрованы эти нативные функции:
    native SilenceAbility takes ability whicAbility, boolean hide, boolean disable returns nothing
    native UnsilenceAbility takes ability whicAbility, boolean show, boolean enable returns nothing
Теперь аргументы этих функций имеют нормальные названия.
  1. Исправлена нативная функция GetUnitAblity, по каким-то причинам, она не брала заклинания выше 1 уровня.
  2. Пере-пере-исправлены сеттеры x/y/z в SpecialEffectAPI.
  3. Исправлена неправильная проверка флагов в нативной функции IsAbilityOnCooldown.
  4. Исправлена неправильная проверка флагов в нативной функции IsFrameVisible.
  5. Исправлена нативная функция SetUnitCurrentSight.
  6. TriggerRegisterFrameEvent теперь работает верно и полноценно создаёт новый ивент для заданного фрейма.
    Пометка: пока что реализованы не все ивенты, а так же эти ивенты пока что локальные, однако скоро они будут работать и в мультиплеере.
  7. Исправлена критическая ошибка когда Нейтральный Пассивный игрок был подвержен урону.
  8. Исправлена критическая ошибка при запуске карты на 1.28.5.
20
Вышла новая версия! Прокрутить к ресурсу

v1.0.5.31

  1. Новые типы:
    type timetype extends handle
  2. Новые конвертеры:
    constant native ConvertTimeType takes integer i returns timetype
  3. Новые константы:
    constant timetype TIME_TYPE_YEAR = ConvertTimeType( 0 )
    constant timetype TIME_TYPE_MONTH = ConvertTimeType( 1 )
    constant timetype TIME_TYPE_DAY_OF_WEEK = ConvertTimeType( 2 )
    constant timetype TIME_TYPE_DAY = ConvertTimeType( 3 )
    constant timetype TIME_TYPE_HOUR = ConvertTimeType( 4 )
    constant timetype TIME_TYPE_MINUTE = ConvertTimeType( 5 )
    constant timetype TIME_TYPE_SECOND = ConvertTimeType( 6 )
    constant timetype TIME_TYPE_MILLISECOND = ConvertTimeType( 7 )
  4. Новые нативные функции:
    native GetSystemTime takes timetype whichTimeType returns integer
    native GetLocalTime takes timetype whichTimeType returns integer
    native ExecuteCode takes code c returns nothing
    native SyncInteger takes string variableName returns nothing
    native SyncReal takes string variableName returns nothing
    native SyncBoolean takes string variableName returns nothing
    native SyncString takes string variableName returns nothing
    native SyncHandle takes string variableName returns nothing
    native SyncSavedInteger takes hashtable table, integer parentKey, integer childKey returns nothing
    native SyncSavedReal takes hashtable table, integer parentKey, integer childKey returns nothing
    native SyncSavedBoolean takes hashtable table, integer parentKey, integer childKey returns nothing
    native SyncSavedHandle takes hashtable table, integer parentKey, integer childKey returns nothing
    native SyncSavedString takes hashtable table, integer parentKey, integer childKey returns nothing
  5. Улучшение кода и увеличение производительности.
38
Millisecond - с двумя l пишется. Велосипед изобретал вместо готовой либы?)
20
Millisecond - с двумя l пишется. Велосипед изобретал вместо готовой либы?)
Провтыкал. Поправлю По поводу "готовой" либы не понял, ибо какие готовые либы и на что...?
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.