千年的服务端主要分5个程序,本文详细介绍了服务端各类重要参数的含义,方便新手GM提高对服务端参数配置和功能的认知!1 ^. N0 Y. M% [; Z1 _* o) T6 h+ q6 s
" p: U/ R( Q! E# r; F$ H
1:Balance 网络均衡服务器。
. d) k, t9 \6 x0 B# r" t2 Y2:DB 人物数据服务器.注意:这里不包含福袋数据和门派数据等.2 K' [% d$ X3 t) F8 l" P
3: GATE 网关服务器./ K3 E4 D/ J( Z
4: login 登陆服务器. 帐号密码等数据在这里.) \4 ^6 A. n2 |1 {8 L. l' U
5: TGS 游戏主服务器. 游戏大部分设置均在这里.% y7 q7 O, E$ @0 [" P1 n
' V! ~! r( m3 {1 j# D% H下面讲下他们的工作原理.
0 N/ S1 n$ n: Q- f2 x# o
% m0 U: O6 x4 e5 {首先,玩家通过TCP协议3053端口连接到Balance服务器,当Balance接到连接命令后,9 E/ m4 f& x3 I
将连接信息转化为UDP协议通过3030端口转到GATE服务器.简单的说Balance只是负责/ G# X* w; B1 k3 G7 Y7 Z, C. Z0 E
中转.然后GATE服务器在使用TCP协议连接TGS服务器的3052端口,若TGS端口连接正常,
2 Q! j3 ]9 N0 n2 \- J则返回信息到GATE,GATE再验证DB与login服务器,若连接正常,则发送信息连接成功到+ q7 a" w9 q2 \# p+ ~7 D) n2 f- }* o
客户端.
: w2 M$ f: W$ @3 ~1 K. V# l. U3 L
; x8 `. a( @3 x$ J; K- Y1 N5 E再说服务器所牵扯的端口. (以下端口均为未修改的默认端口)
& H$ p' j7 S* {- D* L! E; R% q& m2 @0 y1 U' ^
Balance服务器 对外TCP协议3053 连接GATE-UDP协议3030.
, }/ R5 L: [ ]DB服务器 TCP协议3051连接GATE.
8 R9 q* t% T: hGATE服务器 对外端口3054-TCP协议.注意,虽然3054对外,但是直接连接3054会出现版本错误的提示.7 p% Z: H. J% N
UDP协议连接balance的3030.TCP协议连接TGS服务器的3052 TCP协议连接DB的3051 TCP协议连接login' b( L1 p9 Z# O
的3050 这里最重要的一个,也是很多朋友不明白的地方,那就是paid服务器的端口,paid服务器为冲卡
' E0 t2 M) o* L( L验证服务器,通常做私服只需将其删除即可,也就是说并不是GATE服务器要亮4个灯才正常,这是很多朋友
) W0 s- q& e* v+ x的误区.- r, P$ J. M; l9 g- E$ b) ~
login服务器 TCP协议连接GATE的30504 O, ~9 a5 C4 T7 t2 m1 {, v
TGS服务器 TCP协议连接DB的3051 其中还有一些物品记录服务器等.5 l# x9 Y4 \* H. H3 q$ f" d
+ Z/ U: R8 f$ F/ H* `3 I- r% w
4 f: M5 H* F$ W% _+ k1 M* t5 z再讲每个服务器中的配置.
- N0 g3 K' t, L" d8 V3 E
+ n0 G. V" E. O% K5 Z2 EBalance服务器 目录中的balance.ini中配置6 W0 x8 }7 @# l. n
[BALANCE]
/ W! T y9 z+ K9 l; g" {0 r& i! nTCPLOCALPORT=3053% A9 C& Y8 e V j, T h# E
UDPLOCALPORT=3030
* W3 [3 N/ E2 E9 t7 ?0 L, `基本不需要修改,若你想开启一机双线,那就要双开balance和GATE,
6 w1 t' L' T6 S; P若需要一机多区,就要双开balance,GATE,TGS。+ h2 q5 v' y" ?" @) {1 z& R L
这也就是克星一机多区的工作原理.
4 }6 [, F% z/ n) j( t5 B但是官方原版的balance服务器并不读取balance中的TCP协议中设置的端口,也就是你即使设置4053. H$ r! y, \) c" X# v$ y. o
他一样是在3053工作.但是UDP协议中的3030是读取的,克星就是改写了balance服务器,让他可以从
& M! f5 ^( \- s6 X2 {5 C配置文件中读取用户所设置的端口来实现一机多区的.. x2 r0 J" ^+ V3 j( n* X {
如果你想不使用克星工具实现一机多区,应该做以下设置.3 l+ f0 [0 Q) d! j+ c- o
复制另一份balance出来,打开balance.ini修改
# k" r$ T! }! w$ o+ C$ q" O5 s; ]( t[BALANCE]
* L4 r0 b: |" I. {8 BTCPLOCALPORT=4053
: U! K: v/ y* ?% h' x2 f( sUDPLOCALPORT=4030
9 U, W6 i. X' g B这里修改后注意GATE.ini中UDP协议3030端口为4030
! R" ]7 b" ?5 l( a7 G然后打开UE,查找ED0B修改为D50F.注意,有很多个,修改最后一个就可以了.这样他就在4053端口监听了.7 Y7 ^( l0 u/ _6 i% f7 f: i! I
( z1 U8 q- s* X+ V% B题外话:很多朋友很不理解16进制编辑.这里我给大家稍微讲一下.+ I {( _9 `- I3 r) L D
打开windows自带的计算器,选择查看-科学型,然后选择10进制* Q( q: u9 E/ x1 U; [' m
按下3053,再选择为16进制,你会发现3053在16进制中显示为BED
$ F& Z1 m/ W7 Q+ q* `但是为什么要查找ED0B呢,因为在程序中这些东西都是反写的,
& @) c( Y8 D( [1 g$ z. N. x以两个字母为一个单位,也就是说假如为6D2E,你在查找是应该找2E6D2 ], ?0 F/ P! k/ C! C
若是奇数就要加一个0来补齐.
( B8 z, c4 `& _) a$ Q4 [* N; I. Q1 l7 O2 y( s
再来看看DB服务器。# Z, Z) g3 F% ~$ Q- c% r; r& h" o' e
8 ^) @6 s% S w8 q6 |3 W
DB服务器下目录比较多,我们一个个来讲/ l: T& W, b4 A8 x9 ]
backup目录本身DB服务器不产生,也不在他的目录下增加任何文件,
" D8 H; e: j% l3 i根据笔者猜测,他应该官方工作人员用来备份服务器资料的一个目录.删除也没什么关系.. L) Z$ S/ ]1 ~" e) ?* ?) c# c8 ?
log目录,web目录,均是记录玩家的情况
" D# c4 U( m+ M# }! C4 C1 ^userdata下是记录当天上线所有玩家的资料,同时,当你点击DB服务器中的backup按钮时5 p m+ n6 G1 G. C" Q
他会在这个目录中产生一个备份文件,但是这个备份文件不要当作人物资料来用,具体原因% |' H5 m" t" S& A+ \; j; ^" f9 X
还不太明白,只知道会导致玩家元气永远比原来差一些的问题.
" U9 x+ T, \. S3 M
?; ?" @1 Y$ kDB.exe,这个文件是DB服务器文件,没什么好讲的,说说他的按钮吧.( }/ z0 x* }0 ~# c2 v$ i
reload,字面意思是重新读取,具体作用未做测试.
8 A0 w% y# Y) [- _; ?% waddrecord,增加用户数量.也就是DB默认的建立最大人物资料为10000,若你服务器人气很高,
D: C# d @, ^/ t到最后玩家无法建立新角色的时候,点击这个按钮,增加数据库容量就可以了.
. ], V/ I9 d' A" C- Isave today.sdb,存盘当天玩家上线记录.
7 \2 B z/ V3 L s% U1 wback up,备份数据库,备份的数据库会产生在userdata目录下.
6 M1 X' N( F6 J4 W) S
% | C" ?5 j# F, H
1 n2 d# {8 V8 DDB.ini,DB服务器配置文件.
& c( N. S" ]* A3 G: S2 f[DB_SERVER] 明确服务器名称.( z b9 s; I6 H# m1 r& i+ D( C8 k2 g) K
FileName=testdb.fdb 数据库名称.运行DB服务器后会产生一个以这个为名的数据库,但以数字区别.
( j, u. m: W0 G X' ~2 {3 _BufferSizeS2S=1048576 数据库的规格
- n9 w1 s7 x6 k7 d$ O6 R. vGateAcceptPort=3051 DB与GATE连接的端口.TCP协议.0 f9 P0 S: f5 t; z; D) t, B
RemotePort=1024 接收端口.应该是玩家下线后TGS与DB连接的端口.* U3 x" g* a* c
ItemRemotePort=1020 似乎是物品记录端口,但是实际上物品记录端口在TGS下.
8 X9 F, ^' |4 g" x+ C" c- j1 A3 D8 h8 h x3 f% o
; C' r! \3 w6 R2 r4 DIPList.txt文件.
3 G+ y) J$ u2 j5 E3 {0 a1 E' x记录远程GATE连接的IP.一般设置为127.0.0.1
& L8 Y7 P! P9 N5 t- R4 D; `
# C" Y+ w( E4 X' z: t6 ~9 t- Xremoteip.txt文件.' V- W+ G+ j7 A& N( z* ?5 x: O
记录远程TGS连接的IP.一般设置为127.0.0.1
1 M+ X3 J4 M" r i+ h3 p% Z% d4 J1 t- Y
ModifyMagic.txt文件.
8 ^8 D+ R# J4 w$ @3 s& M2 o3 e感觉目前似乎没有用到.具体作用有待补充.
- o" d( l& a9 Q6 e0 r- s
0 u: q& P9 n5 f- B+ R K3 S- Y& X6 j/ u) b3 U c0 o
7 X" c0 Z& E: ]- U# S4 Z* ~GATE服务器., p, X$ A' E) }' e! A
' |; S* C5 t. N4 u. S. olog目录,记录目录.9 j0 {: v: z# t/ z7 \
3 \) F. f+ M% j* I
CreateChar.txt文件,定义新手出生身上所带物品,但不可定义段位,不可定义数量.
& m5 O1 @9 Y ^, W& T& [[CLOTHES]
, R$ J$ I& ]+ d0 B z/ W0 pCLOTHES_COAT_MAN=男子上衣 男子新手出生后所拥有上衣.* F& d* h4 n9 [9 W+ D
CLOTHES_PANTS_MAN=男子短裤 男子新手出生后所拥有的裤子./ g4 ]+ y; j- b+ M! j: e/ K
CLOTHES_COAT_WOMAN=女子上衣 女子新手出生后所拥有上衣.4 o: o# z+ P& Q' d
CLOTHES_PANTS_WOMAN=女子短裤 女子新手出生后所拥有的裤子# R+ P2 G8 ~! k2 a! R9 V
/ O7 [+ U8 V$ Y6 y+ T[WEAPON]
; n* A( a& i4 r/ q) ]0 ^WEAPON_SWORD=长剑 出生后拥有的剑 实际上即使不是此类物品也可以
& E- p C6 {4 a7 tWEAPON_KNIFE=长刀 出生后拥有的刀 实际上即使不是此类物品也可以% P' v" e9 ^, o! P4 J
WEAPON_SPEAR=长枪 出生后拥有的枪 实际上即使不是此类物品也可以
7 n' @$ N) ]: g1 l2 K, j7 XWEAPON_AX=斧头 出生后拥有的斧 实际上即使不是此类物品也可以! G# k$ }( d8 O
! u6 M0 P7 @# A9 \: I- B
[ETC]! p5 X0 ?) w$ a' C( j% Z
ETC_01=五色药水 新手出生后拥有的物品1.这里要说一下8 m4 o/ o' h, u+ u1 Y9 B9 _
7 [+ H y+ |8 ?2 V6 N0 N
即使你定义为没有耐久的物品,他出生后还是会有耐久的.
0 p# N) m; i6 O9 N: Z即使你设置了ETC_02或03或着N+1都是不读取的.如果想要他读取除非去修改GATE主程序.( e% Z+ ~) Z: Q8 L
$ q- o. W3 ^0 J2 u% P* A
% B4 A3 V! O0 C$ q: L5 r5 YDontChar.txt 定义不允许建立的角色名.
" l, `& ^7 }* z d* W% n( a; q; z! ?0 T7 ^
4 ]( w1 Q. Z, D# V! f6 W+ F
gate.ini文件,GATE服务器配置文件.这里详细说一下.
" i% f7 P5 T8 u7 A( T: Q' G- g
0 A+ i! U7 F" t2 O1 Z[GATE_SERVER] 定义服务器名称) c$ V4 a: e1 m
LOCALIP=127.0.0.1 定义对外IP
0 P# F- h! n; ?2 JLOCALPORT=3054 定义与balance连接的端口, g, @2 m- m1 s& n, o3 _! e9 i
LIMITUSERCOUNT=500 定义玩家最大上线允许 0为不限制.
+ r7 y( x* f9 f7 d; Q/ T* B5 V. @5 XCHECKPAIDINFO=FALSE 是否收费服务器.
) W" ]8 |6 c* L3 F) MBALANCEIP=127.0.0.1 定义balance服务器IP
5 r7 N6 u1 l6 w! LBALANCEPORT=3030 定义balance服务器端口.UDP协议.
* e1 Q' ~! k# \( ~2 D* JSERVERNAME=test 定义服务器名8 b7 d. k6 { u" f/ ^3 a0 n0 a9 M
BUFFERSIZES2S=1048576 服务器缓冲.应该是这样,若讲错请指正,不胜感激
4 G; N' c D! D2 XBUFFERSIZES2C=8192 新手村缓冲.应该是这样,若讲错请指正,不胜感激
$ ^* O- i2 i% @7 W8 o- g6 }+ i
9 |' p/ c' t0 P/ U7 a) m[GAME_SERVER] 定义服务器名称
0 W; e8 b# {# U0 b) zREMOTEIP=127.0.0.1 游戏主服务器IP地址,也就是TGS的IP地址.经典的3052漏洞就是这个.
. N6 X2 r) _2 r2 _/ G! zREMOTEPORT=3052 游戏主服务器端口.一定要封.& \) {8 K8 q* L0 g2 h! R. B" g/ v
4 u2 _4 K0 j' a) V2 q$ o' H
[DB_SERVER] 定义服务器名称7 \& z, f: C% j5 p" j
REMOTEIP=127.0.0.1 人物资料服务器IP地址,也就是DB服务器的IP地址.; p6 t! x! B; `4 P
REMOTEPORT=3051 人物资料服务器端口,一定要封.9 i$ E7 { A1 B& f c! @
5 O: |- _, V$ \+ A0 J( l4 o- t
[LOGIN_SERVER] 定义服务器名称8 n. \3 E8 ^+ _% V4 Y) \; v; m
REMOTEIP=127.0.0.1 登陆服务器IP地址.4 g% Q" r4 Z( K& }
REMOTEPORT=3050 登陆服务器端口. ~5 d7 w( T0 B- c$ ]& l1 p5 w# J4 G
( M% y5 W# e5 u6 G" V! l[PAID_SERVER] 定义服务器名称 (通常删除)
, o+ r. ?& X. q1 O% f- gREMOTEIP=127.0.0.1 定义冲卡验证服务器IP地址 (通常删除)
4 L6 _, w" a& z3 L( {8 B3 QREMOTEPORT=80 定义冲卡验证服务器端口 (通常删除)% V, q: ?5 ]2 {
! F( l5 R8 Z4 E& ]% G1 [
6 V8 T4 n! z* f* Jtgs1000.acs文件。GATE的语言库。. t& U9 P& \7 p' O# D( h
5 h. }$ [5 p, K0 l; uVillage.Ini文件。定义新手出生地图。这里讲一下。3 G4 D, m+ _0 J# z. v
$ J& b3 A! A0 d* \- ]2 D& t, Y/ |3 t6 F
[VILLAGE] 定义配置文件名0 [# U! F5 U: Q4 m+ f( D- _* d
" m# a$ |- D. ]/ }7 g7 G" gCOUNT=1 定义新手村可选择的数量
0 c/ o/ F5 I, i9 h/ d) S8 x9 U/ U7 |; Z: Q) U
NAME0=新手村 定义第一个新手村名称,其实并不读取,只是让技术员用来区别。& M- r% ?- @$ P: O5 h7 Z. N5 z
X0=178 第一个新手村X坐标
) f, q& f1 s2 H2 sY0=238 第一个新手村Y坐标
( |. ~& C* T+ d9 K1 {9 RSERVERID0=0 第一个新手村的地图编号,对应TGS\INIT\MAP.SDB中的编号. $ _5 W. s' z; W! d; |
|