千年的服务端主要分5个程序,本文详细介绍了服务端各类重要参数的含义,方便新手GM提高对服务端参数配置和功能的认知!' R2 V* l' K) ^. C% `
# \7 k, g. k `$ H! v1 y6 \$ f! {# X
1:Balance 网络均衡服务器。
9 J3 x: H( \' E$ ^- t2:DB 人物数据服务器.注意:这里不包含福袋数据和门派数据等.
0 {% {$ C6 @: L8 x( G3 o8 o3: GATE 网关服务器.3 g6 B& ?% A: Q" U: Z
4: login 登陆服务器. 帐号密码等数据在这里." x V5 m/ c2 m/ J3 P: W
5: TGS 游戏主服务器. 游戏大部分设置均在这里.9 g0 _3 }! s7 O- }- [0 @ N5 A
3 C+ ~: S3 q; N6 H! K* G' [下面讲下他们的工作原理.
* i7 z2 h, [, T9 Q
) l/ e; A- X, I9 B首先,玩家通过TCP协议3053端口连接到Balance服务器,当Balance接到连接命令后,
# W5 M7 `! ^7 L; J4 y; T+ a' h+ A$ e& f将连接信息转化为UDP协议通过3030端口转到GATE服务器.简单的说Balance只是负责: Y5 i* V: f/ ]# {1 j% I
中转.然后GATE服务器在使用TCP协议连接TGS服务器的3052端口,若TGS端口连接正常, x; w; x1 z# Q% Q( i5 e; F1 ~
则返回信息到GATE,GATE再验证DB与login服务器,若连接正常,则发送信息连接成功到
+ i8 Y! J" t& [2 Z, ~( C6 u2 z客户端.9 G1 k! f2 d! a& J2 q
) l$ c. \8 {, }; \' F5 Y! r再说服务器所牵扯的端口. (以下端口均为未修改的默认端口)
* v" b: o: Z3 r# G0 ^" s/ C6 z0 d7 _. H' Y; T3 }- b
Balance服务器 对外TCP协议3053 连接GATE-UDP协议3030.8 R1 l4 b _- U" B2 b2 r6 r+ U7 I
DB服务器 TCP协议3051连接GATE.
5 C. ~2 k s* Y4 H6 jGATE服务器 对外端口3054-TCP协议.注意,虽然3054对外,但是直接连接3054会出现版本错误的提示.- t! I$ C( ~7 L X
UDP协议连接balance的3030.TCP协议连接TGS服务器的3052 TCP协议连接DB的3051 TCP协议连接login. u7 v n2 z* f) t
的3050 这里最重要的一个,也是很多朋友不明白的地方,那就是paid服务器的端口,paid服务器为冲卡9 n! ^! e% X u
验证服务器,通常做私服只需将其删除即可,也就是说并不是GATE服务器要亮4个灯才正常,这是很多朋友' C1 p4 ^" u3 N9 a$ V
的误区.7 i# X3 {: c5 g' M
login服务器 TCP协议连接GATE的3050
4 U! O9 V) v/ v) m c D9 \TGS服务器 TCP协议连接DB的3051 其中还有一些物品记录服务器等.; K# G# k% Q# s8 y |8 f
4 p/ f3 j: ]* `4 z% B" z9 q" R
) n1 S+ t/ Q" }3 H再讲每个服务器中的配置.
+ m: u6 J2 x N1 j3 T
3 }$ x' a1 r8 w+ |Balance服务器 目录中的balance.ini中配置/ Q! U3 H' u/ _
[BALANCE]
5 g, c8 `5 g' `) v) @: ETCPLOCALPORT=3053
+ I1 c2 m5 {7 ^/ R r! m; TUDPLOCALPORT=3030
& S* ]9 Z" B/ W( I# }基本不需要修改,若你想开启一机双线,那就要双开balance和GATE,8 Z* e8 E8 Q8 |
若需要一机多区,就要双开balance,GATE,TGS。8 u0 }% d: Z2 }9 e8 x5 t! [
这也就是克星一机多区的工作原理.
7 \) ? _) j9 M8 a5 d/ l但是官方原版的balance服务器并不读取balance中的TCP协议中设置的端口,也就是你即使设置4053) ~/ B/ A* E2 P" Z7 g6 a: u8 H& L& K
他一样是在3053工作.但是UDP协议中的3030是读取的,克星就是改写了balance服务器,让他可以从
1 P4 N% @4 X- {/ t. E, F配置文件中读取用户所设置的端口来实现一机多区的.4 M' [# |3 g. L+ W% a& u
如果你想不使用克星工具实现一机多区,应该做以下设置.
& R; _; y% G7 s5 v2 N8 t复制另一份balance出来,打开balance.ini修改4 V/ O8 q9 P5 [) j& q
[BALANCE]/ }; a5 Z& o/ \
TCPLOCALPORT=40538 r H0 S: i6 t/ c5 R4 E2 {
UDPLOCALPORT=4030
) E0 h2 U* _: N6 M7 N这里修改后注意GATE.ini中UDP协议3030端口为4030
: S$ f7 h2 u f7 x4 k然后打开UE,查找ED0B修改为D50F.注意,有很多个,修改最后一个就可以了.这样他就在4053端口监听了.
( R% u3 G9 Y6 y0 F! c8 H% }( _ w6 `4 ?
题外话:很多朋友很不理解16进制编辑.这里我给大家稍微讲一下.
4 K, @7 l6 g) _8 W: F& H打开windows自带的计算器,选择查看-科学型,然后选择10进制, v' ? ?% K( o: M- v
按下3053,再选择为16进制,你会发现3053在16进制中显示为BED, a7 x) d" K4 n& _5 @. N9 W: d
但是为什么要查找ED0B呢,因为在程序中这些东西都是反写的,1 |* G4 X: n' i! Z
以两个字母为一个单位,也就是说假如为6D2E,你在查找是应该找2E6D
2 K5 H% w. ?7 Y3 `4 f若是奇数就要加一个0来补齐.' f0 k( q* `& O; `2 c; i. g' h( T) E
% c4 l: z/ M% M$ {( t/ z9 A) _
再来看看DB服务器。
9 g5 [( l3 [% u1 v( y9 m2 `* S5 \* U
DB服务器下目录比较多,我们一个个来讲6 O: ?, W m: ]3 _: O
backup目录本身DB服务器不产生,也不在他的目录下增加任何文件,( t' t$ O- c7 I5 j1 w; e
根据笔者猜测,他应该官方工作人员用来备份服务器资料的一个目录.删除也没什么关系.
6 E( f: h% b, S: n% Tlog目录,web目录,均是记录玩家的情况, b4 H7 {( `# ?, Q J) I+ E
userdata下是记录当天上线所有玩家的资料,同时,当你点击DB服务器中的backup按钮时) Y3 k: u9 g6 q8 F
他会在这个目录中产生一个备份文件,但是这个备份文件不要当作人物资料来用,具体原因
8 g3 ^8 q2 Z' q+ z. ~% X还不太明白,只知道会导致玩家元气永远比原来差一些的问题.
$ J- m% n Q5 h. ]" X6 X/ y/ y& K- E$ y+ O% Y
DB.exe,这个文件是DB服务器文件,没什么好讲的,说说他的按钮吧.' v" R5 d0 c5 n! o8 I9 d! k( a4 D
reload,字面意思是重新读取,具体作用未做测试.& |2 D+ G+ F' r) P
addrecord,增加用户数量.也就是DB默认的建立最大人物资料为10000,若你服务器人气很高,' ]) c0 ~) O* H y9 v
到最后玩家无法建立新角色的时候,点击这个按钮,增加数据库容量就可以了.% } j ^: O3 ?+ v$ }: T' w; @" q
save today.sdb,存盘当天玩家上线记录.) Q: F- S0 v4 `" }( w% n
back up,备份数据库,备份的数据库会产生在userdata目录下.- S+ E' _7 K3 u, m. T+ _0 R
; E2 c4 Q" k: p) ]7 s, l5 @1 q) z9 F3 X7 X
DB.ini,DB服务器配置文件./ ^* E- d! m5 L3 P' x6 [
[DB_SERVER] 明确服务器名称.
% @% M( M. J4 pFileName=testdb.fdb 数据库名称.运行DB服务器后会产生一个以这个为名的数据库,但以数字区别.3 i. ?1 B* P: W- ~( F
BufferSizeS2S=1048576 数据库的规格
9 k% w, ?" a m( F; ^6 ]: g y4 \4 fGateAcceptPort=3051 DB与GATE连接的端口.TCP协议." C9 G4 k* J' r: `
RemotePort=1024 接收端口.应该是玩家下线后TGS与DB连接的端口.3 ?9 y7 M( u! n3 d: H3 E
ItemRemotePort=1020 似乎是物品记录端口,但是实际上物品记录端口在TGS下.) ]1 D5 F" ]6 V& B2 g, r
% {' i! i Y2 H. d& i; y( @. Q: Q+ W& [/ K% I% o
IPList.txt文件.2 ^# n+ K9 C* Z6 S1 F
记录远程GATE连接的IP.一般设置为127.0.0.1
) i4 ]& h9 {- Q* p3 o( J4 r
% n E2 A& _0 n% N' Uremoteip.txt文件.
9 Q. [$ Y$ l6 C0 u; z记录远程TGS连接的IP.一般设置为127.0.0.13 V1 C; G4 m7 Z9 P( v r- [
4 | E4 L$ A" ?8 C$ d
ModifyMagic.txt文件.6 O0 W1 |" R. ~, V! W Q. _; s( N
感觉目前似乎没有用到.具体作用有待补充.
! E: ~; N V6 I/ u% M
r1 @* W) H: r$ E6 Z- | _- ~% X- R X4 @
1 R: e. q6 Y/ f9 C) T& w0 p3 OGATE服务器.
0 y+ {& l4 _0 @5 R0 g. x2 v8 P9 s# j* [
log目录,记录目录.+ O0 l8 ^) @7 [$ Z V
& N& F, n0 J& ?6 R" V- V$ I5 ]
CreateChar.txt文件,定义新手出生身上所带物品,但不可定义段位,不可定义数量.& F. r' l7 b+ @0 c
[CLOTHES]
7 s ?, N7 r; E8 |CLOTHES_COAT_MAN=男子上衣 男子新手出生后所拥有上衣.
, n+ e5 W9 R# G1 `CLOTHES_PANTS_MAN=男子短裤 男子新手出生后所拥有的裤子.- I* {1 m/ @$ m; p% {# O% D
CLOTHES_COAT_WOMAN=女子上衣 女子新手出生后所拥有上衣.
; |7 a+ ~9 |( A' f J5 WCLOTHES_PANTS_WOMAN=女子短裤 女子新手出生后所拥有的裤子
9 C" V4 ]# j0 M" l0 [% X9 f
4 E0 f! }+ Y- A/ g* @% e1 s5 Q[WEAPON], O# S' Y! L4 V" ~5 A* `0 i" z
WEAPON_SWORD=长剑 出生后拥有的剑 实际上即使不是此类物品也可以
, w1 V/ C' H8 DWEAPON_KNIFE=长刀 出生后拥有的刀 实际上即使不是此类物品也可以 [2 Q% O$ z" v. b& z) X/ {0 O
WEAPON_SPEAR=长枪 出生后拥有的枪 实际上即使不是此类物品也可以3 ~- m) u, F$ [6 a3 V9 f
WEAPON_AX=斧头 出生后拥有的斧 实际上即使不是此类物品也可以
2 I' l% A, p [8 I6 n: T4 o! h4 N3 g+ d
[ETC]
) Q3 g6 X' y/ R1 a. l* l6 |ETC_01=五色药水 新手出生后拥有的物品1.这里要说一下
5 n6 m( f% K% l% c' d1 A* ^! ^" S7 R/ ]' e
即使你定义为没有耐久的物品,他出生后还是会有耐久的.# J% v( p7 D0 { b- s4 z& h
即使你设置了ETC_02或03或着N+1都是不读取的.如果想要他读取除非去修改GATE主程序.
6 k: U7 g. P% t6 O* M" d; `) P6 l" M7 z2 O
" T8 N' q- n9 @DontChar.txt 定义不允许建立的角色名.
; I e) K7 K1 B' d3 F; _: n& |" M6 m
+ b/ j# b+ t0 [' j& V
gate.ini文件,GATE服务器配置文件.这里详细说一下.) d/ X7 K/ a& F2 P, b6 w
G! c2 S- Z; ~1 a% G/ t: d
[GATE_SERVER] 定义服务器名称
& \( D, J& l: h$ G/ k5 _LOCALIP=127.0.0.1 定义对外IP5 K, j9 W* x# I& L8 w
LOCALPORT=3054 定义与balance连接的端口7 P: k% k( w* F6 y; \
LIMITUSERCOUNT=500 定义玩家最大上线允许 0为不限制.
h, o$ E$ `# t* O4 hCHECKPAIDINFO=FALSE 是否收费服务器.
* `+ w; V" a' @" V; dBALANCEIP=127.0.0.1 定义balance服务器IP
1 Y& `5 n1 Z; G/ m2 E% FBALANCEPORT=3030 定义balance服务器端口.UDP协议.
$ S- F6 F0 I6 P7 Y( W: j0 F" `" SSERVERNAME=test 定义服务器名7 t4 K) z5 W( g8 R! ?
BUFFERSIZES2S=1048576 服务器缓冲.应该是这样,若讲错请指正,不胜感激
" u7 T' n* Y/ D/ wBUFFERSIZES2C=8192 新手村缓冲.应该是这样,若讲错请指正,不胜感激
: i: B6 s8 m# J; s0 I& Z4 j1 ^ p) u5 E$ c7 @; `. q0 s+ C
[GAME_SERVER] 定义服务器名称 y. ?, c: Q- O: c# P/ n3 \' e
REMOTEIP=127.0.0.1 游戏主服务器IP地址,也就是TGS的IP地址.经典的3052漏洞就是这个.. j# N( D) T: [& l
REMOTEPORT=3052 游戏主服务器端口.一定要封.
) O% \5 P! c2 I. X) g) C3 W
) u- k" e$ k9 n7 J" y[DB_SERVER] 定义服务器名称7 M+ Q# }; {7 J: q, V; i
REMOTEIP=127.0.0.1 人物资料服务器IP地址,也就是DB服务器的IP地址.' \$ C$ S9 W+ L$ e! G
REMOTEPORT=3051 人物资料服务器端口,一定要封./ G3 ]: S, w, J
* e t& m& h! A8 C/ D) x0 G% i[LOGIN_SERVER] 定义服务器名称
1 D" J$ a" U! s9 A6 m! O3 C$ Y& zREMOTEIP=127.0.0.1 登陆服务器IP地址.
q& p2 g, F7 f( K% YREMOTEPORT=3050 登陆服务器端口# E9 @9 r( p b! M
+ S# {2 I3 }; r: G+ d
[PAID_SERVER] 定义服务器名称 (通常删除)
9 @9 a7 _+ u% l1 D& ]! I% Q3 qREMOTEIP=127.0.0.1 定义冲卡验证服务器IP地址 (通常删除)6 o+ I L( d, ^6 [% @ \
REMOTEPORT=80 定义冲卡验证服务器端口 (通常删除)
n2 H, Z% ` R8 ?& K9 {! d. @/ L5 T* x% [! y% v- U1 y
( |1 r, P0 w- X) }+ s! j. t- g
tgs1000.acs文件。GATE的语言库。
( `4 M8 a7 F% v2 Y% Y7 H
( ~. d4 l8 ]( m% }Village.Ini文件。定义新手出生地图。这里讲一下。0 `( F Y% m" E, A. F8 Q L
6 \( G- B' ^1 M
[VILLAGE] 定义配置文件名0 j0 v$ N" ]8 h& p! S
, y( x" t8 Q% ACOUNT=1 定义新手村可选择的数量9 |6 M3 s: s' Y1 a2 ]
4 b: @$ r8 J$ s0 N: Z
NAME0=新手村 定义第一个新手村名称,其实并不读取,只是让技术员用来区别。% v+ ~. ~7 [' |5 j. e
X0=178 第一个新手村X坐标1 E+ |. j+ X3 |, N8 x
Y0=238 第一个新手村Y坐标: U$ K/ z3 K9 Z5 k2 m' h6 D7 e8 b1 [
SERVERID0=0 第一个新手村的地图编号,对应TGS\INIT\MAP.SDB中的编号.
# y6 s: j" b' o" z7 x* x1 r |