DarkRaven Best
offline
Опыт:
8,116Активность: |
При выполнении триггера игра вылетает
Довольно нестандартный вопрос, но всё же. Я сделал триггер, который должен наносить урон в размере 10% от хп атакующего юнита, когда цель получает урон. Но когда триггер срабатывает игра крашится. Я не понимаю с чем это может быть связано. |
24.03.2015, 19:52 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Tobi123
offline
Опыт:
7,826Активность: |
А слабо подумать? Прокрутите у себя в голове, что будет. Цель получает урон->цели наносится еще урон и снова срабатывает условие. И так до бесконечности. |
24.03.2015, 21:17 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DarkRaven Best
offline
Опыт:
8,116Активность: |
Проклятье, это входит в рекурсию. Это конечно можно банально обойти, через простой триггер юнит атакован, но чёрт он ну будет таким точным, как триггер который срабатывает ровно тогда, когда юнит получает урон. Эту рекурсию никак нельзя обойти, при это оставив ивент юнит получает урон? |
24.03.2015, 22:38 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
Можно Я предлагаю попробовать подумать, как же так сделать чтобы событие срабатывало когда нужно, а когда не ну нужно не срабатывало Еще предлагаю всем остальным готовых решений не давать |
24.03.2015, 23:20 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
107,539Активность: |
Можно. Насколько помню я, при нанесение урона триггерно данный поток ставиться на паузу, и запускаются все сотальные, которые реагируют на нанесение урона. Впрочем я не уверен, проверьте это с помощью отладочной печати. Думаю, ваша проблема легко решается одним логическим флагом. |
24.03.2015, 23:21 | #5
+1/−1
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
^ взял и бессовестно все рассказал |
24.03.2015, 23:22 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DarkRaven Best
offline
Опыт:
8,116Активность: |
Doc:
Не то что бы всё. Так как в триггерах я понимаю крайне мало, и порой не знаю, что и как правильно реализовать. Так что мне всё равно придётся подумать. Отредактировано DarkRaven Best, 24.03.2015 в 23:41. |
24.03.2015, 23:34 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Melissa
Я всегда хочу как лучше!
offline
Опыт:
30,496Активность: |
Чтобы избежать зацикливания нужно чтобы твой бонусный урон не вызывал такую же реакцию, что и основной. На это тебе намекнули. |
24.03.2015, 23:45 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DarkRaven Best
offline
Опыт:
8,116Активность: |
Увы, из-за моих скудных познаний в триггерах, я пока не вижу как убрать зацикливание, при этом, чтобы смысл триггера остался тем же.
DarkRaven Best добавил: Так, я вроде разобрался. Просто решил попробовать то, о чём думал позднее, но сомневался, так как считал, что триггер вообще перестанет работать. Ну в общем у меня получилось заставить работать триггер когда надо и не работать когда не надо. Отредактировано DarkRaven Best, 25.03.2015 в 00:31. |
25.03.2015, 00:18 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
quq_CCCP
Я белый и пушистый!
offline
Опыт:
94,663Активность: |
Паузим триггер (DisableTrigger) и наносим урон, запускаем таймер на 0.00 сек и по истечению таймера врубаем триггер, так гарантированно не будет вылетов, можно использовать wait (TriggerSleepActions) но у него слишком большой период, для таких целей. |
25.03.2015, 07:45 | #10
+0/−1
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Melissa
Я всегда хочу как лучше!
offline
Опыт:
30,496Активность: |
|
25.03.2015, 10:31 | #11
+1/−1
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DarkRaven Best
offline
Опыт:
8,116Активность: |
Лол, но я вроде же написал, что разобрался что к чему). Как раз с вкл и выкл. |
25.03.2015, 14:37 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,184Активность: |
что за дно
зачем чтото выключать, ведь можно просто выставить флаг "игнорировать урон который будет след Х раз" или еще лучше "следующие х раз урон обрабатывать иначе вот например этим обработчиком" |
25.03.2015, 17:32 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DarkRaven Best
offline
Опыт:
8,116Активность: |
DioD:
Ну и как выставлять флаги в триггерах, в каком разделе они находятся? |
25.03.2015, 18:07 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
107,539Активность: |
boolean, или "логическая" переменная в редакторе. Просто проверяйте ее значение. |
25.03.2015, 18:33 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Melissa
Я всегда хочу как лучше!
offline
Опыт:
30,496Активность: |
DioD:
что за дно зачем выставить флаг "игнорировать урон который будет след Х раз" или еще лучше "следующие х раз урон обрабатывать иначе вот например этим обработчиком", ведь можно просто чтото выключать
Melissa добавил: Минус выключения в том, что если у тя триггерный отхил есть на любой урон, то он(хил) не сработает на вот етот бонусный урон, если конечно не делать все отхилы в другом триггере с событием получения урона. |
25.03.2015, 20:39 | #16
+0/−1
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DarkRaven Best
offline
Опыт:
8,116Активность: |
Melissa:
Да вроде отхилл находится в одном триггере с уроном, но в принципе работает корректно.
DarkRaven Best добавил:
ADOLF:
Про логическую переменную, я более-менее понимаю, но просто не знаю как реализовать флаг. То есть в каком триггере его вписать, и что будет проверять boolean compasition. |
25.03.2015, 21:59 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Melissa
Я всегда хочу как лучше!
offline
Опыт:
30,496Активность: |
DarkRaven_Best:
Да ты что) Волшебник прямо.
» пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
Да шучу, ты просто кривой |
25.03.2015, 22:15 | #18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DarkRaven Best
offline
Опыт:
8,116Активность: |
Да, и в твоей карте отхил стоит перед уроном, ведь тогда как раз он и не будет же учитываться. Ведь сначала идёт отхил и только потом наносится доп.урон от триггера. Конечно ты прав и доп.урон от триггера не учитывается, но даже если я выставляю урон вперед перед выключение триггера он тоже не работает, так как он ведь стоит как раз перед получением этого урона. Плюс, когда я запустил твою карту, чтобы посмотреть как триггер работает, то атакующий юнит не хилился вообще. Отредактировано DarkRaven Best, 25.03.2015 в 23:09. |
25.03.2015, 23:03 | #19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Melissa
Я всегда хочу как лучше!
offline
Опыт:
30,496Активность: |
DarkRaven_Best:
Хочешь - передвинь действие вниз, ничего не изменится) DarkRaven_Best: Атакующий? Мб атакованный? хилится, хилит урона нанесенный с руки, не хилит дополнитльные 111 урона, нанесенные с выключением триггера. Melissa добавил: А ну да, атаковать надо гороного короля, мне лень было добавлять событие в триггер. |
26.03.2015, 10:44 | #20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|