Advertisement
Guest User

AchievementManager.cs

a guest
Jul 5th, 2011
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.42 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Data;
  6.  
  7. using Uber.Collections;
  8. using Ion.Net.Messages;
  9. using Ion.Storage;
  10. using Ion.HabboHotel.Client;
  11.  
  12. namespace Ion.HabboHotel.Achievements
  13. {
  14.    public class AchievementManager
  15.     {
  16.         public Dictionary<uint, Achievement> Achievements;
  17.  
  18.         public AchievementManager()
  19.         {
  20.             this.Achievements = new Dictionary<uint, Achievement>();
  21.         }
  22.  
  23.         public void LoadAchievements()
  24.         {
  25.             this.Achievements = null;
  26.             this.Achievements = new Dictionary<uint, Achievement>();
  27.  
  28.             DataTable Data = null;
  29.  
  30.             using (DatabaseClient dbClient = IonEnvironment.GetDatabase().GetClient())
  31.             {
  32.                 Data = dbClient.ReadDataTable("SELECT * FROM achievements");
  33.             }
  34.  
  35.             if (Data == null)
  36.             {
  37.                 return;
  38.             }
  39.  
  40.             foreach (DataRow Row in Data.Rows)
  41.             {
  42.                 Achievements.Add(Convert.ToUInt32(Row["id"]), new Achievement(Convert.ToUInt32(Row["id"]), Convert.ToInt32(Row["levels"]), Convert.ToString(Row["badge"]), Convert.ToInt32(Row["pixels_base"]), Convert.ToDouble(Row["pixels_multiplier"]), Convert.ToString(Row["type"]), (bool)Row["dynamic_badgelevel"], (bool)Row["enable_counter"]));
  43.             }
  44.         }
  45.  
  46.         public Boolean UserHasAchievement(GameClient Session, uint Id, int MinLevel)
  47.         {
  48.             if (Session == null)
  49.             {
  50.                 return false;
  51.             }
  52.  
  53.             if (!Session.GetHabbo().Achievements.ContainsKey(Id))
  54.             {
  55.                 return false;
  56.             }
  57.  
  58.             if (Session.GetHabbo().Achievements[Id] >= MinLevel)
  59.             {
  60.                 return true;
  61.             }
  62.  
  63.             return false;
  64.         }
  65.  
  66.         public ServerMessage SerializeAchievementList(GameClient Session)
  67.         {
  68.             ServerMessage Message = new ServerMessage(436);
  69.             Message.AppendInt32(4);
  70.  
  71.                 Message.AppendUInt32(1);
  72.                 Message.AppendInt32(1); // level (?)
  73.                 Message.AppendString("ACH_Login1");
  74.                 Message.AppendInt32(5); // need
  75.                 Message.AppendInt32(100); // pixel reward
  76.                 Message.AppendInt32(5);
  77.                 Message.AppendInt32(4); //got
  78.                 Message.AppendInt32(5);
  79.                 Message.AppendString("identity"); // category
  80.                 Message.AppendInt32(10); // levens
  81.  
  82.                 Message.AppendUInt32(2);
  83.                 Message.AppendInt32(2);
  84.                 Message.AppendString("ACH_RegistrationDuration2");
  85.                 Message.AppendInt32(18); // need
  86.                 Message.AppendInt32(100); // pixel reward
  87.                 Message.AppendInt32(5);
  88.                 Message.AppendInt32(1); //got
  89.                 Message.AppendInt32(5);
  90.                 Message.AppendString("identity"); // category
  91.                 Message.AppendInt32(10); // levens
  92.  
  93.                 Message.AppendUInt32(3);
  94.                 Message.AppendInt32(1);
  95.                 Message.AppendString("ACH_RoomEntry1");
  96.                 Message.AppendInt32(5); // need
  97.                 Message.AppendInt32(100); // pixel reward
  98.                 Message.AppendInt32(5);
  99.                 Message.AppendInt32(0); //got
  100.                 Message.AppendInt32(5);
  101.                 Message.AppendString("identity"); // category
  102.                 Message.AppendInt32(10); // levens
  103.  
  104.                 Message.AppendUInt32(4);
  105.                 Message.AppendInt32(3);
  106.                 Message.AppendString("ACH_RespectEarned3");
  107.                 Message.AppendInt32(12); // need
  108.                 Message.AppendInt32(100); // pixel reward
  109.                 Message.AppendInt32(5);
  110.                 Message.AppendInt32(8); //got
  111.                 Message.AppendInt32(5);
  112.                 Message.AppendString("identity"); // category
  113.                 Message.AppendInt32(10); // levens
  114.  
  115.                 Session.GetConnection().SendMessage(Message);
  116.        
  117.            
  118.  
  119.             return Message;
  120.         }
  121.  
  122.  
  123.         public void UnlockAchievement(GameClient Session, uint AchievementId, int Level)
  124.         {
  125.             // Notify the user of the achievement gain
  126.             ServerMessage Unlock = new ServerMessage();
  127.             Unlock.Initialize(437);
  128.             Unlock.AppendUInt32(1); // ID
  129.             Unlock.AppendInt32(10); // Levels
  130.             Unlock.AppendString("ACH_RegistrationDuration10");
  131.             Unlock.AppendString("HRLHHI"); // ??
  132.             Unlock.AppendString("identity");
  133.  
  134.             Unlock.AppendInt32(10); // achievementscore
  135.             Unlock.AppendInt32(10); // pixels
  136.             Unlock.AppendBoolean(false);
  137.             Unlock.AppendInt32(10); // extra points facebook
  138.             Unlock.AppendInt32(153); // ?
  139.             Session.GetConnection().SendMessage(Unlock);
  140.  
  141.            
  142.             Session.GetHabbo().ActivityPoints += 10;
  143.         }
  144.  
  145.         public int CalculateAchievementValue(int BaseValue, Double Multiplier, int Level)
  146.         {
  147.             return (BaseValue + (50 * Level));
  148.         }
  149.  
  150.         public string FormatBadgeCode(string BadgeTemplate, int Level, bool Dyn)
  151.         {
  152.             if (!Dyn)
  153.             {
  154.                 return BadgeTemplate;
  155.             }
  156.  
  157.             return BadgeTemplate + Level;
  158.         }
  159.     }
  160. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement