Название: Дурная кровь (кровотечение) Метод: Любой удобный для вас MUI: Обязательно Цель: Другой юнит Количество уровней: 5 Описание: При атаке накладывает эффект дурной крови, который наносит существенный урон живым существам. Чем быстрее двигается жертва, тем больше урона она получает. Технические характеристики: Если в общих чертах, кто вижу это как-то так: Когда наложено кровотечение (ну, вероятно, накладываться как яд какой-нибудь будет) юнит начинает терять свои хп в размере скажем 1% от текущего здоровья (если юнит стоит) Но если он начинает двигаться, то начинает терять значительно больше. Ну допустим за каждые 100 едениц скорости дополнительные 4% хп в секунду. (Ну и еще хотелось чтоб это было вокруб дебафа, который можно снять с помощью предмета (типо зелья что-то)) Спасибо
Как-то так. В шапке карты пара функций, чисто для упрощение... можно заменить и переделать всё. Урон раз в 1 секунду, наносит 10/20/30/40 ед. + 5/10/15/20% от дистанции, которую успел пройти за эту секунду (если стоит на месте, то получает только базовые 10/20/30/40 ед. урона). Дебафф накладывается при авто-атаке, длится 6 сек, обновляется. Наносимый урон видит только тот, кто его наносит (владелец героя).
Qulore, ну блин, в переменную записывай.
Если тебе надо что-то считать - заводишь переменную и считаешь числа.
А в момент каста, например, будешь просто смотреть чему равна переменная.
set damage = ( level * 5 + 15 ) * stack Типа по 20/25/30/35 урона за стак, при 10 стаках соответственно 200/250/300/350 Сиди и разбирайся как работают переменные и что с ними можно делать вообще
Cпасибо , все норм, но наверное это я что-то не то делаю, я не могу перенести на свою карту. Я сначала переношу войска, потом способности, потом триггеры. Может как-то по другому надо?
Не имеет значения что и как ты переносишь. Главное что бы ты собрал всё правильно.
Там не так уж много данных в РО что бы что-то можно было напутать (два абилки всего и даммик).
Единственное что скорее всего может не получаться - это ошибка функции первого триггера, из-за того что редактор не в том порядке собирает скрипт. Для этого можно скопировать 2й триггер, а старый удалить. Таким образом 1й триггер будет всё равно старше 2го (это в ситуации если у тебя получилось наоборот - сначала читается 2й, потом только 1й).
Название: Теневая копия Метод: GUI MUI: Нет Цель: Свободная(как блинк, куда нажали) Количество уровней: 3 Описание: Герой телепортируется на небольшое расстояние, после за ним пройдет теневая копия, то есть как блинк, герой телепартнулся за ним копия. Технические характеристики: Герой телепортируется на расстояние 600ед, после за ним идет его теневая копия. Теневая копия наносит урон 100/200/300, а так же оглушает на 1 секунду на всех уровнях, мана затраты 90 на всех уровнях, перезарядка 14/12/10, за модель тени берите дух возмездия.(если кто-то знает, то это как E пайка из лиги легенд, что-то такое, могу скинуть гифку)
Лови.
Делал быстро и мб что-то пропусти и/или не учёл... но всё в твоих руках
урон поставил на 75/125/175 (уровень * 50 + 25) оглушение не добавлял копия летит ровно туда, куда был сделан каст (не за героем) кд 0 сек, задержка прыжка копии после каста - 0.4 сек скорость копии - 60 за тик (~2000) использовал модельку охотника на демонов блинк юзается на всю карту, но дальность ограничена до 400/500/600
При подборе предмета проверяй его тип, и если он подходит - делай перезапись переменной.
Точно так же при потере предмета - если тип этого предмета проходит проверку, тогда перезаписываешь переменную.
В идеале надо добавлять/уменьшать текущее значение (если нет необходимости в НЕсуммировании).
Ты же чекаешь наличие предмета в тот момент когда он физически ещё не успел изменить своё положение.
Ну а как это ещё назвать?) После блинка на месте героя остаётся что-то вроде его призрачной копии. Копия стоит на месте около секунды, после чего стремительно бросается в направлении "хозяина", нанося урон всем противника по пути своего движения. И тут как бе следуюет технический вопрос - призрак летит именно за героем, или в то место, куда был направлен блинк.
Либо отлавливать момент атаки, либо момент отдачи приказа.
При атаке можно проверь что атакуемый (attacked unit - он же юнит инициатор триггера / triggering unit) является союзным/другом (ally) для игрока, который владеет (owner of unit) атакующим (attacking unit). И если это так, то отдаёшь атакующему приказ стоп.
С отловом приказа будет так же, только инициатором будет тот кто получает приказ атаки. А вместо атакованного - юнит цель приказа. И ровно теже самые проверки, если друг то стоп.
Что б не сбивать приказ можно попробовать просто срывать атаку за счёт её мгновенной блокировки.
set A = 100 базовое число
set B = GetRandomInt(1,A) первое число
set A = A - B базовый остаток
set C = GetRandomInt(1,A) второе число
set A = A - C базовый остаток
if "если D должно быть ПОСЛЕДНИМ числом " then
set D = A третье число
set A = B + C + D восстановление базового числа
else
set D = GetRandomInt(1,A) третье число
set A = A - D базовый остаток
endif
в итоге имеет три числа - B,C,D сумма которых равна начальному A
Как вариант - попробовать имитировать Астрал. Что для этого нужно?
Прозрачность и перекраска юнита - ну это триггерно легко меняется, проблема только в том что надо знать изначальный цвет юнита (но этот пункт тебе как раз и не нужен).
Спецэффект на юнитае - это просто аттач, с этим проблем нет.
Усиление магического урона - тут нам поможет абилка "Благо.Элуны", главное лишние параметры нормально устранить (а то бывает что 0% атаки некоторые ставят).
Игнорирование физического урона - а тут поможет "Каменный доспех", который будет гасить весь входящий физ.урон от любых источников.
И самое главное: Невозможность атаковать юнита - тут самым простым решением кажется выдача юнита в астрале отдельной классификации (или наоборот - отнимать такую), из-за которой юнит автоматически перестанет таргетиться (так же для этого придётся настроить цели атаки у всех юнитов). Тут ещё надо повозиться и найти подходящую классификацию для этого.
Qulore, ну вообще - просто выбор юнитов вокруг точки.
Новое действие - Отряд - Действие с юнитами в (все юниты в радиусе 500 от точки А)
Точкой А будет "позиция юнита" через переменную и всеми вытекающими от обращения
Внутри поставить если/тогда/иначе, в нём список условий (друг/живой/и т.п.) и действие на добавление "выбранного юнита" в отдельную группу.
Дальше, если в этой группе больше 0 юнитов - чистишь группу. Отнимаешь бонусы.
Иначе (если в ней нет юнитов) - даёшь бафф и бонус (но только если бонуса у юнита ещё нет).
Как-то так... у меня где-то был пример с абилкой-пассивкой, которая даёт атаку за каждого врага рядом... Я его лет 10 назал делал, могу скинуть чисто ради ознакомления.
Тебе тут скорее всего нужен будет таймер.
Каждую секунду (это самое оптимальное) проверять юнитов вокруг героя.
Если в результате отфильтровки таких юнитов будет больше 0 - то снимаешь бафф, иначе - даёшь его (так же можно добавить момент когда юниты есть, но бафф уже имеется - тогда действия никакие не нужны).
задача - не ответить на вопросы, а остановить помойку
Логическим закрытием (завершением) вопроса является нахождение ответа на поставленный вопрос. Если ты хочешь закрывать топики без искомого ответа, то ты просто переводишь одну помойку без ответов в другой сорт той же помойки без ответов (т.е. ты хочешь просто в мусоре ковыряться с нулевым КПД).
А если ты хочешь выбирать что попало и/или неверные решения - то это уже работа в отрицательную сторону.
Ред. Extremator
» WarCraft 3 / Способности и алгоритмы на заказ
В шапке карты пара функций, чисто для упрощение... можно заменить и переделать всё.
Урон раз в 1 секунду, наносит 10/20/30/40 ед. + 5/10/15/20% от дистанции, которую успел пройти за эту секунду (если стоит на месте, то получает только базовые 10/20/30/40 ед. урона).
Дебафф накладывается при авто-атаке, длится 6 сек, обновляется.
Наносимый урон видит только тот, кто его наносит (владелец героя).
» WarCraft 3 / Стаки
Если тебе надо что-то считать - заводишь переменную и считаешь числа.
А в момент каста, например, будешь просто смотреть чему равна переменная.
Типа по 20/25/30/35 урона за стак, при 10 стаках соответственно 200/250/300/350
Сиди и разбирайся как работают переменные и что с ними можно делать вообще
» WarCraft 3 / Способности и алгоритмы на заказ
Там не так уж много данных в РО что бы что-то можно было напутать (два абилки всего и даммик).
Ред. Extremator
» WarCraft 3 / Способности и алгоритмы на заказ
Делал быстро и мб что-то пропусти и/или не учёл... но всё в твоих руках
оглушение не добавлял
копия летит ровно туда, куда был сделан каст (не за героем)
кд 0 сек, задержка прыжка копии после каста - 0.4 сек
скорость копии - 60 за тик (~2000)
использовал модельку охотника на демонов
блинк юзается на всю карту, но дальность ограничена до 400/500/600
Ред. Extremator
» WarCraft 3 / Слетает переменная
или -1
» WarCraft 3 / Слетает переменная
Точно так же при потере предмета - если тип этого предмета проходит проверку, тогда перезаписываешь переменную.
» WarCraft 3 / Слетает переменная
Думаю дальше сам поймёшь что происходит ))
» WarCraft 3 / Способности и алгоритмы на заказ
Ред. Extremator
» WarCraft 3 / Переделка абилки
» WarCraft 3 / Переделка абилки
Ред. Extremator
» WarCraft 3 / Переделка абилки
Ред. Extremator
» WarCraft 3 / Переделка абилки
» WarCraft 3 / Как не бить союзников
Ред. Extremator
» WarCraft 3 / Деление числа (гуи)
Ред. Extremator
» WarCraft 3 / Способности и алгоритмы на заказ
Спасибо DS'у за его труды.
» WarCraft 3 / Способности и алгоритмы на заказ
Если нет - тогда просто дебафф с уроном от MS юнита.
» WarCraft 3 / Помощ с условием
» WarCraft 3 / Помощ с условием
» WarCraft 3 / Астрал без прозрачности
» WarCraft 3 / Астрал без прозрачности
» WarCraft 3 / Помощ с условием
Новое действие - Отряд - Действие с юнитами в (все юниты в радиусе 500 от точки А)
Точкой А будет "позиция юнита" через переменную и всеми вытекающими от обращения
Внутри поставить если/тогда/иначе, в нём список условий (друг/живой/и т.п.) и действие на добавление "выбранного юнита" в отдельную группу.
Дальше, если в этой группе больше 0 юнитов - чистишь группу. Отнимаешь бонусы.
Иначе (если в ней нет юнитов) - даёшь бафф и бонус (но только если бонуса у юнита ещё нет).
» WarCraft 3 / Помощ с условием
Каждую секунду (это самое оптимальное) проверять юнитов вокруг героя.
Если в результате отфильтровки таких юнитов будет больше 0 - то снимаешь бафф, иначе - даёшь его (так же можно добавить момент когда юниты есть, но бафф уже имеется - тогда действия никакие не нужны).
Ред. Extremator
» Администрация XGM / Закрытие вопросов
» WarCraft 3 / Способности и алгоритмы на заказ