static bool DeleteCharAccessories(uint charId) { try { SpellRecord.DeleteAll("OwnerId = " + charId); AuraRecord.DeleteAll("OwnerId = " + charId); ItemRecord.DeleteAll("OwnerId = " + charId); SkillRecord.DeleteAll("OwnerId = " + charId); SpecProfile.DeleteAll("CharacterId = " + charId); ReputationRecord.DeleteAll("OwnerId = " + charId); QuestRecord.DeleteAll("OwnerId = " + charId); SummonedPetRecord.DeleteAll("OwnerLowId = " + charId); PermanentPetRecord.DeleteAll("OwnerLowId = " + charId); MailMgr.ReturnValueMailFor(charId); MailMessage.DeleteAll("ReceiverId = " + charId); RelationMgr.Instance.RemoveRelations(charId); InstanceMgr.RemoveLog(charId); GroupMgr.Instance.RemoveOfflineCharacter(charId); AchievementRecord.DeleteAll("CharacterId = " + charId); AchievementProgressRecord.DeleteAll("CharacterId = " + charId); return(true); } catch (Exception ex) { LogUtil.ErrorException(ex, "Failed to delete character with Id: " + charId); return(false); } }
private void LoadPets() { IPetRecord activePetRecord = null; // load info for summoned pets if (m_record.PetSummonedCount > 0) { var pets = SummonedPetRecord.LoadSummonedPetRecords(m_record.EntityLowId); foreach (var pet in pets) { if (pet.IsActivePet) { activePetRecord = pet; } SummonedPetRecords.Add(pet); } } // load info for permanent pets if (m_record.PetCount > 0) { var pets = PermanentPetRecord.LoadPermanentPetRecords(m_record.EntityLowId); foreach (var pet in pets) { if (pet.IsActivePet) { activePetRecord = pet; } StabledPetRecords.Add(pet); } } // load active pet if (m_record.PetEntryId != 0 && IsPetActive) { if (activePetRecord != null) { var entry = activePetRecord.Entry; if (entry == null) { log.Warn("{0} has invalid PetEntryId: {1} ({2})", this, m_record.PetEntryId, (uint)m_record.PetEntryId); // put back for later (maybe NPCs were not loaded or loaded incorrectly): AddPetRecord(activePetRecord); } else { SpawnActivePet(activePetRecord); } } else { // active Pet does not exist in DB m_record.PetEntryId = 0; m_record.IsPetActive = false; } } }