Добавлен ClotPh,
не публикуется
Нужна функция мемхака, принимающая любую способность на основе ауры торнадо и ЗАДАЮЩАЯ ей значение поля СКОРОСТИ ПЕРЕМЕЩЕНИЯ.
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Ладно, сделаю погрубее, в принципе не страшно.
печальненько...
Сложно просто адрес найти.
Отредактирован DracoL1ch
Абилка.
Вызывает вокруг героя всплеск зелёной воды (всё понятно).
Делает вокруг AoE инстант урон по области (тоже всё понятно).
Временно ускоряет себя (просто на фиксированное значение, тоже всё понятно).
Замедляет противников на значение в зависимости от своей брони.
Вот в последнем и была идея - записывать абилке на основе ауры торнадо нужное значение слоу (абилка действует только на себя), давать ее пораженным врагам и сразу снимать (чтобы как раз дебафф провисел 4 секунды).
Я так-то примерно понимаю, как это должно выглядеть, вот именно что адрес самостоятельно не определю.
Ну если не получится, просто сделаю несколько абилок и грубо (типа мало брони - дать и сбросить одну, побольше - другую, очень много - третью).
мгновенно применяются только ауры, которые self, т.к. там внутренняя проверка и выдача бафа на носителя
все остальные цели получат баф при следующей перепроверке
твою идею делать только через вручение каждому супостату слоуауры с self-целью. перед каждой выдачей пересчитываешь нужное слоу и готово. т.к. баф наложится сразу, перекрытия значений не будет никакого. длительность бафа - стандартные 4 секунды. абилку ауры можно удалить сразу после добавления, что само собой разумеется.
Отредактирован Nelloy
Аура 16 уровней, цель - self
Выбираем всех юнитов в группу, считаю коэф-т замедления от брони использовавшего, раздал всей группе ауру с лвлом равным номеру использовавшего способность игрока, через фунцию мемхака редактирую соответствующее (по уровню) поле ауры, по прошествию таймера (TimerEx) с группы записанной в структуру удается аура и ее эффект (так удаление иконки баффа мгновенно)
Есть фукции на редактирование полей абилок, но сейчас не смогу выложить
local integer k=GetUnitAbility(u,id)
if Memory[k/4+0x54/4]>0 then
call WMem(RMem(RMem(k+0x54)+0x54)+(lvl-1)*26*4+(8+off)*4,cleanInt(realToIndex(newVal)))
endif
endfunction
local integer k=GetUnitAbility(u,id)
if RMem(k+0x54)>0 then
return cleanReal(mI2R(RMem(RMem(RMem(k+0x54)+0x54)+(lvl-1)*26*4 + (8+off)*4)))
endif
return .0
endfunction
Дать абилку и сразу сремувить ее каждому и все, зачем еще что-то.
Другое дело, что без мемхака надо несколько абилок или уровней делать, а с мемхаком хватит отредактировать поле.
Отредактирован Nelloy
Как-то нагляднее код становится на мой взгляд, и балансить удобнее если все параметры сразу вынести из функций
а по поводу нескольких уровней, все равно нужно несколько, хотя и намного меньше
Предположим игрок использовал этот навык, в способность пишется число, но через 1 сек другой персонаж тоже использовал ту же способность, при одном лвле получим что у всех юнитов попавших под первое применение будет замедление по цифрам как у 2го
Ну время-то да, но в данном случае обойдусь 4 секундами. Ну а если что, шаблоны захвата в группу и действий с ней у меня-то офк есть.
Нет, обойдусь одним. Просто будет такая формулировка: "Замедление от этой способности зависит от брони последнего применившего ее героя". :D Это в 97% случаев будет не важно, в MOBA ведь довольно редко бывает в бою больше одного героя одного типа.
Отредактирован Nelloy
Поковыряюсь на досуге, должно сильно ускорить прелоад моей системки бафов на основе торнадо. Не знаешь, в поле абилки хранится ссылка на список бафов или сложнее?
в GetAbilityDataDefAddrById