9

» WarCraft 3 / Duel

МрачныйВорон:
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 игрока осталось? завести счетчик битв для каждого игрока, и игрока с меньшим кол-во добавлять в первую очередь на арену. Учитывайте и победы.
Честно ничего не понял.Но спасибо, что написали. Если бы был пример я бы понял. Я делал дуэль и типо суть в том что выберался рандомный юнит из всей игравой карты(даже если они союзные). И типо дуэль работала, но так как на карте есть очень много нейтральных крипов, то рандом выберает крипов, а фильтр на героев в редакторе нет, и это очень обидно. Было бы условие, что юнит должен быть героем, тогда я бы сам смог
Загруженные файлы
9

» WarCraft 3 / Duel

XGM Bot:
Похожие вопросы:

ответ
~8gabriel8:
В этом действии Отряд - 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 играков, то есть шанс на то, что он выберет игрока, которого нет на карте. Я просто хочу чтоб он выбирал из тех играков, которые есть на карте.
9

» WarCraft 3 / Иконки на заказ

Нужна иконка щупалец, в варкрафте 3 есть такая. Суть в том, что щупалец должно быть много как на фоне, просто пару штук, у меня такая способность, которая призывает много щупальц.(Скрина нет т.к я не умею так делать..)
9

» WarCraft 3 / Способности и алгоритмы на заказ

quq_CCCP:
Qulore, это банальная сфера замедления с засунутыми туда корнями, делается элементарно и без триггеров, эффект сферы.
Да я сделал спасибо, сам бы не додумался.
9

» WarCraft 3 / Способности и алгоритмы на заказ

Название: Запутанные корни
Метод: GUI
MUI: Не нужно
Цель: Вражеский юнит
Количество уровней: 3
(1)Первый уровень:
Описание: Друид(у меня друид) с каждым ударом имеет шанс на то, что бы запутать врага в корни, и нанести урон в секунду.
Технические характеристики: Урон 60(всегда), длительность запутывания 1 секунда.
(2)Второй уровень:
Описание: Друид(у меня друид) с каждым ударом имеет шанс на то, что бы запутать врага в корни, и нанести урон в секунду.
Tехнические характеристики: Урон 60(всегда), длительность запутывания 1.5 секунды.
(3)Третий уровень:
Описание: Друид(у меня друид) с каждым ударом имеет шанс на то, что бы запутать врага в корни, и нанести урон в секунду.
Tехнические характеристики: Урон 60(всегда), длительность запутывания 2.2 секунды.
(Тип урона магия, есть ёще вопрос как сделать так, чтоб сверху была надпись "Заказ"?)
9

» WarCraft 3 / Пасивка с перезарядкой

prog:
Qulore, можно попробовать вобще без триггеров - сфера молний, которая кастует способность при атаке. Сложить в эту сферу любую способность которая наносит фиксированный урон цели, не стоит маны и имеет перезарядку и выдать сферу герою - получаем пассивку, которая по кд наносит доп урон и перезаряжается. У этого способа есть как плюсы, так и минусы, но это лучшее что можно сделать если нет желания разбираться с более сложными вещами.
Я попробую

quq_CCCP:
Qulore, это не для тех кто вчера открыл редактор карт, и джаз тут никто не играет, язык сценариев варкравта JASS (жасс).
Детекция урона - Это отдельный триггер с событием - Юнит получает урон, туда заносятся все юниты на карте, без повторений, далее Нам нужно как то отличить физический урон от магического и прочего, по этому тут все сложно ( в 1.26 нет таких функций как узнать тип урона. Только в .1.31+ добавили но там много других сложностей + потребуется наличие рефорджа.
Мне кажется, что все триггерные способности сложные, кроме с дамми юнитом.
9

» WarCraft 3 / Пасивка с перезарядкой

Bergi_Bear:
Могу рассказать свой способ для последнего патча:
  1. Берём за основу эксгумацию как и сказали выше
  2. Детектим урон с руки любым способом
  3. В момент детекта урона определяем что способность не в кд, и что она в принципе есть у того кто нанёс урон
  4. Меняем на лету нанесённый урон увеличивая его на 30/60/90
  5. Показывает крит плавающим текстом
  6. Запускаем пассивку в кд
В результате получиться примерно 5 строк кода, ну это в самом вкратце
Капец там мороки, я думал будет на много проще. Есть способы не на джазе. Честно подробно скажу, 1)почему эксгумация, что у нее за свойства(первый раз слышу, да..).2) Как понять детектим урон? Типо событие атакует атакующий юнит = ассасин так? 3) Тут плюс условия способность не в кд(не видел такого условия) и условие способность есть у =ассасин к примеру так? 4) Тут не понял ваще 5) Тут не много не понятно как сделать так чтоб текст соответсвовал урону героя + способности? 6) Тут через таймер вроде, но я не шарю в таймерах
9

» WarCraft 3 / Дуэль

