千年的服务端主要分5个程序,本文详细介绍了服务端各类重要参数的含义,方便新手GM提高对服务端参数配置和功能的认知!
7 X) H$ |0 N5 H" f
4 e0 n. t& g. n% h, X1:Balance 网络均衡服务器。
9 r( H" \& X$ e" P: g5 u2:DB 人物数据服务器.注意:这里不包含福袋数据和门派数据等.
( b/ ~1 n; R. x# U3: GATE 网关服务器.
- T% i7 t, K4 I ?4: login 登陆服务器. 帐号密码等数据在这里.
1 W. Y4 C. ?6 H+ P5: TGS 游戏主服务器. 游戏大部分设置均在这里.
5 N) R' m. q2 R) M# U
7 O. O6 V* X4 Z' Q下面讲下他们的工作原理." E6 `' |9 T& Y' K, ?8 n. a& I
# G1 F' h+ K- w' x4 r/ W7 ~# s3 {
首先,玩家通过TCP协议3053端口连接到Balance服务器,当Balance接到连接命令后,
) s& `! L/ N; @9 ?5 H将连接信息转化为UDP协议通过3030端口转到GATE服务器.简单的说Balance只是负责
7 R. X3 {" |" w& {中转.然后GATE服务器在使用TCP协议连接TGS服务器的3052端口,若TGS端口连接正常,9 \$ z% o1 U; M" i; O* n/ s1 o
则返回信息到GATE,GATE再验证DB与login服务器,若连接正常,则发送信息连接成功到% g( U; d4 L0 g6 Q3 f
客户端.( O+ {" A: u' ?* ]) O; i, D4 u( d/ w
: \# o7 L% \0 D6 g再说服务器所牵扯的端口. (以下端口均为未修改的默认端口)
' k7 g0 E+ l, W# M& U3 M
4 T0 Y3 D+ V8 X3 b# o' G8 _Balance服务器 对外TCP协议3053 连接GATE-UDP协议3030.9 c& d& X" f2 G) B3 b6 w
DB服务器 TCP协议3051连接GATE.
) @2 {% E6 C' V D h+ rGATE服务器 对外端口3054-TCP协议.注意,虽然3054对外,但是直接连接3054会出现版本错误的提示.
( n7 H5 B+ z4 {/ oUDP协议连接balance的3030.TCP协议连接TGS服务器的3052 TCP协议连接DB的3051 TCP协议连接login e9 g! |5 ?6 U( r% l6 Q
的3050 这里最重要的一个,也是很多朋友不明白的地方,那就是paid服务器的端口,paid服务器为冲卡
1 s$ [0 F, o7 F* N; J; i' d0 \1 @验证服务器,通常做私服只需将其删除即可,也就是说并不是GATE服务器要亮4个灯才正常,这是很多朋友. K6 B3 u+ N( |% p2 ~
的误区.
: g& M7 n; W: u- q* _login服务器 TCP协议连接GATE的3050# l6 w5 D2 C- C5 W' m5 c) \( D, n! f$ ?9 M/ B
TGS服务器 TCP协议连接DB的3051 其中还有一些物品记录服务器等.
3 {1 a' z W6 _; Z
2 M, m0 W/ y4 X7 `5 J! ?" z) y
3 }; O7 ]' N9 K1 J" }再讲每个服务器中的配置.
7 G5 V+ ^! K1 X3 U% K5 @& @ v3 l- B/ U( j
Balance服务器 目录中的balance.ini中配置
& H: L8 M4 _8 {[BALANCE]
6 k, H. l Q3 v- P5 B' LTCPLOCALPORT=3053- U! G5 N2 h0 @. F+ s( o0 \+ C
UDPLOCALPORT=3030, H& A' n+ h, \ b F; W' D2 ^! H6 s8 w
基本不需要修改,若你想开启一机双线,那就要双开balance和GATE,
+ }8 W( W. c" a$ a9 E若需要一机多区,就要双开balance,GATE,TGS。
4 |# J V! ?; K( ]3 ?! F1 y$ C这也就是克星一机多区的工作原理.# E% ~. @8 V$ p; b) S
但是官方原版的balance服务器并不读取balance中的TCP协议中设置的端口,也就是你即使设置4053- _' q$ }% i5 h0 b
他一样是在3053工作.但是UDP协议中的3030是读取的,克星就是改写了balance服务器,让他可以从( P. x& x( ^4 @9 g; ?3 j
配置文件中读取用户所设置的端口来实现一机多区的.: Q3 C Q" i! t& K4 s2 }/ ?
如果你想不使用克星工具实现一机多区,应该做以下设置.
. J% O3 g; y6 f/ Z复制另一份balance出来,打开balance.ini修改
% u h$ x E4 M) V- E8 F[BALANCE]0 @8 z1 o2 i) F# V5 H, M9 `
TCPLOCALPORT=4053
+ d! ^' E2 y3 UUDPLOCALPORT=4030* p2 Z4 ]. k. u$ f" Q& C6 s: A
这里修改后注意GATE.ini中UDP协议3030端口为4030) m: z/ A+ `# l! A- Q; q6 T
然后打开UE,查找ED0B修改为D50F.注意,有很多个,修改最后一个就可以了.这样他就在4053端口监听了.
5 \: v. a0 M1 p3 q' G, P/ r5 m t m7 A5 P9 Q' W* A4 b
题外话:很多朋友很不理解16进制编辑.这里我给大家稍微讲一下.' o7 ~9 E. P$ J* K! f; r' b7 Y/ a
打开windows自带的计算器,选择查看-科学型,然后选择10进制
+ u# @" g. b. U. x按下3053,再选择为16进制,你会发现3053在16进制中显示为BED* t8 d4 g4 Q& o, A; q5 y% J
但是为什么要查找ED0B呢,因为在程序中这些东西都是反写的,
/ Z) W/ j- @4 F4 j, j1 b以两个字母为一个单位,也就是说假如为6D2E,你在查找是应该找2E6D9 W! q: M, V/ U$ i \$ V
若是奇数就要加一个0来补齐.
! K ^& E; ~1 w6 J* `0 y) R1 C" l7 X& ^3 P3 l* D z
再来看看DB服务器。
9 c- ], x( ?: g" S& y# Y% f* \$ K
DB服务器下目录比较多,我们一个个来讲8 n- E$ _1 u; m$ L' R" o. k
backup目录本身DB服务器不产生,也不在他的目录下增加任何文件,! j6 V7 D. @3 O* u4 \0 G; ?8 d
根据笔者猜测,他应该官方工作人员用来备份服务器资料的一个目录.删除也没什么关系.6 W6 C% U m6 Z$ m/ k! ?6 X3 y# R# f
log目录,web目录,均是记录玩家的情况
0 ^! u: K; q4 E0 C# f4 T& @userdata下是记录当天上线所有玩家的资料,同时,当你点击DB服务器中的backup按钮时% O) J' i6 F$ b; B# Y
他会在这个目录中产生一个备份文件,但是这个备份文件不要当作人物资料来用,具体原因- U1 A- k/ {9 ?. @/ a) b* o0 H" T. w
还不太明白,只知道会导致玩家元气永远比原来差一些的问题.
3 m4 i# O- f7 r* N8 _
& j' K$ M- k( M! l/ a$ ]) mDB.exe,这个文件是DB服务器文件,没什么好讲的,说说他的按钮吧.
3 p5 D6 K: m0 }reload,字面意思是重新读取,具体作用未做测试.
/ X5 G; M4 w: g2 n* Taddrecord,增加用户数量.也就是DB默认的建立最大人物资料为10000,若你服务器人气很高,% e, I2 j' G3 a
到最后玩家无法建立新角色的时候,点击这个按钮,增加数据库容量就可以了.- ^- Z5 x9 O D' M
save today.sdb,存盘当天玩家上线记录.+ q6 V# F0 ^8 H
back up,备份数据库,备份的数据库会产生在userdata目录下.) ?1 S% V. D8 b# } R
) }3 Z; d; F- E3 c8 Z+ ]9 W" i
( t" D9 n' t6 N5 E' O, ]
DB.ini,DB服务器配置文件.& d- ], b2 D3 X$ ?. a+ v" r
[DB_SERVER] 明确服务器名称.! [0 k" v( x3 k; A8 T- J
FileName=testdb.fdb 数据库名称.运行DB服务器后会产生一个以这个为名的数据库,但以数字区别.
) X/ x b* _) c$ z: uBufferSizeS2S=1048576 数据库的规格, N2 h: l) r# n. F4 q
GateAcceptPort=3051 DB与GATE连接的端口.TCP协议.
- C$ U9 B7 o8 Z/ rRemotePort=1024 接收端口.应该是玩家下线后TGS与DB连接的端口.
C; x+ l/ }1 a# n. a' A% p5 vItemRemotePort=1020 似乎是物品记录端口,但是实际上物品记录端口在TGS下.
; H8 E7 V$ ]6 m/ h
* E a3 b( p) s1 w2 M% D( a) S
IPList.txt文件.
{/ T$ F7 l0 Q. b, K" c9 v记录远程GATE连接的IP.一般设置为127.0.0.1- @0 ` `& C6 x5 g4 v0 K2 t! {
( A. N1 a S$ h" j. ^- Uremoteip.txt文件.
# ?( c- D+ _4 K( u记录远程TGS连接的IP.一般设置为127.0.0.1
0 z& p) P/ ^1 |2 `+ ~' ~1 h2 |5 T" ^! \ }1 d$ w
ModifyMagic.txt文件.
3 m2 A0 _$ J, ` M. t# | n感觉目前似乎没有用到.具体作用有待补充.. n. G' N( R9 {6 ^
$ f- ^1 r W! N) }( {2 ]; x9 ]
8 y% T. y/ o9 F$ D; Q% x& K; |. J1 w$ b: P# `3 F4 J# `
GATE服务器.- J# K: m, G, [ l1 j2 z
+ B" T ]. Q( C2 Hlog目录,记录目录.
+ @! U2 x* W6 A8 l# K
, ?+ I/ C: R8 N3 M y6 k+ J) M" YCreateChar.txt文件,定义新手出生身上所带物品,但不可定义段位,不可定义数量., y0 r6 R: s( M; n, l
[CLOTHES]
; c# k6 g; P: U, nCLOTHES_COAT_MAN=男子上衣 男子新手出生后所拥有上衣.
0 _* ]6 K0 H, N3 JCLOTHES_PANTS_MAN=男子短裤 男子新手出生后所拥有的裤子.
: |6 T1 B+ U$ \2 N& Z! NCLOTHES_COAT_WOMAN=女子上衣 女子新手出生后所拥有上衣.
) L, M: D1 s' t; uCLOTHES_PANTS_WOMAN=女子短裤 女子新手出生后所拥有的裤子1 y/ N5 o; @; e4 d- k/ D
2 J' J% U: n: Q: K, q
[WEAPON]
0 ]% ~& Q3 i( A3 k9 U; i: EWEAPON_SWORD=长剑 出生后拥有的剑 实际上即使不是此类物品也可以
* F! ~( ]( X& B2 ^ Z wWEAPON_KNIFE=长刀 出生后拥有的刀 实际上即使不是此类物品也可以
! L+ P& ]. a' y0 `' VWEAPON_SPEAR=长枪 出生后拥有的枪 实际上即使不是此类物品也可以6 X8 u' B, ?: T% h* z
WEAPON_AX=斧头 出生后拥有的斧 实际上即使不是此类物品也可以- ^8 G0 d; Z k# g# |
3 [# B7 l8 j8 W# t% P0 q: j[ETC]
/ D. z1 Y, q8 B1 m' XETC_01=五色药水 新手出生后拥有的物品1.这里要说一下- J; ?" ~9 i0 {$ Y$ j9 @' z: C
7 j+ ]! H3 i2 I1 @$ C7 t
即使你定义为没有耐久的物品,他出生后还是会有耐久的.
3 M w( H9 L- h% \8 J3 j即使你设置了ETC_02或03或着N+1都是不读取的.如果想要他读取除非去修改GATE主程序.0 }$ x" L) G) p! ~" e0 X
0 A7 O; f0 J: D
6 F2 A- |6 _& K4 j9 H9 gDontChar.txt 定义不允许建立的角色名.5 s9 L7 ]4 N) U$ x- {
5 [0 D+ Q, j$ Z* f8 z3 F
. d* t5 k( N1 Tgate.ini文件,GATE服务器配置文件.这里详细说一下.
! ~# t1 D- ? G2 y3 a( b7 I7 V8 X+ S, B- B3 J0 X. u
[GATE_SERVER] 定义服务器名称
) Q$ q; ]1 |( z- ILOCALIP=127.0.0.1 定义对外IP
; o. u( D% u/ G/ k: u3 c- pLOCALPORT=3054 定义与balance连接的端口$ a B; l8 j7 n6 T8 i
LIMITUSERCOUNT=500 定义玩家最大上线允许 0为不限制.
; J( r, G5 w; N( A' iCHECKPAIDINFO=FALSE 是否收费服务器.- w, t" y' k1 S, C! G
BALANCEIP=127.0.0.1 定义balance服务器IP- P9 B3 _7 V, E/ c m: C. |2 O T
BALANCEPORT=3030 定义balance服务器端口.UDP协议.3 F4 I7 H l- Y- x
SERVERNAME=test 定义服务器名
, C6 x$ H! l+ J% S: @+ J3 hBUFFERSIZES2S=1048576 服务器缓冲.应该是这样,若讲错请指正,不胜感激
$ g5 S" M7 N8 aBUFFERSIZES2C=8192 新手村缓冲.应该是这样,若讲错请指正,不胜感激
( v" ?+ e) H8 ~9 c& n, [! B
6 f% ]" b" Y/ [( j# |& a0 w[GAME_SERVER] 定义服务器名称
3 w/ X0 r4 `6 w1 T9 K- @6 PREMOTEIP=127.0.0.1 游戏主服务器IP地址,也就是TGS的IP地址.经典的3052漏洞就是这个.
( o% t/ z/ e$ w8 \REMOTEPORT=3052 游戏主服务器端口.一定要封.
1 f4 ~8 t5 j; t% S- E% f: i# p! A3 q0 F2 w0 ?
[DB_SERVER] 定义服务器名称
m. r6 M( R/ M4 S* QREMOTEIP=127.0.0.1 人物资料服务器IP地址,也就是DB服务器的IP地址.
* c3 ~7 h* [: l/ r( f% t# ^% X1 tREMOTEPORT=3051 人物资料服务器端口,一定要封.% ^- u: r! ?& G, i. [
& ?+ d7 x2 l! ^, S, ^, {
[LOGIN_SERVER] 定义服务器名称
9 r4 `, U; f# A+ w1 xREMOTEIP=127.0.0.1 登陆服务器IP地址.
7 U& v' {8 \2 k% aREMOTEPORT=3050 登陆服务器端口- q$ B9 Y+ Y; k9 @- z3 H$ F
9 u7 N8 @ {$ ]) u$ b4 ?[PAID_SERVER] 定义服务器名称 (通常删除)7 v' D7 K9 A7 [
REMOTEIP=127.0.0.1 定义冲卡验证服务器IP地址 (通常删除)# I! o! L/ h+ o$ k& N" k3 t4 F- \
REMOTEPORT=80 定义冲卡验证服务器端口 (通常删除)& }1 o$ C% C w
! v: F" x9 i" l7 [5 b
0 s3 L$ D6 |$ i3 xtgs1000.acs文件。GATE的语言库。
6 L2 \& Y# _9 L$ |# ^
. B" E1 K) u: s2 }* ]Village.Ini文件。定义新手出生地图。这里讲一下。- V6 F7 |! z; f: F3 H" V, K
* S6 n) s% G) y, {
[VILLAGE] 定义配置文件名, g4 `2 v0 I" K; H, t
- H7 B: r9 U* ^; U9 W+ m- J
COUNT=1 定义新手村可选择的数量8 h! z d/ ?- F1 w) F! S
* ]# e) d3 R5 bNAME0=新手村 定义第一个新手村名称,其实并不读取,只是让技术员用来区别。
7 `' `2 f9 F% z% f+ ^X0=178 第一个新手村X坐标# y L5 P3 J0 |8 R
Y0=238 第一个新手村Y坐标1 D) v' J" j8 }* f+ S+ S
SERVERID0=0 第一个新手村的地图编号,对应TGS\INIT\MAP.SDB中的编号. 8 ^+ A% X: y: } P# R
|