10 oct
2022

UjAPI

Added by , published


Данный ресурс работает ТОЛЬКО с патчами 1.24e/1.26а/1.27a/1.27b/1.28f

Как пользоваться?

  1. Распакуйте все файлы из архива, желательно в отдельную папку, вот так:
скриншоты
  1. Запустите UjAPI.exe.
    • Если же у вас приложение не запускается, то скачайте и установите: .NET Framework 4.7.2.
    • Если же ни в игре, ни в World Editor UjAPI не работает, то скачайте и установите: C++ Redistributables 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
  1. Готово, вы можете теперь смело запускать как игру, так и World Editor через UjAPI Launcher.
    • Для использования оконного режима в Warcraft III нажмите галочку на "Additional command line arguments" и в появившееся окно, пропишите -window, вот так:
скриншоты

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

1
Голосов: 1
ScorpioT1000 - 2 weeks ago
1
Голосов: 1
Когда хромиум встроите?)
0
Голосов: 0
EugeAl - 2 weeks ago
0
Голосов: 0
Unryze, Здесь согласен, но это бы упростило написание кода, чтобы не создавать кучу локалок разных типов.
2
Голосов: 2
Unryze - 2 weeks ago
2
Голосов: 2
Когда хромиум встроите?)
Та за шо… :(
EugeAl:
Unryze, Здесь согласен, но это бы упростило написание кода, чтобы не создавать кучу локалок разных типов.
Ну, это как раз приблизило бы к С#/JS стилю, но это потребует очень много усилий для «исправлений», которые вряд ли того стоят. :(
Ибо эта логика как раз с handle типом, который является общим, просто функции которые требует дочерний класс, его не примут, но наоборот можно. Но эту проблему решает HandleToUnit и прочие функции, что я добавил. (Это и есть тайпкаст).
0
Голосов: 0
0
Голосов: 0
Kokomi - 2 weeks ago
0
Голосов: 0
EugeAl, есть lua или tstl.
Если сильно замотивтруете, мб сделаю tstl штуку, где можно писать ООП код
0
Голосов: 0
Ev3nt - 2 weeks ago
0
Голосов: 0
Kokomi, ясно, теперь и тут свой транспилятор распространяет. The cult of tstl. 😂
3
Голосов: 3
Unryze - 2 weeks ago
Edited by
3
Голосов: 3
A new version is out!

v1.0.7.36

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

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
Голосов: 2
Unryze - 1 week ago
2
Голосов: 2
A new version is out!

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
Голосов: 4
Unryze - 6 days ago
Edited by
4
Голосов: 4
A new version is out!

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, теперь она возвращает дельту мышки, как на Рефорджеде.
2
Голосов: 2
Ev3nt - 6 days ago
2
Голосов: 2
Больше нативок богу нативок. :DD
0
Голосов: 0
0
Голосов: 0
Unryze, есть ли события фреймов? И синхронизируются 🙂 а вот все нашел, есть они. Близзард еще не дождешься

Как lua использовать на 1.26 и выше?

Unryze, а где очередь приказов как в рефе?
0
Голосов: 0
Unryze - 5 days ago
0
Голосов: 0
Как lua использовать на 1.26 и выше?
Закинуть файл war3map.lua в карту и всё, lua идёт c UjAPI из коробки.

Unryze, а где очередь приказов как в рефе?
Ещё не доделал, приоритет этой нишевой фигни очень низкий. Человек один, а работы тьма. :(
0
Голосов: 0
nazarpunk - 5 days ago
0
Голосов: 0
Человек один, а работы тьма. :(
Сделай как сейчас принято в опенсурсе - реквест фич через денюжку.

Закинуть файл war3map.lua в карту и всё, lua идёт c UjAPI из коробки.
В какой момент инициализируется lua, и нет ли проблемы, как в рефе, с созданием объектов?
1
Голосов: 1
Unryze - 5 days ago
1
Голосов: 1
Сделай как сейчас принято в опенсурсе - реквест фич через денюжку.
Опенсорсом ни WFE ни UjAPI никогда не будут. Фичи и так реквестили (по крайней мере на ВФЕ) за шекели. Я очень-очень противлюсь опенсорса, ибо не для того столько времени влил, чтобы проект вот так взяли и себе присвоили.

В какой момент инициализируется lua, и нет ли проблемы, как в рефе, с созданием объектов?
В момент обработки джасс кода, проблем как в рефе не наблюдаются, но есть свои. + пока что есть зависимость от war3map.j для слотов, в будущем помогу Ev3nt'у убрать нужду war3map,j для слотов и т.д.
0
Голосов: 0
nazarpunk - 5 days ago
Edited by
0
Голосов: 0
Опенсорсом ни WFE ни UjAPI никогда не будут. Фичи и так реквестили (по крайней мере на ВФЕ) за шекели. Я очень-очень противлюсь опенсорса, ибо не для того столько времени влил, чтобы проект вот так взяли и себе присвоили.
В каком месте я предлагал код одкрывать?
Просто исходя из информации на xgm нельзя понять, что функция новых фич за шекели доступна. Например сколько стоит возможность работать в режиме папки прямо из JNGP?
1
Голосов: 1
Unryze - 5 days ago
1
Голосов: 1
В каком месте я предлагал код одкрывать?
Тьфу, неправильно прочитал. Сорян.
Просто исходя из информации на xgm нельзя понять, что функция новых фич за шекели доступна. Например сколько стоит возможность работать в режиме папки прямо из JNGP?
Хм... технически если перехватить обработку файлов/импорт и т.д. реализуемо, но очень геморно. Особо не задумывался об этом. Я больше по варику, с редактором много разбора не делал, кроме нужных мне фич.
Я потыкаю в скором времени редактор, когда с нативками +- будет всё нужное сделано и лаунчер станет человеческим, затем постараюсь выкатить хотя бы частичную поддержку DzAPI и Blz нативок, а вот потом уже можно и редактор потыкать.
0
Голосов: 0
nazarpunk - 5 days ago
0
Голосов: 0
пока что есть зависимость от war3map.j для слотов
Тоесть в карте может быть одновременно jass код и lua? Если так, то это огонь, ибо можно старые карты постепенно на lua переписать.
0
Голосов: 0
Unryze - 4 days ago
Edited by
0
Голосов: 0
пока что есть зависимость от war3map.j для слотов
Тоесть в карте может быть одновременно jass код и lua? Если так, то это огонь, ибо можно старые карты постепенно на lua переписать.
Я помог Ev3nt'у получить доступ как к глобалкам (пока что лишь к чтению), так и абсолютно ко всем функциям из blizzard.j/war3map.j (изначально я сделал лишь blizzard.j, но потом понял что можно и war3map.j получить, в итоге дал полный метод).
В идеале я постараюсь потом сделать нативку DoScript, которая будет выполнять lua скрипт. Если я осилю Jass парсер (внутриигровой), то может даже получится сделать выполнение джасс скрипта, что позволит делить .j на файлы, как с луа.
0
Голосов: 0
ScorpioT1000 - 4 days ago
0
Голосов: 0
Unryze, опенсорс - это когда как раз не присваивают, а делятся форками
0
Голосов: 0
Unryze - 4 days ago
0
Голосов: 0
Unryze, опенсорс - это когда как раз не присваивают, а делятся форками
И в чём разница между -> форканул и продолжил -> выдал за свой продукт с другой информацией от присваивания? Или что им помешает, Будда?
0
Голосов: 0
nazarpunk - 4 days ago
0
Голосов: 0
Unryze, тоесть сейчас возможна паралельная работа jass и lua? Общение между ними не особо и нужно.~ScorpioT1000:
опенсорс - это когда как раз не присваивают, а делятся форками
Но история знает примеры с нескучными обоями.
0
Голосов: 0
ScorpioT1000 - 4 days ago
0
Голосов: 0
Unryze, что помешает один раз купить и сделать то же самое?)
0
Голосов: 0
Unryze - 4 days ago
0
Голосов: 0
Unryze, тоесть сейчас возможна паралельная работа jass и lua? Общение между ними не особо и нужно.~ScorpioT1000:
опенсорс - это когда как раз не присваивают, а делятся форками
Но история знает примеры с нескучными обоями.
Из Джасс не получится общаться с луа, а луа может общаться с джасс.
ScorpioT1000:
Unryze, что помешает один раз купить и сделать то же самое?)
Ну, когда купят - вопросов 0, но я пока такого предложения не увидел, да и кому оно нужно.
0
Голосов: 0
Ev3nt - 4 days ago
Edited by
0
Голосов: 0
Unryze, тоесть сейчас возможна паралельная работа jass и lua? Общение между ними не особо и нужно.
Да, всё верно, у вас в карте могут использоваться помимо jass скриптов, ещё и lua.
0
Голосов: 0
0
Голосов: 0
Ev3nt, можно в качестве мрдуля прдключать разные луа скрипты? В рефе это нафиг выкл
0
Голосов: 0
ScorpioT1000 - 3 days ago
0
Голосов: 0
МрачныйВорон, а wlpm на что?) или ты про рилтайм?
0
Голосов: 0
0
Голосов: 0
wlpm не пробовал. Я про то, что в карту грузим несколько скриптов. А там в каждом по смыслу, пример: в первом математическая библиотека, вл втором скилы итд. Если ошибка, то исправляем нужный скрипт, не х.. целый скрипт каждый раз ковырять

