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
20
1 год назад
0
BlzFrameGetChild(ORIGIN_FRAME_COMMAND_BAR, 0) и GetFrameChild(ORIGIN_FRAME_COMMAND_BAR, 0) ссылается на фрейм(расположение кнопки) х3 у2, а не х3 у3. х3 у3 не видно никаким индексом в диапазоне от -1 до 11.
Диапазон начинается от 0 (откуда вообще -1?) и внутренний код, который используется для получения кнопок используется во ВФЕ, там как-то проблем с этим не наблюдалось, собственно...)
OSKEY_LEFT и RIGHT, UP, DOWN не работают, но так понимаю в 1.19.78 работает.Обновление в дискорде и гитхабе нет, а с сайта блочит вирус( отключал антивирус и брандмауэр). Windows 7
Что значит не работают? Все кнопки работают и их код не был тронут. Эта версия и есть в данный момент последняя, и на гитхабе она тоже лежит.
0
13
1 год назад
0
Нашел "кнопку" обновления. И сейчас при установке флажка "LoadLibrary" крашит варкрафт. Путь на war3.exe указан.
Если не стоит, то карта не открывается с одной глобальной
framehandle Frame
0
29
1 год назад
0
Borodach, чует моё сердце, такое название зарезервировано.
0
13
1 год назад
Отредактирован Borodach
0
Название примерное, смысл что любые "доп. услуги" из UJAPI не откроют карту.
0
20
1 год назад
Отредактирован Unryze
0
BlzFrameGetChild(ORIGIN_FRAME_COMMAND_BAR, 0) и GetFrameChild(ORIGIN_FRAME_COMMAND_BAR, 0) ссылается на фрейм(расположение кнопки) х3 у2, а не х3 у3. х3 у3 не видно никаким индексом в диапазоне от -1 до 11.
И да, забыл добавить, Y2 ограничение имеет, откуда Y3? Напоминаю, что столбов (X) 4 (0-3) а строк (Y) 3 (0-2). И получается 4 * 3 = 12 (11 индекс). А ты хочешь получить 4 * 4 = 16ый индекс, вопрос откуда и куда.
Borodach:
Название примерное, смысл что любые "доп. услуги" из UJAPI не откроют карту.
Краш лог в студию, я не могу угадать что и как может крашить, когда у других пользователей такой проблемы нет. Ну и версию варкрафта - тоже гадать не особо хочется.
0
13
1 год назад
0
И да, забыл добавить, Y2 ограничение имеет, откуда Y3? Напоминаю, что столбов (X) 4 (0-3) а строк (Y) 3 (0-2). И получается 4 * 3 = 12 (11 индекс). А ты хочешь получить 4 * 4 = 16ый индекс, вопрос откуда и куда.
Я ошибся с обозначением х,у. Позиция х2 и у2 = Child(0). -1 индекс указал чисто проверить, думал если Child(0) = x2;y2 и Child(10) = x0;y0 то -1 может быть x3;y2
ОШИБКА
This application has encountered a critical error:

FATAL ERROR!

Program:	D:\Games\WarCraft3\Warcraft 3 Frozen Throne\war3.exe
Exception:	0xC0000005 (ACCESS_VIOLATION) at 0023:0222279A

The instruction at '0x0222279A' referenced memory at '0x00000010'.
The memory could not be 'read'. 
0
20
1 год назад
0
-1 не может быть ни в каком случае, акстись.
0
14
1 год назад
Отредактирован host_pi
0
Unryze
Планируется ли поддержка карт, для которых требуется JN Loader ?
Например карты от корейца z1z1z1 (скачка карт ниже) - он делает уникальные интересные карты, при этом всегда они многопользовательские. т.е. заточены на командную работу. и т.к. ирина их не поддерживает - остается только один вариант RadminVPN, но там пинг очень плохой (если много игроков). Поэтому идеальным вариантом была бы поддержка JN карт на ирине.
Как это проще сделать?
  1. переписывать все нативки или
  2. может как то можно подключить dll от JN лоадера? может быть в UjAPILauncher.exe можно добавить путь к папке JN лоадера и он его как посредник подключит через себя к ирине?
  3. или может быть Kirill78 и Kokomi смогут прикрутить JN Loader к ирине? Чтобы запускать через JN loader.exe и справа от создания карты выбрать что-то типа "JN"
Мы уже 2 или 3 года играем в карты от z1z1z1, и последнее время он делает только для JN, в которые нипаиграть на ирине с нормальным пингом. При этом мы всегда покупаем випку на всю команду и приходится играть в его карты старых версий "до-JN" эпохи
Также есть и другие игроки, так называемые "игроки в корейские RPG", которые тоже играют через JN loader в корейские карты
Вот пример карт от z1z1z1 (Скачивать карты на синюю кнопку):
  1. m16tool.xyz/Game/8BitRaidId - 8 BIT RAID - кооперативный 2D платформер с убийством боссов
  2. m16tool.xyz/Game/OM150/Main/Main - 주황버섯의 소개팅 - Orange Mushroom Story Blind Date - 2D action головоломки
  3. m16tool.xyz/Game/DM/Main/Main - Death Maze - 3D хоррор лабиринт
или все 3 карты одной ссылкой www.mediafire.com/?59w9pnbo4wwk845 (тут есть скриншоты карт, по которым можно убедиться в их уникальности и непохожести на обычные карты для варкрафта)
  1. JN Loader (только для warcraft 1.28.5.7680 + multifont) github.com/BlacklightsC/JassNative/releases/latest/download/JNLo... или m16.pw
я вчера проверял все 3 карты на UjAPI 1.0.19.78 - ни одна не запустилась, карта не инициализировалась и не дошла до выбора команд в лобби (а с JN loader они конечно же запускаются прекрасно)
0
20
1 год назад
0
JN использует слишком много небезопасных нативок, множество из них необходимы для карт, потому полной поддержки не будет, это слишком муторно и не принесёт буквально никакой пользы. Из JN полноценно поддерживаются лишь эти нативки:
BitOr
BitAnd
BitXor
BitShiftL
BitShiftR
JNI2R
JNR2I
JNGetMaxAttackSpeed
IsReplayMode
IsHostPlayer
JNStringPos
JNStringReverse
JNStringTrim
JNStringTrimStart
JNStringTrimEnd
JNStringCount
JNStringContains
JNStringReplace
JNStringInsert
JNStringSub
JNStringLength
Говоря проще, JN поддержку я наверное даже уберу, ибо от неё больше проблем, чем пользы ибо 99% карт использует банально небезопасные функции, некоторые даже используют JNProcessStart и JNGetModuleHandle (это очень-очень опасные штуки, которые если же в МемХаке ещё как-то ограничены, то на С++ стороне можно сделать много неприятных приколов).
Потому правильнее будет переписать карту, ибо всё что с Dz и даже больше UjAPI умеет и возможностей куда больше чем на обеих платформах вместе взятых, да и в новой версии будет ещё больше функционала.
0
14
1 год назад
Отредактирован host_pi
0
JNProcessStart и JNGetModuleHandle (это очень-очень опасные штуки)
format c: и cmd.exe это тоже очень очень опасные штуки, что не мешает успешно пользоваться bat-скриптами по всему миру
ну нет так нет, шо
0
20
1 год назад
Отредактирован Unryze
0
JNProcessStart и JNGetModuleHandle (это очень-очень опасные штуки)
format c: и cmd.exe это тоже очень очень опасные штуки, что не мешает успешно пользоваться bat-скриптами по всему миру
ну нет так нет, шо
Логика поражает, одно - локально у юзера, другое - картодел может тебе System32 отправить в Вальгаллу, разницы не видно?
П.С. Список очень "безопасных" нативок:
JNProcessStart / JNGetModule / JNFindModuleHandle / JNMemoryGetByte / JNMemorySetByte / JNMemoryGetInteger / JNMemorySetInteger / JNMemoryGetReal / JNMemorySetReal / JNMemoryGetString / JNMemorySetString / JNProcCall / JNOpenBrowser.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.