Поддержать проект

Yandex MoneY
  - ID: 41001490991387
Web MoneY
  WMR: R395345647142
  WMZ: Z250187916489
  WME: E287835545053
Наша кнопка






сервер wow 2.4.3



warcraft3.org.ua - Всё для Warcraft 3 и DotA



Dota AllStars - Russian Dota » Мастерская

Текстовые триггеры (custom text)

     Mellon  /  19-08-2013, 01:17  /  Просмотрело: 4301 чел.  /  Мастерская 


Осваиваем World Editor





Текстовые триггеры



В этой статье я расскажу про текстовые триггеры, что это такое и зачем они нужны.

Warcraft 3 создавался на определенном языке программирования (скорее всего на C). Создатели игры решили создать редактор worldedit, чтобы упростить работу себе и другим людям по созданию карт. Для начала они создали свой миниязык (текстовые триггеры), команды которого позволяли управлять игрой. Однако язык этот был бы слишком сложен для тех, кто не занимается программированием и поэтому был создан редактор Trigger editor, который заметно упрощал работу. Вместо того, чтобы вводить текстовые команды вручную, разработчик карт выбирет определенную команду из списка иуказывает определенные параметры (на самом деле, эти триггеры - из Trigger Editor при сохранении карты автоматически переводятся на другой язык - custom text - это файлы с расширением .j , а затем исполняются).

Итак, custom text близок к тому языку, на которм был написан warcraft3. Если бы blizzard сделали хороший Trigger Editor - то работать с custom text не имело бы смысла.

Однако не все команды из custom text доступны в Trigger Editor. Пример: команда добавления таймера жизни юнита. Ее нет среди обычных команд Trigger Editor. Есть и другие примеры подобных команд.

Другой пример - отсутствие в Trigger Editor нормальных циклов и ветвлений. Команды For и if then else позволяют делать лишь одно действие. А если действий нужно сделать много? (на самом деле здесь есть такой прием: указать в качестве действия - запуск определенного триггера, в котором и будет реализованы нужные нам команды).

Команда For так неудобна, что мало кто ей пользуется. Она реализует лишь один вид циклов, причем далеко не самый нужный.

И, наконец, третий очень серьезный недостаток Trigger Editor - отсутствие локальных переменных, но об этом более подробно - в следующей статье.


Если вы захотите получить доступ к тем возможностям, которые не реализованы в Trigger Editor вам придется учиться работать в custom text. К счастью в Trigger Editor есть возможность переводить обычные триггеры в custom text (edit>>custom text). Вы сможете изучить, как выглядят простые триггеры в custom text, а затем и изменять их.


Сразу хочу предупредить, что писать что-то свое в custom text - очень тяжело. Ошибетесь в одном символе - вам будет выдан десяток ошибок, причем вы даже не поймете в чем дело. Даже если ошибок не будет, выдано, это еще не значит, что их нет. Некоторые ошибки не обнаруживаются при запуске, но когда при запуске триггера действие доходит до места с ошибкой - все остальные действия после ошибки отсекаются.


Для начинающих хочу дать пару советов по работе с текстовыми триггерами.


  1. Сначала напишите триггер обычными средствами, а затем переведите его в custom text и добавьте то, что хотите: циклы, новые команды, локальные переменные.

  2. Перед тем, как перевести триггер в custom text - сделайте с него копию.

  3. Когда вы переводите триггер в текст вам будет сделано предупреждение, что данное действие необратимо. Чтож, перевести текст в триггеры действительно нельзя, зато можно отменить сделанное действие с помощью edit>>undo или просто нажать ctrl-z.

  4. Как можно меньше набирайте сами, чтобы уменьшить вероятность ошибки. Допустим, вы уже сделали тестовый триггер, что-то в нем изменили и захотели добавить какую-нибудь стандартную команду. Создайте новый не текстовый триггер, который будет содержать одну эту команду, переведите его в текст. Вы увидите, как выглядит нужная вам команда. Не набирайте ее вручную! Используйте буфер обмена: выделяете команду, копируете edit>>copy (ctrl-ins), вставляете edit>>paste (shift-ins).

  5. Как проверить правильность текстового триггера. Для этого не обязательно каждый раз запускать сценарий на исполнение. Просто выберете тектовый триггер, делаете с него копию и изменитедля нее свойство enabled. Триггер выключится. Если вы попытаетесь его включить, а в триггере есть ошибка - вам будет выдано предупреждение вместе со списком ошибок.

  6. Лучше не пытайтесь перевести в текст триггеры со свойством enabled=off или initialy=off. По крайней мере, пока не станете в них разбираться. В противном случае вы создадите текстовый триггер, который не будет работать, даже если вы измените его свойства (enabled, initialy). Чтобы он заработал надо будет удалить определенную команду триггера.