wlpm я даже не понимаю, что это такое))
0
Голосов: 0
Ev3nt - 3 days ago
0
Голосов: 0
Ev3nt, можно в качестве мрдуля прдключать разные луа скрипты? В рефе это нафиг выкл
Да, конечно. Я сделал так, чтобы в обычном режиме вам была доступна подгрудка модулей исключительно с карты, однако, если вы переключитесь в режим разработчика, то помимо этого вы сможете грузить скрипты ещё с вашего диска. Мы часто это используем, когда тестируем новый функционал на наличие ошибок.

Ах да, забыл сказать. Если использовать war3_lua с UjAPI, то в lua появится доступ ко всем новым нативкам.
0
Голосов: 0
nazarpunk - 3 days ago
0
Голосов: 0
Ev3nt, require для lua реализован или самому сборкой заниматься?
0
Голосов: 0
Ev3nt - 3 days ago
0
Голосов: 0
nazarpunk, да, реализован, в том числе dofile и loadfile.
0
Голосов: 0
ScorpioT1000 - 3 days ago
0
Голосов: 0
Ну вот, тем более require в рилтайме работает, можно удаленно скрипты скачивать)
0
Голосов: 0
Kokomi - 3 days ago
0
Голосов: 0
ScorpioT1000, и пока скрипт не скачается игрок будет лагать)))
0
Голосов: 0
nazarpunk - 3 days ago
0
Голосов: 0
и пока скрипт не скачается игрок будет лагать)))
Нехай асинхронно качает.
4
Голосов: 4
Unryze - 2 days ago
Edited by
4
Голосов: 4
A new version is out!

