event_scripts表是AzerothCore中事件脚本系统的核心表格,用于定义各种游戏事件触发时执行的脚本动作。这个表格提供了一种灵活的方式来创建复杂的游戏事件序列,如任务事件、区域触发事件、物品使用事件等。
字段名 | 数据类型 | 默认值 | 说明 |
---|---|---|---|
id | INT UNSIGNED | 0 | 事件ID |
delay | INT UNSIGNED | 0 | 延迟时间(秒) |
command | INT UNSIGNED | 0 | 脚本命令 |
datalong | INT UNSIGNED | 0 | 数据参数1 |
datalong2 | INT UNSIGNED | 0 | 数据参数2 |
dataint | INT | 0 | 整数参数 |
x | FLOAT | 0 | X坐标 |
y | FLOAT | 0 | Y坐标 |
z | FLOAT | 0 | Z坐标 |
o | FLOAT | 0 | 朝向角度 |
事件的唯一标识符,用于在其他表格中引用此事件脚本。相同ID的多个记录会按照delay字段的顺序依次执行。
脚本命令执行前的延迟时间,以秒为单位:
要执行的脚本命令类型,定义了具体的动作:
命令值 | 命令名称 | 说明 |
---|---|---|
0 | SCRIPT_COMMAND_TALK | 说话/聊天 |
1 | SCRIPT_COMMAND_EMOTE | 表情动作 |
2 | SCRIPT_COMMAND_FIELD_SET | 设置字段值 |
3 | SCRIPT_COMMAND_MOVE_TO | 移动到指定位置 |
4 | SCRIPT_COMMAND_FLAG_SET | 设置标志 |
5 | SCRIPT_COMMAND_FLAG_REMOVE | 移除标志 |
6 | SCRIPT_COMMAND_TELEPORT_TO | 传送到指定位置 |
7 | SCRIPT_COMMAND_QUEST_EXPLORED | 任务探索完成 |
8 | SCRIPT_COMMAND_KILL_CREDIT | 给予击杀奖励 |
9 | SCRIPT_COMMAND_RESPAWN_GAMEOBJECT | 重生游戏对象 |
10 | SCRIPT_COMMAND_TEMP_SUMMON_CREATURE | 临时召唤生物 |
11 | SCRIPT_COMMAND_OPEN_DOOR | 打开门 |
12 | SCRIPT_COMMAND_CLOSE_DOOR | 关闭门 |
13 | SCRIPT_COMMAND_ACTIVATE_OBJECT | 激活对象 |
14 | SCRIPT_COMMAND_REMOVE_AURA | 移除光环 |
15 | SCRIPT_COMMAND_CAST_SPELL | 施放法术 |
16 | SCRIPT_COMMAND_PLAY_SOUND | 播放声音 |
17 | SCRIPT_COMMAND_CREATE_ITEM | 创建物品 |
18 | SCRIPT_COMMAND_DESPAWN_SELF | 自我消失 |
19 | SCRIPT_COMMAND_LOAD_PATH | 加载路径 |
20 | SCRIPT_COMMAND_CALLSCRIPT_TO_UNIT | 对单位调用脚本 |
根据不同的命令类型,这些字段有不同的含义:
命令 | datalong | datalong2 |
---|---|---|
TALK (0) | 聊天类型 | 语言ID |
EMOTE (1) | 表情ID | 未使用 |
FIELD_SET (2) | 字段ID | 字段值 |
MOVE_TO (3) | 移动选项 | 移动时间(毫秒) |
TELEPORT_TO (6) | 地图ID | 未使用 |
QUEST_EXPLORED (7) | 任务ID | 距离 |
KILL_CREDIT (8) | 生物ID | 未使用 |
TEMP_SUMMON_CREATURE (10) | 生物ID | 消失时间(毫秒) |
CAST_SPELL (15) | 法术ID | 目标类型 |
PLAY_SOUND (16) | 声音ID | 播放标志 |
CREATE_ITEM (17) | 物品ID | 数量 |
通常用于存储文本ID、额外的数值参数或特殊标志。
用于需要位置信息的命令,如移动、传送、召唤等。
场景:NPC说话后做表情动作
说明:事件1001先让NPC说话,3秒后做表情
场景:任务完成时播放声音和施放法术
说明:事件2001播放完成音效,然后施放庆祝法术
场景:召唤生物并让其移动到指定位置
说明:事件3001召唤生物,然后让其移动到指定位置
使用GM命令测试事件脚本:
在脚本中添加说话命令作为调试输出:
event_scripts表经常与以下表格配合使用: