Ich tippe auf 5k+ Spieler ohne Laggs wenn sie sich gleichmäßig verteilen :P
ok let'z go!
Ihr müsst die Server einfach anhand dieser Skizze aufbauen (+optional die Mapverteilung von Final)
Das hat natürlich den Vorteil niemand außer ihr selbst kennt die IP von MySQL Server
Nun deaktiviert ihr das Fehleranzeige auf eurer Homepage mit "error_reporting(0);" (PHP) damit niemand durch eine Fehlermeldung falls der MySQL Server offline sein sollte die IP rausfinden kann.
Als nächstes wechseln wir den ssh Port
Ihr ändert dazu in der sshd_config unter /etc/ssh
#Port 22
zu
Port *EUER PORT*
und *EUER PORT* natürlich durch euren Port ersetzen
Dann könnt ihr per Filezilla nur über den neuen Port connecten
Zum MySQL Server:
obwohl es s ziemlich unmöglich ist die IP rauszufinden - am besten nur User eingeschränkten Hosts verwenden ist sicherer
(c)NW2
iMer & Downi
Edit:
So für die die es nicht verstehen eine kleine Erklärung.
Als erstes setzen wir uns an den Ch1 Root drann
Packt ihr die Sf drauf und entpackt sie ganz normal
Als IP nehmen wir mal die 192.168.0.1.
Nun setzt ihr den MySQL - Server auf
Als IP nehmen wir 192.168.0.2
Ich fasse zusammen:
Ch1 192.168.0.1
MySQL 192.168.0.2
Nun erstellt ihr einen MySQL User:
Nehmen wir mal [email protected] und als Passwort Ch1
Es ist wichtig , dass wirlich nur von dem Host 192.168.0.1 connectet werden kann!
Nun setzen wir uns an die Serverfiles
In jedem "game","auth" oder "db" Ordner finded ihr eine Config
Bei game und auth ist das "CONFIG" und bei db ist es conf.txt
Wenn wir sie öffnet sieht es so aus: (Als beispiel nehme ich mal die CONFIG aus game1_1)
PHP Code:
HOSTNAME: game1_1
CHANNEL: 1
PORT: 7001
P2P_PORT: 8001
DB_PORT: 15001
DB_ADDR: localhost
MAP_ALLOW: 1
TABLE_POSTFIX:
ITEM_ID_RANGE: 100000001 150000000
PASSES_PER_SEC: 25
SAVE_EVENT_SECOND_CYCLE: 180
PING_EVENT_SECOND_CYCLE: 180
PLAYER_SQL: localhost mt2 mt2!@# player
COMMON_SQL: localhost mt2 mt2!@# common
LOG_SQL: localhost mt2 mt2!@# log
#TEST_SERVER: 1
pk_server: 1
PHP Code:
PLAYER_SQL: localhost mt2 mt2!@# player
COMMON_SQL: localhost mt2 mt2!@# common
LOG_SQL: localhost mt2 mt2!@# log
Also müssen wir sie nurnoch ändern sodass die Datei zum MySQL Server connecten kann:
PHP Code:
PLAYER_SQL: 192.168.0.2 channel1 Ch1 player
COMMON_SQL: 192.168.0.2 channel1 Ch1 common
LOG_SQL: 192.168.0.2 channel1 Ch1 log
PHP Code:
game/channel/first
game/channel/game1_1
game/channel/game1_2
game/channel/game1_3
game/channel/game2
game/channel/game61
game/auth
Nun fragt ihr euch bestimmt "der hat doch am anfang nochwas von db gelabert oder?"
Richtig!
Die config ist ein wenig anders aufgebaut:
PHP Code:
WELCOME_MSG = "DB Server has been started"
SQL_ACCOUNT = "localhost account mt2 mt2!@# 0"
SQL_PLAYER = "localhost player mt2 mt2!@# 0"
SQL_COMMON = "localhost common mt2 mt2!@# 0"
SQL_HOTBACKUP = "localhost hotbackup mt2 mt2!@# 0"
TABLE_POSTFIX = ""
BIND_PORT = 15001
DB_SLEEP_MSEC = 10
CLIENT_HEART_FPS = 25
HASH_PLAYER_LIFE_SEC = 600
BACKUP_LIMIT_SEC = 3600
PLAYER_ID_START = 100
PLAYER_DELETE_LEVEL_LIMIT = 70
ITEM_ID_RANGE = 70000001 100000000
LOCALE = big5
PHP Code:
SQL_ACCOUNT = "localhost account mt2 mt2!@# 0"
SQL_PLAYER = "localhost player mt2 mt2!@# 0"
SQL_COMMON = "localhost common mt2 mt2!@# 0"
SQL_HOTBACKUP = "localhost hotbackup mt2 mt2!@# 0"
PHP Code:
SQL_ACCOUNT = "192.168.0.2 account channel1 Ch1 0"
SQL_PLAYER = "192.168.0.2 player channel1 Ch1 0"
SQL_COMMON = "192.168.0.2 common channel1 Ch1 0"
SQL_HOTBACKUP = "192.168.0.2 hotbackup channel1 Ch1 0"
Nun laden wir die Serverfiles auf den Ch2 Root hoch (Als IP nehmen wir die 192.168.0.3) und erstellen einen weiteren MySQL User:
[email protected] mit dem Passwort: Ch2
Da wir auf Channel1 schon den Login und Db server haben brauchen wir diese nicht mehr
Folglch müssen wir die start.sh bearbeiten:
PHP Code:
#!/bin/sh
sh db_auth.sh &
sleep 3
sh game.sh &
sleep 3
PHP Code:
#!/bin/sh
sh game.sh &
sleep 3
Diesmal ist das CONFIG anpassen etwas schwieriger, da ihr neben dem ändern der MySQL Daten noch den Channel verändern müsst.
Wir haben wieder unsere Standart CONFIG und ändern wieder die MySQL Daten:
PHP Code:
HOSTNAME: game1_1
CHANNEL: 1
PORT: 7001
P2P_PORT: 8001
DB_PORT: 15001
DB_ADDR: localhost
MAP_ALLOW: 1
TABLE_POSTFIX:
ITEM_ID_RANGE: 100000001 150000000
PASSES_PER_SEC: 25
SAVE_EVENT_SECOND_CYCLE: 180
PING_EVENT_SECOND_CYCLE: 180
PLAYER_SQL: 192.168.0.2 channel2 Ch2 player
COMMON_SQL: 192.168.0.2 channel2 Ch2 common
LOG_SQL: 192.168.0.2 channel2 Ch2 log
#TEST_SERVER: 1
pk_server: 1
PHP Code:
HOSTNAME: game1_1
CHANNEL: 1
PORT: 7001
P2P_PORT: 8001
DB_PORT: 15001
DB_ADDR: 192.168.0.1
MAP_ALLOW: 1
TABLE_POSTFIX:
ITEM_ID_RANGE: 100000001 150000000
PASSES_PER_SEC: 25
SAVE_EVENT_SECOND_CYCLE: 180
PING_EVENT_SECOND_CYCLE: 180
PLAYER_SQL: 192.168.0.2 channel2 Ch2 player
COMMON_SQL: 192.168.0.2 channel2 Ch2 common
LOG_SQL: 192.168.0.2 channel2 Ch2 log
#TEST_SERVER: 1
pk_server: 1
Damit wären die MySQL & db verbindungen fertig
Das Problem ist:
Bis jetzt ist das alles noch Channel1 und hat die gleichen Itemrages
Das müssen wir auch anpassen
Als erstes machen wir den Channel:
PHP Code:
HOSTNAME: game1_1
CHANNEL: 2
PORT: 7001
P2P_PORT: 8001
DB_PORT: 15001
DB_ADDR: localhost
MAP_ALLOW: 1
TABLE_POSTFIX:
ITEM_ID_RANGE: 100000001 150000000
PASSES_PER_SEC: 25
SAVE_EVENT_SECOND_CYCLE: 180
PING_EVENT_SECOND_CYCLE: 180
PLAYER_SQL: 192.168.0.2 channel2 Ch2 player
COMMON_SQL: 192.168.0.2 channel2 Ch2 common
LOG_SQL: 192.168.0.2 channel2 Ch2 log
#TEST_SERVER: 1
pk_server: 1
Um herauszufinden, welche Itemrage ihr nehmen könnt, die noch nicht belegt ist, guckt ihr die CONFIG's aus Channel1 durch und sucht nach der höchtes Rage.
In meinem fall ist es 300000001 350000000
Ein game braucht immer ca. 50000000 ID's Itemrage
Also Rechnen wir 50000000 dazu und tragen die neue Itemrage ein
PHP Code:
HOSTNAME: game1_1
CHANNEL: 2
PORT: 7001
P2P_PORT: 8001
DB_PORT: 15001
DB_ADDR: localhost
MAP_ALLOW: 1
TABLE_POSTFIX:
ITEM_ID_RANGE: 350000001 400000000
PASSES_PER_SEC: 25
SAVE_EVENT_SECOND_CYCLE: 180
PING_EVENT_SECOND_CYCLE: 180
PLAYER_SQL: 192.168.0.2 channel2 Ch2 player
COMMON_SQL: 192.168.0.2 channel2 Ch2 common
LOG_SQL: 192.168.0.2 channel2 Ch2 log
#TEST_SERVER: 1
pk_server: 1
Dies machen wir noch mit den anderen CONFIG Dateien unter:
PHP Code:
game/channel/first
game/channel/game1_1
game/channel/game1_2
game/channel/game1_3
game/channel/game2
game/channel/game61