XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
Sunn
To feel joy, not be blue
offline
Опыт: 4,975
Активность:
Несколько вопросов по триггерным спелам.
Экспансивное поглощение знаний в области редактора, связанное с приходом _сюда_ , привело к возникновению у меня вопросов по триггерным спелам. Вот те, что я смог вспомнить:
1. Псевдоченнел.
Однажды делал абилку- струя огня. Канальная, числовые значения зависят от статов кастера->весь урон и область задает скрипт(заклинание у героя- пустышка, служит "гашеткой" для триггеров и обеспечивает визуальный эффект). Если во время ченнела игрок отдает приказ о перемещении кастеру, то анимация обрывается, но триггеры, естественно, продолжают работать, нанося урон области. Бред, вобщем. Вот сейчас придумал такой вариант- одновременно с запуском абилки создавать триггер с условием (specific unit event, аргумент- наш кастер), проверкой(юнит прекращает применение способности), действием(прекрашение работы нужных триггеров). Но может есть лучший способ?
2. Динамическое создание триггера.
Это круто. Это дает кучу возможностей. А сильно ли дст нагружает компьютер? Может быть, дст следует применять в последнюю очередь, перебрав вначале иные варианты?
3. Изменение цвета спецэффекта.
Увы, но оценка за мои познания в моделлинге будует отрицательной, даже если ее возвести в квадрат. Поэтому решить эту проблемму я пытался путем создания юнита с видком нужного эффекта, и последуйщего изменения его RGB оттенков. Нифига не вышло. А как это сделать правильно?
4. Кулдаун абилки.
Например, кастер должен иметь возможность применить способность пять раз подряд, с нулевым кд(литлкастер не катит). После чего кд будет. Самое первое, что приходит в голову- после каждого применение делать UnitResetCooldown, со счетчиком. Но этот вариант не подходит- охлаждаются все абилки, а этого нам ненадо. Второе, что пришло в голову- сделать две похожих абилки, только у одной из них будет нулевой кд; после пятикратного ее применения заменить ее абилкой с кд, по истечении которого опять-таки дать первую абилку. Но это как-то коряво, на мой взгляд. А как еще?

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

З.Ы.
Небольшой оффтопчик напоследок. Для тех, кто не пробовал- измените способность "ракетный удар", сделав область поражения 1, плотность снарядов максимальной. Моя любимая анимация в таком случае- феникс(войска дальнего боя), еще как вариант- снаряд темной цитадели или башни неруба. Выглядит потрясно.
Старый 26.08.2008, 00:45
Scorched

offline
Опыт: 7,912
Активность:
  1. Ну общий принцип по ходу такой и дб
  1. Попробуй удалить абилку, и моментально ее же дать, кто-то писал на форуме
зы Ну и загнул тему..%)
Старый 26.08.2008, 01:03
PlayerDark
Coraline
offline
Опыт: 10,569
Активность:
1. если у тебя там есть периодический триггер - поставь в нем условие на наличие у кастера нужного ордера. Тогда если юнит что то сделал другое то внутри условия происходит удаление всего спелла и прекращение его действия.

2. Современный компьютер такая фигня как триггер нагружает не сильно. Тормозить могут динамические периодические триггеры создаваемые в массовом количестве. Также нужно внимательно следить за утечками производимыми триггерами.

3. Цвет юнита меняется спокойно но насколько я знаю цвета приаттаченых спецеффектов не изменяются.

4. Согласен с Scorched ом.

PlayerDark добавил:
1. Не забудь дописать return внутри проверки.
Старый 26.08.2008, 06:52
Strayiker
Warcraft Forever
offline
Опыт: 3,406
Активность:
  1. Лучше делай таймерами, ими управлять гораздо легче.
  1. Создавать триги можно, но нужно их удалять когда они не нужны больше.
  1. Цвет меняется, но не у всех спецэффектов, только у тех которые стеланы не с помощью частиц, также это относится к отдеьлным частям спецэффекта.
Старый 26.08.2008, 08:25
Sunn
To feel joy, not be blue
offline
Опыт: 4,975
Активность:
1. Хорошая идея, ведь триггер именно периодический. Sps.
2. А какие утечки произвотит триггер? Или обнуление переменных с последуйщим call DestroyTrigger() не лечит эту проблемму?
3. А я не аттачил эффект, я создал юнит с моделью нужного спецеффекта. Хз почему непашет.

2Scorched&PlayerDark
4. Если каждый раз давать-удалять абилку, получится намного больше триггерных операций, чем сделать это один раз в конце. Да и вобще, суть та же. Корявая. Может, есть способы устанавливать для юнита U кулдаун К абилки А? Хотя я таких функций невидел, но мало ли.

5. Открыть карту в текстовом редакторе.
С радостью пропатчив вар до 1.22, я лишил себя возможности использовать JassNextGenPack и убил свою карту, в которой его использовал. В принципе, ничего особо ценного та карта из себя не представляла- так, лаборатория. Но все же жаль. А можно ли открыть карту не в эдиторе, а как текстовый документ? И что для этого надо? Тогда, удалив лишнее, можно будет решить проблему...
Старый 26.08.2008, 08:47
Strayiker
Warcraft Forever
offline
Опыт: 3,406
Активность:
Цитата:
А какие утечки произвотит триггер? Или обнуление переменных с последуйщим call DestroyTrigger() не лечит эту проблемму?


Сам триггер - утечка. Нужно не просто удалять триггер, но ещё чистить всё что с ним связано.

Цитата:
А я не аттачил эффект, я создал юнит с моделью нужного спецеффекта. Хз почему непашет.


читай мой пост чуть выше.

5. Открой карту MPQ редактором выдери что нужно и открой текстовиком.
Старый 26.08.2008, 08:54
Sunn
To feel joy, not be blue
offline
Опыт: 4,975
Активность:
По совету умных людей прошу модераторов перенести тему в раздел "академия", а заодно задаю идиотский вопрос- что такое MPQ редактор?
Старый 26.08.2008, 09:21
Scorched

offline
Опыт: 7,912
Активность:
Это архиватор, понимающий mpq
Старый 26.08.2008, 09:36
Sunn
To feel joy, not be blue
offline
Опыт: 4,975
Активность:
Понимаю, что следуйщие вопросы не стыкуются с названием темы, ну да ладно, может кто ответит пока не потрут топик)
Открыв карту в WinMPQ и найдя файл с скрипт-кодом карты, я прикрыл даблслешем те функции, которые не нравились редактору, сохранил изменения... но всеравно не открывает. Пересмотрел код кучу раз, вроде все правильно. Может, надо изменить еще что-то? Картинка с ошибкой редактора ниже.
И еще. В коде карты заметил то, о чем в свое время читал- регионы генерируются при создании карты-
Код:
set gg_rct_undead_ground = Rect(- 2144.0 , 128.0 , - 992.0 , 1344.0)

-при помощи функции Rect(), что, по моему скромному мнению, происходит от Rectangle. Мне стало интересно- неужели близы прописали одну-единственную функцию для создания региона? Может быть, есть еще функции? А то прям культ прямоугольника какойто и просто дискриминация остальных геометрических фигур.
Миниатюры
Кликните на картинку для увеличения
Название:  winMPQ.JPG
Просмотров: 22
Размер:  56.5 Кбайт  
Старый 26.08.2008, 10:43
Dragon Knight
Меткий стрелок!!!
offline
Опыт: 4,138
Активность:
Цитата:
Функция триггера отсутстыует в б.д : DestroyTimer


Эта ошибка у меня тоже вылазела.Мне кажется эту карту надо открывать в JNGP.
Старый 26.08.2008, 11:12
Sunn
To feel joy, not be blue
offline
Опыт: 4,975
Активность:
Dragon Knight, весь этот кипиш с MPQ редактором я начал в связи с желанием удалить из кода карты те функции, корторые не открывает редактор варика после того как карта побыла "в руках" у JNGP. Не получилось.
Scorched, ты был прав насчет пункта 4=). Если сделать по принципу двух абилок, то возникают проблеммы с заменой абилки, приходится изощряться. Делаю по принципу добавил-удалил.
Старый 26.08.2008, 22:13
Scorched

offline
Опыт: 7,912
Активность:
Xenosapien, попробуй написать в тему про jngp (в разделе jass)
Старый 26.08.2008, 22:23
Sebra

offline
Опыт: 5,603
Активность:
Цитата:
С радостью пропатчив вар до 1.22, я лишил себя возможности использовать JassNextGenPack и убил свою карту, в которой его использовал.
Возьми worldedit.exe от 1.21b из темы про jngp.

Цитата:
Открыв карту в WinMPQ и найдя файл с скрипт-кодом карты, я прикрыл даблслешем те функции, которые не нравились редактору, сохранил изменения... но всеравно не открывает.

.j файл смотрел? Там результат компиляции, а не твоя работа. Этот файл создаётся на основании твоих "триггеров" при сохранении карты.
Цитата:
регионы генерируются при создании карты при помощи функции Rect(), что, по моему скромному мнению, происходит от Rectangle.

А по моему скромному мнению, то, что в ГУИ называется "Регион", на джассе пишется как rect - прямоугольник, описываемый:
Код:
type rect               extends     handle
native Rect                     takes real minx, real miny, real maxx, real maxy returns rect

А region - набор точек/клеток/ячеек:
Код:
type region             extends     handle
native CreateRegion             takes nothing returns region
native RegionAddCell           takes region whichRegion, real x, real y returns nothing
native RegionAddRect            takes region whichRegion, rect r returns nothing

Цитата:
А то прям культ прямоугольника какойто и просто дискриминация остальных геометрических фигур.

Прямоугольник определить проще, а для остальных фигур регион.
Старый 27.08.2008, 23:25
adic3x

offline
Опыт: 108,439
Активность:
Цитата:
А то прям культ прямоугольника

рофл... боян но всетаки рассмешило... http://img371.imageshack.us/img371/7006/pc64ne2.gif

ну вообще еще хорошая фигура круг, радиус (координаты + дистанция), весьма юзается в варе

Цитата:
По совету умных людей прошу модераторов перенести тему в раздел "академия"


это кто тут у нас такой умный сейчас схлопочет варн за взятие на себя обязаностей модератора?)

1) по идее (хотя я и не тестил) на кастере чанелинг спела дб бафф от сего же спела (по которому вар собстно и проверяет кастуется ли спелл)

2) только на получение вреда конкретным юнитом и на приближения к юниту, в остальном мона не создавать тригеры динамич

3) самое тру конечно эдитить модель...

4) смотря как кастер получает абилки... мона сделать их многоуровневыми и на каждый уровень свой кулдаун, и выставлять их тригерно...
Старый 27.08.2008, 23:46
Sunn
To feel joy, not be blue
offline
Опыт: 4,975
Активность:
Хмм как интересно. Sebra, тоесть при помощи функций CreateRegion и RegionAddCell можно рисовать области любой формы прямо в игре? RegionAddCell, кстати, добавляет клеточку 1*1?
ADOLF, врядли тот парень желал мне зла, всетаки он помог мне с п.3=) А насчет многоуровневых это труъ. Буду пробовать.
Старый 28.08.2008, 00:11
adic3x

offline
Опыт: 108,439
Активность:
да конечно я шучу) вообще просто если вам кто то что то говорит, или вы не уверены - прочтите правила, благо они есть в каждом разделе свои и т.д. и никаких проблем не будет)
Старый 28.08.2008, 00:22
Sunn
To feel joy, not be blue
offline
Опыт: 4,975
Активность:
Вот еще один вопросик. Например, надо создать эффект, извините за тафтологию, движущегося эффекта. Обычно это делаю двумя способами- или двигаю юнит с видком эффекта/приаттаченым эффектом(но этот способ я неочень люблю, так как с юнитами куча проблем), или просто создаю и удаляю эффекты где надо, чтоб возникла видимость движения. Что лучше? Париться с юнитами-эффектами, делать их "невидимыми" для триггеров с проверками(например, на количество юнитов в области, или на кол-во юнитов типа, и т.д.), опять же все эти неуязвимости для них... или забить на них и делать чисто на эффектах? Может быть, есть еще способы. Жду советов)
Старый 01.09.2008, 22:37
Dragon Knight
Меткий стрелок!!!
offline
Опыт: 4,138
Активность:
Xenosapien а зачем тебе их скрывать!Ты создай дамми-модельку с нужными креплениями->установи её юниту и дай юниту способность "москиты"->триггерно аттач эффекты к этому даммику и двигай куда хош!--->эффект движущегося эффекта.
Старый 01.09.2008, 23:36
Hexus
Looking for a victim
offline
Опыт: 19,166
Активность:
Первый вариант предпочтительней, т.к. у некоторых эффектов нет анимы stand - у них сразу проигрывается death, так что удаление визуально ничего не изменит. Просто нагромождение эффектов. И даже если анима stand есть, все равно за эффектом будет тянуться хвост из его же death-аним.
Старый 02.09.2008, 02:17
adic3x

offline
Опыт: 108,439
Активность:
Xenosapien, юзать юнитов т.к. еффект не может быть создан на нужной высоте, поэтому максимум во втором вариант ты сможешь сделать движение "по земле" + также я не уверен что постоянное создание/удаление будет быстрее чем работа с юнитом
Старый 02.09.2008, 10:57
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 03:40.