千年的服务端主要分5个程序,本文详细介绍了服务端各类重要参数的含义,方便新手GM提高对服务端参数配置和功能的认知!
! }) |% ^; E+ k" g' A9 F6 `
7 U( g; j1 {3 F9 X& ~1:Balance 网络均衡服务器。0 c8 q( w3 I- h/ q/ N# }
2:DB 人物数据服务器.注意:这里不包含福袋数据和门派数据等.% }# j" X5 f6 V" W+ o7 S
3: GATE 网关服务器.
1 _4 ?% u, c: z2 b8 h4: login 登陆服务器. 帐号密码等数据在这里.
% G: M& Y+ P' ~5: TGS 游戏主服务器. 游戏大部分设置均在这里.
$ q4 z9 [( _6 u1 E" T' b# M" o- k; C
下面讲下他们的工作原理.1 J( O: Q$ ?: @; u
5 R$ q# ^! h& i: `: D
首先,玩家通过TCP协议3053端口连接到Balance服务器,当Balance接到连接命令后,
- ?& p% `0 P. b3 \将连接信息转化为UDP协议通过3030端口转到GATE服务器.简单的说Balance只是负责
M$ C1 L/ G: V1 s( \! {中转.然后GATE服务器在使用TCP协议连接TGS服务器的3052端口,若TGS端口连接正常,
8 T! N O& A& V$ k4 k W则返回信息到GATE,GATE再验证DB与login服务器,若连接正常,则发送信息连接成功到
1 e3 c0 z8 X! a' {9 w' _+ z$ O; O客户端." w1 N1 d8 m8 m5 n
* q7 |6 {2 ]: m9 y6 c+ {- b5 f
再说服务器所牵扯的端口. (以下端口均为未修改的默认端口)$ } g3 `" |) {% i
# D& E0 a- d4 e, x- Z9 U8 {1 F
Balance服务器 对外TCP协议3053 连接GATE-UDP协议3030.
3 c9 `- Y8 p k. w" X+ b% M9 n2 N9 cDB服务器 TCP协议3051连接GATE.& V8 E+ W5 `/ J1 x8 V7 _4 y `# V
GATE服务器 对外端口3054-TCP协议.注意,虽然3054对外,但是直接连接3054会出现版本错误的提示.; f- E" C" d# ~; I% U
UDP协议连接balance的3030.TCP协议连接TGS服务器的3052 TCP协议连接DB的3051 TCP协议连接login/ ?3 t Q' l8 ^$ C# m- U1 i% n5 w
的3050 这里最重要的一个,也是很多朋友不明白的地方,那就是paid服务器的端口,paid服务器为冲卡
: \4 \, }8 Z- l( K c; c$ s验证服务器,通常做私服只需将其删除即可,也就是说并不是GATE服务器要亮4个灯才正常,这是很多朋友
Q, [+ U- ^; m" _. g的误区.' V6 ], e0 t+ J6 \4 n1 {
login服务器 TCP协议连接GATE的3050
* V# K: h( T4 ?; X! Z8 uTGS服务器 TCP协议连接DB的3051 其中还有一些物品记录服务器等.
6 @, J8 |7 o$ X% O7 y
7 C, Y: E0 ?8 E7 ]) l& b+ @
/ y' I$ O$ a. f再讲每个服务器中的配置.1 I6 ^- h) e( t0 @
- ^3 M" l# H% S9 G4 F. p
Balance服务器 目录中的balance.ini中配置
8 w; u2 T3 k$ ]; l |7 s8 ^' K[BALANCE]
& u7 i/ J' ?! A2 \) bTCPLOCALPORT=3053
; D0 H& \1 i, s9 |+ D r/ yUDPLOCALPORT=3030
$ D' N Y, T0 _! ?1 x+ h8 \" g基本不需要修改,若你想开启一机双线,那就要双开balance和GATE,
% p8 c' f1 j" H& H( w若需要一机多区,就要双开balance,GATE,TGS。1 x* a8 I- P/ O5 }: {+ H- x
这也就是克星一机多区的工作原理.
n* {9 ~; [* X. G但是官方原版的balance服务器并不读取balance中的TCP协议中设置的端口,也就是你即使设置4053
7 x/ H; O' I) `他一样是在3053工作.但是UDP协议中的3030是读取的,克星就是改写了balance服务器,让他可以从
+ a) J" k5 Q' O配置文件中读取用户所设置的端口来实现一机多区的.) R2 R% f( G5 H$ B. r5 c2 [+ J: W& Z2 g' y
如果你想不使用克星工具实现一机多区,应该做以下设置.6 D& u( s6 w5 X! g) W
复制另一份balance出来,打开balance.ini修改
: _/ l) J! t+ V8 y3 ~1 [% c- T[BALANCE]4 v7 r7 L# |1 t
TCPLOCALPORT=4053
8 w1 [$ F3 P4 |' q7 sUDPLOCALPORT=4030- ?3 f5 u. v( P, u* ]+ s. E
这里修改后注意GATE.ini中UDP协议3030端口为4030+ N- D; V+ s% ^! X# m
然后打开UE,查找ED0B修改为D50F.注意,有很多个,修改最后一个就可以了.这样他就在4053端口监听了.( C; c& x. D( ^7 p" E
6 ^& \) j9 Z! G; r题外话:很多朋友很不理解16进制编辑.这里我给大家稍微讲一下.% s+ D( I# p' ]0 F" Q6 Y
打开windows自带的计算器,选择查看-科学型,然后选择10进制1 `0 B' u3 C# ^
按下3053,再选择为16进制,你会发现3053在16进制中显示为BED
7 r5 R; o& e" Z$ I' Q! j/ Q但是为什么要查找ED0B呢,因为在程序中这些东西都是反写的,
. ? \: M$ V! v* {以两个字母为一个单位,也就是说假如为6D2E,你在查找是应该找2E6D1 |- y) l2 ~) O. y6 I
若是奇数就要加一个0来补齐.
6 I( C% E7 q6 I: S
_! F# T) E* q7 B再来看看DB服务器。
5 U* C7 i" m& Y. l6 f5 B. s( m0 k
9 z8 [- I: \% Y4 d( M! GDB服务器下目录比较多,我们一个个来讲
9 P7 k4 W' ^" i! B9 k9 Nbackup目录本身DB服务器不产生,也不在他的目录下增加任何文件,! F& |5 Z) X: M! v/ c" T. F
根据笔者猜测,他应该官方工作人员用来备份服务器资料的一个目录.删除也没什么关系.
8 |6 ] ^4 s2 o1 g) S4 Glog目录,web目录,均是记录玩家的情况 U; R7 F+ D7 n4 m, X8 ]' J9 B
userdata下是记录当天上线所有玩家的资料,同时,当你点击DB服务器中的backup按钮时. B7 }+ R) e$ v! h W k* K8 R
他会在这个目录中产生一个备份文件,但是这个备份文件不要当作人物资料来用,具体原因
' o# Z: z: \3 j: ^/ \# C6 ^还不太明白,只知道会导致玩家元气永远比原来差一些的问题.
; Z- ]& R6 l3 a% j+ J
" `. Q- k7 q9 F+ x! D5 p2 uDB.exe,这个文件是DB服务器文件,没什么好讲的,说说他的按钮吧.
3 `8 F2 ]* y- Jreload,字面意思是重新读取,具体作用未做测试.
* {3 Q( u! Z8 {' ] Q8 l/ J$ naddrecord,增加用户数量.也就是DB默认的建立最大人物资料为10000,若你服务器人气很高,+ r" h: j5 _' K* y- T5 K/ t7 H
到最后玩家无法建立新角色的时候,点击这个按钮,增加数据库容量就可以了.7 d3 C) a, {1 z- K
save today.sdb,存盘当天玩家上线记录.0 Z% Y; E( Y5 x* `: z) N
back up,备份数据库,备份的数据库会产生在userdata目录下., J) C3 B" l7 ?8 S
, L8 K& M) K6 o7 u- ^& Q0 Z. q7 S7 u6 O; W1 s
DB.ini,DB服务器配置文件." R, }- @+ f" d& S* X
[DB_SERVER] 明确服务器名称.6 X' E2 W& n# _! t
FileName=testdb.fdb 数据库名称.运行DB服务器后会产生一个以这个为名的数据库,但以数字区别.
. A, H0 S* n7 r/ U( m, ]BufferSizeS2S=1048576 数据库的规格0 }2 l9 i) w* d1 D
GateAcceptPort=3051 DB与GATE连接的端口.TCP协议.
' a$ g' m. _; U6 _1 FRemotePort=1024 接收端口.应该是玩家下线后TGS与DB连接的端口." i7 ]+ h- Z* M
ItemRemotePort=1020 似乎是物品记录端口,但是实际上物品记录端口在TGS下.
+ d/ t, e% M! y( r
, O$ E7 v5 d& T& K- l
: g# p( S- C* J( YIPList.txt文件.
$ v: S4 [3 g( A. j# q9 y2 ]2 d记录远程GATE连接的IP.一般设置为127.0.0.1
- V, _ N% {3 i8 M; r) s) `8 T! G* e5 G+ i. j; \5 o4 |! b
remoteip.txt文件.% q7 w! i$ f( m. G, o
记录远程TGS连接的IP.一般设置为127.0.0.1
9 W8 A7 F" O/ \* I! Y& ?* B- }1 m6 }/ g
ModifyMagic.txt文件.
2 b, W& ~7 e" ~/ n, @1 M感觉目前似乎没有用到.具体作用有待补充.
* X) B G7 x- M; Y9 U( T$ ~1 ^& @* P K# G- T6 B
) k6 R0 H/ [, b: X$ V9 ^; \% l7 z6 v) ?; d' s
GATE服务器.* _9 E/ a. _. W5 v A
% q! D" x4 Q( S, a! Qlog目录,记录目录.
( G5 t* ?% `9 }$ a
0 o0 A) j: H+ {* Y) QCreateChar.txt文件,定义新手出生身上所带物品,但不可定义段位,不可定义数量.4 B/ j- j' l$ n/ q9 o$ l
[CLOTHES]
5 u8 J, a5 [, }' L ~' b0 [CLOTHES_COAT_MAN=男子上衣 男子新手出生后所拥有上衣.
9 L3 e" ]- n( r+ P8 h- mCLOTHES_PANTS_MAN=男子短裤 男子新手出生后所拥有的裤子.9 D& x. r: H6 r
CLOTHES_COAT_WOMAN=女子上衣 女子新手出生后所拥有上衣.$ d& y B- h/ a% e; s" ^
CLOTHES_PANTS_WOMAN=女子短裤 女子新手出生后所拥有的裤子
! q/ Q" l+ R) ?+ {8 y$ W& O! ]
[WEAPON]
& ]% g, F* f6 H) bWEAPON_SWORD=长剑 出生后拥有的剑 实际上即使不是此类物品也可以% |! {& U4 ]2 q% @
WEAPON_KNIFE=长刀 出生后拥有的刀 实际上即使不是此类物品也可以
; F ~ t5 k4 c G$ C% o; V& TWEAPON_SPEAR=长枪 出生后拥有的枪 实际上即使不是此类物品也可以: _ j8 T' c! k) l7 a' x, [
WEAPON_AX=斧头 出生后拥有的斧 实际上即使不是此类物品也可以
D' L, z! v; g) Y8 d: E# g- x5 R2 O4 r6 l
[ETC]6 [0 q0 G$ z: m7 |8 \ `3 ?
ETC_01=五色药水 新手出生后拥有的物品1.这里要说一下$ A$ C' c, X& U! O
. C, |" q# {$ L5 ^# l5 [' Z+ y' ^, |
即使你定义为没有耐久的物品,他出生后还是会有耐久的./ t' |% T( R. b+ j5 q
即使你设置了ETC_02或03或着N+1都是不读取的.如果想要他读取除非去修改GATE主程序./ Z2 Q+ o% G" e9 y
$ I; i J7 ~4 o9 M$ M
. Z* i. x: o: O9 G* r
DontChar.txt 定义不允许建立的角色名.
2 _9 O, D2 K( h/ |* G9 s; O3 T) e, n! W3 ^
6 z0 r/ C4 z6 x" e* b- @! rgate.ini文件,GATE服务器配置文件.这里详细说一下.- \9 L( \3 ]. R
% ]9 e7 z: L: |$ K$ e[GATE_SERVER] 定义服务器名称& U- t6 o b4 n
LOCALIP=127.0.0.1 定义对外IP
7 T( c- f! E& S9 hLOCALPORT=3054 定义与balance连接的端口" u) [) k' S9 G. I
LIMITUSERCOUNT=500 定义玩家最大上线允许 0为不限制.' k6 j% E+ Y; M8 k5 ?
CHECKPAIDINFO=FALSE 是否收费服务器.& d% A! l0 ]$ |5 S9 @
BALANCEIP=127.0.0.1 定义balance服务器IP
- O% k, [, f0 j* J0 s& w* @7 ] JBALANCEPORT=3030 定义balance服务器端口.UDP协议.
- T4 t3 A# N+ |3 U" D3 c/ h% L6 Q* dSERVERNAME=test 定义服务器名
; H0 v; I0 O9 h+ K' C- S O5 P- I7 dBUFFERSIZES2S=1048576 服务器缓冲.应该是这样,若讲错请指正,不胜感激
* U9 S7 m. V8 q1 u2 `' [$ z1 U6 R: WBUFFERSIZES2C=8192 新手村缓冲.应该是这样,若讲错请指正,不胜感激
" K2 r P2 Z- f- h' M7 P3 Z/ }- {& _' e
[GAME_SERVER] 定义服务器名称6 P* z5 T' d! s: x; |' q
REMOTEIP=127.0.0.1 游戏主服务器IP地址,也就是TGS的IP地址.经典的3052漏洞就是这个.1 H" v' R- B$ H1 }+ g
REMOTEPORT=3052 游戏主服务器端口.一定要封.% @; G5 P2 P$ O: N( B2 r
+ k- |: j6 j- _9 a" C
[DB_SERVER] 定义服务器名称
# r* x4 a4 F) O6 `' kREMOTEIP=127.0.0.1 人物资料服务器IP地址,也就是DB服务器的IP地址.
3 _# U5 O+ v* Q V) D# p. @: bREMOTEPORT=3051 人物资料服务器端口,一定要封.
* R9 k( O% b2 Z: b ~2 @" f$ b! \" L c. d: T7 F; n0 l. s
[LOGIN_SERVER] 定义服务器名称6 O) F: D5 p2 |4 z& i) r2 _
REMOTEIP=127.0.0.1 登陆服务器IP地址.
0 Z2 n$ I" |$ {+ a, @. H0 f: ^9 WREMOTEPORT=3050 登陆服务器端口! r( m! h( w, [, h& X3 b/ P
1 w& r+ @; }$ h E3 {$ D
[PAID_SERVER] 定义服务器名称 (通常删除)
* Y4 \" |8 A1 [! d( oREMOTEIP=127.0.0.1 定义冲卡验证服务器IP地址 (通常删除)5 F$ L: I" n* |; i) i: b" \9 ^
REMOTEPORT=80 定义冲卡验证服务器端口 (通常删除)' Y& H, L* ^% Q
/ X6 d' d3 n8 i) X( a& P6 B4 N7 t) W
tgs1000.acs文件。GATE的语言库。
+ B6 _3 x7 m6 i9 Q0 X4 j! {! q( z5 D8 w# X/ f# I
Village.Ini文件。定义新手出生地图。这里讲一下。2 l% ?4 {& @6 T1 o4 D: A, v" b- C6 J, w
0 f6 W" T; q3 H
[VILLAGE] 定义配置文件名 I( X3 H* n4 d; U* W( l: j
) w. ^# F6 Q. ^# n- x& C1 SCOUNT=1 定义新手村可选择的数量0 x( z3 l! F0 {4 z& M' J; s% S
& l! g4 C' p9 @* D% G
NAME0=新手村 定义第一个新手村名称,其实并不读取,只是让技术员用来区别。
9 x! [) o8 ]! N5 _" FX0=178 第一个新手村X坐标6 h- w, |( ?: k3 T
Y0=238 第一个新手村Y坐标: _# W9 K9 u/ ?* D
SERVERID0=0 第一个新手村的地图编号,对应TGS\INIT\MAP.SDB中的编号. ' F$ R5 M7 w3 `" p7 ~" @0 T
|