Варкрафт 3 как сделать задание
попробуем тут составить faq , покачто обсуждаем вопросы наиболее популярные, затем отредактирую в набор вопросов и ответов.
Самая простая система соединения предметов вот:
События
Боевая единица — A unit Получает предмет
Условия
Or — Any (Conditions) are true
Условия
(Item-type of (Item being manipulated)) равно Предмет 1
(Item-type of (Item being manipulated)) равно Предмет 2
(Item-type of (Item being manipulated)) равно Предмет 3
Действия
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Если — Условия
((Hero manipulating item) has an item of type Предмет 1) равно Да
((Hero manipulating item) has an item of type Предмет 2) равно Да
((Hero manipulating item) has an item of type Предмет 3) равно Да
То — Действия
Предмет — Remove (Item carried by (Hero manipulating item) of type Предмет 1)
Предмет — Remove (Item carried by (Hero manipulating item) of type Предмет 2)
Предмет — Remove (Item carried by (Hero manipulating item) of type Предмет 3)
Герой — Create Предмет 4 and give it to (Hero manipulating item)
Иначе — Действия
Восстановление срубленных, уничтоженных деревьев через промежуток времени в 360 сек.
События
Время — Every 360.00 seconds of game time
Условия
Действия
Декорация — Pick every destructible in (Playable map area) and do (Actions)
Цикл — Действия
Декорация — Resurrect (Picked destructible) with (Max life of (Picked destructible)) life and Показать birth animation
Система объединения 2х однотипных предметов в другой предмет.
События
Боевая единица — A unit Получает предмет
Условия
Or — Any (Conditions) are true
Условия
(Item-type of (Item being manipulated)) равно Предмет 1
Действия
Триггер — Turn off (This trigger)
Предмет — Remove (Item carried by (Hero manipulating item) of type Предмет 1)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Если — Условия
((Hero manipulating item) has an item of type Предмет 1) равно Да
То — Действия
Предмет — Remove (Item carried by (Hero manipulating item) of type Предмет 1)
Герой — Create Предмет 2 and give it to (Hero manipulating item)
Иначе — Действия
Герой — Create Предмет 1 and give it to (Hero manipulating item)
Триггер — Turn on (This trigger)
Прошу не писать в этой теме без надобности!
Как при помощи WinMPQ извлечь *.j файл из защищенной карты.
Для начала надо запустить WinMPQ, после запуска мы увидим следующее окно:
Теперь мы идем в меню Options, там во вкладку File Lists, нажимаем на кнопку Add List File… и выбираем лист файлы, они должны лежать в папке с программой, должно получиться как на рисунке:

На этом все приготовления сделаны, теперь жмем кнопку ОК, идем в меню File и выбираем Open…, открывается диалоговое окно:

В этом меню, там где написано MPQ Archives (над кнопкой Открыть) выбираем All Files, теперь программа видит все файлы. Идем в папку с интересующей нас картой, выбираем карту, и нажимаем Открыть, должно получиться что-то подобное:

Мы видим все составляющие части карты, нам нужен файл war3map.j, в этом файле содержится весь скриптовый код карты. Когда мы нашли этот файл, то жмем на него правой клавишей мыши, появляется менюшка:

Выбираем Extract…, после чего появляется диалоговое окно сохранения файла, выбираем место, куда сохранить файл и жмем кнопку ОК. Вот в принципе и все.
Моя Наработка v1.0
Описание:
В этой наработке показано, как в одном заклинании сделать несколько заклинаний.
То есть как в предмете «Книга заклинаний» — на нее нажимаешь, и там открывается несколько заклинаний. Если кому нужно — объясню как реализовать.
Ссылка в предыдущем посте не работает — истёк срок, просьба обновить ссылку
Итак скидываю вам статью из самой первой темы сюда, думаю она полезна будет многим
Как сделать героя, уровень которого больше 10?
Ответ: необходимо зайти в Дополнительно=>Игровые константы=>Максимальный уровень героя и поставить нужный уровень. Теперь при прокачке герой будет качаться больше 10-го.
Как запретить игрокам менять исходные параметры в списке при создании игры?
Смотри Сценарий-Свойства игрокаклана — поставить галочку «Фиксировать параметры игроков».
У некоторых юнитов я видел отрицательные значения (регенерация маны сфинкса к примеру), но у меня они не ставяться. Это что очередное ограничение ворлдэдитора?
Зайдите: Файл-параметры-вкладка «общие»-Разрешить использование в редакторе объектов отрицательных значений. Выскочит окно «имейте ввиду». Теперь зайдя в редактор объектов вы сможете выставлять отрицательные значения.
В некоторые поля все еще нельзя вводить любые значения, как с этим бороться?
Для этого следует зажать кнопку Shift и сделать двойной щелчек по этому полю.
Как сделать чтобы созданный мной герой, при вызове его игроком строился только один раз?
Необходимо: открыть игровые константы, найти строки «Технологии зависимости(эквиваленты) — герои»(где вы должны прописать своих героев, если они не стандартные), «Технологии зависимости(эквиваленты) — алтарь»(здесь вы указываете ваш алтарь если он не стандартный, далее в строках «центр поселения» указываете ваши ратуши, если они не стандартные.
Затем заходим в свойства героя в редакторе объектов и проставляем необходимые требования. В итоге — всё работает. Также предлагаю вам прочитать эту статью по игровым константам.
Хотя, можно обойтись и без констант: запустить дефолтный (melee) триггер режим сражения — Limit Heroes to 1 per Hero-type (for all players)
Как сделать, чтобы герой прокачивался на крипах больше пятого уровня?
Для этого зайдите в игровые константы и найдите поле Hero XP Gained – Creep Reduction Table. Номер строки соответствует уровню героя (тоесть первая строка — первый уровень, вторая — второй и тд.). Число это процент опыта, получаемого на каждом уровне. Если чисел меньше чем уровней, то игра будет использовать последнее указанное в списке значение для всех остальных уровней
Моя карта очень долго загружается, есть ли способы увеличить скорость её загрузки?
Есть, первое поудалять лишнии иконки, модели и музыку, которые вы загрузили в свою карту =)
Также хочу порекомендовать следующие утилиты для оптимизации скорости загрузки карты:
TOT
Vexorians Map Optimizer
Warcraft III Widgetizer
Как поставить юнита на декорацию?
Для этого необходимо указать ему высоту перемещения, в строках «движение», теперь смело можно ставить. Для того, чтобы юнит ходил по замкнутому пространству(например крепостная стена) и необходимо добавить вокруг замкнутого пространства блокираторы пути(Декорации такие).
Когда я создаю мост, он ставится выше земли. Как это исправить?
Поставьте мост и отрегулируйте его высоту с помощью Ctrl + PgUp или Ctrl + PgDown.
Как сделать чтобы юнит смог взобратся на любую декорацию?
Для этого нужно:
1. Декорацию переместить в «Типы декораций — Мосты».
2. Дать декорации галочку «можно ставить на склонах».
3. Дать декорации параметр максимальный угол крена = 90 градусов.
4. Убрать pathline декорации.
Кстати как можно сделать чтобы например стоял стрелок на башне?
Как вариант — поставить юниту тип перемещения «летающий», задать высоту полета, равную высоте башни, а по периметру башни поставить блокираторы пути для летающих войск.
Как сделать так, чтобы в начале игры на стартовой локации не появлялся городской центр и рабочие?
Откройте окно Trigger Editor и и триггере Melee Initialization удалите действие Melee Game — Create starting units (for all players)
Как создать в карте свои квесты?
Нужно использовать действие: Quest — Create Quest – Нужно для создания новых квестов, также могут понадобиться эти действия:
Quest — Mark Quest as Completed – Квест выполнен
Quest — Mark Quest as Failed – Квест провален
Я видел, как в роликах у юнитов поворачивалась голова, как это сделать?
Нужно использовать действие: Animation — Lock body-part facing, также может понадобиться действие: Animation — Reset body-part facing чтобы отменить поворот головы.
Я сделал декорацию с моделью башни но он почему то всегда меняет модели?
В левой стороне, в окне анимации найдите ту башню которую вам нада и создайте триггер:
Event — Map initialization
Animation — Play (ваша башня)’s (нужная анимация) animation
Можно ли сделать так, чтобы, если в магазине вещь была куплена, то она изчезла совсем? Т.е. не перезаряжадась и со временем снова появлялась, а совсем исчезла: купил — и все она твоя и ни у кого другого ее не будет.
можно.
там есть целый набор триггеров для этих целей
Нейтральное здание — remove item-type (—) убирает предмет
Нейтральное здание — add item-type (—) добавляет предмет
в скобках там написано:
(from marketplace) из одного магазина
(from all marketplace) изо всех
тоже самое можно делать с нанимаемыми войсками
Как реализован выбор каких-то параметров игры, через выводящиеся на экран кнопки?
Чтобы это сделать нужно создать переменную типа диалог, после чего заполнить диалог кнопками, действием: Dialog — Create Dialog Button.
После использовать действие: Dialog — Show/Hide
Как сделать, чтоб при взятии предмета ( например меч), на модели юнита это тоже отображалось?
Необходимо взять способность (Ability) сфера Молний поменять ей модель на нужную и указать параметре Графика особый объект воздействия нужную точку приложения эффекта.
overhead — над головой, не прикрепляется к анимации
head — голова, прикрепляется к анимации
chest — туловище
origin — обычно у ног юнита
hand — рука( может быть left и right)
foot — ноги
weapon (Для героев) — оружие
sprite, medium, large — для зданий
Однако помните, что далеко не у всех моделей есть все эти точки, они описываются именно в моделях.
Как сделать юнита неуязвимым?[list][*] Либо дать юниту способность «Неуязвимый(нейтральный)».[*] Либо использовать действие: Unit — Make Invulnerable/vulnerable.
Сделал герою способность, чтобы он проглатывал врагов, но когда я загружаю карту, и выбираю эту способность, то игра вылетает и появляется ошибка. Почему?
Необходимо так же давать способности «пассажир» и «еда». Рекомендую посмотреть к примеру как это сделано у кодоя.
Как импортировать свою картинку вместо минимапы?
Сохраните картинку в формате 32 бита с расширением .tga, импортруйте изображение с помощью Import Manager’a, два раза кликти на файл в окне импорта и сотрите весь путь до названия файла. Далее само название поменяйте на war3mapPreview.tga
Для замены игровой миникарты необходимо заменить файл war3map.blp.
Как импортровать изображение на загрузочный экран?
Откройте карту Maps/FrozenThrone/Scenario/(4)Monolith.w3x и почитайте комментарии к триггеру Custom Loading Screen
Источник: www.rubattle.net
Варкрафт 3 как сделать задание
1) Создаём переменную типа Quest (Задание). Назовём её quest
2) Затем создаём сообщение о задании:
Задание->Quest Message (Сообщение поисков)->Display to (Показать) Все игроки the message (сообщение):
3) Затем создаём квест:
Задание->Create Quest (Создать поиски) -> Create (Создать) a с названием и описанием , using icon path (используя путь иконки)
4) И сразу после этого:
Все->Set Variable (Установить переменную) -> Set Variable (Установить) = ()
5) Чтобы квест сделать выполненным, должно произойти действие. Допустим, умер юнит, тогда создаём триггер отслеживающий его смерть и пишешь там:
Задание->Mark Quest as Completed (Пометить поиски как завершенные) -> Mark (Пометить) as Выполнено
Источник: wc3-maps.ru
Варкрафт 3 как сделать задание
И так, что собственно по основному вопросу, аля квест:
1. Нам понадобится Герой , НПС дающий задание , Цель задания (кого будем убивать)
2. Поставили? Отлично. Создайте область около НПС, в неё должен зайти наш герой чтобы активировать Задание(триггер), так же добавьте жертве предмет, который выпадет при смерти, естественно это должен быть нужный нам предмет по заданию.
Собственно на этом подготовка закончена. Едем дальше.
2. Создам второй триггер:
Событие:
___ Выбираем Далее [A unit enters Область 000 ] ___ //Наш герой заходит в созданную вами зону и активирует триггер.
Условие:
___ Выбираем Далее [ -[ Entering unit равно Ваш герой ] and -[ -[ Наш герой has an item of type наш предмет ] равно Да ]] ___ // Проверяем наш ли это герой и есть ли у героя нужный нам НПС предмет.
Действие:
___ Выбираем Далее [Add 1000 to Игрок 1 (Красный) Золото (Текущ.) ] ___ // Даём нашему герою награду 1000 золота
___ Выбираем Далее [Mark quest is Выполено ] ___ // Делаем наш квест выполненным
___ Выбираем Далее [Turn off (this trigger) ] ___ // Выключаем этот триггер.
Никаких оповещений мы не ставили, при входе героя в область просто в квестах появится сам квест и его можно идти выполнять. При получении предмета и опять при входе в область квест будет выполнен. Никаких красивостей мы не добавляли.
Постановка задач
Первый шаг – увидеть в игре не набор команд, но набор взаимодействующих объектов. Следующий – научиться ставить перед собой задачи и выполнять их.
Программирование на любом языке требует четкой постановки задач. Прежде всего надо уточнить, что нам дано (объекты, переменные и т. п.) и что нужно сделать.
Приведу пример. Один мой знакомый картостроитель попросил помочь ему разработать триггеры для огненной ловушки. Суть ее в том, что когда юнит входит в регион, в определенном месте загорается огонь, а когда юнит наступает на этот огонь, то повреждается. На первый взгляд все понятно, но фактически многих данных не хватает. Например, не указано, какой юнит должен войти в регион, чтобы сработала ловушка: любой или контролируемый человеческим игроком или вообще имеется ввиду конкретный юнит. А может быть летающие юниты не должны получать повреждения? В каждом случае эта задача решается по-разному. Затем, когда юнит входит в регион – загорается огонь. А когда выходит – огонь гаснет? Наверное да, но в условии об этом не говорится.
Итак, формулируем условие задачи. Дано: два региона — внешний и внутренний (один внутри другого) и спецэффект огонь, который находится во внутреннем регионе.
- При входе во внешний регион юнита определенного игрока, активируется спецэффект огонь.
- При входе юнита во внутренний регион – юнит начинает получать повреждения через определенные промежутки времени
- При выходе юнита из внешнего региона – спецэффект огонь дезактивируется.
- Что делать, если в регион войдет не один юнит, а несколько? Активировать огонь нужно лишь после входа первого вошедшего юнита. Повреждения во внутреннем регионе должен получать не один юнит, а все находящиеся в нем юниты.
- Что делать, если юнит умирает внутри региона? (Вопрос важный, т.к. мертвый юнит тоже считается юнитом. Если не учитывать это, то даже когда все юниты покинут внешний регион, огонь будет продолжать гореть, пока не разложится труп.) Значит при подсчете количества юнитов в регионе нужно не учитывать трупы.
- Что делать, если юнит умер, а других юнитов в регионе нет? Очевидно, дезактивировать огонь.
- При входе во внешний регион юнита определенного игрока, во внутреннем регионе активируется спецэффект огонь, при условии что в регионе уже не находятся другие юниты игрока.
- Если спецэффект огонь активирован, каждый юнит во внутреннем регионе получает повреждения через определенные промежутки времени.
- Если все живые юниты покинули внешний регион – дезактивировать огонь.
- Если юнит из внешнего региона умирает и других живых юнитов определенного игрока во внешнем регионе не присутствует – дезактивировать огонь.
Вот теперь задача поставлена корректно. Более того, теперь ясно, сколько и каких триггеров надо создавать. Можно переходить к следующему шагу – разбиение сложных задач на более простые до тех пор, пока каждую из них можно будет реализовать с помощью триггеров. Нужно анализировать не только сами задания, но и разные пути их решения.
К сожалению, на данном примере этот этап не продемонстрируешь. Каждую из поставленных задач можно реализовать в одном триггере (причем относительно не сложном). Правда придется добавить еще один триггер: спецэффект огонь при загрузке сценария будет активирован. Значит понадобится триггер, чтобы дезактивировать его в начале игры. И еще один момент: как определить, активирован ли спецэффект огонь (это нужно для второй задачи)? Могут быть разные способы. Например, создать переменную логического типа (булин) и записывать в нее значение true, если юнит вошел в регион и false, если живые юниты покинули регион либо все юниты в регионе мертвы. Но тут есть способ сделать проще, о котором я говорил. При входе юнитов — включать триггер, при выходе всех живых — выключать.
- Что дано (объекты, переменные и др.), что нужно сделать.
- Рассмотреть различные варианты развития событий, сделать дополнение к условию.
- Разбить каждую из поставленных задач на более мелкие так, чтобы каждую из них можно было реализовать с помощью триггеров.
- Создать нужные триггеры.
- Проверить правильность работы триггеров.
На третьем этапе Вы можете столкнуться с нерешаемыми задачами. Может быть, Вы не знаете, как решать эту задачу, а может быть её вообще нельзя решить. Многие из задач, которые на первый взгляд не имеют решений, на самом деле могут быть решены. Например, раньше я считал, что от читов в игре нет защиты, т. к. триггерами они не фиксируются. Но немного подумав нашел способ обезвредить большинство из них. Если Вы столкнулись с нерешаемой задачей, попробуйте ее сначала проанализировать с конца. Нужно получить такой-то результат, для этого необходимо произвести такие-то действия, а для них в свою очередь нужно сделать еще что-то. Если не получается – посмотрите внимательно, нет ли другого способа решить эту задачу. Обычно такие способы есть.
Не стоит зацикливаться на нерешаемых задачах. Не решается задача – оставьте ее в покое и постарайтесь обойтись без нее.
Пример
Ставлю такую задачу: определить, использует ли герой паладин в определенный момент свою способность неуязвимости (это может понадобиться, например, для ловушки с огнем: в огне повреждаются все юниты без разбора, а мы сделаем так, чтобы паладин, использующий неуязвимость не повреждался).
Примечание: описанный пример был создан еще в старых версиях buhs, когда невозможно было отследить, наличие баффов на юнитах. Сейчас эта задача решается намного проще.
Хорошая задачка, правда? Никаких обычных способов определить, является ли юнит неуязвимым с помощью триггеров не существует. Можно отлавливать событие – когда паладин использует способность неуязвимости. Но это не выход, т. к. способность неуязвимости может быть разного уровня и длится разное время. К тому же неуязвимость может быть отменена игроком. Так как же нам определять неуязвим паладин или нет? Давайте рассуждать: о том, что паладин стал неуязвим мы судим не только по тому, что он использовал соответствующую способность, но главным образом по такому критерию: паладина невозможно атаковать и накладывать заклятия.
Невозможность наложения заклятий – необходимое, но не достаточное условие. Например, у паладина может быть неуязвимость к магии (зелье или баньши). А вот условие, что на паладина невозможно напасть – является свидетельством, что паладин действительно неуязвим. Значит, если мы заставим какой-то юнит атаковать паладина и он не сможет этого сделать – паладин неуязвим, а если сможет – значит паладин уязвим.
Где-нибудь рядом с паладином создаем юнит-стрелок с очень слабой, неощутимой (0) атакой и тут же прячем его (действие — unit — hide unit), чтобы игрок ничего не заметил. Параллельно даю приказ атаковать паладина. Если паладин неуязвим — то юнит начнет двигаться к нему (все юниты, которым дан приказ атаковать неуязвимую мишень ведут себя так). Если нет — то будет стрелять, но это никак не отразится на здоровье паладина.
Далее мы запоминаем положение созданного юнита. Если через долю секунды оно осталось прежним —паладин уязвим, если нет — неуязвим.
Задание: распишите схему решения задач так, как это сделано для задачи с огненной ловушкой (если Вы еще и триггеры сделаете – будет совсем замечательно).
Варкрафт 3 как сделать задание
1 Создаёшь переменную типа Quest (задание). Мы назовём её quest
3 Затем создаёшь квест:
Задание->Create Quest->Create a Основное Titled название with the description Описание, using icon path иконка задания
4 И сразу после этого:
Все->Set Variable->Set Variable quest = Last Created Quest
5 Чтобы квест сделать выполненным, должно произойти действие. Допустим, умер юнит и создаёшь триггер отслеживающий его смерть и пишешь там:
Задание->Mark Quest as Completed->Mark quest as Выполнено
- Найти предмет.
- Убить 4 Юнита
- Убить Монстра
- Поговорить с тем то
- Побывать там то
________________
Программист: JASS, HTML(5), CSS(3), JS(JQ), PHP, MySQL, BEM, Ajax, Json, OOP, DRY, MVC, LESS, SEO
Варкрафт 3 как сделать задание
Тема предназначена в основном для новичков, но опытные карто-строители могут тоже почерпнуть для себя что-то новое. Тема будет дополняться по мере новых вопросов.
Здравствуйте. Люди помогите мне.. У меня остались 3 основные проблемы которые я не могу решить. Пожалуйста если не сложно помогите (желательно со скринами). Буду очень благодарен:
1) Как сделать «Многократный таймер», чтоб работал через каждые 360 сек.?
2) Как сделать, что деревья не вырубались?
3) Как и в каком порядке прописать, что бы квест был, активным и после его выполнения квест был завершён?
- Doom как сыграть в игру разнеси демона
- Цыпленок цыпа сколько идет
- Чем отличается кошка от мышки
- Как начать целовать девушку дома
- Anno 2205 алмазы где взять
Источник: igry-gid.ru