📖 表说明
法术组堆叠规则表定义了同一法术组中法术效果的堆叠行为。这个表控制了哪些法术可以同时生效,哪些法术会互相排斥,是法术系统平衡性的重要组成部分。
数据来源: 本文档基于AzerothCore官方Wiki和官方数据表借鉴.sql编写,确保字段定义的准确性和权威性。
📊 表结构
| 字段名 | 数据类型 | 属性 | 键 | 默认值 | 描述 |
|---|---|---|---|---|---|
| group_id | int UNSIGNED | 不为空 | 主键 | 0 | 法术组ID,对应spell_group.id |
| stack_rule | tinyint | 不为空 | 0 | 堆叠规则类型 | |
| description | varchar(150) | 不为空 | '' | 规则描述 |
主键: group_id
🔑 核心字段详解
🆔 group_id - 法术组ID
详细说明:法术组的唯一标识ID,对应spell_group表中的id字段。
取值范围:对应spell_group.id
- 主键字段,标识法术组
- 对应spell_group.id字段
- 用于定义法术组的堆叠行为
- 同一组中的法术遵循相同的堆叠规则
示例:
- group_id=1 - 第一个法术组
- group_id=100 - 另一个法术组
📚 stack_rule - 堆叠规则类型
详细说明:定义法术组中法术效果的堆叠行为类型。
取值范围:0-10之间的整数
- 定义法术效果的堆叠行为
- 不同的值代表不同的堆叠规则
- 用于控制法术效果的相互作用
- 确保法术系统的平衡性
示例:
- stack_rule=0 - 默认规则(组内法术互相排斥)
- stack_rule=1 - 特殊规则1(组内法术可共存)
其他字段说明
description: 规则描述字段,用于记录堆叠规则的用途和说明。帮助开发者理解规则的具体含义。
💡 实际案例
组 互相排斥的法术组
配置同一组中的法术互相排斥
-- 互相排斥的法术组
DELETE FROM spell_group_stack_rules WHERE group_id = 1;
INSERT INTO spell_group_stack_rules VALUES
(1, 0, '组内法术互相排斥,只能有一个生效');
效果: 法术组1中的所有法术互相排斥,玩家只能同时拥有其中一个法术效果。
组 可共存的法术组
配置同一组中的法术可以共存
-- 可共存的法术组
DELETE FROM spell_group_stack_rules WHERE group_id = 100;
INSERT INTO spell_group_stack_rules VALUES
(100, 1, '组内法术可以共存,多个效果同时生效');
效果: 法术组100中的所有法术可以共存,玩家可以同时拥有多个法术效果。
⚡ 快速参考
堆叠规则类型
| 规则值 | 含义 | 说明 |
|---|---|---|
| 0 | 互相排斥 | 组内法术只能有一个生效 |
| 1 | 可共存 | 组内法术可以同时生效 |
| 其他值 | 特殊规则 | 根据具体需求定义的特殊堆叠行为 |
表关系
- 法术组表: spell_group - 法术组表
- 关联字段: group_id → spell_group.id
🔗 相关表格
- spell_group - 法术组表
- spell_dbc - 法术数据表
- spell_proc - 法术触发表
❓ 常见问题
Q1: 如何创建互相排斥的法术组?
设置stack_rule=0,表示组内法术互相排斥。同一组中的法术只能有一个生效,新法术会替换旧法术。
Q2: 如何创建可共存的法术组?
设置stack_rule=1,表示组内法术可以共存。同一组中的法术可以同时生效,不会互相替换。
Q3: 法术组堆叠规则的作用是什么?
控制同一组中法术效果的相互作用,防止某些法术效果过于强大或冲突,确保游戏平衡性。