diff options
| author | Kittnz <Kittnz@users.noreply.github.com> | 2019-01-16 20:48:01 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-01-16 20:48:01 +0100 |
| commit | 83e6fde0664cf8ab0c425e574781262893e7b226 (patch) | |
| tree | 4aecb8e4560b988907581d1ff11cd507b9fee795 /src/server/game/Globals/ObjectMgr.cpp | |
| parent | e0c939b0d411fae5db0a19939ee9aa67b614db74 (diff) | |
Core/Objects: increase sight range of all Infinite, Gigantic and Large objects & correct general default visibility distance (#22892)
Note: This does not make the object active.
Some info on range
https://trinitycore.atlassian.net/wiki/spaces/tc/pages/74950924/Lua+Scene+Script+Documentation#LuaSceneScriptDocumentation-ActorAOIRange
#21111 #21681 #22891
Thanks Kinzcool & Kelno
Diffstat (limited to 'src/server/game/Globals/ObjectMgr.cpp')
| -rw-r--r-- | src/server/game/Globals/ObjectMgr.cpp | 60 |
1 files changed, 38 insertions, 22 deletions
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index db98243a5f1..8ad7d0b14ae 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -588,8 +588,8 @@ void ObjectMgr::LoadCreatureTemplateAddons() { uint32 oldMSTime = getMSTime(); - // 0 1 2 3 4 5 6 7 8 9 - QueryResult result = WorldDatabase.Query("SELECT entry, path_id, mount, bytes1, bytes2, emote, aiAnimKit, movementAnimKit, meleeAnimKit, auras FROM creature_template_addon"); + // 0 1 2 3 4 5 6 7 8 9 10 + QueryResult result = WorldDatabase.Query("SELECT entry, path_id, mount, bytes1, bytes2, emote, aiAnimKit, movementAnimKit, meleeAnimKit, visibilityDistanceType, auras FROM creature_template_addon"); if (!result) { @@ -612,16 +612,17 @@ void ObjectMgr::LoadCreatureTemplateAddons() CreatureAddon& creatureAddon = _creatureTemplateAddonStore[entry]; - creatureAddon.path_id = fields[1].GetUInt32(); - creatureAddon.mount = fields[2].GetUInt32(); - creatureAddon.bytes1 = fields[3].GetUInt32(); - creatureAddon.bytes2 = fields[4].GetUInt32(); - creatureAddon.emote = fields[5].GetUInt32(); - creatureAddon.aiAnimKit = fields[6].GetUInt16(); - creatureAddon.movementAnimKit = fields[7].GetUInt16(); - creatureAddon.meleeAnimKit = fields[8].GetUInt16(); - - Tokenizer tokens(fields[9].GetString(), ' '); + creatureAddon.path_id = fields[1].GetUInt32(); + creatureAddon.mount = fields[2].GetUInt32(); + creatureAddon.bytes1 = fields[3].GetUInt32(); + creatureAddon.bytes2 = fields[4].GetUInt32(); + creatureAddon.emote = fields[5].GetUInt32(); + creatureAddon.aiAnimKit = fields[6].GetUInt16(); + creatureAddon.movementAnimKit = fields[7].GetUInt16(); + creatureAddon.meleeAnimKit = fields[8].GetUInt16(); + creatureAddon.visibilityDistanceType = VisibilityDistanceType(fields[9].GetUInt8()); + + Tokenizer tokens(fields[10].GetString(), ' '); uint8 i = 0; creatureAddon.auras.resize(tokens.size()); for (Tokenizer::const_iterator itr = tokens.begin(); itr != tokens.end(); ++itr) @@ -679,6 +680,13 @@ void ObjectMgr::LoadCreatureTemplateAddons() creatureAddon.meleeAnimKit = 0; } + if (creatureAddon.visibilityDistanceType >= VisibilityDistanceType::Max) + { + TC_LOG_ERROR("sql.sql", "Creature (Entry: %u) has invalid visibilityDistanceType (%u) defined in `creature_template_addon`.", + entry, AsUnderlyingType(creatureAddon.visibilityDistanceType)); + creatureAddon.visibilityDistanceType = VisibilityDistanceType::Normal; + } + ++count; } while (result->NextRow()); @@ -1064,8 +1072,8 @@ void ObjectMgr::LoadCreatureAddons() { uint32 oldMSTime = getMSTime(); - // 0 1 2 3 4 5 6 7 8 9 - QueryResult result = WorldDatabase.Query("SELECT guid, path_id, mount, bytes1, bytes2, emote, aiAnimKit, movementAnimKit, meleeAnimKit, auras FROM creature_addon"); + // 0 1 2 3 4 5 6 7 8 9 10 + QueryResult result = WorldDatabase.Query("SELECT guid, path_id, mount, bytes1, bytes2, emote, aiAnimKit, movementAnimKit, meleeAnimKit, visibilityDistanceType, auras FROM creature_addon"); if (!result) { @@ -1096,15 +1104,16 @@ void ObjectMgr::LoadCreatureAddons() TC_LOG_ERROR("sql.sql", "Creature (GUID " UI64FMTD ") has movement type set to WAYPOINT_MOTION_TYPE but no path assigned", guid); } - creatureAddon.mount = fields[2].GetUInt32(); - creatureAddon.bytes1 = fields[3].GetUInt32(); - creatureAddon.bytes2 = fields[4].GetUInt32(); - creatureAddon.emote = fields[5].GetUInt32(); - creatureAddon.aiAnimKit = fields[6].GetUInt16(); - creatureAddon.movementAnimKit = fields[7].GetUInt16(); - creatureAddon.meleeAnimKit = fields[8].GetUInt16(); + creatureAddon.mount = fields[2].GetUInt32(); + creatureAddon.bytes1 = fields[3].GetUInt32(); + creatureAddon.bytes2 = fields[4].GetUInt32(); + creatureAddon.emote = fields[5].GetUInt32(); + creatureAddon.aiAnimKit = fields[6].GetUInt16(); + creatureAddon.movementAnimKit = fields[7].GetUInt16(); + creatureAddon.meleeAnimKit = fields[8].GetUInt16(); + creatureAddon.visibilityDistanceType = VisibilityDistanceType(fields[9].GetUInt8()); - Tokenizer tokens(fields[9].GetString(), ' '); + Tokenizer tokens(fields[10].GetString(), ' '); uint8 i = 0; creatureAddon.auras.resize(tokens.size()); for (Tokenizer::const_iterator itr = tokens.begin(); itr != tokens.end(); ++itr) @@ -1162,6 +1171,13 @@ void ObjectMgr::LoadCreatureAddons() creatureAddon.meleeAnimKit = 0; } + if (creatureAddon.visibilityDistanceType >= VisibilityDistanceType::Max) + { + TC_LOG_ERROR("sql.sql", "Creature (GUID: " UI64FMTD ") has invalid visibilityDistanceType (%u) defined in `creature_addon`.", + guid, AsUnderlyingType(creatureAddon.visibilityDistanceType)); + creatureAddon.visibilityDistanceType = VisibilityDistanceType::Normal; + } + ++count; } while (result->NextRow()); |