Когда вы преобразуете триггер в текст будут созданы несколько блоков функция (function). Блок с условиями триггера (его название будет оканчиваться на _condition) - идет самым первым.

Второй блок (обычно) - блок с действиями (его название будет оканчивается на _action).

Последний блок - с событиями (начнется function init_trig_:).

Кроме того, каждая проверка какого-то условия или дополнительное действие (ну например из if then else) приведут к созданию новых блоков (это будет группа функций, которые будут оканчиваться на буквенно-цифровые номера).


При переходе от нормальных триггеров к текстовым меняются названия юнитов, констант, переменных. Вместо конкретных юнитов будет какая-нибудь ерунда 'df5b' - что-нибудь в этом роде. Поменяют свои названия спецэффекты: было abilities\orc\: - какой нибудь спецэффект. В тексте придется брать в кавычки и писать не одну черту, а две: "abilities\\orc\\:".


Локальные переменные в Custom Text



Что такое глобальные переменные вы уже знаете. Все переменные, которые вы создаете в Trigger Editor - глобальные. На глобальные переменные можно ссылаться из всех триггеров. Глобальные переменные создаются в начале игры и действуют до ее конца.

Что касается локальных переменыых, то это переменные, которые создаются внутри определенного триггер (даже не триггера, а его определенной части). Создаются они в тот момент, когда триггер запускается на исполнение и перестают существовать, когда действие триггера окончено.

Если триггер запущен на исполнение несколько раз, то при каждом запуске создается свою набор локальных переменных, никак не связанный с другими наборами.

В Trigger Editor нет возможности создавать локальные переменные, а жаль.


Поясню на примере.

Допустим, что я захотел создать юнит, который стрелят огнем (огнеметчик). Допустим так же, что я выбрал такой способ: при атаке огнеметчика, создается спецэффект огня на земле. Затем определяется, стоият ли в радиусе поражения какие-нибудь юниты и им наносится повреждние.

Такой триггер не так уж сложно создать. (см триггер из примера, высланного ниже). И все бы хорошо, но: Что если мы захотим сделать два юнита - огнеметчика? Создавать для ниго еще один триггер, новые переменные: А если юнитов-огнеметчиков 10 и более? Если мы хотим, чтоюы этот юнит можно было производить в бараках?

Хотелось бы свести все к одному триггеру, но не получится. Ведь мы создаем спецэффект огонь (special effect) и чтобы его можно было убрать, нужно поместить спецэффект в переменнуюА если в игре несколько огнеметчиков и они атакуют одновременно - в одни и те же переменные будут записаны сначала одни спецэффекты, а затем другие. Но поскольку спецэффекту первого огнеметчика не успели убраться, они так и останутся. Получится эдакий "вечный огонь". Более того, если наш огнеметчик атакует достаточно быстро, тогда старые спецэффекты опять же не успеют убраться до того, как возникнут новые (огонь то должен погореть пару секунд).

Обычными триггерами эту задачу решить очень сложно (хотя и возможно). Однако с локальными переменными она решается в два счета.

Я не буду объяснять, как я научился делать такие вещи - это приходит с опытом, когда вы учитесь программировать.


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

Переводим наш триггер в custom text. Прежде всего необходимо каждый параметр, имеющий отношение к конкретному случаю использования юнитом огнемета поместить в локальные переменные типа unit.

Например - event response attacking unit и event response attacked unit - именно такие параметры. Ведь если огнемет применит другой юнит, то и значения этих функций будут совершенно другими.

Затем - переменные со спецэффектами. В каждом случае должны создаваться свои спецэффекты с огнем - значит нужны локальные переменные типа special effect.

И последний нужный параметр - угол между атакующим и атакуемым юнитом - в локальную переменную типа real.

