Запуск и настройка сервера

Подготовка к запуску

Никакой особой установки сервер не требует, все что нужно это запустить исполняемый файл "cedserver.exe" из директории ./server/ (начиная с версии 0.7.6 сервер входит в пакет установки, если он у вас не установлен вы всегда можете его установить. В отличии от клиента серверу по факту не требуется установка и при необходимости вы можете скопировать его в другую папку или на другую машину). После чего сервер предложит произвести необходимые настройки и создать учетную запись администратора, в результате чего будет создан файл конфигурации "cedserver.xml". При повторном запуске все настройки будут автоматически загружаться из файла конфигурации "cedserver.xml", расположенного в той же папке что и сервер, по этому если вы хотите повторить данный шаг, просто удалите или переименуйте файл конфигурации, вы также можете создать его вручную при помощи любого текстового редактора.

Первый запуск сервера

Для работы сервера необходимо 5 файлов: tiledata.mul, radarcol.mul, map#.mul, staidx#.mul, statics#.mul. Последние три файла определяют с какой именно картой будет работать сервер, для карты также необходимо указать ее размеры (Ширина х Высота) в блоках. Размеры стандартных карт приведены ниже. Также вам потребуется указать флаги определяющие версию *.mul файлов. Самый простой способ это разместить эти файлы в одной папке с сервером и просто указать их имена, но вы также можете поместить их куда угодно, в этом случае вам необходимо указывать полные или относительные пути (напр. "С:\\Program Files (x86)\Ultima Online\tiledata.mul")

Это Важно: сервер требует монопольного доступа к файлам, это означает что вы не можете использовать одни и теже файлы для одновременной работы сервера CentrEd+ и UOClient/Sphere/RunUo/Fiddler.

Контроль версий файлов

Сервер осуществляет контроль версии мул файлов клиента и сервера, при этом он автоматически определяется версию используемых *.mul файлов (Pre SA, SA, HS+). Во избежании ошибок и проблем сервер не разрешает клиентам использовать мул файлы другой версии чем на сервере.

Патч файлы статики и карты

Последние клиенты используют патч файлы карт и статики. Этими патчами являются файлы: mapdif#.mul, mapdifl#.mul, stadif#.mul, stadifl#.mul, stadifi#.mul. CentrEd+ не умеет работать с патч файлами, и в случае если ваш сервер использует патчи (даже если эти файлы присутствуют, они могут не использоваться сервером), вам потребуется при помощи сторонних программ (таких как Fiddler) скопировать данные из патчей в *.mul файлы, после чего уже использовать пропатченные *.mul файлы (не забудьте после этого отключить использование патчей на сервере UO).

Обновление сервера

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

Распространенные ошибки

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

1START /B "C:\centred-plus\cedserver.exe" 
Известные самые частые ошибки:
  • EFOpenError : Unable to open file "..." - указанный *.mul файл не найдены, возможные причины: указан не верный пути в файле конфигурации, файл отсутствует, путь содержит не допустимые символы или записан в нечитаемом виде, файл уже занят другой программой (см. выше замечание про монопольный доступ к файлам).
  • Неправильные данные. Проверьте размеры карты и файлы. - указанны неправильные размеры карты в файле конфигурации (следует понимать что проверить размеры карты фактически не возможно, данная ошибка свидетельствует о невозможности продолжать работу так как указанные размеры не совпадают с числом секторов в файлах, иными словами, если размеры карты 1 х 4, то указав размеры 2 х 2 данной ошибки не будет, однако карта будет отображаться неправильно.)
  • Ошибка: 0.0.0.0 :: Error on bind [10048] - Ошибка сети, указанный порт не может быть открыт, так как какое-то приложение или процесс уже использует его.
  • TInvalidConfigException : Version mismatch: 4 <> 5 - Используется старый файл конфигурации (4 версии вместо 5той). Сравните пример ниже с вашим файлом для определения различий, устраните их и обновите версию файла. Или пересоздайте файл настроек.

Интеграция сервера и удаленный доступ к *.mul файлам

При коллективной работе над картой как правило требуется организовать доступ к *.mul файлам группе людей. Делается это индивидуально или при помощи сторонних программных средств, таких как средства удаленного администрирования, планировщики, веб-скрипты, jabber\icq боты и прочее. В качестве примера самой простой реализации приведем способ основанный на стандартных возможностях ос Windows, для этого создадим bat файл для запуска сервера в одной папке с сервером следующего содержания, в данном примере сервер в случае необходимости автоматически копирует все *.mul файлы из корневого каталога в подкаталог "backup" после завершения работы сервера, а по завершению операции автоматически запускает сервер заново с файлом конфигурации "map0.xml", выключение сервера идет при помощи, доступного для администраторов, соответствующего пункта меню в клиенте, а доступ к данным осуществляется путем расшаривания подкаталога backup по FTP или локальной сети.

1@ECHO OFF
2START "" /I /B /WAIT "%~dp0cedserver.exe" "map0.xml" 
3ECHO Copying *.mul files...
4XCOPY "%~dp0*.mul" "%~dp0backup" /I /R /K /Y /D
5START "" /B "%~0" 

Данный способ не претендует на полноту, а является лишь простейшим примером для демонстрации способов управление сервером сторонними программными средствами (в большинстве случае все сводится к тем же *.bat файлам). Не намного сложнее, при знании соответствующих языков, реализовать управление сервером через скрипты RunUO\Sphere\Php\Perl или любые другие, имеющие простейшие возможности работы с ОС.

