AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
ObjectMgr.h File Reference
#include "Bag.h"
#include "ConditionMgr.h"
#include "Corpse.h"
#include "Creature.h"
#include "DatabaseEnv.h"
#include "DynamicObject.h"
#include "GameObject.h"
#include "ItemTemplate.h"
#include "Log.h"
#include "Mail.h"
#include "Map.h"
#include "NPCHandler.h"
#include "Object.h"
#include "ObjectAccessor.h"
#include "ObjectDefines.h"
#include "QuestDef.h"
#include "TemporarySummon.h"
#include "VehicleDefines.h"
#include "GossipDef.h"
#include <functional>
#include <limits>
#include <map>
#include <string>

Go to the source code of this file.

Classes

struct  PageText
 
struct  TempSummonGroupKey
 Key for storing temp summon data in TempSummonDataContainer. More...
 
struct  GameTele
 
struct  ScriptInfo
 
struct  SpellClickInfo
 
struct  AreaTriggerTeleport
 
struct  AreaTrigger
 
struct  BroadcastText
 
struct  CellObjectGuids
 
struct  AcoreString
 
struct  PetLevelInfo
 
struct  MailLevelReward
 
struct  RepRewardRate
 
struct  ReputationOnKillEntry
 
struct  RepSpilloverTemplate
 
struct  PointOfInterest
 
struct  QuestGreeting
 
struct  QuestGreetingLocale
 
struct  GossipMenuItems
 
struct  GossipMenus
 
struct  QuestPOIPoint
 
struct  QuestPOI
 
struct  LanguageDesc
 
struct  DungeonEncounter
 
class  ObjectMgr
 
struct  ObjectMgr::GameobjectInstanceSavedState
 

Macros

#define MIN_ACORE_STRING_ID   1
 
#define MAX_ACORE_STRING_ID   2000000000
 
#define MIN_CREATURE_AI_TEXT_STRING_ID   (-1)
 
#define MAX_CREATURE_AI_TEXT_STRING_ID   (-1000000)
 
#define ACORE_TRAINER_START_REF   200000
 
#define MAX_PLAYER_NAME   12
 
#define MAX_INTERNAL_PLAYER_NAME   15
 
#define MAX_PET_NAME   12
 
#define MAX_CHARTER_NAME   24
 
#define MAX_CHANNEL_NAME   50
 
#define sObjectMgr   ObjectMgr::instance()
 

Typedefs

typedef std::map< uint32, PageTextPageTextContainer
 
typedef std::unordered_map< uint16, InstanceTemplateInstanceTemplateContainer
 
typedef std::unordered_map< uint32, GameTeleGameTeleContainer
 
typedef std::multimap< uint32, ScriptInfoScriptMap
 
typedef std::map< uint32, ScriptMapScriptMapMap
 
typedef std::multimap< uint32, uint32SpellScriptsContainer
 
typedef std::pair< SpellScriptsContainer::iterator, SpellScriptsContainer::iterator > SpellScriptsBounds
 
typedef std::multimap< uint32, SpellClickInfoSpellClickInfoContainer
 
typedef std::pair< SpellClickInfoContainer::const_iterator, SpellClickInfoContainer::const_iterator > SpellClickInfoMapBounds
 
typedef std::unordered_map< uint32, BroadcastTextBroadcastTextContainer
 
typedef std::set< ObjectGuid::LowTypeCellGuidSet
 
typedef std::unordered_map< uint32, CellObjectGuidsCellObjectGuidsMap
 
typedef std::unordered_map< uint32, CellObjectGuidsMapMapObjectGuids
 
typedef std::map< ObjectGuid, ObjectGuidLinkedRespawnContainer
 
typedef std::unordered_map< ObjectGuid::LowType, CreatureDataCreatureDataContainer
 
typedef std::unordered_map< ObjectGuid::LowType, GameObjectDataGameObjectDataContainer
 
typedef std::map< TempSummonGroupKey, std::vector< TempSummonData > > TempSummonDataContainer
 
typedef std::unordered_map< uint32, CreatureLocaleCreatureLocaleContainer
 
typedef std::unordered_map< uint32, GameObjectLocaleGameObjectLocaleContainer
 
typedef std::unordered_map< uint32, ItemLocaleItemLocaleContainer
 
typedef std::unordered_map< uint32, ItemSetNameLocaleItemSetNameLocaleContainer
 
typedef std::unordered_map< uint32, QuestLocaleQuestLocaleContainer
 
typedef std::unordered_map< uint32, QuestOfferRewardLocaleQuestOfferRewardLocaleContainer
 
typedef std::unordered_map< uint32, QuestRequestItemsLocaleQuestRequestItemsLocaleContainer
 
typedef std::unordered_map< uint32, NpcTextLocaleNpcTextLocaleContainer
 
typedef std::unordered_map< uint32, PageTextLocalePageTextLocaleContainer
 
typedef std::unordered_map< int32, AcoreStringAcoreStringContainer
 
typedef std::unordered_map< uint32, GossipMenuItemsLocaleGossipMenuItemsLocaleContainer
 
typedef std::unordered_map< uint32, PointOfInterestLocalePointOfInterestLocaleContainer
 
typedef std::multimap< uint32, uint32QuestRelations
 
typedef std::pair< QuestRelations::const_iterator, QuestRelations::const_iterator > QuestRelationBounds
 
typedef std::list< MailLevelRewardMailLevelRewardList
 
typedef std::unordered_map< uint8, MailLevelRewardListMailLevelRewardContainer
 
typedef std::unordered_map< uint32, QuestGreetingLocaleQuestGreetingLocaleContainer
 
typedef std::multimap< uint32, GossipMenusGossipMenusContainer
 
typedef std::pair< GossipMenusContainer::const_iterator, GossipMenusContainer::const_iterator > GossipMenusMapBounds
 