Создаются локальные переменные такой командой:

local <тип переменной> <имя переменной>


local integer i - создаст переменную i типа integer

local real r - создаст переменную r типа real

local effect s - создаст переменную s типа real

local effect u - создаст переменную u типа unit


Итак, создали переменные, а затем помещаем в них нужные данные:

Set <переменная> = <значение> - помещает в переменную определенное значение. В качестве значения можно использовать функции типа EventResponseAttacking unit.


Заменяем глобальные переменные и функции на локальные.переменные.


Смотрим, что у нас получилось.

При запуске триггера все глобальные параметры записываются в локальные переменные. Действия триггера не изменилось, но (!) если у нас будет несколько юнитов-огнеметчиков, то они никак не будут мешать друг другу. Ведь при каждом запуске триггера будет создан (!) свой набор локальных переменных, которые будут существовать пока идет действие триггера.

Теперь можно делать сколько угодно огнеметчиков, назначать им любую скорость выстрелов - никаких проблем со спецэффектами не возникнет.



Размер карты и тип рельефа; цвет букв

     Mellon  /  19-08-2013, 01:07  /  Просмотрело: 4286 чел.  /  Мастерская 



Осваиваем World Editor





Как менять размер карты и тип рельефа



Зайдите в меню Сценарий => размер карты и границы обзора (scenario => map and camera bounds). Появится окно, в центре которого схематично изображена карта, а внизу два флажка. По умолчанию установлен флаг изменить границы обзора (modify camera bounds). В таком режиме изменяется область обзора, т. е. та черная область вокруг карты. Иногда нужно сделать вид, что карта куда-то продолжается, а не заканчивается черной "пропастью". А другой флаг — изменить границы карты (modify map bounds) — как раз нужен для того, чтобы изменить размер самой карты. Чтобы увеличить размер / границу (или оба), следует установить нужные флажки, а затем с помощью кнопок больше-меньше (в виде стрелок) менять размеры карты. Единственное условие — размер карты должен быть кратен 32, иначе будет выдана ошибка. Сам размер карты (и игровой области) выводится снизу. Слишком крупную карту делать также нельзя.


Зайдите в меню дополнительно => изменить тип ландшафта (advanced => modify tileset). Здесь Вы сможете сменить рельеф на карте, не переделывая юниты, триггеры и т.д. Установив флажок нестанд. тип ландшафта (custom tileset), Вы сможете заменить некоторые из типов рельефа на вашей карте на другие. Например, Вы можете добавить пещерный тип рельефа на карту с Лордеронским рельефом. Таким способом многие картостроители создают пещеры, в которые могут войти другие юниты.


Цвет букв



Вы наверняка видели разноцветный текст в Варкрафте. Чтобы окрасить какую-нибудь букву или текст, следует его выделить вот так: "этот текст будет |c00FF0000красным|r". Сам цвет текста указывается в формате RGB, цифры — шестнадцатеричные (т. е. 1, 2, 3,... 9, a=10, b=11, c=12, d=13, e=14, f=15). Например, число 1d нужно читать как 1*16+d=16+13=29. Диапазон чисел, которые можно указать на два символа от 0 до ff=16*f+f=16*15+15=255.

Цвета надо "смешивать", что-то вроде разноцветного пластилина. Нужно указывать, сколько какого цвета. Также можно указывать прозрачность. На каждую составляющею цвета выделается по два символа (00,... FF).


**|c**aarrggbb __твой_текст__** |r**aa — прозрачность;rr — красный элементgg — зеленый элемент;bb — синий элемент


Таким способом можно менять цвет букв не только в сообщениях, но и в названии сценария и его описании, название и описание юнитов (хотя прозрачность не везде работает, но указывать её в любом случае надо).


Для примера приведу коды основных цветов:

|c00FF0000 ... |r - красный

|c0000FF00 ... |r - зеленый

|c000000FF ... |r - синий

|c00FFFFFF ... |r - белый

|c00000000 ... |r - черный


Регионы, камеры, спецэффекты

     Mellon  /  19-08-2013, 01:00  /  Просмотрело: 4000 чел.  /  Мастерская 


Осваиваем World Editor





Регионы



