服务器列表表存储了可用的游戏服务器信息,包括服务器名称、地址、端口、类型等。这些信息会显示在游戏客户端的服务器选择界面上,并用于连接到特定的游戏服务器。
字段名 | 类型 | 属性 | 描述 |
---|---|---|---|
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 | 客户端版本 |
服务器的唯一标识符,是自动递增的整数。这个字段是表的主键,用于在其他表中引用特定的服务器。
示例值: 1, 2, 3
服务器的名称,显示在游戏客户端的服务器选择界面上。这个名称应该是描述性的,帮助玩家识别不同的服务器。
示例值: "主服务器", "PvP服务器", "测试服务器"
服务器的IP地址或域名,用于客户端连接到服务器。这可以是公网IP地址、域名或内网IP地址(如果客户端和服务器在同一网络中)。
示例值: "127.0.0.1", "192.168.1.100", "example.com"
这两个字段用于本地网络连接。如果客户端和服务器在同一个本地网络中,客户端会使用localAddress而不是address字段来连接服务器。localSubnetMask用于确定客户端是否在本地网络中。
示例值:
服务器监听的端口号,客户端会使用这个端口连接到服务器。默认值是8085。
示例值: 8085, 8086, 8087
服务器图标,决定了在服务器选择界面上显示的图标类型。这个值表示服务器的类型。
示例值: 0, 1, 6
服务器标志,提供关于服务器状态的额外信息。这些标志可以组合使用(通过位运算)。
示例值: 0, 1, 2, 3(推荐+新)
服务器的时区设置,影响服务器内的游戏时间。
示例值: 0, 4, 6
允许登录服务器的最低安全等级。这可以用来限制只有特定权限级别的账号才能登录到服务器,例如创建一个只有GM才能访问的测试服务器。
示例值:
服务器的人口密度,这个值由服务器自动计算和更新,用于在服务器选择界面上显示服务器的拥挤程度。
示例值:
服务器支持的客户端版本号。只有匹配这个版本号的客户端才能连接到服务器。对于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后,虽然不需要重启服务器,但客户端可能需要重新启动才能使用新的连接信息。
使用以下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 = 当前在线玩家数 / 服务器配置的最大玩家数
这个值会影响服务器选择界面上显示的服务器拥挤程度: