16

» WarCraft 3 / Что меньше влияет на память?

я понял, о чем ты, я говорю, что жасс не подгадаешь - в кишках простейших действий тысячи прыжков и обращений к самым разным областям памяти, т.к. байт-код исполняется еще и в "виртуалке". нет смысла играть в компилятор, достаточно делать те оптимизации, которые не противоречат общей логике.
16

» WarCraft 3 / Что меньше влияет на память?

бранчера в виртуалке жасса нет, а количество внутренних проверок рабочих объектов на каждом этапе так велико, что надеяться на "прогрев" нативок бессмысленно. Если используется больше одного раза - вбивай в локалку, если один раз - оставляй вызовом функции.
16

» WarCraft 3 / Вопросы по мемхаку

не нужно лечение, если у тебя игра длится меньше пары часов, ты вряд ли дойдешь до значительной нагрузки
16

» WarCraft 3 / Warcraft 3 Reforged Взломан!

хммм, дай подумать, наверное дело в том, что у тебя не должно быть иконки в позиции с отрицательным индексом? UB во всей красе
И давно уже сказано, что buttonpos=-2147483648,-2147483648 надо использовать, а не это ваше всё
16

» WarCraft 3 / Warcraft 3 Reforged Взломан!

и что же ты делал, чтобы трижды крашнуть 1.26?
не перестаю хвалить именно такой подход близзов, где в игре, созданной с парой сотен различных скиллов и апгрейдов, огромными листами механик, встроенным ИИ, по пальцам пересчитать краши. Причем они появляются не из-за того, что код кривой, а из-за Undefined Behavior, как с ANeg, который не предполагали вообще увидеть на обычном юните вместо героя.
Вспомнил ту же доту2, которую кроили изначально под известный список абилок, зная наперед всё, что понадобится, и всё равно часто попадали впросак.
16

» WarCraft 3 / Вопросы по мемхаку

ссылаются на свою, меняй описание в завимисоти от выделенного юнита локальным игроком по таймеру
16

» WarCraft 3 / Вопросы по мемхаку

для итемов всё то же самое, как и с абилками, просто вместо id абилки id итема
16

» WarCraft 3 / Обучение jass

Проблема в том, что "рынок" и без того пуст (мертв), так что даже "что-то", что не учит в очередной раз двигать гуишные менюшки, уже неплохо.
самое главное в jass - английский язык. как и в любом языке, кроме 1С.
16

» WarCraft 3 / LoadAgentHandle или LoadUnitHandle?

сохраняют в таблицу для использования потом. а как использовать агент? он в двух с половиной функций разрешен в аргументах. поэтому и сохранять его смысла нет
по скорости всё одинаково, игре похер че вы сохраняете, это всегда 32-битное число
16

» WarCraft 3 / Совет по оптимизации скрипта

IsTerrainPathable(x,y,PATHING_TYPE_WALKABILITY) дороговатая в плане ресурсов
это с чего вдруг она стала дорогой?
16

» WarCraft 3 / Триггерный урон на ровне с атакой

у фрога он наносится до удара, у меня вместе с ударом, но это мемхак или перенос всех абилок с уроном на триггерный урон
16

» WarCraft 3 / Триггерный урон на ровне с атакой

quq_CCCP:
Гуванч, дикий костыль который заставит отказатся от орбов, критов и башей в дальнеам бою, иначе работать небудет. Если при получении урона у юнита появился бафф яда - следовательно юнита ударили физ атакой, но кол-во полученного урона таким способом не получить, ибо сперва проходит основная атака, потом 0.00 урона от абилки яда и появляется бафф яда.
нет, орб накладывает эффект до нанесения урона собой, всё нормально там
16

» WarCraft 3 / Как установить текущий кд аблики?

function AdjustCooldownModel takes integer h, real maxCD returns nothing
	if h>0 then
		call WMem(h+0xB4, mI2R(maxCD))
	endif
endfunction

call AdjustCooldownModel(GetUnitAbility(u,'Abil'),10)//set total cooldown value to 10
а до этого ставишь остаток кд функцией
16

» WarCraft 3 / Reforged – Как работает обновление баланса?

в файлах есть файл со стандартными данными всех объектов
когда патч выходит, соответственно данные меняются
в карте могут быть файлы с нестандартными данными
пользовательские файлы имеют высший приоритет, так что если вставлял кастомные настройки - кастомные и останутся
16

» WarCraft 3 / Алгоритм построения юнитов

понимают тем, что это жестко прописано в движке, но увидеть исходник не получится
16

» WarCraft 3 / Что лучше таймер или триггер?

зависит от твоих нужд
например, мне нужно хранить последние 5 секунд позиций нескольких юнитов, т.е. разбитые на участки по 0.25 секунд снимки хп/мп/координат каждого из них
это 5*4 = 20 значений каждого, итого 80
когда мы доходим до секунды 5.25, то надо сдвигать все предыдущие на единичку назад, и вставлять текущие данные на последний слот
это 79*4 операций чтения и 80*4 записей (считаю грубо, всё для примера)
когда это делается в хештбалице, нагрузка значительно выше выходит, чем если делать на массивах (хт перебирает ключи как ассоциативный массив, а обычный массив просто обращается к памяти с указанным адресом, в разы быстрее).
Но чтобы делать эту процедуру на массивах, тебе нужен индексатор этих самых юнитов, чтобы их уникальный ключ не превышал лимит массива. Это дополнительный код, который тебе нужно реализовать с нуля. Но после реализации система становится быстрее.
Была она до этого медленной? да. Влияло ли это на игру? Нет, это 100-200 микросекунд.
Опять же, когда у тебя есть пре-процессор типа vJASS + сниппеты типа Table , которые имитируют массив самостоятельно, они снимают с тебя часть обязанностей. Но из-за того, что они созданы для ОБЩЕГО случая, они все равно не дадут того выигрыша в скорости, который можешь ожидать.
Используй то, что тебе удобнее, и оптимизируй только когда это реально влияет на игру. habr.com/ru/post/550926
И не забывай, что дота стала популярной еще во времена, когда была написана почти целиком на ГУИ и нихера в ней не пахло даже оптимизацией.
16

» WarCraft 3 / Что лучше таймер или триггер?

массивы вместо хт, таймеры вместо триггеров и другие методы экономии на спичках в крематории
16

» WarCraft 3 / Как прикрепить способность к дереву(декорации)?

native AddSpecialEffectTarget takes string modelName, widget targetWidget, string attachPointName returns effect
любой widget сойдет, не только юнит
16

» WarCraft 3 / Self Improve

ты пишешь "не влияет", я говорю "влияет, но не в таких масштабах, чтобы паниковать, но и закрыть на это глаза непросто". байт-коду всё равно, а вот постоянно прыгать между функциями, особенно с аргументами, виртуальной машине сложнее, чем просто ехать по нативкам.
16

» WarCraft 3 / Self Improve

влияет, просто трудно создать на гуи что-то такое, что будет лагать на пк даже 10-летней давности, даже со всеми оверхедами
16

» WarCraft 3 / Self Improve

жасс - жестко ограниченный скриптовый язык, в нем потолок довольно четкий, единственное, где можно прогрессировать, это в оптимизациях, типа вместо ==false использовать not, вместо groupEnumUnitsInRange(filter) использовать null-фильтр и перебирать в цикле, етк
мемхак - это не про изучение, это про доступ к новому API , когда он нужен. изучать конкретно там нечего. Ну, некоторые функции у меня "написаны" на ассемблере, чтобы максимально быстро выполняться, но это уже извращения для конкретных целей.