Вопрос по триггерам
|
|
FatalBlade | Дата: Воскресенье, 15 Мая 2011, 22:19:49 | Сообщение # 1 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Мне нужно что бы при включении определённого скилла, любой урон нанесённый герою будет делиться на 2 и прибавляться к переменной Х. Существует максимальное значение, зависящее от уровня самого скилла (Y). Если Х будет больше либо равно Y, то во первых X=Y, а во вторых урон нанесённый герою перестаёт плюсоваться к переменной Х, пока переменная Х не обнулится. Обнуляется переменная в 3-х случаях: 1) - После каста скилла проходит 60 секунд, т.е. эффект скилла заканчивается. 2) - Герой умирает. Чтоб бы урон начал опять плюсоваться в переменную Х, надо заново активировать скилл. 3) - Есть абилка Unleash, которая наносит противнику ровно столько урона, сколько набралось в переменной Х. Когда герой использует эту абилку, переменная Х обнуляется. Помогите мне плз сделать эту систему. Я тоже думал что это очень просто, но у меня почему то всё как то странно работает. Для проверки я поставил эффект что бы воспроизводился каждый раз когда урон прибавляется к Х. Так вот за каждый удар нанесённый по герою, эффект срабатывает 2 раза... Значит за удар урона прибавляется в 2 раза больше. Но самое главное это то, что урон прибавляется в переменную Х только за первых 3 удара нанесённых по герою, причём независимо от того сколько урона эти удары нанесли... Вообщем... Как всё это сделать? Поподробней плз.
|
|
|
|
FkoFF | Дата: Воскресенье, 15 Мая 2011, 22:51:54 | Сообщение # 2 |
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
| так в чем проблема то? if x < y*z then set x = x + DamageTaken/2 if x > y*z then set x = y*z endif endif z = переменная, которая умножается на уровень скилла для "повышения".
|
|
|
|
Kartoha | Дата: Воскресенье, 15 Мая 2011, 23:03:34 | Сообщение # 3 |
10 уровень
Группа: Ветераны
Сообщений: 2851
Награды: 1
Блокировки:
| FatalBlade, держи наработку.
Сообщение отредактировал Kartoha - Воскресенье, 15 Мая 2011, 23:09:57 |
|
|
|
FatalBlade | Дата: Воскресенье, 15 Мая 2011, 23:09:49 | Сообщение # 4 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Я так и сделал но почему то как ни крути у меня Even Response - Damage Taken каждый удар умножается не понятно на что. После каждого удара (Unit - Takes Damage) у меня должно быть вот это: Set Х = (Х + (Damage taken)/2) Предположим что начальный урон равен 70. Я решил распечатать переменную Х и вот что получается. 1 удар - Х=70 2 удар - Х=280 (умноженное на 4) 3 удар - Х=770 (умноженное на 11) 4 удао - Х=1470 (умноженное на 21) Откуда эти умножения, если у меня присутствует только сложение?
Сообщение отредактировал FatalBlade - Воскресенье, 15 Мая 2011, 23:12:56 |
|
|
|
FkoFF | Дата: Воскресенье, 15 Мая 2011, 23:11:19 | Сообщение # 5 |
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
| FatalBlade, потому что ты каждый раз при изучении способности добавляешь событие в триггер (событие - юнит получает урон). Для муи - добавляй юнитов в группу, для немуи - просто заблочь триггер добавляющий событие.
|
|
|
|
Kartoha | Дата: Воскресенье, 15 Мая 2011, 23:11:53 | Сообщение # 6 |
10 уровень
Группа: Ветераны
Сообщений: 2851
Награды: 1
Блокировки:
| Quote (FkoFF) Для муи - добавляй юнитов в группу В наработке как раз так и сделано.)
|
|
|
|
FatalBlade | Дата: Воскресенье, 15 Мая 2011, 23:22:53 | Сообщение # 7 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Quote (Kartoha) FatalBlade, держи наработку. Спс большое всё понял Quote (FkoFF) потому что ты каждый раз при изучении способности добавляешь событие в триггер Событие добавляется при ударе по герою... Получается что как бы каждое событие сохраняется, и когда этот триггер вызывается снова (Run - Trigger), то таких событий (событие - юнит получает урон) там уже несколько? Тогда странно что у меня например все герои-маги тратят ману за атаку, и это сделано тоже путём добавления события Юнит Получает Урон, но там таких проблем у меня небыло
|
|
|
|
Kartoha | Дата: Воскресенье, 15 Мая 2011, 23:38:14 | Сообщение # 8 |
10 уровень
Группа: Ветераны
Сообщений: 2851
Награды: 1
Блокировки:
| Quote (FatalBlade) Получается что как бы каждое событие сохраняется, и когда этот триггер вызывается снова (Run - Trigger), то таких событий (событие - юнит получает урон) там уже несколько? Да, чтобы этого не было надо ставить проверку через отряд.Quote (FatalBlade) Тогда странно что у меня например все герои-маги тратят ману за атаку, и это сделано тоже путём добавления события Юнит Получает Урон, но там таких проблем у меня небыло там ты наверное как-то иначе делал
|
|
|
|
FatalBlade | Дата: Воскресенье, 15 Мая 2011, 23:44:31 | Сообщение # 9 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Kartoha А зачем ты переводил переменные Real в Intеger чтобы сравнивать? Почему не в Real как они есть? Это имеет значение?
|
|
|
|
Kartoha | Дата: Воскресенье, 15 Мая 2011, 23:46:35 | Сообщение # 10 |
10 уровень
Группа: Ветераны
Сообщений: 2851
Награды: 1
Блокировки:
| FatalBlade, нет, не имеет. Просто на GUI нет условия Real Comparision, поэтому приходиться использовать Integer Comparision и переводить в реальную.
|
|
|
|
FatalBlade | Дата: Воскресенье, 15 Мая 2011, 23:48:12 | Сообщение # 11 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Quote (Kartoha) Просто на GUI нет условия Real Comparision Конечно есть
|
|
|
|
Kartoha | Дата: Воскресенье, 15 Мая 2011, 23:49:24 | Сообщение # 12 |
10 уровень
Группа: Ветераны
Сообщений: 2851
Награды: 1
Блокировки:
| FatalBlade, а, да, оно просто ниже в списке и я не заметил=)
|
|
|
|
FatalBlade | Дата: Воскресенье, 15 Мая 2011, 23:59:47 | Сообщение # 13 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Ну вообщем спс большое тему можно закрыватьДобавлено (15-05-2011, 23:59) --------------------------------------------- Стоп. Вопрос. А после истечения времени таймера не надо удалять добавленое событие с тригера?
|
|
|
|
Kartoha | Дата: Понедельник, 16 Мая 2011, 00:03:09 | Сообщение # 14 |
10 уровень
Группа: Ветераны
Сообщений: 2851
Награды: 1
Блокировки:
| FatalBlade, событие из триггера никак не удалить. Да это и не нужно, ведь для 1 юнита событие добавляется только 1 раз.
Сообщение отредактировал Kartoha - Понедельник, 16 Мая 2011, 00:04:22 |
|
|
|
FkoFF | Дата: Понедельник, 16 Мая 2011, 00:38:45 | Сообщение # 15 |
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
| Quote (Kartoha) Просто на GUI нет условия Real Comparision, поэтому приходиться использовать Integer Comparision и переводить в реальную. есть, меняй теперь все на рил компэрисон, ибо лишнее действие == бoльшая нагрузка на систему при исполнении сценария Quote (FatalBlade) Стоп. Вопрос. А после истечения времени таймера не надо удалять добавленое событие с тригера? даже если очень хочется - не получится.
|
|
|
|