Регион (region) – это специальный объект WE. Выглядит он как прямоугольная область на карте. Регионы невидимы в игре, но имеют большое значение для триггерной системы. Ими определяются отдельные области в игре.


Чтобы создать регион, выберите пункт меню слой => области (layers => region), на панели инструментов появятся инструменты для работы с регионами. В верхней части окна есть кнопка, когда она нажата – запущен режим создания новых регионов. Чтобы создать регион, нажмите эту кнопку и выделите на карте место, где хотите создать регион. Когда регион создан, Вы можете изменить его размер и позицию с помощью мыши. Но для этого нужно отжать кнопку создания новых регионов, иначе вместо выделения региона будет создан новый.

Выделить регион можно с помощью мыши или выбрав его из списка созданных регионов. После выделения определенного региона нажмите на Enter (или щелкните на регион два раза мышью) и Вы получите доступ к параметрам региона. К этим параметрам относятся: название региона, его размер и положение, его цвет и погодный эффект. Вы сможете установить в каждом регионе любой погодный эффект, который есть в игре (ветер, снег, дождь, туман и др.).


Камеры



Все, что нужно знать начинающему о камерах — это как создавать камеры и два триггерных действия. Чтобы зайти в режим редактирования камер, нажмите слой => камеры (layer => cameras), теперь на панели инструментов появится кнопка создания камеры. Когда создается камера, она автоматически принимает данный вид, то есть, тот, который сейчас в основном окне. Вы можете заранее изменить обзор карты, прижав Сtrl и правую кнопку мыши. После установки нужного угла обзора — создавайте камеру. Чтобы вернуться к нормальному обзору карты — выберите вид => переход к игровой камере (view => snap to game camera) или нажмите среднюю кнопку мыши, если такая имеется.


Чтобы проверить, какой будет вид у вашей камеры (выбранной в меню), нажмите кнопку вид (view selected camera). Обзор камеры можно сменить, для этого установите нужный Вам обзор, а потом нажмите кнопку перейти к виду (set camera to current view) (кстати, отличный пример плохого перевода).


Чтобы посмотреть свойства камеры, выберите ее из списка и нажмите Enter. Среди параметров обратите особое внимание на следующие параметры:


  • Смещение (Z) (z-offset) — высота камеры над землей.

  • Расстояние (distance) — расстояние от камеры до точки обзора.- Крен (roll) — угол обзора (т. е. камеру можно вращать на определенный угол).



Остальные параметры довольно специфичны. Если есть желание — поэкспериментируйте с ними.


Теперь о том, как пользоваться камерами. Существует действие Camera - Apply Camera Object (в триггерах, конечно), которая изменяет обзор в игре таким образом, что он станет таким же, как у выбранной камеры. Также выбирается время, за которое вид изменится (если поставите время 0, то обзор сменится мгновенно). Если время не равно 0, то обзор камеры станет меняться по гладкой кривой автоматически! Траекторию будет высчитывать сам компьютер.


После того как Вы поработали с камерами (в игре, а не в редакторе), вероятнее всего Вы захотите вернуть камеру к игровому виду. Для этого существует действие Camera - Reset Game Camera.


Спецэффекты



Спецэффекты — это эффекты (чисто визуальные, не путать с заклинаниями), которые могут появляться на юните или в какой-то точке (только для красоты). Можно создавать эффекты, чтобы обозначить действие какого-либо заклинания. Например, аура (её "внешность" в виде круга под ногами, а не сама абилка) — эффект. Эффекты можно создавать не только на юнитах. Когда создаете на юнитах, нужно указать куда (в виде строки). Таких "мест" (модификаторов) существует достаточно много.


Учтите, что юниты, герои и земля имеют разные модификаторы (у земли их вообще нет). Также хочу Вас предупредить, что у некоторых моделей может возникнуть глюк — эффект создается не там, где надо.


Спецэффекты создаются при помощи триггерной команды Create special effect. В команде требуется уточнить название спецэффекта (текстовая строка) и цель спецэффекта (точка или юнит). В старых версиях редактора список спецэффектов нужно было смотреть в mpq архиве, однако с появлением редактора объектов, в этом больше нет необходимости. Достаточно зайти в редактор объектов, выбрать какое-нибудь заклинание и графу, где требуется указать спецэффект, и затем выбрать из списка нужный эффект. При этом вы сможете скопировать строку с названием спецэффекта и вставить ее в триггер.


