千年的服务端主要分5个程序,本文详细介绍了服务端各类重要参数的含义,方便新手GM提高对服务端参数配置和功能的认知!
$ x& }: N+ _: V, n4 O5 Z: p
6 u$ C5 i5 C; {$ G. e$ n3 e+ _: E1:Balance 网络均衡服务器。
1 G( c$ j$ X. P4 ^! R. f% d, C2:DB 人物数据服务器.注意:这里不包含福袋数据和门派数据等.
6 S6 a2 d2 ~% \# Q3: GATE 网关服务器.
( e' L+ {9 O9 C0 j# T o+ F. {. V4: login 登陆服务器. 帐号密码等数据在这里.
6 L6 a1 S) A" p( `5: TGS 游戏主服务器. 游戏大部分设置均在这里.. V7 a! H/ P9 w/ \
( k& k4 {4 R8 Q& r, R( A* Y/ r/ b# _下面讲下他们的工作原理.
- v6 ]; v p$ s; \( |. `
; M9 ~9 m' e9 _2 Q3 q% X7 i首先,玩家通过TCP协议3053端口连接到Balance服务器,当Balance接到连接命令后,
/ @6 d; q& V9 o" c将连接信息转化为UDP协议通过3030端口转到GATE服务器.简单的说Balance只是负责& e) i* y+ i2 Z0 l: E) h
中转.然后GATE服务器在使用TCP协议连接TGS服务器的3052端口,若TGS端口连接正常,
0 y5 q2 V3 h5 w7 X- _% X! m# I& I s则返回信息到GATE,GATE再验证DB与login服务器,若连接正常,则发送信息连接成功到
; z O/ B$ r4 |4 _7 O客户端.
0 K% O1 s- A" _ v2 ~, E: `3 I
$ P' h1 D" F- k) i再说服务器所牵扯的端口. (以下端口均为未修改的默认端口)
4 I. ^: _; [, d7 P3 q& K
6 D1 ~% g: v7 } X _5 w, J1 nBalance服务器 对外TCP协议3053 连接GATE-UDP协议3030.
9 }' G( ?3 [7 QDB服务器 TCP协议3051连接GATE.
* U; u/ Z: z, w# W0 T# `1 E; t0 uGATE服务器 对外端口3054-TCP协议.注意,虽然3054对外,但是直接连接3054会出现版本错误的提示.2 e( o% K/ U- Y, [& J2 W
UDP协议连接balance的3030.TCP协议连接TGS服务器的3052 TCP协议连接DB的3051 TCP协议连接login
, y \* o- T5 |9 D6 ^: T- O" W' \: E的3050 这里最重要的一个,也是很多朋友不明白的地方,那就是paid服务器的端口,paid服务器为冲卡0 ?" T8 ?( {: T" j' _: B2 i
验证服务器,通常做私服只需将其删除即可,也就是说并不是GATE服务器要亮4个灯才正常,这是很多朋友
) y6 z9 H) t6 f7 o/ q$ q的误区./ u6 p1 s( l% c+ [4 a
login服务器 TCP协议连接GATE的30504 I7 U8 [6 y8 \3 F. I
TGS服务器 TCP协议连接DB的3051 其中还有一些物品记录服务器等.
$ x' o; m8 f' u6 F8 f6 V6 i8 w$ d4 h& X- k2 f* s
* e1 ~( f9 J% W' v; T再讲每个服务器中的配置.
! J, o8 n$ g$ M0 z$ _1 f
& X' ]. Z/ m {3 M! zBalance服务器 目录中的balance.ini中配置) O$ j5 r) ]; z( t, C
[BALANCE]! Z% A% v( s! P# T" N
TCPLOCALPORT=3053
& R4 i3 n' M7 P; r" pUDPLOCALPORT=3030) t+ I5 n7 a4 w/ A8 x
基本不需要修改,若你想开启一机双线,那就要双开balance和GATE,/ E0 C+ L/ w8 {' ~3 z' r
若需要一机多区,就要双开balance,GATE,TGS。' {$ u& o. F4 b: P7 E5 I* o6 b( ]
这也就是克星一机多区的工作原理.9 P$ e3 {1 Z5 u( n% O. J
但是官方原版的balance服务器并不读取balance中的TCP协议中设置的端口,也就是你即使设置4053
4 B4 b6 X5 J5 B G; `- u+ l他一样是在3053工作.但是UDP协议中的3030是读取的,克星就是改写了balance服务器,让他可以从
X% T0 P0 u, ]# l' e; M/ R配置文件中读取用户所设置的端口来实现一机多区的.
: A) ~" V* T* m" I如果你想不使用克星工具实现一机多区,应该做以下设置.
; {2 A4 ]3 O/ k! M% z复制另一份balance出来,打开balance.ini修改) O0 h+ j1 P$ Y/ A' m+ p2 u
[BALANCE]" |& W" C) K. b) z5 G
TCPLOCALPORT=40534 N/ F1 c! h2 o0 e
UDPLOCALPORT=4030- u/ x0 B3 ~" Q7 I
这里修改后注意GATE.ini中UDP协议3030端口为4030' @, }* X1 u. P2 D4 n% k+ q. A5 {8 X7 i
然后打开UE,查找ED0B修改为D50F.注意,有很多个,修改最后一个就可以了.这样他就在4053端口监听了.
+ R1 a- v3 l* f0 {
, Z0 N. g9 { C T& o8 m2 U8 \题外话:很多朋友很不理解16进制编辑.这里我给大家稍微讲一下.: V7 {, X5 x9 J9 Q) ^
打开windows自带的计算器,选择查看-科学型,然后选择10进制
* R/ U3 J3 W3 K0 W3 X3 q0 W按下3053,再选择为16进制,你会发现3053在16进制中显示为BED1 v5 A( y1 N4 m# t0 ^9 g
但是为什么要查找ED0B呢,因为在程序中这些东西都是反写的,
) ~7 O: I* k: d& [$ T# @% V以两个字母为一个单位,也就是说假如为6D2E,你在查找是应该找2E6D/ D a3 F* N# g
若是奇数就要加一个0来补齐./ c' @% Q# V# @9 c
8 \" \; O* C/ l$ h3 N: Y再来看看DB服务器。
1 @/ N0 W- E$ ^; K- b& C0 F
, ^; N# }1 l" ?) Z6 TDB服务器下目录比较多,我们一个个来讲
0 W) |" R9 _2 g4 ]7 g# y6 Ubackup目录本身DB服务器不产生,也不在他的目录下增加任何文件,1 b2 w4 O2 h- _) c
根据笔者猜测,他应该官方工作人员用来备份服务器资料的一个目录.删除也没什么关系.& o: y* H6 w' n2 R. I
log目录,web目录,均是记录玩家的情况
: E" f* N$ i6 s" Zuserdata下是记录当天上线所有玩家的资料,同时,当你点击DB服务器中的backup按钮时
/ i; ?; I) j' |: Q: ~$ Q他会在这个目录中产生一个备份文件,但是这个备份文件不要当作人物资料来用,具体原因
, T: M. z: r z# _ z# S& Y* Y还不太明白,只知道会导致玩家元气永远比原来差一些的问题.+ ^1 z- E* b# n/ Y; T
% r" h! R3 K j* i) P3 d
DB.exe,这个文件是DB服务器文件,没什么好讲的,说说他的按钮吧.1 e' W7 L" L5 ~& c* H9 t1 ]
reload,字面意思是重新读取,具体作用未做测试.
+ T* T" J8 H6 k) caddrecord,增加用户数量.也就是DB默认的建立最大人物资料为10000,若你服务器人气很高,: k; ~, {# | O5 {
到最后玩家无法建立新角色的时候,点击这个按钮,增加数据库容量就可以了.
" p1 H! [: T L% m6 G. ^save today.sdb,存盘当天玩家上线记录." w# u- c! S b
back up,备份数据库,备份的数据库会产生在userdata目录下.4 N3 ?+ I/ a% \. Q3 y! i5 d
3 f/ ], ^' Q4 x2 e( I; S( q' X& F4 z
DB.ini,DB服务器配置文件.
e/ a) G3 Q* J8 @7 J[DB_SERVER] 明确服务器名称.
+ u* J: W/ C0 S& w: l( ^FileName=testdb.fdb 数据库名称.运行DB服务器后会产生一个以这个为名的数据库,但以数字区别.
7 ~: q' I, S. u# J) [2 ^* nBufferSizeS2S=1048576 数据库的规格
* v! U+ k! k/ |6 m0 A) kGateAcceptPort=3051 DB与GATE连接的端口.TCP协议.
# R" _+ n% y) s) q; h9 C! H% JRemotePort=1024 接收端口.应该是玩家下线后TGS与DB连接的端口.
8 S$ I1 R3 R) c( @! NItemRemotePort=1020 似乎是物品记录端口,但是实际上物品记录端口在TGS下.7 [, g( t6 y7 W+ ~8 b! e
; q6 ~( x& y5 U
6 A9 T) A/ h3 q/ L* S4 [! }2 ~IPList.txt文件.
: Q; ^9 o U. J. Q$ q( F9 P记录远程GATE连接的IP.一般设置为127.0.0.1
+ N6 E9 L( P2 f" s$ R+ I4 N- ?$ G; X z! N& ~7 I4 S
remoteip.txt文件. k" C+ t, l, ]' u7 Y6 s5 e
记录远程TGS连接的IP.一般设置为127.0.0.14 n3 L) e* M" v6 M
4 n% C, P0 ~! o1 `5 z
ModifyMagic.txt文件.
) i5 }4 |( p/ ~感觉目前似乎没有用到.具体作用有待补充." }% e! K; O# f, ~% I5 J
3 r" Y: a2 ~; A8 e" `! u9 C
* V. d" g8 j" L! {0 k6 i# t! _6 ]3 Z E2 _$ ^+ ]
GATE服务器. h3 A1 F8 _. I
9 n! i3 k z; Z5 k% f
log目录,记录目录.
/ l$ b2 U& w/ o. S
* U8 z! P9 V7 _" d m- sCreateChar.txt文件,定义新手出生身上所带物品,但不可定义段位,不可定义数量.
' r2 K8 |& i/ [[CLOTHES]
' \" v K6 ^1 j. U2 X- fCLOTHES_COAT_MAN=男子上衣 男子新手出生后所拥有上衣.
+ w7 \ O( H& x. H0 oCLOTHES_PANTS_MAN=男子短裤 男子新手出生后所拥有的裤子.$ o7 Z# ?6 l, c& H. P; I
CLOTHES_COAT_WOMAN=女子上衣 女子新手出生后所拥有上衣.
% |* S/ Y3 q) a4 ACLOTHES_PANTS_WOMAN=女子短裤 女子新手出生后所拥有的裤子# _6 l/ E% B- m. k9 `* l( ~. c
0 }4 U8 q, o3 H2 I
[WEAPON]
, t1 [. E) q2 u4 FWEAPON_SWORD=长剑 出生后拥有的剑 实际上即使不是此类物品也可以
P7 T5 }2 T* K& T/ `% {WEAPON_KNIFE=长刀 出生后拥有的刀 实际上即使不是此类物品也可以
; f. Y/ W% n/ W# uWEAPON_SPEAR=长枪 出生后拥有的枪 实际上即使不是此类物品也可以
( o, x% K) X+ x5 ~WEAPON_AX=斧头 出生后拥有的斧 实际上即使不是此类物品也可以' K! O7 s( [1 e
& O S, z. {$ q z) e. j+ G) w
[ETC]
: w/ r% [) C8 Q% b0 u3 K' sETC_01=五色药水 新手出生后拥有的物品1.这里要说一下) {' a+ R& O* \1 _1 t6 f
+ H" @$ x& g- h. G即使你定义为没有耐久的物品,他出生后还是会有耐久的.
7 d9 T# n5 z" b" D2 s9 o即使你设置了ETC_02或03或着N+1都是不读取的.如果想要他读取除非去修改GATE主程序.
n* D' M, k$ x
/ l/ J7 T" x' D0 F
. M# Z' D9 o2 l2 LDontChar.txt 定义不允许建立的角色名.
# W8 f* l/ } T$ ]2 v E* [- P# r4 J; R# E/ m1 v! j
# Q8 N0 C; n0 o! \" y+ i% \2 ~5 Sgate.ini文件,GATE服务器配置文件.这里详细说一下., K l8 @$ P8 `2 [
1 R& l/ V1 M7 a/ r8 K; z% r$ V8 e
[GATE_SERVER] 定义服务器名称
- R. E6 G" g# [1 R! @) z" aLOCALIP=127.0.0.1 定义对外IP
5 N6 `9 u L, x" W2 w: ?3 \LOCALPORT=3054 定义与balance连接的端口
J: \ |2 u& s3 jLIMITUSERCOUNT=500 定义玩家最大上线允许 0为不限制.* b; A1 d. b t1 K# S9 \6 G2 R
CHECKPAIDINFO=FALSE 是否收费服务器.' w+ `) V l4 ?8 _1 h
BALANCEIP=127.0.0.1 定义balance服务器IP' H6 J, {- Q4 n) [, m" N0 Y
BALANCEPORT=3030 定义balance服务器端口.UDP协议.5 V: r# @! i; R0 u
SERVERNAME=test 定义服务器名4 _7 g/ K: D e2 f) z
BUFFERSIZES2S=1048576 服务器缓冲.应该是这样,若讲错请指正,不胜感激
1 z- a" X8 U5 f% f% g- oBUFFERSIZES2C=8192 新手村缓冲.应该是这样,若讲错请指正,不胜感激
6 J# z! C- w0 U9 D
+ {6 U( t3 R) M2 r! `8 u3 L[GAME_SERVER] 定义服务器名称 W) E! [! G( W; C
REMOTEIP=127.0.0.1 游戏主服务器IP地址,也就是TGS的IP地址.经典的3052漏洞就是这个.; P3 a4 [3 j1 i _
REMOTEPORT=3052 游戏主服务器端口.一定要封.0 F8 Y4 v" Q: {& v9 c! L" R$ r
% `- ^- r7 o/ i1 O# B2 X# J, m
[DB_SERVER] 定义服务器名称
' G) o; F/ N: ^' JREMOTEIP=127.0.0.1 人物资料服务器IP地址,也就是DB服务器的IP地址.
- k+ P# F& r6 N1 h' c' p RREMOTEPORT=3051 人物资料服务器端口,一定要封.
5 h! s& N# S& k- R6 R3 s, i Q
" A4 w6 w4 N6 i+ B4 V# |) k[LOGIN_SERVER] 定义服务器名称- ~/ e" L, ?8 a- @# p5 V: ?
REMOTEIP=127.0.0.1 登陆服务器IP地址.% n8 r/ E9 {3 S S% M
REMOTEPORT=3050 登陆服务器端口, P P/ t, \2 R
7 s" P$ v! ~- t" X" i/ S5 b
[PAID_SERVER] 定义服务器名称 (通常删除)6 r* G% H, j5 X5 Q" u6 |, Y& a
REMOTEIP=127.0.0.1 定义冲卡验证服务器IP地址 (通常删除)
% p, L3 B1 Q6 N0 m9 c& i. zREMOTEPORT=80 定义冲卡验证服务器端口 (通常删除)* F" ~+ {5 y- b t9 z" v, a+ Y
' ]$ k) O$ \7 b% y
6 z6 q) C& ?6 L+ Atgs1000.acs文件。GATE的语言库。7 ^3 A7 _9 M V1 a$ ~# U5 \% c" k
+ U! x. o" Z0 w+ L' _& y0 BVillage.Ini文件。定义新手出生地图。这里讲一下。
& {+ ^! M9 Q0 g# N# ?) Q/ c, S h2 N, z/ M$ T1 y( O
[VILLAGE] 定义配置文件名' ~7 U" t' H4 A) ]- s) K% ^! o2 F
, A; D i! T- \6 m! KCOUNT=1 定义新手村可选择的数量
/ @3 k4 N; F4 j2 X. b' {6 Z; ?" _- I
NAME0=新手村 定义第一个新手村名称,其实并不读取,只是让技术员用来区别。& D5 K. `. S/ O* ^8 K( l
X0=178 第一个新手村X坐标7 `: {, C, c- Y( V
Y0=238 第一个新手村Y坐标
2 M) |' g) l# S c3 l" k2 i2 lSERVERID0=0 第一个新手村的地图编号,对应TGS\INIT\MAP.SDB中的编号.
( J$ v8 x9 y) ?, T8 H2 M |