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
31
6 месяцев назад
2
native SetDestructableZ takes destructable whichDestructable, real z returns nothing
Блин, буквально вчера сетовал, что нет такой функции. Прям мысли читаешь.
3
20
6 месяцев назад
3
Вышла новая версия! Прокрутить к ресурсу

v1.0.39.142

  1. Новые Типы:
    type renderstage extends handle
  2. Новые Конверторы:
    constant native ConvertRenderStage takes integer i returns renderstage
  3. Новые Константы:
    constant renderstage RENDER_STAGE_SKYBOX = ConvertRenderStage(0)
    constant renderstage RENDER_STAGE_TERRAIN = ConvertRenderStage(1)
    constant renderstage RENDER_STAGE_FOG_OF_WAR = ConvertRenderStage(2)
    constant renderstage RENDER_STAGE_TERRAIN_SHADOW = ConvertRenderStage(3)
    constant renderstage RENDER_STAGE_WATER_SHADOW = ConvertRenderStage(4)
    constant renderstage RENDER_STAGE_BLIGHT = ConvertRenderStage(5)
    constant renderstage RENDER_STAGE_WEATHER = ConvertRenderStage(6)
    constant renderstage RENDER_STAGE_SELECTION_CIRCLE = ConvertRenderStage(7)
    constant renderstage RENDER_STAGE_INDICATOR = ConvertRenderStage(8)
    constant renderstage RENDER_STAGE_FOOTPRINT = ConvertRenderStage(9)
    constant renderstage RENDER_STAGE_DOODAD = ConvertRenderStage(10)
    constant renderstage RENDER_STAGE_SPRITE = ConvertRenderStage(11)
    constant renderstage RENDER_STAGE_SELECTION_SPRITE = ConvertRenderStage(12)
    constant renderstage RENDER_STAGE_DECORATION = ConvertRenderStage(13)
    constant renderstage RENDER_STAGE_WATER = ConvertRenderStage(14)
    constant renderstage RENDER_STAGE_SELECTION_BOX = ConvertRenderStage(15)
    constant renderstage RENDER_STAGE_TEXTURE = ConvertRenderStage(16)
    constant renderstage RENDER_STAGE_OCCLUSION_MASK = ConvertRenderStage(17)
    constant renderstage RENDER_STAGE_BUILDING = ConvertRenderStage(18)
    constant renderstage RENDER_STAGE_UBERSPLAT = ConvertRenderStage(19)
    constant renderstage RENDER_STAGE_LIGHTNING = ConvertRenderStage(20)
    constant renderstage RENDER_STAGE_TEXTTAG = ConvertRenderStage(21)
  4. Новые Нативные Функции:
    native GetFPS takes nothing returns real

    native GetAttackSpeedMinBonus takes nothing returns real
    native SetAttackSpeedMinBonus takes real value returns nothing
    native GetAttackSpeedMaxBonus takes nothing returns real
    native SetAttackSpeedMaxBonus takes real value returns nothing
    native GetMoveSpeedMinAllowed takes nothing returns real
    native SetMoveSpeedMinAllowed takes real value returns nothing
    native GetMoveSpeedMaxAllowed takes nothing returns real
    native SetMoveSpeedMaxAllowed takes real value returns nothing

    native IsSelectionEnabled takes nothing returns boolean
    native EnableSelection takes boolean enable returns nothing
    native IsSelectionCircleEnabled takes nothing returns boolean
    native EnableSelectionCircle takes boolean enable returns nothing
    native IsTargetIndicatorEnabled takes nothing returns boolean
    native EnableTargetIndicator takes boolean enable returns nothing
    native IsRenderStage takes renderstage renderStage returns boolean
    native EnableRenderStage takes renderstage renderStage, boolean enable returns nothing
    native IsStatbarEnabled takes nothing returns boolean
    native EnableStatbar takes boolean enable returns nothing

    native HandleListGetSpriteCount takes handlelist whichHandleList returns integer
    native HandleListGetSpriteByIndex takes handlelist whichHandleList, integer index returns sprite
    native HandleListGetFilterSprite takes nothing returns sprite
    native HandleListGetEnumSprite takes nothing returns sprite

    native SaveSpriteHandle takes hashtable table, integer parentKey, integer childKey, sprite whichsprite returns boolean
    native SaveDoodadHandle takes hashtable table, integer parentKey, integer childKey, doodad whichDoodad returns boolean
    native SaveTextFileHandle takes hashtable table, integer parentKey, integer childKey, textfilehandle whichFile returns boolean
    native LoadSpriteHandle takes hashtable table, integer parentKey, integer childKey returns sprite
    native LoadDoodadHandle takes hashtable table, integer parentKey, integer childKey returns doodad
    native LoadTextFileHandle takes hashtable table, integer parentKey, integer childKey returns textfilehandle
  5. Исправлена критическая ошибка при создании SIMPLETEXT/SIMPLETEXTURE через CreateFrame/CreateFrameByType с родителем не являющимся простым фреймом.
  6. Исправлена IsFrameVisible для SimpleFrames, всегда возвращающая "истину".
0
31
6 месяцев назад
0
Карта начала вылетать на новой версии.
Попробовал запустить на предыдущей, 1.0.38.140, крита не словил...
Теперь искать, где фаталит...
Загруженные файлы
1
20
6 месяцев назад
Отредактирован Unryze
1
Скрины - бесполезные. Пожалуйста, на будуще, прикладывай error.txt и желательно .dmp файл. Но скорее всего ошибка связана с HandleList ибо я переделывал её код.
Ну или же прикрепил бы карту, чтобы я запустил и мог сам увидеть ошибку.
Редактирование: Ошибку нашёл и поправил, если на хотфиксе у тебя всё ещё будет фатал, то пожалуйста txt/dmp или же карту, ну или хотя бы кусок кода, который вызывает фатал.
Спасибо.
2
20
6 месяцев назад
2
Вышла новая версия! Прокрутить к ресурсу

v1.0.39.143

  1. ParseTags теперь работает с данными заклинаний.
  2. Исправлена критическая ошибка от любого типа HandleListGetCount.
0
31
6 месяцев назад
0
Исправлена критическая ошибка от любого типа HandleListGetCount.
Спасибо, помогло.

SetWidgetX() ломает отображение модели юнита.
Сама моделька остается в месте где изначально юнит и был и не двигается дальше вместе с юнитом. Сам юнит теперь отображается только в виде тени с кругом выделения.
Загруженные файлы
1
20
6 месяцев назад
Отредактирован Unryze
1
SetWidgetX() ломает отображение модели юнита.
Не нужно использовать Get/SetWidgetX/Y/Z на юнитах, это бесполезно, ибо по скорости разницы толком нет. Ошибку поправил.
Спасибо.
2
20
6 месяцев назад
2
Вышла новая версия! Прокрутить к ресурсу

v1.0.39.144

  1. Исправлены SetWidgetX/Y/Z отделяющие спрайт от виджета.
  2. Проведена оптимизация внутреннего кода, а также удаление некоторых данных для уменьшения веса файла.
0
31
6 месяцев назад
0
Не нужно использовать Get/SetWidgetX/Y/Z на юнитах, это бесполезно, ибо по скорости разницы толком нет. Ошибку поправил.
Мне это было удобно. т.к. в моей системе перемещения хранится вообще хендл. и это может быть как юнит, так и декорация или эффект.
0
37
6 месяцев назад
0
Нужно instanceof в мире хендлов)
0
20
6 месяцев назад
0
ScorpioT1000, увы, это сложнореалезуемо
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.