typedef std::pair< GossipMenusContainer::iterator, GossipMenusContainer::iterator > GossipMenusMapBoundsNonConst
 
typedef std::multimap< uint32, GossipMenuItemsGossipMenuItemsContainer
 
typedef std::pair< GossipMenuItemsContainer::const_iterator, GossipMenuItemsContainer::const_iterator > GossipMenuItemsMapBounds
 
typedef std::pair< GossipMenuItemsContainer::iterator, GossipMenuItemsContainer::iterator > GossipMenuItemsMapBoundsNonConst
 
typedef std::vector< QuestPOIQuestPOIVector
 
typedef std::unordered_map< uint32, QuestPOIVectorQuestPOIContainer
 
typedef std::array< std::unordered_map< uint32, QuestGreeting >, 2 > QuestGreetingContainer
 
typedef std::unordered_map< uint32, VendorItemDataCacheVendorItemContainer
 
typedef std::unordered_map< uint32, TrainerSpellDataCacheTrainerSpellContainer
 
typedef std::unordered_map< uint32, ServerMailServerMailContainer
 
typedef std::vector< uint32CreatureCustomIDsContainer
 
typedef std::list< DungeonEncounter const * > DungeonEncounterList
 
typedef std::unordered_map< uint32, DungeonEncounterListDungeonEncounterContainer
 
typedef std::array< uint32, MAX_QUEST_MONEY_REWARDSQuestMoneyRewardArray
 
typedef std::unordered_map< uint32, QuestMoneyRewardArrayQuestMoneyRewardStore
 

Enumerations

enum  ScriptCommands {
  SCRIPT_COMMAND_TALK = 0 ,
  SCRIPT_COMMAND_EMOTE = 1 ,
  SCRIPT_COMMAND_FIELD_SET = 2 ,
  SCRIPT_COMMAND_MOVE_TO = 3 ,
  SCRIPT_COMMAND_FLAG_SET = 4 ,
  SCRIPT_COMMAND_FLAG_REMOVE = 5 ,
  SCRIPT_COMMAND_TELEPORT_TO = 6 ,
  SCRIPT_COMMAND_QUEST_EXPLORED = 7 ,
  SCRIPT_COMMAND_KILL_CREDIT = 8 ,
  SCRIPT_COMMAND_RESPAWN_GAMEOBJECT = 9 ,
  SCRIPT_COMMAND_TEMP_SUMMON_CREATURE = 10 ,
  SCRIPT_COMMAND_OPEN_DOOR = 11 ,
  SCRIPT_COMMAND_CLOSE_DOOR = 12 ,
  SCRIPT_COMMAND_ACTIVATE_OBJECT = 13 ,
  SCRIPT_COMMAND_REMOVE_AURA = 14 ,
  SCRIPT_COMMAND_CAST_SPELL = 15 ,
  SCRIPT_COMMAND_PLAY_SOUND = 16 ,
  SCRIPT_COMMAND_CREATE_ITEM = 17 ,
  SCRIPT_COMMAND_DESPAWN_SELF = 18 ,
  SCRIPT_COMMAND_LOAD_PATH = 20 ,
  SCRIPT_COMMAND_CALLSCRIPT_TO_UNIT = 21 ,
  SCRIPT_COMMAND_KILL = 22 ,
  SCRIPT_COMMAND_ORIENTATION = 30 ,
  SCRIPT_COMMAND_EQUIP = 31 ,
  SCRIPT_COMMAND_MODEL = 32 ,
  SCRIPT_COMMAND_CLOSE_GOSSIP = 33 ,
  SCRIPT_COMMAND_PLAYMOVIE = 34 ,
  SCRIPT_COMMAND_MOVEMENT = 35
}
 
enum  ScriptsType {
  SCRIPTS_FIRST = 1 ,
  SCRIPTS_SPELL = SCRIPTS_FIRST ,
  SCRIPTS_EVENT ,
  SCRIPTS_WAYPOINT ,
  SCRIPTS_LAST
}
 
enum  eScriptFlags {
  SF_TALK_USE_PLAYER = 0x1 ,
  SF_EMOTE_USE_STATE = 0x1 ,
  SF_TELEPORT_USE_CREATURE = 0x1 ,
  SF_KILLCREDIT_REWARD_GROUP = 0x1 ,
  SF_REMOVEAURA_REVERSE = 0x1 ,
  SF_CASTSPELL_SOURCE_TO_TARGET = 0 ,
  SF_CASTSPELL_SOURCE_TO_SOURCE = 1 ,
  SF_CASTSPELL_TARGET_TO_TARGET = 2 ,
  SF_CASTSPELL_TARGET_TO_SOURCE = 3 ,
  SF_CASTSPELL_SEARCH_CREATURE = 4 ,
  SF_CASTSPELL_TRIGGERED = 0x1 ,
  SF_PLAYSOUND_TARGET_PLAYER = 0x1 ,
  SF_PLAYSOUND_DISTANCE_SOUND = 0x2 ,
  SF_ORIENTATION_FACE_TARGET = 0x1
}
 
enum  SkillRangeType {
  SKILL_RANGE_LANGUAGE ,
  SKILL_RANGE_LEVEL ,
  SKILL_RANGE_MONO ,
  SKILL_RANGE_RANK ,
  SKILL_RANGE_NONE
}
 

Functions

std::string GetScriptsTableNameByType (ScriptsType type)
 
ScriptMapMapGetScriptsMapByType (ScriptsType type)
 
std::string GetScriptCommandName (ScriptCommands command)
 
SkillRangeType GetSkillRangeType (SkillRaceClassInfoEntry const *rcEntry)
 
bool ReservedNames (std::wstring &name)
 
bool ProfanityNames (std::wstring &name)
 
bool normalizePlayerName (std::string &name)
 
LanguageDesc const * GetLanguageDescByID (uint32 lang)
 

Variables

ScriptMapMap sSpellScripts
 
