Нужна функция мемхака, принимающая любую способность на основе ауры торнадо и ЗАДАЮЩАЯ ей значение поля СКОРОСТИ ПЕРЕМЕЩЕНИЯ.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
21
7 лет назад
0
DracoL1ch, короче как-то так планировалось:
Абилка.
Вызывает вокруг героя всплеск зелёной воды (всё понятно).
Делает вокруг AoE инстант урон по области (тоже всё понятно).
Временно ускоряет себя (просто на фиксированное значение, тоже всё понятно).
Замедляет противников на значение в зависимости от своей брони.
Вот в последнем и была идея - записывать абилке на основе ауры торнадо нужное значение слоу (абилка действует только на себя), давать ее пораженным врагам и сразу снимать (чтобы как раз дебафф провисел 4 секунды).
Я так-то примерно понимаю, как это должно выглядеть, вот именно что адрес самостоятельно не определю.
Ну если не получится, просто сделаю несколько абилок и грубо (типа мало брони - дать и сбросить одну, побольше - другую, очень много - третью).
0
16
7 лет назад
0
такой дебаф не факт, что 4 секунды провисит
мгновенно применяются только ауры, которые self, т.к. там внутренняя проверка и выдача бафа на носителя
все остальные цели получат баф при следующей перепроверке
твою идею делать только через вручение каждому супостату слоуауры с self-целью. перед каждой выдачей пересчитываешь нужное слоу и готово. т.к. баф наложится сразу, перекрытия значений не будет никакого. длительность бафа - стандартные 4 секунды. абилку ауры можно удалить сразу после добавления, что само собой разумеется.
0
21
7 лет назад
0
DracoL1ch, я именно так и делаю.
0
13
7 лет назад
Отредактирован Nelloy
0
Я бы сделал так если для рпг:
Аура 16 уровней, цель - self
Выбираем всех юнитов в группу, считаю коэф-т замедления от брони использовавшего, раздал всей группе ауру с лвлом равным номеру использовавшего способность игрока, через фунцию мемхака редактирую соответствующее (по уровню) поле ауры, по прошествию таймера (TimerEx) с группы записанной в структуру удается аура и ее эффект (так удаление иконки баффа мгновенно)
Есть фукции на редактирование полей абилок, но сейчас не смогу выложить
Here
function SetAbilityRealParam takes unit u, integer id, integer off, real newVal, integer lvl returns nothing
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
function GetAbilityRealParam takes unit u, integer id, integer off, integer lvl returns real
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
DataA - off=0, DataB - off=1 etc.
0
21
7 лет назад
0
Nelloy, че-то не переварю, зачем такой ужас.
Дать абилку и сразу сремувить ее каждому и все, зачем еще что-то.
Другое дело, что без мемхака надо несколько абилок или уровней делать, а с мемхаком хватит отредактировать поле.
0
13
7 лет назад
Отредактирован Nelloy
0
А если потом захочется сделать не 4сек а 5?
Как-то нагляднее код становится на мой взгляд, и балансить удобнее если все параметры сразу вынести из функций
а по поводу нескольких уровней, все равно нужно несколько, хотя и намного меньше
Предположим игрок использовал этот навык, в способность пишется число, но через 1 сек другой персонаж тоже использовал ту же способность, при одном лвле получим что у всех юнитов попавших под первое применение будет замедление по цифрам как у 2го
0
21
7 лет назад
0
Nelloy, о, спасибо за функцию! Просто замечательно!
Ну время-то да, но в данном случае обойдусь 4 секундами. Ну а если что, шаблоны захвата в группу и действий с ней у меня-то офк есть.
Нет, обойдусь одним. Просто будет такая формулировка: "Замедление от этой способности зависит от брони последнего применившего ее героя". :D Это в 97% случаев будет не важно, в MOBA ведь довольно редко бывает в бою больше одного героя одного типа.
0
16
7 лет назад
0
можно прямо в бафе отредактировать длительность, при желании, и опять же держать абилку нет никакой нужды, эффект обеспечивается именно бафом
0
13
7 лет назад
Отредактирован Nelloy
0
DracoL1ch, я правильно понимаю, что можно сделать 1 ауру (self) на основе торнадо и меняя ее поле через мемхак, добавлять нужный баф?
Поковыряюсь на досуге, должно сильно ускорить прелоад моей системки бафов на основе торнадо. Не знаешь, в поле абилки хранится ссылка на список бафов или сложнее?
0
16
7 лет назад
0
для ауры торнадо, у других аур примерно так же должно быть, про мультибафы хз
в GetAbilityDataDefAddrById
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.