Вступительное слово:

Для удобства построения зон для игрового мира "Sphere of Worlds - Сфера миров" разработчиком был создан редактор, который позволяет легко и удобно делать новые зоны для сервера.

В данном материале будут показаны общие принципы работы с этим редактором и описаны особенности создания клеток, монстров, предметов и других объектов.

Ну что ж, приступим.

Создание первой зоны в редакторе

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

Для начала зайдем в меню "Файл" и выберем элемент меню "Новый"(пример), ну или нажмем кнопку на панели инструментов

После того как мы создали новый документ, перед нами появляется рабочий стол редактора, который выглядит следующим образом:

Теперь непосредственно об окнах редактора:

Итак, теперь приступим к созданию первой клетки нашей новой зоны. Для этого необходимо нажать на кнопку на панели инструментов, после чего новая клетка появится в левом верхнем углу "Карты мира", или ее можно создать путем double-click'а левой кнопки мыши на понравившемся вам участке "Карты Мира".

Теперь рабочая область изменилась и выглядит так:

В области "Карта Мира" появился серый квадратик - он-то и является нашей первой клеткой.

Этот квадратик необходимо правильно описать, чтобы он корректно выглядел для игрока, оказавшегося в нем в процессе игры.

Сейчас расскажу, как это сделать:

Выберем закладку "Описание" и первым делом присвоим клетке Заголовок, для примера - "Городские ворота", и тут же не отходя от кассы (хотя можно и потом вернуться к данному действию) детально опишем ее (2-4 предложения).

NB! Общепринято, что "красная строка" - отступ от левого края - составляет 3 пробела, это правило одинаково как для детальных описаний клеток, так и для таких же описаний монстров, предметов и т.п.

После этого выберем тип местности, от которого зависит, сколько энергии будет затрачено игроком при перемещении на данной клетке. То есть если мы запланировали зону, например, "Горный перевал", то, соответственно, для всех клеток в зоне поставим тип Местности - Горы. Да, для того чтобы не было так:

Глубоко в пещере.
В пещере мокро и темно, хоть глаз выколи....
Солнце медленно исчезло за горизонтом... - странно, откуда в пещере солнце %)

Так вот, для того чтобы не было таких глюков, в подобных клетках необходимо указывать тип - "Внутри помещения".

Ну и так далее...
NB! Типы местности будут пополнятся по мере придумывания.

Следующее, что нужно сделать - это расставить флаги для клетки.

Рассмотрим такую ситуацию, Мы задумали для игроков сервера некий сюрприз в клетке, но хотим, чтобы они "поломали" головы, прежде чем смогли его получить. Например,

У большого дуба.
Могучий дуб-великан стоит в гордом одиночестве посреди пшеничного поля. .... На расстоянии в два человеческих роста видно дупло.

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

Дважды "кликнув" левой кнопкой мыши на окне "Дополнительные описания", получаем следующее меню:

В поле "имя" задаем имя - в нашем случае это дупло, т.е. теперь игрок, набрав команду смотреть дупло, получит у себя на экране:

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

Здесь вроде все понятно, а вот в закладку "Репоп" мы вернемся после того, как заселим нашу зону монстрами и нарисуем предметы.

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

NB! Для того чтобы закрыть выход по какому-нибудь направлению из данной клетки, нужно сделать следующее:

Выбрать клетку путем однократного нажатия левой кнопкой мыши, затем нажать на клавишу "Ctrl" и, не отпуская ее, выбрать опять же левой кнопкой мыши соседнюю клетку, с которой мы не хотим иметь общих входов/выходов, и нажать, затем отпустить клавишу "Ctrl". Для создания нового входа/выхода между клетками-соседями необходимо проделать такую же процедуру.

Сложнее дело обстоит с правильным созданием внешних выходов. Для это рассмотрим небольшой пример:

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

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

В нашем случае это направление "Восток", выбрав его, мы видим меню "Редактирования выходов".

Для того чтобы описать внешний выход, нам нужно знать номер (ID) клетки другой зоны, в которую мы хотим сделать переход (обычно номер (ID) клетки зоны, граничащей с вашей, вам сообщает иммортал, ответственный за мир, если такого не произошло, то вам нужно сделать это лично). Итак, зная номер (ID) внешней клетки (например, 3005), мы проставляем его в окошке "Идентификатор комнаты, если выход ведет в другую зону" и жмем "ОК".

Теперь, если захотим посмотреть на номера клеток, в которые можно попасть с этой клетки, получим:

 

 

Где ясно видно, что выход на восток приведет игрока в клетку с номером (ID) 3005, принадлежащую "чужой" зоне, а если игрок пойдет на запад, то попадет в соседнюю клетку "родной" зоны с номером (ID) 99399.

NB! Такую взаимосвязь необходимо проводить с двух сторон, т.е. в зоне 30 в клетке с номером (ID) 3005 нужно сделать внешний выход на запад в клетку "чужой" зоны с номером (ID)99399.

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