ScriptMapMap sEventScripts
 
ScriptMapMap sWaypointScripts
 
LanguageDesc lang_description [LANGUAGES_COUNT]
 
static constexpr uint32 MAX_QUEST_MONEY_REWARDS = 10
 

Macro Definition Documentation

◆ ACORE_TRAINER_START_REF

#define ACORE_TRAINER_START_REF   200000

◆ MAX_ACORE_STRING_ID

#define MAX_ACORE_STRING_ID   2000000000

◆ MAX_CHANNEL_NAME

#define MAX_CHANNEL_NAME   50

◆ MAX_CHARTER_NAME

#define MAX_CHARTER_NAME   24

◆ MAX_CREATURE_AI_TEXT_STRING_ID

#define MAX_CREATURE_AI_TEXT_STRING_ID   (-1000000)

◆ MAX_INTERNAL_PLAYER_NAME

#define MAX_INTERNAL_PLAYER_NAME   15

◆ MAX_PET_NAME

#define MAX_PET_NAME   12

◆ MAX_PLAYER_NAME

#define MAX_PLAYER_NAME   12

◆ MIN_ACORE_STRING_ID

#define MIN_ACORE_STRING_ID   1

◆ MIN_CREATURE_AI_TEXT_STRING_ID

#define MIN_CREATURE_AI_TEXT_STRING_ID   (-1)

◆ sObjectMgr

#define sObjectMgr   ObjectMgr::instance()

Typedef Documentation

◆ AcoreStringContainer

typedef std::unordered_map<int32, AcoreString> AcoreStringContainer

◆ BroadcastTextContainer

typedef std::unordered_map<uint32, BroadcastText> BroadcastTextContainer

◆ CacheTrainerSpellContainer

typedef std::unordered_map<uint32, TrainerSpellData> CacheTrainerSpellContainer

◆ CacheVendorItemContainer

typedef std::unordered_map<uint32, VendorItemData> CacheVendorItemContainer

◆ CellGuidSet

typedef std::set<ObjectGuid::LowType> CellGuidSet

◆ CellObjectGuidsMap

typedef std::unordered_map<uint32, CellObjectGuids> CellObjectGuidsMap

◆ CreatureCustomIDsContainer

typedef std::vector<uint32> CreatureCustomIDsContainer

◆ CreatureDataContainer

◆ CreatureLocaleContainer

typedef std::unordered_map<uint32, CreatureLocale> CreatureLocaleContainer

◆ DungeonEncounterContainer

◆ DungeonEncounterList

typedef std::list<DungeonEncounter const*> DungeonEncounterList

◆ GameObjectDataContainer

◆ GameObjectLocaleContainer

typedef std::unordered_map<uint32, GameObjectLocale> GameObjectLocaleContainer

◆ GameTeleContainer

typedef std::unordered_map<uint32, GameTele > GameTeleContainer

◆ GossipMenuItemsContainer

◆ GossipMenuItemsLocaleContainer

◆ GossipMenuItemsMapBounds

typedef std::pair<GossipMenuItemsContainer::const_iterator, GossipMenuItemsContainer::const_iterator> GossipMenuItemsMapBounds

◆ GossipMenuItemsMapBoundsNonConst

typedef std::pair<GossipMenuItemsContainer::iterator, GossipMenuItemsContainer::iterator> GossipMenuItemsMapBoundsNonConst

◆ GossipMenusContainer

typedef std::multimap<uint32, GossipMenus> GossipMenusContainer

◆ GossipMenusMapBounds

typedef std::pair<GossipMenusContainer::const_iterator, GossipMenusContainer::const_iterator> GossipMenusMapBounds

◆ GossipMenusMapBoundsNonConst

typedef std::pair<GossipMenusContainer::iterator, GossipMenusContainer::iterator> GossipMenusMapBoundsNonConst

◆ InstanceTemplateContainer

typedef std::unordered_map<uint16, InstanceTemplate> InstanceTemplateContainer

◆ ItemLocaleContainer

typedef std::unordered_map<uint32, ItemLocale> ItemLocaleContainer

◆ ItemSetNameLocaleContainer

typedef std::unordered_map<uint32, ItemSetNameLocale> ItemSetNameLocaleContainer

◆ LinkedRespawnContainer

◆ MailLevelRewardContainer

typedef std::unordered_map<uint8, MailLevelRewardList> MailLevelRewardContainer

◆ MailLevelRewardList

◆ MapObjectGuids

typedef std::unordered_map<uint32, CellObjectGuidsMap> MapObjectGuids

◆ NpcTextLocaleContainer

typedef std::unordered_map<uint32, NpcTextLocale> NpcTextLocaleContainer

◆ PageTextContainer

typedef std::map<uint32, PageText> PageTextContainer

◆ PageTextLocaleContainer

typedef std::unordered_map<uint32, PageTextLocale> PageTextLocaleContainer

◆ PointOfInterestLocaleContainer

◆ QuestGreetingContainer

typedef std::array<std::unordered_map<uint32, QuestGreeting>, 2> QuestGreetingContainer

◆ QuestGreetingLocaleContainer

◆ QuestLocaleContainer

typedef std::unordered_map<uint32, QuestLocale> QuestLocaleContainer

◆ QuestMoneyRewardArray

◆ QuestMoneyRewardStore

typedef std::unordered_map<uint32, QuestMoneyRewardArray> QuestMoneyRewardStore

◆ QuestOfferRewardLocaleContainer

◆ QuestPOIContainer

typedef std::unordered_map<uint32, QuestPOIVector> QuestPOIContainer

◆ QuestPOIVector

typedef std::vector<QuestPOI> QuestPOIVector

◆ QuestRelationBounds

typedef std::pair<QuestRelations::const_iterator, QuestRelations::const_iterator> QuestRelationBounds

◆ QuestRelations

typedef std::multimap<uint32, uint32> QuestRelations

◆ QuestRequestItemsLocaleContainer

◆ ScriptMap

typedef std::multimap<uint32, ScriptInfo> ScriptMap

◆ ScriptMapMap

typedef std::map<uint32, ScriptMap > ScriptMapMap

◆ ServerMailContainer

typedef std::unordered_map<uint32, ServerMail> ServerMailContainer

◆ SpellClickInfoContainer

◆ SpellClickInfoMapBounds

typedef std::pair<SpellClickInfoContainer::const_iterator, SpellClickInfoContainer::const_iterator> SpellClickInfoMapBounds

◆ SpellScriptsBounds

typedef std::pair<SpellScriptsContainer::iterator, SpellScriptsContainer::iterator> SpellScriptsBounds

◆ SpellScriptsContainer

typedef std::multimap<uint32, uint32> SpellScriptsContainer

◆ TempSummonDataContainer

typedef std::map<TempSummonGroupKey, std::vector<TempSummonData> > TempSummonDataContainer

Enumeration Type Documentation

◆ eScriptFlags

Enumerator
SF_TALK_USE_PLAYER 
SF_EMOTE_USE_STATE 
SF_TELEPORT_USE_CREATURE 
SF_KILLCREDIT_REWARD_GROUP 
SF_REMOVEAURA_REVERSE 
SF_CASTSPELL_SOURCE_TO_TARGET 
SF_CASTSPELL_SOURCE_TO_SOURCE 
SF_CASTSPELL_TARGET_TO_TARGET 
SF_CASTSPELL_TARGET_TO_SOURCE 
SF_CASTSPELL_SEARCH_CREATURE 
SF_CASTSPELL_TRIGGERED 
SF_PLAYSOUND_TARGET_PLAYER 
SF_PLAYSOUND_DISTANCE_SOUND 
SF_ORIENTATION_FACE_TARGET 
159{
160 // Talk Flags
161 SF_TALK_USE_PLAYER = 0x1,
162
163 // Emote flags
164 SF_EMOTE_USE_STATE = 0x1,
165
166 // TeleportTo flags
168
169 // KillCredit flags
171
172 // RemoveAura flags
174
175 // CastSpell flags
182
183 // Playsound flags
186
187 // Orientation flags
189};
@ SF_CASTSPELL_SOURCE_TO_SOURCE
Definition: ObjectMgr.h:177
@ SF_CASTSPELL_SOURCE_TO_TARGET
Definition: ObjectMgr.h:176
@ SF_CASTSPELL_TRIGGERED
Definition: ObjectMgr.h:181
@ SF_CASTSPELL_TARGET_TO_SOURCE
Definition: ObjectMgr.h:179
@ SF_REMOVEAURA_REVERSE
Definition: ObjectMgr.h:173
@ SF_PLAYSOUND_DISTANCE_SOUND
Definition: ObjectMgr.h:185
@ SF_TALK_USE_PLAYER
Definition: ObjectMgr.h:161
@ SF_TELEPORT_USE_CREATURE
Definition: ObjectMgr.h:167
@ SF_KILLCREDIT_REWARD_GROUP
Definition: ObjectMgr.h:170
@ SF_PLAYSOUND_TARGET_PLAYER
Definition: ObjectMgr.h:184
@ SF_CASTSPELL_TARGET_TO_TARGET
Definition: ObjectMgr.h:178
@ SF_EMOTE_USE_STATE
Definition: ObjectMgr.h:164
@ SF_CASTSPELL_SEARCH_CREATURE
Definition: ObjectMgr.h:180
@ SF_ORIENTATION_FACE_TARGET
Definition: ObjectMgr.h:188

◆ ScriptCommands

Enumerator
SCRIPT_COMMAND_TALK 
SCRIPT_COMMAND_EMOTE 
SCRIPT_COMMAND_FIELD_SET 
SCRIPT_COMMAND_MOVE_TO 
SCRIPT_COMMAND_FLAG_SET 
SCRIPT_COMMAND_FLAG_REMOVE 
SCRIPT_COMMAND_TELEPORT_TO 
SCRIPT_COMMAND_QUEST_EXPLORED 
SCRIPT_COMMAND_KILL_CREDIT 
SCRIPT_COMMAND_RESPAWN_GAMEOBJECT 
SCRIPT_COMMAND_TEMP_SUMMON_CREATURE 
SCRIPT_COMMAND_OPEN_DOOR 
SCRIPT_COMMAND_CLOSE_DOOR 
SCRIPT_COMMAND_ACTIVATE_OBJECT 
SCRIPT_COMMAND_REMOVE_AURA 
SCRIPT_COMMAND_CAST_SPELL 
SCRIPT_COMMAND_PLAY_SOUND 
SCRIPT_COMMAND_CREATE_ITEM 
SCRIPT_COMMAND_DESPAWN_SELF 
SCRIPT_COMMAND_LOAD_PATH 
SCRIPT_COMMAND_CALLSCRIPT_TO_UNIT 
SCRIPT_COMMAND_KILL 
SCRIPT_COMMAND_ORIENTATION 
SCRIPT_COMMAND_EQUIP 
SCRIPT_COMMAND_MODEL 
SCRIPT_COMMAND_CLOSE_GOSSIP 
SCRIPT_COMMAND_PLAYMOVIE 
SCRIPT_COMMAND_MOVEMENT 
94{
95 SCRIPT_COMMAND_TALK = 0, // source/target = Creature, target = any, datalong = talk type (0=say, 1=whisper, 2=yell, 3=emote text, 4=boss emote text), datalong2 & 1 = player talk (instead of creature), dataint = string_id
96 SCRIPT_COMMAND_EMOTE = 1, // source/target = Creature, datalong = emote id, datalong2 = 0: set emote state; > 0: play emote state
97 SCRIPT_COMMAND_FIELD_SET = 2, // source/target = Creature, datalong = field id, datalog2 = value
98 SCRIPT_COMMAND_MOVE_TO = 3, // source/target = Creature, datalong2 = time to reach, x/y/z = destination
99 SCRIPT_COMMAND_FLAG_SET = 4, // source/target = Creature, datalong = field id, datalog2 = bitmask
100 SCRIPT_COMMAND_FLAG_REMOVE = 5, // source/target = Creature, datalong = field id, datalog2 = bitmask
101 SCRIPT_COMMAND_TELEPORT_TO = 6, // source/target = Creature/Player (see datalong2), datalong = map_id, datalong2 = 0: Player; 1: Creature, x/y/z = destination, o = orientation
102 SCRIPT_COMMAND_QUEST_EXPLORED = 7, // target/source = Player, target/source = GO/Creature, datalong = quest id, datalong2 = distance or 0
103 SCRIPT_COMMAND_KILL_CREDIT = 8, // target/source = Player, datalong = creature entry, datalong2 = 0: personal credit, 1: group credit
104 SCRIPT_COMMAND_RESPAWN_GAMEOBJECT = 9, // source = WorldObject (summoner), datalong = GO guid, datalong2 = despawn delay
105 SCRIPT_COMMAND_TEMP_SUMMON_CREATURE = 10, // source = WorldObject (summoner), datalong = creature entry, datalong2 = despawn delay, x/y/z = summon position, o = orientation
106 SCRIPT_COMMAND_OPEN_DOOR = 11, // source = Unit, datalong = GO guid, datalong2 = reset delay (min 15)
107 SCRIPT_COMMAND_CLOSE_DOOR = 12, // source = Unit, datalong = GO guid, datalong2 = reset delay (min 15)
108 SCRIPT_COMMAND_ACTIVATE_OBJECT = 13, // source = Unit, target = GO
109 SCRIPT_COMMAND_REMOVE_AURA = 14, // source (datalong2 != 0) or target (datalong2 == 0) = Unit, datalong = spell id
110 SCRIPT_COMMAND_CAST_SPELL = 15, // source and/or target = Unit, datalong2 = cast direction (0: s->t 1: s->s 2: t->t 3: t->s 4: s->creature with dataint entry), dataint & 1 = triggered flag
111 SCRIPT_COMMAND_PLAY_SOUND = 16, // source = WorldObject, target = none/Player, datalong = sound id, datalong2 (bitmask: 0/1=anyone/player, 0/2=without/with distance dependency, so 1|2 = 3 is target with distance dependency)
112 SCRIPT_COMMAND_CREATE_ITEM = 17, // target/source = Player, datalong = item entry, datalong2 = amount
113 SCRIPT_COMMAND_DESPAWN_SELF = 18, // target/source = Creature, datalong = despawn delay
114
115 SCRIPT_COMMAND_LOAD_PATH = 20, // source = Unit, datalong = path id, datalong2 = is repeatable
116 SCRIPT_COMMAND_CALLSCRIPT_TO_UNIT = 21, // source = WorldObject (if present used as a search center), datalong = script id, datalong2 = unit lowguid, dataint = script table to use (see ScriptsType)
117 SCRIPT_COMMAND_KILL = 22, // source/target = Creature, dataint = remove corpse attribute
118
119 // AzerothCore only
120 SCRIPT_COMMAND_ORIENTATION = 30, // source = Unit, target (datalong > 0) = Unit, datalong = > 0 turn source to face target, o = orientation
121 SCRIPT_COMMAND_EQUIP = 31, // soucre = Creature, datalong = equipment id
122 SCRIPT_COMMAND_MODEL = 32, // source = Creature, datalong = model id
123 SCRIPT_COMMAND_CLOSE_GOSSIP = 33, // source = Player
124 SCRIPT_COMMAND_PLAYMOVIE = 34, // source = Player, datalong = movie id
125 SCRIPT_COMMAND_MOVEMENT = 35 // soucre = Creature, datalong = MovementType, datalong2 = MovementDistance (wander_distance f.ex.), dataint = pathid
126};
@ SCRIPT_COMMAND_EMOTE
Definition: ObjectMgr.h:96
@ SCRIPT_COMMAND_CREATE_ITEM
Definition: ObjectMgr.h:112
@ SCRIPT_COMMAND_DESPAWN_SELF
Definition: ObjectMgr.h:113
@ SCRIPT_COMMAND_CLOSE_DOOR
Definition: ObjectMgr.h:107
@ SCRIPT_COMMAND_CAST_SPELL
Definition: ObjectMgr.h:110
@ SCRIPT_COMMAND_RESPAWN_GAMEOBJECT
Definition: ObjectMgr.h:104
@ SCRIPT_COMMAND_QUEST_EXPLORED
Definition: ObjectMgr.h:102
@ SCRIPT_COMMAND_ACTIVATE_OBJECT
Definition: ObjectMgr.h:108
@ SCRIPT_COMMAND_TALK
Definition: ObjectMgr.h:95
@ SCRIPT_COMMAND_OPEN_DOOR
Definition: ObjectMgr.h:106
@ SCRIPT_COMMAND_EQUIP
Definition: ObjectMgr.h:121
@ SCRIPT_COMMAND_FIELD_SET
Definition: ObjectMgr.h:97
@ SCRIPT_COMMAND_PLAYMOVIE
Definition: ObjectMgr.h:124
@ SCRIPT_COMMAND_CALLSCRIPT_TO_UNIT
Definition: ObjectMgr.h:116
@ SCRIPT_COMMAND_TELEPORT_TO
Definition: ObjectMgr.h:101
@ SCRIPT_COMMAND_MOVE_TO
Definition: ObjectMgr.h:98
@ SCRIPT_COMMAND_FLAG_SET
Definition: ObjectMgr.h:99
@ SCRIPT_COMMAND_TEMP_SUMMON_CREATURE
Definition: ObjectMgr.h:105
@ SCRIPT_COMMAND_MOVEMENT
Definition: ObjectMgr.h:125
@ SCRIPT_COMMAND_KILL_CREDIT
Definition: ObjectMgr.h:103
@ SCRIPT_COMMAND_KILL
Definition: ObjectMgr.h:117
@ SCRIPT_COMMAND_LOAD_PATH
Definition: ObjectMgr.h:115
@ SCRIPT_COMMAND_ORIENTATION
Definition: ObjectMgr.h:120
@ SCRIPT_COMMAND_PLAY_SOUND
Definition: ObjectMgr.h:111
@ SCRIPT_COMMAND_MODEL
Definition: ObjectMgr.h:122
@ SCRIPT_COMMAND_CLOSE_GOSSIP
Definition: ObjectMgr.h:123
@ SCRIPT_COMMAND_REMOVE_AURA
Definition: ObjectMgr.h:109
@ SCRIPT_COMMAND_FLAG_REMOVE
Definition: ObjectMgr.h:100

