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

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

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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
18
2 года назад
0
Unryze, кастинг типов... тайпкастер... это очень тяжело для меня))) но я так понял, типы можно только определять, но не менять самому.
2
20
2 года назад
2
Unryze, кастинг типов... тайпкастер... это очень тяжело для меня))) но я так понял, типы можно только определять, но не менять самому.
Тип переменной менять то можно, но это бессмысленно на уровне джасс кода, ибо потом начнётся вакханалия, что старые данные пытаются обращаться к integer типу, а там уже сидит real.
1
37
2 года назад
1
Когда хромиум встроите?)
0
18
2 года назад
0
Unryze, Здесь согласен, но это бы упростило написание кода, чтобы не создавать кучу локалок разных типов.
3
20
2 года назад
3
Когда хромиум встроите?)
Та за шо… :(
EugeAl:
Unryze, Здесь согласен, но это бы упростило написание кода, чтобы не создавать кучу локалок разных типов.
Ну, это как раз приблизило бы к С#/JS стилю, но это потребует очень много усилий для «исправлений», которые вряд ли того стоят. :(
Ибо эта логика как раз с handle типом, который является общим, просто функции которые требует дочерний класс, его не примут, но наоборот можно. Но эту проблему решает HandleToUnit и прочие функции, что я добавил. (Это и есть тайпкаст).
0
18
2 года назад
0
Unryze, окей, понял.
0
20
2 года назад
0
EugeAl, есть lua или tstl.
Если сильно замотивтруете, мб сделаю tstl штуку, где можно писать ООП код
0
19
2 года назад
0
Kokomi, ясно, теперь и тут свой транспилятор распространяет. The cult of tstl. 😂
3
20
2 года назад
Отредактирован Unryze
3
Вышла новая версия! Прокрутить к ресурсу

v1.0.7.36

Список изменений:
  1. Добавлен Авто Апдейтер (пока что он работает в "тихом" режиме при нажатии кнопки "Yes").
  2. Исправлены критические ошибки связанные с CreateFrameByType.
  3. Исправлены критические ошибки связанные с SetFrameTexture.
  4. Исправлена нерабочая нативная функция SetFrameVertexColour связанная с CSimpleStatusBar.
  5. Исправлен NetCode обработчик, который ломался если два или более игрока одновременно отсылали пакеты.
  6. Добавлена новая опция IsNoWarnings для LUA.
  7. Настройки LUA были вынесены в отдельную секцию.
3
20
2 года назад
3
Вышла новая версия! Прокрутить к ресурсу

v1.0.8.39

  1. Новые Константы:
constant raritycontrol RARITY_QUEUE = ConvertRarityControl(2)
constant oskeytype OSKEY_LBUTTON = ConvertOsKeyType(0x01)
constant oskeytype OSKEY_RBUTTON = ConvertOsKeyType(0x02)
constant oskeytype OSKEY_CANCEL = ConvertOsKeyType(0x03)
constant oskeytype OSKEY_MBUTTON = ConvertOsKeyType(0x04)
constant oskeytype OSKEY_XBUTTON1 = ConvertOsKeyType(0x05)
constant oskeytype OSKEY_XBUTTON2 = ConvertOsKeyType(0x06)
constant oskeytype OSKEY_UNDEFINED = ConvertOsKeyType(0x07)
constant integer META_KEY_NONE = 0
constant integer META_KEY_SHIFT = 1
constant integer META_KEY_CONTROL = 2
constant integer META_KEY_ALT = 4
constant integer META_KEY_WINDOWS = 8
constant playerevent EVENT_PLAYER_MOUSE_DOWN = ConvertPlayerEvent(305)
constant playerevent EVENT_PLAYER_MOUSE_UP = ConvertPlayerEvent(306)
constant playerevent EVENT_PLAYER_MOUSE_MOVE = ConvertPlayerEvent(307)
constant playerevent EVENT_PLAYER_SYNC_DATA = ConvertPlayerEvent(309) currently not active
constant playerevent EVENT_PLAYER_KEY = ConvertPlayerEvent(311)
constant playerevent EVENT_PLAYER_KEY_DOWN = ConvertPlayerEvent(312)
constant playerevent EVENT_PLAYER_KEY_UP = ConvertPlayerEvent(313)
  1. Новые Нативные Функции:
native GetFramePriority takes framehandle whichFrame returns integer
native SetFrameSpriteAnimationWithRarityByIndex takes framehandle whichFrame, integer animIndex, integer rarity returns nothing
native SetFrameSpriteAnimationByIndex takes framehandle whichFrame, integer animIndex returns nothing
native QueueFrameSpriteAnimationByIndex takes framehandle whichFrame, integer animIndex returns nothing
native SetFrameSpriteAnimationWithRarity takes framehandle whichFrame, string animationName, integer rarity returns nothing
native SetFrameSpriteAnimation takes framehandle whichFrame, string animationName returns nothing
native QueueFrameSpriteAnimation takes framehandle whichFrame, string animationName returns nothing
native GetTriggerSyncPrefix takes nothing returns string
native GetTriggerSyncData takes nothing returns string
native SendSyncData takes string prefix, string data returns boolean
native TriggerRegisterPlayerSyncEvent takes trigger whichTrigger, player whichPlayer, string prefix, boolean fromServer returns event
native GetTriggerPlayerKey takes nothing returns oskeytype
native GetTriggerPlayerMetaKey takes nothing returns integer
native GetTriggerPlayerIsKeyDown takes nothing returns boolean
native TriggerRegisterPlayerKeyEvent takes trigger whichTrigger, player whichPlayer, oskeytype whichKey, integer whichMetaKey, boolean isKeyDown returns event
native PauseUnitEx takes unit whichUnit, boolean flag returns nothing this is pretty much a copy of SetUnitStunned
native GetTriggerPlayerMouseWorldX takes nothing returns real
native GetTriggerPlayerMouseWorldY takes nothing returns real
native GetTriggerPlayerMouseWorldZ takes nothing returns real
native GetTriggerPlayerMouseScreenX takes nothing returns real
native GetTriggerPlayerMouseScreenY takes nothing returns real
  1. Исправлена критическая ошибка, если были слишком быстро/одновременно вызваны новые нативные функции синхронизации (как пример вызов синхронизации по ,01 таймеру).
  2. Все нативные функции связанные с анимациями с раритетом теперь используют тип raritycontrol тип вместо integer.
  3. Исправлена нативная функция SetUnitStunned, она более не перекрывает саму себя и не устанавливает неверные флаги.
2
20
2 года назад
2
Вышла новая версия! Прокрутить к ресурсу

v1.0.9.44

  1. Новые Типы:
type mousebuttontype extends handle
  1. Новые Константы:
constant mousebuttontype MOUSE_BUTTON_TYPE_LEFT = ConvertMouseButtonType(1)
constant mousebuttontype MOUSE_BUTTON_TYPE_MIDDLE = ConvertMouseButtonType(2)
constant mousebuttontype MOUSE_BUTTON_TYPE_RIGHT = ConvertMouseButtonType(3)
  1. Новые Конверторы:
constant native ConvertMouseButtonType takes integer i returns mousebuttontype
  1. Новые Нативные Функции:
native GetTriggerPlayerMouseButton takes nothing returns mousebuttontype
native GetFrameSpriteScale takes framehandle whichFrame returns real
native SetFrameSpriteScale takes framehandle whichFrame, real scale returns nothing
native GetFrameSpriteTimeScale takes framehandle whichFrame returns real
native SetFrameSpriteTimeScale takes framehandle whichFrame, real timescale returns nothing
native GetFrameSpriteColour takes framehandle whichFrame returns integer
native SetFrameSpriteColour takes framehandle whichFrame, integer colour returns boolean
native SetFrameSpriteAlpha takes framehandle whichFrame, integer alpha returns boolean
native SetFrameSpriteVertexColour takes framehandle whichFrame, integer red, integer green, integer blue, integer alpha returns boolean
native SetFrameSpriteOrientationEx takes framehandle whichFrame, real yaw, real pitch, real roll, integer eulerOrder returns boolean
native GetFrameSpriteYaw takes framehandle whichFrame returns real
native SetFrameSpriteYaw takes framehandle whichFrame, real yaw returns boolean
native GetFrameSpriteFacing takes framehandle whichFrame returns real
native SetFrameSpriteFacing takes framehandle whichFrame, real facing returns boolean
native GetFrameSpritePitch takes framehandle whichFrame returns real
native SetFrameSpritePitch takes framehandle whichFrame, real pitch returns boolean
native GetFrameSpriteRoll takes framehandle whichFrame returns real
native SetFrameSpriteRoll takes framehandle whichFrame, real roll returns boolean
native SetFrameSpriteOrientation takes framehandle whichFrame, real yaw, real pitch, real roll returns nothing
native SetFrameSpriteModel takes framehandle whichFrame, string modelName returns nothing
native SetFrameSpriteModelEx takes framehandle whichFrame, string modelName, integer playerColour returns nothing
  1. Исправлена критическая ошибка при пинга по миникарте.
  2. Исправлено событие MOUSE_MOVE, которое поглощало все другие действия, приводя как игнорированию других комманд.
  3. Исправлена критическая ошибка от нативной функции SetFrameTooltip.
  4. Исправлена нерабочая нативная функция SetFrameEnabled.
  5. Исправлена нативная функция GetTriggerFrameEvent, ранее возвращала неверные значения.
  6. Исправлена нативная функция GetTriggerPlayerKey, ранее возвращала неверные значения кнопки мышки.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.