Кастуемый спел триггера
|
|
SunCreep | Дата: Четверг, 12 Мая 2011, 18:49:06 | Сообщение # 1 |
9 уровень
Группа: Проверенные
Сообщений: 1136
Награды: 0
Репутация: 141
Блокировки:
| Видел такие вопросы,но тогда не интересовался этим.Сейчас хочу сделать ульт Энигмы из доты. То бишь,когда я применю скил и мой герой будет его кастовать,все юниты вокруг будут тянутся к центру и получать урон чем ближе к центру. Вопросы таковы: 1)Как сделать чтоб если я перестал кастовать скил,триггер выключился.Може есть какое-то сравнение,кастует ли герой скил или что-то подобное. 2)Как удалять утечку с отрядом.В данном касте отряд будет выбран 700 раз(0.01=100 раз в сек. в течении 7 сек.) и это явно не очень хорошо)) 3)Вообще я немного в затруднении как рассчитать урон между центром(в моём случае в центре будет кастер) и воздействуемым.Так чтоб урон был равен:20 за каждые 100 ед. где максимально возможный доп урон 200 при радиусе ульты в 1000.При этом урон в 1 без доп урона всегда 45.Добавлено (12-05-2011, 18:49) ---------------------------------------------
Сообщение отредактировал SunCreep - Четверг, 12 Мая 2011, 18:46:23 |
|
|
|
[DS] | Дата: Четверг, 12 Мая 2011, 18:52:38 | Сообщение # 2 |
9 уровень
Группа: Проверенные
Сообщений: 1116
Награды: 0
Репутация: 527
Блокировки:
| 1) Событие - Боевая Единица завершает способность. Добавлено (12-05-2011, 18:52) --------------------------------------------- Спелл канальный как у Кипера
|
|
|
|
SunCreep | Дата: Четверг, 12 Мая 2011, 18:56:29 | Сообщение # 3 |
9 уровень
Группа: Проверенные
Сообщений: 1136
Награды: 0
Репутация: 141
Блокировки:
| [DS], Понимаешь ли... Quote (SunCreep) герой будет его кастовать По товим словам Quote (|DS|) завершает способность. Когда мой герой простоит 7 секунд просто так без анимации запуститься триггер,и следующие 7 сек вокруг него будет всё происходить.Мне надо нормально.Добавлено (12-05-2011, 18:56) --------------------------------------------- Хм,может я тебя не понял? Quote (|DS|) Спелл канальный как у Кипера Что это означает?
|
|
|
|
[DS] | Дата: Четверг, 12 Мая 2011, 19:05:55 | Сообщение # 4 |
9 уровень
Группа: Проверенные
Сообщений: 1116
Награды: 0
Репутация: 527
Блокировки:
| DPS: if ModuleInteger(i,10) == 0 then UnitDamageTarget(u,GetEnumUnit(),damage,false,false,ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL, null) endifДобавлено (12-05-2011, 19:05) --------------------------------------------- i = i+1 Каждые 0.01 сек.
|
|
|
|
SunCreep | Дата: Четверг, 12 Мая 2011, 19:09:33 | Сообщение # 5 |
9 уровень
Группа: Проверенные
Сообщений: 1136
Награды: 0
Репутация: 141
Блокировки:
| Я себе скоро подпись поставлю "Русские триггеры!"
|
|
|
|
[DS] | Дата: Четверг, 12 Мая 2011, 19:11:17 | Сообщение # 6 |
9 уровень
Группа: Проверенные
Сообщений: 1116
Награды: 0
Репутация: 527
Блокировки:
| это джасс или можещь кустом скриптами Кароче сделать?
|
|
|
|
Mep3aB4uK | Дата: Четверг, 12 Мая 2011, 19:11:25 | Сообщение # 7 |
9 уровень
Группа: Проверенные
Сообщений: 1019
Награды: 0
Репутация: 135
Блокировки:
| Quote (SunCreep) 1)Как сделать чтоб если я перестал кастовать скил,триггер выключился.Може есть какое-то сравнение,кастует ли герой скил или что-то подобное. Quote (|DS|) 1) Событие - Боевая Единица завершает способность. Так завершить,а если у тебя уходит 7 сек. на начало каста, то делай событие-когда приводит способность в действие, а не начинает применять(то есть пока не начнется спел тригер не запустится) 2)Условием-Если юнит в отряде то ничего иначе добавить в отряд(пользуйся большим периодическим собитием, 0.3, 0,4 сек) 3)урон наносить дистанция от точки до юнита(проще геометрическим, но не знаю как), а так через условие, если дистанция меньше 200 то 200 урона, если больше то меньше
Сообщение отредактировал Mep3aB4uK - Четверг, 12 Мая 2011, 19:48:54 |
|
|
|
Dark_Zarich | Дата: Четверг, 12 Мая 2011, 19:17:01 | Сообщение # 8 |
9 уровень
Группа: Проверенные
Сообщений: 1022
Награды: 0
Репутация: 942
Блокировки:
| Code [u]Подчеркнутый текст[/u] Code [s]Зачеркнутый текст[/s] Добавлено (12-05-2011, 19:17) ---------------------------------------------
Зачеркнутый текст Подчеркнутый текст
|
|
|
|
[DS] | Дата: Четверг, 12 Мая 2011, 19:21:26 | Сообщение # 9 |
9 уровень
Группа: Проверенные
Сообщений: 1116
Награды: 0
Репутация: 527
Блокировки:
| да кстате геморно делать 0.01 лучше 0.05 сек.
|
|
|
|
SunCreep | Дата: Четверг, 12 Мая 2011, 19:25:40 | Сообщение # 10 |
9 уровень
Группа: Проверенные
Сообщений: 1136
Награды: 0
Репутация: 141
Блокировки:
| Либо вы не понимаете,либо я тормоз...
|
|
|
|
Dark_Zarich | Дата: Четверг, 12 Мая 2011, 19:26:34 | Сообщение # 11 |
9 уровень
Группа: Проверенные
Сообщений: 1022
Награды: 0
Репутация: 942
Блокировки:
| Code [u]Подчеркнутый текст[/u] Code [s]Зачеркнутый текст[/s] Зачеркнутый текст Подчеркнутый текст
|
|
|
|
[DS] | Дата: Четверг, 12 Мая 2011, 19:29:04 | Сообщение # 12 |
9 уровень
Группа: Проверенные
Сообщений: 1116
Награды: 0
Репутация: 527
Блокировки:
| скорее 2ое)) Добавлено (12-05-2011, 19:29) --------------------------------------------- Dark_Zarich, че ты подчеркиваешь и зачеркиваешь?
|
|
|
|
FkoFF | Дата: Четверг, 12 Мая 2011, 19:39:51 | Сообщение # 13 |
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
| Quote (SunCreep) Либо вы не понимаете,либо я тормоз... оссподи, отслеживай начало каста, запускай триггер, отслеживай окончание каста - запрещай исполнение сценария. В любом случае 2 триггера надо. На джасс вполне легко сделать муи.
|
|
|
|
SunCreep | Дата: Четверг, 12 Мая 2011, 19:42:10 | Сообщение # 14 |
9 уровень
Группа: Проверенные
Сообщений: 1136
Награды: 0
Репутация: 141
Блокировки:
| FkoFF, дело в том,что я не понимаю как отследить окончание каста.Если я кастую скил,а меня станят.Как мне отследить это?Или я нарочно сбил его произношение.
|
|
|
|
Mep3aB4uK | Дата: Четверг, 12 Мая 2011, 19:46:53 | Сообщение # 15 |
9 уровень
Группа: Проверенные
Сообщений: 1019
Награды: 0
Репутация: 135
Блокировки:
| Quote (|DS|) 1) Событие - Боевая Единица завершает способность. вот так и сбивает(стан, или сам прервал)
|
|
|
|
SunCreep | Дата: Четверг, 12 Мая 2011, 20:09:33 | Сообщение # 16 |
9 уровень
Группа: Проверенные
Сообщений: 1136
Награды: 0
Репутация: 141
Блокировки:
| Mep3aB4uK, ага! Спасибо)) буду знать.Я просто думал что завершает это по причине времени.То бишь когда спел только вылетел это начал,когда летит,приводит,когда долетел завершает.
|
|
|
|
Mep3aB4uK | Дата: Четверг, 12 Мая 2011, 20:27:16 | Сообщение # 17 |
9 уровень
Группа: Проверенные
Сообщений: 1019
Награды: 0
Репутация: 135
Блокировки:
| SunCreep, Так завершает если спел к-анальный
|
|
|
|
SunCreep | Дата: Пятница, 13 Мая 2011, 19:48:38 | Сообщение # 18 |
9 уровень
Группа: Проверенные
Сообщений: 1136
Награды: 0
Репутация: 141
Блокировки:
| Quote (Mep3aB4uK) к-анальный боюсь думать к чему он используется))Добавлено (13-05-2011, 19:48) --------------------------------------------- Как бы 2 вопрос всё ещё актуален. Quote (SunCreep) 2)Как удалять утечку с отрядом.В данном касте отряд будет выбран 700 раз(0.01=100 раз в сек. в течении 7 сек.) и это явно не очень хорошо)) С 3 я уж сам разберусь.
|
|
|
|
FkoFF | Дата: Пятница, 13 Мая 2011, 19:55:32 | Сообщение # 19 |
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
| 2 - через груплуп Code local group g = CreateGroup() local boolexpr b = Condition(function YourConditionFunc) local unit f
call GroupEnumUnitsInRange(g,x,y,dist,b)
loop exitwhen CountUnitsInGroup(g) <= 0 set f = FirstOfGroup(g) -твои действия для каждого юнита из группы call GroupRemoveUnit(g,f) endloop
call DestroyGroup(g) set g=null call DestroyBoolExpr(b) set b=null ни утечек, ни проблем с локальными переменными из триггера не будет. Добавлено (13-05-2011, 19:55) ---------------------------------------------
Quote (SunCreep) 3)Вообще я немного в затруднении как рассчитать урон между центром(в моём случае в центре будет кастер) и воздействуемым.Так чтоб урон был равен:20 за каждые 100 ед. где максимально возможный доп урон 200 при радиусе ульты в 1000.При этом урон в 1 без доп урона всегда 45. GetDist(x1,y1,x2,y2)\100 * 20
|
|
|
|
SunCreep | Дата: Пятница, 13 Мая 2011, 20:10:10 | Сообщение # 20 |
9 уровень
Группа: Проверенные
Сообщений: 1136
Награды: 0
Репутация: 141
Блокировки:
| Как это не странно,но ты меня загрузил.Так всегда)) Можно без создания локальных переменных?Просто убрать утечку,если она имеется. Это что?Число в расстоянии от позиции применяющего до позиции попавшего под действие?
|
|
|
|
FkoFF | Дата: Пятница, 13 Мая 2011, 20:15:37 | Сообщение # 21 |
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
| Quote (SunCreep) Как это не странно,но ты меня загрузил.Так всегда)) Можно без создания локальных переменных?Просто убрать утечку,если она имеется. ну в любом случае будет утечка булэкспра. Quote (SunCreep) Это что?Число в расстоянии от позиции применяющего до позиции попавшего под действие? x1,y1 - X и Y начала вектора, x2,y2 - конец вектора, собственно при определении длинны вектора не важно его направление, по этому не важно x1,y1 вначале или в конце, подобные функции (GetDist,GetAngle) можешь найти в "полезные джасс функции" или написать от руки, развернув BJ. проще говоря дистанцию делишь на 100 и умножаешь на двадцать. Еще проще - дистанцию умножаешь на 0.2 - за каждую единицу расстояния будет наносится 0.2 урона. Если хочешь что бы урон был "наоборот", то ставишь 200-дистанция*0.2 (скобки можно не ставить, умножение и деление делаются в первую очередь).
|
|
|
|
SunCreep | Дата: Пятница, 13 Мая 2011, 20:43:05 | Сообщение # 22 |
9 уровень
Группа: Проверенные
Сообщений: 1136
Награды: 0
Репутация: 141
Блокировки:
| Угу я понял.Но пара вопросов всё равно есть)) Quote (FkoFF) loop exitwhen CountUnitsInGroup(g) <= 0 Это пишется в CS?
|
|
|
|
FkoFF | Дата: Пятница, 13 Мая 2011, 21:40:12 | Сообщение # 23 |
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
| Quote (SunCreep) Это пишется в CS? и не только это. а вообще рекоммендую конвертнуть триггер в текст и начинать кодить, для начала на бж. Рекоммендую скачать программу JassCraft.
|
|
|
|
SirNikolas | Дата: Суббота, 14 Мая 2011, 14:06:56 | Сообщение # 24 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Quote (|DS|) Событие - Боевая Единица завершает способность. Это событие срабатывает не только при отмене, но и при нормальном завершении. Следует использовать "Прерывает применение способности".Добавлено (14-05-2011, 14:06) ---------------------------------------------
Quote (FkoFF) Рекоммендую скачать программу JassCraft. Также рекомендую скачать JASS NewGen Pack.
|
|
|
|
SunCreep | Дата: Суббота, 14 Мая 2011, 14:08:21 | Сообщение # 25 |
9 уровень
Группа: Проверенные
Сообщений: 1136
Награды: 0
Репутация: 141
Блокировки:
| SirNikolas, а какая разница?Я просто поставлю в триггере который закрывает способность событие Quote (SirNikolas) Событие - Боевая Единица завершает способность. и всё.
|
|
|
|