3
16
3 года назад
3

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

для итемов всё то же самое, как и с абилками, просто вместо id абилки id итема
6
16
3 года назад
Отредактирован DracoL1ch
6

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

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

» WarCraft 3 / LoadAgentHandle или LoadUnitHandle?

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

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

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

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

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

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

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

» WarCraft 3 / Почему. Просто почему.

пиши %%
3
16
3 года назад
3

» 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
а до этого ставишь остаток кд функцией
4
16
3 года назад
4

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

не волнуйся, этой игре уже давно не светят патчи :)
1
16
3 года назад
1

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

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

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

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

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

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

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

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

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

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

» WarCraft 3 / Self Improve

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

» WarCraft 3 / Self Improve

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

» WarCraft 3 / Self Improve

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

» WarCraft 3 / Оптимальна ли реализация?

AddAction создает уникальный объект при каждом обращении, а AddCondition кэширует объекты. поэтому в динамических триггерах, где всё создается и разрушается множество раз за игру, нужно использовать именно Condition
Filter() и Condition() одно и то же
4
16
3 года назад
4

» WarCraft 3 / Когда UnitDamageTarget возвращает false

когда источник или target =null
1
16
3 года назад
1

» WarCraft 3 / Нужен маленький совет

только те, которые хардкодно позволяют выбирать такие цели (дерево - "съесть дерево")
6
16
3 года назад
6

» WarCraft 3 / Команда Warcraft III Reforged и ремейка Diablo II расформирована

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

» WarCraft 3 / Команда Warcraft III Reforged и ремейка Diablo II расформирована

какая неожиданность, хммм
хотя нет, я читал, кто-то писал уже, что близзы дропнут варкрафт в конце 2020
кто же это предсказал, хмммм
1
16
3 года назад
1

» WarCraft 3 / Антимапхак внутри карты для версии 1.27b. Миф или реальность?

где вы находите игроков на эти странные версии? есть только 26 и официалы, всё остальное такие мизеры, что даже думать о программировании под них стыдно
4
16
3 года назад
Отредактирован DracoL1ch
4

» WarCraft 3 / Показать инвентарь другого юнита Мемхак

function AddBuyingUnitToAneuShop takes unit shop, integer aid, unit u returns nothing
	local integer aa=GetUnitAbility(shop,aid)
	set LastConvertedHandle=ConvertHandle(u)
	if LastConvertedHandle>0 and aa>0 then
		call CallThisCallWith3Args(GameDLL+0x06ACD0,aa,LastConvertedHandle,1)
	endif
endfunction
где shop - магаз, aid - абилка, которой он продает (дефолтная Aneu), u - кто должен стать покупателем
0
16
4 года назад
0

» WarCraft 3 / Рассинхрон от GetLocalPlayer() -> SetCameraQuickPosition()

я ж написал про д2 и тайминги, которые съезжают в длинных играх (60+)
щас бы думать, что именно вы - целевая аудитория тех игр, о которых рассуждаете, и лучше знаете среднюю сессию