v1.0.11.53

  1. Новые Нативные Функции:
Unit
native IsUnitAlive takes unit whichUnit returns boolean
native SetUnitModelEx takes unit whichUnit, string modelName, integer playercolourId returns nothing
native SetUnitMaterialTexture takes unit whichUnit, string textureName, integer materialId, integer textureIndex returns nothing
native SetUnitTexture takes unit whichUnit, string textureName, integer textureIndex returns nothing

Item
native SetItemModelEx takes item whichItem, string modelFile, integer playerColourId returns nothing
native SetItemMaterialTexture takes item whichItem, string textureName, integer materialId, integer textureIndex returns nothing
native SetItemTexture takes item whichItem, string textureName, integer textureIndex returns nothing
native SetItemReplaceableTexture takes item whichItem, string textureName, integer textureIndex returns nothing

Missile
native GetMissileTargetUnit takes missile whichMissile returns unit
native GetMissileTargetItem takes missile whichMissile returns item
native GetMissileTargetDestructable takes missile whichMissile returns destructable
native GetTriggerMissileTargetUnit takes nothing returns unit
native GetTriggerMissileTargetItem takes nothing returns item
native GetTriggerMissileTargetDestructable takes nothing returns destructable
Widget
native IsWidgetVisible takes widget whichWidget returns boolean
native SetWidgetVisible takes widget whichWidget, boolean visible returns nothing
native IsWidgetInvulnerable takes widget whichWidget returns boolean
native SetWidgetInvulnerable takes widget whichWidget, boolean invulnerable returns nothing
native GetWidgetPositionLocation takes widget whichWidget returns location
native SetWidgetPosition takes widget whichWidget, real x, real y returns nothing
native SetWidgetPositionLocation takes widget whichWidget, location whichLocation returns nothing
native SetWidgetX takes widget whichWidget, real x returns nothing
native SetWidgetY takes widget whichWidget, real y returns nothing
native GetWidgetVertexColour takes widget whichWidget returns integer
native SetWidgetVertexColour takes widget whichWidget, integer red, integer green, integer blue, integer alpha returns nothing
native GetWidgetTimeScale takes widget whichWidget returns real
native SetWidgetTimeScale takes widget whichWidget, real timeScale returns nothing
native GetWidgetScale takes widget whichWidget returns real
native SetWidgetScale takes widget whichWidget, real scale returns nothing
native GetWidgetFacing takes widget whichWidget returns real
native SetWidgetFacing takes widget whichWidget, real facing, boolean isInstant returns nothing
native SetWidgetSpaceRotation takes widget whichWidget, real yaw, real pitch, real roll, integer eulerOrder returns nothing
native SetWidgetOrientation takes widget whichWidget, real yaw, real pitch, real roll returns nothing
native GetWidgetYaw takes widget whichWidget returns real
native SetWidgetYaw takes widget whichWidget, real yaw returns nothing
native GetWidgetPitch takes widget whichWidget returns real
native SetWidgetPitch takes widget whichWidget, real pitch returns nothing
native GetWidgetRoll takes widget whichWidget returns real
native SetWidgetRoll takes widget whichWidget, real roll returns nothing
native SetWidgetModel takes widget whichWidget, string modelFile returns nothing
native SetWidgetModelEx takes widget whichWidget, string modelFile, integer playerId returns nothing
native SetWidgetAnimationWithRarityByIndex takes widget whichWidget, integer animIndex, raritycontrol rarity returns nothing
native SetWidgetAnimationWithRarity takes widget whichWidget, string animation, raritycontrol rarity returns nothing
native SetWidgetAnimationByIndex takes widget whichWidget, integer animIndex returns nothing
native SetWidgetAnimation takes widget whichWidget, string animation returns nothing
native QueueWidgetAnimationByIndex takes widget whichWidget, integer animIndex returns nothing
native QueueWidgetAnimation takes widget whichWidget, string animation returns nothing
native SetWidgetMaterialTexture takes widget whichWidget, string textureName, integer materialId, integer textureIndex returns nothing
native SetWidgetTexture takes widget whichWidget, string textureName, integer textureIndex returns nothing
native SetWidgetReplaceableTexture takes widget whichWidget, string textureName, integer textureIndex returns nothing

