|
О РЕДАКТОРЕ Если ты читаешь этот хэлп, то это значит, что ты заинтересовался моей игрой и возможно хочешь попробовать себя в роле мапмэйкера. А я, в свою очередь попытаюсь научить тебя грамотно пользоваться моим, насовсем простым и насовсем удобным редактором карт. Тем более стоит учесть что в нем отсутствует какая либо серьезная защита против дурака, так что использовать его на до со знанием дела, а так как я заинтересован в хороших пользовательских картах и компаниях, то постараюсь как можно доходчивее объяснить как всем этим пользоваться. Итак начнем, запускай редактор. Теперь начну по порядку, с главного меню, это то, что сверху =) Первое меню - файл, в нем находятся совершенно стандартные для любого редактора команды, я думаю описывать их нет смысла, то же относится и к третьему пункту - "помощь", а вот второй - "Инструменты" представляет больший интерес. Первый пункт в этом меню - "Свойства карты". Итак, что же представляет собой открывшееся окно. Большую его часть занимает поле для ввода автозагрузочного скрипта. Сюда можно написать любую скриптовую команду, которая сработает сразу после загрузки карты. Следующее - это строчка ввода номера фона карты(бэкграунда), он может изменяться от -1 до 6. От 0 до 6 это различные картинки, а вот -1 - это просто чернота т.е. отсутствие бэкграунда, использовать надо для создания помещений. И еще две строчки - это имя автора и название карты, имей в виду, что единожды написав автора и название, ты уже не сможешь их изменить (типа защита авторских прав:). Следующий пункт - "это настройки редактора". в открывшимся окне можно установить параметры сетки, что там к чему я думаю и так понятно. Я рекомендую включать выравнивание по сетке, только если нужно выложить ровную и аккуратную стенку. Шаг камеры - это то - на сколько пикселей она сдвигается при нажатие (W,S,A,D - т.е. стрелок). Это число должно быть кратно размеру ячейки сетки иначе могут произойти расхождения. Да кстати, вот еще, зачем этот самый размер ячейки менять, просто некоторые объекты кратны 10, а некоторые - 8, по этому размер ячейки нужно ставить или кратным 10 или какую либо степень двойки (15,32,64...) иначе будут щели между объектами. И последний пункт - "Загрузить/Обновить графику". Он необходим в том случае если ты собираешься использовать свою графику в игре, но об этом подробно будет написано ниже. Теперь, собственно про то, как пользоваться редактором. Итак как двигать камеру я уже говорил, теперь о том, как строить карты. Справа находится панель, которую можно разделить на три части. Самая верхняя это панель в которой отображается что либо в зависимости от режима курсора, об этом ниже. Во второй панели отображаются координаты курсора, локальные и глобальные. Локальны(снизу) - это координаты курсора на экране, а глобальные(сверху) - это координаты курсора относительно всей карты. Ниже находятся инструменты, именно они и управляют состоянием курсора. Итак обо всех по порядку. Самый левый в верхнем ряду (простая стрелка) - это состояние курсора необходимо для просмотра свойств, для того что бы посмотреть координаты и остальные св-ва объект нужно просто навести на него курсор в этом режиме. Следующий режим(мусорка) - ну сам догадайся, что произадет с объектом если по нему щелкнуть в этом режиме ;) А следующая кнопка - это не режим, это инструмент для удобного создания диалогов к игре. Нажми ее, перед тобой появится окно, вверху ты пишешь собственно то, что кто либо говорит, ниже две строчки отводятся под описание цели квеста(те две строки что отображаются в игре при входе в игровое меню слева вверху), если квест не изменился, то просто оcтавь их пустыми. Ниже выбор - что будет происходить по нажатии на "ок" в игре, после этого диалога т.е. если стоит загрузить диалог, а имя диалога пусто - то на этом диалог просто закончится. Если там будет написано какое либо имя файла, например "player" и выбрано действие загрузить диалог, то после этой реплики загрузится следующая, из файла с этим именем. Тоже будет, если выбрано загружать скрипт, диалог завершится, но будет загружен скрипт из указанного файла. При нажатии "ОК", тебе предложат сохранить файл, куда читай ниже. И еще, лицо говорящего - это просто так картинка, которая отображается слева от текста в игре.(Подробнее о скриптах и структуре карты читайте ниже). Итак следующий режим курсора это режим установки объектов на карту. Из появившегося списка нужно просто выбрать нужный объект и поставить его на карту нажав левую кнопку, в самом низу списка находится "невидимая стена", что бы ее поставить нужно зажать левую кнопку на карте и выбрать нужный размер этой самой стены. Если стоит галочка возле непроходимого объекта, то прямоугольник(по размеру картинки) вокруг объекта становится непроходимым. Не рекомендуется делать непроходимыми большие и сложные объекты, их можно просто обнести несколькими невидимыми стенами.(подробнее смотрите карты из папки Examples). Число Z - влияет на то, отбрасывает объект тень или нет, если Z меньше нуля - то тень объект не бросает(надо ставить например для трупов лежащих на земле), а если Z больше нуля, то объект соответственно тень бросает. Следующий режим курсора, это установка NPC(No Player Character) на карту,т.е. всяких врагов и прочих существ ;) Тут и так все понятно. Ну и последний - установка триггера на карту. В поле ввода текста пишем любые скриптовые команды, в каждой строчке не более одной команды иначе скрипт работать не будет, а затем зажимаем левую кнопку на карте и подбираем необходимый размер триггера, если игрок попадает в эту зону, то скрипт срабатывает. Если скрипт большой, то рекомендую грузить его из внешнего файла, так в случае чего будет проще исправлять ошибки. Структура Карты Тут описаны очень важные моменты, так что читай пожалуйста внимательно. Итак, заходив папку с игрой, а там в папку под названием "Maps", в ней ты уведешь 3 папки. В папке "campaign" - находится компания из игры, эту папку лучше не трогать. "Survive" - здесь лежат карты, для игры на выживание, стоит отметить что для того чтобы сделать карту для этого режима игры, нужно ОБЯЗАТЕЛЬНО написать в автозагрузочный скрипт команду, о которой написано в разделе про скрипты. И последняя папка - "CustomScenarious". В этой папке лежат пользовательские сценарии, что бы добавить свой сценарий в игру, нужно создать в этой папке еще одну папку в которую положить все карты и вообще все что связано с твоим сценарием. А затем создать в папке "CustomScenarious" текстовик в котором в самой первой строчке нужно написать "название папки со сценарием\название стартовой карты сценария"(название карты без расширения). В списке сценариев названием твоего сценария будет название этого самого *.txt файла. Если что либо не понятно посмотри как сделан сценарий "Poxod za vodkoy". Теперь о том, где нужно хранить ресурсы к карте. Итак, если в карте ты используешь диалоги, внешние скрипты, звуковые фалы или графику, то тебе понадобится создать папку "рядом" с картой, называться которая будет также как и карта. В ней создать для каждого типа ресурсов свою папку. "Dialogs" - в этой папке хранятся все файлы диалогов. Тут главное понять вот что, в игре есть числовая переменна - квест. Когда игрок заходит но карту то значение квеста - 1, и если он говорит например с "оранжевым челом" то грузится диалог "BarneyQuestN", где N - номер этого самого квеста, это число можно менять скриптовыми командами или установить текущий квест как завершенный командой "questdone;" и при следующем разговоре с Барни значение квеста увеличится на единицу. Еще необходим файл "BarneyQuestWaitN" - тут содержится реплика, которую говорит Барни во время ожидания результатов задания. Если на карте есть торговец и торговля отключена, то надо создать четыре файла "RaiderN", где N - от 0 до 3, эти файлы будут выбираться случайно при старте разговора с торговцем. В папке "Sounds" - лежат любые звуковые файлы, которые будут использоваться в карте. Для звуков рекомендую mp3 для музыки midi, хотя поддерживаются практически все форматы. "Scripts" - в этой папке лежат txt со скриптами, в каждой сочке должно быть по одной команде. Еще одна папка - "Items", в ней лежат квестовые предметы для карты. Каждому квестовому предмету нужно положить картинку(не обязательно) и текстовик, в котором будет описание этого предмета. Подробнее описано будет в примечание к скриптовой команде, которая добавляет квестовый предмет. И последнее - папка "Images", в ней лежит внешняя графика карты, это простые *.bmp картинки, их размер не должен превышать 256*256, цвет прозрачности всегда черный, его код, кто не знает $0000000. В этой же папке должен лежать файл "List.txt", в котором в столбик должны быть перечислены названия картинок, без расширения. Что бы добавить графику в редактор, нужно сначала сохранить карту, затем создать папку с названием карты в ней папку "Images", запихать туда картинки, создать "List.txt", после чего нужно в меню "Инструменты" нажать "Загрузить/Обновить графику". Если ты добавил новую графику, то надо ее обязательно обновить. Добавленная графика должна появиться в списке после "Невидимой стены" т.е. в самом конце. Максимум можно использовать 50 картинок для каждой карты. Если ты чего то недопонял, то посмотри примеры там все очень наглядно сделано, можешь попробовать в них поиграть ;) СКРИПТЫ Итак, где и как писать скриптовые команды, ты наверное уже усек, теперь я расскажу тебя, о том какими они бывают и что делают. ExitGame; - выходит в главное меню игры. Surviving; - включает постоянный респаун монстров на карте, параметры респауна должны обязательно указываться командой ниже. Survive(RespawnTime,GlobalAI); - эта команда указывает параметры для респауна врагов, эта команда обязательно должна присутствовать в автозагрузочном скрипте, если карта предназначена для игры на выживание. RespawnTime - интервал в секундах, через который будутвозраждаться монстры. GlobalAI - манера поведения врагов (0 - тупые, 1 - бегают за игроком, 2 - бегают с умом ;) Trading; - по умолчанию черный чел будет торговаться с игроком, если по нему кликнуть, но после выполнения этой команды, он просто будет разговаривать, повторный вызов команды сново заставит его торговаться. StopMusic; - осанавливает музыку в игре и перематываетее на начало. StopSound; - останавливает вс играющие звуки относящиеся к карте т.е.загружаемые из папки "Sounds". PauseMusic; - ставит музыку на паузу, повторный вызов - снимает с паузы. PlayMusic; - заново запускает музыкальныйтрек в игре. QuestDone; - признак завершения квеста, если после выполнения этой команды вернуться к Барни, то он увеличит числовое значение квеста на единицу и начинает диалог "BarneyQuestN", где N - номер квеста. SetQuest(X); - вручную устанавливаем числовоезначение квеста, стоит помнить, что при загрузке карты это число всегда 0, а вот признак заверщения квеста т.е. команда выше - сохраняется, когда ты только взял квест ее значение - 0, после ввода команды выше признак завершенности меняется на 1. X - любоецелое число. SecondFloor; - эту команду необходимо использовать вавтозагрузочном скрипте, если карта представляет собой закрытое помещение и значение бэкграунда стоит -1, а вместо пола используются объекты. (не понял, смотри примеры) NoCamera; - тоже пишется в автозагрузочный скрипт, отключает динамическую камеру на этой карте, если таковая была включена в опциях, при переходе на следующую карту, камера снова включается. GetSkills; - делает все скиллы доступными дляпроачки не зависимо от уровня игрока. GenerateShop; - обновляет предметы которыми торгует таргаш. EnemiesRespawn; - воскрешает всех врагов на карте. MoveCenter(X,Y); - сдвигает игрока на определенное число координат по X и Y, эта команда не будет работать из автозагрузочного скрипта, по этому что бы сдвинуть игрока в самом начале карты, нужно нарислвать триггер прямо под его ногами. Message(Text1,Text2); - Выводит сообщение в 2 строки. Qitem_put(X,name); - кладет в инвентарь игрока квестовый предмет. Если ты не пользуешься рисунком для этого предмета(который должен лежать в папе "Items"), то можешь поставить значение X - от 1 до 6. Если же у тебя есть рисунок, тоэто число роли не играет. name - это внутренне имя твоего прдмета, игра будетискать в папке "Items", name.txt - с описанием предмета и name.bmp - его картинку. Qitem_take(name); - еслив инвенторе есть квестовый предмет с таким именем то он - пропадет. Remove_wall(X); - в редакторе карт над каждой невидимой стеной написан ее номер, а этак команда уничитожает невидимую стенус номером X. Gold(X); - добавляет Х денег игроку. Points(X); - добавляет Х очковдляраспределения игроку. Ontimer(X,command); - устанавливает таймер (максимум - 10 таймеров), где x-интервал в секундах, а command - любая скриптовая команда. После срабатывания таймера он деактивируется и ввыполняет указанную команду. LoadMap(name); - загружет карту из папки "Maps" т.е. для загрузки скажим карты сценария нужно написать LoadMap(CustomScenarious\имя папки сценария\имя карты); LoadScript(name); - загружает скрипт из текстового файла, (из папки с "название карты\Scripts") т.е. можно написать просто LoadScript(dosomething);. OnZeroEnemies(command); - делает какое либо действие при кол-ве врагов на карте равном нулю, где command - любая скриптовая команда. LoadDialog(name); - то-же что и LoadScript, но диалог грузится из папки "Dialogs". PlaySound(name); - запускает звук из папки "название карты\Sounds" напр. PlaySound(boom.wav); Игра понимает все возможные звуковые форматы. Fog(X); - туман, где X - от 0 до 255. EnemyLevel(X); - указывает уровень врагов на карте, если не использовать эту команду то уровень будет устанавливаться при загрузке карты в зависимости от уровн игрока. PlayerXpIncrease(X); - на сколько процентов нужно будет больше опыта для достижения следующего уровня. Rain(X); - дождь, при значение X - 0, он отключается, X не должен быть больше 20. LightControl(changetime,lightlevel,light); - устанавливает освещение на карте. Changetime - смена дня и ночи значение true-да false - нет, lightlevel - уровень освещенности от 1 до 3 (3-полдень), light - общий уровень света от 0 до 255. IfQuest(X){ - пишется всегда в начале скрипта! X - это числовое значение квеста и если квест не равен X, то скрипт выполняться не будет. (смотри примеры)
КОНСОЛЬНЫЕ КОМАНДЫ
dev_mapinfo - выводит информациюо карте. dev_loadmap - загружает карту, путь начинается с папки "Maps". dev_quest - очень полезная команда. Устанавливает числовое значение квеста, если ввести ее без параметра, то она выводит текущее значение квеста. dev_savegame - сохраняет игру. dev_loadgame - загружает игру. gm_fog - меняет уровень тумана на карте. gm_rain - включает/выключает дождь или меняет его интенсивность. dev_info - выводитна экран информацию о кол-ве полигонов на экране и прочее. dev_collisions - отображает все зоны столкновений, триггеры, невидимые стены и многое другое. При возникновении каких либо вопросов, пожелании или вы нашли баг, то смело пишите мне. |