и отзывчивости.
SunCreep
#46 | Тема: Поздравляем GraF_ZM_Nation`a!и отзывчивости.
Форум Записи участника |
Результаты поиска |
SunCreep#46 | Тема: Поздравляем GraF_ZM_Nation`a!Quote (HappySmile) адекватности и терпения! и отзывчивости. |
|
SunCreep#48 | Тема: [Статья]Создание триггерных скиловСоздание триггерных скилов для тех,кто ниже среднего Это первая статья из этой серии.Тут я расскажу как создавать не очень сложные триггерные скилы используя GuI(триггеры) и немного CS(custom script).Я не имею опыта работы с CS и Jass,но некоторые команды нам понадобятся что бы устранить утечки.Если кто-то не знает что это,попробую объяснить.Предположим вы задали команду выбрать отряд.После вы работаете с этим отрядом,а система его запоминает.Этот отряд уже вам не нужен и возможно не существует,но система помнит о том,что он был.Это лишнее действие с её стороны и мы должны приказать ей забыть этот отряд.Для этого перед тем как выбрать отряд ставим запрос: set bj_wantDestroyGroup = true.Каким то магическим образом система будет понимать когда отряд уже не нужен и забудет о нём.Утечки так же бывают с спецэффектами и точками,но об этом позже. В этой статье мы будем делать улучшенный "Смерч".Скил,который я сделал я назвал "Вах ветерок!",это не как не влияет на его действие,но запомнится нам чтоб далее знать где мы его обозначаем.Суть скила в том,что когда враг покрутится и упадёт он нанесёт урон всем вокруг него и после сам будет ежесекундно терять скорость и промахиваться. Итак,для начала нам нужно создать такие переменные:
Также нам нужно будет делать 2 триггера. Первый триггер выглядит так: Действия для плавающего текста не обязательны,просто они создадут эффект того что ваш герой произнёс это заклинание.Я думаю тут нет ни чего сложного.Просто устанавливаем переменные и запускаем основное тело скила. Второй триггер будет сложнее и мне придётся его комментировать: Большим он только кажется.Итак начнём с события,которое не поместилось.В этом триггере лучше поставить: Событие - прошло 0.1 сек. Данное событие будет 10 раз в секунду проверять опустился ли наш юнит на землю.Проверяет он это с помощью условий.Условия логического типа разрешат делать действия только в том случае,если в статусе героя пропали иконки.Это называется Specificl Buff.Проще говоря это то что устанавливается в спеле в графе "Заклинание". Итак,как только в статусе убрались эти иконки,действие пошло.Для начала мы отключаем триггер.Звучит глупо,но это гадость перевода.Мы не выключим триггер,а отключим событие,чтоб наш триггер не повторялся.Отключив событие мы используем CS о котором я уже говорил set bj_wantDestroyGroup = true.Просто копируйте текст и вставьте его в действие "Личный код".Теперь выбираем отряд.Отряд выбирается в разделе "Отряд" первым действием.Там изначально стоит зона игровой карты,но нам нужен диапазон вокруг цели.Я поставил 300,можно выбрать любое число.Далее у вас появилась ветвь цикла.Ставим там такое действие: Там стоит формула: Уровень скила у применившего умноженный на 60.Этот урон получат юниты.НУ и ставим урон от нашего кастера(Caster_Wind) ко всем выбранным юнитам. конфетка Далее создаём спецэффект в позиции цели скила.У меня на скрине перепутано.На скрине сначала установлена переменная,а потом создан эффект.На самом деле нужно сначала создать спецэффект,потом установить его как переменную. Ещё скажу что спецэффект мы крепим не к юниту а к его позиции.Такова рода эффекты существуют 1 раз и показываются не зависимо удалены они уже или ещё нет.Переходим к самому важному. Т.к. наш упавший должен промахиваться мы создаём Дамми(подставной юнит).Наш Дамми создан на основе светлячка сделайте его характеристики такими: Убираем иконки,убираем модель(в пути к текстуре пишем слово Установим даммика как переменную. Теперь даём ему заранее слепленный скил на основе Проклятия.Этот скил находится в скилах воинов нежити.Там регулируем нужный шанс промаха. Далее с помощью действий над БЕ добавляем ему этот скил.Если вам надо чтоб промахи зависели от уровня способности,то нужно действие "Set level of ability" оно в самом низу.Там с помощью арифметики и мозга создаём нужную формулу расчёта.Я всегда делаю такую: Установить лвл способности у Дамми как уровень способности у кастера.Это самый просто вариант. Далее применяем её нацель с помощью действия над БЕ "Результат приказа при наведении на цель юнит" там выбираем наших юнитов и устанавливаем нужную команду.Вы,наверно,заметили,что я пропустил одно действие.Это действие нельзя забывать.Оно убивает нашего даммика после всех действий.Добавляем ему время истечения 1 сек.Значит с момента добавления и через секунду он умрёт,но юзнут скил успеет.И что примечательно он умрёт даже имея неуязвимость.Вообще говоря этот "таймер" это та полоска,которая появляется на призывных юнитах. Так,медленно мы дошли до изменения скорости.Я буду делать её через триггер,а вы можете уже зная работу с Дамми сделать тоже самое что и делали с проклятием,только заменить на скил "Замедление".Этот вариант хуже только тем,что вы не сможете замедлить невосприимчивого к магии,а триггером сможете.Ну и естесно у вас не совместятся касты.А так всё будет очень медленно)) Итак,замедляем мы с помощью реальной переменной,целочисленной переменной и цикла от 1 до 10 Сначала установим в реальную нашу изначальную скорость. Создаём цикл.Это действие называется:" Для каждого числа А делать несколько действий" там мы выбираем нужное кол-во действий(кругов). Делаем всё что показано на скрине.Опять скажу что текст,который там есть,будет показывать скорость единицы на данный момент,он лишь для красоты. При тесте вы можете заметить,что скорость остановится либо на 135 либо на 150.Это планка замедления.Её можно опустить до 0 в игровых константах. На скрине не поместилось ещё одно действие - возврат скорости.Установите скорость вашей цели как реальная переменная,которую вы установили в начале. На этом кончается 2 триггер.Теперь вы можете протестировать то,что получилось. Ну или понять что у вас кривые руки я плохо объяснил и скачать наработку: тык!. Для тех кто дожил до конца статьи скажу,что при падении урон получат все.Чтоб урон получали лишь враги надо сделать функцию если/то/иначе. Code Если выбранный юнит жив равно да Если владелец выбранный юнит союзник владелец кастер равно нет Если выбранный юнит не равно кастер То... Вот такой незатейливой функцией мы убираем мертвых(зачем их пинать,уже поздно) и ваших союзников и конечно же вас. И ещё одна вкусная плюшка.Если вы создавали текст,то его переменную нужно обнулить.Для этого создаём после уничтожения текста такой CS:call DestroyTextTag (udg_Text_Wind).Этот CS мы ставим после обоих созданий текстов. Это всё.Спасибо за прочтение статьи. |
SunCreep#49 | Тема: [Статья]Создание триггерных скилов:Удаление точкиСоздание триггерных скилов:Удаление точки для тех,кто ниже среднего Итак,я подготовил вторую статейку по созданию скилов.В ней я хотел бы показать работу с CS:call RemoveLocation.Для тех,кто не знает что это,я постараюсь пояснить.Как вы знаете,в разделе спецэффекты есть строка:"удалить спецэффект".Точка,это тот же спецэффект,на который надо ссылаться,работая с позицией,и,чтоб не было лагов,его надо удалять.Но тут возникает проблема,нет строки удалить точку,тут нам помогает частичка Jass`а - CS.Если перевести,получится: приказ удалить точку.Что-то в этом роде.То бишь мы приказываем игре удалить нужную точку.В точности этот CS пишется так: CS:call RemoveLocation(udg_Имя переменной). В:Для чего это нужно? О:Чтоб уменьшить количество лагов! К примеру вы используете движение юнита в течении 5 сек,с периодичностью 0.04.То бишь: Code С-каждые 0.04 Д-Двигать Unit к позиции Unit смешение на -5 угол поворота Unit Так вы двигаете юнита в переменной Unit назад.Другим триггером вы выключаете этот.Наш пример создаёт 25000 утечек в виде локации.Это не вызовет больших лагов,но подумайте сколько у вас может быть ссылок на точки и частоту применения в игре этих скилов?Не очень перспективка намечается,не правда ли?)) Итак,почему 25000? в каждой секунде 100 долей секунд,в нашем случае их 500.(500/0.04=12500)*2.Почему *2?Так вы создаёте две точки.Всмотритесь,"Д-Двигать Unit к позиции Unit смешение на -5 угол поворота Unit".Позиция отсчёта точки,это первая точка,а сама точка которая будет рассчитана - вторая. Итак,что нам надо сделать что бы этого не было.Сначала создаём две переменные тип точка.Я назову свои переменные Location1 и Location2,установим их. Code С-каждые 0.04 Д-Установить Location1 равно позиция Unit Д-Установить Location2 равно Location1 смешение на -5 по отношению к угол поворота Unit Д-Двигать Unit к Location2 CS:call RemoveLocation(udg_Location1) CS:call RemoveLocation(udg_Location2) Итак,каждые 0.04 секунды мы устанавливаем что Location1 это позиция нашего юнита,а Location2 это его позиция со смешением на -5 от его угла поворота.После мы ссылаемся на нужную нам локацию,то бишь на Location2.Понимаем,что эти точки нам уже не нужны и убираем с помощью CS. Заканчиваем с теорией,переходим к практике.Открывайте ваш скил,который мы делали и удаляем утечки в нём.Вот,что получилось у меня: Розовым я показал где устанавливал переменные Красным - где удалял Зелёным показаны их применения А для тех,кто не понял или не смог пример. Итак,ещё пару слов.В данном скиле удаление точек не так важно,но там,где их количество очень велико - необходимо.К примеру взять наше движение,если бы там был не 1 юнит,а 100 в массиве?)Кстати о массивах.Если возникнет надобность удалять переменную с массивом используйте CS:call RemoveLocation(udg_Имя переменной[bj_forLoopAIndex]).Это для каждого числа А в цикле.С остальным,я думаю,вы разберётесь) Пока что это всё.Надеюсь всё было понятно,автор статьи:SunCreep |
|
SunCreep#51 | Тема: Проблема с триггером.1)Попробуй не инициализацию,а прошло 0.1 сек
2)Удали стандартный триггер |
SunCreep#52 | Тема: Проблема с триггером.Так,он входит в область и возвращается?Это нормально.Прикажи ему по достижению цели остановиться.Если он возвращается на половине пути,то посылай команду каждую секунду.
|
SunCreep#53 | Тема: Нужна помощь с триггерами!Найди нужную тебе иконку черепа и создавай.Ну или просто напросто эффектом.Ниже статья как выводить картинки.
|
SunCreep#54 | Тема: Нужна помощь с триггерами!Ах да,разбег.
Caster - переменная тип БЕ Target - переменная тип БЕ Location1-4 - переменные тип Точка _____ С-Приводит способность в действие Д-Caster равно применяющий юнит Д-Target равно () Д-приказать Target повернуться лицом к Caster Д-Запустить триггер 002 триггер 002: ____ С-каждые 0.04 с Д-Установить Location1 равно позиция Caster Д-Установить Location2 равно Location1 смещение на 7 по отношению к угол поворота Caster Д-Установить Location3 равно позиция Target Д-Установить Location4 равно Location3 смещение на -7 по отношению к угол поворота Target Д-Двигать Caster в Location2 Д-Двигать Target в Location4 Д-CS:Call RemoveLocation(udg_Location1) CS:Call RemoveLocation(udg_Location2) CS:Call RemoveLocation(udg_Location3) CS:Call RemoveLocation(udg_Location4) Добавлено (21.07.11, 15:53) |
|
SunCreep#56 | Тема: Лучший алкогольный напиток?А как же правило "4В"?)
Вино,Водка,Виски,Вермут (было 5,но я забыл(( ) |
|
SunCreep#58 | Тема: Нужна помощь с триггерами!Сделай не лицом к нему,а к позиции кастер.
И создай дополнительный триггер,который по истечению нужного времени выключит этот |
|
SunCreep#60 | Тема: [СТАТЬЯ] Масс гули против Эльфа.Mikelandjelo, позвольте с вами не согласиться.В словаре на букву А всего два исконно русских слова,так что сленг уже давно в нашей стране принят.Гули=вурдалаки просто слово само по себе короче,и более того обычно игроки на развитие не русские,так что Ghol вбивается в мозг навеки.Тоже самое если заядлый Jass`ер будет отвечать на вопросы используя равно и восклицательный знак))
Мейн,аккулиты,уд.Это всё является сленгом,точно звучащим с реального английского слова.То бишь Main(основной,главный),indulge(нежить) или Undead(оживший мертвец). Quote (H_A_PK) Раш - типа танковать количевством не танковать количеством,а "задавить по быстрому".То бишь развить большую армию чем у врага за короткое время. Т2 - Tier 1-3 апгрейды главных зданий,так ратуша в замок в крепость.Tier синоним слову Level. |
| ||