Работа в минибраузере.

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

Итак, перед тем как создавать мобов и предметы, сделаем вот что. Кликнем кнопку на панели инструментов и в минибраузере получим "Новая папка". Левым одиночным кликом на нее мы добьемся возможности редактирования ее названия.

При любом объеме зоны было бы весьма неплохо разбивать ее на подзоны.

Например,


И так далее…

Это существенно облегчит работу и вам, и имморталу, курирующему создание и поддержание игрового мира.

Сейчас приступим к непосредственному созданию нового монстра.
С чем его едят, ну, для затравки нажмем на кнопку на панели инструментов и получим следующий вид:

iD – номер монстра, он состоит из 2 частей – это номер зоны и номер монстра.

В минибраузере появился значок моба с пустым именем, которое появится, как только вы заполните поле "Именительный падеж".

Рядом с этим полем находится кнопка – это "Авторасставление падежей", но не торопитесь жать ее, так как необходимо выбрать "Род" монстра, чтобы программа корректно выполнила функцию автопадежей.

Поставили род и нажали кнопку. И все же лучше убедиться, что все ОК.

Затем в поле "Детальное описание" создаем описание монстра (все те же 3 пробела от левого края и 2-4 предложения).

Затем следует заполнить поле "Текст" - в этом поле нужно описать то, как игрок видит монстра при входе в клетку, где он находится, или при использовании команды оглядеться.

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

NB! В одной из следующих версий редактора останется только 1 поле для приветствия!

Пример:
Жирный пингвин робко прячет тело жалкое в утесах.

Покончив с описаниями, займемся позициями и перемещениями созданного монстра.

Поле "Позиция" указывает, в какой позе находится моб на момент входа игрока в клетку игрового мира, в которой находится монстр.

Поле "Перемещение" позволяет задать скорость, с которой монстр передвигается по игровым клеткам мира.

Поле "Способ" - задает манеру передвижения, будь то лететь, ползать, ковылять и тп…

На этом работа в закладке "Описание" закончена.

Переходим к следующей закладке – "Характеристики".

В принципе, заполнение данной закладки не должно вызвать затруднений.

NB! зависимости между этими параметрами нам позже предоставит Легвил в доступной и полной форме.

Остановлюсь лишь на "Флагах" для нового монстра:

Здесь вроде все, движемся дальше – закладка "Умения и заклинания":

В окошке «Умения», дважды кликнув левой кнопкой мыши, вызываем меню «Выберите умение», где выбираем то, что умеет делать моб, из набора для соответствующей профессии монстра:

В окошке "Заклинание", кликнув дважды, получаем меню "Выберите заклинание".
Из предложенного списка выбираем нужные нам заклинания, учитывая профессию монстра.

В окошке "Аффекты" можно наделить монстра, например, инфразрением, невидимостью, полетом и прочими заморочками.


Покончив с созданием монстра, перенесем его в папку для монстров зоны или подзоны для удобства.

В принципе, на этом создание монстра считаю законченным.

Вот дошли руки и до создания предметов для нашей зоны.

Обсудим создание нового предмета. Нажав кнопку на панели инструментов, получаем следующий вид:

iD – номер предмета, он состоит из 2 частей – это номер зоны и номер предмета.

В минибраузере появился значок предмета с пустым именем, которое появится, как только вы заполните поле "Именительный падеж".

Также название предмета появится в минибраузере, как только вы заполните поле "Именительный падеж". Снова жмем кнопку авторасстановка переносов, не забыв предварительно выставить правильный "Род" объекта.

Забиваем "Детальное описание" (Отступ слева - 3 пробела, и 2-4 предложения).

Выбираем тип объекта. В зависимости от выбора типа предмета у нас будет меняться закладка #3 в разделе «Создание новой вещи» - о ней подробнее чуть ниже. Сейчас займемся закладкой "Свойства", имеющей следующий вид:

Итак, приступим к разбору полетов:

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

Окно "Флаги предмета":

В разделах "Раса", "Профессия" и "Наклонности" можно поставить флаги запрета персонажам той или иной расы, профессии или наклонности.

В окне "Модификаторы при одевании" наделяем (или оставляем пустым) наш предмет некими свойствами, которые улучшат/ухудшат характеристики персонажа, его использующего.

Все модификаторы на ваш выбор, главное - разумно подходить к расстановке этих модификаторов.

Также в окне "Аффекты при одевании" можно указать, какие аффекты приобретет персонаж при одевании данного предмета:

Займемся теперь третьей закладкой, которая меняется в зависимости от указания типа объекта:

Тип предмета "Обычный":

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

Тип предмета "Одежда":

При указании данного типа объекта в закладке "Одежда" нужно указать, на какую часть тела будет он надеваться, будет ли он одновременно контейнером для вещей или питья.

Тип предмета "Оружие":

В разделе "Умение" указываем тип, к которому относится наше оружие убийства.

В меню "Тип дамага" выбираем соответствующий нашему оружию тип дамага, а затем в меню "Способ удара" выберем, как это будет выглядить со стороны.

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

Тип предмета "Свиток":

В разделе "Заклинание" нашим любимым Double Click'ом вызываем меню "Заклинания" и выбираем нужное нам, а затем и его силу в % в выскакивающем меню "Раскачка". В разделе "Число применений" ставим цифру, разрешающую зачитывать свиток несколько раз (сколько - решаете вы).

Тип предмета "Напиток":

В разделе "Заклинание" нашим любимым Double Click'ом вызываем меню "Заклинания" и выбираем нужное нам, а затем и его силу в % в выскакивающем меню "Раскачка". Нам никто не мешает делать магические коктейли. В разделе "Число применений" ставим цифру, разрешающую пить напиток несколько раз (сколько - решаете вы).

Тип предмета "Книга":

В окне "Заклинание" мы наделяем книгу тем или иным заклинанием, которое игрок сможет выучить, прочитав книгу.

Тип предмета "Ингредиент":

В окне "Цвет" укажем цвет ингредиента, а в окне "Сила" его силу, которая будет влиять на вероятность произнесения заклинания, использующего ингредиенты.

Тип предета "Пища":

В окне "Сытность" укажем, сколько игрок сможет обходится без пищи после употребления нашего продукта.

Тип предмета "Ключ":

Ключ, просто ключ и никаких гвоздей!

NB! Необходим ID (номер) предмета, который мы сделаем ключом для... а вот для чего - чуть ниже в разделе Тип предмета "Дверь".

Тип предмета "Источник":

В окне "Тип жидкости" укажем, чем же мы будем потчевать игроков на сервере.

Тип предмета "Дверь":

В окне "Идентификатор ключа" укажем ID (номер) предмета, которым можно будет открыть эту дверь, т.е. если у нас предмет резной ключ ID (номер) 99001, то и в это поле ставим идентификатор 99001.

Тип предмета "Письмо":

Письмо - оно и в Африке письмо.

Тип предмета "Доска":

Данный тип предмета пока не доработан.

Тип предмета "Портал":

В поле "Идентификатор комнаты-выхода" указываем конечный путь (ID клетки) назначения.

Тип предмета "Монеты":

В поле "Число монет" указываем количество монет.

После всего помещаем в папку «Предметы» для какой-нибудь зоны или подзоны.

NB! Когда вы создаете прототип предмета в редакторе, сразу ставьте ему корректный тип (Одежда, Оружие и т.п). Если вы создадите прототип, не указав ему нужный тип, и по этому прототипу будет создан предмет в игре и сохранен в базе в инвентори игрока или в его экипировке, то в этом случае менять тип уже нельзя. Смена типа предмета приведет к ошибке загрузки базы данных при перегрузке сервера. Если же вам все-таки нужно поменять тип предмета, который уже находится в игре, то придется сначала сделать копию его прототипа, изменить у копии тип и поменять все места использования на новые. Старый прототип предмета должен быть в наличии до тех пор, пока не рассыплются по таймеру все предметы, созданные по старому. Соответственно, все вышенаписанное критично только тогда, когда вам нужно загрузить старую базу персонажей и вы не можете просто ее обнулить, удалив db.dat.

Теперь вернемся к закладке "Репоп", что находится в рабочей области по созданию/редактированию клетки игрового мира.

Закладка "Репоп".

Что мы тут имеем - два окошка с названиями "Мобы" и Предметы. В них мы указываем какие мобы и/или предметы у нас будут загружаться при старте игрового цикла (и последующих репопах зон) в данную клетку.

Изпользовав левый Double Click в окне "Мобы", получаем следующее меню:

,

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

После того как мы выбрали монстра и нажали "ОК", перед нами возникает следующее меню "Свойства загрузки моба: _Имя монстра_":

Здесь тем же методом вызываем меню выбора вещи, которая будет дана (с некой вероятностью) сервером монстру при его репопе:

Выбрав предмет, нам будет предложено выбрать место, куда монстр сможет этот предмет надеть, или где он сможет его держать - в правой/левой/обеих руках:

Жмем ок и видим, что в разделе "Мобы" появился наш монстр с экипировкой.

Для того чтобы положить предмет на "пол" клетки, нужно воспользовать левым Double Clik'ом в Окне "Предметы" и вывести меню "Выберите предмет":

Где мы непосредственно и выбираем сам предмет.

NB! Вещи с таймером имеют свойство рассыпаться через 20 минут после загрузки сервера. Поэтому если вы задумали устроить в вашей зоне фонтан/портал/дверь или еще что-нибудь, то не нужно вписывать значение таймера, по истечении которого предмет рассыплется, в окно "Таймер" в закладке "Свойства" предмета.

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

Следите за обновлениями.

NB! Старайтесь следить за тем, чтобы у вас всегда была последняя версия редактора и движка для тестирования зон.