conditions表

概述

conditions表是AzerothCore中的条件系统核心表格,用于定义各种游戏逻辑的触发条件。它可以与智能脚本、掉落系统、任务系统、法术系统等多个系统配合使用,提供灵活而强大的条件判断机制。

表格作用

表格结构

字段名 数据类型 默认值 说明
SourceTypeOrReferenceId INT 0 源类型或引用ID
SourceGroup INT UNSIGNED 0 源组别
SourceEntry INT 0 源条目ID
SourceId INT 0 源ID
ElseGroup INT UNSIGNED 0 否则组(OR逻辑)
ConditionTypeOrReference INT 0 条件类型或引用
ConditionTarget TINYINT UNSIGNED 0 条件目标
ConditionValue1 INT UNSIGNED 0 条件值1
ConditionValue2 INT UNSIGNED 0 条件值2
ConditionValue3 INT UNSIGNED 0 条件值3
NegativeCondition TINYINT UNSIGNED 0 负条件(取反)
ErrorType INT UNSIGNED 0 错误类型
ErrorTextId INT UNSIGNED 0 错误文本ID
ScriptName CHAR(64) '' 脚本名称
Comment VARCHAR(255) '' 条件注释说明

字段详细说明

SourceTypeOrReferenceId (源类型或引用ID)

定义条件的应用范围和类型:

源类型 说明
0 CONDITION_SOURCE_TYPE_NONE 无源类型
1 CONDITION_SOURCE_TYPE_CREATURE_LOOT_TEMPLATE 生物掉落模板
2 CONDITION_SOURCE_TYPE_DISENCHANT_LOOT_TEMPLATE 分解掉落模板
3 CONDITION_SOURCE_TYPE_FISHING_LOOT_TEMPLATE 钓鱼掉落模板
4 CONDITION_SOURCE_TYPE_GAMEOBJECT_LOOT_TEMPLATE 游戏对象掉落模板
5 CONDITION_SOURCE_TYPE_ITEM_LOOT_TEMPLATE 物品掉落模板
6 CONDITION_SOURCE_TYPE_MAIL_LOOT_TEMPLATE 邮件掉落模板
7 CONDITION_SOURCE_TYPE_MILLING_LOOT_TEMPLATE 碾磨掉落模板
8 CONDITION_SOURCE_TYPE_PICKPOCKETING_LOOT_TEMPLATE 偷窃掉落模板
9 CONDITION_SOURCE_TYPE_PROSPECTING_LOOT_TEMPLATE 勘探掉落模板
10 CONDITION_SOURCE_TYPE_REFERENCE_LOOT_TEMPLATE 引用掉落模板
11 CONDITION_SOURCE_TYPE_SKINNING_LOOT_TEMPLATE 剥皮掉落模板
12 CONDITION_SOURCE_TYPE_SPELL_LOOT_TEMPLATE 法术掉落模板
13 CONDITION_SOURCE_TYPE_SPELL_IMPLICIT_TARGET 法术隐式目标
14 CONDITION_SOURCE_TYPE_GOSSIP_MENU 对话菜单
15 CONDITION_SOURCE_TYPE_GOSSIP_MENU_OPTION 对话菜单选项
16 CONDITION_SOURCE_TYPE_CREATURE_TEMPLATE_VEHICLE 生物模板载具
17 CONDITION_SOURCE_TYPE_SPELL 法术
18 CONDITION_SOURCE_TYPE_SPELL_CLICK_EVENT 法术点击事件
19 CONDITION_SOURCE_TYPE_QUEST_ACCEPT 任务接受
20 CONDITION_SOURCE_TYPE_QUEST_SHOW_MARK 任务显示标记
21 CONDITION_SOURCE_TYPE_VEHICLE_SPELL 载具法术
22 CONDITION_SOURCE_TYPE_SMART_EVENT 智能事件
23 CONDITION_SOURCE_TYPE_NPC_VENDOR NPC商人
24 CONDITION_SOURCE_TYPE_SPELL_PROC 法术触发

ConditionTypeOrReference (条件类型或引用)

定义具体的条件判断类型:

条件类型 说明
0 CONDITION_NONE 无条件(总是真)
1 CONDITION_AURA 光环/增益效果条件
2 CONDITION_ITEM 物品条件
3 CONDITION_ITEM_EQUIPPED 装备物品条件
4 CONDITION_ZONEID 区域ID条件
5 CONDITION_REPUTATION_RANK 声望等级条件
6 CONDITION_TEAM 阵营条件
7 CONDITION_SKILL 技能条件
8 CONDITION_QUESTREWARDED 任务已完成条件
9 CONDITION_QUESTTAKEN 任务已接受条件
10 CONDITION_DRUNKENSTATE 醉酒状态条件
11 CONDITION_WORLD_STATE 世界状态条件
12 CONDITION_ACTIVE_EVENT 活动事件条件
13 CONDITION_INSTANCE_INFO 副本信息条件
14 CONDITION_QUEST_NONE 无任务条件
15 CONDITION_CLASS 职业条件
16 CONDITION_RACE 种族条件
17 CONDITION_ACHIEVEMENT 成就条件
18 CONDITION_TITLE 头衔条件
19 CONDITION_SPAWNMASK 生成掩码条件
20 CONDITION_GENDER 性别条件
21 CONDITION_UNIT_STATE 单位状态条件
22 CONDITION_MAPID 地图ID条件
23 CONDITION_AREAID 区域ID条件
24 CONDITION_CREATURE_TYPE 生物类型条件
25 CONDITION_SPELL 法术条件
26 CONDITION_PHASEMASK 阶段掩码条件
27 CONDITION_LEVEL 等级条件
28 CONDITION_QUEST_COMPLETE 任务完成条件
29 CONDITION_NEAR_CREATURE 附近生物条件
30 CONDITION_NEAR_GAMEOBJECT 附近游戏对象条件
31 CONDITION_OBJECT_ENTRY_GUID 对象条目GUID条件
32 CONDITION_TYPE_MASK 类型掩码条件
33 CONDITION_RELATION_TO 关系条件
34 CONDITION_REACTION_TO 反应条件
35 CONDITION_DISTANCE_TO 距离条件
36 CONDITION_ALIVE 存活条件
37 CONDITION_HP_VAL 生命值条件
38 CONDITION_HP_PCT 生命值百分比条件
39 CONDITION_REALM_ACHIEVEMENT 服务器成就条件
40 CONDITION_IN_WATER 在水中条件
41 CONDITION_TERRAIN_SWAP 地形交换条件
42 CONDITION_STAND_STATE 站立状态条件
43 CONDITION_DAILY_QUEST_DONE 日常任务完成条件
44 CONDITION_CHARMED 魅惑状态条件
45 CONDITION_PET_TYPE 宠物类型条件
46 CONDITION_TAXI 飞行点条件
47 CONDITION_QUESTSTATE 任务状态条件
48 CONDITION_QUEST_OBJECTIVE_COMPLETE 任务目标完成条件

逻辑组合说明

ElseGroup (否则组)

ElseGroup字段用于实现OR逻辑。相同ElseGroup值的条件使用AND逻辑组合,不同ElseGroup之间使用OR逻辑。

逻辑示例

场景:玩家必须是法师或者术士,并且等级大于20

逻辑:(是法师 AND 等级>20) OR (是术士 AND 等级>20)

NegativeCondition (负条件)

当设置为1时,条件结果会被取反。例如:

常用条件示例

示例1:物品掉落条件 - 只有法师才能获得法师装备

示例2:任务接受条件 - 完成前置任务且等级达到要求

示例3:智能脚本条件 - 只在特定区域触发

示例4:对话菜单条件 - 声望要求

条件值参数说明

常用条件类型的参数含义

条件类型 ConditionValue1 ConditionValue2 ConditionValue3
CONDITION_AURA (1) 法术ID 效果索引(0-2) 未使用
CONDITION_ITEM (2) 物品ID 数量 是否包含银行(0/1)
CONDITION_ITEM_EQUIPPED (3) 物品ID 未使用 未使用
CONDITION_ZONEID (4) 区域ID 未使用 未使用
CONDITION_REPUTATION_RANK (5) 阵营ID 声望等级 未使用
CONDITION_TEAM (6) 队伍ID(469=联盟,67=部落) 未使用 未使用
CONDITION_SKILL (7) 技能ID 技能等级 未使用
CONDITION_QUESTREWARDED (8) 任务ID 未使用 未使用
CONDITION_QUESTTAKEN (9) 任务ID 未使用 未使用
CONDITION_CLASS (15) 职业掩码 未使用 未使用
CONDITION_RACE (16) 种族掩码 未使用 未使用
CONDITION_LEVEL (27) 等级 比较类型(0=等于,1=大于,2=小于,3=大于等于,4=小于等于) 未使用
CONDITION_NEAR_CREATURE (29) 生物ID 距离 是否存活(0=任意,1=存活,2=死亡)
CONDITION_HP_PCT (38) 生命值百分比 比较类型 未使用

注意事项

⚠️ 重要提醒

相关表格

conditions表经常与以下表格配合使用: