千年的服务端主要分5个程序,本文详细介绍了服务端各类重要参数的含义,方便新手GM提高对服务端参数配置和功能的认知!* g/ y' G0 c: ]. d0 F) a- B% F
5 Y3 H# z4 o. @- k7 J1:Balance 网络均衡服务器。
5 N( w' z8 L/ X9 d2 u, _2:DB 人物数据服务器.注意:这里不包含福袋数据和门派数据等.
6 @4 K$ L0 }% ]: u- a \3: GATE 网关服务器.
: Q* u' I& H1 ^( l5 Q B7 T" I4 g. z4: login 登陆服务器. 帐号密码等数据在这里.
$ ~9 H! [* Z/ m, T1 J& p% C4 T5: TGS 游戏主服务器. 游戏大部分设置均在这里." h3 j# \; C( u. G O. x% w
+ v) {' [" s/ K' u* o
下面讲下他们的工作原理.3 U5 |7 {) f7 K* ^5 Q
% P! h/ x3 D! u, [! T
首先,玩家通过TCP协议3053端口连接到Balance服务器,当Balance接到连接命令后,4 F6 ^2 O" h9 m, A5 H
将连接信息转化为UDP协议通过3030端口转到GATE服务器.简单的说Balance只是负责
; Z+ m& d, u" i- ?& `- `中转.然后GATE服务器在使用TCP协议连接TGS服务器的3052端口,若TGS端口连接正常,
2 [- ?6 c/ _# c+ V! e7 T则返回信息到GATE,GATE再验证DB与login服务器,若连接正常,则发送信息连接成功到
4 a4 G% s0 D, R. Z9 m3 r% J客户端.
+ G/ S. x. q; y
* E n+ r, L# C ~5 x% W3 e再说服务器所牵扯的端口. (以下端口均为未修改的默认端口)
4 P2 F, c# d4 P H$ I4 u) @
* W" W( b; t% m; t, E+ H. x8 rBalance服务器 对外TCP协议3053 连接GATE-UDP协议3030.) v4 ~2 F" } d1 B/ N: j
DB服务器 TCP协议3051连接GATE. H9 r$ H- K$ }& T$ j: j" m
GATE服务器 对外端口3054-TCP协议.注意,虽然3054对外,但是直接连接3054会出现版本错误的提示.
5 E; r, K# P# i& S+ k; ]) WUDP协议连接balance的3030.TCP协议连接TGS服务器的3052 TCP协议连接DB的3051 TCP协议连接login
( U- C" f( ~& Y; D+ [, L( F的3050 这里最重要的一个,也是很多朋友不明白的地方,那就是paid服务器的端口,paid服务器为冲卡/ s& T6 X; R- V+ F
验证服务器,通常做私服只需将其删除即可,也就是说并不是GATE服务器要亮4个灯才正常,这是很多朋友
0 v8 u7 ]' ]% {+ Y的误区.
' w% {- ?- i, ^! ^7 Ylogin服务器 TCP协议连接GATE的3050' b. \4 L8 ~( B& E n5 v- _
TGS服务器 TCP协议连接DB的3051 其中还有一些物品记录服务器等.( _2 k; V- O" P: r& E. s
7 I& v, Q% i: }, c6 B; v
q8 o' ]5 h2 C. w* d再讲每个服务器中的配置.5 i, H1 H8 o; V# J
( y3 Q, u$ R! \6 F. l9 g
Balance服务器 目录中的balance.ini中配置6 L1 r& @5 {5 I- f; p# g V6 ^6 X
[BALANCE]. u( F: |* s. p# N O( l
TCPLOCALPORT=3053" F3 ~# ]: T# h& h0 p8 U
UDPLOCALPORT=3030; R H# e8 ?% s1 x& D
基本不需要修改,若你想开启一机双线,那就要双开balance和GATE,( s- T; |# V; I7 @" r
若需要一机多区,就要双开balance,GATE,TGS。
5 }$ K8 c* r# y( O( F1 p K5 T这也就是克星一机多区的工作原理." a$ M) [0 [5 _1 q# B0 n
但是官方原版的balance服务器并不读取balance中的TCP协议中设置的端口,也就是你即使设置4053: m: i' n, ^) r+ J
他一样是在3053工作.但是UDP协议中的3030是读取的,克星就是改写了balance服务器,让他可以从
: ^3 |0 g$ A- V9 C& m1 [配置文件中读取用户所设置的端口来实现一机多区的.- x" R4 z, o( J+ S* `4 g) G
如果你想不使用克星工具实现一机多区,应该做以下设置.
* G- s! F6 w: J) X: B复制另一份balance出来,打开balance.ini修改
& ^" `3 U4 M w" m% `. R[BALANCE]7 f e- k/ @9 z0 W; H+ a: L
TCPLOCALPORT=4053
6 t% \- Y6 t* I3 _( eUDPLOCALPORT=4030% C3 p- v; A( @/ ?) Q/ I
这里修改后注意GATE.ini中UDP协议3030端口为4030
8 w3 h6 Q5 |- L5 F w1 h然后打开UE,查找ED0B修改为D50F.注意,有很多个,修改最后一个就可以了.这样他就在4053端口监听了.
0 B/ u( v8 o4 y3 {0 Z; R4 {
/ Z" Q. u& F+ o- ?! R2 M2 Z题外话:很多朋友很不理解16进制编辑.这里我给大家稍微讲一下.
/ O4 `1 z f- c m8 {打开windows自带的计算器,选择查看-科学型,然后选择10进制( V- Z/ a* e$ _
按下3053,再选择为16进制,你会发现3053在16进制中显示为BED& y8 T9 U$ R2 q' l
但是为什么要查找ED0B呢,因为在程序中这些东西都是反写的,' Y. _, O6 e$ J- a$ R/ J
以两个字母为一个单位,也就是说假如为6D2E,你在查找是应该找2E6D
" J- I2 K1 K+ d1 L若是奇数就要加一个0来补齐.* `% ?8 Z2 ?& U6 R
' }% J: B+ N- K, H) Y2 u6 h. v再来看看DB服务器。# b! {+ M; v7 u, x. t) c( m6 i& e
7 r) A) D+ r) Y. vDB服务器下目录比较多,我们一个个来讲
' R$ `( j. o* b3 w7 c+ Pbackup目录本身DB服务器不产生,也不在他的目录下增加任何文件,
! }9 ]$ ^/ [7 s# |根据笔者猜测,他应该官方工作人员用来备份服务器资料的一个目录.删除也没什么关系.
* {; L% J( Q3 I/ z, \log目录,web目录,均是记录玩家的情况
6 V9 e- R0 A+ _& L9 ^: tuserdata下是记录当天上线所有玩家的资料,同时,当你点击DB服务器中的backup按钮时
6 T% @& X! S, O! ]0 z% k他会在这个目录中产生一个备份文件,但是这个备份文件不要当作人物资料来用,具体原因
1 n) [1 g7 ]# J- r还不太明白,只知道会导致玩家元气永远比原来差一些的问题.
' u$ w$ x: v% z+ ~' @- Q$ C8 \
! @& }2 h2 w$ ^( ODB.exe,这个文件是DB服务器文件,没什么好讲的,说说他的按钮吧.
0 a) B3 Z( P; j# l% o+ Creload,字面意思是重新读取,具体作用未做测试.
) [7 F7 c+ x+ S- R3 |1 c! |) s xaddrecord,增加用户数量.也就是DB默认的建立最大人物资料为10000,若你服务器人气很高,2 z: ~/ s% B/ z: |/ ?+ k1 ?
到最后玩家无法建立新角色的时候,点击这个按钮,增加数据库容量就可以了.8 a5 E+ B9 P9 K1 {
save today.sdb,存盘当天玩家上线记录.' Z# O X7 Y l- j" o. f, \
back up,备份数据库,备份的数据库会产生在userdata目录下.
/ Z" }+ M1 ~ z' D" A$ ^, C5 B" i Z2 F. P: t9 e! w
$ A" n1 z. I" [1 x, b0 V$ l7 zDB.ini,DB服务器配置文件.
) [( k: j2 j: l4 k! |[DB_SERVER] 明确服务器名称.
$ c& e5 A' R' O) u3 ^FileName=testdb.fdb 数据库名称.运行DB服务器后会产生一个以这个为名的数据库,但以数字区别.1 n) }) x5 G: g8 y$ v
BufferSizeS2S=1048576 数据库的规格8 i! b: t# [: C' f$ @1 q
GateAcceptPort=3051 DB与GATE连接的端口.TCP协议.* a. A7 ^1 ~0 j' e7 b' j8 Z
RemotePort=1024 接收端口.应该是玩家下线后TGS与DB连接的端口.
# ^# b" o$ E& F; T- |/ }: zItemRemotePort=1020 似乎是物品记录端口,但是实际上物品记录端口在TGS下. G; s8 ^, X3 X" M$ }% B/ Q" k
0 Y. s+ u- g- c( U8 ^. S+ t" x+ z" z: G' Y& x5 ~
IPList.txt文件.. e" {7 v+ ], T
记录远程GATE连接的IP.一般设置为127.0.0.1: R, O8 b; G7 v4 P8 ?
! b& ^4 @# ]7 C! Q. }0 nremoteip.txt文件.% @+ g0 n9 y3 D6 M* [% I
记录远程TGS连接的IP.一般设置为127.0.0.1
0 O; K) M3 ]* V9 X3 g6 e0 H% `5 r
& r t9 i: S- M7 g# C5 RModifyMagic.txt文件.
) y' c+ h% E% K0 X2 c- k7 l感觉目前似乎没有用到.具体作用有待补充.- J( `2 F6 M; _- R: \! E% r; [. P
3 |% l, s( i# ?& d- _8 L% L
' {; U6 S: i8 _; F4 }. a6 E6 U
GATE服务器.1 z4 M" m' N2 Y: L+ @% e3 O
) G+ k6 [2 _, f5 j. clog目录,记录目录.
; Y( u4 T* c; C6 E. V' F
2 P2 p" q: _0 _" H, XCreateChar.txt文件,定义新手出生身上所带物品,但不可定义段位,不可定义数量.2 N. \2 B8 L6 r% q9 [* T& H; B
[CLOTHES]6 K. }' R0 ]+ ]* b. m
CLOTHES_COAT_MAN=男子上衣 男子新手出生后所拥有上衣.
9 ?/ g4 J) u& `& }CLOTHES_PANTS_MAN=男子短裤 男子新手出生后所拥有的裤子.
& h+ ]. B! e9 A% i- eCLOTHES_COAT_WOMAN=女子上衣 女子新手出生后所拥有上衣.+ [- E+ y8 B8 v$ S- S* L
CLOTHES_PANTS_WOMAN=女子短裤 女子新手出生后所拥有的裤子) S# z& \7 R% U k; B9 S" r) ?! A
7 r$ x! g* q6 R |& ^[WEAPON]* i/ v- ?8 ?2 i$ a
WEAPON_SWORD=长剑 出生后拥有的剑 实际上即使不是此类物品也可以
6 l/ O4 e- \( C g8 R8 W/ `* r0 xWEAPON_KNIFE=长刀 出生后拥有的刀 实际上即使不是此类物品也可以
2 y# W, @8 a( c. p; e: M, _7 zWEAPON_SPEAR=长枪 出生后拥有的枪 实际上即使不是此类物品也可以( {" f6 a7 Z9 L; C9 o
WEAPON_AX=斧头 出生后拥有的斧 实际上即使不是此类物品也可以3 k" _ @* r2 P3 _# f# w
3 C" t# m4 {' [[ETC]' ]5 c3 z3 X0 V3 _8 p2 S1 ?# `* r
ETC_01=五色药水 新手出生后拥有的物品1.这里要说一下
; Y q0 g% x$ A c0 J. s
3 O$ W' L2 o7 J) y( }即使你定义为没有耐久的物品,他出生后还是会有耐久的., g2 A: W. @' H$ O8 l% _8 ?3 V
即使你设置了ETC_02或03或着N+1都是不读取的.如果想要他读取除非去修改GATE主程序.
4 P8 H/ ]# ~ n( i4 a3 `
) v# l" F/ a; T8 w" f: L' D! W3 T1 j# I
DontChar.txt 定义不允许建立的角色名." Z( }% Z* Z+ a; w7 ^! `; O$ w8 s
+ p2 I) b8 m/ M, m5 u- U9 x u; j/ P6 s) [
gate.ini文件,GATE服务器配置文件.这里详细说一下.
4 J' V% q# g* C$ k6 N- D. L( o
5 S& h4 z+ ^ \6 g M$ R; h0 N[GATE_SERVER] 定义服务器名称
2 A2 |4 ?7 y9 d6 }% Q9 o! y7 eLOCALIP=127.0.0.1 定义对外IP
, `# d! \, K# e& M6 QLOCALPORT=3054 定义与balance连接的端口
3 r$ n1 ?& I7 z$ r4 vLIMITUSERCOUNT=500 定义玩家最大上线允许 0为不限制.. z" d) n' Q$ Q R- r. ~8 {
CHECKPAIDINFO=FALSE 是否收费服务器.
, U [$ j" Q& ^BALANCEIP=127.0.0.1 定义balance服务器IP6 d# f' `' K6 h) @0 i) P- D
BALANCEPORT=3030 定义balance服务器端口.UDP协议.
9 z( S0 ]6 B+ FSERVERNAME=test 定义服务器名
/ Q* `) ~* M7 m: Y8 }BUFFERSIZES2S=1048576 服务器缓冲.应该是这样,若讲错请指正,不胜感激
; f( ]$ C% q6 r7 r mBUFFERSIZES2C=8192 新手村缓冲.应该是这样,若讲错请指正,不胜感激. [% A( I$ V1 |1 w6 t
7 e/ u) {2 C$ k& v[GAME_SERVER] 定义服务器名称
: {# f) B2 ~" f# u0 J5 bREMOTEIP=127.0.0.1 游戏主服务器IP地址,也就是TGS的IP地址.经典的3052漏洞就是这个.
% R, L. r1 }! ]2 k" pREMOTEPORT=3052 游戏主服务器端口.一定要封.' a [' @* Z, {4 x5 `
# N8 w& Y, y, L* {- q) X
[DB_SERVER] 定义服务器名称
9 y* e1 O j* m4 uREMOTEIP=127.0.0.1 人物资料服务器IP地址,也就是DB服务器的IP地址.
* ~) b; j+ r4 r+ o. E7 {REMOTEPORT=3051 人物资料服务器端口,一定要封.
2 c+ s5 p, A5 N! u' H. {
3 m. S( F# E$ y1 @8 s) ]; P[LOGIN_SERVER] 定义服务器名称4 I, O6 o; W7 v& ^( ?9 ?9 ~
REMOTEIP=127.0.0.1 登陆服务器IP地址.
) T; s/ v% _! j. ]2 R1 w8 vREMOTEPORT=3050 登陆服务器端口- ^. w8 u7 K9 P1 I
7 Z* ^. f4 i$ i) m& @3 x y% k[PAID_SERVER] 定义服务器名称 (通常删除)
+ Z0 M" P& t! ~/ Z2 M% n1 wREMOTEIP=127.0.0.1 定义冲卡验证服务器IP地址 (通常删除)
: j8 Z0 H$ F7 r% l$ iREMOTEPORT=80 定义冲卡验证服务器端口 (通常删除)- u0 O, [4 w9 t b
: C) d8 F9 y4 @4 |, g S
' d8 t& G& }8 S8 o$ ^/ ?1 htgs1000.acs文件。GATE的语言库。
r* k9 `9 b# X
% V7 E/ |* E" Y1 X! U& RVillage.Ini文件。定义新手出生地图。这里讲一下。
; N! A/ _1 c+ Y% G7 k( u" _ h+ r7 {5 x$ [
[VILLAGE] 定义配置文件名
0 @! K% R" Y% r& O) ~% ]
. ^# E; ~' G) X! @0 x7 R& ICOUNT=1 定义新手村可选择的数量+ S3 B* m1 ], n0 D+ h6 b9 _
. Q, y6 Z/ ]. ?NAME0=新手村 定义第一个新手村名称,其实并不读取,只是让技术员用来区别。
$ A- c, H7 N/ j/ JX0=178 第一个新手村X坐标1 f* e2 { H5 Z& w
Y0=238 第一个新手村Y坐标2 D+ `8 j7 ~& y$ R
SERVERID0=0 第一个新手村的地图编号,对应TGS\INIT\MAP.SDB中的编号. 1 R2 W1 b; ~4 s5 i0 H' `, B
|