Из интересных фактов: в качестве спецэффекта вы можете выбрать самые разные модели, включая модели юнитов, декораций и т.п. Но верно и обратное: вы можете выбрать моделью юнита спецэффект какого-нибудь заклинания или снаяряд. Такой прием часто используется для создания необычных триггерных заклинаний.


Еще один важный факт: спецэффекты ощутимо засоряют память компьютера. Один-два спецэффекта - вы этого не заметите, но если их десятки и сотни, то игра может серьезно затормозить. К тому же, любой созданный спецэффект остается в игре до тех пор, пока вы его не уничтожите специальной триггерной командой.



Простейшие карты (карты для melee)

     Mellon  /  19-08-2013, 00:55  /  Просмотрело: 4093 чел.  /  Мастерская 


Осваиваем World Editor





Простейшие карты (melee карты)



Обязательное условие melee карт - отсутствие созданных картостроителем объектов, то бишь юнитов, триггеров и т. д. Можно лишь создавать рельеф, крипов, магазины и т. п. На карте обязательно должен быть один триггер, который нельзя изменять. Как только Вы создаете новую карту, в ней автоматически появляется этот триггер, который "создает" melee-игру. Этот триггер дает игрокам стартовые ресурсы и юниты, запускают компьютерные стратегии и определяют условия победы и поражения (игрок проигрывает, если теряет все здания). Изменять в нем ничего нельзя. Как только что-либо будет изменено, карта перестает считаться melee-картой - она становится нестандартной. У этого, в принципе, нет недостатков кроме того, что игра не считает её картой для сражений и вместо иконки с мечами ставит туда другую. Все юниты создаются (ведь триггер-то срабатывает). Еще это оказывает влияние на список карт в Battle.net, где можно фильтровать карты.


Итак, триггеры Вам создавать не нужно (именно поэтому мы сначала рассматриваем создание таких карт). В melee карте Вы можете сделать следующее:



  • Создать рельеф. Выберите в меню слой => рельеф (layer => terrain), у Вас появится окошко с названием панель инструментов(tool palette), если оно еще не открыто. Это окошко будет использоваться очень часто в будущем. На панели инструментов много кнопок, каждая из которых обозначает разные действия. Можно создать горы, холмы, водоемы, поменять текстуру земли. Кроме того, Вы можете создавать мертвую землю (порча, blight) и границу (boundary), которую не может преодолеть ни один юнит.

  • Создать декорации. Выберите в верхнем меню слой => декорации (layer => doodads), также можно выбрать панель декораций (doodad palette) в выпадающем меню панели инструментов, что гораздо удобнее. Появится список. выберите какую-нибудь декорацию, кликнув на неё в списке. Теперь попробуйте её поставить на карте. Все декорации делятся на группы (распределены по области применения) и тайлсеты.



Если Вы создаете на своей карте мосты, ворота, некоторые стены, то позже можете обнаружить, что в игре они взлетели над землей. Ничего страшного в этом нет, но выглядит некрасиво. "Высоту" декораций можно регулировать. Выберите какую-нибудь декорацию, а теперь жмите клавиши Ctrl + Page Up или Ctrl + Page Down. Таким образом можно убрать "летающие" декорации, или же наоборот создать их. Также можно наполовину "вкопать" декорацию в землю, что иногда тоже требуется.


Особое внимание стоит уделить лесу, т.к. это стратегический ресурс. Большое количество предметов обстановки (в которое входят и деревья) сильно тормозят игру. Поэтому лучше не использовать лес чтобы заполнить все пустоты карты, для той же цели вполне сгодятся горы и озера.


  • Создание регионов с погодными эффектами. Используйте слой => области (layer => regions) или панель областей (region palette). Создавайте регион, затем, используя его параметры (щелкните по нему два раза на карте или в списке, или же выберите его там же и нажмите Enter), устанавливаете нужный погодный эффект. К сожалению, такие погодные эффекты зафиксированы до конца игры. Более интересные эффекты (например дождь с грозой, который начинается и кончается) возможно сделать только при помощи триггеров, а это выходит за рамки melee карт.

  • Создать золотые рудники. Выбираем слой => войска (layer => unit), выбираете игрока нейтрально-пассивный (neutral passive) (из выпадающего меню с игроками), находите золотой рудник и размещаете его на карте. Чтобы изменить количество золота в руднике, выделите его и нажмите Enter или два раза щелкните мышью.



