千年的服务端主要分5个程序,本文详细介绍了服务端各类重要参数的含义,方便新手GM提高对服务端参数配置和功能的认知!& ~# n) z: a6 E4 }# ]! t
4 L9 H7 z. D$ j2 q
1:Balance 网络均衡服务器。' f& l. F: i0 o2 P# z6 V# u$ x
2:DB 人物数据服务器.注意:这里不包含福袋数据和门派数据等.
! u, f2 a' A8 e3: GATE 网关服务器.
( I9 I5 m; U( d3 }0 F4: login 登陆服务器. 帐号密码等数据在这里.% ?) F& z) O: ?$ k
5: TGS 游戏主服务器. 游戏大部分设置均在这里.) ]6 v* s9 c# n- Z. s, D3 L
% I7 @) N" Z5 V6 M% V9 G下面讲下他们的工作原理.: } ^9 ]; K, v5 z8 _
3 E8 B0 L1 d: U% f首先,玩家通过TCP协议3053端口连接到Balance服务器,当Balance接到连接命令后,
9 [1 p; v. H2 o% @& j2 B8 s7 y将连接信息转化为UDP协议通过3030端口转到GATE服务器.简单的说Balance只是负责5 W: N f0 S! g
中转.然后GATE服务器在使用TCP协议连接TGS服务器的3052端口,若TGS端口连接正常,& D+ Q3 C/ A( J( T
则返回信息到GATE,GATE再验证DB与login服务器,若连接正常,则发送信息连接成功到
7 n6 p+ ]# P3 j# G4 l7 j" ^& k客户端.; }5 P' v0 g; o: D, T) K+ [
5 P/ G7 Z w- x7 T& M- h! Y
再说服务器所牵扯的端口. (以下端口均为未修改的默认端口)
2 U1 R9 J- h* X# l+ K. S
9 R, o5 m9 w% ~6 n/ x3 ?Balance服务器 对外TCP协议3053 连接GATE-UDP协议3030.5 d6 k: U% M$ `% i5 L
DB服务器 TCP协议3051连接GATE.& {& t M) `4 G# G7 Z: ^
GATE服务器 对外端口3054-TCP协议.注意,虽然3054对外,但是直接连接3054会出现版本错误的提示.4 c5 d# `5 q1 L; f
UDP协议连接balance的3030.TCP协议连接TGS服务器的3052 TCP协议连接DB的3051 TCP协议连接login
1 U) P9 d3 V* \) G' @/ {. L的3050 这里最重要的一个,也是很多朋友不明白的地方,那就是paid服务器的端口,paid服务器为冲卡* C, y. t+ e, h9 u, U; H
验证服务器,通常做私服只需将其删除即可,也就是说并不是GATE服务器要亮4个灯才正常,这是很多朋友
- C5 f( I0 ? b) W的误区.
, v( h/ W' R) ]/ `6 ?. {% d$ J+ Ylogin服务器 TCP协议连接GATE的3050
( P: ?* P4 s% C% h6 B7 }- PTGS服务器 TCP协议连接DB的3051 其中还有一些物品记录服务器等.% @2 m. d# l/ s( |3 h$ d3 b
) J2 S/ Z, g: z8 q" x
, H1 d1 }: p! S8 ^
再讲每个服务器中的配置.
* w8 D3 Q" |& {/ ~" b1 w% \3 H. }( u3 m+ T# o" t0 `2 W
Balance服务器 目录中的balance.ini中配置
! O: f$ n5 b$ _[BALANCE]& ^$ T/ T& X h) u! A) K
TCPLOCALPORT=30539 o, e- l9 L0 a4 H
UDPLOCALPORT=3030# D+ L7 e6 c" w3 N& U
基本不需要修改,若你想开启一机双线,那就要双开balance和GATE,! \1 a6 E" V$ I) \
若需要一机多区,就要双开balance,GATE,TGS。2 C5 M( j* ~. ~: j; D3 Q0 u
这也就是克星一机多区的工作原理.
. U0 t: V* x( k1 K i$ a但是官方原版的balance服务器并不读取balance中的TCP协议中设置的端口,也就是你即使设置4053
& [$ H+ u; ~! b! _) m9 l* J$ `: _, p他一样是在3053工作.但是UDP协议中的3030是读取的,克星就是改写了balance服务器,让他可以从$ T: n1 w2 n) R! b4 Q" G
配置文件中读取用户所设置的端口来实现一机多区的.
7 q8 Z3 u8 a( ~如果你想不使用克星工具实现一机多区,应该做以下设置.
7 H, o4 S( V7 t1 M3 f2 d复制另一份balance出来,打开balance.ini修改
0 w7 T$ Y5 u7 \8 T1 M[BALANCE]
7 Y7 H+ _% U4 P {TCPLOCALPORT=4053
) s* h! A- x3 `0 UUDPLOCALPORT=4030* u5 ~6 J% ]' c% I$ |' I
这里修改后注意GATE.ini中UDP协议3030端口为4030
) A1 \7 F0 W, ?$ Y, u2 \然后打开UE,查找ED0B修改为D50F.注意,有很多个,修改最后一个就可以了.这样他就在4053端口监听了.
. z) a n; u; ]/ E) M3 @/ [9 r7 q4 M- K
题外话:很多朋友很不理解16进制编辑.这里我给大家稍微讲一下.
5 }2 v0 U. h) s! Y* }打开windows自带的计算器,选择查看-科学型,然后选择10进制; W* T: y% R4 S1 Y. @% N6 _$ l/ \
按下3053,再选择为16进制,你会发现3053在16进制中显示为BED' J2 }( l( F% n3 N- s
但是为什么要查找ED0B呢,因为在程序中这些东西都是反写的,
8 ]' ?( v+ f1 e0 r7 c5 g以两个字母为一个单位,也就是说假如为6D2E,你在查找是应该找2E6D; K& o7 N$ r: [* D2 s* M5 c
若是奇数就要加一个0来补齐.
1 \% M# Y. b/ Z/ k, K+ _1 S& f9 a* m0 x9 _" h: @2 S$ y
再来看看DB服务器。; H: L$ [5 J2 R4 m. n, C- S
( i( n n8 [, i: Y- ]
DB服务器下目录比较多,我们一个个来讲' x# B. ~) ], `+ L+ {+ p" V
backup目录本身DB服务器不产生,也不在他的目录下增加任何文件,. L, _) \1 @4 A% c' S
根据笔者猜测,他应该官方工作人员用来备份服务器资料的一个目录.删除也没什么关系.
! T) m* Y" a; E3 P, J+ h b3 B) Glog目录,web目录,均是记录玩家的情况0 R- E# p5 j9 S% N ~" ^' H* X5 O
userdata下是记录当天上线所有玩家的资料,同时,当你点击DB服务器中的backup按钮时3 Y4 g/ t4 [" b& Y% Y' I
他会在这个目录中产生一个备份文件,但是这个备份文件不要当作人物资料来用,具体原因" N. s1 n! h# z1 h
还不太明白,只知道会导致玩家元气永远比原来差一些的问题.( u/ [* y/ s- {* P- |: n; N
* F0 m6 I! D4 m1 F2 _5 }$ TDB.exe,这个文件是DB服务器文件,没什么好讲的,说说他的按钮吧.) i; h: m! x! f* Y
reload,字面意思是重新读取,具体作用未做测试.& a J6 |- I: D3 R3 W: F& |
addrecord,增加用户数量.也就是DB默认的建立最大人物资料为10000,若你服务器人气很高,, {, u! ^, Z4 b8 F K* }2 r
到最后玩家无法建立新角色的时候,点击这个按钮,增加数据库容量就可以了. d: O. c+ }" ~4 ]/ d9 O$ }
save today.sdb,存盘当天玩家上线记录.
* a" @" k( A7 R$ {6 A9 i L( aback up,备份数据库,备份的数据库会产生在userdata目录下.
7 K; b0 f. L, c* ]( ?" r, E
3 a. K7 Y& W2 m% v0 C8 [; y2 y8 @3 K/ Z) C; T$ I
DB.ini,DB服务器配置文件.1 S; e! X t* f8 ?0 y6 w7 N
[DB_SERVER] 明确服务器名称.! u( Y9 i. p# W% P
FileName=testdb.fdb 数据库名称.运行DB服务器后会产生一个以这个为名的数据库,但以数字区别.
+ \1 q" W! w* ]( d2 x" u) TBufferSizeS2S=1048576 数据库的规格- H8 t& S+ M0 K
GateAcceptPort=3051 DB与GATE连接的端口.TCP协议.
3 N4 ^: [6 q7 d) bRemotePort=1024 接收端口.应该是玩家下线后TGS与DB连接的端口., ^3 j2 e2 s6 C" \ n: [! \% v
ItemRemotePort=1020 似乎是物品记录端口,但是实际上物品记录端口在TGS下.6 L$ X1 K2 w+ E7 r( A; F
' E7 i( `0 ?% t: J; a
0 U. S" j* V! F8 F. NIPList.txt文件.
( W I0 d' p( {+ w$ O) X$ K0 u记录远程GATE连接的IP.一般设置为127.0.0.14 U3 @! D$ z- Y$ h8 ]9 ?. k) F8 w
, u/ F) P, z0 q- e8 S
remoteip.txt文件.% t( ^" M2 J( m, S( [: c+ d% K4 X
记录远程TGS连接的IP.一般设置为127.0.0.1
# ?- {" R# w4 ]* H5 b: F
' e2 y2 ]; ^; I- CModifyMagic.txt文件.
; | Y. q3 h3 B4 }6 C. L5 j感觉目前似乎没有用到.具体作用有待补充.& ~9 @' B/ P/ Y' e3 X1 F) }- a( D
( J W6 o$ K. T9 H" ~% P) @8 a$ _5 _2 Y0 W6 \' f5 y: K5 b9 O
" `2 M' x, B/ LGATE服务器.
% o" g5 m$ q7 N/ r5 |$ o7 M5 r& |3 T2 ~7 O, K$ b! M# b
log目录,记录目录.# q6 \# u8 i- D
0 b+ `2 e6 e% e% }- \1 ICreateChar.txt文件,定义新手出生身上所带物品,但不可定义段位,不可定义数量.2 M* x; w# S. U$ M1 J1 ^5 R
[CLOTHES]& @; y q4 n. N) J' J* e- b3 N
CLOTHES_COAT_MAN=男子上衣 男子新手出生后所拥有上衣.# v7 f7 s- x7 z8 B9 f5 s
CLOTHES_PANTS_MAN=男子短裤 男子新手出生后所拥有的裤子.* d+ |% p' C$ M/ Q- h9 o
CLOTHES_COAT_WOMAN=女子上衣 女子新手出生后所拥有上衣.* M' _' J; [! ~, g; [5 P( s
CLOTHES_PANTS_WOMAN=女子短裤 女子新手出生后所拥有的裤子3 i7 }- \8 w" e% n& j
$ u1 R* Q) Y% i, k9 q* g" N2 j[WEAPON]4 G- h$ H$ N. S3 H L" F
WEAPON_SWORD=长剑 出生后拥有的剑 实际上即使不是此类物品也可以
/ K/ _! R# b; e. p$ H, j0 lWEAPON_KNIFE=长刀 出生后拥有的刀 实际上即使不是此类物品也可以
8 ~9 @0 r/ R' U# ?! rWEAPON_SPEAR=长枪 出生后拥有的枪 实际上即使不是此类物品也可以" C/ U# U% P/ n
WEAPON_AX=斧头 出生后拥有的斧 实际上即使不是此类物品也可以, Z* z0 T4 `, |0 k2 }
2 v' q9 c$ z% T; p) H$ a( P0 |0 q: C
[ETC]
& Y( ^! P0 ^9 _+ q1 N }* S2 r7 k6 WETC_01=五色药水 新手出生后拥有的物品1.这里要说一下
! f! _ E% s K9 U( `" g, C) z' f
6 D5 z! }/ l. I- v4 u* [6 ~7 k即使你定义为没有耐久的物品,他出生后还是会有耐久的. ?& h# U6 Q/ G" {0 [5 U* g8 u! c
即使你设置了ETC_02或03或着N+1都是不读取的.如果想要他读取除非去修改GATE主程序.
4 r3 ?! R. I/ d! S# Y
" k2 j% ?, s/ d0 U+ d7 F9 L6 O, I" G/ j$ Z' W5 r
DontChar.txt 定义不允许建立的角色名.. J$ C. P1 D$ g" B5 O5 O
% x4 A( M @. l: n
5 [+ P4 m* K r$ r' h
gate.ini文件,GATE服务器配置文件.这里详细说一下. z( I# x2 N4 M' Z0 w; o
; F8 I# {% L1 ]. F0 z) G; i[GATE_SERVER] 定义服务器名称
( q! g6 q |! h' Q" e6 d- OLOCALIP=127.0.0.1 定义对外IP
* G9 T* m0 E: \% i2 {2 ULOCALPORT=3054 定义与balance连接的端口
) P$ N* E* i2 ]* A0 |LIMITUSERCOUNT=500 定义玩家最大上线允许 0为不限制.1 g! |5 a5 Q/ P+ \
CHECKPAIDINFO=FALSE 是否收费服务器.. p( Y% T, v( V! H+ G* e
BALANCEIP=127.0.0.1 定义balance服务器IP7 X/ @2 j/ w m
BALANCEPORT=3030 定义balance服务器端口.UDP协议.
8 N% \. v, O1 v9 ]; ESERVERNAME=test 定义服务器名( U. N' ?& b" E; U
BUFFERSIZES2S=1048576 服务器缓冲.应该是这样,若讲错请指正,不胜感激
& G0 e/ B( _4 _BUFFERSIZES2C=8192 新手村缓冲.应该是这样,若讲错请指正,不胜感激# l! p0 |3 J6 d4 r. p
* j+ T m" U6 _* x* O[GAME_SERVER] 定义服务器名称
. n4 Z6 N# D- K8 Y! d' ~REMOTEIP=127.0.0.1 游戏主服务器IP地址,也就是TGS的IP地址.经典的3052漏洞就是这个.- U g. I5 G8 P# X8 N" t( @3 Y# m
REMOTEPORT=3052 游戏主服务器端口.一定要封.3 L; j! w: |4 C6 s6 Y7 ~
7 g+ y/ R# J/ ~* }2 e R$ D9 Y[DB_SERVER] 定义服务器名称- o$ J8 d# b7 ^! ]/ R+ b4 T: m
REMOTEIP=127.0.0.1 人物资料服务器IP地址,也就是DB服务器的IP地址.
- F1 G+ v; z) N5 _REMOTEPORT=3051 人物资料服务器端口,一定要封./ b2 b2 E& I, N: x8 X( g% [5 b
& T; S% I! ]7 i* @ H& P
[LOGIN_SERVER] 定义服务器名称! w, r% c2 B3 `
REMOTEIP=127.0.0.1 登陆服务器IP地址.
) [- g B- M6 o3 K9 z: b2 c& h" LREMOTEPORT=3050 登陆服务器端口
J6 @/ @- _% u# V
4 b- `* l0 D0 S' K) G[PAID_SERVER] 定义服务器名称 (通常删除)
5 d! `5 q) X* Y. K" wREMOTEIP=127.0.0.1 定义冲卡验证服务器IP地址 (通常删除)
/ y0 L/ f# u6 j& JREMOTEPORT=80 定义冲卡验证服务器端口 (通常删除)5 N9 j. j9 X, F. n
6 ~$ h5 G* d7 k# W, b/ Q* k4 S4 ^, e9 w
tgs1000.acs文件。GATE的语言库。' v! O0 @: k4 H- C; f; L6 x( p
7 A% B$ o- k# v V3 G0 J3 KVillage.Ini文件。定义新手出生地图。这里讲一下。5 W! S& q2 l* B& F# m! ], J
; G3 C) e. R7 {* e[VILLAGE] 定义配置文件名
- e4 r7 N! i6 a+ U3 X; o- `
: M9 ~4 M, V- ]& ~COUNT=1 定义新手村可选择的数量
6 f5 l- i- k" g8 u- O) K) w5 R% V. g1 r# W( \+ w
NAME0=新手村 定义第一个新手村名称,其实并不读取,只是让技术员用来区别。
# w1 ]2 b. N7 f7 e+ dX0=178 第一个新手村X坐标6 _% i1 R# o% ^+ L
Y0=238 第一个新手村Y坐标2 @$ p" l. k0 d+ l* O2 h" D
SERVERID0=0 第一个新手村的地图编号,对应TGS\INIT\MAP.SDB中的编号.
4 T6 A) T8 B( g5 J |