区域触发传送表存储了游戏中所有区域触发传送点的信息。当玩家进入特定区域(如副本入口、传送门等)时,会触发传送到指定位置。
| 字段名 | 类型 | 属性 | 描述 |
|---|---|---|---|
| ID | mediumint(8) unsigned | 主键,不为空 | 区域触发器ID,对应AreaTrigger.dbc的ID |
| Name | text | 区域触发器名称(仅供参考,不影响游戏) | |
| target_map | smallint(5) unsigned | 不为空 | 目标地图ID |
| target_position_x | float | 不为空 | 目标X坐标 |
| target_position_y | float | 不为空 | 目标Y坐标 |
| target_position_z | float | 不为空 | 目标Z坐标 |
| target_orientation | float | 不为空 | 目标朝向角度(0-6.28弧度) |
| VerifiedBuild | smallint(5) | 不为空,默认0 | 验证版本 |
以下SQL语句将添加一个从暴风城到铁炉堡的传送点:
INSERT INTO areatrigger_teleport (ID, Name, target_map, target_position_x, target_position_y, target_position_z, target_orientation)
VALUES (5000, '暴风城到铁炉堡传送点', 0, -4918.88, -940.406, 501.564, 5.42);
注意: 添加新的传送点后,还需要在游戏世界中创建对应的区域触发器。这通常需要使用地图编辑工具或通过脚本实现。
以下SQL语句将修改ID为45的传送点(通常是死亡矿井的入口)的目标位置:
UPDATE areatrigger_teleport
SET target_position_x = -16.4, target_position_y = -383.07, target_position_z = 61.78, target_orientation = 1.86
WHERE ID = 45;
以下SQL语句将删除ID为45的传送点:
DELETE FROM areatrigger_teleport
WHERE ID = 45;
警告: 删除官方传送点可能会导致玩家无法正常进入某些区域或副本。请谨慎操作。
使用以下SQL语句查询特定地图的所有传送点:
SELECT * FROM areatrigger_teleport
WHERE target_map = 地图ID;
使用以下SQL语句查询特定副本的入口传送点:
SELECT * FROM areatrigger_teleport
WHERE target_map = 副本地图ID;
不需要完全重启服务器,但需要重新加载区域触发器数据:
.reload areatrigger_teleport
区域触发传送表本身不支持等级限制。如果需要添加等级限制,可以:
区域触发传送表本身不支持钥匙限制。如果需要添加钥匙限制,可以:
可能的原因包括:
提示: 可以使用以下命令在游戏中测试传送:
.go xyz 目标地图ID 目标X坐标 目标Y坐标 目标Z坐标