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) | '' | 条件注释说明 |
定义条件的应用范围和类型:
值 | 源类型 | 说明 |
---|---|---|
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 | 法术触发 |
定义具体的条件判断类型:
值 | 条件类型 | 说明 |
---|---|---|
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字段用于实现OR逻辑。相同ElseGroup值的条件使用AND逻辑组合,不同ElseGroup之间使用OR逻辑。
场景:玩家必须是法师或者术士,并且等级大于20
逻辑:(是法师 AND 等级>20) OR (是术士 AND 等级>20)
当设置为1时,条件结果会被取反。例如:
条件类型 | 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表经常与以下表格配合使用: