это "маленькое" изменение потребовало более 1000 строк кода, что же я делаю со своей жизнью...
А как же protobuf или другие решения, в которых декларативно описываем форматы файлов и потом удобно достаем все что хотим?
Да... и мы удобно игнорируем методы выделения памяти, расширения памяти в том виде, который нужен игре, а так же оффсеты и т.д. и т.п. Это во всяких вебах +- всё открыто, а тут... ну ты понял.
Unryze, а если я память не освобожу в функции, то это будет утечка при __cdecl, когда я выйду из варкрафта?
Утечка памяти высвобождается при уничтожении процесса, ибо вся занятая ею память освобождается системой. (По крайней мере так утверждает Microsoft), ибо как ни как эти утечки stack/heap - часть программы, а у неё выделена память от 0x0 до 2GB (при патчере 4GB) памяти. Я не особо практиковал утечки памяти, потому не могу прямо утверждать, что всё так просто или нет, но думаю Microsoft как-то да и контролируют приложения. :D
Использование неправильной конвенции вызова приведет к повреждению памяти стэка.
Хранящиеся в нём локальные переменные и адреса возврата могут быть перезаписаны случайными значениями, что приведет к непредсказуемым последствиям.
Хотя, стоит отметить, что виртуальная машина JASS'а (по крайней мере на 1.26а версии) способна правильно вызывать нативки использующие как cdecl так и stdcall, что используется мемхаком.
Но, если такую неправильную нативку вызовет кто другой, то весьма вероятны баги и краши.
JassVM пушит на стэк через alloca и вызывает через cdecl, не знаю откуда ты взял stdcall там. Но опять же, не суть. А Мемхак использует std_call для вызова Storm функций, но опять же, эти нюансы на деле важны лишь паре землекопов, ибо большинство эти нюансы не знает и даже не пытается в них лезть (и слава богу).
Да ты прав GetJassNative, используют соглашение cdecl. Но RegisterJassNative я использую c stdcall.
Ну, и толку от этого почти никакого. stdcall используется для импортируемых/экспортируемых функций, как на том же примере Storm.dll, а сама игра использует cdecl/thiscall/fastcall, говоря короче, твой выбор != то как должно быть или же правильно. Вызовы stdcall можно вызывать и через __cdecl, только это чревато прикольными такими утечками хипа, а порой даже и стека, так что ну такое себе.
Новые Типы:
type mappedfield extends handle
type mappedtype extends handle
type attachmenttype extends mappedtype
type bonetype extends attachmenttype
type cursoranimtype extends mappedtype
Новые Конверторы:
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
Исправлен неправильный typeId поля ABILITY_IF_BUTTON_HOTKEY_RESEARCH's с aukh на arhk.
Переименовано поле ABILITY_ILF_RESTORED_MANA__1_FOR_CURRENT в ABILITY_ILF_RESTORED_MANA_1_FOR_CURRENT.
textfilehandle тип более не использует реальный менеджмент хендлов, теперь оно использует мнимые хендлы, как fogstate, то бишь теперь оно может быть использовано в локальном блоке.
Добавлен новый экспериментальный парсер w3i, который умеет читать Reforged карты и отображать данные Сил/Игроков (слотов) и информацию карты. А также дать её запускать.
Пометка: карты написанные на "чистом" луа всё ещё не будут работать, пока Ev3nt не исправит его war3_lua.dll.
Пометка 2: это "маленькое" изменение потребовало более 1000 строк кода, что же я делаю со своей жизнью...
Технически исправлена неправильная информация в структуре связанной с MemoryAllocation, которая относился к Jass стэку и так далее.
Пометка: хотя ранее не было ошибок/проблем связанных с этой структурой, это было либо в виду везения, либо в виду малой популярности.
Исправлены все функции связанные с SetAnimationOffsetPercent.
Исправлена критическая ошибка от GetFrameName.
Исправлена GetFrameName, которая ранее работала только со фреймами типа CFrame и его дочерними типами.
Исправлена критическая ошибка, когда GetHandleId применялся на "слишком большие" значения.
ClickFrameEx теперь использует mousebuttontype заместо булевого флага.
Исправлено перекрытие стандартных действий фреймов Предметов/Заклинаний, после регистрации события FRAMEEVENT_MOUSE_DOWN.
Новые Типы:
type mappedfield extends handle
type mappedtype extends handle
type attachmenttype extends mappedtype
type bonetype extends attachmenttype
type cursoranimtype extends mappedtype
Новые Конверторы:
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
Исправлен неправильный typeId поля ABILITY_IF_BUTTON_HOTKEY_RESEARCH's с aukh на arhk.
Переименовано поле ABILITY_ILF_RESTORED_MANA__1_FOR_CURRENT в ABILITY_ILF_RESTORED_MANA_1_FOR_CURRENT.
textfilehandle тип более не использует реальный менеджмент хендлов, теперь оно использует мнимые хендлы, как fogstate, то бишь теперь оно может быть использовано в локальном блоке.
Добавлен новый экспериментальный парсер w3i, который умеет читать Reforged карты и отображать данные Сил/Игроков (слотов) и информацию карты. А также дать её запускать.
Пометка: карты написанные на "чистом" луа всё ещё не будут работать, пока Ev3nt не исправит его war3_lua.dll.
Пометка 2: это "маленькое" изменение потребовало более 1000 строк кода, что же я делаю со своей жизнью...
Технически исправлена неправильная информация в структуре связанной с MemoryAllocation, которая относился к Jass стэку и так далее.
Пометка: хотя ранее не было ошибок/проблем связанных с этой структурой, это было либо в виду везения, либо в виду малой популярности.
Исправлены все функции связанные с SetAnimationOffsetPercent.
Исправлена критическая ошибка от GetFrameName.
Исправлена GetFrameName, которая ранее работала только со фреймами типа CFrame и его дочерними типами.
Исправлена критическая ошибка, когда GetHandleId применялся на "слишком большие" значения.
ClickFrameEx теперь использует mousebuttontype заместо булевого флага.
Исправлено перекрытие стандартных действий фреймов Предметов/Заклинаний, после регистрации события FRAMEEVENT_MOUSE_DOWN.
Не хватает функции оставить градиент в полосках здоровья с кастомными полосками. Или хотя бы когда ставишь кастомные в тебя полоска из зеленого переходила в красных когда мало хп
Если оно очень надо, то за донат я готов эту фичу сделать в будущей версии. Ибо нишевые функции добавлять особо нет желания, а эта штука далеко не из простых, ввиду того, что нужно каждое состояние бара отслеживать.
А в UjAPI он уже встроен или нет? Или этот идёт как отдельная утилита?
Отдельная утилита, большинство модификаций, которые не связаны с модемейкингом - это часть вфе и это всегда будет так. Скоро-скоро будет новый лаунчер, где это всё будет удобнее и через вкладки, но в любом случае, если я начну вшивать фишки ВФЕ в ужапи, то будет фьюжен-конфьюжен.
Это сглаживает в целом изображение в виду герцовки
То есть, эта штука нужна тем, у кого герцовка монитора выше 60? Интересно, а бывают 4:3 мониторы с такой герцовкой? Ибо я не представляю зачем это "истинным варкрафтерам" 😅
А как относятся мониторы к снятию лимита? Большинство играет на 16:9 или же 21:9, и им как раз выше фпс полезен. Я просто не понимаю, чему ты удивляешься или что тебе непонятно.
Да и всяко лучше иметь "лишние фреймы", чем сидеть на 64 и банально страдать от дёрганий кадров.
Это снимает ограничитель, буквально тоже самое, что и было сделано в рефе. Это сглаживает в целом изображение в виду герцовки. Slonick:
Есть ли тут какие-то подводные камни?
Например может ли какое-то действие сработать иначе из-за более высокого фпс? (Пример - одной из игр серии РЕ разных фрейм рейт давал разный урон с ножа).
Могут ли тут ивенты с низким интервалом поплыть?
Что по совместимости? Есть ли шансы хоть на какую-то не совместимость с "дефолтом"?
Снятие лимита ФПС в Вар 3 никак не влияет на действия/триггеры и т.д. Ибо логика игры основана на локстепе, а не на герцовке.
почему бы не добавить команду для выбора количества фпс - например максимум 100 или 200
Потому что это далеко не просто и даже во ВФЕ прямого числа нет.
почему бы не добавить рядом ini файл в котором можно автоматом задавать макс фпс при запуске варика без доп команд внутриигровых
т.е. возможность не только снять ограничение, но и явно задать вручную макс фпс
Лишние телодвижения, на то это и модуль, чтобы был простым.
интересует вопрос - на сколько макс фпс грузят видеокарту / проц / память ? (условно 400 против 64)
На каждом железе по-разному, никто не мешает взять и проверить. У меня лично не дикая разница, но у кого-то на картошке явно будут проблемы.
проц и видюха используются на максимум 95% или условно от них требуется примерно столько же производительности?
или это почти полностью зависит от самой карты?
Всё зависит от количества объектов, которые игра должна прорисовать. То бишь качество * количество.
А как потом играть в мультиплеере в карты, созданные при помощи этого? Или это только для одиночных карт?
Разницы никакой, просто все пользователи должны запустить игру через UjAPI и всё и точно так же смогут играть по сети. Так и играют те же вьетнамцы. На ирине скоро будет обновление, где UjAPI будет интегрировано и всё.
Не интересуюсь рефоржедом. Да и на чистых симплфреймах там далеко не уедешь, а так - реализуемо. Использовать CBackdropFrame и эмулировать как кнопку и т.д. У меня есть планы на ещё пару примеров, но на деле данный пример показывает больше логику, а подстроиться под неё можно и другими фреймами.
> Как вы видите, хендлов всё так же 10000, а это значит, что TriggerRemoveActions не работает. Но почему же? - спросите вы, чтобы ответить на этот вопрос нужно для начала посмотреть на TriggerRemoveConditions, почему же он работает?
PT153:
TriggerRemoveAction и TriggerRemoveCondition закомментированы, они не выполняются вообще. Весь смысл был показать, что они не делают ровно ничего для Actions.
В очередной раз исправлена функция SetFrameTexture для CBackdropFrame.
Исправлена критическая ошибка в GetStringField при использовании на пустое поле.
TextFileErase переименовано в TextFileDelete.
Исправлен не выполняющийся EVENT_WIDGET_DEATH.
GetKillingUnit теперь работает с EVENT_WIDGET_DEATH.
Исправлена критическая ошибка от HandleListEnumByTypeId.
Исправлены частично-сломанные функции HandleListGetTYPEByIndex, теперь они работают как и должны.
Пометка: HandleListGetHandleByIndex и HandleListGetAgentByIndex работали без каких-либо проблем.
Исправлен Jass Logger Dev Mode не открывающий Дебаг Консоль.
В очередной раз исправлена функция SetFrameTexture для CBackdropFrame.
Исправлена критическая ошибка в GetStringField при использовании на пустое поле.
TextFileErase переименовано в TextFileDelete.
Исправлен не выполняющийся EVENT_WIDGET_DEATH.
GetKillingUnit теперь работает с EVENT_WIDGET_DEATH.
Исправлена критическая ошибка от HandleListEnumByTypeId.
Исправлены частично-сломанные функции HandleListGetTYPEByIndex, теперь они работают как и должны.
Пометка: HandleListGetHandleByIndex и HandleListGetAgentByIndex работали без каких-либо проблем.
Исправлен Jass Logger Dev Mode не открывающий Дебаг Консоль.
» Unryze Jass API / UjAPI
» Unryze Jass API / UjAPI
» Unryze Jass API / UjAPI
» WarCraft 3 / Своя нативка на С++
» WarCraft 3 / Своя нативка на С++
Ред. Unryze
» WarCraft 3 / Своя нативка на С++
Ред. Unryze
» Unryze Jass API / UjAPI - Что нового?
v1.0.26.97
type mappedfield extends handle
type mappedtype extends handle
type attachmenttype extends mappedtype
type bonetype extends attachmenttype
type cursoranimtype extends mappedtype
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
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)
native GetAnimationName takes animtype whichAnim returns string
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
Пометка: карты написанные на "чистом" луа всё ещё не будут работать, пока Ev3nt не исправит его war3_lua.dll.
Пометка 2: это "маленькое" изменение потребовало более 1000 строк кода, что же я делаю со своей жизнью...
Пометка: хотя ранее не было ошибок/проблем связанных с этой структурой, это было либо в виду везения, либо в виду малой популярности.
Ред. Unryze
» Unryze Jass API / UjAPI
v1.0.26.97
type mappedfield extends handle
type mappedtype extends handle
type attachmenttype extends mappedtype
type bonetype extends attachmenttype
type cursoranimtype extends mappedtype
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
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)
native GetAnimationName takes animtype whichAnim returns string
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
Пометка: карты написанные на "чистом" луа всё ещё не будут работать, пока Ev3nt не исправит его war3_lua.dll.
Пометка 2: это "маленькое" изменение потребовало более 1000 строк кода, что же я делаю со своей жизнью...
Пометка: хотя ранее не было ошибок/проблем связанных с этой структурой, это было либо в виду везения, либо в виду малой популярности.
» WarCraft 3 / WFE - Warcraft Feature Extender
» WarCraft 3 / FPS Unlocker
Ред. Unryze
» WarCraft 3 / FPS Unlocker
Ред. Unryze
» WarCraft 3 / FPS Unlocker
» WarCraft 3 / FPS Unlocker
Slonick:
» WarCraft 3 / FPS Unlocker
» WarCraft 3 / FPS Unlocker
» Unryze Jass API / UjAPI - Что нового?
v1.0.25.94
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
Ред. Unryze
» Unryze Jass API / UjAPI
v1.0.25.94
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
» Unryze Jass API / Unryze Jass API
» Unryze Jass API / UjAPI - Система Выбора Героев
» WarCraft 3 / Jass MythBusters
» WarCraft 3 / Jass MythBusters
TriggerRemoveAction и TriggerRemoveCondition закомментированы, они не выполняются вообще. Весь смысл был показать, что они не делают ровно ничего для Actions.
» Unryze Jass API / UjAPI
v1.0.24.92
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
Пометка: HandleListGetHandleByIndex и HandleListGetAgentByIndex работали без каких-либо проблем.
» Unryze Jass API / UjAPI - Что нового?
v1.0.24.92
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
Пометка: HandleListGetHandleByIndex и HandleListGetAgentByIndex работали без каких-либо проблем.
Ред. Unryze
» WarCraft 3 / Jass MythBusters
» WarCraft 3 / Летняя распродажа у Blizzard