Klop
Папа римский
offline
Опыт:
13,006Активность: |
Создаём предмет-резистор
Статья посвящена созданию предмета (способности), которая бы имела сопротивление (уменьшала бы урон) от определённых видов spell-ов (как пассивных, так и активных).
__________ » Оригинальный текст автора статьи: Вот решил написать как создать предмет ,который имеет сопротивление к определённым спеллам,это идея мне пришла при безделье,для создания резиста использовать можно три способа: 1.Это урон уменьшенный юниту от магии,который делать триггерно,недочёт в том что на пассивный спелл нельзя отследить уменьшеный урон из-за защиты юнита из-за этого этот принцип применять только для активных спеллов 2.Это способ который необходимо осуществлять при помощи замены способности юнита при помощи дамми-каста,способ удобен только для пассивных спеллов 3.Это способ по которому я решил сделать при помощи использования способности Техника,способ неудобен только одним что резист ставится только на способности геройские(значит такие предметы хорошо использовать в АоС картах) Что делает способность "Техника"-Эта способность используется для улудшения способности героя т.е в доте сделан так предмет синий посох,одна способность может в себе иметь 4 улудшеных любых способностей героя ,ну а в нашем варианте мы наоборот будем ухудшать способности при атаке или использования спелла на героя ,который имеет этот предмет Создаём предмет с названием "Амулет Яда",который будет давать сопротивление к яду 50%,после чего я сделал резист двум способностям яда это отравленное оружие(Пассивный спелл) и Отравленный нож(Активный спелл) после чего я копирую один и добавляю суфикс к названию спелла "50%" то же самое я проделал со второй способностью и у копированных способностей уменьшил урон и замедлениее в 2 раза после чего в графах способности "Техники" -мы ставим: Усовершенствование способности 1:-Отравленное оружие,Отравленное оружие(50%) Усовершенствование способности 2:-Отравленный нож,Отравленный нож(50%) и все осстальные поля "Данные " обнуляем или очищаем Может моё написанние триггеров не очень правельное ,но рабочее. Теперь переходим к триггерам: Вообщем нам надо зарегистрировать при преобретении предмета героя от каждого игрока,у нас получается такой триггер который я назвал "ResistPoison" Код:
Мы конечно этот триггер могли сделать намного меньше при помощи индекса в массиве поставив такой [HeroManipulaitingItem] и тогда нам не потребовалось создавать Ифы,ну если вы не знаток триггеров то тогда лудше сделать так как создан триггер у меня для понятия создания,далле мы должны с вами при потере предмета героем обнулить нашу переменную для того что бы герой который зарегистрирован при подборе предмета потеряв предмет не получал половинный урон от магии ,а полный для этого вы должны создать триггер такого типа ,который я назвал "ResistOff" Код:
Также ,если вы регистрацию вводили по способу который я написал т.е. одним действием вставляя в индекс массив ,вам потребуется только одно действие с обнулением с такимже индексом,который я писал можно использовать что бы избавиться от Ифов ,опять же этот индекс поможет вам избавиться от Ифов,но если вы не опытный триггерщик не советую вам пока это делать! Теперь мы будем записывать способности,другими словами когда они будут срабатывать на 50%,а когда на 100%,для этого создаём триггер 3 "PoisonWeapon" В этом триггере ,я сделаю что б половинный урон наносил тогда когда ваш герой или герой ,который владеет этим предметом ,то юниту который атакует даётся способность "Техника " и его способность улудшается в худшую стороную. Код:
Если у вас несколько типов юнита владеющих одинаковой способностью с одинаковым уроном и всем остальным ,то вы можете в каждый из двух Ифов добавить ещё условие "Or-Any(Conditions) are true" и туда создать два условия ,которые отвечают за тип атакующего юнит,другими словами те герои ,которые имеют способность от которой у вас сопротивления и наконец последний триггер по способности отравленный нож "PoisonDagger" В этом триггере я делаю тот же самый триггер что и предыдуший только уже с активной магией и поэтому у нас меняется событие и и условия. Код:
Так же если у вас несколько героев с одинаковой магией то вам также потребуется сделать с созданием условия так же как и в предыдушем триггере только обратить внимание где Casting unit ,а где Attacking Вот у вас возникла проблема необходимо сделать сопротивление магии "Отравленное оружие " только оно не у героя ,а у юнита? В этом случае используем способ 2 ,для этого потребуется создание невидимого дамми юнита ,у которого будет способность половинного урона "Отравленного оружия" и при атаке юнита с этой способностью после чего сразу удалть заклинание действующее на юнита создать Дамми юнита в позиции вашего юнита ,отдать приказ атаковать и с атакой 1-1 и после как сразу заклинание начало действоваь удалить дамми юнита ,написанно много ,но не пугайтесь это выглядет очень легко и пионять тоже очень легко Код:
Эта статья расчитана только если каждый из четырёх игроков будет иметь только одного героя!!! Это статья конечно не супер,но вдруг кому-то пригодится так же при прочтении статьи необходимо вдуматься в неё и понять построение триггеров и можно делать резисторные магии и предметы для определённых спеллов. Если у кого-то возникнут вопросы по статье или у вас возникнут какие недопонимания чего-то свои вопрос и проблемы выкладываем в этом топике,на все вопросы будут ответы. __________ » Переработанный и отредактированый (без изменения сути) текст статьи: Оглавление
1. "Предмет-резистор": описание и способы реализации.Предлагаемая мною способность "предмет-резистор" даёт возможность устанавливать сопротивление (уменьшение урона) от определённых видов spell-ов (в данной статье речь пойдёт о сопротивлении "Отравленному оружию" (пассивная способность) и "Отравленному ножу" (активная способнотсь) ). Я вижу три способа решения задачи по созданию такой способности:
Реализация задачи.Как мы уже выяснили, успешно сочетать в себе определение и активных, и пассивных способностей, против которых нам необходимо установить "сопротивление", можно, из перечисленных выше способов, при помощи dummy-unit-a и способности "Техника". Итак, что же их себя представляет эта способность? Способность "Техника" - это способность, которая используется для улучшения способности (способностей) героя (например, в DotA-е по такому принципу сделан один предмет - "Синий посох"). Одна такая способность может иметь в себе 4 любых улучшеных способности героя, правда, в нашем варианте мы, наоборот, будем ухудшать способности (к которым делается сопротивление) при атаке героя или применении spell-а к нему, имеющего наш "предмет-резистор". Чтобы реализовать создание такого предмета с помощью способности "Техника" нам необходимо сделать следующее:
1. Создание необходимых способностей и предмета в редакторе объектовПервым делом создадим способность, "обновляющую" базовые способности до таких, которые наносят меньший урон - выбераем способность "Техника" и создаём на её основе способность "Яд". Далее, мы создаём дубликаты способностей "Отравленное оружие" и "Отравленный нож", уменьшаем им урон вдвое и ставим им суфикс "50%". Затем, в редакторе объектов выбераем, созданную нами на основе способности "Техника", способность "Яд" и заполняем у неё поля "Данные - Усовершенствование способности (1 и 2)", в каждом из которых устанавливаем базовую способность, а потом дубликат, на который она будет обновляться, т.е. на "уменьшенный" по урону:
2. Создание триггеров, которые будут обслуживать работу "предмета-резистора"1. Триггеры, обслуживающие получение/потерю "предмета-резистора". __________ Триггер, отслеживающий получение предмета ("ResistPoison"): Код:
Работа триггера: С помощью события "A unit Получает предмет" и условия проверки того, какой именно предмет получен - (Iten-type of (Item Carried by(HeroManipulaitingItem) of type Амулет Яда)) равно Амулет Яда ) устанавливаем, что какой-то герой подобрал наш предмет-резистор. Затем, проверяем какому игроку принадлежит этот герой и помещаем его в массив, значение индекса которого будет меняться в зависимости от того, кому этот герой принадлежит (чтобы для героя каждого игрока была отдельная переменная). После этого включаем триггер "PoisonWeapon", который является изначально не включённым во избежание его срабатывания до того, как будет определён носитель предмета-резистора. __________ Триггер, отслеживающий потерю предмета (""ResistOff""): Код:
Работа триггера: С помощью события "A unit Теряет предмет" и условия-проверки (Item-type(HeroManipulaitingItem)) равно Амулет Яда устанавливаем, что какой-то герой бросил предмет-резистор. После этого мы просто обнуляем (стираем) то значение из массива героев, которое будет соответствовать тому, который бросил предмет-резистор - это исключит возможность применения к ниму тех триггеров, которые будут обеспечивать сопротивление, т.е. при "потере" предмета утратится и сопротивление к определённым spell-aм. 2. Триггеры с событиями атаки (в том числе и с dummy-unit-ом - для пассивного spell-а ), а также применения способности (для активного spell-а). __________ Триггер, отслеживающий момент атаки обладателя предмета-резиста ("PoisonWeapon") - для пассивной способности, против которой имеется сопротивление: Код:
Работа триггера: С помощью собыия и условий этого триггера устанавливаем, что героя с преметом-резистом атакует герой, у котрого есть способности к которым у нашего предмета есть сопротивление. После этого, добавляем атакующему спосбность "Яд" (та, которая сделана на основе способности "Техника"). А потом, если целью атаки не являеся герой с предметом-резистом, мы удалем добавленную ранее (или не добавленную) способность "Яд", чтобы такой атакующий использовал свои способности с полным уроном в отншении тех, у кого нет предмета-резиста. __________ Триггер, отслеживающий примение негеройской способности, к которой имеется сопротивление (с dummy-unit-ом): Код:
Работа триггера: Проверяем с помощью этого триггера то, что атакован герой с предметом-резистом и удаляем заклинание, которое на него накладывается пасивонй способностью unit-a-негероя. Затем создаём невидимого dummy-unit-a (с атакой "1-1") в точке героя с предметом-ризистом (т.е. атакуемого) и приказываем ему атаковать. Даём ему один раз поразить цель, чтобы он создал на цели заклинание с меньшим уроном, вместо базового, и удаляем из игры. __________ Триггер, отслеживающий применение способности "Отравленный нож" ("PoisonDagger"): Код:
Работа триггера: Теперь, если к герою с предметом-резистом применяют способность, к которой есть сопротивление, то применяющему (caster-у) добавится способность "Яд" (та, которая сделана на основе сопосбоности "Техника"), что привёдет к "ухудшению" урона от применяемой способности, т.е. обеспечится сопртивление. Недостатки предложенного варианта реализации способности "предмет-резистор":
__________ Отредактировано Harakternyk, 20.01.2008 в 18:45. |
15.01.2008, 03:41 | #1
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Virysru
offline
Опыт:
7,692Активность: |
очень замутно.. Но попробовать можно. |
15.01.2008, 05:53 | #2
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Harakternyk
offline
Опыт:
2,703Активность: |
Mr_KLOP, по порядку...
» Преимущества
» Недостатки
Устрани указаные недостатки и тогда можно будет посмотреть, что ещё сделать, чтобы считать этот материал достойным называться статьёй. P.S. Уважаемые (сведущие в вопросе, которому посвящена эта тема) пользователи нашего Форума, высказывайтесь по поводу качества и возвожных способов улучшения материала, предложенного Mr_KLOP-ом, в конструктивном ключе. Заранее благодарен! Отредактировано Harakternyk, 15.01.2008 в 12:02. |
15.01.2008, 09:55 | #3
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
Цитата:
примерно такое же использование падаже выдается различными переводчиками. если делаешь перевод в это ничего плохого нет, но надо указывать афтора и ссыль на оригинал. если это не перевод а стилизация под раасказ от лица огра... хм... хотя нет, таких орфографическиз ашипок он не твоирт) вообще по смыслу статьи что то жуткое и совершенно нечитаемое) |
|
15.01.2008, 12:51 | #4
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Klop
Папа римский
offline
Опыт:
13,006Активность: |
За ошибки русского языка не судить,я везде делаю ошибки,если б я писал на украинском то тогда ошибок меньше было бы |
15.01.2008, 19:28 | #5
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Harakternyk
offline
Опыт:
2,703Активность: |
Mr_KLOP, с устранением ошибок (хотя мне тоже удобнее на украинском, но Форум русский, поэтому изволь на русском изъясняться), и не только..., я тебе помогу, но когда доведёшь всё остальное "до ума".
Прорабатывай саму наработку-идею с учётом всех существенных замечаний, чтобы она была на должном уровне. Успехов тебе Отредактировано Harakternyk, 15.01.2008 в 19:40. |
15.01.2008, 19:35 | #6
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Klop
Папа римский
offline
Опыт:
13,006Активность: |
Harakternyk Помойму написанно очень понятно и доступно даже для того кто редактор первый раз открыл и все триггеры сделанны и пример который я делал проверяя уже выложил ,это как наработка только для импорта она неудобна и настраевая,поэтому выглядит как статья ,в котороы написанно как применять триггеры что бы создать сопротивления,людям останется создать подобные триггеры показал активный и пассивный спелл и правельно сделать работу в редакторе обьектов и всё
|
15.01.2008, 19:56 | #7
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
BlackStuff
offline
Опыт:
1,656Активность: |
Нормально, но, существуют более универсальные методы, в жасс можно использовать типы урона (огонь, холод и т.п.). Больше ничего не скажу, т.к. эта наработка уже на 90% сделана одним человеком, надеюсь, мы все скоро её увидим... |
15.01.2008, 20:14 | #8
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Klop
Папа римский
offline
Опыт:
13,006Активность: |
BlackStuff,Очень много людей ,которые джазз даже незнают что это такое,можно упростить два триггера и избавиться в от 3 Ифов просто индекс массива поставить Player Number-Owned of (HeroManipulaitingItem), но сделано что б понять что каждого героя от игрока мы заносим в переменную и при потере предмета обнуляем переменную что бы Герой не аставался в переменной и магия наносила полный урон ,а не половинный,если не обнулять то юнит останется в переменной и будет постоянно наноситься половинный урон
|
15.01.2008, 20:34 | #9
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Harakternyk
offline
Опыт:
2,703Активность: |
Mr_KLOP, наработка не универсальна (только один герой, ограничения по типу юнита) - это самый большой недостаток. Далее, расширение возможностей твоей идеи-способности будет только приветствоваться. Кроме того, объяснение кода надо делать в тексте самой статьи, а не в последующих постах (как тот, который расположен выше данного).
Я лишь хочу помочь тебе сделать то, что будет почитаться многими, а не ограниченным кругом людей, которые относятся, в большенстве своём, к новичкам - материал должен быть универсальным и интересовать многих людей, тем более, что у этой идеи есть большой потенциал стать именно такой, т.е. интересной многим. К слову, пояснения подобного рода можно делать и в комментариях наработки - не так уж велики объёмы, чтобы создавать статью, ибо статья это более глубокое рассмотерение вопроса, а не код, перед которым, в общих чертах говорится о том, почему автор выбрал тот или иной способ реализации своей идеи. Я пытаюсь помочь тебе сделать из этого не только хорошую наработку, но и один из образцов работы по созданию триггерных способностей. Однако, выбор за тобой - или дорабатываешь и сделаешь всё как следует (и твоя статья окажется в базе, если тебя никто не опередит...) или эта тема останется висеть, как и многие остальные, незавёршённые по сути затронутых вопросов. Определяйся, вобщем. |
15.01.2008, 21:10 | #10
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Klop
Папа римский
offline
Опыт:
13,006Активность: |
Harakternyk, я дополнил и теперь тяжелее читается начало. Наверно, лучше было так, как было изначально.
Отредактировано Harakternyk, 19.01.2008 в 19:42. |
19.01.2008, 11:38 | #11
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Harakternyk
offline
Опыт:
2,703Активность: |
Mr_KLOP, не торопись - хороший труд редко бывает быстрым... Сегодня вечером я переоформлю твою статью. А остальные наработки более широкого масштаба можно будет совместно (кто желает может проконсультировать и помочь) прорабоать после 22-го января.
Будь спокоен - никто не забыл о твоём материале - займусь его судьбой в ближайшее время |
19.01.2008, 14:15 | #12
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Klop
Папа римский
offline
Опыт:
13,006Активность: |
Harakternyk спасибо!!! Если у кого-то появятся вопросы по этой статье обращайтесь прямо в этом топике.
Отредактировано Harakternyk, 19.01.2008 в 19:39. |
19.01.2008, 15:53 | #13
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
R_A_N_D_O_M
offline
Опыт:
5,372Активность: |
Mr_KLOP статья норм , правда я об этом думал , но я думал что все об этом знают.
Еслиб в Dota-Allstars был бы нормальный резист спеллов то анти-маг рулил бы (правда он и так рулит.) |
19.01.2008, 20:11 | #14
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Klop
Папа римский
offline
Опыт:
13,006Активность: |
R_A_N_D_O_M, это не общий резист ,а создаваемый для опредёллённых магий т.е. при игре один на один, с Веномансером к примеру, оно бы рулила ,тем более, я не уверен, что все знают!
Отредактировано Harakternyk, 20.01.2008 в 14:13. |
20.01.2008, 03:30 | #15
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
TNT
О_о
offline
Опыт:
11,019Активность: |
Непонятно может быть либо тормазам, либо левым людям, не относящимся к модмейкингу, либо нубам. Имхо всё в статье доступно сказано, если не можешь понять, не суйся. Во чо сказал!) |
20.01.2008, 08:23 | #16
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Harakternyk
offline
Опыт:
2,703Активность: |
Cinderella, знающим людям эта статья мало чем полезна (тем более, что, предложенный автором, алгоритм настолько нуждается в переработке по части его универсализации и устранении текущих ошибок/алогизмов (обрати внимние на причины создания dummy-unit-a; задействование custom script-a для обнуления глобальных переменных...), что может возникнуть вполне обоснованная критичекая его оценка...), поэтому именно новичкам ("нубам") она и адресована, а отсюда, и оформление должно быть соответствующим.
Повторюсь, статья посвящена актуальной (нужной, интересной) теме и заслуживает помещения в базу, которая не содержит публикаций на эту тему, но только после того, как сама эта статья будет нормально оформлена и доработана - я заканчиваю переоформление (технические вопросы и изменение текста статьи, с этим связаные, согласую с автором позже и только после такого согласования, будут внесены какие-либо изменения по существу). Отредактировано Harakternyk, 20.01.2008 в 16:27. |
20.01.2008, 11:10 | #17
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Klop
Папа римский
offline
Опыт:
13,006Активность: |
Harakternyk, да, переработанное мне нравится - читается удобнее намного.
Отредактировано Harakternyk, 20.01.2008 в 19:53. |
20.01.2008, 18:33 | #18
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
TNT
О_о
offline
Опыт:
11,019Активность: |
Harakternyk, я что-то говорил про знающих людей?
|
20.01.2008, 20:50 | #19
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Harakternyk
offline
Опыт:
2,703Активность: |
Cinderella, ты сказал, что не понять статью может только, в том числе, новичёк поэтому я и сказал, что статья нуждается в доработке, чтобы даже новичёк её понял, ибо в первичном варианте, она была далека от её нормального восприятия таковым.
|
20.01.2008, 21:44 | #20
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|