`conditions` 表
这张表允许你为各种系统定义条件——Gossip、掉落(loot)等。
表结构
| 字段 | 类型 | 空 | 键 | 默认值 | 额外 | 备注 |
|---|---|---|---|---|---|---|
| SourceTypeOrReferenceId | MEDIUMINT SIGNED | NO | PRI | 0 | ||
| SourceGroup | MEDIUMINT UNSIGNED | NO | PRI | 0 | ||
| SourceEntry | MEDIUMINT SIGNED | NO | PRI | 0 | ||
| SourceId | INT SIGNED | NO | PRI | 0 | smart_scripts.source_type || 其他情况为 0 | |
| ElseGroup | MEDIUMINT UNSIGNED | NO | PRI | 0 | ||
| ConditionTypeOrReference | MEDIUMINT SIGNED | NO | PRI | 0 | ||
| ConditionTarget | TINYINT UNSIGNED | NO | PRI | 0 | ||
| ConditionValue1 | INT UNSIGNED | NO | PRI | 0 | ||
| ConditionValue2 | INT UNSIGNED | NO | PRI | 0 | ||
| ConditionValue3 | INT UNSIGNED | NO | PRI | 0 | ||
| NegativeCondition | TINYINT UNSIGNED | NO | 0 | 布尔值 0 或 1(如果设置了 NegativeCondition) | ||
| ErrorType | MEDIUMINT UNSIGNED | NO | 0 | |||
| ErrorTextId | MEDIUMINT UNSIGNED | NO | 0 | |||
| ScriptName | char(64) SIGNED | NO | ' ' | |||
| Comment | VARCHAR(255) | YES | NULL |
字段说明
如果为负数,则表示它是一个引用模板(reference template)。
| SourceTypeOrReferenceId | ID | SourceGroup | SourceEntry | SourceId | ConditionTarget | 备注 |
|---|---|---|---|---|---|---|
| CONDITION_SOURCE_TYPE_NONE | 0 | 参见引用模板 | (引用模板) | 始终为 0 | (见下文) | 仅在引用模板中使用!参见下文。 |
| CONDITION_SOURCE_TYPE_CREATURE_LOOT_TEMPLATE | 1 | creature_loot_template.Entry 或 reference_loot_template.Entry | 物品 id _loot_template.Item 或 reference_loot_template.Item) | 始终为 0 | 始终为 0 | |
| CONDITION_SOURCE_TYPE_DISENCHANT_LOOT_TEMPLATE | 2 | disenchant_loot_template.Entry 或 reference_loot_template.Entry | 物品 id _loot_template.Item 或 reference_loot_template.Item) | 始终为 0 | 始终为 0 | |
| CONDITION_SOURCE_TYPE_FISHING_LOOT_TEMPLATE | 3 | fishing_loot_template.Entry 或 reference_loot_template.Entry | 物品 id _loot_template.Item 或 reference_loot_template.Item) | 始终为 0 | 始终为 0 | |
| CONDITION_SOURCE_TYPE_GAMEOBJECT_LOOT_TEMPLATE | 4 | gameobject_loot_template.Entry 或 reference_loot_template.Entry | 物品 id _loot_template.Item 或 reference_loot_template.Item) | 始终为 0 | 始终为 0 | |
| CONDITION_SOURCE_TYPE_ITEM_LOOT_TEMPLATE | 5 | item_loot_template.Entry 或 reference_loot_template.Entry | 物品 id _loot_template.Item 或 reference_loot_template.Item) | 始终为 0 | 始终为 0 | |
| CONDITION_SOURCE_TYPE_MAIL_LOOT_TEMPLATE | 6 | mail_loot_template.Entry 或 reference_loot_template.Entry | 物品 id _loot_template.Item 或 reference_loot_template.Item) | 始终为 0 | 始终为 0 | |
| CONDITION_SOURCE_TYPE_MILLING_LOOT_TEMPLATE | 7 | milling_loot_template.Entry 或 reference_loot_template.Entry | 物品 id _loot_template.Item 或 reference_loot_template.Item) | 始终为 0 | 始终为 0 | |
| CONDITION_SOURCE_TYPE_PICKPOCKETING_LOOT_TEMPLATE | 8 | pickpocketing_loot_template.Entry 或 reference_loot_template.Entry | 物品 id _loot_template.Item 或 reference_loot_template.Item) | 始终为 0 | 始终为 0 | |
| CONDITION_SOURCE_TYPE_PROSPECTING_LOOT_TEMPLATE | 9 | prospecting_loot_template.Entry 或 reference_loot_template.Entry | 物品 id _loot_template.Item 或 reference_loot_template.Item) | 始终为 0 | 始终为 0 | |
| CONDITION_SOURCE_TYPE_REFERENCE_LOOT_TEMPLATE | 10 | reference_loot_template.Entry | 物品 id _loot_template.Item 或 reference_loot_template.Item) | 始终为 0 | 始终为 0 | |
| CONDITION_SOURCE_TYPE_SKINNING_LOOT_TEMPLATE | 11 | skinning_loot_template.Entry 或 reference_loot_template.Entry | 物品 id (_loot_template.Item 或 reference_loot_template.Item) | 始终为 0 | 始终为 0 | |
| CONDITION_SOURCE_TYPE_SPELL_LOOT_TEMPLATE | 12 | spell_loot_template.Entry 或 reference_loot_template.Entry | 物品 id (_loot_template.Item 或 reference_loot_template.Item) | 始终为 0 | 始终为 0 | |
| CONDITION_SOURCE_TYPE_SPELL_IMPLICIT_TARGET | 13 | 受条件影响的法术效果掩码: 1 = EFFECT_0,2 = EFFECT_1,4 = EFFECT_2 |
Spell.dbc 中的法术 ID | 始终为 0 | 0:潜在法术目标 1:法术施法者 |
不要使用 wowhead 获取效果数量,wowhead 的数据有时与真实效果编号不符。 |
| CONDITION_SOURCE_TYPE_GOSSIP_MENU | 14 | gossip_menu.MenuID | gossip_menu.TextID(指向 npc_text.ID) | 始终为 0 | 0 = 玩家 1 = WorldObject |
核心会按从最小到最大的顺序遍历该菜单的所有 TextID,并在条件通过时不断覆盖 TextID,因此最后一个匹配的行生效。 |
| CONDITION_SOURCE_TYPE_GOSSIP_MENU_OPTION | 15 | gossip_menu_option.MenuID | gossip_menu_option.OptionID | 始终为 0 | 0 = 玩家 1 = WorldObject |
|
| CONDITION_SOURCE_TYPE_CREATURE_TEMPLATE_VEHICLE | 16 | 始终为 0 | 生物 entry(creature_template.entry) | 始终为 0 | 0 = 骑乘载具的玩家 1 = 载具生物 |
|
| CONDITION_SOURCE_TYPE_SPELL | 17 | 始终为 0 | Spell.dbc 中的法术 ID | 始终为 0 | 0 = 法术施法者 1 = 法术的明确目标(仅适用于会考虑施法者所选对象的法术) |
此源类型允许你为要施放的法术定义施法者/明确目标的要求。 法术的明确目标是指玩家施法时选择的目标,并非所有法术都会考虑该目标。法术的非明确目标(例如由法术按区域或附近目标等方式选中的目标)不受此条件源类型影响,如果你想影响这些目标,请改用 CONDITION_SOURCE_TYPE_SPELL_IMPLICIT_TARGET。 如果你在寻找旧的 CONDITION_SOURCE_TYPE_ITEM_REQUIRED_TARGET,请改用此条件源类型(ConditionTarget = 1 允许你为给定法术设置要求,因此要使用此条件类型,你需要获得物品使用时所施法术的法术 ID)。 请记住,具有相同 ElseGroup 值的条件将用于进行逻辑 AND 检查,因此要为同一法术效果允许不同目标,你必须相应地设置 ElseGroup。 |
| CONDITION_SOURCE_TYPE_SPELL_CLICK_EVENT | 18 | 生物 entry(npc_spellclick_spells.npc_entry) | 法术(npc_spellclick_spells.spell_id) | 始终为 0 | 0 = 点击者 1 = 法术点击目标(被点击者) |
|
| CONDITION_SOURCE_TYPE_QUEST_AVAILABLE | 19 | 始终为 0 | 任务 ID | 始终为 0 | 始终为 0 | 必须满足该条件,任务才能对玩家可用。 |
| CONDITION_SOURCE_TYPE_GOSSIP_HELLO | 20 | 始终为 0 | 生物 entry(creature_template.entry) | 始终为 0 | 0 = 玩家 1 = WorldObject |
如果条件不满足,则阻止从 NPC 打开 gossip 菜单。 |
| CONDITION_SOURCE_TYPE_VEHICLE_SPELL | 21 | 生物 entry(creature_template.entry) | Spell.dbc 中的法术 ID | 始终为 0 | 0 = 显示法术栏的玩家 1 = 载具生物 |
这将显示或隐藏载具法术栏中的法术。 |
| CONDITION_SOURCE_TYPE_SMART_EVENT | 22 | ID(smart_scripts.id)+ 1 | EntryOrGuid(smart_scripts.entryorguid) | SourceType(smart_scripts.source_type) | 0 = 调用者 1 = 对象 |
|
| CONDITION_SOURCE_TYPE_NPC_VENDOR | 23 | 商人 entry(npc_vendor.entry) | 物品 entry(npc_vendor.item) | 始终为 0 | 始终为 0 | |
| CONDITION_SOURCE_TYPE_SPELL_PROC | 24 | 始终为 0 | 触发 proс的 aura 的法术 ID | 始终为 0 | 0 = 行为者(Actor) 1 = 行为目标(ActionTarget) |
|
| CONDITION_SOURCE_TYPE_PLAYER_LOOT_TEMPLATE | 28 | player_loot_template.entry | 始终为 0 | 始终为 0 | 始终为 0 | |
| CONDITION_SOURCE_TYPE_CREATURE_RESPAWN | 29 | enum-no-details|29 | enum-no-details|29 | enum-no-details|29 | enum-no-details|29 | |
| CONDITION_SOURCE_TYPE_OBJECT_VISIBILITY | 30 | 0 = 生物,1 = 游戏对象 | 生物 entry(creature_template.entry)或游戏对象 entry(gameobject_template.entry) | 0 = 任意 guid(entry 级别),或特定的生物/游戏对象 guid | 0 = 玩家 1 = WorldObject(生物/游戏对象) |
控制生物和游戏对象的可见性。如果按 guid(SourceId)设置,条件优先于 entry。 |
| CONDITION_SOURCE_TYPE_MAX | 31 | (占位符) |
参见上文。
参见上文。
允许构建分组条件——属于同一条件(相同 SourceType、SourceGroup 和 SourceEntry)且 ElseGroup 中数字相同的所有条目构成一个组。当其中任何一个组满足时,整个条件即被满足(逻辑 OR)。当该组的所有条目都满足时,该组即被满足(逻辑 AND)。
示例:
两个条件具有相同的 SourceType、SourceGroup 和 SourceEntry,但条件不同,第一个的 ElseGroup = 1,第二个的 ElseGroup = 2,这将构成逻辑 OR。
两个条件具有相同的 SourceType、SourceGroup 和 SourceEntry,但条件不同,且两者的 ElseGroup 都为 1,这将构成逻辑 AND。
| ConditionTypeOrReference (名称) | 值 | ConditionValue1 | ConditionValue2 | ConditionValue3 |
|---|---|---|---|---|
| CONDITION_NONE | 0 | (从未使用) | (从未使用) | (从未使用) |
| CONDITION_AURA | 1 | Spell.dbc 中的法术 ID | 效果索引(0-2) | 始终为 0 |
| CONDITION_ITEM | 2 | 物品 entry(item_template.entry) | 物品数量 | 0 = 不在银行中,1 = 在银行中 |
| CONDITION_ITEM_EQUIPPED | 3 | 物品 entry(item_template.entry) | 始终为 0 | 始终为 0 |
| CONDITION_ZONEID | 4 | 此条件为真时的区域 ID。 | 始终为 0 | 始终为 0 |
| CONDITION_REPUTATION_RANK | 5 | Faction.dbc 中的阵营模板 ID | 声望等级: 1 = 仇恨 2 = 敌对 4 = 不友善 8 = 中立 16 = 友善 32 = 尊敬 64 = 崇敬 128 = 崇拜 将目标等级相加,即可让条件在所有这些等级下均为真。 |
始终为 0 |
| CONDITION_TEAM | 6 | 阵营 ID:联盟 = 469 / 部落 = 67 | 始终为 0 | 始终为 0 |
| CONDITION_SKILL | 7 | 所需技能。参见 SkillLine.dbc。 | 技能等级值(例如 3.3.5 分支为 1 到 450) | 始终为 0 |
| CONDITION_QUESTREWARDED | 8 | 任务 ID - 参见 quest_template.id | 始终为 0 | 始终为 0 |
| CONDITION_QUESTTAKEN | 9 | 任务 ID - 参见 quest_template.id | 始终为 0 | 始终为 0 |
| CONDITION_DRUNKENSTATE | 10 | 清醒=0;微醺=1,醉酒=2,烂醉=3 | 始终为 0 | 始终为 0 |
| CONDITION_WORLD_STATE | 11 | 世界状态索引 | 世界状态值 | 始终为 0 |
| CONDITION_ACTIVE_EVENT | 12 | 事件 entry(game_event.eventEntry) | 始终为 0 | 始终为 0 |
| CONDITION_INSTANCE_INFO | 13 | entry(参见相应的脚本源文件以获取信息) | data(参见相应的脚本源文件以获取更多信息) | 0=INSTANCE_INFO_DATA 1=INSTANCE_INFO_GUID_DATA 2=INSTANCE_INFO_BOSS_STATE 3=INSTANCE_INFO_DATA64 |
| CONDITION_QUEST_NONE | 14 | 任务 ID - 参见 quest_template.id | 始终为 0 | 始终为 0 |
| CONDITION_CLASS | 15 | ChrClasses.dbc 中的职业掩码 将所有条件为真的职业的标志相加。 |
始终为 0 | 始终为 0 |
| CONDITION_RACE | 16 | ChrRaces.dbc 中的种族掩码。 将所有条件为真的种族的标志相加。 |
始终为 0 | 始终为 0 |
| CONDITION_ACHIEVEMENT | 17 | Achievement.dbc 中的成就 ID | 始终为 0 | 始终为 0 |
| CONDITION_TITLE | 18 | CharTitles.dbc 中的头衔 ID | 始终为 0 | 始终为 0 |
| CONDITION_SPAWNMASK | 19 | 来自 Creature.spawnMask / Gameobject.spawnMask 的 spawnMask |
始终为 0 | 始终为 0 |
| CONDITION_GENDER | 20 | 0 = 男,1 = 女,2 = 无 | 始终为 0 | 始终为 0 |
| CONDITION_UNIT_STATE | 21 | UnitState(来自 Unit.h 的枚举) | 始终为 0 | 始终为 0 |
| CONDITION_MAPID | 22 | 来自 Map.dbc 的地图 entry (0=东部王国,1=卡利姆多,以此类推。) |
始终为 0 | 始终为 0 |
| CONDITION_AREAID | 23 | 来自 AreaTable.dbc 的区域 ID | 始终为 0 | 始终为 0 |
| CONDITION_CREATURE_TYPE | 24 | creature_template.type 中的生物类型 如果 creature_template.type == ConditionValue1,则为真 |
始终为 0 | 始终为 0 |
| CONDITION_SPELL | 25 | Spell.dbc 中的法术 ID | 始终为 0 | 始终为 0 |
| CONDITION_PHASEMASK | 26 | phasemask 值 | 始终为 0 | 始终为 0 |
| CONDITION_LEVEL | 27 | 玩家等级(3.3.5 中为 1-80) | 可选:0 = 等级必须相等,1 = 等级必须更高,2 = 等级必须更低, 3 = 等级必须更高或相等,4 = 等级必须更低或相等。 |
始终为 0 |
| CONDITION_QUEST_COMPLETE | 28 | 任务 ID - 参见 quest_template.id | 始终为 0 | 始终为 0 |
| CONDITION_NEAR_CREATURE | 29 | creature_template.entry 中的生物 entry | 以码为单位的距离 | 存活=0 / 死亡=1 |
| CONDITION_NEAR_GAMEOBJECT | 30 | gameobject_template.entry 中的游戏对象 entry | 以码为单位的距离 | GoState 0 = 忽略,1 = 就绪,2 = 未就绪 |
| CONDITION_OBJECT_ENTRY_GUID | 31 | TypeID。可用的对象类型: 3:TYPEID_UNIT 4:TYPEID_PLAYER 5:TYPEID_GAMEOBJECT 7:TYPEID_CORPSE(玩家尸体,灵魂释放后) |
0 = 给定 TypeID 的任意对象 如果 TypeID = TYPEID_UNIT => creature_template.entry 中的生物 entry 如果 TypeID = TYPEID_GAMEOBJECT => gameobject_template.entry 中的游戏对象 entry |
0 = 给定类型的任意对象 1 - 500k:生物 / 游戏对象 GUID |
| CONDITION_TYPE_MASK | 32 | TypeMask - 以下对象类型的位掩码: 0x0008 - TYPEMASK_UNIT (8) 0x0010 - TYPEMASK_PLAYER (16) 0x0020 - TYPEMASK_GAMEOBJECT (32) 0x0080 - TYPEMASK_CORPSE(灵魂释放后的玩家尸体)(128) |
始终为 0 | 始终为 0 |
| CONDITION_RELATION_TO | 33 | 检查关系的目标。 - 当前 SourceType 中可用的 ConditionTarget 之一 |
RelationType - 定义当前 ConditionTarget 与 ConditionValue1 中指定目标的关系。 0 - RELATION_SELF 1 - RELATION_IN_PARTY 2 - RELATION_IN_RAID_OR_PARTY 3 - RELATION_OWNED_BY(ConditionTarget 归 ConditionValue1 所有) 4 - RELATION_PASSENGER_OF(ConditionTarget 是 ConditionValue1 的乘客) 5 - RELATION_CREATED_BY(ConditionTarget 由 ConditionValue1 召唤) |
始终为 0 |
| CONDITION_REACTION_TO | 34 | 检查反应的目标。 - 当前 SourceType 中可用的 ConditionTarget 之一 |
rankMask:此位掩码定义了当前 ConditionTarget 对 ConditionValue1 中指定目标(被允许的)反应。 反应的标志为: 1 = 仇恨 2 = 敌对 4 = 不友善 8 = 中立 16 = 友善 32 = 尊敬 64 = 崇敬 128 = 崇拜 |
始终为 0 |
| CONDITION_DISTANCE_TO | 35 | 检查距离的目标 - 当前 SourceType 中可用的 ConditionTarget 之一 |
距离。 定义当前 ConditionTarget 与 ConditionValue1 中指定目标之间的距离 |
比较类型: 0 = 距离必须等于 ConditionValue2 1 = 距离必须高于 ConditionValue2 2 = 距离必须低于 ConditionValue2 3 = 距离必须等于或高于 ConditionValue2 4 = 距离必须等于或低于 ConditionValue2 |
| CONDITION_ALIVE | 36 | 始终为 0 - 使用 NegativeCondition 和以下设置: 如果目标需要存活,则 NegativeCondition = 0。 如果目标需要死亡,则 NegativeCondition = 1。 注意:生物的尸体和看起来已死亡的生物 是两回事。一个是真正死了, 另一个只是使用表情装作死了。 |
始终为 0 | 始终为 0 |
| CONDITION_HP_VAL | 37 | HP 值 | 比较类型: 0 = HP 必须相等 1 = HP 必须更高 2 = HP 必须更低 3 = HP 必须等于或更高 4 = HP 必须等于或更低 |
始终为 0 |
| CONDITION_HP_PCT | 38 | 最大 HP 的百分比 | 比较类型: 0 = 最大 HP 的百分比必须相等 1 = 最大 HP 的百分比必须更高 2 = 最大 HP 的百分比必须更低 3 = 最大 HP 的百分比必须等于或更高 4 = 最大 HP 的百分比必须等于或更低 |
始终为 0 |
| CONDITION_REALM_ACHIEVEMENT | 39 | Achievement.dbc 中的成就 ID | 始终为 0 | 始终为 0 |
| CONDITION_IN_WATER | 40 | 始终为 0 - 使用 NegativeCondition 和以下设置:如果目标需要在陆地上,则 NegativeCondition = 0;如果目标需要在水中,则 NegativeCondition = 1 | 始终为 0 | 始终为 0 |
| CONDITION_STAND_STATE | 42 | stateType(精确或任意):0 = ConditionValue2 中使用的精确状态 1 = ConditionValue2 中的任意类型状态 | 精确的站立状态,或通用状态(站立 / 坐下),取决于值 10 = 站立 1 = 坐下 | 始终为 0 |
| CONDITION_DAILY_QUEST_DONE | 43 | 任务 ID - 参见 quest_template.id | 始终为 0 | 始终为 0 |
| CONDITION_CHARMED | 44 | 始终为 0 | 始终为 0 | 始终为 0 |
| CONDITION_PET_TYPE | 45 | mask | 始终为 0 | 始终为 0 |
| CONDITION_TAXI | 46 | 始终为 0 | 始终为 0 | 始终为 0 |
| CONDITION_QUESTSTATE | 47 | 任务 ID - 参见 quest_template.id | state_mask: 1 = 未接取 2 = 已完成 8 = 进行中 32 = 失败 64 = 已交还 |
始终为 0 |
| CONDITION_QUEST_OBJECTIVE_PROGRESS | 48 | 任务 ID - 参见 quest_template.id | 任务目标 ID - 参见 quest_template.RequiredNpcOrGo | 任务目标数量 |
| CONDITION_DIFFICULTY_ID | 49 | 难度 | 始终为 0 | 始终为 0 |
| CONDITION_QUEST_SATISFY_EXCLUSIVE | 101 | quest_id | 始终为 0 | 始终为 0 |
| CONDITION_HAS_AURA_TYPE | 102 | aura_type | 始终为 0 | 始终为 0 |
| CONDITION_WORLD_SCRIPT | 103 | conditionId | state | 始终为 0 |
| CONDITION_AI_DATA | 104 | dataId(如果 AI::GetData(uint32 dataId) 返回值则为真) | value | 始终为 0 |
| CONDITION_RANDOM_DUNGEON | 105 | checkDifficulty | difficulty | 始终为 0 |
| CONDITION_UNIT_IN_COMBAT | 106 | 始终为 0 | 始终为 0 | 始终为 0 |
允许选择要为其检查条件的对象。可用对象取决于 SourceTypeOrReferenceId,详情参见相应的源类型参考。
参见下文
参见下文
参见下文
如果设置为 1,条件将被"反转"。
示例:带 NegativeCondition 的 CONDITION_AURA 在玩家没有该 aura 时为真。
来自 /src/server/game/Miscellaneous/SharedDefines.h#L830 的 ID。仅对以下条件源类型显示:
CONDITION_SOURCE_TYPE_SPELL = 17
来自 /src/server/game/Miscellaneous/SharedDefines.h#L1024 的 ID。仅对以下条件源类型显示:
CONDITION_SOURCE_TYPE_SPELL = 17
(ErrorType 必须为 SPELL_FAILED_CUSTOM_ERROR (209),否则为 0)
此条件使用的 ScriptName(如果有)。
此条件或引用的说明。
SourceGroup 和 SourceEntry 字段的内容取决于 SourceTypeOrReferenceId
CONDITION_SOURCE_TYPE_NONE = 0
仅在引用模板中使用!参见下文。
CONDITION_SOURCE_TYPE_ * _LOOT_TEMPLATE = 1 - 12 *SourceGroup:loot entry(_loot_template.Entry 或 Reference_loot_template.Entry) *SourceEntry:物品 id(_loot_template.Item 或 Reference_loot_template.Item)
示例:如果你使用类型 1(creature_loot_template),则使用该表的 entry 和 item 字段
CONDITION_SOURCE_TYPE_SPELL_IMPLICIT_TARGET = 13
备注:
CONDITION_SOURCE_TYPE_GOSSIP_MENU = 14
CONDITION_SOURCE_TYPE_GOSSIP_MENU_OPTION = 15
CONDITION_SOURCE_TYPE_CREATURE_TEMPLATE_VEHICLE = 16
注意:生物 entry 必须是载具。示例:如果与 CONDITION_AREA 一起使用,当骑乘的玩家离开该区域时,玩家将从载具上被卸下。
CONDITION_SOURCE_TYPE_SPELL = 17
备注:
CONDITION_SOURCE_TYPE_SPELL_CLICK_EVENT = 18
CONDITION_SOURCE_TYPE_QUEST_ACCEPT = 19
CONDITION_SOURCE_TYPE_GOSSIP_HELLO = 20
注意:如果条件不满足,此条件会阻止从 NPC 打开 gossip 菜单。
CONDITION_SOURCE_TYPE_VEHICLE_SPELL = 21
注意:它将显示或隐藏载具法术栏中的法术。
CONDITION_SOURCE_TYPE_SMART_EVENT = 22
CONDITION_SOURCE_TYPE_NPC_VENDOR = 23
CONDITION_SOURCE_TYPE_SPELL_PROC = 24
CONDITION_SOURCE_TYPE_OBJECT_VISIBILITY = 30
注意:此条件根据针对玩家评估的条件来控制生物和游戏对象的可见性。如果按 guid(SourceId)设置条件,则它们优先于 entry 级别的条件。
CONDITION_NONE = 0
从未使用
CONDITION_AURA = 1
CONDITION_ITEM = 2
CONDITION_ITEM_EQUIPPED = 3
CONDITION_ZONEID = 4
CONDITION_REPUTATION_RANK = 5
CONDITION_TEAM = 6
CONDITION_SKILL = 7
CONDITION_QUESTREWARDED = 8
CONDITION_QUESTTAKEN = 9
CONDITION_DRUNKENSTATE = 10
CONDITION_WORLD_STATE = 11
CONDITION_ACTIVE_EVENT= 12
CONDITION_INSTANCE_INFO = 13
CONDITION_QUEST_NONE = 14
CONDITION_CLASS = 15
CONDITION_RACE = 16
CONDITION_ACHIEVEMENT = 17
CONDITION_TITLE = 18
CONDITION_SPAWNMASK = 19
CONDITION_GENDER = 20
CONDITION_UNIT_STATE = 21
CONDITION_MAPID = 22
CONDITION_AREAID = 23
CONDITION_CREATURE_TYPE = 24
CONDITION_SPELL = 25
CONDITION_PHASEMASK = 26
CONDITION_LEVEL = 27
CONDITION_QUEST_COMPLETE = 28
仅当玩家已满足任务的所有目标,但尚未交还任务时。
CONDITION_NEAR_CREATURE = 29
CONDITION_NEAR_GAMEOBJECT = 30
CONDITION_OBJECT_ENTRY_GUID= 31
CONDITION_TYPE_MASK= 32
CONDITION_RELATION_TO= 33
CONDITION_REACTION_TO= 34
CONDITION_DISTANCE_TO= 35
CONDITION_ALIVE= 36
CONDITION_HP_VAL = 37
CONDITION_HP_PCT = 38
CONDITION_REALM_ACHIEVEMENT = 39
CONDITION_IN_WATER = 40
CONDITION_STAND_STATE = 42
CONDITION_WORLD_SCRIPT = 103
CONDITION_AI_DATA = 104
当 AI::GetData(ConditionValue1) 返回 ConditionValue2 中指定的值时,返回 true。适用于使用 SmartAI 的生物和游戏对象。数据通过 SMART_ACTION_SET_DATA 存储。
AI::GetData() 的键CONDITION_RANDOM_DUNGEON = 105
当玩家通过 LFG/RDF 系统排队随机副本时,返回 true。
ConditionValue1:0 = 不检查难度;1 = 检查难度(ConditionValue2)。ConditionValue2:如果 ConditionValue1 = 1,与玩家当前地图难度进行比较。值必须小于 MAX_DIFFICULTYConditionValue3:始终为 0CONDITION_UNIT_IN_COMBAT = 106
当目标单位当前处于战斗中时,返回 true。
可与 CONDITION_SOURCE_TYPE_GOSSIP_HELLO(类型 20)和 NegativeCondition = 1(ConditionTarget = 1 以针对生物)一起使用,防止玩家在战斗时打开特定生物的 gossip 菜单。