diff options
author | joschiwald <joschiwald.trinity@gmail.com> | 2017-05-21 14:15:04 +0200 |
---|---|---|
committer | joschiwald <joschiwald.trinity@gmail.com> | 2017-05-21 14:17:47 +0200 |
commit | b192c46b063d6b3b14b6b45f56ef6c4b03ee0839 (patch) | |
tree | dcef29c7e770685046d45c34fe07a4db83767153 /src/server/game/Globals/ObjectMgr.cpp | |
parent | 7cc3d1387d12b9d128fd812b6548113eb883c098 (diff) |
Core/Creature: Added UnitFlags3 to creature_template
Diffstat (limited to 'src/server/game/Globals/ObjectMgr.cpp')
-rw-r--r-- | src/server/game/Globals/ObjectMgr.cpp | 121 |
1 files changed, 66 insertions, 55 deletions
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index f6a29f9b10f..dfa88d4faaa 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -423,15 +423,15 @@ void ObjectMgr::LoadCreatureTemplates() "modelid4, name, femaleName, subname, IconName, gossip_menu_id, minlevel, maxlevel, HealthScalingExpansion, RequiredExpansion, VignetteID, " // 20 21 22 23 24 25 26 27 28 29 30 "faction, npcflag, speed_walk, speed_run, scale, rank, dmgschool, BaseAttackTime, RangeAttackTime, BaseVariance, RangeVariance, " - // 31 32 33 34 35 36 37 38 39 - "unit_class, unit_flags, unit_flags2, dynamicflags, family, trainer_type, trainer_class, trainer_race, type, " - // 40 41 42 43 44 45 46 47 48 49 50 + // 31 32 33 34 35 36 37 38 39 40 + "unit_class, unit_flags, unit_flags2, unit_flags3, dynamicflags, family, trainer_type, trainer_class, trainer_race, type, " + // 41 42 43 44 45 46 47 48 49 50 51 "type_flags, type_flags2, lootid, pickpocketloot, skinloot, resistance1, resistance2, resistance3, resistance4, resistance5, resistance6, " - // 51 52 53 54 55 56 57 58 59 60 61 62 63 + // 52 53 54 55 56 57 58 59 60 61 62 63 64 "spell1, spell2, spell3, spell4, spell5, spell6, spell7, spell8, VehicleId, mingold, maxgold, AIName, MovementType, " - // 64 65 66 67 68 69 70 71 72 + // 65 66 67 68 69 70 71 72 73 "InhabitType, HoverHeight, HealthModifier, HealthModifierExtra, ManaModifier, ManaModifierExtra, ArmorModifier, DamageModifier, ExperienceModifier, " - // 73 74 75 76 77 78 + // 74 75 76 77 78 79 "RacialLeader, movementId, RegenHealth, mechanic_immune_mask, flags_extra, ScriptName FROM creature_template"); if (!result) @@ -499,44 +499,45 @@ void ObjectMgr::LoadCreatureTemplate(Field* fields) creatureTemplate.unit_class = uint32(fields[31].GetUInt8()); creatureTemplate.unit_flags = fields[32].GetUInt32(); creatureTemplate.unit_flags2 = fields[33].GetUInt32(); - creatureTemplate.dynamicflags = fields[34].GetUInt32(); - creatureTemplate.family = CreatureFamily(fields[35].GetUInt8()); - creatureTemplate.trainer_type = uint32(fields[36].GetUInt8()); - creatureTemplate.trainer_class = uint32(fields[37].GetUInt8()); - creatureTemplate.trainer_race = uint32(fields[38].GetUInt8()); - creatureTemplate.type = uint32(fields[39].GetUInt8()); - creatureTemplate.type_flags = fields[40].GetUInt32(); - creatureTemplate.type_flags2 = fields[41].GetUInt32(); - creatureTemplate.lootid = fields[42].GetUInt32(); - creatureTemplate.pickpocketLootId = fields[43].GetUInt32(); - creatureTemplate.SkinLootId = fields[44].GetUInt32(); + creatureTemplate.unit_flags3 = fields[34].GetUInt32(); + creatureTemplate.dynamicflags = fields[35].GetUInt32(); + creatureTemplate.family = CreatureFamily(fields[36].GetUInt8()); + creatureTemplate.trainer_type = uint32(fields[37].GetUInt8()); + creatureTemplate.trainer_class = uint32(fields[38].GetUInt8()); + creatureTemplate.trainer_race = uint32(fields[39].GetUInt8()); + creatureTemplate.type = uint32(fields[40].GetUInt8()); + creatureTemplate.type_flags = fields[41].GetUInt32(); + creatureTemplate.type_flags2 = fields[42].GetUInt32(); + creatureTemplate.lootid = fields[43].GetUInt32(); + creatureTemplate.pickpocketLootId = fields[44].GetUInt32(); + creatureTemplate.SkinLootId = fields[45].GetUInt32(); for (uint8 i = SPELL_SCHOOL_HOLY; i < MAX_SPELL_SCHOOL; ++i) - creatureTemplate.resistance[i] = fields[45 + i - 1].GetInt16(); + creatureTemplate.resistance[i] = fields[46 + i - 1].GetInt16(); for (uint8 i = 0; i < MAX_CREATURE_SPELLS; ++i) - creatureTemplate.spells[i] = fields[51 + i].GetUInt32(); - - creatureTemplate.VehicleId = fields[59].GetUInt32(); - creatureTemplate.mingold = fields[60].GetUInt32(); - creatureTemplate.maxgold = fields[61].GetUInt32(); - creatureTemplate.AIName = fields[62].GetString(); - creatureTemplate.MovementType = uint32(fields[63].GetUInt8()); - creatureTemplate.InhabitType = uint32(fields[64].GetUInt8()); - creatureTemplate.HoverHeight = fields[65].GetFloat(); - creatureTemplate.ModHealth = fields[66].GetFloat(); - creatureTemplate.ModHealthExtra = fields[67].GetFloat(); - creatureTemplate.ModMana = fields[68].GetFloat(); - creatureTemplate.ModManaExtra = fields[69].GetFloat(); - creatureTemplate.ModArmor = fields[70].GetFloat(); - creatureTemplate.ModDamage = fields[71].GetFloat(); - creatureTemplate.ModExperience = fields[72].GetFloat(); - creatureTemplate.RacialLeader = fields[73].GetBool(); - creatureTemplate.movementId = fields[74].GetUInt32(); - creatureTemplate.RegenHealth = fields[75].GetBool(); - creatureTemplate.MechanicImmuneMask = fields[76].GetUInt32(); - creatureTemplate.flags_extra = fields[77].GetUInt32(); - creatureTemplate.ScriptID = GetScriptId(fields[78].GetString()); + creatureTemplate.spells[i] = fields[52 + i].GetUInt32(); + + creatureTemplate.VehicleId = fields[60].GetUInt32(); + creatureTemplate.mingold = fields[61].GetUInt32(); + creatureTemplate.maxgold = fields[62].GetUInt32(); + creatureTemplate.AIName = fields[63].GetString(); + creatureTemplate.MovementType = uint32(fields[64].GetUInt8()); + creatureTemplate.InhabitType = uint32(fields[65].GetUInt8()); + creatureTemplate.HoverHeight = fields[66].GetFloat(); + creatureTemplate.ModHealth = fields[67].GetFloat(); + creatureTemplate.ModHealthExtra = fields[68].GetFloat(); + creatureTemplate.ModMana = fields[69].GetFloat(); + creatureTemplate.ModManaExtra = fields[70].GetFloat(); + creatureTemplate.ModArmor = fields[71].GetFloat(); + creatureTemplate.ModDamage = fields[72].GetFloat(); + creatureTemplate.ModExperience = fields[73].GetFloat(); + creatureTemplate.RacialLeader = fields[74].GetBool(); + creatureTemplate.movementId = fields[75].GetUInt32(); + creatureTemplate.RegenHealth = fields[76].GetBool(); + creatureTemplate.MechanicImmuneMask = fields[77].GetUInt32(); + creatureTemplate.flags_extra = fields[78].GetUInt32(); + creatureTemplate.ScriptID = GetScriptId(fields[79].GetString()); } void ObjectMgr::LoadCreatureTemplateAddons() @@ -1401,22 +1402,30 @@ uint32 ObjectMgr::ChooseDisplayId(CreatureTemplate const* cinfo, CreatureData co return cinfo->GetFirstInvisibleModel(); } -void ObjectMgr::ChooseCreatureFlags(const CreatureTemplate* cinfo, uint64& npcflag, uint32& unit_flags, uint32& dynamicflags, const CreatureData* data /*= nullptr*/) +void ObjectMgr::ChooseCreatureFlags(CreatureTemplate const* cInfo, uint64& npcFlags, uint32& unitFlags, uint32& unitFlags2, uint32& unitFlags3, uint32& dynamicFlags, CreatureData const* data /*= nullptr*/) { - npcflag = cinfo->npcflag; - unit_flags = cinfo->unit_flags; - dynamicflags = cinfo->dynamicflags; + npcFlags = cInfo->npcflag; + unitFlags = cInfo->unit_flags; + unitFlags2 = cInfo->unit_flags2; + unitFlags3 = cInfo->unit_flags3; + dynamicFlags = cInfo->dynamicflags; if (data) { if (data->npcflag) - npcflag = data->npcflag; + npcFlags = data->npcflag; if (data->unit_flags) - unit_flags = data->unit_flags; + unitFlags = data->unit_flags; + + if (data->unit_flags2) + unitFlags2 = data->unit_flags2; + + if (data->unit_flags3) + unitFlags3 = data->unit_flags3; if (data->dynamicflags) - dynamicflags = data->dynamicflags; + dynamicFlags = data->dynamicflags; } } @@ -1846,10 +1855,10 @@ void ObjectMgr::LoadCreatures() // 0 1 2 3 4 5 6 7 8 9 10 QueryResult result = WorldDatabase.Query("SELECT creature.guid, id, map, modelid, equipment_id, position_x, position_y, position_z, orientation, spawntimesecs, spawndist, " - // 11 12 13 14 15 16 17 18 19 20 21 - "currentwaypoint, curhealth, curmana, MovementType, spawnMask, eventEntry, pool_entry, creature.npcflag, creature.unit_flags, creature.dynamicflags, creature.phaseid, " - // 22 23 - "creature.phasegroup, creature.ScriptName " + // 11 12 13 14 15 16 17 18 19 20 21 + "currentwaypoint, curhealth, curmana, MovementType, spawnMask, eventEntry, pool_entry, creature.npcflag, creature.unit_flags, creature.unit_flags2, creature.unit_flags3, " + // 22 23 24 25 + "creature.dynamicflags, creature.phaseid, creature.phasegroup, creature.ScriptName " "FROM creature " "LEFT OUTER JOIN game_event_creature ON creature.guid = game_event_creature.guid " "LEFT OUTER JOIN pool_creature ON creature.guid = pool_creature.guid"); @@ -1903,10 +1912,12 @@ void ObjectMgr::LoadCreatures() uint32 PoolId = fields[17].GetUInt32(); data.npcflag = fields[18].GetUInt64(); data.unit_flags = fields[19].GetUInt32(); - data.dynamicflags = fields[20].GetUInt32(); - data.phaseid = fields[21].GetUInt32(); - data.phaseGroup = fields[22].GetUInt32(); - data.ScriptId = GetScriptId(fields[23].GetString()); + data.unit_flags2 = fields[20].GetUInt32(); + data.unit_flags3 = fields[21].GetUInt32(); + data.dynamicflags = fields[22].GetUInt32(); + data.phaseid = fields[23].GetUInt32(); + data.phaseGroup = fields[24].GetUInt32(); + data.ScriptId = GetScriptId(fields[25].GetString()); if (!data.ScriptId) data.ScriptId = cInfo->ScriptID; |