Ich möchte euch in diesem kleinen Howto zeigen, wie man ganz einfach mehrere Server laufen lässt und es schafft, dass alle Server im Serverauswahl-Fenster im Client auftauchen. Los gehts!
Da die normalen Serverfiles etwas unaufgeräumt sind und somit das ganze etwas verkomplizieren, habe ich mir mal die Mühe gemacht die Ordnerstruktur komplett zu ändern, das war mit nem Hex-Editor und viel Zeit absolut kein Problem. Damit ihr das nicht selbst tun müsst, habe ich sie für euch hochgeladen. Ich empfehle diese zu verwenden, sonst werdet ihr vermutlich beim Tutorial nicht ganz mitkommen, denn beim folgenden Tutorial werde ich diese Files verwenden.
Um einen weiteren Server hinzuzufügen öffnet zunächst die Datei
_CONF.txt im Hauptverzeichnis eurer Serverfiles. Navigiert hier zum Block "Define World Name" (Zeile 52), dort steht bereits:
Code:
;-----------------------------------------------------------------------------------
; DEFINE WORLD NAME
;-----------------------------------------------------------------------------------
WORLD_NAME 0, "Server1", "_DATA"
Für jeden weiteren Server müsst ihr hier eine Zeile im Format
Code:
WORLD_NAME X, "ServerX", "_DATA"
anhängen, wobei X für die Nummer des Servers steht (keine numerischen Lücken lassen!)
Wenn das getan ist, dann muss weiter unten im Block nach der Definition der Loginserver und vor der Definition der ODBC Daten der neue Server hinzugefügt werden, hängt hierzu den Text in folgendem Format an:
Code:
;-----------------------------------------------------------------------------------
; SERVER X
;-----------------------------------------------------------------------------------
; World #X -------------------------------------------------------------------
SERVER_INFO "PG_World0X_Character_DB_Server", 2, 1, 0, 0, "Z", 9Y00, 1, 100 ; From ALL
SERVER_INFO "PG_World0X_GameLog_DB_Server", 3, 1, 0, 0, "Z", 9Y01, 1, 100 ; From ALL
SERVER_INFO "PG_World0X_Manager_Server", 5, 1, 0,20, "Z", 9Y10, 10, 2000 ; Public IP
SERVER_INFO "PG_World0X_Manager_Server", 5, 1, 0, 6, "Z", 9Y15, 1, 100 ; Public IP
SERVER_INFO "PG_World0X_Manager_Server", 5, 1, 0, 8, "Z", 9Y16, 1, 30 ; From OPTOOL
; Zone 0 ---------------------------------------------------------------------
SERVER_INFO "PG_World0X_Zone_Server", 6, 1, 0,20, "Z", 9Y20, 10, 2000 ; Public IP
SERVER_INFO "PG_World0X_Zone_Server", 6, 1, 0, 8, "Z", 9Y21, 1, 30 ; From OPTOOL
; Zone 1 ---------------------------------------------------------------------
SERVER_INFO "PG_World0X_Zone_Server1", 6, 1, 1,20, "Z", 9Y22, 10, 2000 ; Public IP
SERVER_INFO "PG_World0X_Zone_Server1", 6, 1, 1, 8, "Z", 9Y23, 1, 30 ; From OPTOOL
; Zone 2 ---------------------------------------------------------------------
SERVER_INFO "PG_World01_Zone_Server1", 6, 1, 2,20, "Z", 9Y24, 10, 2000 ; Public IP
SERVER_INFO "PG_World0X_Zone_Server1", 6, 1, 2, 8, "Z", 9Y25, 1, 30 ; From OPTOOL
Hierbei gilt: X = Servernummer; Y = Servernummer + 1; Z = eure externe IP
Jetzt fehlt nur noch die neuen OBDC-Info, hängt also ganz unten vor #End Text in folgendem Format an:
Code:
ODBC_INFO "CharacterX", 10, 1, "DSN=CharacterX; UID=sa; PWD=Y", "USE World0X_Character; SET LOCK_TIMEOUT 5000"
ODBC_INFO "GameLogX", 11, 1, "DSN=GameLogX; UID=sa; PWD=Y", "USE World0X_GameLog; SET LOCK_TIMEOUT 5000"
X steht hierbei für unsere Servernummer, Y für das Passwort des sa-Accounts.
So, das wars auch schon mit dieser Datei, nun zu der Konfiguration der Dienste:
Kopiert zunächst den Ordner
_World00 und benennt die Kopie im Format
_World0X wobei X wieder die Servernummer ist.
Öffnet nun die Kopie und geht in den Unterordner
_Character, öffnet hier die Datei
_CONF.txt.
Navigiert zu Zeile 9 und ersetzt die Zeile nach folgendem Schema:
Code:
MY_SERVER "PG_World0X_Character_DB_Server", "_World0X Character DB Server", 2, X, 0
X steht wieder für die neue Servernummer.
Wiederholt diesen Vorgang für die Ordner _GameLog, _WorldManager, _Zone, _Zone1, _Zone2 nach folgenden Schemen:
_GameLog:
Code:
MY_SERVER "PG_World0X_GameLog_DB_Server", "_World0X GameLog DB Server", 3, X, 0
_WorldManager
Code:
MY_SERVER "PG_World0X_Manager_Server", "_World0X Manager Server", 5, X, 0
_Zone (hier ist es Zeile 44)
Code:
MY_SERVER "PG_World0X_Zone_Server", "_World0X Zone Server", 6, X, 0
_Zone1 (hier ist es Zeile 44)
Code:
MY_SERVER "PG_World0X_Zone_Server1", "_World0X Zone Server1", 6, X, 1
_Zone2 (hier ist es Zeile 44)
Code:
MY_SERVER "PG_World0X_Zone_Server2", "_World0X Zone Server2", 6, X, 2
Nun habt ihr alle Konfigurationen in den Serverfiles selbst abgeschlossen, nun zu der Datenbank:
Loggt euch im Microsoft SQL Server Management Studio ein und stellt die Datenbanken
World00_Character und
World00_GameLog wieder her, benennt sie dieses mal aber nach dem Schema
World0X_Character und
World0X_GameLog wobei X wieder für die Servernummer unseres neuen Servers steht.
Also nach dem Motto
Wenn ihr das geschafft habt, dann setzt die neuen ODBC-Verbindungen, geht so:
Startet
ODBC (bei 64-Bit-Systemen %SystemRoot%\sysWOW64\odbcad32.exe) und klickt auf den Tab SystemDSN.
Hier klickt ihr auf Hinzufügen und wählt "SQL Server" und klickt auf Weiter.
Für die neue Character-DB gebt den Text in Form
CharacterX (wobei X wieder für die Servernummer steht) ein, für die GameLog-DB
GameLogX (X = Servernummer).
Wählt unten noch euren eigenen Server und klickt auf Weiter und nochmal auf Weiter.
Setzt nun einen Haken bei "Die Standarddatenbank ändern auf:" und wählt hier eure neue Character-DB bzw GameLog-DB. (Also
World0X_Character bzw
World0X_GameLog, wobei X wie immer für die Servernummer steht), dann nochmal auf Weiter und dann auf Fertigstellen, nun habt ihrs geschafft!
Jetzt nur noch im Serverfiles-Ordner im (vorhin erstellten) Unterordner
World0X (X = Servernummer) die
install.bat ausführen und alle Services neu starten, also auch die neuen mitstarten... Nun läuft euer neuer Server!
Kleine Info zu den "neuen" Serverfiles:
die Files sind auf 2 Server vorkonfiguriert
_DATA entspricht _CONF/Data
_FILES entspricht _CONF/Shine (sind alte Athens Files, da ich meine ungerne weiter gebe)
_CONF.txt entspricht _CONF/config.txt
_ServerGroup.txt entspricht _CONF/_ServerGroup.txt
_LOGIN beinhaltet alle globalen Services
_World00 beinhaltet den ersten Server
_World01 beinhaltet den zweiten Server
Die Datenbanken müsst ihr per Hand wiederherstellen und die ODBC-Verbindungen per Hand konfigurieren, hab ja erklärt wie es geht