// SMSG_CRITERIA_UPDATE public static void SendAchievmentStatus(AchievementProgressRecord achievementProgressRecord, Character chr) { using (var packet = new RealmPacketOut(RealmServerOpCode.SMSG_CRITERIA_UPDATE, 4*5+8*2)) { packet.WriteUInt((uint)achievementProgressRecord.AchievementCriteriaId); packet.WritePackedUInt64(achievementProgressRecord.Counter); // amount chr.EntityId.WritePacked(packet); packet.Write(0); packet.WriteDateTime(DateTime.Now); // start time? packet.Write(0); // Duration packet.Write(0); // Duration left chr.Client.Send(packet); } }
/// <summary> /// Creates a new AchievementProgressRecord row in the database with the given information. /// </summary> /// <param name="account">the account this character is on</param> /// <param name="name">the name of the new character</param> /// <returns>the <seealso cref="AchievementProgressRecord"/> object</returns> public static AchievementProgressRecord CreateAchievementProgressRecord(Character chr, uint achievementCriteriaId, uint counter) { AchievementProgressRecord record; try { record = new AchievementProgressRecord { CharacterGuid = (int)chr.EntityId.Low, AchievementCriteriaId = achievementCriteriaId, Counter = counter, StartOrUpdateTime = DateTime.Now, };//TODO: Should we not be adding this to the database here? RealmWorldDBMgr.DatabaseProvider.SaveOrUpdate(record); } catch (Exception ex) { s_log.Error("AchievementProgressRecord creation error (DBS: " + RealmServerConfiguration.DBType + "): ", ex); record = null; } return record; }
public override bool IsAchieved(AchievementProgressRecord achievementProgressRecord) { return achievementProgressRecord.Counter >= CreatureCount; }
public override bool IsAchieved(AchievementProgressRecord achievementProgressRecord) { return achievementProgressRecord.Counter >= countOfEmotes; }
public uint value; // gold in copper for 60, 62, 63, 65, 66, 67 and damage/heal received for 103, 105 public override bool IsAchieved(AchievementProgressRecord achievementProgressRecord) { return achievementProgressRecord.Counter >= value; }
public override bool IsAchieved(AchievementProgressRecord achievementProgressRecord) { return achievementProgressRecord.Counter >= NumberOfExaltedReputations; }
public override bool IsAchieved(AchievementProgressRecord achievementProgressRecord) { return achievementProgressRecord.Counter >= NumberOfVisitsAtBarberShop; }
public override bool IsAchieved(AchievementProgressRecord achievementProgressRecord) { return achievementProgressRecord.Counter >= NumberOfBankSlots; }
public override bool IsAchieved(AchievementProgressRecord achievementProgressRecord) { return achievementProgressRecord.Counter >= ReputationAmount; }
public virtual bool IsAchieved(AchievementProgressRecord achievementProgressRecord) { return false; }
public override bool IsAchieved(AchievementProgressRecord achievementProgressRecord) { return achievementProgressRecord.Counter >= (uint)SkillTierId; }
public override bool IsAchieved(AchievementProgressRecord achievementProgressRecord) { return achievementProgressRecord.Counter >= CompletedQuestCount; }
/// <summary> /// Removes criteria progress from the player. /// </summary> /// <param name="achievementProgressRecord"></param> public void RemoveProgress(AchievementProgressRecord achievementProgressRecord) { m_progressRecords.Remove((uint)achievementProgressRecord.AchievementCriteriaId); //TODO: Remove type cast }
/// <summary> /// Adds a new progress record to the list. /// </summary> /// <param name="achievementProgressRecord"></param> void AddProgressRecord(AchievementProgressRecord achievementProgressRecord) { m_progressRecords.Add((uint)achievementProgressRecord.AchievementCriteriaId, achievementProgressRecord); //TODO: Remove type cast }