Destructable
native GetDestructablePositionLocation takes destructable whichDestructable returns location
native SetDestructablePosition takes destructable whichDestructable, real x, real y returns nothing
native SetDestructablePositionLocation takes destructable whichDestructable, location whichLocation returns nothing
native SetDestructableX takes destructable whichDestructable, real x returns nothing
native SetDestructableY takes destructable whichDestructable, real y returns nothing
native SetDestructableModel takes destructable whichDestructable, string modelFile returns nothing
native SetDestructableModelEx takes destructable whichDestructable, string modelFile, integer playerColourId returns nothing
native GetDestructableVertexColour takes destructable whichDestructable returns integer
native SetDestructableVertexColour takes destructable whichDestructable, integer red, integer green, integer blue, integer alpha returns nothing
native GetDestructableTimeScale takes destructable whichDestructable returns real
native SetDestructableTimeScale takes destructable whichDestructable, real timeScale returns nothing
native GetDestructableScale takes destructable whichDestructable returns real
native SetDestructableScale takes destructable whichDestructable, real scale returns nothing
native GetDestructableFacing takes destructable whichDestructable returns real
native SetDestructableFacing takes destructable whichDestructable, real facing, boolean isInstant returns nothing
native SetDestructableSpaceRotation takes destructable whichDestructable, real yaw, real pitch, real roll, integer eulerOrder returns nothing
native SetDestructableOrientation takes destructable whichDestructable, real yaw, real pitch, real roll returns nothing
native GetDestructableYaw takes destructable whichDestructable returns real
native SetDestructableYaw takes destructable whichDestructable, real yaw returns nothing
native GetDestructablePitch takes destructable whichDestructable returns real
native SetDestructablePitch takes destructable whichDestructable, real pitch returns nothing
native GetDestructableRoll takes destructable whichDestructable returns real
native SetDestructableRoll takes destructable whichDestructable, real roll returns nothing
native SetDestructableModel takes destructable whichDestructable, string modelFile returns nothing
native SetDestructableModelEx takes destructable whichDestructable, string modelFile, integer playerId returns nothing
native SetDestructableMaterialTexture takes destructable whichDestructable, string textureName, integer materialId, integer textureIndex returns nothing
native SetDestructableTexture takes destructable whichDestructable, string textureName, integer textureIndex returns nothing
native SetDestructableReplaceableTexture takes destructable whichDestructable, string textureName, integer textureIndex returns nothing
native SetDestructableAnimationWithRarityByIndex takes destructable whichDestructable, integer animIndex, raritycontrol rarity returns nothing
native SetDestructableAnimationWithRarity takes destructable whichDestructable, string animation, raritycontrol rarity returns nothing
native SetDestructableAnimationByIndex takes destructable whichDestructable, integer animIndex returns nothing
native QueueDestructableAnimationByIndex takes destructable whichDestructable, integer animIndex returns nothing
  1. Исправлен фриз игры, когда срабатывал ивент FRAMEEVENT_SLIDER_VALUE_CHANGED после использования нативной функции SetFrameValue.
  2. Get/SetUnitArmourType теперь используют тип defensetype заместо типа integer.
  3. Исправлена критическая ошибка от нативных функций: SetUnitFacingEx and SetUnitFacingInstant.
  4. CastAbilityTarget теперь использует тип widget заместо unit.
  5. Нативная функция CastAbilityGround более не использует unit в аргументах вызова.
  6. Обновлена версия War3 lua.
0
Голосов: 0
Ev3nt - 18 hours ago
0
Голосов: 0
Да здравствует бог нативок. :DD
To leave a comment please sign in to the site.