Qulore, вам нужно составить рандомный матч?
1 ) создаете структуру игроков: заводите переменную-массив игроков player[a], в котором будет записаны все игроки. И счетчик игроков max, который скажет сколько игроков имеется.
2 ) в начала дуэли циклом пробегаешь по слотам игроков, проверяя игроков: есть на карте и играют в данный момент. и добавляешь в массив игрока и в счетчик+1. Внимание: номер массива не может соответствовать номеру игрока player[0] ==Player(0) player[1] ==Player(1) итд. так может быть не всегда, к примеру синий игрок ливнул, и значит его место займет след игрок пример: player[1] ==Player(2) , короче таким образом составляется структура
добавляем так:
player[max] = Player(a) a - счетчик цикла
max = max + 1 нумерация структуры начинается с нуля, а счетчик игроков +1. как пример добавляете Player(0), а счетчик скажет что добавлено всего 1 игрок
3 ) у вас имеется арена, не знаю как у вас игра идет (1х1 или 2х2 или у вас может быть множество пар), короче вам нужно найти несколько пар игроков, которые будут драться друг с другом:
3.1) создаем блок цикла, пишем условие выхода из цикла: max <= 1 (это для 1х1 пары идеал, для 2х2 придется чуть чуть изменить условие) Короче если игроков меньше чем 2, то нельзя из этого составить пару, прекращаем искать
3.2) внутри цикла, ищем два игрока:
когда мы находим с помощью рандома число, т.е. номера массива (игрока), мы удаляем его из структуры. короче делаем таким образом (структура становится короче на 1 игрока):
player[max]=player[random] последний игрок в структуре меняется с рандомным, тк. рандомный вычеркивается из структуры
max = max - 1 уменьшаем на единичку счетчик
Получается что мы таким образом не будем два раза находить одного и того же игрока, поскольку из структуры удаляется найденные игроки, и их не будут находить.
Другой вопрос, что делать с нечестным числом игроков, если среди них несколько раз из-за рандома не учавствовал? к примеру 3 игрока осталось? завести счетчик битв для каждого игрока, и игрока с меньшим кол-во добавлять в первую очередь на арену. Учитывайте и победы.
Честно ничего не понял.Но спасибо, что написали. Если бы был пример я бы понял. Я делал дуэль и типо суть в том что выберался рандомный юнит из всей игравой карты(даже если они союзные). И типо дуэль работала, но так как на карте есть очень много нейтральных крипов, то рандом выберает крипов, а фильтр на героев в редакторе нет, и это очень обидно. Было бы условие, что юнит должен быть героем, тогда я бы сам смог
В этом действии Отряд - Pick every unit in (Random 1 units from (Units in Game Area <gen> owned by Player_Hero[Random_Duel])) and do (Actions) где задаётся Random_Duel? Оно как было при инициализации задано, так и не меняется. То есть сначала выбираешь в общей области сражений юнита игрока и перемещаешь его в дуэльную область, а через 2 секунды опять пытаешься выбрать в общей области сражений юнита этого игрока, которого уже там нет, он в дуэльной. Это только то, что бросилось в глаза в самом триггере, в игре не проверял.
У меня все работает, но выбирает среди 8 играков и если на карте меньше чем 8 играков, то есть шанс на то, что он выберет игрока, которого нет на карте. Я просто хочу чтоб он выбирал из тех играков, которые есть на карте.
Нужна иконка щупалец, в варкрафте 3 есть такая. Суть в том, что щупалец должно быть много как на фоне, просто пару штук, у меня такая способность, которая призывает много щупальц.(Скрина нет т.к я не умею так делать..)
Название: Запутанные корни
Метод: GUI
MUI: Не нужно
Цель: Вражеский юнит
Количество уровней: 3
(1)Первый уровень:
Описание: Друид(у меня друид) с каждым ударом имеет шанс на то, что бы запутать врага в корни, и нанести урон в секунду.
Технические характеристики: Урон 60(всегда), длительность запутывания 1 секунда.
(2)Второй уровень:
Описание: Друид(у меня друид) с каждым ударом имеет шанс на то, что бы запутать врага в корни, и нанести урон в секунду.
Tехнические характеристики: Урон 60(всегда), длительность запутывания 1.5 секунды.
(3)Третий уровень:
Описание: Друид(у меня друид) с каждым ударом имеет шанс на то, что бы запутать врага в корни, и нанести урон в секунду.
Tехнические характеристики: Урон 60(всегда), длительность запутывания 2.2 секунды.
(Тип урона магия, есть ёще вопрос как сделать так, чтоб сверху была надпись "Заказ"?)
Qulore, можно попробовать вобще без триггеров - сфера молний, которая кастует способность при атаке. Сложить в эту сферу любую способность которая наносит фиксированный урон цели, не стоит маны и имеет перезарядку и выдать сферу герою - получаем пассивку, которая по кд наносит доп урон и перезаряжается. У этого способа есть как плюсы, так и минусы, но это лучшее что можно сделать если нет желания разбираться с более сложными вещами.
Qulore, это не для тех кто вчера открыл редактор карт, и джаз тут никто не играет, язык сценариев варкравта JASS (жасс).
Детекция урона - Это отдельный триггер с событием - Юнит получает урон, туда заносятся все юниты на карте, без повторений, далее Нам нужно как то отличить физический урон от магического и прочего, по этому тут все сложно ( в 1.26 нет таких функций как узнать тип урона. Только в .1.31+ добавили но там много других сложностей + потребуется наличие рефорджа.
Мне кажется, что все триггерные способности сложные, кроме с дамми юнитом.
В момент детекта урона определяем что способность не в кд, и что она в принципе есть у того кто нанёс урон
Меняем на лету нанесённый урон увеличивая его на 30/60/90
Показывает крит плавающим текстом
Запускаем пассивку в кд
В результате получиться примерно 5 строк кода, ну это в самом вкратце
Капец там мороки, я думал будет на много проще. Есть способы не на джазе. Честно подробно скажу, 1)почему эксгумация, что у нее за свойства(первый раз слышу, да..).2) Как понять детектим урон? Типо событие атакует атакующий юнит = ассасин так? 3) Тут плюс условия способность не в кд(не видел такого условия) и условие способность есть у =ассасин к примеру так? 4) Тут не понял ваще 5) Тут не много не понятно как сделать так чтоб текст соответсвовал урону героя + способности? 6) Тут через таймер вроде, но я не шарю в таймерах
konvan5, ты неправильно понял, вопрос от Qulore, а wetalq, пишет, что это издевательство
А, кек, просмотрел XD
Ну тогда больше соглашусь с wetalq
По скринам ориентироваться можно, но не всегда ошибку можно увидеть именно в них и карта уже будет предпочтительнее для поиска ошибки.
Да и Bergi_Bear попросил именно скрины, так что...
Итак, теперь по поводу триггеров. Мне не очень нравится алгоритм с событием "каждые N секунд" - но по идее оно должно работать так как сразу отключаешь при первой же работе, окей.
Далее - большая уязвимость - за раз ты можешь выбрать одного и того-же героя в 2 стороны. То есть герой будет воевать сам с собой... И это плохо (если выпадут одинаковые рандомы).
И еще вопрос - у тебя вооообще ничего не происходит?
То есть таймер ты запускал, он проходит и больше ничего не происходит?
Так-же есть уязвимости в плане окон таймера - у тебя за всю игру будет только 1 таймер и 1 окно таймера на дуэль?
Если так - то проблем не будет. Но если это не так - то своими действиями как "последний включенный таймер" можешь забагать систему, если будет другой таймер.
И да, надо бы поменять местами действия в триггере Timer. Сначала ключить а потом окно создавать для последнего включенного, тогда и уязвимость пропадет. Как минимум одна уязвимость.
И возможно из-за этой причины ты не видишь таймера в первые 3 минуты.
У меня происходит, то есть героя тпшутся на арену.
Вообще на карте 1 таймер, но я когда тестил что-то забоговалось и таймеры начала появляться в больших количествах(все одинаковые). Ёще при этом если юниты которые были на дуэли умрут то убившему юниту дадутся деньги и 2 юнита которые были на дуэли тпшнуться обратно...(не знаю что произошло)
Я не понял на счет триггера Timer, что нужно сделать?
А как вообщем-то как создать способность -60% защиты от магии, мой вариант был такой - если приминяют способность "Астрал", приминяющий юнит равен - маг, то добавить способность -60% защиты от магии на того кого использовали Астрал.
Прсто, у меня очень много идей, и они все такие сложные, а понять огромные триггеры сложно. Я даже понять не могу как вы такие сложные триггеры делаете. Я в основном в редакторе объектов сижу, и чуть-чуть ы триггерах. Ну спасибо за то, что хотя бы потратили на меня время.
Феникс, у каменных доспех вроде не меньше проблем. ему надо 300 единиц дамага отсчитать, чтобы убрать их в нужный момент. а с каменными доспехами урон всегда будет обнулен, и событие урона сегда будет показывать дамаг нулевым, и как он отсчитает. он наверн хочет сделать подобие энергетического щита. если я не ошибаюсь
Нет, это как щит эмбера из доты, только блочит любой урон, а не только магический.
Qulore, это работа с триггерами, суть заключается в повышение кол-ва задоровья юнита до кол-ва урона, которое нужно заблокировать, ровно перед уроном, а после все вернуть на место.
Я там способность заказал, сверху называется "Двойной взрыв" там просто нужно сделать так, чтоб было 2 заряда у способности(просто много написано тут может забыли)
Название: Двойной взрыв
Метод: GUI
MUI: Не нужен
Цель: Вражеский герой, юнит
Количество уровней: 3
Описание: Мне нужно чтоб у способности на моей карте было 2 заряда, у палладина есть скилл я сделал его на основе молота бурь, в общем нужно чтоб способность имела 2 заряда и поджигала врагов вокруг при взрыве, урон взрыва 20/30/40 (магический), длительность горения 3 секунды.
Изменино.> Qulore, в описании тобой не указаны ни периодичность урона от огня(Периодическим уроном от огня является процент от максимального здоровья врага, то есть 1/1.5/2%), нужно ли делать какой-то урон единовременным(да), наносить каждую секунду или разделить по времени так, чтобы в течение определённого времени действия (2 секунд) он наносился равномерно(наносит урон каждую секунду), ни является ли процент здоровья значением от максимального здоровья или имеющегося сейчас у юнита( % здоровья от максимального здоровья врага). Если никто не сделает раньше, то возьмусь, как ответишь.
Вот если что новое описание
Поджигает жертву своим пламенным мечом и при ударе наносит доп урон 20/30/40, поджигая её и оглушая на 0.5/0.7/0.8, сек. Цель горит 2 сек. и каждую секунду получает урон 1/1.5/2% от максимального здоровья врага( урон враг получает каждую секунду, то есть в 1ую секунду 1% от макс.здоровья врага).(урон магический, перезарядка 8/6/4 сек)
Название: Удар дьявола
Метод: GUI
MUI: Не нужен
Цель: Вражеский герой, юнит
Количество уровней: 3
Описание: 1 Уровень. Герой наносит сокрушающий удар врагу, и наносит дополнительный урон в размере 20 единиц, а так же поджигает врага, и наносит 1% урона от всего здоровья врага, длительность горения - 2 секунды. А так же оглушает врага на 0.5 секунд.
2 Уровень. Герой наносит сокрушающий удар врагу, и наносит дополнительный урон в размере 30 единиц, а так же поджигает врага, и наносит 1.5% урона от всего здоровья врага, длительность горения - 2 секунды. А так же оглушает врага на 0.7 секунд.
3 Уровень. Герой наносит сокрушающий удар врагу, и наносит дополнительный урон в размере 40 единиц, а так же поджигает врага, и наносит 2% урона от всего здоровья врага, длительность горения - 2 секунды. А так же оглушает врага на 0.8 секунд.(Урон магический, перезарядка 8,6,4 секунд)
» WarCraft 3 / Duel
» WarCraft 3 / Duel
» WarCraft 3 / Как поменять модельку юнита с помощью триггеров
» WarCraft 3 / Иконки на заказ
» WarCraft 3 / Способности и алгоритмы на заказ
» WarCraft 3 / Способности и алгоритмы на заказ
Метод: GUI
MUI: Не нужно
Цель: Вражеский юнит
Количество уровней: 3
(1)Первый уровень:
Описание: Друид(у меня друид) с каждым ударом имеет шанс на то, что бы запутать врага в корни, и нанести урон в секунду.
Технические характеристики: Урон 60(всегда), длительность запутывания 1 секунда.
(2)Второй уровень:
Описание: Друид(у меня друид) с каждым ударом имеет шанс на то, что бы запутать врага в корни, и нанести урон в секунду.
Tехнические характеристики: Урон 60(всегда), длительность запутывания 1.5 секунды.
(3)Третий уровень:
Описание: Друид(у меня друид) с каждым ударом имеет шанс на то, что бы запутать врага в корни, и нанести урон в секунду.
Tехнические характеристики: Урон 60(всегда), длительность запутывания 2.2 секунды.
(Тип урона магия, есть ёще вопрос как сделать так, чтоб сверху была надпись "Заказ"?)
» WarCraft 3 / Пасивка с перезарядкой
» WarCraft 3 / Пасивка с перезарядкой
» WarCraft 3 / Дуэль
» WarCraft 3 / Дуэль
» WarCraft 3 / Я хочу чтоб при использовании способности на него вешался дебаф
» WarCraft 3 / Я хочу чтоб при использовании способности на него вешался дебаф
» WarCraft 3 / Как сделать так, чтоб когда герой умерал он взрывался
» WarCraft 3 / Как сделать поглощение/блок урона в варкрафте 3.
» WarCraft 3 / Как сделать поглощение/блок урона в варкрафте 3.
» WarCraft 3 / Как сделать поглощение/блок урона в варкрафте 3.
» WarCraft 3 / Способности и алгоритмы на заказ
» WarCraft 3 / Способности и алгоритмы на заказ
» WarCraft 3 / Способности и алгоритмы на заказ
Метод: GUI
MUI: Не нужен
Цель: Вражеский герой, юнит
Количество уровней: 3
Описание: Мне нужно чтоб у способности на моей карте было 2 заряда, у палладина есть скилл я сделал его на основе молота бурь, в общем нужно чтоб способность имела 2 заряда и поджигала врагов вокруг при взрыве, урон взрыва 20/30/40 (магический), длительность горения 3 секунды.
Ред. Qulore
» WarCraft 3 / Способности и алгоритмы на заказ
» WarCraft 3 / Способности и алгоритмы на заказ
Метод: GUI
MUI: Не нужен
Цель: Вражеский герой, юнит
Количество уровней: 3
Описание: 1 Уровень. Герой наносит сокрушающий удар врагу, и наносит дополнительный урон в размере 20 единиц, а так же поджигает врага, и наносит 1% урона от всего здоровья врага, длительность горения - 2 секунды. А так же оглушает врага на 0.5 секунд.
2 Уровень. Герой наносит сокрушающий удар врагу, и наносит дополнительный урон в размере 30 единиц, а так же поджигает врага, и наносит 1.5% урона от всего здоровья врага, длительность горения - 2 секунды. А так же оглушает врага на 0.7 секунд.
3 Уровень. Герой наносит сокрушающий удар врагу, и наносит дополнительный урон в размере 40 единиц, а так же поджигает врага, и наносит 2% урона от всего здоровья врага, длительность горения - 2 секунды. А так же оглушает врага на 0.8 секунд.(Урон магический, перезарядка 8,6,4 секунд)