表概述

outdoorpvp_template表属于OutdoorPvP Templates系统,配置野外PVP区域(如地狱火半岛的塔楼、纳格兰的哈兰、祖达克等)。每个TypeId对应一种野外PVP类型,由C++脚本实现具体的占领/争夺逻辑。

主键为 TypeId,ScriptName绑定具体的OutdoorPvP子类脚本。

表结构

字段名数据类型默认值说明
TypeIdTINYINT UNSIGNEDNOT NULL野外PVP类型ID(主键)
ScriptNameCHAR(64)''C++脚本类名
commentTEXTNULL区域描述

重要字段详解

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逻辑。