Хотелось бы знать какие пути решения без использования отдельных массивов/хэштэйбла видит кто-либо для разрешения ситуации следующего характера:
Скилл поражает цели в выбранной зоне и оставляет даммика, находясь возле которого юниты, задетые заклинанием, получают урон. В один момент времени может существовать хоть с десяток таких даммиков, но они должны наносить повреждения лишь целям, задетыми заклинанием их создателя. Проверка на бафф не актуальна, поскольку два таких кастера будут перебивать баффы друг друга.
В данный момент под каждый каст скилла выделяется перерабатываемая группа на время жизни этого скилла, которая содержит юнитов, задетых этим конкретным кастом, а также группа, содержащие все цели, пораженные этими же заклинаниями кастера. Поскольку нельзя добавить в группу юнита, который уже содержится в ней, нерешенным остается вопрос о том, как же удалять юнита из второй группы, только когда он не содержится в первых группах. Сейчас на ум приходит только выделение, скажем, 64 перерабатываемых элементов параллельных массивов юнит+интегер, куда в интегер записывается число групп, в которых содержится юнит. Солюшн весьма хреновый, поскольку придется каждый раз искать этого юнита в 64 элементах массива...
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
22
7 лет назад
Отредактирован PROSHELDOTU
0
Во-вторых, суть именно том, чтобы попав под бафф такого каста юнит старался избегать созданных даммиков до окончания времени действия мнимого баффа. Мнимого - поскольку реальный бафф будет перебиваться, например, таким же юнитом союзника. Если желаемого адекватного решения возникшей проблемы не возникнет - скорее всего прибегну к этому решению.
Честно, ничего не понял
Особенно сути этих даммиков, ты бы хоть способность описал, что она делает...
Diaboliko:
наношу урон от даммиков
Я бы так не делал, хотя бы потому, что тогда такой предмет как Octarine Core как в доте2 (ну суть понятна - хилит от способностей) не будет просто хилить героя из-за того, что не он наносит урон.
Это на всякий, а пока ещё раз скажу, что вообще не понятно, что за способность ты делаешь и суть этих даммиков
Кинь описание
0
20
7 лет назад
Отредактирован Diaboliko
0
Diaboliko:
наношу урон от даммиков
Я бы так не делал, хотя бы потому, что тогда такой предмет как Octarine Core как в доте2 (ну суть понятна - хилит от способностей) не будет просто хилить героя из-за того, что не он наносит урон.
Внезапно решается базами данных. Я храню в UnitUserData юнитов их позицию в БД, а в UnitUserData даммиков, являющихся снарядами и прочей подобной фигней - позицию в БД их создателя. Ссылка на даммиков в БД хранится в таймерах, использующих их. Для мгновенного урона также есть два даммика, которые постоянно меняют владельца перед нанесением урона. Первый - для блокируемого урона, второй - для не блокируемого.
Попытка описать дубль два:
Герой кидает молнию
да, да, привет фанатам дарк соулс //
Она задевает огра мага в момент достижения указанной точки
На месте взрыва появляется даммик, к которому этот огр притягивается, при этом ему наносится урон. При текущей реализации огр будет притягиваться лишь к тем даммикам, которые, грубо говоря, задели его своим появлением(если его заденет снаряд во время полета или непосредственный взрыв). Задумка в том, чтобы подвергнуть огра эффекту двух таких даммиков, если его заденет хотя-бы один каст. Проблема реализации через баффы в том, что два и более таких персонажей, будучи союзниками, засрут все поле боя и будут держать всех противников под дебаффом.
Загруженные файлы
0
22
7 лет назад
0
Для мгновенного урона также есть два даммика, которые постоянно меняют владельца перед нанесением урона. Первый - для блокируемого урона, второй - для не блокируемого.
При чём тут владелец
Когда урон надо наносить от определённого юнита - кастера, т.е. героя в данном случае
Proshel_Doty:
Я бы так не делал, хотя бы потому, что тогда такой предмет как Octarine Core как в доте2 (ну суть понятна - хилит от способностей) не будет просто хилить героя из-за того, что не он наносит урон.
0
20
7 лет назад
Отредактирован Diaboliko
0
При чём тут владелец
Когда урон надо наносить от определённого юнита - кастера, т.е. героя в данном случае
Proshel_Doty:
Я бы так не делал, хотя бы потому, что тогда такой предмет как Octarine Core как в доте2 (ну суть понятна - хилит от способностей) не будет просто хилить героя из-за того, что не он наносит урон.
Поскольку я знаю что даммика создал конкретный юнит под нужды нанесения урона - я утверждаю что урон, в итоге, наносит этот конкретный юнит. Если я захочу прохилить этого юнита - у меня есть ссылка на него в UnitUserData даммика.
Однако я бы предпочел услышать в этом конкретном топике мысли по решению возникшей у меня задачи. Если хочется дальше поспорить о превосходстве гибкости метода нанесения всего магического урона от даммика против нанесения урона от того же юнита - пиши в ЛС.
0
28
7 лет назад
0
Diaboliko, насколько я понял ситуация следующая
есть 2 юнита-кастера C1 и C2 являющихся союзниками
C1 кастует этот спел и задевает вражеского юнита T
создаётся даммик D1
C2 кастует этот спел и не задевает вражеского юнита T
создаётся даммик D2
в результате D1 наносит урон T если T находится в радиусе досягаемости D1
и D2 наносит урон T если T находится в радиусе досягаемости D2
да или нет?
0
20
7 лет назад
0
в результате D1 наносит урон T если T находится в радиусе досягаемости D1
и D2 наносит урон T если T находится в радиусе досягаемости D2
да или нет?
Это как раз тот солюшн, которого я хочу избежать. D2 не должен наносить урон T, поскольку сам каст его не задел. Такое поведение в данный момент реализовано в рамках каждого каста. Если каст задевает юнита - даммик этого каста будет наносить задетому юниту урон. Сабж в том чтобы если персонаж применяет дважды этот скилл и задевает противника T лишь одним из них, то даммики D1 и D2, созданные по итогам применения обоих кастов наносили этому юниту урон. Проблема именно в ведении счета того, сколько раз юнит был добавлен в эту "глобальную" группу, содержащую всех юнитов, которых своими кастами задел этот персонаж.
В прочем, спустя два дня тыканья палкой, я уже уверен что "красивого" решения здесь нет. Разве что я что-то упускаю...
0
26
7 лет назад
Отредактирован Hate
0
в результате D1 наносит урон T если T находится в радиусе досягаемости D1
и D2 наносит урон T если T находится в радиусе досягаемости D2
Сабж в том чтобы если персонаж применяет дважды этот скилл и задевает противника T лишь одним из них, то даммики D1 и D2, созданные по итогам применения обоих кастов наносили этому юниту урон.
разве это не противоречие самому себе?
лично мне до сих пор непонятно как должно работать и как работает сейчас.
0
20
7 лет назад
0
разве это не противоречие самому себе?
В первой цитате говорилось о двух разных кастерах.
Сейчас касты работают каждый сами по себе(задел кастом - даммик будет дпсить), но от задевания одним кастом, даммику, появившемуся от другого каста, ни горячо, ни холодно.
Этот комментарий удален
0
29
7 лет назад
0
Кто-нибудь уже объяснил зачем нужна глобальная группа?
Есть такое понятие как скоупинг. В чем проблема использовать одну группу на один каст? Я что-то не так понял?
0
26
7 лет назад
0
Doc:
Кто-нибудь уже объяснил зачем нужна глобальная группа?
Есть такое понятие как скоупинг. В чем проблема использовать одну группу на один каст? Я что-то не так понял?
Hate:
и зачем тебе 2 группы? храни одну на каждого игрока
я с самого начала задал этот вопрос
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.