千年的服务端主要分5个程序,本文详细介绍了服务端各类重要参数的含义,方便新手GM提高对服务端参数配置和功能的认知!
: P s6 T; W6 i6 d, S( @3 x2 e2 ?8 Q6 q7 a2 k+ n
1:Balance 网络均衡服务器。
+ m! H8 ]9 k5 ^2 u+ g3 s2:DB 人物数据服务器.注意:这里不包含福袋数据和门派数据等.
' K( s* w: `( n% i3: GATE 网关服务器., S, q) L" V; C7 x5 W6 u/ x
4: login 登陆服务器. 帐号密码等数据在这里." W) \2 B( r$ [9 E9 U+ k& J7 L5 c
5: TGS 游戏主服务器. 游戏大部分设置均在这里.1 [: v% {! D- j, c$ E+ f
; l! }8 j5 I# z: X
下面讲下他们的工作原理.; c/ J# ~: e& Y" `+ E$ [
: u8 ^4 v7 Z& y7 @: L0 F
首先,玩家通过TCP协议3053端口连接到Balance服务器,当Balance接到连接命令后,
. z' z/ B. D1 s* q7 i将连接信息转化为UDP协议通过3030端口转到GATE服务器.简单的说Balance只是负责3 _; Z* B, z1 U; B% J+ E
中转.然后GATE服务器在使用TCP协议连接TGS服务器的3052端口,若TGS端口连接正常,* x3 {( T! Y$ x& f8 c+ R6 v4 z
则返回信息到GATE,GATE再验证DB与login服务器,若连接正常,则发送信息连接成功到
1 c* C/ B5 ^- U$ Y客户端.
. N3 J: P' I; U" w$ ]5 }$ T8 f: U3 D+ d
再说服务器所牵扯的端口. (以下端口均为未修改的默认端口). h8 `/ ]! z' \6 B9 ~& z+ M, w
' o/ d$ i! A b$ z
Balance服务器 对外TCP协议3053 连接GATE-UDP协议3030.
y9 \2 J- K6 tDB服务器 TCP协议3051连接GATE.
[2 \" O$ n1 A0 jGATE服务器 对外端口3054-TCP协议.注意,虽然3054对外,但是直接连接3054会出现版本错误的提示.9 W! r$ _6 n! [: Y
UDP协议连接balance的3030.TCP协议连接TGS服务器的3052 TCP协议连接DB的3051 TCP协议连接login
: N3 O/ J2 ]" W7 {- L的3050 这里最重要的一个,也是很多朋友不明白的地方,那就是paid服务器的端口,paid服务器为冲卡# H# o+ e2 ~3 k% n5 l1 H% [
验证服务器,通常做私服只需将其删除即可,也就是说并不是GATE服务器要亮4个灯才正常,这是很多朋友, {0 t& E/ I- O) ^$ s# M! N
的误区.: I2 U. c2 S. k$ U
login服务器 TCP协议连接GATE的3050
+ F# g4 I7 j3 d5 wTGS服务器 TCP协议连接DB的3051 其中还有一些物品记录服务器等.
" s4 V6 u) ^, G( t& a1 K8 i
- O$ C& e1 u; ?" Q. a2 A
: u1 {7 ?8 N. s- o9 Y% h; t+ }4 \再讲每个服务器中的配置.. g3 O5 s/ `! c, \1 |8 q, {
: ~' D. v$ I- F2 ^Balance服务器 目录中的balance.ini中配置
* J5 y% |6 m! X0 y$ S[BALANCE]2 e5 R( u6 z6 _7 P- V: }/ B
TCPLOCALPORT=3053 a' _! d' H" t1 A# ~
UDPLOCALPORT=30308 \1 b4 w' c# f, I; W7 @5 i* f
基本不需要修改,若你想开启一机双线,那就要双开balance和GATE,
1 Q6 m5 Y4 R5 J3 ^若需要一机多区,就要双开balance,GATE,TGS。
% R9 E5 v5 {3 C, R这也就是克星一机多区的工作原理.
# o3 y% {$ F$ {1 c6 H9 r% {! `但是官方原版的balance服务器并不读取balance中的TCP协议中设置的端口,也就是你即使设置4053
5 z% r' }' W; |& y/ b# c* ^6 `他一样是在3053工作.但是UDP协议中的3030是读取的,克星就是改写了balance服务器,让他可以从
0 U6 y0 {; ~1 x2 L; T9 z配置文件中读取用户所设置的端口来实现一机多区的.- I; h4 [* L0 Z8 N" V, q
如果你想不使用克星工具实现一机多区,应该做以下设置. J, E" x0 n5 R
复制另一份balance出来,打开balance.ini修改3 q2 C q7 h) M
[BALANCE]
q! z: j- }% l$ o: rTCPLOCALPORT=4053
) S2 P+ h! p2 t% ?' UUDPLOCALPORT=4030) B0 V' l1 |" X2 E
这里修改后注意GATE.ini中UDP协议3030端口为4030
! {% G+ O! \+ K5 M r% a( q5 S然后打开UE,查找ED0B修改为D50F.注意,有很多个,修改最后一个就可以了.这样他就在4053端口监听了.
- d+ n7 s, l% Y/ a4 X( Z7 Y' R+ u/ a8 Q; s+ u5 L
题外话:很多朋友很不理解16进制编辑.这里我给大家稍微讲一下.
. B7 r% ^# v. K4 r' ]& a1 a# U打开windows自带的计算器,选择查看-科学型,然后选择10进制
0 \2 R: X% C* s. ?按下3053,再选择为16进制,你会发现3053在16进制中显示为BED
j" ~" T& ?$ R# _- B8 D. n但是为什么要查找ED0B呢,因为在程序中这些东西都是反写的,
- V5 ]. t: m" V$ E: f6 I以两个字母为一个单位,也就是说假如为6D2E,你在查找是应该找2E6D$ F) i4 F2 T5 ?5 k
若是奇数就要加一个0来补齐.
2 A. D2 v% \0 w& ?0 h/ B) g
6 f, b/ g+ F& M* E再来看看DB服务器。
- o# Q" Q0 W7 V! Y% x: a; g) ~3 }9 @3 l
DB服务器下目录比较多,我们一个个来讲
i/ E+ a1 n5 p- W+ h5 F+ {: vbackup目录本身DB服务器不产生,也不在他的目录下增加任何文件,& s3 A9 S/ t# K2 S( b
根据笔者猜测,他应该官方工作人员用来备份服务器资料的一个目录.删除也没什么关系.. M/ ~7 Z# V) z- L8 z E
log目录,web目录,均是记录玩家的情况
& }3 @' a& A) P& G$ k) vuserdata下是记录当天上线所有玩家的资料,同时,当你点击DB服务器中的backup按钮时
i y$ T2 B, I# A8 m* `" s他会在这个目录中产生一个备份文件,但是这个备份文件不要当作人物资料来用,具体原因) M6 l" a/ u6 _
还不太明白,只知道会导致玩家元气永远比原来差一些的问题./ W: ]- A6 I$ D3 L5 {2 l3 Z
# S: G) ] s+ o' P1 @5 J' f) v
DB.exe,这个文件是DB服务器文件,没什么好讲的,说说他的按钮吧.& I2 T6 {- c5 T w) b1 J
reload,字面意思是重新读取,具体作用未做测试.$ q+ {4 p2 Q3 X7 {
addrecord,增加用户数量.也就是DB默认的建立最大人物资料为10000,若你服务器人气很高,5 t( B% d+ v0 q
到最后玩家无法建立新角色的时候,点击这个按钮,增加数据库容量就可以了.% x1 Y' f6 x# U/ j3 V' y
save today.sdb,存盘当天玩家上线记录.2 u, u1 v1 i( C9 k7 P
back up,备份数据库,备份的数据库会产生在userdata目录下.; @* N% n9 }- X( |' p3 `9 @0 e
3 B9 T0 U+ P) t, x# t
2 T8 `9 y! }* DDB.ini,DB服务器配置文件.
$ d9 f" D( I& q, \$ A[DB_SERVER] 明确服务器名称.
5 e2 W: I( g: n9 ?& j3 f v* SFileName=testdb.fdb 数据库名称.运行DB服务器后会产生一个以这个为名的数据库,但以数字区别.
3 ]) j( P! A: c0 EBufferSizeS2S=1048576 数据库的规格$ ^) x- D, O( V5 l& t
GateAcceptPort=3051 DB与GATE连接的端口.TCP协议.' H; J% j2 \. R% x$ Z: x
RemotePort=1024 接收端口.应该是玩家下线后TGS与DB连接的端口.+ F1 h8 ? c, g0 l
ItemRemotePort=1020 似乎是物品记录端口,但是实际上物品记录端口在TGS下.7 p7 z) b2 ~4 F9 I( b" B
+ k3 g% P5 j2 \* `/ V8 F4 \
- u& J1 k/ g/ u* t, D2 u
IPList.txt文件.
' V6 H( [2 I1 L记录远程GATE连接的IP.一般设置为127.0.0.11 [0 X, h1 ^2 i8 V: N
) ?. v' P, P. g, @remoteip.txt文件.
6 ~& ]/ O! i% B8 m1 K; Z% P) h0 Q# [记录远程TGS连接的IP.一般设置为127.0.0.1
2 e& t8 b5 ~: K8 F3 k( U9 u% {4 o: T8 j6 [% [2 d
ModifyMagic.txt文件.
& t$ L3 | Y% k+ Q7 y& i$ w感觉目前似乎没有用到.具体作用有待补充.% V/ a. f/ y' a& {( h8 H& e
7 |+ \3 X& ]# B" @7 D# c- j' Y
) R1 ?; [4 X! n
8 a8 u/ `0 C) y/ PGATE服务器.5 t+ q |& D& w2 d
: F; o: @4 N" o2 J3 I7 u, ^log目录,记录目录./ b& i2 P+ a: C9 K7 h4 Q1 r: i
$ r; f5 G% G C# @" r0 q3 H
CreateChar.txt文件,定义新手出生身上所带物品,但不可定义段位,不可定义数量.5 ]) C o. k5 [ m6 [; S
[CLOTHES]
' ]8 \: \8 n7 f2 G" J1 Z2 QCLOTHES_COAT_MAN=男子上衣 男子新手出生后所拥有上衣.
+ t: T; L* W( `CLOTHES_PANTS_MAN=男子短裤 男子新手出生后所拥有的裤子." k, D$ a. M) u( b- s* U
CLOTHES_COAT_WOMAN=女子上衣 女子新手出生后所拥有上衣.. A: y$ D# b% n0 b' }; e
CLOTHES_PANTS_WOMAN=女子短裤 女子新手出生后所拥有的裤子
1 J, |9 Z( b9 \* ?! F& I% _/ r4 b& s; N& Z: w' n: e2 ^9 \! @: n2 ~
[WEAPON]
' L8 ^9 y. A: ` J' v+ f6 |WEAPON_SWORD=长剑 出生后拥有的剑 实际上即使不是此类物品也可以
# u& M4 p3 x9 s% u' ?WEAPON_KNIFE=长刀 出生后拥有的刀 实际上即使不是此类物品也可以7 T( u2 r1 x! F, U: [" \
WEAPON_SPEAR=长枪 出生后拥有的枪 实际上即使不是此类物品也可以0 m, ]6 v; c/ i( I
WEAPON_AX=斧头 出生后拥有的斧 实际上即使不是此类物品也可以& m0 ^1 Z1 J2 Z: j+ N8 x
& v5 }3 i! H' {( B- l$ V& F4 D
[ETC]/ O3 r) K% f: s' g) T: D# f1 D3 R! p
ETC_01=五色药水 新手出生后拥有的物品1.这里要说一下
; @$ A; D7 c) K0 P9 |' g/ h5 P% L4 G& Q5 W" U" i8 Y: S
即使你定义为没有耐久的物品,他出生后还是会有耐久的.
7 L* a1 m: B( O& | u即使你设置了ETC_02或03或着N+1都是不读取的.如果想要他读取除非去修改GATE主程序./ R) B6 D7 Q/ Q: Z
: O2 F9 {: O" k/ N' s
& O9 [: q" |3 w! `) {DontChar.txt 定义不允许建立的角色名.0 h) T+ D) [6 ]! w
# k7 {# f& [: w; q* w( }
% [- k0 `2 @% i7 G X0 k$ c9 r
gate.ini文件,GATE服务器配置文件.这里详细说一下.
5 L$ Q, b2 [3 T1 i, R) x2 u% Z/ n$ K& w
[GATE_SERVER] 定义服务器名称
! P; x9 U; r- q& U2 ~LOCALIP=127.0.0.1 定义对外IP
) A5 D. Y$ ~ S9 t: i# `0 d' }LOCALPORT=3054 定义与balance连接的端口
6 Z9 v1 o+ y v1 g$ ?7 [3 RLIMITUSERCOUNT=500 定义玩家最大上线允许 0为不限制.) g# p; M: Z6 u4 y( P6 X
CHECKPAIDINFO=FALSE 是否收费服务器.2 s' j" Q4 ^; T5 W
BALANCEIP=127.0.0.1 定义balance服务器IP* ~; O3 x* W' T* _! L8 M
BALANCEPORT=3030 定义balance服务器端口.UDP协议.
1 M2 \ j; Z+ O1 S5 HSERVERNAME=test 定义服务器名
0 ]/ ?& n9 n7 MBUFFERSIZES2S=1048576 服务器缓冲.应该是这样,若讲错请指正,不胜感激
, _# p2 x2 ]; ?3 s& i4 RBUFFERSIZES2C=8192 新手村缓冲.应该是这样,若讲错请指正,不胜感激( q D% Z L7 F& \! _ D
: y `) [* P4 t( C! q[GAME_SERVER] 定义服务器名称' w! C1 b( R Q
REMOTEIP=127.0.0.1 游戏主服务器IP地址,也就是TGS的IP地址.经典的3052漏洞就是这个.! r* V5 A" y/ f# K2 V
REMOTEPORT=3052 游戏主服务器端口.一定要封.
( n7 G' ?, T8 H6 U
$ ^: x- T, i" \[DB_SERVER] 定义服务器名称
+ D$ O0 s8 k" e( ]1 S* H& pREMOTEIP=127.0.0.1 人物资料服务器IP地址,也就是DB服务器的IP地址./ \8 O. X+ \# _, J1 h& ?
REMOTEPORT=3051 人物资料服务器端口,一定要封.
# ]! r; p- h0 |* S i* N3 A" C3 [+ w' u( N+ g* [
[LOGIN_SERVER] 定义服务器名称% z, y7 g2 U) Y
REMOTEIP=127.0.0.1 登陆服务器IP地址.
+ I% x ?# {4 I7 F( {REMOTEPORT=3050 登陆服务器端口
5 H7 o# n5 u, n
- D! T, W; ~# Y3 D[PAID_SERVER] 定义服务器名称 (通常删除)
! o; }) N9 z8 l- `2 d) W( {( \REMOTEIP=127.0.0.1 定义冲卡验证服务器IP地址 (通常删除)
; W3 k& |+ W% A0 j bREMOTEPORT=80 定义冲卡验证服务器端口 (通常删除)
. K) x: D5 X/ `' d/ q( h( u2 _4 S% M4 Q- |% z7 R
+ e. a! y t3 w7 A7 e8 b2 A7 [% O& mtgs1000.acs文件。GATE的语言库。1 @- u& x+ [# J! W9 Q1 W
9 L0 x8 K- `: {& K5 D$ M$ L
Village.Ini文件。定义新手出生地图。这里讲一下。' ~+ V5 P/ ^( \3 Q& K
7 x$ D+ F& ~0 E, j& o2 [4 R9 q% ~[VILLAGE] 定义配置文件名
7 H# a4 U; E0 L7 J% a+ m- c A
/ @: X, v# h! Y* O6 WCOUNT=1 定义新手村可选择的数量
# Z' t1 B, \% ]! @- L, T8 U0 v
NAME0=新手村 定义第一个新手村名称,其实并不读取,只是让技术员用来区别。
V- h* ?; v( P5 B! _1 hX0=178 第一个新手村X坐标
* o- |: s- D0 G- {2 HY0=238 第一个新手村Y坐标
* \9 s" _% n/ e4 l2 E$ iSERVERID0=0 第一个新手村的地图编号,对应TGS\INIT\MAP.SDB中的编号. " W: r& U: x1 ?9 \6 k( [* [
|