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

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

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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Этот комментарий удален
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 пишется. Велосипед изобретал вместо готовой либы?)
Провтыкал. Поправлю По поводу "готовой" либы не понял, ибо какие готовые либы и на что...?
38
Думал, формат времени из строки-шаблона планируешь делать (есть готовый strftime)
20
Думал, формат времени из строки-шаблона планируешь делать (есть готовый strftime)
Это я может и добавлю тоже, просто это стандартное получение просто времени, а дальше юзверь может что угодно делать. Это Jass, а не lua, тут нужна максимальная простота. :D
19
На счёт Jass, а не Lua, я хз, как будет работать синхронизация на Lua, т.к. ты её реализовал по имени переменной. :D
20
На счёт Jass, а не Lua, я хз, как будет работать синхронизация на Lua, т.к. ты её реализовал по имени переменной. :D
Оно строго берёт значения из джасс, ей пофиг на луа. Технически я могу и под луа это сделать... но желания 0.
19
Я так и понял. Не проще ли тогда было сделать, чтобы она принимала не название переменной, а её значение?

Хотяяя, с другой стороны, у нас есть доступ к Jass переменным из Lua, так что временно пофиг. 😁
20
Я так и понял. Не проще ли тогда было сделать, чтобы она принимала не название переменной, а её значение?

Хотяяя, с другой стороны, у нас есть доступ к Jass переменным из Lua, так что временно пофиг. 😁
И куда мне это значение синхать? Пример кода:
globals
    integer GlobalInteger = 0
endglobals

function TestSync takes nothing returns nothing
    if GetLocalPlayer( ) == Player( 0 ) then
        set GlobalInteger = 999
        call SyncInteger( "GlobalInteger" )
    endif
endfunction
20
Вышла новая версия! Прокрутить к ресурсу

v1.0.6.34

  1. Новые Типы:
type variabletype extends handle
  1. Новые Конверторы:
constant native ConvertVariableType takes integer i returns variabletype
  1. Новые Константы:
constant variabletype VARIABLE_TYPE_NOTHING = ConvertVariableType(0)
constant variabletype VARIABLE_TYPE_UNKNOWN = ConvertVariableType(1)
constant variabletype VARIABLE_TYPE_NULL = ConvertVariableType(2)
constant variabletype VARIABLE_TYPE_CODE = ConvertVariableType(3)
constant variabletype VARIABLE_TYPE_INTEGER = ConvertVariableType(4)
constant variabletype VARIABLE_TYPE_REAL = ConvertVariableType(5)
constant variabletype VARIABLE_TYPE_STRING = ConvertVariableType(6)
constant variabletype VARIABLE_TYPE_HANDLE = ConvertVariableType(7)
constant variabletype VARIABLE_TYPE_BOOLEAN = ConvertVariableType(8)
constant variabletype VARIABLE_TYPE_INTEGER_ARRAY = ConvertVariableType(9)
constant variabletype VARIABLE_TYPE_REAL_ARRAY = ConvertVariableType(10)
constant variabletype VARIABLE_TYPE_STRING_ARRAY = ConvertVariableType(11)
constant variabletype VARIABLE_TYPE_HANDLE_ARRAY = ConvertVariableType(12)
constant variabletype VARIABLE_TYPE_BOOLEAN_ARRAY = ConvertVariableType(13)
  1. Новые Нативные Функции:
native GetSyncedVariableType takes nothing returns variabletype
native GetSyncedVariableName takes nothing returns string
native GetSyncedInteger takes nothing returns integer
native GetSyncedReal takes nothing returns real
native GetSyncedString takes nothing returns string
native GetSyncedHandle takes nothing returns handle
native GetSyncedBoolean takes nothing returns boolean
native TriggerRegisterPlayerVariableSyncEvent takes trigger whichTrigger, player whichPlayer, string variableName returns event
native GetSyncSavedVariableType takes nothing returns variabletype
native GetSyncSavedHashtable takes nothing returns hashtable
native GetSyncSavedParentKey takes nothing returns integer
native GetSyncSavedChildKey takes nothing returns integer
native TriggerRegisterPlayerHashtableDataSyncEvent takes trigger whichTrigger, player whichPlayer, hashtable whichHashtable returns event
native GetTriggerFrameVariableType takes nothing returns variabletype
native GetTriggerFrameInteger takes nothing returns integer
native GetTriggerFrameReal takes nothing returns real
native GetTriggerFrameBoolean takes nothing returns boolean
native GetTriggerFrameString takes nothing returns string
native GetMouseScreenX takes nothing returns real
native GetMouseScreenY takes nothing returns real
native SetMouseScreenX takes real x returns nothing
native SetMouseScreenY takes real y returns nothing
native SetMouseScreenPosition takes real x, real y returns nothing
native GetMouseScreenPixelX takes nothing returns integer
native GetMouseScreenPixelY takes nothing returns integer
native SetMouseScreenPixelX takes integer x returns nothing
native SetMouseScreenPixelY takes integer y returns nothing
native SetMouseScreenPixelPosition takes integer x, integer y returns nothing
native GetMouseWorldX takes nothing returns real
native GetMouseWorldY takes nothing returns real
native GetMouseWorldZ takes nothing returns real
  1. Исправлен обработчик Net пакетов синхронизации, теперь он более не сталкивается с оригинальным обработчиком, приводя к потере пакетов.
  2. Исправлена критическая ошибка вызываемая этими нативными функциями:
native SilenceAbility takes ability whichAbility, boolean hide, boolean disable returns nothing
native UnsilenceAbility takes ability whichAbility, boolean show, boolean enable returns nothing
23
Unryze, Эти variabletype позволяют менять типы переменных в процессе исполнения кода, что ли? Или это просто для базы данных типов объектов? Если первое, то это очень удобно.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.