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

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

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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Этот комментарий удален
20
Теперь никакого трахания с арифметикой

TextFileOpen
Если это есть, должен быть и SendHttpRequest xD ну или хотябы socket/bind/accept/send
TextFileOpen ограничен очень сильно в плане папок, а вот ограничить SendHttpRequest, чтобы не было "ддос" атак или банально флуда - куда сложнее. Я и так хожу на ОЧЕНЬ тонкой грани безопасности и такое давать думаю - слишком дикий риск отстрелить не только себе, но и другим пятую точку.
30
чтобы не было "ддос" атак или банально флуда - куда сложнее
Выдумай заголовок и проверяй ответ сервера. При отсутствии этого заголовка полностью блокируй возможность отправлять запросы куда либо и не отдавай ответ.
С лимитом в один активный запрос на игрока, потенциальный спамофлудер сможет отправить только 12 запросов в сессии, от которых он не получит ответа.
38
Можно в роли инициации (с каждым из доменов по хешмапу) слать сначала HEAD действительно с заголовком типа X-UJAPI-TOKEN: (рандом токен, может какие-то ещё данные по текущей игре), на который должен прийти ответ тоже с заголовком.
Если ответ был без заголовка или с пустым - дропаем всю игру. Если таймаут или 502 - запрещаем слать запросы на 1-5 минут. Серверы не всегда могут быть доступны.
Описать эти правила в механизме работы с нативкой
20
Ну, это всё конечно интересно, но юзкейс очень тяжело оправдать, а так, ну +- да, можно сделать.
30
но юзкейс очень тяжело оправдать
Да изи, рынок шмота в браузере между всеми игроками карты.
20
Да изи, рынок шмота в браузере между всеми игроками карты.
Кому ещё что-то продавать в СНГ то...
Загруженные файлы
38
Мессенджер уже встроить) может поучаствовали бы в интеграшке, мы давно хотим апишки пилить околоигровые
30
Кому ещё что-то продавать в СНГ то...
Лягушку нужно варить медленно и посему трейдинг для начала реализуется через внутриигровую валюту.
20
Вышла новая версия! Прокрутить к ресурсу

v1.0.23.91

  1. Новые Нативные Функции:
native MathRealClamp takes real value, real min, real max returns real
native MathRealLerp takes real a, real b, real t returns real
native MathIntegerClamp takes integer value, integer min, integer max returns integer
native SetFrameWidth takes framehandle whichFrame, real width returns nothing
native SetFrameHeight takes framehandle whichFrame, real height returns nothing
native SetFrameTextVerticalAlignment takes framehandle whichFrame, textaligntype verticalAlign returns nothing
native SetFrameTextHorizontalAlignment takes framehandle whichFrame, textaligntype horizontalAlign returns nothing
native GetFrameTexture takes framehandle whichFrame, integer textureId returns string
native GetFrameTrackState takes framehandle whichFrame returns boolean
native SetFrameTrackState takes framehandle whichFrame, integer trackState returns nothing 0 - NONE | 1 - Track | 2 - Ignore Track
native SetFrameTextureEx takes framehandle whichFrame, string backgroundTextureFile, string borderTextureFile, integer textureId, boolean blend returns nothing
  1. CSimpleTexture теперь могут быть созданы через CreateFrameByType, используя фреймтип "SIMPLETEXTURE".
  2. CSimpleFontString теперь могут быть созданы через CreateFrameByType, используя фреймтип "SIMPLETEXT".
  3. FRAMEEVENT_MOUSE_DOWN и FRAMEEVENT_MOUSE_UP теперь полноценно работают со CSimpleButtons и со всеми их дочерними типами.
  4. Исправлено нерабочее Frame API для CScrollBar.
  5. Исправлен инверсированный флаг в BlzUnitHideAbility.
  6. Исправлены все нестандартные/новые события, которые работали лишь с последним добавленным действием.
    Спасибо пользователю Radioactive за то, что он заметил и сообщил об этой серьёзной проблеме.
  7. В очередной раз исправлены CSpellbook взимодействия и ABILITY_SF_FIELD_ABILITY_LIST.
  8. Исправлена критическая ошибка на загрузке карт на 1.27a/1.27b/1.28f.
    Пометка: это была новая ошибка, которая "всплыла" в виду снятия лимита RCString (джасс строк).
  9. Исправлена SetAbilityString не вызывающая клонирование UI данных.
  10. Исправлена ошибка, в виду которой StringReplace заменяла лишь 1 символ, заместо всех.
  11. Исправлена ошибка, в виду которой StringReplace не срабатывала, если заменяемая строка была пустой.
  12. Слегка увеличено время ожидания обработки пакетов, это должно исправить проблему, по которой UjAPI иногда не запускало карту, если она была указана в аргументах запуска.
  13. Добавлена Jass секция в UjAPI аппликацию.
  14. Добавлена опция Dev Mode в Jass секцию. Включение этой опции даст UjAPI возможность отображать имя текущей выполняемой функции в консоли.
  15. Добавлена опция Log Actions в Jass секцию. Включение этой опции даст UjAPI возможность отображать каждый шаг выполнения джасс байткода в консоли.
    Пример: ADD real -> -2816.000000 + 512.000000 = -2304.000000.
    Note: there are a total of 43 different types of operations (opcodes).
  16. Добавлена "-jass" CLI опция, для получения доступа к новому функционалу как Dev Mode и Log Actions.
  17. Добавлена "dev" опция для "-jass" CLI опции.
    Пример: "-jass dev".
  18. Добавлена "logactions" опция для "-jass" CLI опции.
    Пример: "-jass logactions".
  19. Get/SetFrameAlpha теперь должны работать с CSimpleFrames, у которых есть текстуры, а также со всеми CSimpleRegions.
20
Вышла новая версия! Прокрутить к ресурсу

v1.0.24.92

  1. Новые Нативные Функции:
    native RemoveSound takes sound whichSound returns nothing
    native ReplaceSound takes sound whichSound, string fileName, boolean looping, boolean is3D, boolean stopwhenoutofrange, integer fadeInRate, integer fadeOutRate, string eaxSetting returns sound
    native ReplaceSoundWithLabel takes sound whichSound, string fileName, boolean looping, boolean is3D, boolean stopwhenoutofrange, integer fadeInRate, integer fadeOutRate, string SLKEntryName returns sound
    native ReplaceSoundFromLabel takes sound whichSound, string soundLabel, boolean looping, boolean is3D, boolean stopwhenoutofrange, integer fadeInRate, integer fadeOutRate returns sound
    native ReplaceMIDISound takes sound whichSound, string soundLabel, integer fadeInRate, integer fadeOutRate returns sound

    native TextFileExists takes string filePath returns boolean
  2. В очередной раз исправлена функция SetFrameTexture для CBackdropFrame.
  3. Исправлена критическая ошибка в GetStringField при использовании на пустое поле.
  4. TextFileErase переименовано в TextFileDelete.
  5. Исправлен не выполняющийся EVENT_WIDGET_DEATH.
  6. GetKillingUnit теперь работает с EVENT_WIDGET_DEATH.
  7. Исправлена критическая ошибка от HandleListEnumByTypeId.
  8. Исправлены частично-сломанные функции HandleListGetTYPEByIndex, теперь они работают как и должны.
    Пометка: HandleListGetHandleByIndex и HandleListGetAgentByIndex работали без каких-либо проблем.
  9. Исправлен Jass Logger Dev Mode не открывающий Дебаг Консоль.
20
Вышла новая версия! Прокрутить к ресурсу

v1.0.25.94

  1. Новые Нативные Функции:
    native ConsolePause takes string s returns nothing
    native GetTickCount takes nothing returns integer
    native GetSpecialEffectCurrentAnimationId takes effect whichEffect returns integer
    native GetTrackableCurrentAnimationId takes trackable whichTrackable returns integer
    native GetWidgetCurrentAnimationId takes widget whichWidget returns integer
    native GetDestructableCurrentAnimationId takes destructable whichDestructable returns integer
    native GetItemCurrentAnimationId takes item whichItem returns integer
    native GetUnitCurrentAnimationId takes unit whichUnit returns integer
    native GetProjectileCurrentAnimationId takes projectile whichProjectile returns integer
    native GetFrameSpriteCurrentAnimationId takes framehandle whichFrame returns integer
    native GetFrameColourEx takes framehandle whichFrame, integer textureId returns integer
    native SetFrameColourEx takes framehandle whichFrame, integer textureId, integer colour returns nothing
    native GetFrameColour takes framehandle whichFrame returns integer
    native SetFrameColour takes framehandle whichFrame, integer colour returns nothing
    native GetFrameAlphaEx takes framehandle whichFrame, integer textureId returns integer
    native SetFrameAlphaEx takes framehandle whichFrame, integer textureId, integer alpha returns nothing
  2. Исправлена ошибка при которой HideOriginFrames также скрывала и фреймы предметов, чего быть не должно.
  3. Исправлена неправильно работающая IsFrameVisible с CSimpleRegions/CSimpleFrames и с их дочерними фреймами.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.