Сейчас 01:11:38 Суббота, 21 декабря, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Вопрос по триггерам
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

:o
Конечно есть :)


 

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)
Стоп. Вопрос. А после истечения времени таймера не надо удалять добавленое событие с тригера?

даже если очень хочется - не получится.


 

  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz