三千论坛

标题: 服务端参数配置和功能讲解 [打印本页]

作者: 异仟年    时间: 2022-9-5 18:43
标题: 服务端参数配置和功能讲解
千年服务端主要分5个程序,本文详细介绍了服务端各类重要参数的含义,方便新手GM提高对服务端参数配置和功能的认知!
) c) W: ?  p! ^! G
  \4 ?$ U7 M6 _& Q" z- }1Balance 网络均衡服务器。
; s+ T8 {8 W1 K$ E6 M+ |: t: k2DB 人物数据服务器.注意:这里不包含福袋数据和门派数据等.4 `2 X7 g/ j6 U
3: GATE 网关服务器.
) o( f0 p% W; u  ^& F* D6 V  d4: login 登陆服务器. 帐号密码等数据在这里.
  I6 E4 c. O0 ^2 n. Z, n5: TGS 游戏主服务器. 游戏大部分设置均在这里.- _, O8 \  R  ?7 c: {9 g0 b' ?! q
) n- u* N; s; @7 U; `0 n( F
下面讲下他们的工作原理.6 f( l% r, j9 o6 B/ }
' `" L4 w6 u2 W; ]' F) ?5 X9 d3 o
首先,玩家通过TCP协议3053端口连接到Balance服务器,Balance接到连接命令后,
6 w8 {1 F3 k4 u9 C/ T4 P( K2 o1 g( @将连接信息转化为UDP协议通过3030端口转到GATE服务器.简单的说Balance只是负责
; l% o1 A: R1 [6 w8 k' F# C中转.然后GATE服务器在使用TCP协议连接TGS服务器的3052端口,TGS端口连接正常,* P0 }% _: Q# Z2 }& N! B
则返回信息到GATE,GATE再验证DBlogin服务器,若连接正常,则发送信息连接成功到$ E9 k' Z5 |, a$ m8 z1 C
客户端.$ f, R4 h2 v1 o' |2 q
" ~+ y( Q, k- u: V
再说服务器所牵扯的端口. (以下端口均为未修改的默认端口)6 ^7 v9 k  I. {

6 i5 E) ^' b9 b! O: g; n) nBalance服务器 对外TCP协议3053 连接GATE-UDP协议3030.
1 ?1 _3 {" n3 J$ a4 [5 O: uDB服务器 TCP协议3051连接GATE.: k0 e2 y, W4 N0 ]8 n  h$ d
GATE服务器 对外端口3054-TCP协议.注意,虽然3054对外,但是直接连接3054会出现版本错误的提示.* l( H; L5 q7 ~8 K7 ^7 T8 R8 j
UDP协议连接balance3030.TCP协议连接TGS服务器的3052 TCP协议连接DB3051 TCP协议连接login
2 T/ a$ E0 z! V7 B7 ?3050 这里最重要的一个,也是很多朋友不明白的地方,那就是paid服务器的端口,paid服务器为冲卡% ?& T0 h: k& L3 h, G$ u1 |; x
验证服务器,通常做私服只需将其删除即可,也就是说并不是GATE服务器要亮4个灯才正常,这是很多朋友
- v' L: l: [9 ?8 i9 t+ y# P- o的误区.* H! N, p; @' E6 d( e
login服务器 TCP协议连接GATE3050- d' h$ V9 P. Y3 I: U
TGS服务器 TCP协议连接DB3051 其中还有一些物品记录服务器等.
& d* @1 v9 G0 z: X. k" ^! J0 m
4 k' V1 A7 T0 X7 C/ I! Q. I3 s  j0 `7 R1 u) [
再讲每个服务器中的配置.
% {9 {6 u4 T& ~/ w. u& d2 D/ E! q& R2 @! X5 F; c+ Z, z
Balance服务器 目录中的balance.ini中配置5 L/ `3 ~, E4 G0 V, t4 r6 W; l8 `
[BALANCE]
; o9 p+ k! G3 w$ h" n: xTCPLOCALPORT=3053( b/ H4 v7 Q+ \, L! O
UDPLOCALPORT=3030
8 _* H+ B1 |4 m$ ]) m基本不需要修改,若你想开启一机双线,那就要双开balanceGATE," [9 z+ [1 y; Z( u
若需要一机多区,就要双开balanceGATETGS
1 p1 y+ w/ }0 D5 t2 D3 s4 L这也就是克星一机多区的工作原理.* c5 V: |, x6 ?6 A+ O9 X8 n. v( U
但是官方原版的balance服务器并不读取balance中的TCP协议中设置的端口,也就是你即使设置4053: i7 ~6 @* \2 D8 H/ e2 L
他一样是在3053工作.但是UDP协议中的3030是读取的,克星就是改写了balance服务器,让他可以从
3 _' T' B9 \0 P& ~配置文件中读取用户所设置的端口来实现一机多区的.; H' r: L7 b+ `8 n
如果你想不使用克星工具实现一机多区,应该做以下设置.0 |' K2 L% b  p  n
复制另一份balance出来,打开balance.ini修改
9 D- |  ]! c& y[BALANCE]
: O- W1 s- p2 v" e: c  ]- |& h& yTCPLOCALPORT=4053
0 [) e5 p# [  F3 _$ wUDPLOCALPORT=4030
9 e: P# H+ K0 H. [0 q' X这里修改后注意GATE.iniUDP协议3030端口为4030& a, w: I# ]" W8 @4 Z! ?
然后打开UE,查找ED0B修改为D50F.注意,有很多个,修改最后一个就可以了.这样他就在4053端口监听了." T" z; k3 W- Z. E: s8 h

: O- J; j0 P- J7 D题外话:很多朋友很不理解16进制编辑.这里我给大家稍微讲一下.0 F8 c8 j+ n9 G1 a4 a4 b' t5 [
打开windows自带的计算器,选择查看-科学型,然后选择10进制" V  s) s8 V7 l- K
按下3053,再选择为16进制,你会发现305316进制中显示为BED  j+ c& _, ?# V, e' }
但是为什么要查找ED0B,因为在程序中这些东西都是反写的,
0 n3 e  O/ y, s. l; l: g以两个字母为一个单位,也就是说假如为6D2E,你在查找是应该找2E6D- R; Z8 P: i( X% [" R
若是奇数就要加一个0来补齐.
: n( K9 y- p% x' ~! Y, D. C
" z0 `2 L7 c& Y: b: f" {$ q# N再来看看DB服务器。
5 t$ e9 w" |+ j2 c' n  z+ i; \! }/ J; \7 U8 W: h
DB服务器下目录比较多,我们一个个来讲9 j+ u9 z6 a3 Q
backup目录本身DB服务器不产生,也不在他的目录下增加任何文件,
; ?& S: l7 R: T: Y' e# f根据笔者猜测,他应该官方工作人员用来备份服务器资料的一个目录.删除也没什么关系.
+ _. k/ F+ _0 M2 X1 ]  xlog目录,web目录,均是记录玩家的情况  y3 T! P9 F$ x
userdata下是记录当天上线所有玩家的资料,同时,当你点击DB服务器中的backup按钮时
* l8 [: b9 x/ y7 f$ Q: `他会在这个目录中产生一个备份文件,但是这个备份文件不要当作人物资料来用,具体原因
) `2 D5 E2 U4 A% @  @还不太明白,只知道会导致玩家元气永远比原来差一些的问题.
6 \) C5 r7 `  N5 i* H6 _% M) c. K& ?( a1 B2 {* y7 B
DB.exe,这个文件是DB服务器文件,没什么好讲的,说说他的按钮吧.
+ D$ F: ]2 b; l) s4 P4 treload,字面意思是重新读取,具体作用未做测试.; T: J" R5 a9 V, f
addrecord,增加用户数量.也就是DB默认的建立最大人物资料为10000,若你服务器人气很高,
' l3 X% R& _/ |到最后玩家无法建立新角色的时候,点击这个按钮,增加数据库容量就可以了./ q; e# d. E9 i. d
save today.sdb,存盘当天玩家上线记录.: ~0 X* T. A% s& l* Q: z  j& f
back up,备份数据库,备份的数据库会产生在userdata目录下.
4 ?4 B% n; l4 ~- E$ @* w2 l- q% N" w9 j8 `/ L. M
' j; y" i8 h( W6 ]
DB.ini,DB服务器配置文件./ |2 z6 {7 j# Z- C! B6 S
[DB_SERVER] 明确服务器名称.! e5 G/ h9 }: I2 ?& u, y
FileName=testdb.fdb 数据库名称.运行DB服务器后会产生一个以这个为名的数据库,但以数字区别.4 R0 l2 s( n+ h8 @9 q0 i, G. u
BufferSizeS2S=1048576 数据库的规格3 W) ^7 I# _+ y. c$ M/ f
GateAcceptPort=3051 DBGATE连接的端口.TCP协议.8 Y! D# J* Y. M
RemotePort=1024 接收端口.应该是玩家下线后TGSDB连接的端口.( _- L# ^* ]& b: \* G
ItemRemotePort=1020 似乎是物品记录端口,但是实际上物品记录端口在TGS.2 A- }. {* p, Y! l& p, h
  c0 C% F& w6 ^' ~. h5 Y% R

+ ~8 @! M2 d! ]4 ZIPList.txt文件.
2 d. b3 q7 \& c* P记录远程GATE连接的IP.一般设置为127.0.0.15 `; n! j4 I: k! s- q

0 |; n5 E& @  I( b. u) ^) J+ I( v: Uremoteip.txt文件.1 c, V4 l" p1 T: T  R0 p/ Y4 x
记录远程TGS连接的IP.一般设置为127.0.0.12 L$ S* y: N# e* l" b
& t* X& k( `$ v: J
ModifyMagic.txt文件.
: U, h. Q0 i. O1 d8 q$ ?- N: c感觉目前似乎没有用到.具体作用有待补充.
+ A  A* C7 c9 k; _" _! @0 x
! s( k  h; b$ D, M! R6 z
/ x8 [. y! q5 V) ^6 O
6 r* ]1 s" _5 EGATE服务器.
4 j/ X7 f+ T( s- V7 W2 P1 E$ L5 |" q2 ~
log目录,记录目录.7 X4 @! A' E$ o! `+ E) E
! D. ?, J  u% h/ t" m* C1 H
CreateChar.txt文件,定义新手出生身上所带物品,但不可定义段位,不可定义数量.; G( N0 J, ?1 q  u! \7 H8 k. B
[CLOTHES]7 U4 o* R. P! h% o3 d& ?
CLOTHES_COAT_MAN=男子上衣 男子新手出生后所拥有上衣.
: m3 c  {1 T3 C* vCLOTHES_PANTS_MAN=男子短裤 男子新手出生后所拥有的裤子.8 H9 k# o' q, _7 x
CLOTHES_COAT_WOMAN=女子上衣 女子新手出生后所拥有上衣.7 i  @9 o5 h8 M9 P( Y0 t
CLOTHES_PANTS_WOMAN=女子短裤 女子新手出生后所拥有的裤子+ E9 A, I2 f* X
. K3 J: `6 ~3 |
[WEAPON]
$ ~4 `5 }& z, `  z6 ?WEAPON_SWORD=长剑 出生后拥有的剑 实际上即使不是此类物品也可以- H; s3 {* b, Y4 x/ t
WEAPON_KNIFE=长刀 出生后拥有的刀 实际上即使不是此类物品也可以8 N% A+ c: u5 }0 X4 a
WEAPON_SPEAR=长枪 出生后拥有的枪 实际上即使不是此类物品也可以
& c. j. i: v; B1 KWEAPON_AX=斧头 出生后拥有的斧 实际上即使不是此类物品也可以7 y; R# c* b4 x4 z- h
2 ]5 |. d3 e3 L" G. j1 i
[ETC], ~/ Y$ o3 k& @$ Q4 H5 z
ETC_01=五色药水 新手出生后拥有的物品1.这里要说一下
5 }" Q: v. E" G# H- U  ]1 d. s8 j% e$ Z- q
即使你定义为没有耐久的物品,他出生后还是会有耐久的.
) r# Q" \' W5 }3 c$ M" A即使你设置了ETC_0203或着N+1都是不读取的.如果想要他读取除非去修改GATE主程序.
3 @% b1 q( |+ x" M- _* _( y+ r! {2 P# S% z; b2 @- F

9 `- `$ }# Y( JDontChar.txt 定义不允许建立的角色名., |2 R3 g* k, b) K- J/ ^1 p
, a9 z7 o7 b3 S
8 ]; w6 P, N) R1 ?, a: y
gate.ini文件,GATE服务器配置文件.这里详细说一下.
3 _7 V0 N: @. t( G$ X' P1 _, u6 g; k- a4 w( R: l
[GATE_SERVER] 定义服务器名称
7 _, u# x7 m4 H  ULOCALIP=127.0.0.1 定义对外IP
( R! G+ q) D+ p3 z% O, {8 bLOCALPORT=3054 定义与balance连接的端口5 l- Q, f9 @1 Q/ A) @( G
LIMITUSERCOUNT=500 定义玩家最大上线允许 0为不限制.' l: f8 L7 o) ]
CHECKPAIDINFO=FALSE 是否收费服务器.
7 Y9 }9 U/ ?* H' i, e4 _/ aBALANCEIP=127.0.0.1 定义balance服务器IP4 H2 j( _* k7 C& y, b
BALANCEPORT=3030 定义balance服务器端口.UDP协议.
4 R' u3 h0 ?, NSERVERNAME=test 定义服务器名
5 l3 F: h7 o( k, H" cBUFFERSIZES2S=1048576 服务器缓冲.应该是这样,若讲错请指正,不胜感激8 _: R! ~' `& e0 U+ G% Z" J  ?( W
BUFFERSIZES2C=8192 新手村缓冲.应该是这样,若讲错请指正,不胜感激; b  F+ C# q5 ~' K- U5 o

4 K* O6 \4 T  {! F& a- L[GAME_SERVER] 定义服务器名称; P( G+ Y5 c$ X0 _& o
REMOTEIP=127.0.0.1 游戏主服务器IP地址,也就是TGSIP地址.经典的3052漏洞就是这个.
* G: g; j$ a- E5 s8 w- S0 M! F' iREMOTEPORT=3052 游戏主服务器端口.一定要封.
0 A+ t6 B/ D) D5 Q' G0 j' ]- u4 s5 l3 S7 K- l' z
[DB_SERVER] 定义服务器名称
; I, J' i4 O7 w( S1 ^3 y( dREMOTEIP=127.0.0.1 人物资料服务器IP地址,也就是DB服务器的IP地址.  \6 Q) i+ p* a% |  U9 f' c
REMOTEPORT=3051 人物资料服务器端口,一定要封.1 [/ m/ y" A# V

  r' M7 Z* A- o, D, b[LOGIN_SERVER] 定义服务器名称: G4 M. g2 R3 _' |9 V1 Y
REMOTEIP=127.0.0.1 登陆服务器IP地址.% @2 ?' W0 X0 j) B$ g, C7 Y
REMOTEPORT=3050 登陆服务器端口( Z" W2 \- K2 k- i9 I

/ u2 ^4 C" r2 C1 c/ N0 X[PAID_SERVER] 定义服务器名称 (通常删除)
: \7 N% S4 R, |$ ^: hREMOTEIP=127.0.0.1 定义冲卡验证服务器IP地址 (通常删除)
0 E2 \$ R! j. B9 Y1 O/ V+ pREMOTEPORT=80 定义冲卡验证服务器端口 (通常删除)
' Y1 R1 V+ |3 o$ [; A6 |2 _/ w; z* O. R

2 c4 y- V' O; r1 O- W* atgs1000.acs文件。GATE的语言库。  V3 U) \; y0 K$ i* g9 d( }
2 Z& w' X( r. r/ L  g/ R7 w
Village.Ini文件。定义新手出生地图。这里讲一下。
1 `- U- t  E: ?9 k5 O' d" F# C) }" b. T2 B$ N8 B% O9 C( w
[VILLAGE] 定义配置文件名6 Z2 u/ L, T; j+ J1 y0 ]
9 F6 e. J& a. F5 B
COUNT=1 定义新手村可选择的数量
! T+ ^& Z7 m0 j6 y$ r' U
% o5 p1 q2 W" [NAME0=新手村 定义第一个新手村名称,其实并不读取,只是让技术员用来区别。
5 ]/ g: V+ i& F- z/ Z: qX0=178 第一个新手村X坐标6 |  U* C( Z4 w) H# R. t
Y0=238 第一个新手村Y坐标
8 E3 g% O3 M- ?0 F; p! rSERVERID0=0 第一个新手村的地图编号,对应TGS\INIT\MAP.SDB中的编号.
6 L5 b9 h  `* M





欢迎光临 三千论坛 (http://bbs.3000y.com.cn/) Powered by Discuz! X3.4