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
Вышла новая версия! Прокрутить к ресурсу

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 и с их дочерними фреймами.
20
Вышла новая версия! Прокрутить к ресурсу

v1.0.26.97

  1. Новые Типы:
    type mappedfield extends handle
    type mappedtype extends handle
    type attachmenttype extends mappedtype
    type bonetype extends attachmenttype
    type cursoranimtype extends mappedtype
  2. Новые Конверторы:
    constant native ConvertMappedField takes integer i returns mappedfield
    constant native ConvertAttachmentType takes integer i returns attachmenttype
    constant native ConvertBoneType takes integer i returns bonetype
    constant native ConvertCursorAnimType takes integer i returns cursoranimtype
  3. Новые Константы:
    constant mappedfield MAPPED_FIELD_ATTACHMENT = ConvertMappedField(0)
    constant mappedfield MAPPED_FIELD_BONE = ConvertMappedField(1)
    constant mappedfield MAPPED_FIELD_ANIMATION = ConvertMappedField(2)
    constant mappedfield MAPPED_FIELD_SUB_ANIMATION = ConvertMappedField(3)
    constant mappedfield MAPPED_CURSOR_SUB_ANIMATION = ConvertMappedField(4)

    constant attachmenttype ATTACHMENT_TYPE_CHEST = ConvertAttachmentType('ches')
    constant attachmenttype ATTACHMENT_TYPE_FEET = ConvertAttachmentType('feet')
    constant attachmenttype ATTACHMENT_TYPE_FOOT = ConvertAttachmentType('foot')
    constant attachmenttype ATTACHMENT_TYPE_HAND = ConvertAttachmentType('hand')
    constant attachmenttype ATTACHMENT_TYPE_HEAD = ConvertAttachmentType('head')
    constant attachmenttype ATTACHMENT_TYPE_ORIGIN = ConvertAttachmentType('orig')
    constant attachmenttype ATTACHMENT_TYPE_OVERHEAD = ConvertAttachmentType('over')
    constant attachmenttype ATTACHMENT_TYPE_SPRITE = ConvertAttachmentType('spri')
    constant attachmenttype ATTACHMENT_TYPE_WEAPON = ConvertAttachmentType('weap')
    constant attachmenttype ATTACHMENT_TYPE_ALTERNATE = ConvertAttachmentType('alte')
    constant attachmenttype ATTACHMENT_TYPE_LEFT = ConvertAttachmentType('left')
    constant attachmenttype ATTACHMENT_TYPE_RIGHT = ConvertAttachmentType('righ')
    constant attachmenttype ATTACHMENT_TYPE_MOUNT = ConvertAttachmentType('moun')
    constant attachmenttype ATTACHMENT_TYPE_REAR = ConvertAttachmentType('rear')
    constant attachmenttype ATTACHMENT_TYPE_SMART = ConvertAttachmentType('smar')
    constant attachmenttype ATTACHMENT_TYPE_FIRST = ConvertAttachmentType('firs')
    constant attachmenttype ATTACHMENT_TYPE_SECOND = ConvertAttachmentType('seco')
    constant attachmenttype ATTACHMENT_TYPE_THIRD = ConvertAttachmentType('thir')
    constant attachmenttype ATTACHMENT_TYPE_FOURTH = ConvertAttachmentType('four')
    constant attachmenttype ATTACHMENT_TYPE_FIFTH = ConvertAttachmentType('fift')
    constant attachmenttype ATTACHMENT_TYPE_SIXTH = ConvertAttachmentType('sixt')
    constant attachmenttype ATTACHMENT_TYPE_SMALL = ConvertAttachmentType('smal')
    constant attachmenttype ATTACHMENT_TYPE_MEDIUM = ConvertAttachmentType('medi')
    constant attachmenttype ATTACHMENT_TYPE_LARGE = ConvertAttachmentType('larg')
    constant attachmenttype ATTACHMENT_TYPE_GOLD = ConvertAttachmentType('gold')
    constant attachmenttype ATTACHMENT_TYPE_RALLYPOINT = ConvertAttachmentType('rall')
    constant attachmenttype ATTACHMENT_TYPE_EAT_TREE = ConvertAttachmentType('eatt')

    constant bonetype BONE_TYPE_CHEST = ConvertBoneType('ches')
    constant bonetype BONE_TYPE_FOOT = ConvertBoneType('foot')
    constant bonetype BONE_TYPE_HAND = ConvertBoneType('hand')
    constant bonetype BONE_TYPE_HEAD = ConvertBoneType('head')
    constant bonetype BONE_TYPE_TURRET = ConvertBoneType('turr')
    constant bonetype BONE_TYPE_ALTERNATE = ConvertBoneType('alte')
    constant bonetype BONE_TYPE_LEFT = ConvertBoneType('left')
    constant bonetype BONE_TYPE_RIGHT = ConvertBoneType('righ')
    constant bonetype BONE_TYPE_MOUNT = ConvertBoneType('moun')
    constant bonetype BONE_TYPE_SMART = ConvertBoneType('smar')

    constant cursoranimtype CURSORANIM_TYPE_NORMAL = ConvertCursorAnimType(0)
    constant cursoranimtype CURSORANIM_TYPE_SELECT = ConvertCursorAnimType(1)
    constant cursoranimtype CURSORANIM_TYPE_TARGET = ConvertCursorAnimType(2)
    constant cursoranimtype CURSORANIM_TYPE_TARGET_SELECT = ConvertCursorAnimType(3)
    constant cursoranimtype CURSORANIM_TYPE_INVALID_TARGET = ConvertCursorAnimType(4)
    constant cursoranimtype CURSORANIM_TYPE_HOLD_ITEM = ConvertCursorAnimType(5)
    constant cursoranimtype CURSORANIM_TYPE_SCROLL = ConvertCursorAnimType(6)
    constant cursoranimtype CURSORANIM_TYPE_LEFT = ConvertCursorAnimType(7)
    constant cursoranimtype CURSORANIM_TYPE_RIGHT = ConvertCursorAnimType(8)
    constant cursoranimtype CURSORANIM_TYPE_UP = ConvertCursorAnimType(9)
    constant cursoranimtype CURSORANIM_TYPE_DOWN = ConvertCursorAnimType(10)
  1. Удалённые Нативные Функции:
    native GetAnimationName takes animtype whichAnim returns string
  2. Новые Нативные Функции:
    native GetMiscDataString takes string sectionName, string optionName, integer index returns string
    native SetMiscDataString takes string sectionName, string optionName, integer index, string value returns nothing

    native GetSkinDataString takes string raceName, string sectionName, string optionName, integer index returns string raceName can be null
    native SetSkinDataString takes string raceName, string sectionName, string optionName, integer index, string value returns nothing raceName can be null

    native GetFDFDataString takes string sectionName, string optionName returns string
    native SetFDFDataString takes string sectionName, string optionName, string value returns nothing

    native GetMappedTypeName takes mappedfield whichField, mappedtype whichMapType returns string

    native TriggerCountEvents takes trigger whichTrigger returns integer
    native TriggerCountConditions takes trigger whichTrigger returns integer
    native TriggerCountActions takes trigger whichTrigger returns integer
    native TriggerRemoveEvent takes trigger whichTrigger, event whichEvent returns nothing
    native TriggerRemoveEventId takes trigger whichTrigger, eventid whichEventId, boolean removeAllOccurences returns nothing
    native TriggerClearEvents takes trigger whichTrigger returns nothing
    native TriggerClear takes trigger whichTrigger returns nothing

    native GetSpecialEffectCurrentAnimationName takes effect whichEffect returns string
    native GetTrackableCurrentAnimationName takes trackable whichTrackable returns string
    native GetWidgetCurrentAnimationName takes widget whichWidget returns string
    native GetDestructableCurrentAnimationName takes destructable whichDestructable returns string
    native GetItemCurrentAnimationName takes item whichItem returns string
    native GetUnitCurrentAnimationName takes unit whichUnit returns string
    native GetProjectileCurrentAnimationName takes projectile whichProjectile returns string
    native GetFrameSpriteCurrentAnimationName takes framehandle whichFrame returns string

    native CreateSimpleGlueFrame takes framehandle whichSimpleParent, framehandle whichSpriteFrame returns framehandle
    native SetFrameName takes framehandle whichFrame, string contextName returns nothing
    native GetFrameContext takes framehandle whichFrame returns integer
    native SetFrameContext takes framehandle whichFrame, integer createContext returns nothing
    native SetFrameContextName takes framehandle whichFrame, string contextName, integer createContext returns nothing
  3. Исправлен неправильный typeId поля ABILITY_IF_BUTTON_HOTKEY_RESEARCH's с aukh на arhk.
  4. Переименовано поле ABILITY_ILF_RESTORED_MANA__1_FOR_CURRENT в ABILITY_ILF_RESTORED_MANA_1_FOR_CURRENT.
  5. textfilehandle тип более не использует реальный менеджмент хендлов, теперь оно использует мнимые хендлы, как fogstate, то бишь теперь оно может быть использовано в локальном блоке.
  6. Добавлен новый экспериментальный парсер w3i, который умеет читать Reforged карты и отображать данные Сил/Игроков (слотов) и информацию карты. А также дать её запускать.
    Пометка: карты написанные на "чистом" луа всё ещё не будут работать, пока Ev3nt не исправит его war3_lua.dll.
    Пометка 2: это "маленькое" изменение потребовало более 1000 строк кода, что же я делаю со своей жизнью...
  7. Технически исправлена неправильная информация в структуре связанной с MemoryAllocation, которая относился к Jass стэку и так далее.
    Пометка: хотя ранее не было ошибок/проблем связанных с этой структурой, это было либо в виду везения, либо в виду малой популярности.
  8. Исправлены все функции связанные с SetAnimationOffsetPercent.
  9. Исправлена критическая ошибка от GetFrameName.
  10. Исправлена GetFrameName, которая ранее работала только со фреймами типа CFrame и его дочерними типами.
  11. Исправлена критическая ошибка, когда GetHandleId применялся на "слишком большие" значения.
  12. ClickFrameEx теперь использует mousebuttontype заместо булевого флага.
  13. Исправлено перекрытие стандартных действий фреймов Предметов/Заклинаний, после регистрации события FRAMEEVENT_MOUSE_DOWN.
  14. Исправлена критическая ошибка от GetFrameParent.
38
это "маленькое" изменение потребовало более 1000 строк кода, что же я делаю со своей жизнью...
А как же protobuf или другие решения, в которых декларативно описываем форматы файлов и потом удобно достаем все что хотим?
20
это "маленькое" изменение потребовало более 1000 строк кода, что же я делаю со своей жизнью...
А как же protobuf или другие решения, в которых декларативно описываем форматы файлов и потом удобно достаем все что хотим?
Да... и мы удобно игнорируем методы выделения памяти, расширения памяти в том виде, который нужен игре, а так же оффсеты и т.д. и т.п. Это во всяких вебах +- всё открыто, а тут... ну ты понял.
38
Ну, порядочные либы предоставляют возможность указать свои аллокаторы)
20
Ну, порядочные либы предоставляют возможность указать свои аллокаторы)
Ну, вот тебе один из примеров:
Удачи (тм)?
Загруженные файлы
38
А как луы всякие прикручивали к 1.26, вызовом этой функции из lualib?
20
А как луы всякие прикручивали к 1.26, вызовом этой функции из lualib?
Это вообще не связано с луа... я понимаю к чему ты ведёшь, но ты очень поверхностно судишь о реверс-инженерии, я бы даже сказал через-чур.
20
Вышла новая версия! Прокрутить к ресурсу

v1.0.27.100

  1. Новые Константы
constant playercolor PLAYER_COLOR_MAROON = ConvertPlayerColor(12)
constant playercolor PLAYER_COLOR_NAVY = ConvertPlayerColor(13)
constant playercolor PLAYER_COLOR_TURQUOISE = ConvertPlayerColor(14)
constant playercolor PLAYER_COLOR_VIOLET = ConvertPlayerColor(15)
constant playercolor PLAYER_COLOR_WHEAT = ConvertPlayerColor(16)
constant playercolor PLAYER_COLOR_PEACH = ConvertPlayerColor(17)
constant playercolor PLAYER_COLOR_MINT = ConvertPlayerColor(18)
constant playercolor PLAYER_COLOR_LAVENDER = ConvertPlayerColor(19)
constant playercolor PLAYER_COLOR_COAL = ConvertPlayerColor(20)
constant playercolor PLAYER_COLOR_SNOW = ConvertPlayerColor(21)
constant playercolor PLAYER_COLOR_EMERALD = ConvertPlayerColor(22)
constant playercolor PLAYER_COLOR_PEANUT = ConvertPlayerColor(23)

constant integer CORNER_FLAG_UPPER_LEFT = 1
constant integer CORNER_FLAG_UPPER_RIGHT = 2
constant integer CORNER_FLAG_BOTTOM_LEFT = 4
constant integer CORNER_FLAG_BOTTOM_RIGHT = 8
constant integer CORNER_FLAG_TOP = 16
constant integer CORNER_FLAG_LEFT = 32
constant integer CORNER_FLAG_BOTTOM = 64
constant integer CORNER_FLAG_RIGHT = 128
constant integer CORNER_FLAG_ALL = 255
  1. Новые Нативные Функции:
constant native GetBJMaxPlayers takes nothing returns integer
constant native GetBJPlayerNeutralVictim takes nothing returns integer
constant native GetBJPlayerNeutralExtra takes nothing returns integer
constant native GetBJMaxPlayerSlots takes nothing returns integer
constant native GetPlayerNeutralPassive takes nothing returns integer
constant native GetPlayerNeutralAggressive takes nothing returns integer

native SaveCode takes hashtable table, integer parentKey, integer childKey, code whichCode returns boolean
native SaveHandleList takes hashtable table, integer parentKey, integer childKey, handlelist whichHandleList returns boolean
native LoadCode takes hashtable table, integer parentKey, integer childKey returns code
native LoadHandleList takes hashtable table, integer parentKey, integer childKey returns handlelist

native GetFrameTypeName takes framehandle whichFrame returns string
native GetFrameCornerFlags takes framehandle whichFrame, integer backdropId returns integer
native SetFrameCornerFlags takes framehandle whichFrame, integer backdropId, integer cornerFlag returns nothing
native GetFrameCornerSize takes framehandle whichFrame, integer backdropId returns real
native SetFrameCornerSize takes framehandle whichFrame, integer backdropId, real value returns nothing
native GetFrameBackgroundSize takes framehandle whichFrame, integer backdropId returns real
native SetFrameBackgroundSize takes framehandle whichFrame, integer backdropId, real value returns nothing
native GetFrameBackgroundInsetById takes framehandle whichFrame, integer backdropId, integer insetId returns real
native SetFrameBackgroundInsets takes framehandle whichFrame, integer backdropId, real minX, real minY, real maxX, real maxY returns nothing
native SetFrameBackgroundInsetById takes framehandle whichFrame, integer backdropId, integer insetId, real value returns nothing
native SetFrameBackdropTexture takes framehandle whichFrame, integer textureId, string backgroundTextureFile, boolean allowTransparency, boolean blend, string borderTextureFile, integer borderFlags, boolean isControlBackdrop returns nothing
  1. Изменена последовательность аргументов SetFrameTextureEx.
  2. Исправлен анализатор опкодов Jass секции, а точнее: GREATER/LESSER/GREATEROREQUAL/LESSEROREQUAL, числовые сравнения изменены с uint32_t на int32_t.