Кроме золотого рудника, здесь же можете поместить на карту криттеров (не путать с крипами, криттеры - птички, крабы и т. д.), фонтаны жизни и маны, магазины и пр.


Если Вы вставляете портал на карту, то в его свойствах нужно указать регион, в который будет переноситься юнит, зашедший в портал.


  • Создать враждебных монстров. В том же меню выбираем игрока нейтрально-враждебные (neutral hosile). Вы можете переключаться между разными тайлсетами, в каждом из которых есть разные крипы, подобранные именно для этого тайлсета (согласитесь, Нортрендские волки выглядели бы странно в Лордероне). В общем-то Вы можете создавать нейтральных не только крипов, но и представителей рас (включая героев). Для этого выберите игрока 1 (или любого другого), поставьте нужные войска, но в настройках установите, чтобы их хозяин был нужный Вам игрок (чтобы войти в настройки юнита щелкните по нему дважды, или выберите и нажмите Enter), то есть нейтрально-пассивный / -враждебный.



Здесь же Вы можете установить артефакты, которые будут появляться при смерти монстров. Для этого войдите в настройки юнита, выберите пункт выпадающие предметы (items dropped). При необходимости (если у Вас ничего не появилось в этом меню) в выпадающем меню выберите таблица предметов (карта) (use item table from map), затем зайдите в меню редактирования самих таблиц.


Примечание: Также есть опция use custom item table. Различие заключается в том, что в первой Вы создаете набор итемов, который потом можно будет выбрать для другого юнита (например, если у Вас на карте есть крипы, расположенные симметрично для разных игроков), а во втором - только для одного юнита. Интерфейс для создания итемов действует одинаково в обоих случаях.


Нажмите на кнопку создать (new line set) и в окошке слева появится набор предметов 1 (new line set 1). Эти наборы (set) нужны, чтобы можно было сделать появление предметов случайным. Например, чтобы с вероятностью 50% из монстра выпадало лечащее зелье и в 50% зелье маны. Учтите, что из монстра выпадает весь набор, когда он умирает, а не один итем из него! Не путайтесь в этом. Если наборов несколько, то выпадает случайно (зависит от выставленной вероятности) один из них.


Итак, Вы создали набор случайных вещей, которые могут выпасть из монстра. Теперь нажмите кнопку созд. предм. (new item) и перед Вами появится список вещей. Вы должны либо выбрать конкретную вещь, либо выбрать пункт случайно (random) и выбрать нужный уровень / класс (any item of level), тогда выпадет случайный итем выбранного уровня, либо выбрать конкретный предмет. Вы можете здесь же указать вероятность выпадение вещи (если Вы выбрали случайный итем). Тогда при выпадении набора из юнита иногда этот итем будет присутствовать, иногда - нет (зависит от вероятности).- Добавим игроков. Создадим стартовые позиции (start location) для игроков. Это позиции, на которых будут стоять начальные юниты и постройки игроков. Выберите слой "войск" и для нужных игроков установите стартовую позицию (для кого установите, тот и будет участвовать в игре). Проследите, чтобы стартовые позиции располагались недалеко от леса и золотых рудников. Теперь нам надо задать игроков. Заходим в меню сценарий => свойства игрока (scenario => player properties) и для каждего игрока, для которого Вы создали стартовую позицию, установите управляет => человек (controller => user). Раса и цвет не имеют никакого значения в melee картах, поэтому не трогаем их.


В этом же окошке Вы найдете несколько вкладок (в т.ч. клан, способности) - ничего там не трогайте. Любое изменение там приведет к потере статуса melee карты. Про все эти меню будет рассказано позже.



  • Описание карты. Зайдите в пункт сценарий => описание карты (scenario => map description) и создайте описание карты. Думаю, там все понятно. Название, кол-во игроков, автор...



Все, карта готова. Можете запустить ее из игры.


Создавая melee карты, Вы научитесь создавать рельеф, декорации. Любая другая карта включает в себе те же пункты, но melee карта - самая простая из всех.