konvan5:
Феникс:
konvan5, ты неправильно понял, вопрос от Qulore, а wetalq, пишет, что это издевательство
А, кек, просмотрел XD

Ну тогда больше соглашусь с wetalq
По скринам ориентироваться можно, но не всегда ошибку можно увидеть именно в них и карта уже будет предпочтительнее для поиска ошибки.

Да и Bergi_Bear попросил именно скрины, так что...

Итак, теперь по поводу триггеров. Мне не очень нравится алгоритм с событием "каждые N секунд" - но по идее оно должно работать так как сразу отключаешь при первой же работе, окей.
Далее - большая уязвимость - за раз ты можешь выбрать одного и того-же героя в 2 стороны. То есть герой будет воевать сам с собой... И это плохо (если выпадут одинаковые рандомы).
И еще вопрос - у тебя вооообще ничего не происходит?
То есть таймер ты запускал, он проходит и больше ничего не происходит?

Так-же есть уязвимости в плане окон таймера - у тебя за всю игру будет только 1 таймер и 1 окно таймера на дуэль?
Если так - то проблем не будет. Но если это не так - то своими действиями как "последний включенный таймер" можешь забагать систему, если будет другой таймер.

И да, надо бы поменять местами действия в триггере Timer. Сначала ключить а потом окно создавать для последнего включенного, тогда и уязвимость пропадет. Как минимум одна уязвимость.
И возможно из-за этой причины ты не видишь таймера в первые 3 минуты.
  1. У меня происходит, то есть героя тпшутся на арену.
  2. Вообще на карте 1 таймер, но я когда тестил что-то забоговалось и таймеры начала появляться в больших количествах(все одинаковые). Ёще при этом если юниты которые были на дуэли умрут то убившему юниту дадутся деньги и 2 юнита которые были на дуэли тпшнуться обратно...(не знаю что произошло)
Я не понял на счет триггера Timer, что нужно сделать?
9

» WarCraft 3 / Я хочу чтоб при использовании способности на него вешался дебаф

А как вообщем-то как создать способность -60% защиты от магии, мой вариант был такой - если приминяют способность "Астрал", приминяющий юнит равен - маг, то добавить способность -60% защиты от магии на того кого использовали Астрал.
9

» WarCraft 3 / Как сделать так, чтоб когда герой умерал он взрывался

Спасибо вам за ответы, я попробую воссоздать способность, опираясь на ваши ответы.
9

» WarCraft 3 / Как сделать поглощение/блок урона в варкрафте 3.

Прсто, у меня очень много идей, и они все такие сложные, а понять огромные триггеры сложно. Я даже понять не могу как вы такие сложные триггеры делаете. Я в основном в редакторе объектов сижу, и чуть-чуть ы триггерах. Ну спасибо за то, что хотя бы потратили на меня время.
9

» WarCraft 3 / Как сделать поглощение/блок урона в варкрафте 3.

Steal nerves:
Феникс, у каменных доспех вроде не меньше проблем. ему надо 300 единиц дамага отсчитать, чтобы убрать их в нужный момент. а с каменными доспехами урон всегда будет обнулен, и событие урона сегда будет показывать дамаг нулевым, и как он отсчитает. он наверн хочет сделать подобие энергетического щита. если я не ошибаюсь
Нет, это как щит эмбера из доты, только блочит любой урон, а не только магический.

quq_CCCP:
Qulore, это работа с триггерами, суть заключается в повышение кол-ва задоровья юнита до кол-ва урона, которое нужно заблокировать, ровно перед уроном, а после все вернуть на место.
Можно по-подробнее. Этот вариант самый понятный.
9

» WarCraft 3 / Как сделать поглощение/блок урона в варкрафте 3.

Мне на варкрафт 3ий 1.26а, я не буду на рефордж переходить.

Может более подробно объясните, а то я не очень понимаю.
9

» WarCraft 3 / Способности и алгоритмы на заказ

Bergi_Bear:
когда охота что-нить простенькое и необычное поделать на lua, но всем только гуи подавай
А где можно почитать про mui, я их просто не различаю, там их много же.
9

» WarCraft 3 / Способности и алгоритмы на заказ

Я там способность заказал, сверху называется "Двойной взрыв" там просто нужно сделать так, чтоб было 2 заряда у способности(просто много написано тут может забыли)
9

» WarCraft 3 / Способности и алгоритмы на заказ

Название: Двойной взрыв
Метод: GUI
MUI: Не нужен
Цель: Вражеский герой, юнит
Количество уровней: 3
Описание: Мне нужно чтоб у способности на моей карте было 2 заряда, у палладина есть скилл я сделал его на основе молота бурь, в общем нужно чтоб способность имела 2 заряда и поджигала врагов вокруг при взрыве, урон взрыва 20/30/40 (магический), длительность горения 3 секунды.
Загруженные файлы
9

» WarCraft 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 сек)
9

» 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 секунд)