Использование нескольких конфигураций

Поскольку сервер может одновременно работать только с одной картой, работа с несколькими картами осуществляется путем запуска сервера с различными конфигурациями. Естественно для одновременной работы порты должны быть различными в каждой конфигурации. Для этого создаем несколько конфигураций (например "map0.xml", "map1.xml", "map2.xml") и запускаем сервер, передав в качестве параметра название профиля ("cedserver.exe "map0.xml""). Для автоматизации запуска можно сделать *.bat файл:

1START cedserver.exe "map0.xml" 
2START cedserver.exe "map1.xml" 
3START cedserver.exe "map2.xml" 

Файл конфигурации

Пример файла конфигурации:

 1<?xml version="1.0"?>
 2<CEDConfig Version="6">
 3  <Language>..\Language\Russian.ini</Language>
 4  <Port>2597</Port>
 5  <Map>
 6    <Map>map0.mul</Map>
 7    <StaIdx>staidx0.mul</StaIdx>
 8    <Statics>statics0.mul</Statics>
 9    <Width>896</Width>
10    <Height>512</Height>
11    <Prefix>0</Prefix>
12    <Format>0x0000</Format>
13  </Map>
14  <Tiledata>tiledata.mul</Tiledata>
15  <Radarcol>radarcol.mul</Radarcol>
16  <Accounts>
17    <Account>
18      <Name>admin</Name>
19      <PasswordHash>d41d8cd98f00b204e9800998ecf8427e</PasswordHash>
20      <AccessLevel>255</AccessLevel>
21      <LastPos x="0" y="0"/>
22      <Regions/>
23    </Account>
24  </Accounts>
25  <Regions/>
26</CEDConfig>

В данном примере аккаунт "admin" без пароля, так что в случае проблем с настройкой сервера, можно создать файл конфигурации вручную. Редактирование данных об аккаунтах и регионах осуществляется непосредственно администратором через клиент. Элемент Format является набором флагов, задающих версии *.mul файлов используемых на сервере и клиенте, в основном используются следующие флаги:

Значение Название Описание
0х0000 Old Data Format Задает использование старого формата TileData.mul. Данный формат используется большинством клиентов, кроме последних.
0х0001 Pre-alpha Format Задает использование старого формата файлов art.mul, artidx.mul, staidx#.mul, statics#.mul. А также отключает использование texidx.mul, texmaps.mul. Данный формат данных использовался только в раннем pre-alpha клиенте.
0х0002 Use VerData Еще не реализовано.
0х0004 Use DifPatch Еще не реализовано.
0х0008 New Data Format Задает использование нового формата TileData.mul, введенного в бустере "High Seas". Это значение по умолчанию.
0х0010 Use *.uop files Использовать LegacyMUL данные в формате MYP (*.uop). При этом также необходимо указать верное значение Prefix, в противном случае данные из карты не смогут быть прочитаны.
Таким образом, стандартные значения флагов для стандартных клиентов:
Название pre-Alpha Alpha Beta SL T2A R TD LBR AoS SE ML KR SA HS HS\ToL
Версия
??

??
1.21
1.23
1.23.27
1.??
1.25.35b
1.26.4j
2.0.0
2.0.9a
3.0.0
3.0.7a
3.0.7b
3.0.8r
3.0.8z
4.0.4b2
4.0.5a
4.0.11c
4.0.11d
5.0.9.1
6.0.0.0
6.0.14.3
6.0.14.4
7.0.8.2
7.0.8.44
7.0.23.1
7.0.23.2
7.0.X.X
Флаги 0х0001 0x???? 0x???? 0x0000 0x0000 0x0002 0x0002 0x0002 0x0002 0x0002 0x0004 0x0004 0x0004 0x000C 0x001C

Значение Prefix используется только при работе с картами в формате uop и должно содержать индекс карты, например: 2 или 2x для Ilshenar.

Размеры стандартных карт

Название грани Размер в тайлах Размер в блоках Файлы Размер файла
0 Pre-Alpha 1024 x 1024 128 x 128 map0.mul 3 211 264 байт
staidx0.mul 196 608 байт
statics0.mul
0 Felucca (Pre-ML) 6144 x 4096 768 x 512 map0.mul 77 070 336 байт
staidx0.mul 4 718 592 байт
statics0.mul
0 Felucca 7168 x 4096 896 x 512 map0.mul 89 915 392 байт
staidx0.mul 5 505 024 байт
statics0.mul
0 Felucca (Post-SA) 7168 x 4096 896 x 512 map0x.mul 89 915 392 байт
staidx0x.mul 5 505 024 байт
statics0x.mul
1 Trammel (Pre-ML) 6144 x 4096 768 x 512 map1.mul 77 070 336 байт
staidx1.mul 4 718 592 байт
statics1.mul
1 Trammel 7168 x 4096 896 x 512 map1.mul 89 915 392 байт
staidx1.mul 5 505 024 байт
statics1.mul
2 Ilshenar 2304 x 1600 288 x 200 map2.mul 11 289 600 байт
staidx2.mul 691 200 байт
statics2.mul
3 Malas 2560 x 2048 320 x 256 map3.mul 16 056 320 байт
staidx3.mul 983 040 байт
statics3.mul
4 Tokuno 1448 x 1448 181 x 181 map4.mul 6 421 156 байт
staidx4.mul 393 132 байт
statics5.mul
5 TerMur 1280 x 4096 160 x 512 map5.mul 16 056 320 байт
staidx5.mul 983 040 байт
statics5.mul
6 Unknown