Fallout 3

Главная


Fallout 4


Поиск


ЧаВО


Статьи


Форум

 

Галерея


Файлы


Файлообмен


Counter Strike


Чат


Новости


Скриншоты


Написать


Ссылки


Ордена


Участники

 
 

 

Форум -- Забор

Страницы: 1 2 3 4 5 6 7

Peacewalker
Пользователь
Авторейтинг:
Гуру
(1041-0)
Братство Стали
Звание:
Палладин
Репутация:
блудный сын
Тема: RE[11]: Конвертируем карты из Fallout 1 и 2 в FOnline.
 
для ответа необходимо зарегистрироваться
Кстати а сколько времени занимает распаковка?
 
 
_____________________________________
Origin:
 
04.08.2011 15:08
antony87
Участник проекта
Авторейтинг:
Гуру
(896-0)
Знания
Магистр Ордена
Звание:
Великий Магистр
Репутация:
Идеолог Знания
Тема: RE[12]: Конвертируем карты из Fallout 1 и 2 в FOnline.
 
для ответа необходимо зарегистрироваться
Peacewalker писал(а)
Кстати а сколько времени занимает распаковка?
от 2 до 10 минут, в зависимости от производительности процессора
 
 
04.08.2011 15:11
Vault hero
Участник проекта
Авторейтинг:
Гуру
(1191-0)
Знания
Звание:
Верховный Магистр
Репутация:
Ветеран Ордена
Тема: Мануал для "Fonline"
 
для ответа необходимо зарегистрироваться

 
 
04.08.2011 22:57
Vault hero
Участник проекта
Авторейтинг:
Гуру
(1191-0)
Знания
Звание:
Верховный Магистр
Репутация:
Ветеран Ордена
Тема: Учимся пользоваться SDK вместе.
 
для ответа необходимо зарегистрироваться

 
 
04.08.2011 23:09
antony87
Участник проекта
Авторейтинг:
Гуру
(896-0)
Знания
Магистр Ордена
Звание:
Великий Магистр
Репутация:
Идеолог Знания
Тема: О скриптах (введение)
 