◆ ScriptsType

Enumerator
SCRIPTS_FIRST 
SCRIPTS_SPELL 
SCRIPTS_EVENT 
SCRIPTS_WAYPOINT 
SCRIPTS_LAST 
148{
149 SCRIPTS_FIRST = 1,
150
154
156};
@ SCRIPTS_WAYPOINT
Definition: ObjectMgr.h:153
@ SCRIPTS_FIRST
Definition: ObjectMgr.h:149
@ SCRIPTS_EVENT
Definition: ObjectMgr.h:152
@ SCRIPTS_SPELL
Definition: ObjectMgr.h:151
@ SCRIPTS_LAST
Definition: ObjectMgr.h:155

◆ SkillRangeType

Enumerator
SKILL_RANGE_LANGUAGE 
SKILL_RANGE_LEVEL 
SKILL_RANGE_MONO 
SKILL_RANGE_RANK 
SKILL_RANGE_NONE 
678{
679 SKILL_RANGE_LANGUAGE, // 300..300
680 SKILL_RANGE_LEVEL, // 1..max skill for level
681 SKILL_RANGE_MONO, // 1..1, grey monolite bar
682 SKILL_RANGE_RANK, // 1..skill for known rank
683 SKILL_RANGE_NONE, // 0..0 always
684};
@ SKILL_RANGE_MONO
Definition: ObjectMgr.h:681
@ SKILL_RANGE_NONE
Definition: ObjectMgr.h:683
@ SKILL_RANGE_LANGUAGE
Definition: ObjectMgr.h:679
@ SKILL_RANGE_RANK
Definition: ObjectMgr.h:682
@ SKILL_RANGE_LEVEL
Definition: ObjectMgr.h:680

Function Documentation

◆ GetLanguageDescByID()

LanguageDesc const * GetLanguageDescByID ( uint32  lang)
310{
311 for (uint8 i = 0; i < LANGUAGES_COUNT; ++i)
312 {
313 if (uint32(lang_description[i].lang_id) == lang)
314 return &lang_description[i];
315 }
316
317 return nullptr;
318}
std::uint8_t uint8
Definition: Define.h:110
std::uint32_t uint32
Definition: Define.h:108
LanguageDesc lang_description[LANGUAGES_COUNT]
Definition: ObjectMgr.cpp:286
#define LANGUAGES_COUNT
Definition: SharedDefines.h:728

References lang_description, and LANGUAGES_COUNT.

Referenced by WorldSession::HandleMessagechatOpcode(), ObjectMgr::LoadBroadcastTexts(), and CreatureTextMgr::LoadCreatureTexts().

◆ GetScriptCommandName()

std::string GetScriptCommandName ( ScriptCommands  command)
104{
105 std::string res = "";
106 switch (command)
107 {
109 res = "SCRIPT_COMMAND_TALK";
110 break;
112 res = "SCRIPT_COMMAND_EMOTE";
113 break;
115 res = "SCRIPT_COMMAND_FIELD_SET";
116 break;
118 res = "SCRIPT_COMMAND_MOVE_TO";
119 break;
121 res = "SCRIPT_COMMAND_FLAG_SET";
122 break;
124 res = "SCRIPT_COMMAND_FLAG_REMOVE";
125 break;
127 res = "SCRIPT_COMMAND_TELEPORT_TO";
128 break;
130 res = "SCRIPT_COMMAND_QUEST_EXPLORED";
131 break;
133 res = "SCRIPT_COMMAND_KILL_CREDIT";
134 break;
136 res = "SCRIPT_COMMAND_RESPAWN_GAMEOBJECT";
137 break;
139 res = "SCRIPT_COMMAND_TEMP_SUMMON_CREATURE";
140 break;
142 res = "SCRIPT_COMMAND_OPEN_DOOR";
143 break;
145 res = "SCRIPT_COMMAND_CLOSE_DOOR";
146 break;
148 res = "SCRIPT_COMMAND_ACTIVATE_OBJECT";
149 break;
151 res = "SCRIPT_COMMAND_REMOVE_AURA";
152 break;
154 res = "SCRIPT_COMMAND_CAST_SPELL";
155 break;
157 res = "SCRIPT_COMMAND_PLAY_SOUND";
158 break;
160 res = "SCRIPT_COMMAND_CREATE_ITEM";
161 break;
163 res = "SCRIPT_COMMAND_DESPAWN_SELF";
164 break;
166 res = "SCRIPT_COMMAND_LOAD_PATH";
167 break;
169 res = "SCRIPT_COMMAND_CALLSCRIPT_TO_UNIT";
170 break;
172 res = "SCRIPT_COMMAND_KILL";
173 break;
174 // AzerothCore only
176 res = "SCRIPT_COMMAND_ORIENTATION";
177 break;
179 res = "SCRIPT_COMMAND_EQUIP";
180 break;
182 res = "SCRIPT_COMMAND_MODEL";
183 break;
185 res = "SCRIPT_COMMAND_CLOSE_GOSSIP";
186 break;
188 res = "SCRIPT_COMMAND_PLAYMOVIE";
189 break;
190 default:
191 {
192 char sz[32];
193 snprintf(sz, sizeof(sz), "Unknown command: %d", command);
194 res = sz;
195 break;
196 }
197 }
198 return res;
199}

References SCRIPT_COMMAND_ACTIVATE_OBJECT, SCRIPT_COMMAND_CALLSCRIPT_TO_UNIT, SCRIPT_COMMAND_CAST_SPELL, SCRIPT_COMMAND_CLOSE_DOOR, SCRIPT_COMMAND_CLOSE_GOSSIP, SCRIPT_COMMAND_CREATE_ITEM, SCRIPT_COMMAND_DESPAWN_SELF, SCRIPT_COMMAND_EMOTE, SCRIPT_COMMAND_EQUIP, SCRIPT_COMMAND_FIELD_SET, SCRIPT_COMMAND_FLAG_REMOVE, SCRIPT_COMMAND_FLAG_SET, SCRIPT_COMMAND_KILL, SCRIPT_COMMAND_KILL_CREDIT, SCRIPT_COMMAND_LOAD_PATH, SCRIPT_COMMAND_MODEL, SCRIPT_COMMAND_MOVE_TO, SCRIPT_COMMAND_OPEN_DOOR, SCRIPT_COMMAND_ORIENTATION, SCRIPT_COMMAND_PLAY_SOUND, SCRIPT_COMMAND_PLAYMOVIE, SCRIPT_COMMAND_QUEST_EXPLORED, SCRIPT_COMMAND_REMOVE_AURA, SCRIPT_COMMAND_RESPAWN_GAMEOBJECT, SCRIPT_COMMAND_TALK, SCRIPT_COMMAND_TELEPORT_TO, and SCRIPT_COMMAND_TEMP_SUMMON_CREATURE.

Referenced by ScriptInfo::GetDebugInfo(), and ObjectMgr::LoadScripts().

◆ GetScriptsMapByType()

ScriptMapMap * GetScriptsMapByType ( ScriptsType  type)
84{
85 ScriptMapMap* res = nullptr;
86 switch (type)
87 {
88 case SCRIPTS_SPELL:
89 res = &sSpellScripts;
90 break;
91 case SCRIPTS_EVENT:
92 res = &sEventScripts;
93 break;
95 res = &sWaypointScripts;
96 break;
97 default:
98 break;
99 }
100 return res;
101}
ScriptMapMap sSpellScripts
Definition: ObjectMgr.cpp:59
ScriptMapMap sEventScripts
Definition: ObjectMgr.cpp:60
ScriptMapMap sWaypointScripts
Definition: ObjectMgr.cpp:61
std::map< uint32, ScriptMap > ScriptMapMap
Definition: ObjectMgr.h:387

References SCRIPTS_EVENT, SCRIPTS_SPELL, SCRIPTS_WAYPOINT, sEventScripts, sSpellScripts, and sWaypointScripts.

Referenced by ObjectMgr::LoadScripts(), and Map::ScriptsProcess().

◆ GetScriptsTableNameByType()

std::string GetScriptsTableNameByType ( ScriptsType  type)
64{
65 std::string res = "";
66 switch (type)
67 {
68 case SCRIPTS_SPELL:
69 res = "spell_scripts";
70 break;
71 case SCRIPTS_EVENT:
72 res = "event_scripts";
73 break;
75 res = "waypoint_scripts";
76 break;
77 default:
78 break;
79 }
80 return res;
81}

References SCRIPTS_EVENT, SCRIPTS_SPELL, and SCRIPTS_WAYPOINT.

Referenced by ScriptInfo::GetDebugInfo(), and ObjectMgr::LoadScripts().

◆ GetSkillRangeType()

SkillRangeType GetSkillRangeType ( SkillRaceClassInfoEntry const *  rcEntry)
8736{
8737 SkillLineEntry const* skill = sSkillLineStore.LookupEntry(rcEntry->SkillID);
8738 if (!skill)
8739 {
8740 return SKILL_RANGE_NONE;
8741 }
8742
8743 if (sSkillTiersStore.LookupEntry(rcEntry->SkillTierID))
8744 {
8745 return SKILL_RANGE_RANK;
8746 }
8747
8748 if (rcEntry->SkillID == SKILL_RUNEFORGING)
8749 {
8750 return SKILL_RANGE_MONO;
8751 }
8752
8753 switch (skill->categoryId)
8754 {
8756 return SKILL_RANGE_MONO;
8758 return SKILL_RANGE_LANGUAGE;
8759 }
8760
8761 return SKILL_RANGE_LEVEL;
8762}
DBCStorage< SkillTiersEntry > sSkillTiersStore(SkillTiersfmt)
DBCStorage< SkillLineEntry > sSkillLineStore(SkillLinefmt)
@ SKILL_CATEGORY_ARMOR
Definition: SharedDefines.h:3047
@ SKILL_CATEGORY_LANGUAGES
Definition: SharedDefines.h:3049
@ SKILL_RUNEFORGING
Definition: SharedDefines.h:2976
Definition: DBCStructure.h:1556
int32 categoryId
Definition: DBCStructure.h:1558

References SkillLineEntry::categoryId, SKILL_CATEGORY_ARMOR, SKILL_CATEGORY_LANGUAGES, SKILL_RANGE_LANGUAGE, SKILL_RANGE_LEVEL, SKILL_RANGE_MONO, SKILL_RANGE_NONE, SKILL_RANGE_RANK, SKILL_RUNEFORGING, SkillRaceClassInfoEntry::SkillID, SkillRaceClassInfoEntry::SkillTierID, sSkillLineStore, and sSkillTiersStore.

Referenced by Player::_LoadSkills(), Player::LearnDefaultSkill(), and Player::UpdateSkillsForLevel().