Пометка: это была очень глупая ошибка, которую заметил N1ghtSiren.
  1. Исправлена неверное возвращаемо значение нативной функцией I2C.
Пометка: Оказывается хоть сама переменная code хранит индекс функции, в неё нельзя посылать его напрямую, а нужно посылать адрес Opcode...
Спасибо N1ghtSiren за то, что заметил эту проблему.
  1. Исправлена критическая ошибка от SetWidgetModel и SetWidgetModelEx.
Пометка: Юниты/Предметы/Разрушаемые имели эту же проблему.
Спасибо PinkieNecro за то, что заметил эту проблему.
  1. Исправлена "форсированная" загрузка библиотеки в UjAPIApp даже если опция "Load Library" была отключена.
  2. Исправлен форсированный запуск карты UjAPI приложением, если был указан -loadfile даже при выключенном "Additional Command Line Arguments".
  3. Исправлена ошибка по которой UjAPI приложение не могло удалить старый "инстанс" после обновления.
  4. Исправлено событие EVENT_UNIT_DAMAGED теряющее GetUnitDamageSource когда UnitDamageTarget был вызван внутри него.
20
Вышла новая версия! Прокрутить к ресурсу

v1.0.28.102

  1. Новые Константы:
    constant integer TEXT_TAG_MAX_SIZE = GetTextTagLimit( ) Original 100 limit raised to 1024, this is subject to change if needed.
  2. Новые Нативные Функции:
    constant native GetJassArrayLimit takes nothing returns integer
    constant native GetTextTagLimit takes nothing returns integer

    native GetCodeByName takes string funcName returns code

    native TimerIsPaused takes timer whichTimer returns boolean
    native TimerRestart takes timer whichTimer returns nothing
    native TimerIsPeriodic takes timer whichTimer returns boolean
    native TimerSetPeriodic takes timer whichTimer, boolean isPeriodic returns nothing
    native TimerSetRemaining takes timer whichTimer, real remaining returns nothing
    native TimerSetTimeout takes timer whichTimer, real timeout returns nothing
    native TimerGetCallback takes timer whichTimer returns code
    native TimerSetCallback takes timer whichTimer, code whichFunction returns nothing

    native GetDoodadModel takes doodad whichDoodad returns string
    native SetDoodadModel takes doodad whichDoodad, string whichModel returns nothing
    native IsDoodadVisible takes doodad whichDoodad returns boolean
    native ShowDoodad takes doodad whichDoodad, boolean isShow returns nothing

    native GetLightningSourceX takes lightning whichBolt returns real
    native SetLightningSourceX takes lightning whichBolt, real value returns nothing
    native GetLightningSourceY takes lightning whichBolt returns real
    native SetLightningSourceY takes lightning whichBolt, real value returns nothing
    native GetLightningSourceZ takes lightning whichBolt returns real
    native SetLightningSourceZ takes lightning whichBolt, real value returns nothing
    native GetLightningSourcePositionLocation takes lightning whichBolt returns location
    native SetLightningSourcePositionLocation takes lightning whichBolt, location whichLocation returns nothing
    native GetLightningTargetX takes lightning whichBolt returns real
    native SetLightningTargetX takes lightning whichBolt, real value returns nothing
    native GetLightningTargetY takes lightning whichBolt returns real
    native SetLightningTargetY takes lightning whichBolt, real value returns nothing
    native GetLightningTargetZ takes lightning whichBolt returns real
    native SetLightningTargetZ takes lightning whichBolt, real value returns nothing
    native GetLightningTargetPositionLocation takes lightning whichBolt returns location
    native SetLightningTargetPositionLocation takes lightning whichBolt, location whichLocation returns nothing
    native GetLightningScreenX takes lightning whichBolt returns real
    native GetLightningScreenY takes lightning whichBolt returns real
    native GetLightningColour takes lightning whichBolt returns integer
    native GetLightningLength takes lightning whichBolt returns real
    native SetLightningLength takes lightning whichBolt, real value returns nothing
    native GetLightningNoiseScaling takes lightning whichBolt returns real
    native SetLightningNoiseScaling takes lightning whichBolt, real value returns nothing
    native GetLightningTextureCoordinates takes lightning whichBolt returns real
    native SetLightningTextureCoordinates takes lightning whichBolt, real value returns nothing
    native GetLightningDuration takes lightning whichBolt returns real
    native SetLightningDuration takes lightning whichBolt, real value returns nothing
    native GetLightningTexture takes lightning whichBolt returns string
    native SetLightningTexture takes lightning whichBolt, string textureName returns nothing

    native GetTextTagScreenX takes texttag whichTextTag returns real
    native GetTextTagScreenY takes texttag whichTextTag returns real

    native GetImageScreenX takes image whichImage returns real
    native GetImageScreenY takes image whichImage returns real

    native GetSpecialEffectScreenX takes effect whichEffect returns real
    native GetSpecialEffectScreenY takes effect whichEffect returns real

    native GetTrackableScreenX takes trackable whichTrackable returns real
    native GetTrackableScreenY takes trackable whichTrackable returns real

    native GetWidgetScreenX takes widget whichWidget returns real
    native GetWidgetScreenY takes widget whichWidget returns real

    native GetDestructableScreenX takes destructable whichDestructable returns real
    native GetDestructableScreenY takes destructable whichDestructable returns real

    native GetItemScreenX takes item whichItem returns real
    native GetItemScreenY takes item whichItem returns real

    native GetUnitScreenX takes unit whichUnit returns real
    native GetUnitScreenY takes unit whichUnit returns real

    native GetProjectileScreenX takes projectile whichProjectile returns real
    native GetProjectileScreenY takes projectile whichProjectile returns real

    native HandleListContainsTypeId takes handlelist whichHandleList, integer typeId returns boolean
    native HandleListGetHandleByTypeId takes handlelist whichHandleList, integer typeId, integer index returns handle
    native HandleListRemoveEmpty takes handlelist whichHandleList returns integer
  3. Лимит TextTag'ов был увеличен со 100 до 1024.
    Пометка: использование 512 тексттагов никак не повлияло на фпс, однако тесты проведённые на 8192 увенчались 20 средними фпс, потому лимит был установлен в 1024, так как при этом лимите фпс тоже не пострадал.
  4. Исправлена ошибка в HandleListContainsHandle, по которой оно не определяло содержится хендл или нет.
  5. Исправлена критическая ошибка, при попытке получения индекса превышающего размер массива, если массив был инициализирован.
    Пометка: такой проблемы не было на "ванилле".
  6. Исправлена критическая ошибка от установки RESEARCH/ACTIVATED иконок через SetAbilityStringField, и т.д..
  7. ICON_RESEARCH теперь срабатывает на AHer (Изучение способностей героя) способность и всё связанное с изучением/наёмом и т.д..
  8. Исправлена SetFrameTexture, которая использовала неправильные внутренний аргументы.
  9. Исправлена HideOriginFrames вызывающая критическую ошибку, если была вызвана из main потока без задержки таймера.
  10. Исправлена критическая ошибка для пользователей на Windows 7, которая случалась в виду банально медленного запуска Warcraft III на Windows 7...
    Пометка: ошибка происходила потому, что UjAPI пытался получать доступ к CGlueManager для перезаписи "версии" и добавлении текста версии UjAPI, но это по итогу происходило на "чёрном" экране.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.