aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/AI/SmartScripts/SmartScriptMgr.h6
-rw-r--r--src/server/game/Conditions/ConditionMgr.h118
-rw-r--r--src/server/game/Miscellaneous/Language.h4
3 files changed, 70 insertions, 58 deletions
diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.h b/src/server/game/AI/SmartScripts/SmartScriptMgr.h
index 9e1b4846d64..700fb8638dc 100644
--- a/src/server/game/AI/SmartScripts/SmartScriptMgr.h
+++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.h
@@ -597,8 +597,10 @@ enum SMART_ACTION
SMART_ACTION_SET_UNINTERACTIBLE = 146, // 0/1
SMART_ACTION_ACTIVATE_GAMEOBJECT = 147, // GameObjectActions
SMART_ACTION_ADD_TO_STORED_TARGET_LIST = 148, // varID
-
- SMART_ACTION_END = 149
+ SMART_ACTION_BECOME_PERSONAL_CLONE_FOR_PLAYER = 149, // don't use on 3.3.5a
+ SMART_ACTION_TRIGGER_GAME_EVENT = 150, // eventId, useSaiTargetAsGameEventSource (RESERVED, PENDING CHERRYPICK)
+ SMART_ACTION_DO_ACTION = 151, // actionId (RESERVED, PENDING CHERRYPICK)
+ SMART_ACTION_END = 152
};
enum class SmartActionSummonCreatureFlags
diff --git a/src/server/game/Conditions/ConditionMgr.h b/src/server/game/Conditions/ConditionMgr.h
index 3fe3b7a83c8..b31ebb9f4bb 100644
--- a/src/server/game/Conditions/ConditionMgr.h
+++ b/src/server/game/Conditions/ConditionMgr.h
@@ -34,60 +34,64 @@ class LootTemplate;
struct Condition;
enum ConditionTypes
-{ // value1 value2 value3
- CONDITION_NONE = 0, // 0 0 0 always true
- CONDITION_AURA = 1, // spell_id effindex use target? true if player (or target, if value3) has aura of spell_id with effect effindex
- CONDITION_ITEM = 2, // item_id count bank true if has #count of item_ids (if 'bank' is set it searches in bank slots too)
- CONDITION_ITEM_EQUIPPED = 3, // item_id 0 0 true if has item_id equipped
- CONDITION_ZONEID = 4, // zone_id 0 0 true if in zone_id
- CONDITION_REPUTATION_RANK = 5, // faction_id rankMask 0 true if has min_rank for faction_id
- CONDITION_TEAM = 6, // player_team 0, 0 469 - Alliance, 67 - Horde)
- CONDITION_SKILL = 7, // skill_id skill_value 0 true if has skill_value for skill_id
- CONDITION_QUESTREWARDED = 8, // quest_id 0 0 true if quest_id was rewarded before
- CONDITION_QUESTTAKEN = 9, // quest_id 0, 0 true while quest active
- CONDITION_DRUNKENSTATE = 10, // DrunkenState 0, 0 true if player is drunk enough
- CONDITION_WORLD_STATE = 11, // index value 0 true if world has the value for the index
- CONDITION_ACTIVE_EVENT = 12, // event_id 0 0 true if event is active
- CONDITION_INSTANCE_INFO = 13, // entry data type true if the instance info defined by type (enum InstanceInfo) equals data.
- CONDITION_QUEST_NONE = 14, // quest_id 0 0 true if doesn't have quest saved
- CONDITION_CLASS = 15, // class 0 0 true if player's class is equal to class
- CONDITION_RACE = 16, // race 0 0 true if player's race is equal to race
- CONDITION_ACHIEVEMENT = 17, // achievement_id 0 0 true if achievement is complete
- CONDITION_TITLE = 18, // title id 0 0 true if player has title
- CONDITION_SPAWNMASK = 19, // spawnMask 0 0 true if in spawnMask
- CONDITION_GENDER = 20, // gender 0 0 true if player's gender is equal to gender
- CONDITION_UNIT_STATE = 21, // unitState 0 0 true if unit has unitState
- CONDITION_MAPID = 22, // map_id 0 0 true if in map_id
- CONDITION_AREAID = 23, // area_id 0 0 true if in area_id
- CONDITION_CREATURE_TYPE = 24, // cinfo.type 0 0 true if creature_template.type = value1
- CONDITION_SPELL = 25, // spell_id 0 0 true if player has learned spell
- CONDITION_PHASEMASK = 26, // phasemask 0 0 true if object is in phasemask
- CONDITION_LEVEL = 27, // level ComparisonType 0 true if unit's level is equal to param1 (param2 can modify the statement)
- CONDITION_QUEST_COMPLETE = 28, // quest_id 0 0 true if player has quest_id with all objectives complete, but not yet rewarded
- CONDITION_NEAR_CREATURE = 29, // creature entry distance dead (0/1) true if there is a creature of entry in range
- CONDITION_NEAR_GAMEOBJECT = 30, // gameobject entry distance 0 true if there is a gameobject of entry in range
- CONDITION_OBJECT_ENTRY_GUID = 31, // TypeID entry guid true if object is type TypeID and the entry is 0 or matches entry of the object or matches guid of the object
- CONDITION_TYPE_MASK = 32, // TypeMask 0 0 true if object is type object's TypeMask matches provided TypeMask
- CONDITION_RELATION_TO = 33, // ConditionTarget RelationType 0 true if object is in given relation with object specified by ConditionTarget
- CONDITION_REACTION_TO = 34, // ConditionTarget rankMask 0 true if object's reaction matches rankMask object specified by ConditionTarget
- CONDITION_DISTANCE_TO = 35, // ConditionTarget distance ComparisonType true if object and ConditionTarget are within distance given by parameters
- CONDITION_ALIVE = 36, // 0 0 0 true if unit is alive
- CONDITION_HP_VAL = 37, // hpVal ComparisonType 0 true if unit's hp matches given value
- CONDITION_HP_PCT = 38, // hpPct ComparisonType 0 true if unit's hp matches given pct
- CONDITION_REALM_ACHIEVEMENT = 39, // achievement_id 0 0 true if realm achievement is complete
- CONDITION_IN_WATER = 40, // 0 0 0 true if unit in water
- CONDITION_TERRAIN_SWAP = 41, // only for master branch
- CONDITION_STAND_STATE = 42, // stateType state 0 true if unit matches specified sitstate (0,x: has exactly state x; 1,0: any standing state; 1,1: any sitting state;)
- CONDITION_DAILY_QUEST_DONE = 43, // quest id 0 0 true if daily quest has been completed for the day
- CONDITION_CHARMED = 44, // 0 0 0 true if unit is currently charmed
- CONDITION_PET_TYPE = 45, // mask 0 0 true if player has a pet of given type(s)
- CONDITION_TAXI = 46, // 0 0 0 true if player is on taxi
- CONDITION_QUESTSTATE = 47, // quest_id state_mask 0 true if player is in any of the provided quest states for the quest (1 = not taken, 2 = completed, 8 = in progress, 32 = failed, 64 = rewarded)
- CONDITION_QUEST_OBJECTIVE_PROGRESS = 48, // quest_id objectiveIndex objectiveCount true if player has reached the specified objectiveCount quest progress for the objectiveIndex for the specified quest
- CONDITION_DIFFICULTY_ID = 49, // Difficulty 0 0 true is map has difficulty id
- CONDITION_GAMEMASTER = 50, // canBeGM 0 0 true if player is gamemaster (or can be gamemaster)
- CONDITION_OBJECT_ENTRY_GUID_MASTER = 51, // TypeID entry guid true if object is type TypeID and the entry is 0 or matches entry of the object or matches guid of the object using master branch TypeID
- CONDITION_TYPE_MASK_MASTER = 52, // TypeMask 0 0 true if object is type object's TypeMask matches provided TypeMask using master branch TypeMask
+{ // value1 value2 value3
+ CONDITION_NONE = 0, // 0 0 0 always true
+ CONDITION_AURA = 1, // spell_id effindex use target? true if player (or target, if value3) has aura of spell_id with effect effindex
+ CONDITION_ITEM = 2, // item_id count bank true if has #count of item_ids (if 'bank' is set it searches in bank slots too)
+ CONDITION_ITEM_EQUIPPED = 3, // item_id 0 0 true if has item_id equipped
+ CONDITION_ZONEID = 4, // zone_id 0 0 true if in zone_id
+ CONDITION_REPUTATION_RANK = 5, // faction_id rankMask 0 true if has min_rank for faction_id
+ CONDITION_TEAM = 6, // player_team 0, 0 469 - Alliance, 67 - Horde)
+ CONDITION_SKILL = 7, // skill_id skill_value 0 true if has skill_value for skill_id
+ CONDITION_QUESTREWARDED = 8, // quest_id 0 0 true if quest_id was rewarded before
+ CONDITION_QUESTTAKEN = 9, // quest_id 0, 0 true while quest active
+ CONDITION_DRUNKENSTATE = 10, // DrunkenState 0, 0 true if player is drunk enough
+ CONDITION_WORLD_STATE = 11, // index value 0 true if world has the value for the index
+ CONDITION_ACTIVE_EVENT = 12, // event_id 0 0 true if event is active
+ CONDITION_INSTANCE_INFO = 13, // entry data type true if the instance info defined by type (enum InstanceInfo) equals data.
+ CONDITION_QUEST_NONE = 14, // quest_id 0 0 true if doesn't have quest saved
+ CONDITION_CLASS = 15, // class 0 0 true if player's class is equal to class
+ CONDITION_RACE = 16, // race 0 0 true if player's race is equal to race
+ CONDITION_ACHIEVEMENT = 17, // achievement_id 0 0 true if achievement is complete
+ CONDITION_TITLE = 18, // title id 0 0 true if player has title
+ CONDITION_SPAWNMASK = 19, // spawnMask 0 0 true if in spawnMask
+ CONDITION_GENDER = 20, // gender 0 0 true if player's gender is equal to gender
+ CONDITION_UNIT_STATE = 21, // unitState 0 0 true if unit has unitState
+ CONDITION_MAPID = 22, // map_id 0 0 true if in map_id
+ CONDITION_AREAID = 23, // area_id 0 0 true if in area_id
+ CONDITION_CREATURE_TYPE = 24, // cinfo.type 0 0 true if creature_template.type = value1
+ CONDITION_SPELL = 25, // spell_id 0 0 true if player has learned spell
+ CONDITION_PHASEMASK = 26, // phasemask 0 0 true if object is in phasemask
+ CONDITION_LEVEL = 27, // level ComparisonType 0 true if unit's level is equal to param1 (param2 can modify the statement)
+ CONDITION_QUEST_COMPLETE = 28, // quest_id 0 0 true if player has quest_id with all objectives complete, but not yet rewarded
+ CONDITION_NEAR_CREATURE = 29, // creature entry distance dead (0/1) true if there is a creature of entry in range
+ CONDITION_NEAR_GAMEOBJECT = 30, // gameobject entry distance 0 true if there is a gameobject of entry in range
+ CONDITION_OBJECT_ENTRY_GUID = 31, // TypeID entry guid true if object is type TypeID and the entry is 0 or matches entry of the object or matches guid of the object
+ CONDITION_TYPE_MASK = 32, // TypeMask 0 0 true if object is type object's TypeMask matches provided TypeMask
+ CONDITION_RELATION_TO = 33, // ConditionTarget RelationType 0 true if object is in given relation with object specified by ConditionTarget
+ CONDITION_REACTION_TO = 34, // ConditionTarget rankMask 0 true if object's reaction matches rankMask object specified by ConditionTarget
+ CONDITION_DISTANCE_TO = 35, // ConditionTarget distance ComparisonType true if object and ConditionTarget are within distance given by parameters
+ CONDITION_ALIVE = 36, // 0 0 0 true if unit is alive
+ CONDITION_HP_VAL = 37, // hpVal ComparisonType 0 true if unit's hp matches given value
+ CONDITION_HP_PCT = 38, // hpPct ComparisonType 0 true if unit's hp matches given pct
+ CONDITION_REALM_ACHIEVEMENT = 39, // achievement_id 0 0 true if realm achievement is complete
+ CONDITION_IN_WATER = 40, // 0 0 0 true if unit in water
+ CONDITION_TERRAIN_SWAP = 41, // only for master branch
+ CONDITION_STAND_STATE = 42, // stateType state 0 true if unit matches specified sitstate (0,x: has exactly state x; 1,0: any standing state; 1,1: any sitting state;)
+ CONDITION_DAILY_QUEST_DONE = 43, // quest id 0 0 true if daily quest has been completed for the day
+ CONDITION_CHARMED = 44, // 0 0 0 true if unit is currently charmed
+ CONDITION_PET_TYPE = 45, // mask 0 0 true if player has a pet of given type(s)
+ CONDITION_TAXI = 46, // 0 0 0 true if player is on taxi
+ CONDITION_QUESTSTATE = 47, // quest_id state_mask 0 true if player is in any of the provided quest states for the quest (1 = not taken, 2 = completed, 8 = in progress, 32 = failed, 64 = rewarded)
+ CONDITION_QUEST_OBJECTIVE_PROGRESS = 48, // quest_id objectiveIndex objectiveCount true if player has reached the specified objectiveCount quest progress for the objectiveIndex for the specified quest
+ CONDITION_DIFFICULTY_ID = 49, // Difficulty 0 0 true is map has difficulty id
+ CONDITION_GAMEMASTER = 50, // canBeGM 0 0 true if player is gamemaster (or can be gamemaster)
+ CONDITION_OBJECT_ENTRY_GUID_MASTER = 51, // TypeID entry guid true if object is type TypeID and the entry is 0 or matches entry of the object or matches guid of the object using master branch TypeID
+ CONDITION_TYPE_MASK_MASTER = 52, // TypeMask 0 0 true if object is type object's TypeMask matches provided TypeMask using master branch TypeMask
+ CONDITION_BATTLE_PET_COUNT = 53, // SpecieId count ComparisonType true if player has `count` of battle pet species
+ CONDITION_SCENARIO_STEP = 54, // ScenarioStepId 0 0 true if player is at scenario with current step equal to ScenarioStepID
+ CONDITION_SCENE_IN_PROGRESS = 55, // SceneScriptPackageId 0 0 true if player is playing a scene with ScriptPackageId equal to given value
+ CONDITION_PLAYER_CONDITION = 56, // PlayerConditionId 0 0 true if player satisfies PlayerCondition
CONDITION_MAX
};
@@ -150,7 +154,11 @@ enum ConditionSourceType
CONDITION_SOURCE_TYPE_GRAVEYARD = 27, // only master
CONDITION_SOURCE_TYPE_AREATRIGGER = 28, // only master (this refers to dynamically spawned areatriggers, not the ones from AreaTrigger.dbc/db2)
CONDITION_SOURCE_TYPE_CONVERSATION_LINE = 29, // only master
- CONDITION_SOURCE_TYPE_MAX = 30 // MAX
+ CONDITION_SOURCE_TYPE_AREATRIGGER_CLIENT_TRIGGERED = 30, // only master (TODO: cherry-pick)
+ CONDITION_SOURCE_TYPE_TRAINER_SPELL = 31, // only master (TODO: cherry-pick)
+ CONDITION_SOURCE_TYPE_OBJECT_ID_VISIBILITY = 32, // only master (TODO: cherry-pick)
+ CONDITION_SOURCE_TYPE_SPAWN_GROUP = 33, // only master (TODO: cherry-pick)
+ CONDITION_SOURCE_TYPE_MAX = 34 // MAX
};
enum RelationType
diff --git a/src/server/game/Miscellaneous/Language.h b/src/server/game/Miscellaneous/Language.h
index b7941e69f98..3f1f5018951 100644
--- a/src/server/game/Miscellaneous/Language.h
+++ b/src/server/game/Miscellaneous/Language.h
@@ -826,7 +826,8 @@ enum TrinityStrings
LANG_RBAC_EMAIL_REQUIRED = 881,
// = 882, LANG_PINFO_CHR_MAP_WITH_AREA
LANG_ACCOUNT = 883,
- // Room for in-game strings 884-999 not used
+ LANG_COMMAND_QUEST_OBJECTIVE_NOTFOUND = 884, // master branch ONLY
+ // Room for in-game strings 885-999 not used
// Level 4 (CLI only commands)
LANG_COMMAND_EXIT = 1000,
@@ -1010,6 +1011,7 @@ enum TrinityStrings
LANG_CMDPARSER_SPELL_NO_EXIST = 1514,
LANG_CMDPARSER_EXACT_SEQ_MISMATCH = 1515,
LANG_CMDPARSER_CURRENCY_NO_EXIST = 1516, // master branch ONLY
+ LANG_CMDPARSER_QUEST_NO_EXIST = 1517, // RESERVED future cherry-pick
// 1516-1998 - free
LANG_DEBUG_AREATRIGGER_LEFT = 1999, // master branch ONLY