Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Data;
- using Uber.Collections;
- using Ion.Net.Messages;
- using Ion.Storage;
- using Ion.HabboHotel.Client;
- namespace Ion.HabboHotel.Achievements
- {
- public class AchievementManager
- {
- public Dictionary<uint, Achievement> Achievements;
- public AchievementManager()
- {
- this.Achievements = new Dictionary<uint, Achievement>();
- }
- public void LoadAchievements()
- {
- this.Achievements = null;
- this.Achievements = new Dictionary<uint, Achievement>();
- DataTable Data = null;
- using (DatabaseClient dbClient = IonEnvironment.GetDatabase().GetClient())
- {
- Data = dbClient.ReadDataTable("SELECT * FROM achievements");
- }
- if (Data == null)
- {
- return;
- }
- foreach (DataRow Row in Data.Rows)
- {
- 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"]));
- }
- }
- public Boolean UserHasAchievement(GameClient Session, uint Id, int MinLevel)
- {
- if (Session == null)
- {
- return false;
- }
- if (!Session.GetHabbo().Achievements.ContainsKey(Id))
- {
- return false;
- }
- if (Session.GetHabbo().Achievements[Id] >= MinLevel)
- {
- return true;
- }
- return false;
- }
- public ServerMessage SerializeAchievementList(GameClient Session)
- {
- ServerMessage Message = new ServerMessage(436);
- Message.AppendInt32(4);
- Message.AppendUInt32(1);
- Message.AppendInt32(1); // level (?)
- Message.AppendString("ACH_Login1");
- Message.AppendInt32(5); // need
- Message.AppendInt32(100); // pixel reward
- Message.AppendInt32(5);
- Message.AppendInt32(4); //got
- Message.AppendInt32(5);
- Message.AppendString("identity"); // category
- Message.AppendInt32(10); // levens
- Message.AppendUInt32(2);
- Message.AppendInt32(2);
- Message.AppendString("ACH_RegistrationDuration2");
- Message.AppendInt32(18); // need
- Message.AppendInt32(100); // pixel reward
- Message.AppendInt32(5);
- Message.AppendInt32(1); //got
- Message.AppendInt32(5);
- Message.AppendString("identity"); // category
- Message.AppendInt32(10); // levens
- Message.AppendUInt32(3);
- Message.AppendInt32(1);
- Message.AppendString("ACH_RoomEntry1");
- Message.AppendInt32(5); // need
- Message.AppendInt32(100); // pixel reward
- Message.AppendInt32(5);
- Message.AppendInt32(0); //got
- Message.AppendInt32(5);
- Message.AppendString("identity"); // category
- Message.AppendInt32(10); // levens
- Message.AppendUInt32(4);
- Message.AppendInt32(3);
- Message.AppendString("ACH_RespectEarned3");
- Message.AppendInt32(12); // need
- Message.AppendInt32(100); // pixel reward
- Message.AppendInt32(5);
- Message.AppendInt32(8); //got
- Message.AppendInt32(5);
- Message.AppendString("identity"); // category
- Message.AppendInt32(10); // levens
- Session.GetConnection().SendMessage(Message);
- return Message;
- }
- public void UnlockAchievement(GameClient Session, uint AchievementId, int Level)
- {
- // Notify the user of the achievement gain
- ServerMessage Unlock = new ServerMessage();
- Unlock.Initialize(437);
- Unlock.AppendUInt32(1); // ID
- Unlock.AppendInt32(10); // Levels
- Unlock.AppendString("ACH_RegistrationDuration10");
- Unlock.AppendString("HRLHHI"); // ??
- Unlock.AppendString("identity");
- Unlock.AppendInt32(10); // achievementscore
- Unlock.AppendInt32(10); // pixels
- Unlock.AppendBoolean(false);
- Unlock.AppendInt32(10); // extra points facebook
- Unlock.AppendInt32(153); // ?
- Session.GetConnection().SendMessage(Unlock);
- Session.GetHabbo().ActivityPoints += 10;
- }
- public int CalculateAchievementValue(int BaseValue, Double Multiplier, int Level)
- {
- return (BaseValue + (50 * Level));
- }
- public string FormatBadgeCode(string BadgeTemplate, int Level, bool Dyn)
- {
- if (!Dyn)
- {
- return BadgeTemplate;
- }
- return BadgeTemplate + Level;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement