Собственно, вот. Сразу скажу, сам не пробовал, но выглядит заманчиво. Что эта система дает?
Разделение урона на произвольное количество типов (Physical, Fire, Ice, ... - все типы можно создавать и изменять самому в любом разумном количестве). То есть, тбвшная система рейтов уже "вшита" в эту систему.
Отлавливание количества получаемого урона, причем в зависимости от типа - не проблема, например, сделать триггерное увеличение маг дамага, причем не только от ненаправленных заклинаний, а еще и только от определенных рейтов.
Отлавливание прока пассивок (крит, уворот, блок, ...) - более широкие возможности для создания новых скиллов/фаз боссов/чего угодно.
Введение резиста только к определенному типу дамаги - т.е, скажем, +30% к резисту от Огня или блок 1200 Физического урона.
Система прикрепления доп дамаги/резиста к шмоткам - не надо в каждом триггере прописывать каждую шмотку, один раз написал, что "Ледяной Щит" дает блок 1500 урона от Льда и все, все ледяные щиты блокируют ледяной урон.
...
PROFIT! В принципе, тема не для широкого обсуждения, но в картострой писать предложения тоже как-то неправильно, поэтому написал сюда.
ICCup: JacobSonICCup + Garena: Agent.J
Сообщение отредактировал JacobSon - Понедельник, 31.03.2014, 20:54
JacobSon, по факту эт не к нам, это к Фениксу в личку, наверное. Тех, кто в картострое что-то "гу-гу", уже тут осталось всего ничего. Я так вообще кроме вас с Фениксом ничего не припоминаю. Резист к какому-то типу урона пожалуй бред, но зато можно Книжке Заповедей да Блэкам впаять ко всему резу, будет совсем весело. Но это меня куда-то не туда несет. Рейты у нас уже есть, уменьшения этих рейтов на боссах(Дермар) тоже присутствует. Итого мы имеем в основном отлавливание пассивок. Но это тоже круто. В общем-то я пишу, чтоб выглядело не как флуд, хех. Главный вопрос: Взвесьте пожалуйста, мне больше пятисот граммов нельзя. А учитывая ПЗ, там еще меньше. R.I.P.R.I.P.R.I.P.R.I.P.R.I.P.R.I.P.R.I.P.R.I.P.R.I.P. "Костоправ" Четырежды модератор
Kregorn, ну естественно, эта система не может "добавить" то, что уже есть в карте Просто соль в том, что здесь это все в рамках одной системы - удобнее и проще пользоваться, не надо изобретать велосипед каждый раз. Это примерно как тыкать в гуи по окошечкам VS. писать вручную код на джассе. И в силу этого же если над некоторыми вещами в тбв надо думать, чтобы их сделать (например, ураган времени и его реагирование только на нужный тип дамаги), то здесь оно доступно "в стандартной комплектации" (ставишь/убираешь 100% резист к ненужным типам урона и все). Лауре не нужно будет совать в астрал и он не будет носиться по арене от пинков кастеров. И так далее, и тому подобное.
ЦитатаKregorn ()
Главный вопрос: Взвесьте пожалуйста, мне больше пятисот граммов нельзя. А учитывая ПЗ, там еще меньше.
Цитата
Spart Damage System.w3x (30.3 KB, 37 views)
Это карта целиком, т.е. со всем левым барахлом. ICCup: JacobSonICCup + Garena: Agent.J
Сообщение отредактировал JacobSon - Среда, 02.04.2014, 10:27
Я дико извиняюсь, но никогда не слышал про яп джаз, расскажите про него, пожалуйста, Очень интересно) А по поводу движка - идея блочить определенный тип дмга вообще крутяк( допустим 25% к физу, 30к нейчи и тд.) и система боев уже в корне меняется)
Хм как я понял при каждой атаке будет выскакивать кусок текста на пол экрана? А ещё было бы не плохо сделать систему хила, но это очень муторно будет делать. Вручную
А так идея классная ) Чернокнижник, Друид Совух и Вайоловый Маг топ герои.
Сообщение отредактировал Melon - Среда, 02.04.2014, 09:30
Я дико извиняюсь, но никогда не слышал про яп джаз, расскажите про него, пожалуйста, Очень интересно)
Называется он JASS. Ссылки на сайты, где можно почитать о нем подробнее - там же, на странице в википедии.
Основное отличие JASS от таких "стандартных" языков, как С/С++, заключается в том, что если там выполнение программы регулирует функция main (которая уже может запускать другие функции и т.д.), то здесь за выполнение программы отвечают триггеры - кусочки кода, которые запускаются тогда, когда происходит некоторое Событие (юнит получает урон, юнит атакует, игрок покидает игру, в область вошел юнит, здание закончило постройку, герой использует предмет, время дня в игре становится равным 12:00, игровое время от начала старта стало равным 5 минутам, ...еще примеры нужны?). Сам триггер состоит из трех частей: событие, условие и действие. Про события я написал - когда событие происходит, триггер запускается (точнее, начинается проверка условия). Таким образом, событие определяет момент времени, когда надо запускать триггер. Условие позволяет дополнительно определить, надо ли исполнять триггер, когда произошло событие, или нет. Дело в том, что иногда нам не нужно исполнять триггер, даже при условии того, что произошло событие. Допустим, мы хотим сделать ульту акса из доты - когда ультой кидают в героя, и у него меньше 600 хп, то его убивает. Событием здесь будет "Axe кастует Culling Blade" (на самом деле, нет такого события, потому что "Axe" и "Culling Blade" - это нами созданные герой и заклинание, "стандартный" варик ничего о них не знает, и потому не может отлавливать связанные с ними события. Можно отловить "общее" событие "юнит кастует скилл", а потом проверить, что юнитом был Axe, а скиллом было Culling Blade). Но не всегда, когда акс кастует ульту, героя надо убивать. Убивать надо только если у героя меньше 600 хп. Это и будет условием - хп цели каста меньше 600. Действие - убить цель каста. Это условие про 600 хп никак не засунуть в события - нет такого события "акс кастует ульту в героя, у которого меньше 600 хп". Разница между событием и условием очень тонкая и весьма условная, и первое время ты, наверняка, часто будешь путаться, в событие нужно засунуть такую-то вещь или в условие. Тут может помочь такое соображение. Событие определяет момент времени, когда нужно запускать триггер, и оно лишь самым примитивным образом связано с ситуацией, при которой мы хотим запускать триггер. А Условие описывает всю остальную часть этой ситуации, и оно с моментом времени не связано. А Действие - это просто исполняемый код, т.е. то, что триггер должен делать в случае, когда он сработал (произошло событие+выполнилось условие).
Цитатаcrab2 ()
А по поводу движка - идея блочить определенный тип дмга вообще крутяк( допустим 25% к физу, 30к нейчи и тд.) и система боев уже в корне меняется)
Тут мне хотелось бы увидеть такую штуку, как в одной крутой flash-рпгшке. У мобов есть резисты и уязвимости к определенным типам урона - например, огненные големы имеют резист к земле 100% (касты земли не наносят им урона), к огню 200% (то есть огненные касты хилят их), а ко льду -100% (то есть лед бьет их вдвое сильнее). Теперь представьте, что у всех мобов будут свои резисты и уязвимости. Тут уже не побегаешь пожиром, собирая всех подряд и лупя их масс нюками. Надо будет одних убивать одним рейтом, других - другим. А если стоят вперемешку и огненные, и ледяные элементали? От огня или ото льда одних бьешь - другие хилятся. Тут их уже так просто не убьешь, забрасывая кастами, тут уже думать надо (либо забросать сначала огнем, убив ледяных, потом льдом, добив огненных, либо третьим рейтом потихоньку сточить обоих, либо отагрить одних, чтобы разделить на две пачки, и каждую пачку убить своим рейтом - в общем, вопрос) А еще многие касты зависят частично от рейтов, а частично от рейта на оружии, и если сменить оружие (огненный посох на ледяной, например, или на боевой, который бьет физой), то и скиллы начинают бить частично другим рейтом - за счет этого можно, меняя шмот, убивать то одних, то других мобов. И вот эта система все это позволяет делать.
Хм как я понял при каждой атаке будет выскакивать кусок текста на пол экрана?
Это всего лишь надписи для тестирования системы, чтобы было видно, что происходит. Стер строчку - и ничего не пишется, это вообще не проблема.
ЦитатаMelon ()
А ещё было бы не плохо сделать систему хила, но это очень муторно будет делать. Вручную
Просто ставится галочка, и отрицательный урон начинает хилить. Так что опять же, это совершенно не вопрос - просто для хила ставишь все величины с минусом. ICCup: JacobSonICCup + Garena: Agent.J
Идея хорошая, хотел бы я хил (на основе порчи с отрицательным дамагом) - хилит 10% в секунду всем союзникам в течении 8 секунд. А так да, люблю такие скилы сам делать, как хил - волна силы с отрицательным дамагом идёт чудесно. Или сделать ауру исцеления на основе пламя феникса - восстанавливает 2500 здоровья в секунду, распределяется на союзников(аура работает, проверял, даже героя такого делал) но тут будет такой минус - дабы урон отрицательный, а рейты действуют на скилы, то представь -2500 урона, рейт прибавляет 50% урона, значит -2500+1250 = -1250(плохо для хилящих скилов), с вроде помню есть такие рейтинги как (х0.5), а что сделать (-х0.5) для этих скилов.
Сообщение отредактировал gghhl - Среда, 02.04.2014, 10:51
но тут будет такой минус - дабы урон отрицательный, а рейты действуют на скилы, то представь -2500 урона, рейт прибавляет 50% урона, значит -2500+1250 = -1250(плохо для хилящих скилов), с вроде помню есть такие рейтинги как (х0.5), а что сделать (-х0.5) для этих скилов.
Эта галочка проставляется не в редакторе (что позволяет стандартным дамажащим скиллам хилить), а в параметрах этой системы (строго говоря, нет никакой "галочки", есть глобальная логическая переменная IsHealed). Так что все должно быть в порядке. И, вообще говоря, 50% от -2500 - это -1250, а не +1250, потому что процент - это умножение на число (в данном случае на 0.5), а умножение на положительное число не меняет знак. Строго говоря, нет никаких процентов - есть только умножения на числа. А проценты фигурируют только в описании скилла/шмотки, чтобы игроку было понятнее. ICCup: JacobSonICCup + Garena: Agent.J
Сообщение отредактировал JacobSon - Среда, 02.04.2014, 11:02
JacobSon, Идея хорошая,но только не для такой карты как TBW Скажу почему. Отловить урон можно 2-мя событиями. 1-ый - юнит атакован. 2-ой - юнит получает урон. 1-ый способ нам не подойдет 100%.Т.к если у нашего героя есть рейтинг ,и если нажмет на атаковать а потом нажмет отставить,то урон нанесется только от рейтинга и это уже будет считатся как баг. 2-ой способ тоже не подходит. Так как чтобы добавить событие юнит получает урон ,то нам придется его или добавлять в отряд или постоянно добавлять этих юнитов в событие по отдельности.Учитывая сколько всего крипов на карте и сколько их постоянно добавляется это может приенсти на карту очень большую нагрузку.Поэтому эта система годится только для арен,где крипов не так уж и много,но только не для рпг. ._.
Разумеется, не оно, потому что нас интересует урон от скиллов тоже.
Цитатаprivetik11 ()
2-ой способ тоже не подходит. Так как чтобы добавить событие юнит получает урон ,то нам придется его или добавлять в отряд или постоянно добавлять этих юнитов в событие по отдельности.Учитывая сколько всего крипов на карте и сколько их постоянно добавляется это может приенсти на карту очень большую нагрузку.Поэтому эта система годится только для арен,где крипов не так уж и много,но только не для рпг.
Да, есть проблема с тем, что средствами GUI можно только реагировать на условие Specific unit takes damage, т.е. взять указать юнита и смотреть за ним. Я, если честно, без понятия, как автор системы это обходит - может быть, для каждого юнита на карте динамически вставляет/убирает событие в триггер, как ты говоришь, а может использует средства JASS'а, а не GUI (я больше склоняюсь к этому варианту), а может еще как-то. Однако это не имеет значения. Есть и карты, где мобов довольно много (та же DotA), и где такие вещи активно используются (вот взять, например, щит абаддона. Естественно, триггер для этого скилла отлавливает поступающий дамаг, т.к. иначе как понять, когда уже набралось 300 дамаги? При этом щиток можно кинуть на любого дружественного моба (и, значит, по твоей логике, для каждого из них надо писать свой триггер), а таких может быть порой довольно много. Но что-то я не замечал никаких особых лагов при игре с абаддоном. Более того, кроме абаддона есть еще масса персов и скиллов, использующих отлов урона (да хоть орчидка, которую может собрать любой бич и кидать на кого угодно когда угодно). Как ты все это объяснишь?)
Я думаю, не стоит так опрометчиво говорить, что нет хорошей системы. Ссылку я дал, код карты открыт, автор говорил, что там полно комментариев и разобраться будет несложно. Возьми, потестируй (несложно напихать в карту много-много мобов и проверить, будет нагрузка, или нет: create 99999 Пехотинец at the Center of a playable map, как-то так), и потом сообщи результат, и вот тогда это будет дельный разговор. ICCup: JacobSonICCup + Garena: Agent.J
Сообщение отредактировал JacobSon - Среда, 02.04.2014, 15:02
JacobSon, а вот ты и не прав для хила невозможно сделать систему. Для каждого скилла надо делать всё вручную + рейты. Чернокнижник, Друид Совух и Вайоловый Маг топ герои.
Melon, как я могу быть неправ, если я переписываю слова автора системы? Или ты лучше него знаешь, что его система может делать, а что - нет?
Цитата
Has a Global Boolean called IsHealed you can switch true/false at any time. True will mean that negative damage will heal units; false will make negative damage do nothing.
ICCup: JacobSonICCup + Garena: Agent.J
Сообщение отредактировал JacobSon - Среда, 02.04.2014, 16:34
JacobSon, cистема добавляет атакованного юнита в отряд и начинает шаманить над ним. А вот единственное что я не заметил:Блокирует ли этот код физ. урон?
Melon, Можно сделать это на основе способности канала. Напишу на русском: Юнит приводит способность в действие Способность равна Хилить. У юнита не 100% хп Установить хп юниту (нынешнее хп)+(хп которое нам надо) Добавить спеццефект хила
Добавлено (02.04.2014, 17:03) --------------------------------------------- А если ресать хп от ударов: Юнит получает урон Атакованный юнит равен (Юнит который нам нужен). У юнита не 100% хп Установить хп юниту (нынешнее хп)+(хп которое нам надо) Добавить спеццефект хила