outdoorpvp_template 表
outdoorpvp_template表定义野外PVP区域的模板配置,通过TypeId关联C++脚本实现区域控制、占领等机制。
表概述
outdoorpvp_template表属于OutdoorPvP Templates系统,配置野外PVP区域(如地狱火半岛的塔楼、纳格兰的哈兰、祖达克等)。每个TypeId对应一种野外PVP类型,由C++脚本实现具体的占领/争夺逻辑。
主键为 TypeId,ScriptName绑定具体的OutdoorPvP子类脚本。
表结构
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
| TypeId | TINYINT UNSIGNED | NOT NULL | 野外PVP类型ID(主键) |
| ScriptName | CHAR(64) | '' | C++脚本类名 |
| comment | TEXT | NULL | 区域描述 |
重要字段详解
TypeId (野外PVP类型)
预定义的野外PVP区域类型:
- 1 - 地狱火半岛(荣耀堡/萨尔玛塔楼)
- 2 - 赞加沼泽(双塔)
- 3 - 泰罗卡森林(奥金顿灵魂塔)
- 4 - 纳格兰(哈兰)
- 5 - 冬拥湖
- 6 - 祖达克
ScriptName (C++脚本)
关联的C++ OutdoorPvP子类脚本。必须与源码中的类名完全匹配。如果ScriptName为空,该野外PVP类型不会激活任何逻辑。
实战案例
启用地狱火半岛野外PVP
INSERT INTO outdoorpvp_template (TypeId, ScriptName, comment)
VALUES (1, 'outdoorpvp_hp', '地狱火半岛-塔楼争夺')
ON DUPLICATE KEY UPDATE ScriptName='outdoorpvp_hp';
查询所有已激活的野外PVP区域
SELECT TypeId, ScriptName, comment
FROM outdoorpvp_template
WHERE ScriptName != ''
ORDER BY TypeId;
常见问题
Q: 野外PVP不生效?
A: 检查ScriptName是否与C++源码中的类名完全一致(区分大小写),确认对应区域的地图数据(go/creature)已正确配置,以及area_table中设置了正确的区域PVP标志。
Q: 如何禁用某个野外PVP区域?
A: 将该记录的ScriptName设为空字符串即可禁用该区域的野外PVP逻辑。