mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
Core/Creature:
- Addet support for female creature name - Fix some name_loc for deDE - Added some female name loc for deDe
This commit is contained in:
9
sql/updates/world/2014_06_21_00_creature_434.sql
Normal file
9
sql/updates/world/2014_06_21_00_creature_434.sql
Normal file
@@ -0,0 +1,9 @@
|
||||
ALTER TABLE `creature_template` ADD `femaleName` CHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `name`;
|
||||
ALTER TABLE `locales_creature` ADD `femaleName_loc1` CHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `name_loc1`;
|
||||
ALTER TABLE `locales_creature` ADD `femaleName_loc2` CHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `name_loc2`;
|
||||
ALTER TABLE `locales_creature` ADD `femaleName_loc3` CHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `name_loc3`;
|
||||
ALTER TABLE `locales_creature` ADD `femaleName_loc4` CHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `name_loc4`;
|
||||
ALTER TABLE `locales_creature` ADD `femaleName_loc5` CHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `name_loc5`;
|
||||
ALTER TABLE `locales_creature` ADD `femaleName_loc6` CHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `name_loc6`;
|
||||
ALTER TABLE `locales_creature` ADD `femaleName_loc7` CHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `name_loc7`;
|
||||
ALTER TABLE `locales_creature` ADD `femaleName_loc8` CHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `name_loc8`;
|
||||
1575
sql/updates/world/2014_06_21_01_locales_creature.sql
Normal file
1575
sql/updates/world/2014_06_21_01_locales_creature.sql
Normal file
File diff suppressed because it is too large
Load Diff
1575
sql/updates/world/2014_06_21_02_locales_creature.sql
Normal file
1575
sql/updates/world/2014_06_21_02_locales_creature.sql
Normal file
File diff suppressed because it is too large
Load Diff
@@ -82,6 +82,7 @@ struct CreatureTemplate
|
||||
uint32 Modelid3;
|
||||
uint32 Modelid4;
|
||||
std::string Name;
|
||||
std::string FemaleName;
|
||||
std::string SubName;
|
||||
std::string IconName;
|
||||
uint32 GossipMenuId;
|
||||
@@ -225,6 +226,7 @@ typedef std::unordered_map<uint16, CreatureBaseStats> CreatureBaseStatsContainer
|
||||
struct CreatureLocale
|
||||
{
|
||||
StringVector Name;
|
||||
StringVector FemaleName;
|
||||
StringVector SubName;
|
||||
};
|
||||
|
||||
|
||||
@@ -324,9 +324,18 @@ void ObjectMgr::LoadCreatureLocales()
|
||||
{
|
||||
uint32 oldMSTime = getMSTime();
|
||||
|
||||
_creatureLocaleStore.clear(); // need for reload case
|
||||
_creatureLocaleStore.clear(); // need for reload case
|
||||
|
||||
QueryResult result = WorldDatabase.Query("SELECT entry, name_loc1, subname_loc1, name_loc2, subname_loc2, name_loc3, subname_loc3, name_loc4, subname_loc4, name_loc5, subname_loc5, name_loc6, subname_loc6, name_loc7, subname_loc7, name_loc8, subname_loc8 FROM locales_creature");
|
||||
QueryResult result = WorldDatabase.Query("SELECT entry, "
|
||||
"name_loc1, femaleName_loc1, subname_loc1, "
|
||||
"name_loc2, femaleName_loc2, subname_loc2, "
|
||||
"name_loc3, femaleName_loc3, subname_loc3, "
|
||||
"name_loc4, femaleName_loc4, subname_loc4, "
|
||||
"name_loc5, femaleName_loc5, subname_loc5, "
|
||||
"name_loc6, femaleName_loc6, subname_loc6, "
|
||||
"name_loc7, femaleName_loc7, subname_loc7, "
|
||||
"name_loc8, femaleName_loc8, subname_loc8 "
|
||||
"FROM locales_creature");
|
||||
|
||||
if (!result)
|
||||
return;
|
||||
@@ -342,8 +351,9 @@ void ObjectMgr::LoadCreatureLocales()
|
||||
for (uint8 i = 1; i < TOTAL_LOCALES; ++i)
|
||||
{
|
||||
LocaleConstant locale = (LocaleConstant) i;
|
||||
AddLocaleString(fields[1 + 2 * (i - 1)].GetString(), locale, data.Name);
|
||||
AddLocaleString(fields[1 + 2 * (i - 1) + 1].GetString(), locale, data.SubName);
|
||||
AddLocaleString(fields[1 + 3 * (i - 1)].GetString(), locale, data.Name);
|
||||
AddLocaleString(fields[1 + 3 * (i - 1) + 1].GetString(), locale, data.FemaleName);
|
||||
AddLocaleString(fields[1 + 3 * (i - 1) + 2].GetString(), locale, data.SubName);
|
||||
}
|
||||
} while (result->NextRow());
|
||||
|
||||
@@ -419,19 +429,19 @@ void ObjectMgr::LoadCreatureTemplates()
|
||||
|
||||
// 0 1 2 3 4 5 6 7 8
|
||||
QueryResult result = WorldDatabase.Query("SELECT entry, difficulty_entry_1, difficulty_entry_2, difficulty_entry_3, KillCredit1, KillCredit2, modelid1, modelid2, modelid3, "
|
||||
// 9 10 11 12 13 14 15 16 17 18 19 20 21
|
||||
"modelid4, name, subname, IconName, gossip_menu_id, minlevel, maxlevel, exp, exp_unk, faction, npcflag, speed_walk, speed_run, "
|
||||
// 22 23 24 25 26 27 28 29 30 31 32 33
|
||||
// 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
||||
"modelid4, name, femaleName, subname, IconName, gossip_menu_id, minlevel, maxlevel, exp, exp_unk, faction, npcflag, speed_walk, speed_run, "
|
||||
// 23 24 25 26 27 28 29 30 31 32 33 34
|
||||
"scale, rank, mindmg, maxdmg, dmgschool, attackpower, dmg_multiplier, baseattacktime, rangeattacktime, unit_class, unit_flags, unit_flags2, "
|
||||
// 34 35 36 37 38 39 40 41 42
|
||||
// 35 36 37 38 39 40 41 42 43
|
||||
"dynamicflags, family, trainer_type, trainer_class, trainer_race, minrangedmg, maxrangedmg, rangedattackpower, type, "
|
||||
// 43 44 45 46 47 48 49 50 51 52 53
|
||||
// 44 45 46 47 48 49 50 51 52 53 54
|
||||
"type_flags, type_flags2, lootid, pickpocketloot, skinloot, resistance1, resistance2, resistance3, resistance4, resistance5, resistance6, "
|
||||
// 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
||||
// 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
||||
"spell1, spell2, spell3, spell4, spell5, spell6, spell7, spell8, PetSpellDataId, VehicleId, mingold, maxgold, AIName, MovementType, "
|
||||
// 68 69 70 71 72 73 74 75 76 77 78 79
|
||||
// 69 70 71 72 73 74 75 76 77 78 79 80
|
||||
"InhabitType, HoverHeight, Health_mod, Mana_mod, Mana_mod_extra, Armor_mod, RacialLeader, questItem1, questItem2, questItem3, questItem4, questItem5, "
|
||||
// 80 81 82 83 84 85
|
||||
// 81 82 83 84 85 86
|
||||
" questItem6, movementId, RegenHealth, mechanic_immune_mask, flags_extra, ScriptName "
|
||||
"FROM creature_template;");
|
||||
|
||||
@@ -465,72 +475,73 @@ void ObjectMgr::LoadCreatureTemplates()
|
||||
creatureTemplate.Modelid3 = fields[8].GetUInt32();
|
||||
creatureTemplate.Modelid4 = fields[9].GetUInt32();
|
||||
creatureTemplate.Name = fields[10].GetString();
|
||||
creatureTemplate.SubName = fields[11].GetString();
|
||||
creatureTemplate.IconName = fields[12].GetString();
|
||||
creatureTemplate.GossipMenuId = fields[13].GetUInt32();
|
||||
creatureTemplate.minlevel = fields[14].GetUInt8();
|
||||
creatureTemplate.maxlevel = fields[15].GetUInt8();
|
||||
creatureTemplate.expansion = uint32(fields[16].GetInt16());
|
||||
creatureTemplate.expansionUnknown = uint32(fields[17].GetUInt16());
|
||||
creatureTemplate.faction = uint32(fields[18].GetUInt16());
|
||||
creatureTemplate.npcflag = fields[19].GetUInt32();
|
||||
creatureTemplate.speed_walk = fields[20].GetFloat();
|
||||
creatureTemplate.speed_run = fields[21].GetFloat();
|
||||
creatureTemplate.scale = fields[22].GetFloat();
|
||||
creatureTemplate.rank = uint32(fields[23].GetUInt8());
|
||||
creatureTemplate.mindmg = fields[24].GetFloat();
|
||||
creatureTemplate.maxdmg = fields[25].GetFloat();
|
||||
creatureTemplate.dmgschool = uint32(fields[26].GetInt8());
|
||||
creatureTemplate.attackpower = fields[27].GetUInt32();
|
||||
creatureTemplate.dmg_multiplier = fields[28].GetFloat();
|
||||
creatureTemplate.baseattacktime = fields[29].GetUInt32();
|
||||
creatureTemplate.rangeattacktime = fields[30].GetUInt32();
|
||||
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 = uint32(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.minrangedmg = fields[39].GetFloat();
|
||||
creatureTemplate.maxrangedmg = fields[40].GetFloat();
|
||||
creatureTemplate.rangedattackpower = uint32(fields[41].GetUInt16());
|
||||
creatureTemplate.type = uint32(fields[42].GetUInt8());
|
||||
creatureTemplate.type_flags = fields[43].GetUInt32();
|
||||
creatureTemplate.type_flags2 = fields[44].GetUInt32();
|
||||
creatureTemplate.lootid = fields[45].GetUInt32();
|
||||
creatureTemplate.pickpocketLootId = fields[46].GetUInt32();
|
||||
creatureTemplate.SkinLootId = fields[47].GetUInt32();
|
||||
creatureTemplate.FemaleName = fields[11].GetString();
|
||||
creatureTemplate.SubName = fields[12].GetString();
|
||||
creatureTemplate.IconName = fields[13].GetString();
|
||||
creatureTemplate.GossipMenuId = fields[14].GetUInt32();
|
||||
creatureTemplate.minlevel = fields[15].GetUInt8();
|
||||
creatureTemplate.maxlevel = fields[16].GetUInt8();
|
||||
creatureTemplate.expansion = uint32(fields[17].GetInt16());
|
||||
creatureTemplate.expansionUnknown = uint32(fields[18].GetUInt16());
|
||||
creatureTemplate.faction = uint32(fields[19].GetUInt16());
|
||||
creatureTemplate.npcflag = fields[20].GetUInt32();
|
||||
creatureTemplate.speed_walk = fields[21].GetFloat();
|
||||
creatureTemplate.speed_run = fields[22].GetFloat();
|
||||
creatureTemplate.scale = fields[23].GetFloat();
|
||||
creatureTemplate.rank = uint32(fields[24].GetUInt8());
|
||||
creatureTemplate.mindmg = fields[25].GetFloat();
|
||||
creatureTemplate.maxdmg = fields[26].GetFloat();
|
||||
creatureTemplate.dmgschool = uint32(fields[27].GetInt8());
|
||||
creatureTemplate.attackpower = fields[28].GetUInt32();
|
||||
creatureTemplate.dmg_multiplier = fields[29].GetFloat();
|
||||
creatureTemplate.baseattacktime = fields[30].GetUInt32();
|
||||
creatureTemplate.rangeattacktime = fields[31].GetUInt32();
|
||||
creatureTemplate.unit_class = uint32(fields[32].GetUInt8());
|
||||
creatureTemplate.unit_flags = fields[33].GetUInt32();
|
||||
creatureTemplate.unit_flags2 = fields[34].GetUInt32();
|
||||
creatureTemplate.dynamicflags = fields[35].GetUInt32();
|
||||
creatureTemplate.family = uint32(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.minrangedmg = fields[40].GetFloat();
|
||||
creatureTemplate.maxrangedmg = fields[41].GetFloat();
|
||||
creatureTemplate.rangedattackpower = uint32(fields[42].GetUInt16());
|
||||
creatureTemplate.type = uint32(fields[43].GetUInt8());
|
||||
creatureTemplate.type_flags = fields[44].GetUInt32();
|
||||
creatureTemplate.type_flags2 = fields[45].GetUInt32();
|
||||
creatureTemplate.lootid = fields[46].GetUInt32();
|
||||
creatureTemplate.pickpocketLootId = fields[47].GetUInt32();
|
||||
creatureTemplate.SkinLootId = fields[48].GetUInt32();
|
||||
|
||||
for (uint8 i = SPELL_SCHOOL_HOLY; i < MAX_SPELL_SCHOOL; ++i)
|
||||
creatureTemplate.resistance[i] = fields[48 + i - 1].GetInt16();
|
||||
creatureTemplate.resistance[i] = fields[49 + i - 1].GetInt16();
|
||||
|
||||
for (uint8 i = 0; i < CREATURE_MAX_SPELLS; ++i)
|
||||
creatureTemplate.spells[i] = fields[54 + i].GetUInt32();
|
||||
creatureTemplate.spells[i] = fields[55 + i].GetUInt32();
|
||||
|
||||
creatureTemplate.PetSpellDataId = fields[62].GetUInt32();
|
||||
creatureTemplate.VehicleId = fields[63].GetUInt32();
|
||||
creatureTemplate.mingold = fields[64].GetUInt32();
|
||||
creatureTemplate.maxgold = fields[65].GetUInt32();
|
||||
creatureTemplate.AIName = fields[66].GetString();
|
||||
creatureTemplate.MovementType = uint32(fields[67].GetUInt8());
|
||||
creatureTemplate.InhabitType = uint32(fields[68].GetUInt8());
|
||||
creatureTemplate.HoverHeight = fields[69].GetFloat();
|
||||
creatureTemplate.ModHealth = fields[70].GetFloat();
|
||||
creatureTemplate.ModMana = fields[71].GetFloat();
|
||||
creatureTemplate.ModManaExtra = fields[72].GetFloat();
|
||||
creatureTemplate.ModArmor = fields[73].GetFloat();
|
||||
creatureTemplate.RacialLeader = fields[74].GetBool();
|
||||
creatureTemplate.PetSpellDataId = fields[63].GetUInt32();
|
||||
creatureTemplate.VehicleId = fields[64].GetUInt32();
|
||||
creatureTemplate.mingold = fields[65].GetUInt32();
|
||||
creatureTemplate.maxgold = fields[66].GetUInt32();
|
||||
creatureTemplate.AIName = fields[67].GetString();
|
||||
creatureTemplate.MovementType = uint32(fields[68].GetUInt8());
|
||||
creatureTemplate.InhabitType = uint32(fields[69].GetUInt8());
|
||||
creatureTemplate.HoverHeight = fields[70].GetFloat();
|
||||
creatureTemplate.ModHealth = fields[71].GetFloat();
|
||||
creatureTemplate.ModMana = fields[72].GetFloat();
|
||||
creatureTemplate.ModManaExtra = fields[73].GetFloat();
|
||||
creatureTemplate.ModArmor = fields[74].GetFloat();
|
||||
creatureTemplate.RacialLeader = fields[75].GetBool();
|
||||
|
||||
for (uint8 i = 0; i < MAX_CREATURE_QUEST_ITEMS; ++i)
|
||||
creatureTemplate.questItems[i] = fields[75 + i].GetUInt32();
|
||||
creatureTemplate.questItems[i] = fields[76 + i].GetUInt32();
|
||||
|
||||
creatureTemplate.movementId = fields[81].GetUInt32();
|
||||
creatureTemplate.RegenHealth = fields[82].GetBool();
|
||||
creatureTemplate.MechanicImmuneMask = fields[83].GetUInt32();
|
||||
creatureTemplate.flags_extra = fields[84].GetUInt32();
|
||||
creatureTemplate.ScriptID = GetScriptId(fields[85].GetCString());
|
||||
creatureTemplate.movementId = fields[82].GetUInt32();
|
||||
creatureTemplate.RegenHealth = fields[83].GetBool();
|
||||
creatureTemplate.MechanicImmuneMask = fields[84].GetUInt32();
|
||||
creatureTemplate.flags_extra = fields[85].GetUInt32();
|
||||
creatureTemplate.ScriptID = GetScriptId(fields[86].GetCString());
|
||||
|
||||
++count;
|
||||
}
|
||||
|
||||
@@ -96,62 +96,75 @@ void WorldSession::HandleCreatureQueryOpcode(WorldPacket& recvData)
|
||||
uint64 guid;
|
||||
recvData >> guid;
|
||||
|
||||
CreatureTemplate const* ci = sObjectMgr->GetCreatureTemplate(entry);
|
||||
if (ci)
|
||||
CreatureTemplate const* creatureInfo = sObjectMgr->GetCreatureTemplate(entry);
|
||||
if (creatureInfo)
|
||||
{
|
||||
std::string Name, FemaleName, SubName;
|
||||
Name = creatureInfo->Name;
|
||||
FemaleName = creatureInfo->FemaleName;
|
||||
SubName = creatureInfo->SubName;
|
||||
|
||||
std::string Name, SubName;
|
||||
Name = ci->Name;
|
||||
SubName = ci->SubName;
|
||||
|
||||
int loc_idx = GetSessionDbLocaleIndex();
|
||||
if (loc_idx >= 0)
|
||||
LocaleConstant locale = GetSessionDbLocaleIndex();
|
||||
if (locale >= 0)
|
||||
{
|
||||
if (CreatureLocale const* cl = sObjectMgr->GetCreatureLocale(entry))
|
||||
if (CreatureLocale const* creatureLocale = sObjectMgr->GetCreatureLocale(entry))
|
||||
{
|
||||
ObjectMgr::GetLocaleString(cl->Name, loc_idx, Name);
|
||||
ObjectMgr::GetLocaleString(cl->SubName, loc_idx, SubName);
|
||||
ObjectMgr::GetLocaleString(creatureLocale->Name, locale, Name);
|
||||
ObjectMgr::GetLocaleString(creatureLocale->FemaleName, locale, FemaleName);
|
||||
ObjectMgr::GetLocaleString(creatureLocale->SubName, locale, SubName);
|
||||
}
|
||||
}
|
||||
TC_LOG_DEBUG("network", "WORLD: CMSG_CREATURE_QUERY '%s' - Entry: %u.", ci->Name.c_str(), entry);
|
||||
// guess size
|
||||
WorldPacket data(SMSG_CREATURE_QUERY_RESPONSE, 100);
|
||||
data << uint32(entry); // creature entry
|
||||
data << Name;
|
||||
|
||||
for (int i = 0; i < 7; i++)
|
||||
data << uint8(0); // name2, ..., name8
|
||||
TC_LOG_DEBUG("network", "WORLD: CMSG_CREATURE_QUERY '%s' - Entry: %u.", creatureInfo->Name.c_str(), entry);
|
||||
|
||||
WorldPacket data(SMSG_CREATURE_QUERY_RESPONSE, 100); // guess size
|
||||
data << uint32(entry); // creature entry
|
||||
data << Name; // Name
|
||||
|
||||
for (uint8 i = 0; i < 3; i++)
|
||||
data << uint8(0); // name2, ..., name3
|
||||
|
||||
data << FemaleName; // FemaleName
|
||||
|
||||
for (uint8 i = 0; i < 3; i++)
|
||||
data << uint8(0); // name5, ..., name8
|
||||
|
||||
data << SubName; // SubName
|
||||
data << creatureInfo->IconName; // "Directions" for guard, string for Icons 2.3.0
|
||||
data << uint32(creatureInfo->type_flags); // flags
|
||||
data << uint32(creatureInfo->type_flags2); // unknown meaning
|
||||
data << uint32(creatureInfo->type); // CreatureType.dbc
|
||||
data << uint32(creatureInfo->family); // CreatureFamily.dbc
|
||||
data << uint32(creatureInfo->rank); // Creature Rank (elite, boss, etc)
|
||||
data << uint32(creatureInfo->KillCredit[0]); // new in 3.1, kill credit
|
||||
data << uint32(creatureInfo->KillCredit[1]); // new in 3.1, kill credit
|
||||
data << uint32(creatureInfo->Modelid1); // Modelid1
|
||||
data << uint32(creatureInfo->Modelid2); // Modelid2
|
||||
data << uint32(creatureInfo->Modelid3); // Modelid3
|
||||
data << uint32(creatureInfo->Modelid4); // Modelid4
|
||||
data << float(creatureInfo->ModHealth); // dmg/hp modifier
|
||||
data << float(creatureInfo->ModMana); // dmg/mana modifier
|
||||
data << uint8(creatureInfo->RacialLeader); // RacialLeader
|
||||
|
||||
for (uint8 i = 0; i < MAX_CREATURE_QUEST_ITEMS; ++i)
|
||||
data << uint32(creatureInfo->questItems[i]); // itemId[6], quest drop
|
||||
|
||||
data << uint32(creatureInfo->movementId); // CreatureMovementInfo.dbc
|
||||
data << uint32(creatureInfo->expansionUnknown); // unknown meaning
|
||||
|
||||
data << SubName;
|
||||
data << ci->IconName; // "Directions" for guard, string for Icons 2.3.0
|
||||
data << uint32(ci->type_flags); // flags
|
||||
data << uint32(ci->type_flags2); // unknown meaning
|
||||
data << uint32(ci->type); // CreatureType.dbc
|
||||
data << uint32(ci->family); // CreatureFamily.dbc
|
||||
data << uint32(ci->rank); // Creature Rank (elite, boss, etc)
|
||||
data << uint32(ci->KillCredit[0]); // new in 3.1, kill credit
|
||||
data << uint32(ci->KillCredit[1]); // new in 3.1, kill credit
|
||||
data << uint32(ci->Modelid1); // Modelid1
|
||||
data << uint32(ci->Modelid2); // Modelid2
|
||||
data << uint32(ci->Modelid3); // Modelid3
|
||||
data << uint32(ci->Modelid4); // Modelid4
|
||||
data << float(ci->ModHealth); // dmg/hp modifier
|
||||
data << float(ci->ModMana); // dmg/mana modifier
|
||||
data << uint8(ci->RacialLeader);
|
||||
for (uint32 i = 0; i < MAX_CREATURE_QUEST_ITEMS; ++i)
|
||||
data << uint32(ci->questItems[i]); // itemId[6], quest drop
|
||||
data << uint32(ci->movementId); // CreatureMovementInfo.dbc
|
||||
data << uint32(ci->expansionUnknown); // unknown meaning
|
||||
SendPacket(&data);
|
||||
|
||||
TC_LOG_DEBUG("network", "WORLD: Sent SMSG_CREATURE_QUERY_RESPONSE");
|
||||
}
|
||||
else
|
||||
{
|
||||
TC_LOG_DEBUG("network", "WORLD: CMSG_CREATURE_QUERY - NO CREATURE INFO! (GUID: %u, ENTRY: %u)",
|
||||
GUID_LOPART(guid), entry);
|
||||
|
||||
WorldPacket data(SMSG_CREATURE_QUERY_RESPONSE, 4);
|
||||
data << uint32(entry | 0x80000000);
|
||||
SendPacket(&data);
|
||||
|
||||
TC_LOG_DEBUG("network", "WORLD: Sent SMSG_CREATURE_QUERY_RESPONSE");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user