ГлавнаяБлогКарты Warcraft 3Гайды для первой ДотыГайды для Доты 2 [ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: XOPYC  
Повторяющейся ефект
Дата: Четверг, 29.09.2011, 17:33 | Сообщение # 1
Полковник
Проверенные
Сообщений: 228
Награды: 0
Репутация: 13
Меня терзает такой вапрос: я хочу чтоб у меня заклинание "безмолвие" было пасивной аурой, тоесть повторялось каждую секунду (например, чародейская аура) и так всегда. Подскажите плиз через какие тригеры ето зделать?

Есть сторона зла и сторона добра.
Берем середину ^_^
 
Дата: Пятница, 30.09.2011, 14:55 | Сообщение # 2
Полковник
Проверенные
Сообщений: 228
Награды: 0
Репутация: 13
Плиззззз подскажите :) :) :)

Есть сторона зла и сторона добра.
Берем середину ^_^
 
Дата: Пятница, 30.09.2011, 17:57 | Сообщение # 3
Подполковник
Проверенные
Сообщений: 144
Награды: 1
Репутация: 9
мммм
можно сделать так
-События
---Каждые 0.01 секунд
-Условия
---((Атакующий юнит) герой Маг) равно Да
-Дейтсвия
---Боевая еденица - Использовать заклинание Безмолвие на Атакованный юнит

только безмолвие будет работать при атаке :D
 
Дата: Пятница, 30.09.2011, 18:18 | Сообщение # 4
Полковник
Проверенные
Сообщений: 228
Награды: 0
Репутация: 13
хороший вариант :) , но мне надо чуть другое)

Есть сторона зла и сторона добра.
Берем середину ^_^
 
Дата: Воскресенье, 02.10.2011, 00:11 | Сообщение # 5
Генералиссимус
Ньюсмейкер
Сообщений: 2438
Награды: 8
Репутация: 85
Quote (Random_chel)
-Каждые 0.01 секунд

Хорошо, что я не админ, за такие события банил бы к чертям)))
Вы хоть представляете что такое 1 сотая секунды ????
Или что может за это время сделать варик?
А например, на сколько мусорный тригге размножающийся со скоростью 100 клонов в секунду сможет засрать озу?

Причем тут атака тоже не совсем ясно)) ибо прикрепления к событию то нет. Если это работает ( в условиях отсутствия триггеров изменяющих переменную BJ_AttakingUnit ), то снимаю шляпу и в очередной раз вспоминаю близзардов плохим словом.

Путь был правильный у вас)))

Но я никак не пойму, почему вы не умеете использовать ПИКЕД ЮНИТ!?!?!?
Эта функция просто не заменима!
Объясню, что она делает ([dashed]ВНИМАНИЕ ПИШУ ТОК 1 РАЗ И ХРЕН ГДЕ ПОВТАРЮ[/dashed])

На англ: (unit group - piked unit)
На русском: юзайте англ. код. Русский изврат и не используется никогда как первичный или основной.
Категория: Отряд (unit group)
Название: Pick Every Unit In Unit Group And Do Multiple Actions

Переоценить важность этой функции - чрезвычайно сложно. Она действует по принципу "For" т.е. организовывает цикл и перебирает необходимые данные.
Что это за данные? Буду объяснять на понятном языке без всяких:
Она попросту перебирает юнитов, подходящих под заданные условия.

Для примера я использовал условие: Units in range(600.00 of unit position(Верховный маг))
Таким образом, все дальнейшие действия, если их указать для picked unit, будут выполнены для всех юнитов, что в данный момент находятся в радиусе 600 от героя, пример:

Спецэффект - Create speceffect at unit position(position of picked unit), я оставил тот, что у меня был по стандарту.

т.к. событие я назначил "каждые 1 сек", то необходимо предпринять хоть какие-то попытки по устранению утечек памяти.
Ставим:
Destroy speceffect(Last created speceffect)

В итоге спецэффект проиграется и тут же получит команду уничтожится, полностью от утечек это нас не избавит, но через пол часа такой игры, вы не зависните точно.

И так что мы имеем?
------------------------------------------------------
Событие: периодическое, каждые 1 сек.
Условие: [dashed]нет[/dashed]
Действие:
Пик всех, кто в ренже
проиграть анимацию на позиции пикнутого юнита
удалить последнюю созданную анимацию
------------------------------------------------------

Если запустите карту то увидите "пикед" в действии.
Без него триггер бы занимал кучу гуи в несколько триггеров и массу утечек.
Те, кто знают jass мучились бы меньше, да и вообще бы не мучились профи, но так или иначе эта функция упрощает жизнь.

Вернемся к просьбе автора темы и приблизим наработку к его вопросу.


По сути триггер готов, но не хватает мелочей, например:
Под данное условие попадает, и сам верховный маг, поэтому, необходимо исключить его из выборки. Тут есть 2 варианта:
1) изменяем условие, т.е. конструируем его через "and" и к тому, что есть, дописываем юнит компарисон -> юнит не равно верховный маг.
2) добавляем условие уже в сам пикед (см. наработку)

Всегда в else я ставлю Do nothing т.к. в ранних версиях его отсутствие вызывало сбой.

Немного лучше, но мы снова кое что упустили!
Ведь скилл должен работать только если у нас есть чародейская аура!
Ок, ставим условие (в основной триггер): Integer comparison -> Unit- lvl of ability for unit больше или равно 1

C таким условием наш триггер будет срабатывать и крутить только если у героя есть чародейская аура.

Необходима зависимость от уровня скилла?

Например, будет меняться расстояние:
удобнее всего его разделить на уровни, например всего 600 максимум ренж и уровней 6. 600/6 = 100
т.е. в условии вместо 600 мы ставим: арифметик -> 100.00 * (преобразование-> Integer To Real -> lvl of ability for unit)
В итоге ренж на 1 уровне у нас будет 1*100 = 100
на 2: 2*100 = 200
и т.д.

Для полного кайфа осталось только силенс прописать каждому, правда?)
Я не стал заморачиваться, написал и так много + время у меня нынче дорого стоит.

Но, подскажу, как сделать:
Необходимо создать дамми юнита и дать ему безоткатный скилл с требованием 0 маны и ренжем на всю карту( тогда не придется его ни таскать ни пересоздавать по 500 раз, засерая память) - сало.
И заставлять кидать сало на каждого пикнутого юнита.

Ну, вот вроди и всё, надеюсь, не возникнет вопросов как это сделать для многопользовательской игры.
Тут просто вместо верховного мага сделаешь переменную или будешь распознавать по типу.
И лучше бы не допускать возможности играть таким персонажем нескольким игрокам одновременно, будут ошибки в работе триггера.

Ну вот, надеюсь научитесь пикедом пользоваться, а то я в темах пишу про него и никто не понимает.

Напоминаю, начинающим jass'ерам:


Не используйте локальные переменные в гуи пикеда и фора, триггер сконструирован так, что фор и пикед крутятся отдельно и в них локальные переменные не действуют.
Прикрепления: PickUnitFromKAD.w3x (16.8 Kb)


Сообщение отредактировал DonLaonda - Воскресенье, 02.10.2011, 00:20
 
Дата: Воскресенье, 02.10.2011, 09:33 | Сообщение # 6
Подполковник
Проверенные
Сообщений: 144
Награды: 1
Репутация: 9
ай яй яй извиняйте, я тогда бухой был не то написал, я даже сам не понял что я написал :D :D :D

Сообщение отредактировал Random_chel - Воскресенье, 02.10.2011, 09:37
 
  • Страница 1 из 1
  • 1
Поиск: