📖 表说明
法术脚本表定义了法术施放时执行的脚本命令。这个表允许开发者通过脚本系统为法术添加自定义行为和效果,扩展法术系统的功能。
数据来源: 本文档基于AzerothCore官方Wiki和官方数据表借鉴.sql编写,确保字段定义的准确性和权威性。
📊 表结构
| 字段名 | 数据类型 | 属性 | 键 | 默认值 | 描述 |
|---|---|---|---|---|---|
| id | int UNSIGNED | 不为空 | 0 | 脚本ID,对应法术效果 | |
| effIndex | tinyint UNSIGNED | 不为空 | 0 | 效果索引(0-2) | |
| delay | int UNSIGNED | 不为空 | 0 | 执行延迟(毫秒) | |
| command | int UNSIGNED | 不为空 | 0 | 脚本命令类型 | |
| datalong | int UNSIGNED | 不为空 | 0 | 数据参数1 | |
| datalong2 | int UNSIGNED | 不为空 | 0 | 数据参数2 | |
| dataint | int | 不为空 | 0 | 数据参数3(整数) | |
| x | float | 不为空 | 0 | X坐标 | |
| y | float | 不为空 | 0 | Y坐标 | |
| z | float | 不为空 | 0 | Z坐标 | |
| o | float | 不为空 | 0 | 方向(Orientation) |
注意: spell_scripts表没有主键定义
🔑 核心字段详解
🆔 id - 脚本ID
详细说明:脚本ID,对应法术的效果ID。
取值范围:对应法术效果ID
- 标识脚本所属的法术效果
- 通常对应法术ID
- 用于关联脚本和法术
- 多个脚本可以对应同一个法术
示例:
- id=12345 - 法术12345的脚本
- id=67890 - 法术67890的脚本
📊 effIndex - 效果索引
详细说明:法术效果索引,标识法术的哪个效果触发脚本。
取值范围:0-2(法术最多有3个效果)
- 标识法术的哪个效果触发脚本
- 值为0表示第一个效果
- 值为1表示第二个效果
- 值为2表示第三个效果
示例:
- effIndex=0 - 法术的第一个效果触发脚本
- effIndex=1 - 法术的第二个效果触发脚本
⏱️ delay - 执行延迟
详细说明:脚本执行的延迟时间,以毫秒为单位。
取值范围:0-无限(毫秒)
- 定义脚本执行的延迟时间
- 值为0表示立即执行
- 值为1000表示延迟1秒执行
- 用于创建延迟效果或序列脚本
示例:
- delay=0 - 立即执行脚本
- delay=5000 - 延迟5秒执行脚本
🔧 command - 脚本命令类型
详细说明:脚本命令类型,定义脚本执行的具体操作。
取值范围:0-100+(不同的命令类型)
- 定义脚本执行的操作类型
- 不同的值代表不同的命令
- 例如:召唤生物、播放动画、传送玩家等
- 用于扩展法术的功能
示例:
- command=10 - 召唤生物命令
- command=15 - 传送玩家命令
其他字段说明
datalong: 数据参数1,根据不同的command命令有不同的含义。
datalong2: 数据参数2,根据不同的command命令有不同的含义。
dataint: 数据参数3(整数),根据不同的command命令有不同的含义。
x、y、z: 坐标参数,用于需要位置信息的命令(如传送、召唤等)。
o: 方向参数,用于需要方向信息的命令。
💡 实际案例
脚本 召唤生物脚本
配置法术施放后召唤生物
-- 召唤生物脚本
DELETE FROM spell_scripts WHERE id = 12345;
INSERT INTO spell_scripts VALUES
(12345, 0, 0, 10, 100, 0, 0, 0, 0, 0, 0);
效果: 法术12345的第一个效果立即执行召唤生物命令(command=10),召唤生物ID为100(datalong=100)。
脚本 传送玩家脚本
配置法术施放后传送玩家到指定位置
-- 传送玩家脚本
DELETE FROM spell_scripts WHERE id = 67890;
INSERT INTO spell_scripts VALUES
(67890, 0, 0, 15, 0, 0, 0, 100.0, 200.0, 50.0, 0.0);
效果: 法术67890的第一个效果立即执行传送命令(command=15),将玩家传送到坐标(100.0, 200.0, 50.0)。
⚡ 快速参考
常用脚本命令
| 命令值 | 命令类型 | 说明 |
|---|---|---|
| 10 | 召唤生物 | 在指定位置召唤生物 |
| 15 | 传送玩家 | 将玩家传送到指定位置 |
| 其他值 | 其他命令 | 根据脚本系统定义的其他命令类型 |
表关系
- 法术表: spell_dbc - 法术数据表
- 关联字段: id → spell_dbc.ID
🔗 相关表格
- spell_dbc - 法术数据表
- spell_script_names - 法术脚本名称表
- spell_proc - 法术触发表
❓ 常见问题
Q1: 如何为法术添加自定义脚本?
在spell_scripts表中添加条目,指定法术ID(id)、效果索引(effIndex)和脚本命令(command)。根据命令类型设置相应的数据参数。
Q2: 如何创建延迟执行的脚本?
设置delay字段为延迟时间(毫秒)。例如,delay=5000表示脚本在法术施放5秒后执行。
Q3: 脚本命令的具体含义是什么?
不同的command值代表不同的脚本命令。具体含义需要参考AzerothCore脚本系统的文档,不同的命令有不同的数据参数含义。