1) Среда разработки (IDE). Итак, в первую очередь нам понадобится софт, который будет понимать C# и сможет компилировать наш код. Помимо громоздкой, да еще и не бесплатной Visual Studio, есть несколько альтернативных, компактных вариантов, которые вполне вас устроят:
- Miscrosoft Visual C# Express (выбрать пункт Visual Studio 2012 Express для Windows Desktop);
- SharpDevelop;
2) Исходные коды эмулятора. После того как вы решили вопрос чем править эмулятор, не мешало бы эти самые коды раздобыть. Все те же еретики из пункта один мечутся по друзьям, форумам, скачивают какие-то готовые решения или просят их им намылить, ибо вот конкретно в данный момент мыши перегрызли стратегический кабель, соединяющий провайдера с RunUO.com. Существует простой софт, позволяющий всегда иметь последнюю версию исходников ядра и надстройки над ним, обновлять их, просматривать ChangeLog, при желании построчно отлавливать все изменения проделанные разработчиками и все это в два мышиных клика. Этот софт - TortoiseSVN, с помощью которого осуществляется доступ к репозиторию (хранилищу) разработчиков.
- 2.1) Скачайте и установите последнюю версию программы. После установки она автоматически интегрируется в ваш Explorer и кликнув правой кнопкой мыши в любой из папок вы увидите появившиеся функции TortoiseSVN.
- 2.2) Создайте папку, в которой будут храниться исходные коды эмулятора.
- 2.3) Кликните по ней правой кнопкой, в появившемся меню выберите "SVN Checkout...".
- 2.4) В открывшемся окне заполните поля:
URL of repository: <a href="http://runuo.googlecode.com/svn/devel" target="_blank">http://runuo.googlecode.com/svn/devel</a>
Checkout directory: путь к созданной вами папке
Revision: HEAD revision - 2.5) Жмите ОК. TortoiseSVN подключится к репозиторию, скачает исходники эмулятора и пометит папку как хранилище (зеленая стрелка в левом нижнем углу). Теперь для обновления достаточно кликнуть правой кнопкой на папке и выбрать "SVN Update"; просмотреть историю изменений (ChangeLog) можно кликнув правой кнопкой и выбрав TortoiseSVN --> Show log. Поздравляю, вы стали счастливым обладателем эмулятора RunUO
4) Компиляция ядра. Для компиляции нам понадобится наша среда разработки. Я опишу как это делается в Visual Studio 2005, в остальных средах последовательность либо аналогичная, либо с незначительными нюансами. Итак:
- 4.1) Создаем новый проект через File --> New --> Project... --> Visual C# --> Console Application.
- 4.2) В открывшемся Solution Explorer, показывающим что входит в наш проект, удаляем из проекта файлы AssemblyInfo.cs и Program.cs, если таковые были созданы.
- 4.3) В Windows открываем папку, в которую мы экспортировали наши файлы, и перетаскиваем папку Server на название проекта в Solution Explorer. Наши файлы будут добавлены в проект. ПРИМЕЧАНИЕ: В SharpDevelop с этим возникают некоторые проблемы. При перетаскивании в проекте создаются пустые папки, поэтому приходится после этого открывать каждую и перетаскивать в нее сами файлы.
- 4.4) Открываем меню Project (рядом с File, Edit, View) и выбираем в самом низу функцию "НазваниеПроекта Properties" (в SharpDevelop это будет Project Options...).
- 4.5) На вкладке Application устанавливаем Startup object: Server.Core.
- 4.6) На следующей вкладке Build (в SharpDevelop это Compiling) ставим галочку напротив Allow unsafe code (в SharpDevelop еще убираем галочку с пункта Check for arithmetic overflow/underflow).
- 4.7) Там же в Output path выбираем куда будет доставлен наш скомпилированный .exe файл.
- 4.8) Открываем меню Build (рядом с Project) и нажимаем Build Solution.
- 4.9) Если все было сделано верно, то мы получим откомпилированное ядро, которое положим рядом с папкой Scripts.
- 5.1) В первую очередь позаботимся о файлах клиента (карты, статика к ней и т.д), которые будет использовать сервер. Можно использовать те же файлы, что и вашего рабочего клиента. Если клиент прошел регистрацию в реестре, то сервер сам найдет эти файлы при запуске и даже не спросит о них. Однако по правилам хорошего тона и во избежание дальнейших проблем (например при работе со статикой на карте) нам лучше сделать копию необходимых файлов и поместить их где-нибудь, например рядом с папкой Scripts в папке Client. Перечень необходимых файлов вы можете найти в файле Scripts\Misc\DataPath.cs, там же вы найдете строку
private static string CustomPath = null;
Замените ее на
private static string CustomPath = @"Путь\к_вашей\папке\Client"; - 5.2) Для успешного запуска вам также потребуются две библиотеки: zlib32.dll и zlib64.dll.
- 5.3) Теперь запускаем наш .exe файл. Запущенный сервер самостоятельно откомпилирует папку Scripts (процесс не быстрый, придется подождать) и если все сделано верно, то сообщит о готовности к работе, выдав список IP адресов вашего компьютера.