Unlock Achievement void (100%) Uber
Hey, you remember if you completed an achievement, the message was very buggy? Well.. I have a fix.
Replace whole UnlockAchievement void with this:
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(10); // pixels or achievement points
Session.GetMessageHandler().GetResponse().AppendInt32(10); // pixels or achievement points
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);
// [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
}
Tested,worked 100%:love:
Now it'll say:
Beloning(DUTCH): 10 Hartjes/Pixels
Achievement points: 10
:) You can replace the 10's with a mysql query or another number.
5% Credits to me for this code and 95% to Meth0d for uberemu.
Re: Unlock Achievement void (100%) Uber
Nice i will format to java and add to emu :D
Re: Unlock Achievement void (100%) Uber
You don't code this, rigth ?
I have the same code in my Emu, I use BlahEmu, the real....
/fail
Edit: Hear is my Code:
PHP Code:
public void UnlockAchievement(GameClient Session, uint AchievementId, int Level)
{
try
{
// Get the achievement
Achievement Achievement = Achievements[AchievementId];
if (!Achievements.ContainsKey(AchievementId))
return;
// 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));
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);
// [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
}
And it's the same..^^
Re: Unlock Achievement void (100%) Uber
So this gives us achievement points AND pixels, instead of the buggy message saying you have 0 Pixels?
Re: Unlock Achievement void (100%) Uber
It will update the unlocked achievement message thing, 100%, this doesn't update points and pixels are not 10 but the default.
edit:
Emerica you're stupid. I code this?
Re: Unlock Achievement void (100%) Uber
hum... my "unlockachivement" :
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(0);//Win Gains
Session.GetMessageHandler().GetResponse().AppendInt32(Value);//Pixels gains
Session.GetMessageHandler().GetResponse().AppendInt32(0);// ?
Session.GetMessageHandler().GetResponse().AppendInt32(1);//we display on Facebook or not?
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);
// [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
}
Re: Unlock Achievement void (100%) Uber
Nice, if this actually works will be an excellent release.
Re: Unlock Achievement void (100%) Uber
Re: Unlock Achievement void (100%) Uber
No I'm not stupid, it's only a Ripp..
Re: Unlock Achievement void (100%) Uber
Clearly ripped, your code and his match, oh nevermind, he must have teleported into your computer and coded it for you magically like my elf skippy does on my dedi.
Re: Unlock Achievement void (100%) Uber
IT'S FUCKING NOT RIPPED I CODED THIS :@
Pff.. those members of RZ are noobs
Re: Unlock Achievement void (100%) Uber
You're a noob when you say that you code this.
Copy and Paste has nothing todo with Codeing
Re: Unlock Achievement void (100%) Uber
Emerica stop flaming plz!!!
Re: Unlock Achievement void (100%) Uber
Quote:
Originally Posted by
Miggs
Emerica stop flaming plz!!!
We don't care about you.
Re: Unlock Achievement void (100%) Uber
:P This Really Not Cool you habbo guys