1.9 realmlist - 服务器列表表

服务器列表表存储了可用的游戏服务器信息,包括服务器名称、地址、端口、类型等。这些信息会显示在游戏客户端的服务器选择界面上,并用于连接到特定的游戏服务器。

表结构

字段名 类型 属性 描述
id int(10) unsigned 主键,自增 服务器ID
name varchar(32) 不为空,默认'' 服务器名称
address varchar(255) 不为空,默认'127.0.0.1' 服务器IP地址
localAddress varchar(255) 不为空,默认'127.0.0.1' 本地IP地址
localSubnetMask varchar(255) 不为空,默认'255.255.255.0' 本地子网掩码
port smallint(5) unsigned 不为空,默认8085 服务器端口
icon tinyint(3) unsigned 不为空,默认0 服务器图标 (0=正常, 1=PvP, 4=离线, 6=RP, 8=RP-PvP)
flag tinyint(3) unsigned 不为空,默认2 服务器标志 (0=无, 1=推荐, 2=新服务器, 4=全)
timezone tinyint(3) unsigned 不为空,默认0 服务器时区
allowedSecurityLevel tinyint(3) unsigned 不为空,默认0 允许登录的最低安全等级
population float unsigned 不为空,默认0 服务器人口密度
gamebuild int(10) unsigned 不为空,默认12340 客户端版本

字段详解

id

服务器的唯一标识符,是自动递增的整数。这个字段是表的主键,用于在其他表中引用特定的服务器。

示例值: 1, 2, 3

name

服务器的名称,显示在游戏客户端的服务器选择界面上。这个名称应该是描述性的,帮助玩家识别不同的服务器。

示例值: "主服务器", "PvP服务器", "测试服务器"

address

服务器的IP地址或域名,用于客户端连接到服务器。这可以是公网IP地址、域名或内网IP地址(如果客户端和服务器在同一网络中)。

示例值: "127.0.0.1", "192.168.1.100", "example.com"

localAddress 和 localSubnetMask

这两个字段用于本地网络连接。如果客户端和服务器在同一个本地网络中,客户端会使用localAddress而不是address字段来连接服务器。localSubnetMask用于确定客户端是否在本地网络中。

示例值:

port

服务器监听的端口号,客户端会使用这个端口连接到服务器。默认值是8085。

示例值: 8085, 8086, 8087

icon

服务器图标,决定了在服务器选择界面上显示的图标类型。这个值表示服务器的类型。

示例值: 0, 1, 6

flag

服务器标志,提供关于服务器状态的额外信息。这些标志可以组合使用(通过位运算)。

示例值: 0, 1, 2, 3(推荐+新)

timezone

服务器的时区设置,影响服务器内的游戏时间。

示例值: 0, 4, 6

allowedSecurityLevel

允许登录服务器的最低安全等级。这可以用来限制只有特定权限级别的账号才能登录到服务器,例如创建一个只有GM才能访问的测试服务器。

示例值:

population

服务器的人口密度,这个值由服务器自动计算和更新,用于在服务器选择界面上显示服务器的拥挤程度。

示例值:

gamebuild

服务器支持的客户端版本号。只有匹配这个版本号的客户端才能连接到服务器。对于WotLK(巫妖王之怒)版本,常用的版本号是12340。

示例值: 12340(WotLK 3.3.5a)

使用示例

添加新服务器

以下SQL语句将添加一个新的PvP服务器:

INSERT INTO realmlist (name, address, port, icon, flag, timezone, allowedSecurityLevel, gamebuild)
VALUES ('PvP服务器', '192.168.1.100', 8085, 1, 2, 6, 0, 12340);

修改服务器信息

以下SQL语句将修改ID为1的服务器的名称和地址:

UPDATE realmlist
SET name = '新服务器名称', address = 'new.example.com'
WHERE id = 1;

将服务器标记为离线

以下SQL语句将ID为1的服务器标记为离线:

UPDATE realmlist
SET icon = 4
WHERE id = 1;

相关表

常见问题

如何查看所有可用的服务器?

使用以下SQL语句查询:

SELECT id, name, address, port,
       CASE
           WHEN icon = 0 THEN '正常'
           WHEN icon = 1 THEN 'PvP'
           WHEN icon = 4 THEN '离线'
           WHEN icon = 6 THEN 'RP'
           WHEN icon = 8 THEN 'RP-PvP'
           ELSE CONCAT('未知(', icon, ')')
       END AS type,
       population
FROM realmlist;

修改服务器信息后需要重启服务器吗?

不同的字段有不同的要求:

注意: 修改address或port后,虽然不需要重启服务器,但客户端可能需要重新启动才能使用新的连接信息。

如何设置一个只有GM可以访问的测试服务器?

使用以下SQL语句创建一个只有GM可以访问的测试服务器:

INSERT INTO realmlist (name, address, port, icon, flag, timezone, allowedSecurityLevel, gamebuild)
VALUES ('GM测试服务器', '192.168.1.100', 8086, 0, 0, 6, 2, 12340);

这将创建一个只有安全等级2(GM)及以上的账号才能登录的服务器。

服务器人口密度是如何计算的?

服务器人口密度(population字段)是由服务器自动计算和更新的,计算公式通常是:

population = 当前在线玩家数 / 服务器配置的最大玩家数

这个值会影响服务器选择界面上显示的服务器拥挤程度: