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

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

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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
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, ранее возвращала неверные значения кнопки мышки.
4
20
2 года назад
Отредактирован Unryze
4
Вышла новая версия! Прокрутить к ресурсу

v1.0.10.49

  1. Новые Типы:
type missile extends agent
type playermissileevent extends eventid
  1. Новые Конверторы:
constant native ConvertPlayerMissileEvent takes integer i returns playermissileevent
  1. Новые Константы:
constant playermissileevent EVENT_PLAYER_MISSILE_LAUNCH = ConvertPlayerMissileEvent(600)
constant playermissileevent EVENT_PLAYER_MISSILE_HIT = ConvertPlayerMissileEvent(601)
  1. Новые Нативные Функции:
native KillMissile takes missile whichMissile returns nothing
native IsMissileVisible takes missile whichMissile returns boolean
native SetMissileVisibility takes missile whichMissile, boolean visibility returns nothing
native GetMissileX takes missile whichMissile returns real
native SetMissileX takes missile whichMissile, real x returns nothing
native GetMissileY takes missile whichMissile returns real
native SetMissileY takes missile whichMissile, real y returns nothing
native GetMissileZ takes missile whichMissile returns real
native SetMissileZ takes missile whichMissile, real z returns nothing
native GetMissileHeight takes missile whichMissile returns real
native SetMissileHeight takes missile whichMissile, real height returns nothing
native GetMissilePositionLocation takes missile whichMissile returns location
native SetMissilePositionWithZ takes missile whichMissile, real x, real y, real z returns nothing
native SetMissilePosition takes missile whichMissile, real x, real y returns nothing
native SetMissilePositionLocation takes missile whichMissile, location loc returns nothing
native GetMissileScale takes missile whichMissile returns real
native SetMissileScale takes missile whichMissile, real scale returns nothing
native GetMissileTimeScale takes missile whichMissile returns real
native SetMissileTimeScale takes missile whichMissile, real timescale returns nothing
native GetMissileColour takes missile whichMissile returns integer
native SetMissileColour takes missile whichMissile, integer colour returns boolean
native SetMissileAlpha takes missile whichMissile, integer alpha returns boolean
native SetMissileVertexColour takes missile whichMissile, integer red, integer green, integer blue, integer alpha returns boolean
native SetMissileAnimationWithRarityByIndex takes missile whichMissile, integer animIndex, raritycontrol rarity returns nothing
native SetMissileAnimationWithRarity takes missile whichMissile, string animation, raritycontrol rarity returns nothing
native SetMissileAnimationByIndex takes missile whichMissile, integer animIndex returns nothing
native SetMissileAnimation takes missile whichMissile, string animation returns nothing
native QueueMissileAnimationByIndex takes missile whichMissile, integer animIndex returns nothing
native QueueMissileAnimation takes missile whichMissile, string animation returns nothing
native ResetMissileMatrix takes missile whichMissile returns nothing
native SetMissileOrientationEx takes missile whichMissile, real yaw, real pitch, real roll, integer eulerOrder returns boolean
native GetMissileYaw takes missile whichMissile returns real
native SetMissileYaw takes missile whichMissile, real yaw returns boolean
native GetMissileFacing takes missile whichMissile returns real
native SetMissileFacing takes missile whichMissile, real facing returns boolean
native GetMissilePitch takes missile whichMissile returns real
native SetMissilePitch takes missile whichMissile, real pitch returns boolean
native GetMissileRoll takes missile whichMissile returns real
native SetMissileRoll takes missile whichMissile, real roll returns boolean
native SetMissileOrientation takes missile whichMissile, real yaw, real pitch, real roll returns nothing
native SetMissileModel takes missile whichMissile, string modelName returns nothing
native SetMissileModelEx takes missile whichMissile, string modelName, integer playerColour returns nothing
native GetMissileSource takes missile whichMissile returns unit
native SetMissileSource takes missile whichMissile, unit whichUnit returns nothing
native GetMissileTarget takes missile whichMissile returns widget
native SetMissileTarget takes missile whichMissile, widget whichWidget returns nothing
native GetMissileAttackType takes missile whichMissile returns attacktype
native SetMissileAttackType takes missile whichMissile, attacktype whichAttackType returns nothing
native GetMissileDamage takes missile whichMissile returns real
native SetMissileDamage takes missile whichMissile, real damage returns nothing
native GetMissileSpeed takes missile whichMissile returns real
native SetMissileSpeed takes missile whichMissile, real speed returns nothing
native GetMissileArc takes missile whichMissile returns real
native SetMissileArc takes missile whichMissile, real arc returns nothing
native GetMissileWeaponType takes missile whichMissile returns weapontype
native SetMissileWeaponType takes missile whichMissile, weapontype whichWeaponType returns nothing
native GetMissileDamageType takes missile whichMissile returns damagetype
native SetMissileDamageType takes missile whichMissile, damagetype whichDamageType returns nothing
native GetMissileDamageFlags takes missile whichMissile returns integer
native SetMissileDamageFlags takes missile whichMissile, integer flags returns nothing
native SaveMissileHandle takes hashtable whichHashtable, integer parentKey, integer childKey, missile whichMissile returns boolean
native LoadMissileHandle takes hashtable whichHashtable, integer parentKey, integer childKey returns missile
native GetTriggerMissile takes nothing returns missile
native GetTriggerMissileSource takes nothing returns unit
native GetTriggerMissileTarget takes nothing returns unit
native TriggerRegisterPlayerMissileEvent takes trigger whichTrigger, player whichPlayer, playermissileevent whichMissileEvent returns event
  1. Исправлены все получатели/установщики типов атаки/урона/оружия, теперь они используют соответствующие хендлы заместо типа integer.
  2. Все нативные функции связанные с главным аттрибутом героя теперь используют тип heroattribute заместо типа integer.
  3. Исправлена нативная функция GetTriggerFrameReal вызванная при ивенте MOUSE_WHEEL, теперь она возвращает дельту мышки, как на Рефорджеде.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.