На нашем сайте вы можете более подробно ознакомиться с тонкостями работы рельефников. В этом вам помогут статьи:

Вредные советы

Как делать красивый рельеф

Заметки Натуралиста



Осваиваем World Editor

     Mellon  /  19-08-2013, 00:46  /  Просмотрело: 1462 чел.  /  Мастерская 

Осваиваем World Editor




» Раздел: 1. Основы

Возможности World Editor



Предупреждение: перед тем, как заняться изучением World Editor (далее WE) проясните для себя, а нужно ли это Вам. Даже если Вы освоите все тонкости, то на создание одного сценария у Вас уйдет не менее трех дней безвылазного сидения (а то и больше). К тому же Вы должны быть хоть немного творческим человеком, чтобы придумывать интересные сценарии и хоть немного программистом, чтобы разобраться в триггерах.


Итак, Вы играли в Warcraft III и видели карты в кампаниях. Все они написаны в WE и, при желании, Вы сможете делать такие же. WE позволит Вам создавать заставки, игры в стиле РПГ или стратегические (в том числе и экономические), создавать собственные кампании, в которых герои будут переходить из сценария в сценарий и многое другое.

Работать с WE не просто. Поначалу нормальных описаний для него не было. Первым мапперам приходилось доходить до всего самостоятельно. В данное время уже имеется множество статей, которые помогут вам разобраться.

Существуют две версии WE: русская и английская. Должен предупредить, что в русской версии нельзя давать русские названия триггерам, регионам, камерам и некоторым другим объектам (когда-то с этим возникало множество проблем, т.к. русские названия можно было давать, но игра вылетала).

Также есть различия между редакторами разных версий Варкрафта (редактор 1.17 сильно отличается от 1.07), и есть вероятность, что более старый редактор не откроет карту, сделанную в более новом. Также могут возникнуть ошибки про сохранении карты в разных редакторах - карта не будет запускаться в мультиплеере.


Каждая карта включает в себя определенные элементы.



  • Рельеф (terrain) - включает в себя землю, холмы, горы, водоемы. В общем - земля (не путать с деревьями и пр.). Создание красивого рельефа - искусство, доступное не каждому.

  • Декорации (doodads) - деревья, камни, некоторые постройки, водопады, костры, мосты, ворота и т. д. Иногда "рельефом" называют как сам по себе рельеф, так и все декорации. Задача "рельефщика" - сделать рельеф именно в этом понимании.

  • Юниты (units) - войска и постройки. Как отдельный вид юнитов можно выделить предметы (items), чаще называемые итемами.

  • Триггеры (triggers) - что-то вроде языка программирования, дающий картостроителю возможность назначать правила игры. Без триггеров, максимум что Вы сможете создать - это карта, где ничего нельзя будет сделать, кроме того как отдавать стандартные приказы юниту, где не будет никаких "фишек", ловушек, где нельзя будет выиграть или проиграть. При помощи триггеров включаются компьютерные стратегии, создаются заставки, определяются условия победы и поражения. Вам придется освоить их хоть по минимуму (обычно, для начинающих триггеры представляют наибольшую сложность, но на эту тему было написано достаточное количество статей).

  • Переменные (variables) - объекты, которые можно ассоциировать с игровыми объектами. Необходимы для некоторых триггеров (на первых порах они Вам не понадобятся). Более подробно о переменных рассказывается в любой статье по триггерам.

  • Регионы (regions) - невидимые в игре прямоугольные участки земли. Прежде всего они нужны для триггеров, чтобы отметить какую-то точку/область на карте, в которой будет происходить какое-то действие. Кроме того, на регионы можно навесить погодные эффекты вроде дождя, снега и т. д.

  • Камеры (camera) - объекты, которые позволяют управлять игровой камерой. Нужны в основном для заставок.

  • Редактор AI - модуль редактора, позволяющий писать свои собственные стратегии.Для каждого из перечисленных выше пунктов в WE есть средства для разработки на картах.



