Годная штука, всякие платформы будут сцать кипятком, фаст логин. Интересно как тест карты можно вовсе сделать без менюшек, нажал нопку и ты в лобби моментально?
Если найти внутренние функции обарботчики, то вполне. Просто мне лично на это лень время уделять. Но на деле, переходы - это ивенты нажатия кнопок, которые по завершению анимации создают фрейм, можно взять функцию, которая перекидывает в лобби и вызывать её сразу и т.д. и т.п.
передачу переменных через замыкание ты решил не замечать...
Я её заметил и я тебе с уверенностью скажу, что это даже близко не весомый аргумент, повторюсь, это удобно - да, но не является чем-то необходимым. nazarpunk:
Имхо, очень нужна функция
native EnumDestructablesInRange takes real x, real y, real radius, boolexpr filter, code actionFunc returns nothing, чтобы без областей обойтись. Она возможна?
Это было проще, чем я ожидал, найду оффсеты нужные на переборщики и думаю даже для предметов это добавлю, чего уж там.
Кода нет) Этот mix только подменяет модельки (его можно через mpq редактор открыть) Так как главное меню это .mdx модели (TopLeftPanel-Expansion.mdx и TopRightPanel-Expansion.mdx по адресу UI/Glues/SpriteLayers/Expansion), то я перевел эти модели в .mdl и просто через скрипт или макрос (не помню точно, давно делал) уменьшил у каждой анимации интервал длительности в 100 раз.
Если попробовать реализовать в ВФЕ, то, я так думаю, можно просто изменять эти значения в памяти игры.
Всё, понял, влияние напрямую на сами анимации спрайтов (этот код я сделал для UjAPI, что не составит труда его перенести во ВФЕ). Спасибо за наводку!
Достаточно годно, если тебе не жалко, поделись кодом, интересна твоя реализация и может потом включу это во ВФЕ с поддержкой 1.24е/1.27b/1.28f, ибо я как-то пытался добавить этот функционал, но в итоге забил (не помню точно почему).
Будешь много потыкивать ножами в жасс, я приложу усилия и прихлопну луа. :D
А если без шуток, то хватит уже переманивать людей на этот... этот "отличный" язык, у него есть свои проблемы, да и функционал, который понадобится далеко не всем. EugeAl:
Вкус и цвет это про cjass/vjass/zinc/gui. Работа с lua объективно занимает меньше времени.
Вот тебе к примеру баянистый баян. Сравни с реализацией на jass:
local x, y = GetSpellTargetX(), GetSpellTargetY()
TimerStart(CreateTimer(), 1, false, function()
print(x, y)
end)
Уже не раз писал, но анонимки - это круто до поры до времени и клепать их везде - не самая лучшая затея, ибо есть моменты, когда обыкновенный коллбек будет удобнее, ну или написать краткую "библиотеку", которая будет эти обработки сама заносить в данные ХТ и спокойно можно плодить что душе угодно, лишь бы была от этого польза.
Сойдёмся на том, что кому что удобнее, пусть то и использует, главное, чтобы не cjass.
native CreateImageSimple takes string file, real sizeX, real sizeY, real posX, real posY, real posZ, integer imageType returns image
native GetImageType takes image whichImage returns integer
native GetImageX takes image whichImage returns real
native SetImageX takes image whichImage, real sizeX returns nothing
native GetImageY takes image whichImage returns real
native SetImageY takes image whichImage, real sizeY returns nothing
native GetImageZ takes image whichImage returns real
native SetImageZ takes image whichImage, real sizeZ returns nothing
native GetImagePositionLocation takes image whichImage returns location
native SetImagePositionLocation takes image whichImage, location whichLocation returns nothing
native GetImageOriginX takes image whichImage returns real
native SetImageOriginX takes image whichImage, real originX returns nothing
native GetImageOriginY takes image whichImage returns real
native SetImageOriginY takes image whichImage, real originY returns nothing
native SetImageOrigin takes image whichImage, real originX, real originY returns nothing
native GetImageSizeX takes image whichImage returns real
native SetImageSizeX takes image whichImage, real sizeX returns nothing
native GetImageSizeY takes image whichImage returns real
native SetImageSizeY takes image whichImage, real sizeY returns nothing
native SetImageSize takes image whichImage, real size returns nothing
native SetImageSizeEx takes image whichImage, real sizeX, real sizeY returns nothing
native GetImageColour takes image whichImage returns integer
native IsImageRendered takes image whichImage returns boolean
native IsImageRenderAlways takes image whichImage returns boolean
native IsImageRenderAboveWater takes image whichImage returns boolean
native IsImageVisible takes image whichImage returns boolean
native GetImageConstantHeight takes image whichImage returns real
native GetImageTexture takes image whichImage returns string
native SetImageTexture takes image whichImage, string imagePath returns nothing
Исправлена Критическая Ошибка с событиями OnDamaging/OnDamage, который происходил в очень неоптимизированных картах (проблема связана с плохим кодом Jass в этих картах).
Пометка: причина была в виду С++ оптимизации, которая просто на просто очищала данные быстрее, чем они до конца были использованы.
Исправлена критическая ощибка связанная с выделением магазинов/улучшения заклинаний героя/спелбуков и т.д.
Пометка: данная ошибка была добавлена в виду "велосипедного" метода имплементации экспериментальной функции SetAbilityOrderId.
Добавлена псевдо-поддержка этих JN нативных функций:
native CreateImageSimple takes string file, real sizeX, real sizeY, real posX, real posY, real posZ, integer imageType returns image
native GetImageType takes image whichImage returns integer
native GetImageX takes image whichImage returns real
native SetImageX takes image whichImage, real sizeX returns nothing
native GetImageY takes image whichImage returns real
native SetImageY takes image whichImage, real sizeY returns nothing
native GetImageZ takes image whichImage returns real
native SetImageZ takes image whichImage, real sizeZ returns nothing
native GetImagePositionLocation takes image whichImage returns location
native SetImagePositionLocation takes image whichImage, location whichLocation returns nothing
native GetImageOriginX takes image whichImage returns real
native SetImageOriginX takes image whichImage, real originX returns nothing
native GetImageOriginY takes image whichImage returns real
native SetImageOriginY takes image whichImage, real originY returns nothing
native SetImageOrigin takes image whichImage, real originX, real originY returns nothing
native GetImageSizeX takes image whichImage returns real
native SetImageSizeX takes image whichImage, real sizeX returns nothing
native GetImageSizeY takes image whichImage returns real
native SetImageSizeY takes image whichImage, real sizeY returns nothing
native SetImageSize takes image whichImage, real size returns nothing
native SetImageSizeEx takes image whichImage, real sizeX, real sizeY returns nothing
native GetImageColour takes image whichImage returns integer
native IsImageRendered takes image whichImage returns boolean
native IsImageRenderAlways takes image whichImage returns boolean
native IsImageRenderAboveWater takes image whichImage returns boolean
native IsImageVisible takes image whichImage returns boolean
native GetImageConstantHeight takes image whichImage returns real
native GetImageTexture takes image whichImage returns string
native SetImageTexture takes image whichImage, string imagePath returns nothing
Исправлена Критическая Ошибка с событиями OnDamaging/OnDamage, который происходил в очень неоптимизированных картах (проблема связана с плохим кодом Jass в этих картах).
Пометка: причина была в виду С++ оптимизации, которая просто на просто очищала данные быстрее, чем они до конца были использованы.
Исправлена критическая ощибка связанная с выделением магазинов/улучшения заклинаний героя/спелбуков и т.д.
Пометка: данная ошибка была добавлена в виду "велосипедного" метода имплементации экспериментальной функции SetAbilityOrderId.
Добавлена псевдо-поддержка этих JN нативных функций:
Имхо, очень нужна функция
native EnumDestructablesInRange takes real x, real y, real radius, boolexpr filter, code actionFunc returns nothing, чтобы без областей обойтись. Она возможна?
EugeAl, возможно. Выбираете все декорации на карте, и сравниваете что попадает в радиус. Можно функц написать. Но вот посмотрим, что скажет Унруиз
Изучу и скорее всего добавлю, мне всё-равно перебор нужно будет изучить для моей будущей системы, которая сможет хранить эффекты и т.д., что будет заменой группе.
FRAMEEVENT_MOUSE_ENTER и FRAMEEVENT_MOUSE_LEAVE теперь могут быть использованы со всеми CSimpleFrames.
Пояснение: CSimpleTexture и CSimpleFontString (то бишь CSimpleRegions) не поддерживаются, так как у них нет внутренних событий.
Добавлена поддержка этих JN Нативных Функций:
native BitOr takes integer x,integer y returns integer
native BitAnd takes integer x,integer y returns integer
native BitXor takes integer x,integer y returns integer
native BitShiftL takes integer x,integer y returns integer
native BitShiftR takes integer x,integer y returns integer
native JNI2R takes integer i returns real
native JNR2I takes real r returns integer
native JNGetMaxAttackSpeed takes nothing returns real
native IsReplayMode takes nothing returns boolean
native IsHostPlayer takes nothing returns boolean
native JNStringPos takes string str,string sub returns integer
native JNStringReverse takes string str returns string
native JNStringCount takes string str,string sub returns integer
native JNStringContains takes string str,string sub returns boolean
native JNStringReplace takes string str,string old,string newstr returns string
native JNStringInsert takes string str,integer index,string val returns string
native JNStringSub takes string str,integer start,integer length returns string
native JNStringLength takes string str returns integer
Пояснение: остальные нативные функции будут видны для UjAPI, но они не будет выполнять ничего, но возвращать "пустые", но валидные данные, для превенции крашей.
Немного переделана система события урона, которая иногда посылала неверные данные, которые вызывали краш.
Исправлена неверная обработка цвета для всех CControl фреймов, то бишь CTextFrame и прочих.
Удалены все "эмулированные" табы через пробелы в common.j, что повлияло на снижение веса на 30 КБ.
FRAMEEVENT_MOUSE_ENTER и FRAMEEVENT_MOUSE_LEAVE теперь могут быть использованы со всеми CSimpleFrames.
Пояснение: CSimpleTexture и CSimpleFontString (то бишь CSimpleRegions) не поддерживаются, так как у них нет внутренних событий.
Добавлена поддержка этих JN Нативных Функций:
native BitOr takes integer x,integer y returns integer
native BitAnd takes integer x,integer y returns integer
native BitXor takes integer x,integer y returns integer
native BitShiftL takes integer x,integer y returns integer
native BitShiftR takes integer x,integer y returns integer
native JNI2R takes integer i returns real
native JNR2I takes real r returns integer
native JNGetMaxAttackSpeed takes nothing returns real
native IsReplayMode takes nothing returns boolean
native IsHostPlayer takes nothing returns boolean
native JNStringPos takes string str,string sub returns integer
native JNStringReverse takes string str returns string
native JNStringCount takes string str,string sub returns integer
native JNStringContains takes string str,string sub returns boolean
native JNStringReplace takes string str,string old,string newstr returns string
native JNStringInsert takes string str,integer index,string val returns string
native JNStringSub takes string str,integer start,integer length returns string
native JNStringLength takes string str returns integer
Пояснение: остальные нативные функции будут видны для UjAPI, но они не будет выполнять ничего, но возвращать "пустые", но валидные данные, для превенции крашей.
Немного переделана система события урона, которая иногда посылала неверные данные, которые вызывали краш.
Исправлена неверная обработка цвета для всех CControl фреймов, то бишь CTextFrame и прочих.
Удалены все "эмулированные" табы через пробелы в common.j, что повлияло на снижение веса на 30 КБ.
Unryze, Всё это мне известно) поэтому буду рассматривать, какие ещё версии кроме 1.26 добавить в мод и бэкапы)
Спасибо) честно говоря, сомневаюсь, а стоит ли вообще делать версии мода под другие версии, кроме 1.26. Всё равно у большинства стоит 1.26...
Ну, я хоть и фанат 1.26а, но аудитория есть и на других патчах, тут дело личное, париться ради сомнительного притока людей или таки спокойно жить на 1.26а и не напрягать булки (в целом, если бы не шекели, я бы ВФЕ тоже только на 1.26а оставил и сэкономил бы тьму времени).
Unryze, Элементы баланса, если речь идёт о юнитах/абилках/обьектах, хранятся в slk. Естественно, я их не трогал, просто добавил туда собственные (в смысле строки в таблицы, а не сами таблицы).
Если этот MPQ закинут на другой патч, то баланс будет с того "патча" на котором ты собирал war3patch.mpq я думал это было наглядно...
Что касается мелких патчей, то размещение файлов прямо в папках в папке игры имеет приоритет ещё выше, чем mpq. Проверено, у меня так работает изменённая UnitAskSounds.slk. Соответственно, их можно туда на время и пихать, потом удалять.
Локальные файлы не у всех включены, да и неудобные они, в общем ладно, делай так как тебе кажется правильным, тебе дали советы/пояснили что и как работает, дальше на своё усмотрение. :)
Unryze, Мне mix не нужен) собственно потому про mpq я вопрос и задавал.
Согласен, что лаунчеры удобно, особенно, если с ними можно совмещать модули.
Ну первым делом сам мод, а потом уже думать над подключениями. Ещё нужно будет смотреть, как будет на всё это реагировать собственно аудитория.
Изменять стандартный MPQ, который хранит элементы баланса - явно не лучше затея. И ещё раз, mix может хранить в себе MPQ, что позволит перезаписать (если установить приоритет выше) стандартные файлы.
Изменения в .exe дают от 0 до 0 разницы, вся логика внутри game.dll и на неё влиять через MPQ нельзя. Все изменения, что возможны из MPQ это "замена файлов", а точнее перекрытие файлом с приоритетом выше.
Kokomi, Да, мне это известно. nazarpunk, Почему сразу так то? Просто мод-патч, меняющий одну игру на другую, с поддержкой кастомок из оригинального варкрафта, луа и новых нативок для картоделов, и с улучшенной графикой, опционально, для тех, у кого комп мощный (чтобы с render edge не выдавал 10 fps с моделями того качества, что в моих паках, ведь в моде они и будут, естественно). может быть слишком амбициозно, но тем не менее не фантастично )
Слишком много пытаться пихать в игру "из коробки" рано или поздно начнёт вызывать коллизии адресов/функционала, UjAPI через .mix тоже никогда не будет. Лаунчеры удобнее тем (в будущем, когда мои руки дойдут до расширения UjAPI) - это сделать управление включение/выключение тех или иных модулей.
В общем, для начала определись, что именно хочешь сделать и для чего, а там уже виднее будет, что для достижения этого понадобится.
А будут ли какие-то отзывы или рецензии на номинированные проекты, помимо бальной системы?
Почитал бы.
Два человека выше задали конкретный вопрос и получили ответ, запрос конечно логичный, но какой толк? Пояснения почему тот или иной балл всё-равно некоторые даже выслушивать не хотят, потому стоит эту тему уже опустить, а кому хочется знать нюансы - спросит вежливо сам, а не упрёками.
Lord_Teo
Спасибо за подробный ответ. :)
Точно не помню до куда дошёл, но ты верно подметил, что явно не прямо далеко и видать зря, но вот очередная разница карт приближенных к рпг, вот такие нюансы, которые не везде можно ощутить.
Ну и отдельное спасибо, что без пены изо рта отнёсся к оценкам.
Ageron, вот как раз 60% и было с размытыми квадратиками. Сейчас компы мощнее, переваривают текстуры быстрее, стоит ли делать сжатие по стандартам 2003 года? Unryze, ну в целом, сжатие уровня zip меня устроит, пожалуй. Это лучше, чем риск битого файла. Неохота потом разбираться, почему игра крашнулась из за битой текстуры...
Ну мне было важно, в чем проблема и как её решать :) за фанатство по Героям отдельный плюс в карму :)
Опять же, опирайся на то, для чего ты делаешь пак, если для себя, то тебе решать за вес и можешь напрочь забыть об оценке (ибо она не является каким-то де факто решением, на которое ты обязан опираться). На деле - это не проблемы, а придирки, хоть и слегка оправданные. В целом, золотое правило Вар 3 -> 80% и 256х256 / 512x512, если же хочется идти в ногу со временем, то 90-95%. Но одно запомни, никогда, НИКОГДА не используй 100% и даже 99%, разница качества с 95% почти незаметная, а разница веса порой 10-15%...
Unryze, кстати, да, а почему ты поставил мне такие низкие оценки, а?) Ты хоть первые ворота открыл, слабак?) Если че, я без претензий=)
Промазал твой вопрос от всей этой стены ЕоВ. Отвечу кратко и скорее всего опять пойдёт волна "о нет, он хейтит мили/кампании", я не спорю, что "лор" ну, то бишь построение "истории" и прохождения поставлены хорошо, но по-мимо этого, у нас стандартные абилки, отсутствие каких-либо событий вне тех, что связаны с задачей (побочные квесты допустим), ну и относительно скучный (для меня) процесс игры. (дополнение: под "скучный" я имею ввиду развитие событий, но тут думаю большой фактор сыграла игра в одиночку).
Возьми допустим древнюю Hohoi Custom Hero Survival, она хоть и разворачивается вокруг "одной" комнаты, но такое же ощущение я получил и от твоей карты, но без того же драйва как соревнования с кем-то другим или же в целом экспериментов со сборками (хотя это спорно, ибо даже там есть goto сборка, которая почти на 100% даёт победу, исключение - рандом режим).
Если бы хотя бы в шутку задали вопрос, я бы расписал всё (хоть это я и не обязан делать), ибо мне не лень давать конкретную критику, если её адекватно попросят, но я хочу добавить, что низкие баллы - никакой не приговор карте, ибо это решение одного человека и если оно так сильно сказывается (речь не о тебе), то явно не стоит этим заниматься, если всё принимается так близко к сердцу.
Извини за поздний ответ + немного оффтопа, если что-то не так описал, скажи, ибо в 3 утра уже голова не в лучшем свете соображает.
Unryze, Благодарю за подробное разъяснение. :)
В общем, оригиналы в bmp и png (с альфа каналом) есть. Но не будет ли с качеством 80% слишком мыльно? доводилось иметь дело с такими пережатыми текстурами - это тихий ужас, текстура как будто состоит из квадратиков, а каждый квадратик размыт...
И второй вопрос - если эти текстуры предназначены для упаковки в архив mpq - в данном случае тоже стоит делать оптимизацию, или сжатие в самом архиве её компенсирует?
80% с данными текстурами будет мало заметно, ибо оно и так немного с "артефактами" (не в обиду), 80% - пожалуй самое низкое, что можно поставить, ниже думаю будет уже совсем худо. MPQ сжимает конечно, но вес будет +- уровня zip с обычным сжатием, то бишь 15МБ или же 13МБ, ну может чутка меньше, но не сильно.
MPQ лишь со zlib методом сжатия, может побить вес zip/rar, но чем агрессивнее zlib, тем больше шансов на то, что какой-то файл будет полностью битый.
Да и тебе спасибо, что адекватно принял критику, всегда приятно отвечать таким. И ещё раз, спасибо за труды, ибо я большой фанат серии Героев. :)
Посмотрел оценки и комментарии жюри. За оценку дизайна/анимаций/ностальгии - спасибо. Но хотелось бы уточнить, что именно подразумевается под "отсутствует банальная оптимизация" - сжатие текстур, или же их размер, или их количество на 1 модель, или что-то другое. Это нужно для проведения той самой оптимизации в следующих моделях, при возможности.
Обещал не отвечать тут, но вопрос уместный, потому думаю можно:
Начнём с текстурх (их не так много):
Если заменить тип на palette или же пересохранить и отбросить альфа-канал, можно сжать ещё на 20-30кб (это не много).
Использование 95% - приводит к большому весу, в остальном ответ выше, можно применить опять.
Опять 95%, так же можно технически ужать до 256х256, однако хватит в целом снизить качество до 80%.
Вся проблема по-большей части строго упирается в вес, а контраст качества весьма низок (не на фоне других моделей, а с самим весом). Опять же, я придирался до совсем больших нюансов, и возможно стоило отнестись мягче, но ввиду опять же других номинантов, а точнее того, кто создал фактически целую расу на HD ассетах, было сложно дать баллы выше.
В остальном, у тебя всё отлично, оптимизировать на деле нужно лишь тогда, если для кого-то вес покажется слишком большим, потому это сейчас делать не имеет смысла. Я ещё надеюсь, что оригинальные текстуры у тебя в TGA или хотя бы в png варианте, чтобы всегда можно было пересохранить в другом качестве.
Конечно же, на фоне всяких HD моделек (где вес одной модели зачастую достигает вес всего одного пака твоих моделей) - это не такой уж и большой вес, но исходя из средних нужд картоделов, всё будет упираться в нужду ассетов. По-отдельности, если брать строго модели, то балл был бы на 1.5-2 выше (в целом).
Надеюсь всё подробно пояснил, если нет, задай конкретный вопрос и постараюсь на него ответить. :)
» WarCraft 3 / Быстрые анимации в главном меню
Ред. Unryze
» Unryze Jass API / UjAPI
» Unryze Jass API / UjAPI
Kokomi:
nazarpunk:
nazarpunk:
Ред. Unryze
» Unryze Jass API / UjAPI
» WarCraft 3 / Быстрые анимации в главном меню
» WarCraft 3 / Быстрые анимации в главном меню
» Unryze Jass API / UjAPI
EugeAl:
nazarpunk:
Ред. Unryze
» Unryze Jass API / UjAPI - Что нового?
v1.0.14.65
native GetImageType takes image whichImage returns integer
native GetImageX takes image whichImage returns real
native SetImageX takes image whichImage, real sizeX returns nothing
native GetImageY takes image whichImage returns real
native SetImageY takes image whichImage, real sizeY returns nothing
native GetImageZ takes image whichImage returns real
native SetImageZ takes image whichImage, real sizeZ returns nothing
native GetImagePositionLocation takes image whichImage returns location
native SetImagePositionLocation takes image whichImage, location whichLocation returns nothing
native GetImageOriginX takes image whichImage returns real
native SetImageOriginX takes image whichImage, real originX returns nothing
native GetImageOriginY takes image whichImage returns real
native SetImageOriginY takes image whichImage, real originY returns nothing
native SetImageOrigin takes image whichImage, real originX, real originY returns nothing
native GetImageSizeX takes image whichImage returns real
native SetImageSizeX takes image whichImage, real sizeX returns nothing
native GetImageSizeY takes image whichImage returns real
native SetImageSizeY takes image whichImage, real sizeY returns nothing
native SetImageSize takes image whichImage, real size returns nothing
native SetImageSizeEx takes image whichImage, real sizeX, real sizeY returns nothing
native GetImageColour takes image whichImage returns integer
native IsImageRendered takes image whichImage returns boolean
native IsImageRenderAlways takes image whichImage returns boolean
native IsImageRenderAboveWater takes image whichImage returns boolean
native IsImageVisible takes image whichImage returns boolean
native GetImageConstantHeight takes image whichImage returns real
native GetImageTexture takes image whichImage returns string
native SetImageTexture takes image whichImage, string imagePath returns nothing
Пометка: причина была в виду С++ оптимизации, которая просто на просто очищала данные быстрее, чем они до конца были использованы.
Пометка: данная ошибка была добавлена в виду "велосипедного" метода имплементации экспериментальной функции SetAbilityOrderId.
native JNDailyCheckToday takes string MapId, string UserId, string SecretKey, string Character, string DailyType returns string
native JNDailyCheckTodayList takes string MapId, string UserId, string SecretKey, string Character, string DailyType returns string
native JNDailyCountWeek takes string MapId, string UserId, string SecretKey, string Character, string DailyType, string WeekDay returns string
native JNDailyCountWeekList takes string MapId, string UserId, string SecretKey, string Character, string DailyType, string WeekDay returns string
native JNDailyCountMonth takes string MapId, string UserId, string SecretKey, string Character, string DailyType returns string
native JNDailyCountMonthList takes string MapId, string UserId, string SecretKey, string Character, string DailyType returns string
Ред. Unryze
» Unryze Jass API / UjAPI
v1.0.14.65
native GetImageType takes image whichImage returns integer
native GetImageX takes image whichImage returns real
native SetImageX takes image whichImage, real sizeX returns nothing
native GetImageY takes image whichImage returns real
native SetImageY takes image whichImage, real sizeY returns nothing
native GetImageZ takes image whichImage returns real
native SetImageZ takes image whichImage, real sizeZ returns nothing
native GetImagePositionLocation takes image whichImage returns location
native SetImagePositionLocation takes image whichImage, location whichLocation returns nothing
native GetImageOriginX takes image whichImage returns real
native SetImageOriginX takes image whichImage, real originX returns nothing
native GetImageOriginY takes image whichImage returns real
native SetImageOriginY takes image whichImage, real originY returns nothing
native SetImageOrigin takes image whichImage, real originX, real originY returns nothing
native GetImageSizeX takes image whichImage returns real
native SetImageSizeX takes image whichImage, real sizeX returns nothing
native GetImageSizeY takes image whichImage returns real
native SetImageSizeY takes image whichImage, real sizeY returns nothing
native SetImageSize takes image whichImage, real size returns nothing
native SetImageSizeEx takes image whichImage, real sizeX, real sizeY returns nothing
native GetImageColour takes image whichImage returns integer
native IsImageRendered takes image whichImage returns boolean
native IsImageRenderAlways takes image whichImage returns boolean
native IsImageRenderAboveWater takes image whichImage returns boolean
native IsImageVisible takes image whichImage returns boolean
native GetImageConstantHeight takes image whichImage returns real
native GetImageTexture takes image whichImage returns string
native SetImageTexture takes image whichImage, string imagePath returns nothing
Пометка: причина была в виду С++ оптимизации, которая просто на просто очищала данные быстрее, чем они до конца были использованы.
Пометка: данная ошибка была добавлена в виду "велосипедного" метода имплементации экспериментальной функции SetAbilityOrderId.
native JNDailyCheckToday takes string MapId, string UserId, string SecretKey, string Character, string DailyType returns string
native JNDailyCheckTodayList takes string MapId, string UserId, string SecretKey, string Character, string DailyType returns string
native JNDailyCountWeek takes string MapId, string UserId, string SecretKey, string Character, string DailyType, string WeekDay returns string
native JNDailyCountWeekList takes string MapId, string UserId, string SecretKey, string Character, string DailyType, string WeekDay returns string
native JNDailyCountMonth takes string MapId, string UserId, string SecretKey, string Character, string DailyType returns string
native JNDailyCountMonthList takes string MapId, string UserId, string SecretKey, string Character, string DailyType returns string
» Unryze Jass API / UjAPI
Ред. Unryze
» Unryze Jass API / UjAPI - Что нового?
v1.0.13.63
constant buffstringfield BUFF_SF_TOOLTIP_NORMAL = ConvertBuffStringField('ftip')
constant buffstringfield BUFF_SF_TOOLTIP_NORMAL_EXTENDED = ConvertBuffStringField('fube')
constant unitstringfield UNIT_SF_HERO_ABILITY_LIST = ConvertUnitStringField('uhab')
constant unitstringfield UNIT_SF_ABILITY_LIST = ConvertUnitStringField('uabi')
native HideOriginFrames takes boolean flag returns nothing
native EditBlackBorders takes real upperHeight, real bottomHeight returns nothing
Ability
native GetAbilityOrderId takes ability whichAbility returns integer this replaced GetAbilityOrder, used wrong naming
native SetAbilityOrderId takes ability whichAbility, integer orderId returns boolean Highly experimental, may be removed if proven unstable.
native SetAbilityLevel takes ability whichAbility, integer level returns boolean
Ability Base Field API
native GetAbilityBaseIntegerFieldById takes integer aid, abilityintegerfield whichField returns integer
native SetAbilityBaseIntegerFieldById takes integer aid, abilityintegerfield whichField, integer value returns boolean
native GetAbilityBaseBooleanFieldById takes integer aid, abilitybooleanfield whichField returns boolean
native SetAbilityBaseBooleanFieldById takes integer aid, abilitybooleanfield whichField, boolean value returns boolean
native GetAbilityBaseRealFieldById takes integer aid, abilityrealfield whichField returns real
native SetAbilityBaseRealFieldById takes integer aid, abilityrealfield whichField, real value returns boolean
native GetAbilityBaseStringFieldById takes integer aid, abilitystringfield whichField returns string
native SetAbilityBaseStringFieldById takes integer aid, abilitystringfield whichField, string value returns boolean
native GetAbilityBaseIntegerLevelFieldById takes integer aid, abilityintegerlevelfield whichField, integer level returns integer
native SetAbilityBaseIntegerLevelFieldById takes integer aid, abilityintegerlevelfield whichField, integer level, integer value returns boolean
native GetAbilityBaseBooleanLevelFieldById takes integer aid, abilitybooleanlevelfield whichField, integer level returns boolean
native SetAbilityBaseBooleanLevelFieldById takes integer aid, abilitybooleanlevelfield whichField, integer level, boolean value returns boolean
native GetAbilityBaseRealLevelFieldById takes integer aid, abilityreallevelfield whichField, integer level returns real
native SetAbilityBaseRealLevelFieldById takes integer aid, abilityreallevelfield whichField, integer level, real value returns boolean
native GetAbilityBaseStringLevelFieldById takes integer aid, abilitystringlevelfield whichField, integer level returns string
native SetAbilityBaseStringLevelFieldById takes integer aid, abilitystringlevelfield whichField, integer level, string value returns boolean
native GetAbilityBaseIntegerLevelArrayFieldById takes integer aid, abilityintegerlevelarrayfield whichField, integer level, integer index returns integer
native SetAbilityBaseIntegerLevelArrayFieldById takes integer aid, abilityintegerlevelarrayfield whichField, integer level, integer index, integer value returns boolean
native AddAbilityBaseIntegerLevelArrayFieldById takes integer aid, abilityintegerlevelarrayfield whichField, integer level, integer value returns boolean
native RemoveAbilityBaseIntegerLevelArrayFieldById takes integer aid, abilityintegerlevelarrayfield whichField, integer level, integer value returns boolean
native GetAbilityBaseBooleanLevelArrayFieldById takes integer aid, abilitybooleanlevelarrayfield whichField, integer level, integer index returns boolean
native SetAbilityBaseBooleanLevelArrayFieldById takes integer aid, abilitybooleanlevelarrayfield whichField, integer level, integer index, boolean value returns boolean
native AddAbilityBaseBooleanLevelArrayFieldById takes integer aid, abilitybooleanlevelarrayfield whichField, integer level, boolean value returns boolean
native RemoveAbilityBaseBooleanLevelArrayFieldById takes integer aid, abilitybooleanlevelarrayfield whichField, integer level, boolean value returns boolean
native GetAbilityBaseRealLevelArrayFieldById takes integer aid, abilityreallevelarrayfield whichField, integer level, integer index returns real
native SetAbilityBaseRealLevelArrayFieldById takes integer aid, abilityreallevelarrayfield whichField, integer level, integer index, real value returns boolean
native AddAbilityBaseRealLevelArrayFieldById takes integer aid, abilityreallevelarrayfield whichField, integer level, real value returns boolean
native RemoveAbilityBaseRealLevelArrayFieldById takes integer aid, abilityreallevelarrayfield whichField, integer level, real value returns boolean
native GetAbilityBaseStringLevelArrayFieldById takes integer aid, abilitystringlevelarrayfield whichField, integer level, integer index returns string
native SetAbilityBaseStringLevelArrayFieldById takes integer aid, abilitystringlevelarrayfield whichField, integer level, integer index, string value returns boolean
native AddAbilityBaseStringLevelArrayFieldById takes integer aid, abilitystringlevelarrayfield whichField, integer level, string value returns boolean
native RemoveAbilityBaseStringLevelArrayFieldById takes integer aid, abilitystringlevelarrayfield whichField, integer level, string value returns boolean
Buff Base Field API
native GetBuffBaseStringFieldById takes integer aid, buffstringfield whichField returns string
native SetBuffBaseStringFieldById takes integer aid, buffstringfield whichField, string value returns boolean
Buff Field API
native GetBuffStringField takes buff whichBuff, buffstringfield whichField returns string
native SetBuffStringField takes buff whichBuff, buffstringfield whichField, string value returns boolean
Item Base Field API
native GetBaseItemIntegerFieldById takes integer itemId, itemintegerfield whichField returns integer
native SetBaseItemIntegerFieldById takes integer itemId, itemintegerfield whichField, integer value returns boolean
native GetBaseItemBooleanFieldById takes integer itemId, itembooleanfield whichField returns boolean
native SetBaseItemBooleanFieldById takes integer itemId, itembooleanfield whichField, boolean value returns boolean
native GetBaseItemRealFieldById takes integer itemId, itemrealfield whichField returns real
native SetBaseItemRealFieldById takes integer itemId, itemrealfield whichField, real value returns boolean
native GetBaseItemStringFieldById takes integer itemId, itemstringfield whichField returns string
native SetBaseItemStringFieldById takes integer itemId, itemstringfield whichField, string value returns boolean
Unit Base Field API
native GetUnitBaseIntegerFieldById takes integer unitTypeId, unitintegerfield whichField returns integer
native SetUnitBaseIntegerFieldById takes integer unitTypeId, unitintegerfield whichField, integer value returns boolean
native GetUnitBaseBooleanFieldById takes integer unitTypeId, unitbooleanfield whichField returns boolean
native SetUnitBaseBooleanFieldById takes integer unitTypeId, unitbooleanfield whichField, boolean value returns boolean
native GetUnitBaseRealFieldById takes integer unitTypeId, unitrealfield whichField returns real
native SetUnitBaseRealFieldById takes integer unitTypeId, unitrealfield whichField, real value returns boolean
native GetUnitBaseStringFieldById takes integer unitTypeId, unitstringfield whichField returns string
native SetUnitBaseStringFieldById takes integer unitTypeId, unitstringfield whichField, string value returns boolean
native GetUnitBaseWeaponIntegerFieldById takes integer unitTypeId, unitweaponintegerfield whichField, integer index returns integer
native SetUnitBaseWeaponIntegerFieldById takes integer unitTypeId, unitweaponintegerfield whichField, integer index, integer value returns boolean
native GetUnitBaseWeaponBooleanFieldById takes integer unitTypeId, unitweaponbooleanfield whichField, integer index returns boolean
native SetUnitBaseWeaponBooleanFieldById takes integer unitTypeId, unitweaponbooleanfield whichField, integer index, boolean value returns boolean
native GetUnitBaseWeaponRealFieldById takes integer unitTypeId, unitweaponrealfield whichField, integer index returns real
native SetUnitBaseWeaponRealFieldById takes integer unitTypeId, unitweaponrealfield whichField, integer index, real value returns boolean
native GetUnitBaseWeaponStringFieldById takes integer unitTypeId, unitweaponstringfield whichField, integer index returns string
native SetUnitBaseWeaponStringFieldById takes integer unitTypeId, unitweaponstringfield whichField, integer index, string value returns boolean
CReplayButton
CTrainableButton
CCommandButton
CHeroBarButton
CSimpleCheckbox
Пояснение: CSimpleTexture и CSimpleFontString (то бишь CSimpleRegions) не поддерживаются, так как у них нет внутренних событий.
native BitAnd takes integer x,integer y returns integer
native BitXor takes integer x,integer y returns integer
native BitShiftL takes integer x,integer y returns integer
native BitShiftR takes integer x,integer y returns integer
native JNI2R takes integer i returns real
native JNR2I takes real r returns integer
native JNGetMaxAttackSpeed takes nothing returns real
native IsReplayMode takes nothing returns boolean
native IsHostPlayer takes nothing returns boolean
native JNStringPos takes string str,string sub returns integer
native JNStringReverse takes string str returns string
native JNStringCount takes string str,string sub returns integer
native JNStringContains takes string str,string sub returns boolean
native JNStringReplace takes string str,string old,string newstr returns string
native JNStringInsert takes string str,integer index,string val returns string
native JNStringSub takes string str,integer start,integer length returns string
native JNStringLength takes string str returns integer
Пояснение: остальные нативные функции будут видны для UjAPI, но они не будет выполнять ничего, но возвращать "пустые", но валидные данные, для превенции крашей.
Ред. Unryze
» Unryze Jass API / UjAPI
v1.0.13.63
constant buffstringfield BUFF_SF_TOOLTIP_NORMAL = ConvertBuffStringField('ftip')
constant buffstringfield BUFF_SF_TOOLTIP_NORMAL_EXTENDED = ConvertBuffStringField('fube')
constant unitstringfield UNIT_SF_HERO_ABILITY_LIST = ConvertUnitStringField('uhab')
constant unitstringfield UNIT_SF_ABILITY_LIST = ConvertUnitStringField('uabi')
native HideOriginFrames takes boolean flag returns nothing
native EditBlackBorders takes real upperHeight, real bottomHeight returns nothing
Ability
native GetAbilityOrderId takes ability whichAbility returns integer this replaced GetAbilityOrder, used wrong naming
native SetAbilityOrderId takes ability whichAbility, integer orderId returns boolean Highly experimental, may be removed if proven unstable.
native SetAbilityLevel takes ability whichAbility, integer level returns boolean
Ability Base Field API
native GetAbilityBaseIntegerFieldById takes integer aid, abilityintegerfield whichField returns integer
native SetAbilityBaseIntegerFieldById takes integer aid, abilityintegerfield whichField, integer value returns boolean
native GetAbilityBaseBooleanFieldById takes integer aid, abilitybooleanfield whichField returns boolean
native SetAbilityBaseBooleanFieldById takes integer aid, abilitybooleanfield whichField, boolean value returns boolean
native GetAbilityBaseRealFieldById takes integer aid, abilityrealfield whichField returns real
native SetAbilityBaseRealFieldById takes integer aid, abilityrealfield whichField, real value returns boolean
native GetAbilityBaseStringFieldById takes integer aid, abilitystringfield whichField returns string
native SetAbilityBaseStringFieldById takes integer aid, abilitystringfield whichField, string value returns boolean
native GetAbilityBaseIntegerLevelFieldById takes integer aid, abilityintegerlevelfield whichField, integer level returns integer
native SetAbilityBaseIntegerLevelFieldById takes integer aid, abilityintegerlevelfield whichField, integer level, integer value returns boolean
native GetAbilityBaseBooleanLevelFieldById takes integer aid, abilitybooleanlevelfield whichField, integer level returns boolean
native SetAbilityBaseBooleanLevelFieldById takes integer aid, abilitybooleanlevelfield whichField, integer level, boolean value returns boolean
native GetAbilityBaseRealLevelFieldById takes integer aid, abilityreallevelfield whichField, integer level returns real
native SetAbilityBaseRealLevelFieldById takes integer aid, abilityreallevelfield whichField, integer level, real value returns boolean
native GetAbilityBaseStringLevelFieldById takes integer aid, abilitystringlevelfield whichField, integer level returns string
native SetAbilityBaseStringLevelFieldById takes integer aid, abilitystringlevelfield whichField, integer level, string value returns boolean
native GetAbilityBaseIntegerLevelArrayFieldById takes integer aid, abilityintegerlevelarrayfield whichField, integer level, integer index returns integer
native SetAbilityBaseIntegerLevelArrayFieldById takes integer aid, abilityintegerlevelarrayfield whichField, integer level, integer index, integer value returns boolean
native AddAbilityBaseIntegerLevelArrayFieldById takes integer aid, abilityintegerlevelarrayfield whichField, integer level, integer value returns boolean
native RemoveAbilityBaseIntegerLevelArrayFieldById takes integer aid, abilityintegerlevelarrayfield whichField, integer level, integer value returns boolean
native GetAbilityBaseBooleanLevelArrayFieldById takes integer aid, abilitybooleanlevelarrayfield whichField, integer level, integer index returns boolean
native SetAbilityBaseBooleanLevelArrayFieldById takes integer aid, abilitybooleanlevelarrayfield whichField, integer level, integer index, boolean value returns boolean
native AddAbilityBaseBooleanLevelArrayFieldById takes integer aid, abilitybooleanlevelarrayfield whichField, integer level, boolean value returns boolean
native RemoveAbilityBaseBooleanLevelArrayFieldById takes integer aid, abilitybooleanlevelarrayfield whichField, integer level, boolean value returns boolean
native GetAbilityBaseRealLevelArrayFieldById takes integer aid, abilityreallevelarrayfield whichField, integer level, integer index returns real
native SetAbilityBaseRealLevelArrayFieldById takes integer aid, abilityreallevelarrayfield whichField, integer level, integer index, real value returns boolean
native AddAbilityBaseRealLevelArrayFieldById takes integer aid, abilityreallevelarrayfield whichField, integer level, real value returns boolean
native RemoveAbilityBaseRealLevelArrayFieldById takes integer aid, abilityreallevelarrayfield whichField, integer level, real value returns boolean
native GetAbilityBaseStringLevelArrayFieldById takes integer aid, abilitystringlevelarrayfield whichField, integer level, integer index returns string
native SetAbilityBaseStringLevelArrayFieldById takes integer aid, abilitystringlevelarrayfield whichField, integer level, integer index, string value returns boolean
native AddAbilityBaseStringLevelArrayFieldById takes integer aid, abilitystringlevelarrayfield whichField, integer level, string value returns boolean
native RemoveAbilityBaseStringLevelArrayFieldById takes integer aid, abilitystringlevelarrayfield whichField, integer level, string value returns boolean
Buff Base Field API
native GetBuffBaseStringFieldById takes integer aid, buffstringfield whichField returns string
native SetBuffBaseStringFieldById takes integer aid, buffstringfield whichField, string value returns boolean
Buff Field API
native GetBuffStringField takes buff whichBuff, buffstringfield whichField returns string
native SetBuffStringField takes buff whichBuff, buffstringfield whichField, string value returns boolean
Item Base Field API
native GetBaseItemIntegerFieldById takes integer itemId, itemintegerfield whichField returns integer
native SetBaseItemIntegerFieldById takes integer itemId, itemintegerfield whichField, integer value returns boolean
native GetBaseItemBooleanFieldById takes integer itemId, itembooleanfield whichField returns boolean
native SetBaseItemBooleanFieldById takes integer itemId, itembooleanfield whichField, boolean value returns boolean
native GetBaseItemRealFieldById takes integer itemId, itemrealfield whichField returns real
native SetBaseItemRealFieldById takes integer itemId, itemrealfield whichField, real value returns boolean
native GetBaseItemStringFieldById takes integer itemId, itemstringfield whichField returns string
native SetBaseItemStringFieldById takes integer itemId, itemstringfield whichField, string value returns boolean
Unit Base Field API
native GetUnitBaseIntegerFieldById takes integer unitTypeId, unitintegerfield whichField returns integer
native SetUnitBaseIntegerFieldById takes integer unitTypeId, unitintegerfield whichField, integer value returns boolean
native GetUnitBaseBooleanFieldById takes integer unitTypeId, unitbooleanfield whichField returns boolean
native SetUnitBaseBooleanFieldById takes integer unitTypeId, unitbooleanfield whichField, boolean value returns boolean
native GetUnitBaseRealFieldById takes integer unitTypeId, unitrealfield whichField returns real
native SetUnitBaseRealFieldById takes integer unitTypeId, unitrealfield whichField, real value returns boolean
native GetUnitBaseStringFieldById takes integer unitTypeId, unitstringfield whichField returns string
native SetUnitBaseStringFieldById takes integer unitTypeId, unitstringfield whichField, string value returns boolean
native GetUnitBaseWeaponIntegerFieldById takes integer unitTypeId, unitweaponintegerfield whichField, integer index returns integer
native SetUnitBaseWeaponIntegerFieldById takes integer unitTypeId, unitweaponintegerfield whichField, integer index, integer value returns boolean
native GetUnitBaseWeaponBooleanFieldById takes integer unitTypeId, unitweaponbooleanfield whichField, integer index returns boolean
native SetUnitBaseWeaponBooleanFieldById takes integer unitTypeId, unitweaponbooleanfield whichField, integer index, boolean value returns boolean
native GetUnitBaseWeaponRealFieldById takes integer unitTypeId, unitweaponrealfield whichField, integer index returns real
native SetUnitBaseWeaponRealFieldById takes integer unitTypeId, unitweaponrealfield whichField, integer index, real value returns boolean
native GetUnitBaseWeaponStringFieldById takes integer unitTypeId, unitweaponstringfield whichField, integer index returns string
native SetUnitBaseWeaponStringFieldById takes integer unitTypeId, unitweaponstringfield whichField, integer index, string value returns boolean
CReplayButton
CTrainableButton
CCommandButton
CHeroBarButton
CSimpleCheckbox
Пояснение: CSimpleTexture и CSimpleFontString (то бишь CSimpleRegions) не поддерживаются, так как у них нет внутренних событий.
native BitAnd takes integer x,integer y returns integer
native BitXor takes integer x,integer y returns integer
native BitShiftL takes integer x,integer y returns integer
native BitShiftR takes integer x,integer y returns integer
native JNI2R takes integer i returns real
native JNR2I takes real r returns integer
native JNGetMaxAttackSpeed takes nothing returns real
native IsReplayMode takes nothing returns boolean
native IsHostPlayer takes nothing returns boolean
native JNStringPos takes string str,string sub returns integer
native JNStringReverse takes string str returns string
native JNStringCount takes string str,string sub returns integer
native JNStringContains takes string str,string sub returns boolean
native JNStringReplace takes string str,string old,string newstr returns string
native JNStringInsert takes string str,integer index,string val returns string
native JNStringSub takes string str,integer start,integer length returns string
native JNStringLength takes string str returns integer
Пояснение: остальные нативные функции будут видны для UjAPI, но они не будет выполнять ничего, но возвращать "пустые", но валидные данные, для превенции крашей.
Ред. Unryze
» WarCraft 3 / Jass MythBusters
» Warcraft III - Lua / Warcraft III - Lua
» Warcraft III - Lua / Warcraft III - Lua
» Warcraft III - Lua / Warcraft III - Lua
» Warcraft III - Lua / Warcraft III - Lua
» XGM Team / XGM - Премия 2022 года - Объявление победителей!
Ред. Unryze
» XGM Team / XGM - Премия 2022 года - Объявление победителей!
Спасибо за подробный ответ. :)
Точно не помню до куда дошёл, но ты верно подметил, что явно не прямо далеко и видать зря, но вот очередная разница карт приближенных к рпг, вот такие нюансы, которые не везде можно ощутить.
Ну и отдельное спасибо, что без пены изо рта отнёсся к оценкам.
» XGM Team / XGM - Премия 2022 года - Объявление победителей!
Ред. Unryze
» XGM Team / XGM - Премия 2022 года - Объявление победителей!
» XGM Team / XGM - Премия 2022 года - Объявление победителей!
» XGM Team / XGM - Премия 2022 года - Объявление победителей!