UberEmu Achievements 80% (Have/Need)

Results 1 to 9 of 9
  1. #1
    Member WizardKing is offline
    MemberRank
    Apr 2011 Join Date
    Somewhere on eaLocation
    70Posts

    UberEmu Achievements 80% (Have/Need)

    Okay if you think this is copy it isn't I have made it by myself.
    I coded the achievement points after unlocking achievement and I coded the have and need in list.

    In achievements.cs search
    Code:
            public bool DynamicBadgeLevel;
    After add:
    Code:
            public int Points;
            public int Need;
            public int Have;
    search:
    Code:
    uint Id, int Levels, string BadgeCode, int PixelBase, double PixelMultiplier, bool DynamicBadgeLevel
    Replace with:
    Code:
    uint Id, int Levels, string BadgeCode, int PixelBase, double PixelMultiplier, bool DynamicBadgeLevel, int Points, int Need, int Have
    Search:
    Code:
                this.DynamicBadgeLevel = DynamicBadgeLevel;
    Add:
    Code:
                this.Points = Points;
                this.Need = Need;
                this.Have = Have;
    Now go to AchievementManager.cs and search:
    Code:
                    Achievements.Add((uint)Row["id"], new Achievement((uint)Row["id"], (int)Row["levels"], (string)Row["badge"], (int)Row["pixels_base"], (double)Row["pixels_multiplier"], UberEnvironment.EnumToBool(Row["dynamic_badgelevel"].ToString())));
    Replace with:
    Code:
                    Achievements.Add((uint)Row["id"], new Achievement((uint)Row["id"], (int)Row["levels"], (string)Row["badge"], (int)Row["pixels_base"], (double)Row["pixels_multiplier"], UberEnvironment.EnumToBool(Row["dynamic_badgelevel"].ToString()),(int)Row["points"], (int)Row["need"], (int)Row["have"]));
    Search:
    Code:
     foreach (Achievement Achievement in AchievementsToList)
    Replace WHOLE foreach with:
    Code:
                foreach (Achievement Achievement in AchievementsToList)
                {
                    int Level = NextAchievementLevels[Achievement.Id];
                    int Pixels = CalculateAchievementValue(Achievement.PixelBase, Achievement.PixelMultiplier, Level);
                
                    Message.AppendUInt(Achievement.Id);
                    Message.AppendInt32(Level);
                    Message.AppendStringWithBreak(FormatBadgeCode(Achievement.BadgeCode, Level, Achievement.DynamicBadgeLevel));
                    Message.AppendInt32(Achievement.Need);
                    Message.AppendInt32(15);
                    Message.AppendInt32(Achievement.Have);
                    Message.AppendInt32(0);
                }
    Search:
    Code:
      public void UnlockAchievement(GameClient Session, uint AchievementId, int Level)
    REPLACE WHOLE VOID (better to backup old if you fuck up this code) with:

    Code:
      public void UnlockAchievement(GameClient Session, uint AchievementId, int Level)
            {
                // Get the achievement
                Achievement Achievement = Achievements[AchievementId];
    
                // Make sure the achievement is valid and has not already been unlocked
                if (Achievement == null || UserHasAchievement(Session, Achievement.Id, Level) || Level < 1 || Level > Achievement.Levels)
                {
                    return;
                }
    
                // Calculate the pixel value for this achievement
                int Value = CalculateAchievementValue(Achievement.PixelBase, Achievement.PixelMultiplier, Level);
    
                // Remove any previous badges for this achievement (old levels)
                lock (((Session.GetHabbo().GetBadgeComponent().BadgeList)))
                {
                    List<string> BadgesToRemove = new List<string>();
    
                    foreach (Badge Badge in Session.GetHabbo().GetBadgeComponent().BadgeList)
                    {
                        if (Badge.Code.StartsWith(Achievement.BadgeCode))
                        {
                            BadgesToRemove.Add(Badge.Code);
                        }
                    }
    
                    foreach (string Badge in BadgesToRemove)
                    {
                        Session.GetHabbo().GetBadgeComponent().RemoveBadge(Badge);
                    }
                }
    
                // Give the user the new badge
                Session.GetHabbo().GetBadgeComponent().GiveBadge(FormatBadgeCode(Achievement.BadgeCode, Level, Achievement.DynamicBadgeLevel), true);
    
                // Update or set the achievement level for the user
                if (Session.GetHabbo().Achievements.ContainsKey(Achievement.Id))
                {
                    Session.GetHabbo().Achievements[Achievement.Id] = Level;
    
                    using (DatabaseClient dbClient = UberEnvironment.GetDatabase().GetClient())
                    {
                        dbClient.ExecuteQuery("UPDATE user_achievements SET achievement_level = '" + Level + "' WHERE user_id = '" + Session.GetHabbo().Id + "' AND achievement_id = '" + Achievement.Id + "' LIMIT 1");
                    }
                }
                else
                {
                    Session.GetHabbo().Achievements.Add(Achievement.Id, Level);
    
                    using (DatabaseClient dbClient = UberEnvironment.GetDatabase().GetClient())
                    {
                        dbClient.ExecuteQuery("INSERT INTO user_achievements (user_id,achievement_id,achievement_level) VALUES ('" + Session.GetHabbo().Id + "','" + Achievement.Id + "','" + Level + "')");
                    }
                }
    
                // Notify the user of the achievement gain
                Session.GetMessageHandler().GetResponse().Init(437);
                Session.GetMessageHandler().GetResponse().AppendUInt(Achievement.Id);
                Session.GetMessageHandler().GetResponse().AppendInt32(Level);
                Session.GetMessageHandler().GetResponse().AppendStringWithBreak(FormatBadgeCode(Achievement.BadgeCode, Level, Achievement.DynamicBadgeLevel));
                Session.GetMessageHandler().GetResponse().AppendInt32(Achievement.Points); // achievement points
                Session.GetMessageHandler().GetResponse().AppendInt32(Achievement.PixelBase); // pixels
    
                if (Level > 1)
                {
                    Session.GetMessageHandler().GetResponse().AppendStringWithBreak(FormatBadgeCode(Achievement.BadgeCode, (Level - 1), Achievement.DynamicBadgeLevel));
                }
                else
                {
                    Session.GetMessageHandler().GetResponse().AppendStringWithBreak("");
                }
    
                Session.GetMessageHandler().SendResponse();
    
                // Give the user the pixels he deserves
                Session.GetHabbo().ActivityPoints += Value;
                Session.GetHabbo().UpdateActivityPointsBalance(true, Value);
               
                // Gives the user teh ach points.
                Session.GetHabbo().AchPoints += Achievement.Points;
    
                // [13-12-2009 17:03:34 from 62.50.35.181:30000] 
                // FvXXDRB
    
                // [13-12-2009 17:03:34 from 62.50.35.181:30000] 
                // FuQBIACH_Motto1
    
                // FuPBJACH_RoomEntry2ACH_RoomEntry1
            }
    In Habbo.cs search:
    Code:
            public int ActivityPoints;
    Add below:
    Code:
            public int AchPoints;
    Credits to:

    Meth0d - UberCMS
    Toperwin - First R63 achievement fix
    Me - For achievement points + have/need

    I don't know any emulator (except of Nabbo's) which have this same code. If you know show me the code.


  2. #2
    Minor Devolper ntl200 is offline
    MemberRank
    Dec 2007 Join Date
    EnglandLocation
    538Posts

    Re: UberEmu Achievements 80% (Have/Need)

    thanks for this

    note: more needs adding

  3. #3
    Member WizardKing is offline
    MemberRank
    Apr 2011 Join Date
    Somewhere on eaLocation
    70Posts

    Re: UberEmu Achievements 80% (Have/Need)

    more needs adding what do you mean?

  4. #4
    Minor Devolper ntl200 is offline
    MemberRank
    Dec 2007 Join Date
    EnglandLocation
    538Posts

    Re: UberEmu Achievements 80% (Have/Need)

    i mean it isnt complete and retro owners will need to contribute to this code

  5. #5
    Member WizardKing is offline
    MemberRank
    Apr 2011 Join Date
    Somewhere on eaLocation
    70Posts

    Re: UberEmu Achievements 80% (Have/Need)

    yeah but it's improved.

  6. #6
    Account Upgraded | Title Enabled! wichard is offline
    MemberRank
    Jul 2009 Join Date
    The NetherlandsLocation
    649Posts

    Re: UberEmu Achievements 80% (Have/Need)

    /facepalm

    Need = for all users

  7. #7
    Member WizardKing is offline
    MemberRank
    Apr 2011 Join Date
    Somewhere on eaLocation
    70Posts

    Re: UberEmu Achievements 80% (Have/Need)

    yeah but forgot have cannot be in same db because some users is progress 1/5 and others 4/5 'll update code soon.

  8. #8
    Valued Member GheddoMonsta is offline
    MemberRank
    Feb 2011 Join Date
    127Posts

    Re: UberEmu Achievements 80% (Have/Need)

    my server is shutting down -.- when the code in my server

  9. #9
    Member WizardKing is offline
    MemberRank
    Apr 2011 Join Date
    Somewhere on eaLocation
    70Posts

    Re: UberEmu Achievements 80% (Have/Need)

    add in db achievements:
    points
    have
    need

    ---------- Post added at 05:18 PM ---------- Previous post was at 05:17 PM ----------

    add in db achievements:
    points
    have
    need



Advertisement