千年的服务端主要分5个程序,本文详细介绍了服务端各类重要参数的含义,方便新手GM提高对服务端参数配置和功能的认知!
?6 n) { N" l# U0 l* E* s# ?6 a, V" ?( l1 X, d3 }
1:Balance 网络均衡服务器。7 p6 X( i' |/ w h
2:DB 人物数据服务器.注意:这里不包含福袋数据和门派数据等.
; W& J7 U- P% d) q3: GATE 网关服务器.: J9 U' M8 i3 X q* }3 g3 }
4: login 登陆服务器. 帐号密码等数据在这里.
$ p, Y1 o! \0 ~2 b! h9 \" M, X5: TGS 游戏主服务器. 游戏大部分设置均在这里.1 T& f! }$ l: |6 G
8 C, v6 z8 X: U1 a, b; Y, F4 G
下面讲下他们的工作原理.. t0 q4 z- }! D
* O _- x( ?4 f1 T2 U首先,玩家通过TCP协议3053端口连接到Balance服务器,当Balance接到连接命令后,) ?2 ~) n( T1 E s
将连接信息转化为UDP协议通过3030端口转到GATE服务器.简单的说Balance只是负责
6 R: H h" p, `! j中转.然后GATE服务器在使用TCP协议连接TGS服务器的3052端口,若TGS端口连接正常,
4 N! Q) C8 L+ {( t: l则返回信息到GATE,GATE再验证DB与login服务器,若连接正常,则发送信息连接成功到) O7 p4 T2 t% t) N( X/ D l
客户端.
@; {5 e6 T8 i. ]
" u) ]: @$ z) ?5 N6 i* o. X+ F再说服务器所牵扯的端口. (以下端口均为未修改的默认端口)& E0 S) Q1 T$ f7 x I: h4 N
' ~% R8 Z( @+ }: B3 GBalance服务器 对外TCP协议3053 连接GATE-UDP协议3030.
! r7 y" A) N" A3 K$ jDB服务器 TCP协议3051连接GATE.
% g6 I( e$ h2 |, ?6 o; P: k- I( BGATE服务器 对外端口3054-TCP协议.注意,虽然3054对外,但是直接连接3054会出现版本错误的提示." r1 `- E- \; z3 F8 H
UDP协议连接balance的3030.TCP协议连接TGS服务器的3052 TCP协议连接DB的3051 TCP协议连接login
9 i# ~, O! ?, I W5 T" O的3050 这里最重要的一个,也是很多朋友不明白的地方,那就是paid服务器的端口,paid服务器为冲卡
" ~" u" P j$ | |: u8 y$ B验证服务器,通常做私服只需将其删除即可,也就是说并不是GATE服务器要亮4个灯才正常,这是很多朋友3 g9 Q7 c1 i) V3 x6 q% Y
的误区.# r9 R6 W) ?5 N3 K: d/ W6 k
login服务器 TCP协议连接GATE的3050' V) |+ s# T @0 |/ N' x. a
TGS服务器 TCP协议连接DB的3051 其中还有一些物品记录服务器等.% W% r( c) u/ ^4 r* q' b0 C3 w
1 d( m" T; \% `6 {1 h0 z# |
0 l/ W" V7 q# w7 _3 }- S) ^再讲每个服务器中的配置.
/ \8 K3 u- \" l% A6 `( O6 M1 ?0 ] m3 V
Balance服务器 目录中的balance.ini中配置1 _" r7 q0 [9 H# |6 O
[BALANCE]; E# M* T* k- P& k7 D& g) S2 k# M% o' ?
TCPLOCALPORT=3053" y" y/ h W/ e. V9 K2 a% E( Z
UDPLOCALPORT=3030+ q1 |1 L" Z, S8 [# K# q
基本不需要修改,若你想开启一机双线,那就要双开balance和GATE,
0 Q# {+ T( Q2 D# g若需要一机多区,就要双开balance,GATE,TGS。0 X8 p9 X, b, W" `7 `/ o1 d2 j1 J
这也就是克星一机多区的工作原理.
8 S) C; e/ y/ g+ n, N但是官方原版的balance服务器并不读取balance中的TCP协议中设置的端口,也就是你即使设置40537 t8 _: E5 S m4 R5 N
他一样是在3053工作.但是UDP协议中的3030是读取的,克星就是改写了balance服务器,让他可以从
0 r2 [; Q- I4 d; Z配置文件中读取用户所设置的端口来实现一机多区的., K- r" x- s k6 \) ^! {
如果你想不使用克星工具实现一机多区,应该做以下设置.& S; N, q" T, u
复制另一份balance出来,打开balance.ini修改* B, ~! i4 j& b2 p l4 [
[BALANCE]# P7 o* i1 j+ H" J5 V) i
TCPLOCALPORT=4053
) h1 E* Y5 f, QUDPLOCALPORT=4030$ V* M( c, c! b$ N
这里修改后注意GATE.ini中UDP协议3030端口为4030
9 P2 n: I5 ]! s) v' L# s6 m然后打开UE,查找ED0B修改为D50F.注意,有很多个,修改最后一个就可以了.这样他就在4053端口监听了.8 X6 D1 ~5 B) X. j
9 Q% v; J( `0 K3 E题外话:很多朋友很不理解16进制编辑.这里我给大家稍微讲一下.; C: J2 w2 Z \1 ~/ o
打开windows自带的计算器,选择查看-科学型,然后选择10进制9 s7 C' K& J0 M+ o5 [; H$ a9 Y
按下3053,再选择为16进制,你会发现3053在16进制中显示为BED
% Y2 `1 o1 k. e! T但是为什么要查找ED0B呢,因为在程序中这些东西都是反写的,
8 C8 e+ w8 j" [) _) o/ ~以两个字母为一个单位,也就是说假如为6D2E,你在查找是应该找2E6D- ^+ @9 J- U- W; w4 t8 Z% X% P
若是奇数就要加一个0来补齐.7 y! e1 r6 K9 Z- [0 L
- Z3 d; R& g, s$ p% m) ?) f; p
再来看看DB服务器。
3 t: F: Q7 h2 j# K& N; E1 f& m" @5 }- R" O- e
DB服务器下目录比较多,我们一个个来讲
* m' t- f$ z k% i3 u& } G: L. Wbackup目录本身DB服务器不产生,也不在他的目录下增加任何文件,
% U7 T( G4 p0 M/ d$ O根据笔者猜测,他应该官方工作人员用来备份服务器资料的一个目录.删除也没什么关系.$ ^9 O9 C3 H6 W9 H
log目录,web目录,均是记录玩家的情况
; E9 h$ b( U, h. Z; B$ Z( puserdata下是记录当天上线所有玩家的资料,同时,当你点击DB服务器中的backup按钮时
7 u0 f" `" K* m# Q8 i他会在这个目录中产生一个备份文件,但是这个备份文件不要当作人物资料来用,具体原因
2 f9 t' f7 B4 S还不太明白,只知道会导致玩家元气永远比原来差一些的问题.
g4 p( E: Y; D* d: [9 k
$ }: { P3 q9 X0 j; Q$ NDB.exe,这个文件是DB服务器文件,没什么好讲的,说说他的按钮吧.( [/ c! U; { a i6 t
reload,字面意思是重新读取,具体作用未做测试.
: d: v; _! l7 k# `) m: s! R) b/ H0 oaddrecord,增加用户数量.也就是DB默认的建立最大人物资料为10000,若你服务器人气很高,
+ e; N# K4 a5 c! O ^0 h% l5 p到最后玩家无法建立新角色的时候,点击这个按钮,增加数据库容量就可以了.
( r& l0 B. e/ c, {, Y. zsave today.sdb,存盘当天玩家上线记录.1 n* ]& ^' B2 W! p) V z0 X
back up,备份数据库,备份的数据库会产生在userdata目录下.: X7 ~, c" Z6 X5 ^
3 b" A) Q0 y: x4 J. F. Y
3 e9 | W7 X, ZDB.ini,DB服务器配置文件.* }- ~8 d( e( X
[DB_SERVER] 明确服务器名称.1 w3 X: w: K5 d6 s+ |
FileName=testdb.fdb 数据库名称.运行DB服务器后会产生一个以这个为名的数据库,但以数字区别.7 r9 }! M* k" R3 n
BufferSizeS2S=1048576 数据库的规格# f' ~8 y1 M# p. u% O& S( f
GateAcceptPort=3051 DB与GATE连接的端口.TCP协议.; }8 _" G; K* C3 x3 [
RemotePort=1024 接收端口.应该是玩家下线后TGS与DB连接的端口.
9 T& y7 [1 r8 x7 _- y8 A. UItemRemotePort=1020 似乎是物品记录端口,但是实际上物品记录端口在TGS下.( O! X( ]$ _4 d7 K1 Z, |
6 t8 H; t; Q" v! i: u$ c6 b
- w- J' f5 |5 h( H5 K7 N6 {
IPList.txt文件.
0 |) h" Q, {' B4 f记录远程GATE连接的IP.一般设置为127.0.0.1, [+ p% ~( b, R& h" Q7 C2 C
]) h! Z- M. D- x! q9 p# d
remoteip.txt文件.
6 N/ [+ \9 k% M; |/ {- @3 f记录远程TGS连接的IP.一般设置为127.0.0.1
- `, X* S! }$ t/ i9 X
" q: v+ P& q4 w( h$ xModifyMagic.txt文件.
0 V$ g( O) U, g) G2 g" V8 S感觉目前似乎没有用到.具体作用有待补充.
4 E6 `8 N1 r2 e$ Q8 S8 q+ {4 `& t& u- ^
- Y( I+ V. T/ ?& t
* Q4 Y9 h% }6 m# r: t; FGATE服务器.% b! L: |$ u- c. V1 j4 x7 L$ z
) b6 H3 J. E. S H8 c+ F! X
log目录,记录目录.
/ ~ R" Q1 N! B T6 p* M3 `! {
# Z$ [% z2 Q% i7 vCreateChar.txt文件,定义新手出生身上所带物品,但不可定义段位,不可定义数量.+ T* P3 p2 u9 T. X
[CLOTHES]
* ^9 K" n6 m5 b, I1 Y2 ACLOTHES_COAT_MAN=男子上衣 男子新手出生后所拥有上衣.
: _9 p2 V5 }+ WCLOTHES_PANTS_MAN=男子短裤 男子新手出生后所拥有的裤子. }5 k5 l/ {4 p) G
CLOTHES_COAT_WOMAN=女子上衣 女子新手出生后所拥有上衣.
6 c6 I; v: F+ a; g" [0 XCLOTHES_PANTS_WOMAN=女子短裤 女子新手出生后所拥有的裤子' V* c1 u6 k6 _7 W
& z* _: Z- @7 r m9 d F
[WEAPON]6 g0 Q/ e& N4 z# m4 p7 S# j- v4 B8 r
WEAPON_SWORD=长剑 出生后拥有的剑 实际上即使不是此类物品也可以
! ?) v" }: I/ [1 OWEAPON_KNIFE=长刀 出生后拥有的刀 实际上即使不是此类物品也可以
H1 n9 ^9 \/ aWEAPON_SPEAR=长枪 出生后拥有的枪 实际上即使不是此类物品也可以
% ^- p2 n, ~) j: u+ nWEAPON_AX=斧头 出生后拥有的斧 实际上即使不是此类物品也可以8 O1 E% ~6 c) D X
1 H; |. G* }$ O( v[ETC]+ y1 p( X- u; W' b' A4 X' V" V
ETC_01=五色药水 新手出生后拥有的物品1.这里要说一下
& } b3 Z# {' f0 s$ H; ~
, A. ]6 \$ J9 e# x$ H即使你定义为没有耐久的物品,他出生后还是会有耐久的.2 d0 F- G4 X5 ?8 L3 Q9 j! v
即使你设置了ETC_02或03或着N+1都是不读取的.如果想要他读取除非去修改GATE主程序., P3 b5 T6 }/ K7 l5 {) c
" G- I; u+ e" Q8 ?
8 y- k0 v, [9 ZDontChar.txt 定义不允许建立的角色名.
- _6 l2 Y+ [# ]( D( i ~, N3 p9 f1 s1 n
( r2 ?# i6 R3 a8 X# r
gate.ini文件,GATE服务器配置文件.这里详细说一下.8 y/ p1 V7 e/ e: s7 m9 ~' }0 R' X
, g6 m0 p7 N+ B9 ^2 `# o
[GATE_SERVER] 定义服务器名称 f% _- e. E7 }* \. X" ^9 J
LOCALIP=127.0.0.1 定义对外IP
/ ]5 u* \& _2 b& Z" z* Y/ x4 kLOCALPORT=3054 定义与balance连接的端口
8 I O0 k7 z) @4 J8 M9 Q+ s7 A% dLIMITUSERCOUNT=500 定义玩家最大上线允许 0为不限制.
( i! b, a( K5 U: D/ vCHECKPAIDINFO=FALSE 是否收费服务器.4 e! O) m7 e" d
BALANCEIP=127.0.0.1 定义balance服务器IP' C5 V* e6 ?: E1 T0 ~
BALANCEPORT=3030 定义balance服务器端口.UDP协议.0 ?# o9 d3 l0 O
SERVERNAME=test 定义服务器名* B. u3 B7 n# S4 l6 F* x- m/ U5 ^
BUFFERSIZES2S=1048576 服务器缓冲.应该是这样,若讲错请指正,不胜感激1 [* F; B4 U+ R% k" ]3 a V5 z
BUFFERSIZES2C=8192 新手村缓冲.应该是这样,若讲错请指正,不胜感激
3 t% l0 V+ h( s7 c4 h# d9 a
) L) ?7 T0 M; ^+ Z[GAME_SERVER] 定义服务器名称
4 x- L, j8 a# P* c0 B$ Q4 wREMOTEIP=127.0.0.1 游戏主服务器IP地址,也就是TGS的IP地址.经典的3052漏洞就是这个., E4 x, l; w5 j; p- q+ O. G
REMOTEPORT=3052 游戏主服务器端口.一定要封.6 f; C: L9 I U8 R; P
" [: L( z. t! t$ T
[DB_SERVER] 定义服务器名称/ W2 }$ E) q# D
REMOTEIP=127.0.0.1 人物资料服务器IP地址,也就是DB服务器的IP地址.
- H4 ~4 Z" r' Q& R2 f: nREMOTEPORT=3051 人物资料服务器端口,一定要封.
- y' |3 y: O; h
6 c$ c% O! I/ a7 W[LOGIN_SERVER] 定义服务器名称
3 U V8 E; j7 W/ h! |REMOTEIP=127.0.0.1 登陆服务器IP地址.2 o+ t! b. C- V- {. q
REMOTEPORT=3050 登陆服务器端口; m: d, L/ W w. y% c0 l) s9 ] z
$ }2 g, \/ ?2 _6 a4 U
[PAID_SERVER] 定义服务器名称 (通常删除)
. f9 D4 V! d4 l; U0 p+ K' `REMOTEIP=127.0.0.1 定义冲卡验证服务器IP地址 (通常删除)4 a+ P" r" L, _# c
REMOTEPORT=80 定义冲卡验证服务器端口 (通常删除)7 n7 q8 s1 g" C# U
4 b- n0 q; K0 T: S5 k6 o5 l; C" b3 m
tgs1000.acs文件。GATE的语言库。
" k, G3 d, p3 x9 Y# D- B
/ F8 x9 W* C# t5 a4 c" QVillage.Ini文件。定义新手出生地图。这里讲一下。
; p" f+ v! a5 V& k- a6 I; ]$ R2 ~# V" H7 e) I
[VILLAGE] 定义配置文件名
& @ S, B5 ~* W0 G1 A8 Q8 |8 W+ ~/ w; r6 U7 N8 O) u G8 X
COUNT=1 定义新手村可选择的数量% a: P9 _( A+ Q+ x5 L6 y
3 A2 |( i& |. D; s0 B' lNAME0=新手村 定义第一个新手村名称,其实并不读取,只是让技术员用来区别。
5 E6 j: ]7 M+ ~7 ^! U [6 DX0=178 第一个新手村X坐标# f/ z" U7 H" a: B: g2 F
Y0=238 第一个新手村Y坐标2 l6 W5 y& G/ o+ x* F( E J
SERVERID0=0 第一个新手村的地图编号,对应TGS\INIT\MAP.SDB中的编号.
1 D2 D+ z$ E H. k |