для ответа необходимо зарегистрироваться
Скрипты в FOnline - основополагающий момент, поскольку благодаря скриптам, в этой игре можно создавать и изменять практически все, что не ограничено движком.
К слову, в движок игры разработчиками FOnline сознательно были внесена лишь небольшая часть, а все остальные аспекты игры вынесены в скрипты для нашего с вами удобства. Сам движок имеет закрытый код, но нам ведь это не принципиально, потому что мы будем использовать скрипты.
В этой теме я постараюсь как можно понятнее донести до вас введение в столь технически сложную тему, как скрипты. Все содержание этой темы основывается на рекомендациях разработчиков и моего личного опыта.
Начнем со скриптового языка. Все скрипты FOnline в основе имеют скриптовые библиотеки AngelScripts. Синтаксис скриптов схож с языками C++ и C#.
Движок FOnline оснащен встроенным препроцессором, который компилирует исходный код скриптов, предварительно обрабатывая их. Код, получаемый на выходе такой операции, отличается от исходного кода (т.е. от того, который мы написали).
Для препроцессинга скриптов используются следующие директивы:
#include
#define
#ifdef
#ifndef
#endif
Директива #include включает в исходного файла скрипта другой файл (в основном текстовый) После обработки препроцессором все строки в исходном скрипе #include "filename" заменяются содержимым указанного файла.
Директива #defineиспользуется для констант и макросов.
Например, строка #define MONEY_PID (41)
После этой строки в коде скрипта можно использовать строку MONEY_PID вместо прямого указания номера 41, в тех местах, где необходимо указать пид, используемый в качестве денег. После обработки препроцессором, все строки "MONEY_PID" будут заменены на "(41)" C примером использования директивы #define вы можете ознакомится в скрипте defines.fos, лежащем в папке ...\server\scripts
Другие директивы, такие как #ifdef, #ifndef, #endif будут рассмотренные.
А теперь поясняю все выше изложенное. Директивы нужны нам для облегчение нашей же работы. Например, мы знаем PID денег - 41 (есть таблица с PID'ами объектов, выложу позднее). А теперь представьте, что мы пишем скрипт, в котором используем много предметов из мира Fallout, и в нашем коде мы легко можем запутаться в цифрах, а если сделаем ошибку в коде, то выявить ее будет чрезвычайно сложно. по этому мы задаем какому-нибудь PID'у текстовое значение. Для этого нам достаточно в начале скрипта прописать #define MONEY_PID (41), и дальше в коде мы можем смело писать "MONEY_PID", вместо (41). Благодаря #include мы можем не прописывать #define во всех скрипах, а достаточно лишь прописать #define в скрипте defines.fos, а затем остальные скрипты начинать со строчки #include "defines.fos", и все содержимое скрипта difenes.fos пропишется в код нашего скрипта автоматически
Я начал рассмотрение скриптов именно с директив, поскольку это очень сильно упрощает работу. Далее будет рассказано обо всех скриптах подробно и с примерами. Всем понятно что здесь написано???

 
 
05.08.2011 12:29
Lavr
Участник проекта
Авторейтинг:
Гуру
(825-0)
Братство Стали
Звание:
Старший палладин
Тема: RE: О скриптах (введение)
 
для ответа необходимо зарегистрироваться
antony87 писал(а)
Скрипты в FOnline - основополагающий момент, поскольку благодаря скриптам, в этой игре можно создавать и изменять практически все, что не ограничено движком.
К слову, в движок игры разработчиками FOnline сознательно были внесена лишь небольшая часть, а все остальные аспекты игры вынесены в скрипты для нашего с вами удобства. Сам движок имеет закрытый код, но нам ведь это не принципиально, потому что мы будем использовать скрипты.
В этой теме я постараюсь как можно понятнее донести до вас введение в столь технически сложную тему, как скрипты. Все содержание этой темы основывается на рекомендациях разработчиков и моего личного опыта.
Начнем со скриптового языка. Все скрипты FOnline в основе имеют скриптовые библиотеки AngelScripts. Синтаксис скриптов схож с языками C++ и C#.
Движок FOnline оснащен встроенным препроцессором, который компилирует исходный код скриптов, предварительно обрабатывая их. Код, получаемый на выходе такой операции, отличается от исходного кода (т.е. от того, который мы написали).
Для препроцессинга скриптов используются следующие директивы:
#include
#define
#ifdef
#ifndef
#endif
Директива #include включает в исходного файла скрипта другой файл (в основном текстовый) После обработки препроцессором все строки в исходном скрипе #include "filename" заменяются содержимым указанного файла.
Директива #defineиспользуется для констант и макросов.
Например, строка #define MONEY_PID (41)
После этой строки в коде скрипта можно использовать строку MONEY_PID вместо прямого указания номера 41, в тех местах, где необходимо указать пид, используемый в качестве денег. После обработки препроцессором, все строки "MONEY_PID" будут заменены на "(41)" C примером использования директивы #define вы можете ознакомится в скрипте defines.fos, лежащем в папке ...\server\scripts
Другие директивы, такие как #ifdef, #ifndef, #endif будут рассмотренные.
А теперь поясняю все выше изложенное. Директивы нужны нам для облегчение нашей же работы. Например, мы знаем PID денег - 41 (есть таблица с PID'ами объектов, выложу позднее). А теперь представьте, что мы пишем скрипт, в котором используем много предметов из мира Fallout, и в нашем коде мы легко можем запутаться в цифрах, а если сделаем ошибку в коде, то выявить ее будет чрезвычайно сложно. по этому мы задаем какому-нибудь PID'у текстовое значение. Для этого нам достаточно в начале скрипта прописать #define MONEY_PID (41), и дальше в коде мы можем смело писать "MONEY_PID", вместо (41). Благодаря #include мы можем не прописывать #define во всех скрипах, а достаточно лишь прописать #define в скрипте defines.fos, а затем остальные скрипты начинать со строчки #include "defines.fos", и все содержимое скрипта difenes.fos пропишется в код нашего скрипта автоматически
Я начал рассмотрение скриптов именно с директив, поскольку это очень сильно упрощает работу. Далее будет рассказано обо всех скриптах подробно и с примерами. Всем понятно что здесь написано???
Да, понятно. Спасибо за подробный инструктаж.
 
 
05.08.2011 14:17
Peacewalker
Пользователь
Авторейтинг:
Гуру
(1041-0)
Братство Стали
Звание:
Палладин
Репутация:
блудный сын
Тема: RE: Конвертируем карты из Fallout 1 и 2 в FOnline.
 
для ответа необходимо зарегистрироваться
antony87 писал(а)
Открываем утилиту, и первое что видим - диалоговое окно, в котором выбираем единственную доступную опцию Open DAT File, и указываем путь к файлу master.dat, который находится в папке с установленной игрой Fallout 2. Если все сделали правильно - то вы увидите слева древо многочисленных папок, а прямо перед глазами кучу фалов. Далее идем на верхнюю панель, щелкаем по вкладкам сверху и ищем там функцию "Extract all files to..." (можно, конечно, извлечь только интересующие файлы, а не все, но у меня эта опция работать отказалась). Выбираем папку, в которую хотим распаковать игру. Настоятельно рекомендую создать такую папку заранее и в любом удобном и легкодоступном для вас месте.
Кстати а какие именно папки надо было извлекать?
 
Последний раз редактировалось: 05.08.2011 16:06
_____________________________________
Origin:
 
05.08.2011 16:04
antony87
Участник проекта
Авторейтинг:
Гуру
(896-0)
Знания
Магистр Ордена
Звание:
Великий Магистр
Репутация:
Идеолог Знания
Тема: RE[2]: Конвертируем карты из Fallout 1 и 2 в FOnline.
 
для ответа необходимо зарегистрироваться
Peacewalker писал(а)
antony87 писал(а)
Открываем утилиту, и первое что видим - диалоговое окно, в котором выбираем единственную доступную опцию Open DAT File, и указываем путь к файлу master.dat, который находится в папке с установленной игрой Fallout 2. Если все сделали правильно - то вы увидите слева древо многочисленных папок, а прямо перед глазами кучу фалов. Далее идем на верхнюю панель, щелкаем по вкладкам сверху и ищем там функцию "Extract all files to..." (можно, конечно, извлечь только интересующие файлы, а не все, но у меня эта опция работать отказалась). Выбираем папку, в которую хотим распаковать игру. Настоятельно рекомендую создать такую папку заранее и в любом удобном и легкодоступном для вас месте.
Кстати а какие именно папки надо было извлекать?
Вообще нас интересует только папка maps, но у меня не работает извлечение одной папки, поэтому приходится извлекать абсолютно все
 
 
05.08.2011 16:13
Peacewalker
Пользователь
Авторейтинг:
Гуру
(1041-0)
Братство Стали
Звание:
Палладин
Репутация:
блудный сын
Тема: RE[3]: Конвертируем карты из Fallout 1 и 2 в FOnline.
 
для ответа необходимо зарегистрироваться
antony87 писал(а)
Peacewalker писал(а)
antony87 писал(а)
Открываем утилиту, и первое что видим - диалоговое окно, в котором выбираем единственную доступную опцию Open DAT File, и указываем путь к файлу master.dat, который находится в папке с установленной игрой Fallout 2. Если все сделали правильно - то вы увидите слева древо многочисленных папок, а прямо перед глазами кучу фалов. Далее идем на верхнюю панель, щелкаем по вкладкам сверху и ищем там функцию "Extract all files to..." (можно, конечно, извлечь только интересующие файлы, а не все, но у меня эта опция работать отказалась). Выбираем папку, в которую хотим распаковать игру. Настоятельно рекомендую создать такую папку заранее и в любом удобном и легкодоступном для вас месте.
Кстати а какие именно папки надо было извлекать?
Вообще нас интересует только папка maps, но у меня не работает извлечение одной папки, поэтому приходится извлекать абсолютно все
Блъ,я действительно мудак,я тоже извлекал все файлы,хотя мог только одну папку.В общем мне осталось только установить винду и я смогу продолжить.И вот еще что,у меня маппер работает без ошибок.
 
Последний раз редактировалось: 05.08.2011 16:44
_____________________________________
Origin:
 
05.08.2011 16:19
antony87
Участник проекта
Авторейтинг:
Гуру
(896-0)
Знания
Магистр Ордена
Звание:
Великий Магистр
Репутация:
Идеолог Знания
Тема: Создаем карты
 
для ответа необходимо зарегистрироваться
Для создания, а равно и для редактирования карт, мы будем использовать утилиту Mapper из комплекта SDK.
Начнем мы с рассмотрения базовых команд mapper'y
Как только вы запустите Mapper, перед вами откроется приложение с визуальным интерфейсом на движке FOnline. Графические параметры Mapper привязаны к файлу FOConfig.exe, находящемуся к папке ...\Client. На вкладке "Видео" вы можете изменить разрешение экрана и возможность запуска в полноэкранном режиме.
Управление функциями Mapper'а осуществляется посредством команд. Команды вводятся через консоль, которая открывается и закрывается нажатием клавиши Enter.
Рассмотрим базовые команды:
*new - создание новой карты. Если вы создаете новую карту - введите эту команду непосредственно после открытия маппера.
*unload - закрытие карты, открытой на данный момент. Закрываемая карта, при этом, не сохраняется.
*script - перезагружает приписанные к карте скрипты. То есть, если скрипты уже выполнены на этой карте, а вы хотите еще раз проверить их результат, то эта команда возобновит начальное состояние этих скриптов.
*size - установка размеров карты. Команда вводится следующим образом: *size <x><y>, где x и y - количество гексов по горизонтали и вертикали соответственно.
*dupl - поиск итемов, которые стоят на одном гексе и имеют одинаковый номер прототипа.
*scroll - поиск скроллблокеров, вокруг которых меньше двух скроллблокеров.
*pidpos - поиск всех позиций для данного номера прототипа.
*hex - поиск всех объектов стоящих на заданном гексе. Последние четыре команды мне использовать еще не доводилось, так что не могу ничего другого о них сказать
~mapname, где mapname - имя карты, используется для открытия существующей или ранее сохраненной карты. Для правильной работы этой команды необходимо, чтобы открываемая карта находилась в папке ...\server\maps
^mapname, где mapname - имя карты, используется для сохранения созданной или отредактированной карты. Карта при этом сохраняется с заданным именем в папке ...\server\maps
Примечание: символы типа "*", "~", "^" обязательны к указанию перед соответствующими командами.
После того, как мы разобрались с основными командами, рассмотрим пример создания новой карты:
1. Вводим в консоль команду *new (кто забыл, это команда создает новую карту. Перед нами предстает следующая картина:

2. Начинаем с рисования пола, что в общем то логично, поскольку все создаваемые объекты должны находится на полу/земле, а не висеть в пустоте, которая представлена здесь в виде бесконечного серого пространства.
Для создания пола/земли выберите в открывшемся окне пункт Tile, и разместите несколько тайлов. Для этого щелкните по тайлу в поле выбора объекта левой кнопкой, затем правой кнопкой, чтобы курсор принял форму выбранного тайла, а затем по полю карты левой кнопкой. Поставленные вами тайлы можно выделять, копировать и вставлять (ctrl+c и ctrl+v).
В итоге у вас получится примерно такая картина:

В закладке Tile находятся тайлы и для пола, и для крыш; переключение между позициями, на которые надо вставить тайл, осуществляется шелчком средней кнопкой/колесиком мыши.
3. После пола создаем на нем стены. Для этого щелкните Wall, и разместите несколько стен. Помните, что при расстановке стен по диагонали необходимо чередовать короткие и длинные куски.

Каждый раз, когда вы ставите стену, у вас будет появляться подобное окно (выделено красной рамкой). Для того, чтобы убрать ее, щелкните левой кнопкой по карте (можно также выключать ее отображение клавишей [F9], однако это не рекомендуется, так как вам все равно придется «отключать» ее левым щелчком по карте.) Конкретно для стен вам вряд ли потребуется изменение каких-либо настроек.
4. После стен добавляем в нашу "комнату" придметы. Для примера попробуем добавить парочку простых предметов. Переключитесь в Gen и поставьте вентиляцию и компьютер. Получается вот такая вот красота:

5. Следующим пунктом необходимо сделать вход в это помещение. Для этого нужно дверь (я КЭП?). В Door выберите нужную дверь и поставьте ее в проход. Появится окно настроек:

Нас интересуют следующие значения параметров:
DoorId - этот параметр соответствует номеру ключа, на который закрывается дверь.
Complexity - уровень сложности замка. Высчитывается по формуле «Навык взлома – сложность замка». Максимальное значение – 95. Если вы хотите сделать дверь неоткрываемой, поставьте значение, большее чем 95. Со значениями по умолчанию (0,0) дверь можно открывать без ключа.
6. Проверяем блокеры, чтобы персонажи не могли ходить и стрелять сквозь стены. Убираем видимость стен клавишей F3, нажимаем комбинацию клавиш Ctrl+B, и видим:

Красные точечки это и есть блокеры. Как мы видим, у нас все получилось четко - через стены ходить не получится. Если же есть промежутки, переходим к следующему пункту.
7. Добавляем недостающие блокеры вручную. Для этого во вкладке Fast используем зеленый блокер с буквой S (почему именно этот поясню далее) и вставляем его в области, которые ходим сделать непроходимыми. Поскольку у нас на карте присутствует еще один объект, через который также нельзя ходит - это компьютер - то его тоже необходимо окружить блокерами следующим образом:

Отличие блокеров с буквой S от блокеров W, заключаются в том, что последние простреливаются.
8. Добавляем NPC. Выбираем нужного нам NPC и "тыкаем" его в нужное нам место на карте. Когда вы выбираете NPC, на панельке внизу открывается его инвентарь, который по умолчанию естественно пуст.

Для того, чтобы добавить в инвентарь NPC объекты, щелкните по нужной вам вкладке (например, оружие), и нажмите на объект с зажатым Alt. Он добавится в инвентарь. Если вы хотите добавить оружие в слот NPC, поместите его в инвентарь, а затем щелкните по оружию в инвентаре с зажатым Shift.
Кроме вкладки инвентаря, открывается окно параметров NPC. Нас будут интересовать следующие:
ProtoId - номер прототипа NPC, в котором описаны все его характеристики и параметры брони.
DialogId - номер диалога этого NPC
AiPacket - информация об искусственном интеллекте NPC, находятся в AI.TXT. Если стоит 0, то информация берется из прототипа NPC.
ScriptId - номер скрипта, если он есть для этого NPC.
Cond и CondExt - начальные состояния NPC, значения находятся в defines.fos.
IsMob - если да, то NPC он всегда будет атаковать любого игрока, и его радиус обзора увеличен в 2 раза.
BagId - идентификационный номер инвентаря NPC.
TeamId - идентификационный номер команды, к которой принадлежит NPC. Значения можно посмотреть в файле Teams.txt.
9. Дорисовываем остатки карты полом, чтобы она не казалась унылым говном унылой серой бесконечностью. Переключитесь в режим выделения клавишей Tab, выделите тайлы пола и скопируйте их на всю оставшуюся карту:

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

Помните, что минимальный размер карты должен подходить под разрешение 1280х1024. Проверяйте карты при разных размерах окна маппера
Расставив все блокеры, нам нужно сделать две следующие вещи: сделать точку входа на карту и отметить точки выхода. Не забудьте поставить точки входа для транспорта (243 и 245), если карта это предполагает.
На каждой карте обязательно должен присутствовать один объект Scen и Wall. На картах пустыни их можно поставить за скролл-блокеры. Без них маппер может вылетать при попытке сохранения карты.

Не забывайте добавлять свет от источников света, для этого вставляйте желные гексы (они там же где и блокеры) туда, куда должен падать свет. Переключение между днем и ночью осуществляется клавишами "+" и "-"
Надеюсь, что этот материал вам поможет, по всем вопросам, как всегда, пишите.
 
Последний раз редактировалось: 05.08.2011 18:00
05.08.2011 17:35

Страницы: 1 2 3 4 5 6 7

 

 запомнить
Регистрация
Забыли пароль?
 

ГАЛЕРЕЯ


Летающая тарелка