Example #1
0
 //SMSG_SERVER_FIRST_ACHIEVEMENT
 public static void SendServerFirstAchievement(AchievementEntryId achievementEntryId, Character chr)
 {
     using (var packet = new RealmPacketOut(RealmServerOpCode.SMSG_SERVER_FIRST_ACHIEVEMENT, chr.Name.Length + 1 + 8 + 4 + 4))
     {
         packet.WriteCString(chr.Name);
         packet.Write(chr.EntityId);
         packet.WriteUInt((uint)achievementEntryId);
         packet.WriteUInt(0);
         World.Broadcast(packet);
     }
 }
Example #2
0
 //SMSG_ACHIEVEMENT_EARNED
 public static void SendAchievementEarned(AchievementEntryId achievementEntryId, Character chr)
 {
     using (var packet = new RealmPacketOut(RealmServerOpCode.SMSG_ACHIEVEMENT_EARNED, 8 + 4 + 4))
     {
         chr.EntityId.WritePacked(packet);
         packet.WriteUInt((uint)achievementEntryId);
         packet.WriteDateTime(DateTime.Now);
         packet.WriteUInt(0);
         chr.SendPacketToArea(packet, true);
     }
 }
Example #3
0
 public static RealmPacketOut CreateAchievementEarnedToGuild(AchievementEntryId achievementEntryId, Character chr)
 {
     // Must be a better way to do this.
     const string msg = "|Hplayer:$N|h[$N]|h has earned the achievement $a!";
     var packet = new RealmPacketOut(RealmServerOpCode.SMSG_MESSAGECHAT);
     packet.WriteByte((byte) ChatMsgType.Achievment);
     packet.WriteUInt((uint) ChatLanguage.Universal);
     packet.Write(chr.EntityId);
     packet.WriteUInt(5);
     packet.Write(chr.EntityId);
     packet.WriteUIntPascalString(msg);
     packet.WriteByte(0);
     packet.WriteUInt((uint) achievementEntryId);
     return packet;
 }
Example #4
0
		/// <summary>
		/// Checks if player has completed the given achievement.
		/// </summary>
		/// <param name="achievementEntry"></param>
		/// <returns></returns>
		public bool HasCompleted(AchievementEntryId achievementEntry)
		{
			return m_completedAchievements.ContainsKey(achievementEntry);
		}
Example #5
0
		/// <summary>
		/// Removes achievement from the player.
		/// </summary>
		/// <param name="achievementEntryId"></param>
		/// <returns></returns>
		public bool RemoveAchievement(AchievementEntryId achievementEntryId)
		{
			AchievementRecord achievementRecord;
			if (m_completedAchievements.TryGetValue(achievementEntryId, out achievementRecord))
			{
				RemoveAchievement(achievementRecord);
				return true;
			}
			return false;
		}
Example #6
0
		/// <summary>
		/// Adds a new achievement to the list, when achievement is earned.
		/// </summary>
		/// <param name="achievementEntry"></param>
		public void EarnAchievement(AchievementEntryId achievementEntryId)
		{
		    var achievementEntry = AchievementMgr.GetAchievementEntry(achievementEntryId);
            if(achievementEntry!= null)
                EarnAchievement(achievementEntry);
		}
Example #7
0
 public static bool IsRealmFirst(AchievementEntryId achievementEntryId)
 {
     return (!CompletedRealmFirstAchievements.Contains(achievementEntryId));
 }
Example #8
0
		public static AchievementEntry GetAchievementEntry(AchievementEntryId achievementEntryId)
		{
			AchievementEntry entry;
			AchievementEntries.TryGetValue(achievementEntryId, out entry);
			return entry;
		}
Example #9
0
			public static bool AddAchievement(Character character, AchievementEntryId achievementEntryId)
			{
				character.Achievements.EarnAchievement(achievementEntryId);
				return true;
			}