千年的服务端主要分5个程序,本文详细介绍了服务端各类重要参数的含义,方便新手GM提高对服务端参数配置和功能的认知!
" t! R4 ~5 }9 K- `: ?
z; X' o" U6 _; ~2 c! B* K1:Balance 网络均衡服务器。6 T% O% q0 k: C: i: ?# g" d
2:DB 人物数据服务器.注意:这里不包含福袋数据和门派数据等.5 o3 O# J& {7 Y; n' c2 V5 f
3: GATE 网关服务器.
* U4 n, `5 ^1 `4 |* E8 K4: login 登陆服务器. 帐号密码等数据在这里.
" U' b4 Z" T, u5: TGS 游戏主服务器. 游戏大部分设置均在这里.! ] E, v7 W9 X+ X2 \$ N$ W" m
0 }5 x; u' A/ D0 A; u/ r8 J% g. [
下面讲下他们的工作原理.' l5 t, v3 e1 Z
% {( n8 m" v: R
首先,玩家通过TCP协议3053端口连接到Balance服务器,当Balance接到连接命令后,/ U. _7 s5 l z% _# T) l$ J
将连接信息转化为UDP协议通过3030端口转到GATE服务器.简单的说Balance只是负责
9 Z+ m7 P' f& ^中转.然后GATE服务器在使用TCP协议连接TGS服务器的3052端口,若TGS端口连接正常,
1 u: G2 t1 }# D! F- o则返回信息到GATE,GATE再验证DB与login服务器,若连接正常,则发送信息连接成功到' e: i6 f9 E% ]. J: [7 z
客户端.: H( f4 x( u5 k8 S5 w2 x
: V% n+ Z9 v! }( K5 Q8 n
再说服务器所牵扯的端口. (以下端口均为未修改的默认端口)
/ e5 v# D" Z4 X3 v. u/ l
4 Y3 C, }( A/ h; A nBalance服务器 对外TCP协议3053 连接GATE-UDP协议3030.- B+ p2 p# F1 |: b8 l# J' T& t
DB服务器 TCP协议3051连接GATE.& [! y# P1 l" h0 i. V
GATE服务器 对外端口3054-TCP协议.注意,虽然3054对外,但是直接连接3054会出现版本错误的提示.
' L- G6 h! Q3 J- r7 M( E: s9 m6 ?+ tUDP协议连接balance的3030.TCP协议连接TGS服务器的3052 TCP协议连接DB的3051 TCP协议连接login
6 [5 g* S( h( V( c! U3 I的3050 这里最重要的一个,也是很多朋友不明白的地方,那就是paid服务器的端口,paid服务器为冲卡
8 s/ v+ m- I$ c4 `验证服务器,通常做私服只需将其删除即可,也就是说并不是GATE服务器要亮4个灯才正常,这是很多朋友
) s' ?$ e1 y2 r- N$ Z3 y* @的误区.
1 C9 N5 L- p/ y+ {login服务器 TCP协议连接GATE的30505 j, a% l( E' U# C; z$ W
TGS服务器 TCP协议连接DB的3051 其中还有一些物品记录服务器等.
; `; u" j; s2 v+ {) l5 e$ W& q
5 w0 s: E9 t$ p j- [4 L% H8 Q# }# a
再讲每个服务器中的配置.' ?) T& A0 F& @9 f
4 A0 A: E8 F7 v0 m5 P# eBalance服务器 目录中的balance.ini中配置' {" d6 W: U) E ^7 L
[BALANCE]/ h3 V! T8 K' r: \) p) j
TCPLOCALPORT=3053
( M7 t9 |& C% R9 N& p# f. _UDPLOCALPORT=3030
. p- J% g/ U" | a基本不需要修改,若你想开启一机双线,那就要双开balance和GATE,
& d) t5 k7 N( J) D# B/ N7 }8 W若需要一机多区,就要双开balance,GATE,TGS。; z$ s7 U, v- T( W5 B. ~+ Y; Q" x
这也就是克星一机多区的工作原理.
% b: M! {2 u. `# q但是官方原版的balance服务器并不读取balance中的TCP协议中设置的端口,也就是你即使设置4053& `' A1 W" E" l4 J' ~7 A
他一样是在3053工作.但是UDP协议中的3030是读取的,克星就是改写了balance服务器,让他可以从5 S& t) ~8 b' z1 ~0 \% E, t. H
配置文件中读取用户所设置的端口来实现一机多区的.
6 ]& T/ J3 w% [& @+ ?- E如果你想不使用克星工具实现一机多区,应该做以下设置.+ w3 d F3 C$ x' y1 Q: t
复制另一份balance出来,打开balance.ini修改: V% d$ O* ~) O B& l. T
[BALANCE]
$ M- d9 K' I# D3 C+ A* ?6 U- L# FTCPLOCALPORT=40538 F' a( |$ d3 G1 s) p) a* z
UDPLOCALPORT=4030 ~2 f" b: Z9 b9 O6 v: ~# |
这里修改后注意GATE.ini中UDP协议3030端口为4030
. M# S; x5 S3 f L* h. s然后打开UE,查找ED0B修改为D50F.注意,有很多个,修改最后一个就可以了.这样他就在4053端口监听了.
* G0 s. Y4 y8 X) ^, }/ i" B. o4 ]. `0 X$ l5 j% ]: ]
题外话:很多朋友很不理解16进制编辑.这里我给大家稍微讲一下.5 i' k' E2 ?: m. t4 g. |7 |
打开windows自带的计算器,选择查看-科学型,然后选择10进制
, ~2 `# {. Y9 ^! V4 ^+ ~. e( x按下3053,再选择为16进制,你会发现3053在16进制中显示为BED/ f* i/ E7 S" ^/ m4 a# W, i
但是为什么要查找ED0B呢,因为在程序中这些东西都是反写的,. }# v* ~3 _! {# m/ ]
以两个字母为一个单位,也就是说假如为6D2E,你在查找是应该找2E6D# i) S5 V; V8 J
若是奇数就要加一个0来补齐.. Z( N, O! g, r8 E
7 I" O: M- ?4 p8 M4 b& f) N* t再来看看DB服务器。9 w @6 G3 C3 ]9 D- V( Q3 Q4 h
0 w* D4 |" t$ G0 t* P; l4 R; e ^$ g* MDB服务器下目录比较多,我们一个个来讲( s! l9 O c. U( `' l& P- n
backup目录本身DB服务器不产生,也不在他的目录下增加任何文件,$ G2 s; a9 E _' A
根据笔者猜测,他应该官方工作人员用来备份服务器资料的一个目录.删除也没什么关系." T% X) o/ g3 Q- e! W
log目录,web目录,均是记录玩家的情况
7 X# i+ J' c m- j/ C0 \* Tuserdata下是记录当天上线所有玩家的资料,同时,当你点击DB服务器中的backup按钮时
: t" Y' l% g( y# p! h. n他会在这个目录中产生一个备份文件,但是这个备份文件不要当作人物资料来用,具体原因. m- j9 X: \3 S
还不太明白,只知道会导致玩家元气永远比原来差一些的问题.
# ` c* K# ?0 d. M9 k' B( i: K T+ q# K/ c4 x: Z' [0 g, o
DB.exe,这个文件是DB服务器文件,没什么好讲的,说说他的按钮吧.
; c) F/ O7 ]7 t( y! M7 dreload,字面意思是重新读取,具体作用未做测试.5 b5 n7 g% q+ R$ M7 A3 S3 c
addrecord,增加用户数量.也就是DB默认的建立最大人物资料为10000,若你服务器人气很高,
4 i- ]+ ^" U! W# a F5 }到最后玩家无法建立新角色的时候,点击这个按钮,增加数据库容量就可以了.
) U, l9 L: [4 M2 r! [ c5 }save today.sdb,存盘当天玩家上线记录.2 Z8 y% V; A; Y
back up,备份数据库,备份的数据库会产生在userdata目录下.
4 |9 F, k% I& t: `
( e* z# ]: z* b% \7 J9 t* g9 G, C4 J+ } y* U# [4 m6 v
DB.ini,DB服务器配置文件.% ?. E& k4 [- ?! e. G- _# ^8 T; O
[DB_SERVER] 明确服务器名称.9 L. J9 r2 u. w4 o T6 T K
FileName=testdb.fdb 数据库名称.运行DB服务器后会产生一个以这个为名的数据库,但以数字区别.2 w3 m" k, [3 _% ~' t5 N
BufferSizeS2S=1048576 数据库的规格
9 ]& q2 f) w) ~4 hGateAcceptPort=3051 DB与GATE连接的端口.TCP协议.0 a7 }' e9 ?. ]9 t/ n: v1 Z* k
RemotePort=1024 接收端口.应该是玩家下线后TGS与DB连接的端口.
$ {6 K% A6 e0 H8 N4 l1 T0 g4 z f7 VItemRemotePort=1020 似乎是物品记录端口,但是实际上物品记录端口在TGS下.8 E# i& `0 |, `2 E& H6 _
& j& l3 r/ M0 c0 L2 ]6 k: k% Z0 J
0 Y3 ?) t% {8 m1 U' u8 S# p
IPList.txt文件.+ B( t9 _) m7 B B. r8 Y
记录远程GATE连接的IP.一般设置为127.0.0.1
8 h( A0 Q6 J. ~* M
6 C: c( U3 U8 vremoteip.txt文件.
3 A. y/ u/ q1 r$ F- V' z' J. X: e记录远程TGS连接的IP.一般设置为127.0.0.1
& D, l7 P+ i9 ?( `: _$ O( P4 Y9 [0 W0 b% k: o1 z
ModifyMagic.txt文件.( s1 Z% M% }9 |. N
感觉目前似乎没有用到.具体作用有待补充.
$ M8 q9 {- ^' i0 z7 p' I t/ p' B
: t& J" Q, p9 z$ ~9 _; i
8 J; E& F1 X# Q% s- @
GATE服务器.& x4 @/ }5 g/ r) z0 ~7 _
- `' C, f! [* _% l7 _0 `log目录,记录目录.0 t7 Z4 k6 w) S, b
$ [" M, t/ Z2 i( |" FCreateChar.txt文件,定义新手出生身上所带物品,但不可定义段位,不可定义数量.
: M8 \1 m# K9 @6 m2 [1 L4 h2 t[CLOTHES]+ X% L& Q, |3 x$ h3 R: L
CLOTHES_COAT_MAN=男子上衣 男子新手出生后所拥有上衣.5 L7 o$ j) P) i4 z
CLOTHES_PANTS_MAN=男子短裤 男子新手出生后所拥有的裤子.
: I: _+ a) _0 M8 ACLOTHES_COAT_WOMAN=女子上衣 女子新手出生后所拥有上衣.7 Q) |1 I& f9 h
CLOTHES_PANTS_WOMAN=女子短裤 女子新手出生后所拥有的裤子. N" m3 ~/ R8 w' w- N- ]
% p. x/ \' l3 Y0 {$ ]( H[WEAPON]
/ s4 G; S% f) b. ~, |. l- i3 QWEAPON_SWORD=长剑 出生后拥有的剑 实际上即使不是此类物品也可以+ ?. e. p! Q- P9 ~0 Z) y/ o8 w D
WEAPON_KNIFE=长刀 出生后拥有的刀 实际上即使不是此类物品也可以
/ W: t, Z/ x# S5 IWEAPON_SPEAR=长枪 出生后拥有的枪 实际上即使不是此类物品也可以) R/ a \: A2 K0 y; n
WEAPON_AX=斧头 出生后拥有的斧 实际上即使不是此类物品也可以
( v6 B3 h& n' A! W8 G% u8 u8 j, r/ a m$ G' I) T
[ETC]" m3 G$ C0 ~5 q6 L
ETC_01=五色药水 新手出生后拥有的物品1.这里要说一下! D) \/ Q" Z2 {# j8 H N7 {
) X. E% ]% P7 G& C; D即使你定义为没有耐久的物品,他出生后还是会有耐久的.
4 a6 }- b* B- R6 q! g+ q即使你设置了ETC_02或03或着N+1都是不读取的.如果想要他读取除非去修改GATE主程序.
8 b! _. b, G6 o8 ^: ]& ]- i& r; v% W$ T) s: }) g9 F; \
i1 V4 T! P- v( Y* j0 `DontChar.txt 定义不允许建立的角色名.# S r1 v2 z' t: U( D
# I6 G' a- ^: K" H
. C. g7 _/ {* O _7 U9 l& s
gate.ini文件,GATE服务器配置文件.这里详细说一下.) C. T; o/ a+ X+ J$ m) i" p; V" E
: `9 o ~2 l9 O8 c0 K[GATE_SERVER] 定义服务器名称7 G$ N5 x) L$ A( {0 M5 Q# ]4 B
LOCALIP=127.0.0.1 定义对外IP
7 D; Z0 f& b0 _6 T# FLOCALPORT=3054 定义与balance连接的端口3 \1 o$ F6 p( |& J
LIMITUSERCOUNT=500 定义玩家最大上线允许 0为不限制.) s$ P5 A4 A! |1 F" c' \8 k+ p
CHECKPAIDINFO=FALSE 是否收费服务器.
) @2 L" R0 |( {! U/ `BALANCEIP=127.0.0.1 定义balance服务器IP
- q* {( N3 I5 u1 k6 SBALANCEPORT=3030 定义balance服务器端口.UDP协议.
" N1 x u* S) W; n; ]SERVERNAME=test 定义服务器名
3 W2 O: P- b! z7 d% n& aBUFFERSIZES2S=1048576 服务器缓冲.应该是这样,若讲错请指正,不胜感激: K% S& M4 N) p: ^3 `7 L8 r( g
BUFFERSIZES2C=8192 新手村缓冲.应该是这样,若讲错请指正,不胜感激! Q8 x* r# A, f) K4 ]# x* l# U
+ P" b$ U& M5 O[GAME_SERVER] 定义服务器名称
" n7 b7 ^2 _/ t0 l+ q( l8 P7 w! ?5 \REMOTEIP=127.0.0.1 游戏主服务器IP地址,也就是TGS的IP地址.经典的3052漏洞就是这个.1 I8 t/ |! i8 l# E8 \2 \% \
REMOTEPORT=3052 游戏主服务器端口.一定要封.7 n3 S& w$ \8 E
' X5 X# }4 w9 g) F8 w$ X8 R
[DB_SERVER] 定义服务器名称1 P! L9 [6 I& k1 d
REMOTEIP=127.0.0.1 人物资料服务器IP地址,也就是DB服务器的IP地址.
* O! p! N2 D& J0 `REMOTEPORT=3051 人物资料服务器端口,一定要封.
, `" U+ R( r$ G+ N- G# {! E9 I/ i( {& {" K3 [
[LOGIN_SERVER] 定义服务器名称
, u$ r1 }) v2 A" l9 u- @5 iREMOTEIP=127.0.0.1 登陆服务器IP地址.
+ Q, x$ m9 }9 Q V7 @REMOTEPORT=3050 登陆服务器端口3 z1 @9 [9 l4 U) Y% r5 o! K; s, a
+ f# w2 j2 ?6 T1 j# e7 u[PAID_SERVER] 定义服务器名称 (通常删除)
4 C8 x/ U7 A8 i8 NREMOTEIP=127.0.0.1 定义冲卡验证服务器IP地址 (通常删除)
7 |! |3 P0 U0 _' H2 KREMOTEPORT=80 定义冲卡验证服务器端口 (通常删除)9 D5 T0 j' m3 ~$ T5 F [' q6 V
* M" f; w3 b: h& X8 c2 ]7 j* ?! W M! s; P& x1 i. e; I
tgs1000.acs文件。GATE的语言库。
' Z" t, I) L) q- B6 b8 v/ Q3 Q6 {3 [) ^1 G. N) i
Village.Ini文件。定义新手出生地图。这里讲一下。
$ O1 {! m0 i k6 E% n' o) R8 d, F' K7 Y; X9 E3 |9 E0 F
[VILLAGE] 定义配置文件名, M. [. E/ s; X; U- ]# X
8 ]2 p2 D4 |; K# U4 I5 hCOUNT=1 定义新手村可选择的数量
$ x" ^- X: N+ n* j& E9 Q: o7 O( Q8 S( z
NAME0=新手村 定义第一个新手村名称,其实并不读取,只是让技术员用来区别。5 u* q% o8 N6 {) j" R$ ~5 s- W, S
X0=178 第一个新手村X坐标
+ F; T L) T9 O" ]6 e" n* F& uY0=238 第一个新手村Y坐标
/ s' [6 X9 \- j8 Q* W8 ?SERVERID0=0 第一个新手村的地图编号,对应TGS\INIT\MAP.SDB中的编号.
3 T0 D/ w- H+ e1 f6 q |