Перечислю некоторые из достоинств WE:



  • Удобный интерфейс, относительная простота в использовании (когда привыкнете).

  • Возможность копировать целые блоки территорий, декораций, триггеров и юнитов в буфер обмена. Причем эти блоки Вы можете вставлять в другие карты.

  • Огромные возможности работы с юнитами и другими объектами. Можно менять по желанию имя, размер, внешний вид (модель), количество жизней и маны вместе со скоростью их регенерации, силу и тип удара (включая вид снаряда), скорость, цену, специальные способности. Для зданий можно определять, кто в них производится и что продается, какие апгрейды можно делать. Модели юнитов можно сохранять и переносить в другие сценарии. Возможность создавать свои заклинания, способности, баффы, эффекты. Редактор юнитов позволяет работать также и с итемами.

  • Огромные возможности в создании триггеров. Система обработки событий позволит Вам определить, например, что рыцарь ударил гранта и сколько он нанес при этом повреждений. С помощью триггеров можно давать юнитам любые команды, которые присутствуют в игре (в том числе и строить здания и тренировать других юнитов), а это значит, что картостроитель способен создавать триггерные стратегии (также есть редактор стратегий).

  • Модуль Object Manager позволяет проследить в сценарии за каждым юнитом, вещью, триггером, звуком, переменной (например, определить, в каких триггерах используется какой-то юнит, звук, переменная и т. д.). Очень удобное средство для проверки правильности работы сценария и его модернизации. Также можно вести статистику (количество триггеров, объектов, переменных).

  • Game Cache, с помощью которого юниты и переменные передаются из одного сценария в другой.



Недостатков у редактора, к сожалению, тоже немало:



  • Сложные сценарии требуют много ресурсов компьютера. Некоторые карты тормозят даже на очень мощных PC.

  • Отсутствие нормальной помощи (думаю, Вы это уже заметили).

  • Отсутствует опция отмены последнего действия (undo) при работе в редакторе объектов. Если Вы нечаянно удалите объект или измените важные характеристики, то восстанавливать придется вручную, а это довольно долго.

  • Некоторые параметры игры фиксированы. Например, скорость юнита никак не может быть выше 522, где бы Вы не пробовали это изменить.



Подводя итог: WE - очень мощное средство для создания сценариев, которое до сих пор не имеет себе равных в балансе возможностей редактора и простоты применения.

    Авторизуйтесь со своей учетной записи, чтобы комментировать темы и настроить отображение материалов

Starcraft II

Данная версия в разработке

Данная версия в разработке

Данная версия в разработке

Данная версия в разработке
alt
На данный момент карта находится в режиме Открытого Бета-Тестирования и доступна на US и EU серверах.
alt
На данный момент карта находится в режиме Открытого Бета-Тестирования и доступна на US и EU серверах.
alt
На данный момент карта находится в режиме Открытого Бета-Тестирования и доступна на US и EU серверах.
alt
На данный момент карта находится в режиме Открытого Бета-Тестирования и доступна на US и EU серверах.
World of Warcraft
alt
На данный момент сервер проекта закрыт и мы в поисках нового сервера.
Warcraft III
Russian Dota 5 BETA 14

Скачать: карта .w3x

Форум: обсуждение   описание

Тестим версию от Maniac

Russian Dota 4.65 BETA 19

Скачать: карта .w3x

Форум: обсуждение   баги

Тестим версию от Mellona Davidova
Данная версия не поддерживается
Russian Dota Arena

Герой: Оленёнок (Хранитель Леса)
Герой: Жрица (Хранитель Озера)
Герой: Иллидарк (Демон Власти)
Герой: Samuro (Мастер Клинка)

Описание: обсуждение   баги

Отличительные черты

Моды: -mm -duel -switch

Тестим версию от Mellona Davidova
Данная версия в разработке
Russian Dota Reborn 1.03

Скачать: карта .w3x   архив .rar

Форум: обсуждение   баги

Играйте в версию от MaSera на 1.24
Russian Dota Classic 1.0

Скачать: ссылка 1   ссылка 2

Играйте в подлинную версию 4.5c
alt
Данная версия достигла альфы
alt
Данная версия достигла релиза
Diablo II
alt
Данная версия достигла релиза
Russian Dota Server
  - Подключиться
Starcraft II
Mellon в SC2: Mellon Davidov 865
Maniac в SC2: Марат Шагиахметов

Diablo III
Mellon в D3: Mellon Davidov 2983

Heroes of the Storm
Mellon в HOTS: Mellon Davidov 2983