◆ normalizePlayerName()

bool normalizePlayerName ( std::string &  name)
265{
266 if (name.empty())
267 return false;
268
269 if (name.find(" ") != std::string::npos)
270 return false;
271
272 std::wstring tmp;
273 if (!Utf8toWStr(name, tmp))
274 return false;
275
276 wstrToLower(tmp);
277 if (!tmp.empty())
278 tmp[0] = wcharToUpper(tmp[0]);
279
280 if (!WStrToUtf8(tmp, name))
281 return false;
282
283 return true;
284}
bool WStrToUtf8(wchar_t const *wstr, size_t size, std::string &utf8str)
Definition: Util.cpp:334
void wstrToLower(std::wstring &str)
Definition: Util.cpp:383
bool Utf8toWStr(char const *utf8str, size_t csize, wchar_t *wstr, size_t &wsize)
Definition: Util.cpp:282
wchar_t wcharToUpper(wchar_t wchar)
Definition: Util.h:273

References Utf8toWStr(), wcharToUpper(), wstrToLower(), and WStrToUtf8().

Referenced by ChatHandler::extractLowGuidFromLink(), ChatHandler::extractPlayerNameFromLink(), PlayerNameMapHolder::Find(), character_commandscript::GetDeletedCharacterInfoList(), ChatHandler::GetPlayerGroupAndGUIDByName(), WorldSession::HandleAddFriendOpcode(), WorldSession::HandleAddIgnoreOpcode(), WorldSession::HandleArenaTeamInviteOpcode(), WorldSession::HandleArenaTeamLeaderOpcode(), WorldSession::HandleArenaTeamRemoveOpcode(), ban_commandscript::HandleBanCharacterCommand(), ban_commandscript::HandleBanHelper(), WorldSession::HandleChannelBan(), WorldSession::HandleChannelInvite(), WorldSession::HandleChannelKick(), WorldSession::HandleChannelModerator(), WorldSession::HandleChannelMute(), WorldSession::HandleChannelSetOwner(), WorldSession::HandleChannelUnban(), WorldSession::HandleChannelUnmoderator(), WorldSession::HandleChannelUnmute(), character_commandscript::HandleCharacterRenameCommand(), WorldSession::HandleCharCreateOpcode(), WorldSession::HandleCharCustomizeCallback(), WorldSession::HandleCharFactionOrRaceChangeCallback(), WorldSession::HandleCharRenameOpcode(), deserter_commandscript::HandleDeserterAdd(), ticket_commandscript::HandleGMTicketAssignToCommand(), ticket_commandscript::HandleGMTicketGetByNameCommand(), WorldSession::HandleGroupInviteOpcode(), WorldSession::HandleGroupSwapSubGroupOpcode(), WorldSession::HandleGroupUninviteOpcode(), WorldSession::HandleGuildDemoteOpcode(), WorldSession::HandleGuildInviteOpcode(), WorldSession::HandleGuildLeaderOpcode(), WorldSession::HandleGuildPromoteOpcode(), WorldSession::HandleGuildRemoveOpcode(), WorldSession::HandleGuildSetOfficerNoteOpcode(), WorldSession::HandleGuildSetPublicNoteOpcode(), WorldSession::HandleMessagechatOpcode(), WorldSession::HandleSendMail(), WorldSession::HandleSetPlayerDeclinedNames(), ban_commandscript::HandleUnBanCharacterCommand(), ban_commandscript::HandleUnBanHelper(), message_commandscript::HandleWhispersCommand(), WorldSession::HandleWhoisOpcode(), PlayerDumpReader::LoadDump(), Acore::ChatCommands::PlayerIdentifier::TryConsume(), and character_commandscript::ValidatePDumpTarget().

◆ ProfanityNames()

bool ProfanityNames ( std::wstring &  name)
244{
245 for (NamesProfanityEntry const* profanityStore : sNamesProfanityStore)
246 {
247 std::wstring PatternString;
248
249 Utf8toWStr(profanityStore->Pattern, PatternString);
250
251 boost::algorithm::replace_all(PatternString, "\\<", "");
252 boost::algorithm::replace_all(PatternString, "\\>", "");
253
254 int stringCompare = name.compare(PatternString);
255 if (stringCompare == 0)
256 {
257 return true;
258 }
259 }
260
261 return false;
262}
DBCStorage< NamesProfanityEntry > sNamesProfanityStore(NamesProfanityfmt)
Definition: DBCStructure.h:1388

References sNamesProfanityStore, and Utf8toWStr().

Referenced by ObjectMgr::CheckPetName(), ObjectMgr::CheckPlayerName(), and ObjectMgr::IsValidCharterName().

◆ ReservedNames()

bool ReservedNames ( std::wstring &  name)
216{
217 for (NamesReservedEntry const* reservedStore : sNamesReservedStore)
218 {
219 std::wstring PatternString;
220
221 Utf8toWStr(reservedStore->Pattern, PatternString);
222
223 boost::algorithm::replace_all(PatternString, "\\<", "");
224 boost::algorithm::replace_all(PatternString, "\\>", "");
225
226 int stringCompare = name.compare(PatternString);
227 if (stringCompare == 0)
228 {
229 return true;
230 }
231 }
232
233 return false;
234};
DBCStorage< NamesReservedEntry > sNamesReservedStore(NamesReservedfmt)
Definition: DBCStructure.h:1381

References sNamesReservedStore, and Utf8toWStr().

Referenced by ObjectMgr::CheckPetName(), ObjectMgr::CheckPlayerName(), and ObjectMgr::IsValidCharterName().

Variable Documentation

◆ lang_description

◆ MAX_QUEST_MONEY_REWARDS

constexpr uint32 MAX_QUEST_MONEY_REWARDS = 10
staticconstexpr

◆ sEventScripts

◆ sSpellScripts

◆ sWaypointScripts