Creature * CBattleground::SpawnSpiritGuide(float x, float y, float z, float o, uint32 horde) { if(horde > 1) horde = 1; CreatureInfo * pInfo = CreatureNameStorage.LookupEntry(13116 + horde); if(pInfo == 0) { return NULL; } Creature * pCreature = m_mapMgr->CreateCreature(pInfo->Id); pCreature->Create(pInfo->Name, m_mapMgr->GetMapId(), x, y, z, o); pCreature->SetInstanceID(m_mapMgr->GetInstanceID()); pCreature->SetUInt32Value(OBJECT_FIELD_ENTRY, 13116 + horde); pCreature->SetFloatValue(OBJECT_FIELD_SCALE_X, 1.0f); pCreature->SetUInt32Value(UNIT_FIELD_HEALTH, 100000); pCreature->SetUInt32Value(UNIT_FIELD_POWER1, 4868); pCreature->SetUInt32Value(UNIT_FIELD_POWER3, 200); pCreature->SetUInt32Value(UNIT_FIELD_POWER5, 2000000); pCreature->SetUInt32Value(UNIT_FIELD_MAXHEALTH, 10000); pCreature->SetUInt32Value(UNIT_FIELD_MAXPOWER1, 4868); pCreature->SetUInt32Value(UNIT_FIELD_MAXPOWER3, 200); pCreature->SetUInt32Value(UNIT_FIELD_MAXPOWER5, 2000000); pCreature->SetUInt32Value(UNIT_FIELD_LEVEL, 60); pCreature->SetUInt32Value(UNIT_FIELD_FACTIONTEMPLATE, 84 - horde); pCreature->SetUInt32Value(UNIT_FIELD_BYTES_0, 0 | (2 << 8) | (1 << 16)); pCreature->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_DISPLAY, 22802); pCreature->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO, 2 | (0xA << 8) | (2 << 16) | (0x11 << 24)); pCreature->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO_01, 2); pCreature->SetUInt32Value(UNIT_FIELD_FLAGS, UNIT_FLAG_PLUS_MOB | UNIT_FLAG_NOT_ATTACKABLE_9 | UNIT_FLAG_UNKNOWN_10 | UNIT_FLAG_PVP); // 4928 pCreature->SetUInt32Value(UNIT_FIELD_AURA, 22011); pCreature->SetUInt32Value(UNIT_FIELD_AURAFLAGS, 9); pCreature->SetUInt32Value(UNIT_FIELD_AURALEVELS, 0x3C); pCreature->SetUInt32Value(UNIT_FIELD_AURAAPPLICATIONS, 0xFF); pCreature->SetUInt32Value(UNIT_FIELD_BASEATTACKTIME, 2000); pCreature->SetUInt32Value(UNIT_FIELD_BASEATTACKTIME_01, 2000); pCreature->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, 0.208f); pCreature->SetFloatValue(UNIT_FIELD_COMBATREACH, 1.5f); pCreature->SetUInt32Value(UNIT_FIELD_DISPLAYID, 13337 + horde); pCreature->SetUInt32Value(UNIT_FIELD_NATIVEDISPLAYID, 13337 + horde); pCreature->SetUInt32Value(UNIT_CHANNEL_SPELL, 22011); pCreature->SetUInt32Value(UNIT_MOD_CAST_SPEED, 1065353216); pCreature->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPIRITGUIDE); pCreature->SetUInt32Value(UNIT_FIELD_BYTES_2, 1 | (0x10 << 8)); pCreature->DisableAI(); pCreature->PushToWorld(m_mapMgr); return pCreature; }
Creature* CBattleground::SpawnSpiritGuide(float x, float y, float z, float o, uint32 horde) { if(horde > 1) horde = 1; CreatureInfo* pInfo = CreatureNameStorage.LookupEntry(13116 + horde); if(pInfo == NULL) { return NULL; } Creature* pCreature = m_mapMgr->CreateCreature(pInfo->Id); pCreature->Create(pInfo->Name, m_mapMgr->GetMapId(), x, y, z, o); pCreature->SetEntry(13116 + horde); pCreature->SetScale(1.0f); pCreature->SetMaxHealth(10000); pCreature->SetMaxPower(POWER_TYPE_MANA, 4868); pCreature->SetMaxPower(POWER_TYPE_FOCUS, 200); pCreature->SetMaxPower(POWER_TYPE_HAPPINESS, 2000000); pCreature->SetHealth(100000); pCreature->SetPower(POWER_TYPE_MANA, 4868); pCreature->SetPower(POWER_TYPE_FOCUS, 200); pCreature->SetPower(POWER_TYPE_HAPPINESS, 2000000); pCreature->setLevel(60); pCreature->SetFaction(84 - horde); pCreature->setRace(0); pCreature->setClass(2); pCreature->setGender(1); pCreature->SetPowerType(0); pCreature->SetEquippedItem(MELEE, 22802); pCreature->SetUInt32Value(UNIT_FIELD_FLAGS, UNIT_FLAG_PLUS_MOB | UNIT_FLAG_NOT_ATTACKABLE_9 | UNIT_FLAG_UNKNOWN_10 | UNIT_FLAG_PVP); // 4928 pCreature->SetBaseAttackTime(MELEE, 2000); pCreature->SetBaseAttackTime(OFFHAND, 2000); pCreature->SetBoundingRadius(0.208f); pCreature->SetCombatReach(1.5f); pCreature->SetDisplayId(13337 + horde); pCreature->SetNativeDisplayId(13337 + horde); pCreature->SetChannelSpellId(22011); pCreature->SetCastSpeedMod(1.0f); pCreature->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPIRITGUIDE); pCreature->SetUInt32Value(UNIT_FIELD_BYTES_2, 1 | (0x10 << 8)); pCreature->DisableAI(); pCreature->SetCreatureInfo(pInfo); pCreature->SetCreatureProto(CreatureProtoStorage.LookupEntry(pInfo->Id)); pCreature->PushToWorld(m_mapMgr); return pCreature; }