千年的服务端主要分5个程序,本文详细介绍了服务端各类重要参数的含义,方便新手GM提高对服务端参数配置和功能的认知!
! c- F l6 t, Q2 ^- Q4 U3 L9 _4 E
1 G' g! } \# C* M1:Balance 网络均衡服务器。# ]/ U4 A( u( m% r
2:DB 人物数据服务器.注意:这里不包含福袋数据和门派数据等." D$ e6 c$ Q2 z; _- E
3: GATE 网关服务器.+ k! }9 u5 C, a/ o3 Z8 t% y
4: login 登陆服务器. 帐号密码等数据在这里.- B2 a$ |2 \: G" O) _0 Y
5: TGS 游戏主服务器. 游戏大部分设置均在这里.
% T( x# |. A W& o9 b- D8 f5 G# ?2 u
下面讲下他们的工作原理.
7 I$ B( t% n8 I% o6 E3 r" Q' f; Q" ]% p% ?2 Q5 t! S
首先,玩家通过TCP协议3053端口连接到Balance服务器,当Balance接到连接命令后,6 I3 q: b9 q6 R& @+ s
将连接信息转化为UDP协议通过3030端口转到GATE服务器.简单的说Balance只是负责9 g5 S4 m& D' K5 `* h, K4 J2 {
中转.然后GATE服务器在使用TCP协议连接TGS服务器的3052端口,若TGS端口连接正常,
# r3 Z* X* O1 Q/ f/ b. w- @5 Z则返回信息到GATE,GATE再验证DB与login服务器,若连接正常,则发送信息连接成功到. z4 [9 f1 D4 I5 G. {( v j( G
客户端.3 F; }/ l6 l" \) G# D
% V( ~8 \; B0 N+ }再说服务器所牵扯的端口. (以下端口均为未修改的默认端口)
- g, e8 Z" N: s0 @) h+ z9 C8 K$ Y- S1 \3 s
Balance服务器 对外TCP协议3053 连接GATE-UDP协议3030.
6 A4 w, n* I! ~: o5 L6 d* rDB服务器 TCP协议3051连接GATE.' V0 v1 f# c# J
GATE服务器 对外端口3054-TCP协议.注意,虽然3054对外,但是直接连接3054会出现版本错误的提示.2 }0 k# p( O3 b2 A' ^
UDP协议连接balance的3030.TCP协议连接TGS服务器的3052 TCP协议连接DB的3051 TCP协议连接login
$ r7 S" S& r" ?2 C+ S. y的3050 这里最重要的一个,也是很多朋友不明白的地方,那就是paid服务器的端口,paid服务器为冲卡
9 _+ M* W$ Y9 f6 C! P验证服务器,通常做私服只需将其删除即可,也就是说并不是GATE服务器要亮4个灯才正常,这是很多朋友2 n! ~# p' W6 C2 X) C; I+ ?8 D
的误区.
' z; ^' N! j8 F7 H+ m; wlogin服务器 TCP协议连接GATE的3050
: e. P7 x, a" dTGS服务器 TCP协议连接DB的3051 其中还有一些物品记录服务器等.1 E- o1 `) }5 C8 \: n6 f
: l6 Y4 X5 w, f3 S+ X- G
' z! N7 L: E* o再讲每个服务器中的配置.. a8 }5 L1 V; ~6 k+ R4 k% |
) z$ \1 ?6 I! a1 u1 G) E, d
Balance服务器 目录中的balance.ini中配置
9 r# |: D. k; s7 x# f$ y, W/ K[BALANCE]- N" Y# K; c* K0 V1 z+ C5 _% a+ O
TCPLOCALPORT=30532 A, a, j/ W: h$ y. L9 r5 Z. D
UDPLOCALPORT=30304 `' ^3 y' ]# Z
基本不需要修改,若你想开启一机双线,那就要双开balance和GATE,% }* g! [3 X& h+ V# X+ V: E- X
若需要一机多区,就要双开balance,GATE,TGS。
6 R: C8 K, p: R3 G这也就是克星一机多区的工作原理.
) c F6 W* S1 n( W但是官方原版的balance服务器并不读取balance中的TCP协议中设置的端口,也就是你即使设置4053, h) G, s C' m) k3 ?
他一样是在3053工作.但是UDP协议中的3030是读取的,克星就是改写了balance服务器,让他可以从
6 j% O, S5 _& o# t8 j, u配置文件中读取用户所设置的端口来实现一机多区的.' D% Y( {% }' b8 d Y
如果你想不使用克星工具实现一机多区,应该做以下设置.
2 E* I( h+ y% L8 r0 n/ h复制另一份balance出来,打开balance.ini修改' E) H- l, }- ~1 U7 R0 _3 k
[BALANCE]
' R! w: J9 I' MTCPLOCALPORT=40533 U& Q4 F' U- H8 e' k) [
UDPLOCALPORT=40302 H5 S% _5 [! ^8 }6 l R
这里修改后注意GATE.ini中UDP协议3030端口为4030
( r0 [6 ], I) D& b( E6 P然后打开UE,查找ED0B修改为D50F.注意,有很多个,修改最后一个就可以了.这样他就在4053端口监听了.& S* L( h# A' e+ F
4 O: N7 F$ o* V- ~题外话:很多朋友很不理解16进制编辑.这里我给大家稍微讲一下. C2 [6 ]' Y; j# D' V
打开windows自带的计算器,选择查看-科学型,然后选择10进制
6 g: M& [3 W! Y8 U" }0 [按下3053,再选择为16进制,你会发现3053在16进制中显示为BED
% }# P, w! r5 v; `但是为什么要查找ED0B呢,因为在程序中这些东西都是反写的,4 H$ N( i' E# |; c9 t' Z
以两个字母为一个单位,也就是说假如为6D2E,你在查找是应该找2E6D$ B9 M" q* m4 F1 Z6 c$ G
若是奇数就要加一个0来补齐.
5 w( J5 d" d) H" K0 |6 F0 B, }* [! K
再来看看DB服务器。
- V* ^ m6 h6 ^3 O. q
- e! {# ]7 U/ O. K( J/ N6 T0 WDB服务器下目录比较多,我们一个个来讲/ \2 ~" p% f9 P
backup目录本身DB服务器不产生,也不在他的目录下增加任何文件,
& J! _/ M2 M* `5 ~- l根据笔者猜测,他应该官方工作人员用来备份服务器资料的一个目录.删除也没什么关系.
" ]5 l) Q! M- O+ p* Z+ Clog目录,web目录,均是记录玩家的情况
3 D, O+ t b" K- tuserdata下是记录当天上线所有玩家的资料,同时,当你点击DB服务器中的backup按钮时4 o; y- c. ]5 v
他会在这个目录中产生一个备份文件,但是这个备份文件不要当作人物资料来用,具体原因3 l) P2 m' l+ R: I7 w: V
还不太明白,只知道会导致玩家元气永远比原来差一些的问题.. M! d( G/ \' M+ k+ c; w4 \
9 d5 N1 ?, |( l9 V4 r3 Q, G
DB.exe,这个文件是DB服务器文件,没什么好讲的,说说他的按钮吧.6 i! ^0 ^* B, m0 @
reload,字面意思是重新读取,具体作用未做测试.+ A- ^8 g: K1 L! C6 l! r. B
addrecord,增加用户数量.也就是DB默认的建立最大人物资料为10000,若你服务器人气很高,! D, r! u7 r1 C% w) B
到最后玩家无法建立新角色的时候,点击这个按钮,增加数据库容量就可以了.9 s+ K5 `2 ^9 m: I
save today.sdb,存盘当天玩家上线记录.$ K* D- W9 D7 N5 M" l" j6 t( y" [( h
back up,备份数据库,备份的数据库会产生在userdata目录下.
' S* T* }# @/ i% v7 U$ E8 I
, r3 l" {. C+ e5 j. C
. }- a6 m1 h# l# DDB.ini,DB服务器配置文件.& D, W/ P, t8 x
[DB_SERVER] 明确服务器名称.# j- z7 ]9 a7 b+ E( Q5 h" P5 m% {
FileName=testdb.fdb 数据库名称.运行DB服务器后会产生一个以这个为名的数据库,但以数字区别.
' i( D' r1 u" K. W# @+ \BufferSizeS2S=1048576 数据库的规格
: {& z( w6 K0 j7 ]$ M+ T6 F5 N' v# fGateAcceptPort=3051 DB与GATE连接的端口.TCP协议.
: }4 ?8 ^3 m7 YRemotePort=1024 接收端口.应该是玩家下线后TGS与DB连接的端口.
6 Z' m' F/ ~7 iItemRemotePort=1020 似乎是物品记录端口,但是实际上物品记录端口在TGS下.- G0 G. M8 {; ^1 S7 J2 \0 c
0 q! P: r% ?0 A: g( z& u' P2 f7 c9 u$ O) e8 R! P0 A- e: G: q Q% z
IPList.txt文件.
9 `) i; U& l3 P记录远程GATE连接的IP.一般设置为127.0.0.1# V. k6 E7 s5 `' G) |( F. c9 `
( ]5 z; f: w7 x+ S- F
remoteip.txt文件. G/ b# E' W6 n* s; F1 _$ J
记录远程TGS连接的IP.一般设置为127.0.0.1
1 }) m$ r' h5 W, F$ B4 u7 u* y$ W& G q \
ModifyMagic.txt文件., k" ]1 J. |" N1 w3 l9 ~
感觉目前似乎没有用到.具体作用有待补充.
( C3 K: F# q+ E7 m0 Y2 F; {" n' [- A2 ^4 W, i9 n' C2 w
' n9 b6 m# U* S7 U6 m3 p" v$ D7 e: I' _
GATE服务器.# Z% J- j6 _7 _ I# u1 [4 J$ S7 B$ S0 |
' Q- H3 L# h }9 M R$ Z9 K- v& c
log目录,记录目录.
9 @, O( J" e( e/ P' @* L5 r1 ^: e' C
CreateChar.txt文件,定义新手出生身上所带物品,但不可定义段位,不可定义数量., T9 }& X1 \" |) t0 `' n% H
[CLOTHES], s' ]5 w" x$ n* d8 I: B- n+ ~$ v
CLOTHES_COAT_MAN=男子上衣 男子新手出生后所拥有上衣.
* v6 u5 T9 Z6 M! K8 D3 z3 ?7 x* GCLOTHES_PANTS_MAN=男子短裤 男子新手出生后所拥有的裤子.9 K' D$ t1 V6 x J9 H7 {# X7 |) d
CLOTHES_COAT_WOMAN=女子上衣 女子新手出生后所拥有上衣.* U% N/ {8 F' } H3 e" O
CLOTHES_PANTS_WOMAN=女子短裤 女子新手出生后所拥有的裤子
! F' M: d( d- M0 \+ E( m5 c0 F7 n$ C8 h& G2 X5 I5 G. h
[WEAPON]
! Q( S& u* c* d1 f. IWEAPON_SWORD=长剑 出生后拥有的剑 实际上即使不是此类物品也可以
" S. o: Q/ m" m3 \. DWEAPON_KNIFE=长刀 出生后拥有的刀 实际上即使不是此类物品也可以
) `0 }" o1 [& X: e6 N; i/ YWEAPON_SPEAR=长枪 出生后拥有的枪 实际上即使不是此类物品也可以/ o* A7 @ f/ {& u
WEAPON_AX=斧头 出生后拥有的斧 实际上即使不是此类物品也可以* h: A7 }+ `- d9 M( x3 G5 W
- h) c4 m! a) l
[ETC]
) }( h3 _$ g0 G/ t& m( }ETC_01=五色药水 新手出生后拥有的物品1.这里要说一下
4 N5 U) d, G+ F& H+ S5 x- b! J/ e, W1 i% a: M/ J7 E" _
即使你定义为没有耐久的物品,他出生后还是会有耐久的.
Z3 O5 E$ \5 ~1 u; h; X4 b- p4 q. _0 Y即使你设置了ETC_02或03或着N+1都是不读取的.如果想要他读取除非去修改GATE主程序.5 Q! H* l0 x( J2 P# n. h
! P0 p% g) J, j: a4 L( y9 l0 l* p9 _" U5 C% ~
DontChar.txt 定义不允许建立的角色名.9 ?# ?0 C/ K( O0 ~# |
; Z8 i. N$ |: L7 q+ [9 w5 X! T7 |; e
/ G+ U/ e% i2 T! Fgate.ini文件,GATE服务器配置文件.这里详细说一下.
6 o% e/ m5 D9 c! K- c! C0 D: f3 Q5 G0 v3 }
[GATE_SERVER] 定义服务器名称% K b. y: E# J
LOCALIP=127.0.0.1 定义对外IP
" Q9 n/ B8 R" ZLOCALPORT=3054 定义与balance连接的端口8 A1 `0 t/ P4 x9 w; g
LIMITUSERCOUNT=500 定义玩家最大上线允许 0为不限制." C0 ]0 d! {, {0 S5 l
CHECKPAIDINFO=FALSE 是否收费服务器.4 e( ?/ y7 @8 O0 q; m( b- C* q0 R4 U0 y
BALANCEIP=127.0.0.1 定义balance服务器IP7 D* N# R6 H# u
BALANCEPORT=3030 定义balance服务器端口.UDP协议.# `# c6 a! _) n: u" v
SERVERNAME=test 定义服务器名* o' x$ A: j6 j3 P2 `
BUFFERSIZES2S=1048576 服务器缓冲.应该是这样,若讲错请指正,不胜感激
* Q1 f G8 c8 h1 e. C7 MBUFFERSIZES2C=8192 新手村缓冲.应该是这样,若讲错请指正,不胜感激% h: E3 U( t" H, ^8 F5 b
7 @9 q6 A u7 b6 H1 D0 v" w[GAME_SERVER] 定义服务器名称
- z2 B+ m3 R& ^/ iREMOTEIP=127.0.0.1 游戏主服务器IP地址,也就是TGS的IP地址.经典的3052漏洞就是这个.
! }5 K. ]6 l; \6 l$ a% b6 ^2 R& M YREMOTEPORT=3052 游戏主服务器端口.一定要封.
- ^0 G8 o8 ]" R7 ]" \ F8 ]+ u" O. J" B% X' {) f
[DB_SERVER] 定义服务器名称
" }. D0 L7 a+ g7 \REMOTEIP=127.0.0.1 人物资料服务器IP地址,也就是DB服务器的IP地址.
- I1 r* j7 q; p" WREMOTEPORT=3051 人物资料服务器端口,一定要封.
, M' r3 b" p. Q1 o% _5 V7 M; M7 k" U1 ]
[LOGIN_SERVER] 定义服务器名称
4 y* c: Z ]4 d: s. CREMOTEIP=127.0.0.1 登陆服务器IP地址.
# F8 H7 j( ]8 p. bREMOTEPORT=3050 登陆服务器端口
8 L0 L# n9 q3 d: M
4 ^9 V% D4 i& h: s+ @[PAID_SERVER] 定义服务器名称 (通常删除)
) y/ ?0 f. Y7 E! d# j; H. V" lREMOTEIP=127.0.0.1 定义冲卡验证服务器IP地址 (通常删除)
o% E. Q0 E8 B- V/ S& e3 lREMOTEPORT=80 定义冲卡验证服务器端口 (通常删除)
$ U" ?- b$ I C* @2 v' i$ i$ i% Q
, V/ Q* Q5 P* _" L% G; R* {) ]1 k0 @2 }6 P3 v6 A! c0 `
tgs1000.acs文件。GATE的语言库。4 A2 e1 t# V# b. o
1 f/ d, e1 X9 W
Village.Ini文件。定义新手出生地图。这里讲一下。
6 s# ~3 d8 _' O& m- B" x9 k v& _/ g8 n" O
[VILLAGE] 定义配置文件名
9 u6 C( p# |+ \6 D1 R
6 V3 R5 {4 x5 N; w" b, A2 E4 L- uCOUNT=1 定义新手村可选择的数量
5 o3 P0 O _( }! f$ T2 b4 A: W% L8 ^# m. T) U& k
NAME0=新手村 定义第一个新手村名称,其实并不读取,只是让技术员用来区别。0 I: y6 m5 N3 C( Y# f
X0=178 第一个新手村X坐标
m& s- p; |5 G' BY0=238 第一个新手村Y坐标, x) M/ a6 z6 r& V
SERVERID0=0 第一个新手村的地图编号,对应TGS\INIT\MAP.SDB中的编号.
) C3 T9 c. s4 z, H7 D3 x. D |