Данная статья написана из расчета, что вы уже умеете ставить один сервер на один компьютер, а, следовательно, разжевывание базовых вещей не требуется. Если вы пользуетесь комплексной защитой сервера, то для вас маловероятно, что данная статья будет актуальна, особенно если используется не стандартный лаунчер. Авторы комплексных защит стараются вынести все основные порты сервера в ini файлы для максимально удобной их правки, максимум вручную правится лаунчер, если используется стандартный.
Несколько серверов на одном компьютере имеет множество реализаций, но в данной статье рассматривается только два наиболее встречаемых случая:
- два полностью независимых сервера на одном компьютере
- два мира на одном компьютере (ZoneServer-а разные, а LoginServer и AccountServer общие)
Для запуска на одном компьютере нескольких независимых серверов необходимо прохексить порты в ZoneServer, LoginServer и AccountServer второго, третьего и так до n-ного сервера, в зависимости от того сколько серверов вы хотите запустить. AccountServer
Порт LoginServer-a
BSB - 0x0175b8
GU - 0x017618
Сменить 0x7869 (=> 69 78 = 27000) на ваш новый порт LoginServer-a в шестнадцатеричной системе.
Порт ControlServer-a
BSB - 0x0176ca
GU - 0x01772a
Сменить 0x606d (=> 6d 60 = 28000) на ваш новый порт ControlServer-a в шестнадцатеричной системе.
Порт ZoneServer-a
BSB - 0x017641
GU - 0x0176a1
Сменить 0x4871 (=> 71 48 = 29000) на ваш новый порт ZoneServer-a в шестнадцатеричной системе.
Порт лаунчера
BSB - 0x00c516
GU - 0x00ca96
Сменить 0x1127 (=> 27 11 = 10001) на ваш новый порт лаунчерa в шестнадцатеричной системе.
Порт AccountServer-a
BSB - 0x00ec22
GU - 0x00f1a2
Сменить 0x7869 (=> 69 78 = 27000) на ваш новый порт AccountServer-a в шестнадцатеричной системе.
Важно: Порт обязательно должен совпадать по значению с портом LoginServer-а в AccountServer-е.
Порт WebAgent-a
BSB - 0x114472
GU - 0x1ea8d7
Сменить 0xa36b (=> 6b a3 = 27555) на ваш новый порт WebAgent-a в шестнадцатеричной системе.
Порт BillingAgenta-a
BSB - 0x1144ed
GU - 0x1ea952
Сменить 0xa46b (=> 6b a4 = 27556) на ваш новый порт BillingAgenta-a в шестнадцатеричной системе.
Порт клиента
BSB - 0x114383 | 0x1204db
GU - 0x1ea7d4 | 0x1f7788
Сменить 0x846c (=> 6c 84 = 27780) на ваш новый порт клиентa в шестнадцатеричной системе.
Важно: Первый оффсет отвечает за порт, к которому должны подключаться клиенты, второй же оффсет отвечает за порт, который будет отправлен клиенту для подключения к серверу.
Порт AccountServer-a
BSB - 0x11ea76
GU - 0x1f59c0
Сменить 0x4871 (=> 71 48 = 29000) на ваш новый порт AccountServer-а в шестнадцатеричной системе.
Важно: Порт обязательно должен совпадать по значению с портом ZoneServer-а в AccountServer-е.
Очень важно: Порты второго третьего или n-ного ZoneServer, AccountServer или LoginServer должны не только не совпадать с аналогичными портами в других ZoneServer, AccountServer и LoginServer, но и с другими портами в ZoneServer, AccountServer и LoginServer, за исключением портов, через которые идет связи компонентов сервера. Совпадение портов приведет к ошибке при запуске.
Для подключения к каждому независимому серверу необходим отдельный лаунчер с прохекшеным портом LoginServer-а (порт 10001). Я не буду выкладывать оффсет для лаунчера, так как, к сожалению, даже стандартные лаунчеры, которыми используются, различаются, а следовательно может и различаться расположение порта LoginServer-а. Не говоря уж про нестандартные лаунчеры - "New Paradise"-подобные или из комплексных защит, в которых способы подключения к серверу могут разительным образом отличаться, и что там надо править естественно я не знаю. В чистом стандартном лаунчере порт 10001 расположен в самом начале, обычно это первое значение, которое находит поиск. Проверить найденный оффсет можно в IDA - если на месте данного оффсета находится шестнадцатеричное число 2711 (= 10001), то да этот оффсет который вам нужен. Если же в данном оффсете расположено что-то другое, то продолжайте поиск дальше.
Важно: Порт LoginServer-а обязательно должен совпадать с портом лаучера в LoginServer-е.
Для запуска же нескольких миров на одном компьютере необходимо прохексить порты только в ZoneServer второго, третьего и так до n-ного сервера (мира), в зависимости от того сколько миров вы хотите запустить. Так же необходимо настроить AccountServer и LoginServer на работу с несколькими серверами.
В отличие от независимых серверов в ZoneServer надо хексить порты:
- WebAgent-a
- BillingAgent-a
- клиента
Порт AccountServer-а хексить не надо!
Настройка LoginServer-а и AccountServer-a. Ниже приведено неполное содержимое ini файлов, а лишь та часть, которая используется в настройке. AccountSystem.ini
Код:
[World]
; Количество миров
WorldSet_Num = n
; Первый мир
; Название мира
Name0 = World1
; Адрес мира. 127.0.0.1 если сервер настроен на локальный хост, если нет, то IP, на который у вас настроен сервер
Address0 = 127.0.0.1
; Название базы мира
DBName0 = RF_World1
; Тип мира
Type0 = 0
; Максимальное количество игроков на сервере
MaxUser0 = 2000
; Второй мир
Name1 = World2
Address1 = 127.0.0.1
DBName1 = RF_World2
Type1 = 0
MaxUser1 = 2000
...
; n-ный мир
Name[n-1] = Worldn
Address[n-1] = 127.0.0.1
DBName[n-1] = RF_Worldn
Type[n-1] = 0
MaxUser[n-1] = 2000
В обоих случаях не требуется, какая либо дополнительная настройка веб обвязки. Если во втором случае в вашем стандартном лаунчере доступен только один сервере. То это значит, вы неправильно настроили LoginServer или AccountServer.
Примечание: Так как ControlServer-ом, WebAgent-ом, BillingAgent-ом и другими компонентами сервера RF Online мало кто пользуется по этому информации по их настройке и оффсеты для них не приведены.
Последний раз редактировалось Emka; 27.09.2013 в 16:16.
Рекомендую:
На мнения, что положительные, что отрицательные - не отвечаю!
0 | ... | -13000 | -14000 | -15000