Zanozus
Уехал учиться
offline
Опыт:
8,512Активность: |
в том то и смысл моего способа что не нужны никакие группы к томуже ты не сделаешь с группами так чтобы юнита могло ранить дважды если он снова сунулся под снаряд (хотя нет можно, но тогда добавится еще 1 пик в пике а это не есть гут) |
13.12.2010, 23:51 | #21
+0/−1
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
JassMan
свободен
offline
Опыт:
4,193Активность: |
Вообщето можно, и при пике 1 раз, просто сравнивать кол во срабатываний нанесения урона, ты даже не смотрел как я сделал.
Хотя я думаю вряд ли поймёшь. . . объясню смысл: участвуют две группы: 1 постоянная(g) и одна генерирующаяся (gg) при каждом срабатывании таймера. g — та группа юнитов, которым уже нанесли урон. при пике в gg (чтобы не путаться нужными, пикаем в gg а не в g) заранее проверяем находится ли юнит в g, и если нет, то наносим урона и заносим в неё чтобы в следующий раз не было урона. Отредактировано JassMan, 15.12.2010 в 12:43. |
13.12.2010, 23:56 | #22
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Zanozus
Уехал учиться
offline
Опыт:
8,512Активность: |
пик юнитов в радиусе условие (юнит уже ранен) = нет а допустим юнит немного отбежал после урона а потом снова телепортировался под стрелу получится что второй раз его не ранит. В Доте, например, когда Мирана прыгает из-под Звуковой волны акаши, получив от волны урон, после "приземления" её снова догоняет волна и наносит урон второй раз. Как ты определишь что волна снова догнала Мирану и ей снова нужно наносить урон ? Я это имел в виду. Отредактировано Zanozus, 14.12.2010 в 00:09. |
14.12.2010, 00:02 | #23
+0/−1
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
JassMan
свободен
offline
Опыт:
4,193Активность: |
Там после n-ного срабатывания таймера (пока снаряд летит) юнит удаляется из группы (g), и его можно снова коцать |
14.12.2010, 01:37 | #24
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Master_chan
Полуночный командир
offline
Опыт:
15,660Активность: |
выбирай любой |
14.12.2010, 08:03 | #25
+0/−1
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
JassMan
свободен
offline
Опыт:
4,193Активность: |
Master_chan
Во-первых, у тебя юнит улетает за пределы карты, и код работает не очень быстро, поэтому я чутка изменил его. А, во-вторых, если второй раз запустить (не позже 2-4 сек после первого каста), то юнит не получит урон, ибо на него до сих пор будет действовать первый запуск фаербола.
Если уменьшить длительность горения, то есть вероятность что за полёт, юнит будет ранен 2 раза. В общем, надо делать урон триггерно! Как я это сделал в одном из предыдущих постов. |
14.12.2010, 23:47 | #26
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Zanozus
Уехал учиться
offline
Опыт:
8,512Активность: |
Изучай(-те).
Используется всего 1 Enum и только для перемещения снаряда ! Можно стрелять как из пулемета. Осторожно ! VJass ! JNGP !
» Работоспособный код
Отредактировано Zanozus, 15.12.2010 в 02:06. |
15.12.2010, 01:40 | #27
+0/−1
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
silumin
offline
Опыт:
11,153Активность: |
Чебурашка, переодически пикай юнитов вокруг дамми, проверяй каждого юнита на наличие оного в группе, если юнит не в группе, то дамаж его и добавляй (не пикай, а добавляй) в группу.
Думаю что-то аналогичное в примере от JassMan. |
15.12.2010, 10:06 | #28
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
JassMan
свободен
offline
Опыт:
4,193Активность: |
Не аналогично, а всё точно, как ты сказал. |
15.12.2010, 12:41 | #29
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Zanozus
Уехал учиться
offline
Опыт:
8,512Активность: |
silumin, вы читали сообщения выше ? Есть случай когда снаряду НУЖНО ранить врага второй (десятый) раз. (см. выше) А у вас получается что снаряд ранит врага ТОЛЬКО один раз даже если он сунется под снаряд ВТОРОЙ(десятый) РАЗ. А номер с таймером может вызвать баги, если враг не покинет область поражения снаряда после окончания таймера. А если поставить таймер на дольшее время, то юнита не ранит если он сунется второй раз раньше чем закончится таймер. Можно, конечно подобрать средний таймер чтобы это было маловероятно. Да и придется создавать таймер для каждого "раненого" а если таких снарядов несколько то придеться вешать еще и несколько таймеров, а это костыли и грабли. Отредактировано Zanozus, 15.12.2010 в 13:18. |
15.12.2010, 13:05 | #30
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
JassMan
свободен
offline
Опыт:
4,193Активность: |
В любом случае моя система подходит. Просто можно его удалить из группы пока снаряд летит (через определённое кол-во срабатываний таймера) |
15.12.2010, 15:31 | #31
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Master_chan
Полуночный командир
offline
Опыт:
15,660Активность: |
JassMan, не думаю что ОП'у нужен пулемет из фаерболлов -> триггерный урон = бред. Тем более что это легко меняется в РО (кд у способности "Огонь феникса")
А то что мой код работает "не очень быстро" это я не понял. Из изменений заметил только допиливание исчезновения, а остальное - убрал локалки и дефайны. Выигрыша в производительности не вижу. |
15.12.2010, 17:29 | #32
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
MF
Что-то вокруг не так
offline
Опыт:
26,594Активность: |
Так харэ кирпичи из штанов выкидывать (для тех кто намек поймет)
Ждем мнения автора, и затем, скорее всего, закрываемся. |
15.12.2010, 17:33 | #33
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|