本文整理汇总了C#中Plus.HabboHotel.GameClients.GameClient.GetHabbo方法的典型用法代码示例。如果您正苦于以下问题:C# GameClient.GetHabbo方法的具体用法?C# GameClient.GetHabbo怎么用?C# GameClient.GetHabbo使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Plus.HabboHotel.GameClients.GameClient
的用法示例。
在下文中一共展示了GameClient.GetHabbo方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Parse
public void Parse(GameClient Session, ClientPacket Packet)
{
if (!Session.GetHabbo().InRoom)
return;
int Action = Packet.PopInt();
Room Room = null;
if (!PlusEnvironment.GetGame().GetRoomManager().TryGetRoom(Session.GetHabbo().CurrentRoomId, out Room))
return;
RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);
if (User == null)
return;
if (User.DanceId > 0)
User.DanceId = 0;
if (Session.GetHabbo().Effects().CurrentEffect > 0)
Room.SendMessage(new AvatarEffectComposer(User.VirtualId, 0));
User.UnIdle();
Room.SendMessage(new ActionComposer(User.VirtualId, Action));
if (Action == 5) // idle
{
User.IsAsleep = true;
Room.SendMessage(new SleepComposer(User, true));
}
PlusEnvironment.GetGame().GetQuestManager().ProgressUserQuest(Session, QuestType.SOCIAL_WAVE);
}
示例2: OnTrigger
public void OnTrigger(GameClient Session, Item Item, int Request, bool HasRights)
{
if (Item.ExtraData != "1" && Item.GetBaseItem().VendingIds.Count >= 1 && Item.InteractingUser == 0 &&
Session != null)
{
RoomUser User = Item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);
if (User == null)
{
return;
}
if (!Gamemap.TilesTouching(User.X, User.Y, Item.GetX, Item.GetY))
{
User.MoveTo(Item.SquareInFront);
return;
}
Item.InteractingUser = Session.GetHabbo().Id;
User.CanWalk = false;
User.ClearMovement(true);
User.SetRot(Rotation.Calculate(User.X, User.Y, Item.GetX, Item.GetY), false);
Item.RequestUpdate(2, true);
Item.ExtraData = "1";
Item.UpdateState(false, true);
}
}
示例3: Execute
public void Execute(GameClient Session, Room Room, string[] Params)
{
if (Session != null)
{
if (Room != null)
{
if (Params.Length != 1)
{
Session.SendWhisper("Invalid command! :eventalert", 0);
}
else if (!PlusEnvironment.Event)
{
PlusEnvironment.GetGame().GetClientManager().SendMessage(new BroadcastMessageAlertComposer(":follow " + Session.GetHabbo().Username + " for events! win prizes!\r\n- " + Session.GetHabbo().Username, ""), "");
PlusEnvironment.lastEvent = DateTime.Now;
PlusEnvironment.Event = true;
}
else
{
TimeSpan timeSpan = DateTime.Now - PlusEnvironment.lastEvent;
if (timeSpan.Hours >= 1)
{
PlusEnvironment.GetGame().GetClientManager().SendMessage(new BroadcastMessageAlertComposer(":follow " + Session.GetHabbo().Username + " for events! win prizes!\r\n- " + Session.GetHabbo().Username, ""), "");
PlusEnvironment.lastEvent = DateTime.Now;
}
else
{
int num = checked(60 - timeSpan.Minutes);
Session.SendWhisper("Event Cooldown! " + num + " minutes left until another event can be hosted.", 0);
}
}
}
}
}
示例4: ProfileInformationComposer
public ProfileInformationComposer(Habbo Data, GameClient Session, List<Group> Groups, int friendCount)
: base(ServerPacketHeader.ProfileInformationMessageComposer)
{
DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(Data.AccountCreated);
base.WriteInteger(Data.Id);
base.WriteString(Data.Username);
base.WriteString(Data.Look);
base.WriteString(Data.Motto);
base.WriteString(origin.ToString("dd/MM/yyyy"));
base.WriteInteger(Data.GetStats().AchievementPoints);
base.WriteInteger(friendCount); // Friend Count
base.WriteBoolean(Data.Id != Session.GetHabbo().Id && Session.GetHabbo().GetMessenger().FriendshipExists(Data.Id)); // Is friend
base.WriteBoolean(Data.Id != Session.GetHabbo().Id && !Session.GetHabbo().GetMessenger().FriendshipExists(Data.Id) && Session.GetHabbo().GetMessenger().RequestExists(Data.Id)); // Sent friend request
base.WriteBoolean((PlusEnvironment.GetGame().GetClientManager().GetClientByUserID(Data.Id)) != null);
base.WriteInteger(Groups.Count);
foreach (Group Group in Groups)
{
base.WriteInteger(Group.Id);
base.WriteString(Group.Name);
base.WriteString(Group.Badge);
base.WriteString(PlusEnvironment.GetGame().GetGroupManager().GetGroupColour(Group.Colour1, true));
base.WriteString(PlusEnvironment.GetGame().GetGroupManager().GetGroupColour(Group.Colour2, false));
base.WriteBoolean(Data.GetStats().FavouriteGroupId == Group.Id); // todo favs
base.WriteInteger(0);//what the fuck
base.WriteBoolean(Group != null ? Group.ForumEnabled : true);//HabboTalk
}
base.WriteInteger(Convert.ToInt32(PlusEnvironment.GetUnixTimestamp() - Data.LastOnline)); // Last online
base.WriteBoolean(true); // Show the profile
}
示例5: OnTrigger
public void OnTrigger(GameClient Session, Item Item, int Request, bool HasRights)
{
if (Item == null || Item.GetRoom() == null || Session == null || Session.GetHabbo() == null)
return;
RoomUser User = Item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);
if (User == null)
return;
User.LastInteraction = PlusEnvironment.GetUnixTimestamp();
// Alright. But is this user in the right position?
if (User.Coordinate == Item.Coordinate || User.Coordinate == Item.SquareInFront)
{
// Fine. But is this tele even free?
if (Item.InteractingUser != 0)
{
return;
}
if (!User.CanWalk || Session.GetHabbo().IsTeleporting || Session.GetHabbo().TeleporterId != 0 ||
(User.LastInteraction + 2) - PlusEnvironment.GetUnixTimestamp() < 0)
return;
User.TeleDelay = 2;
Item.InteractingUser = User.GetClient().GetHabbo().Id;
}
else if (User.CanWalk)
{
User.MoveTo(Item.SquareInFront);
}
}
示例6: QuestCompletedComposer
public QuestCompletedComposer(GameClient Session, Quest Quest)
: base(ServerPacketHeader.QuestCompletedMessageComposer)
{
int AmountInCat = PlusEnvironment.GetGame().GetQuestManager().GetAmountOfQuestsInCategory(Quest.Category);
int Number = Quest == null ? AmountInCat : Quest.Number;
int UserProgress = Quest == null ? 0 : Session.GetHabbo().GetQuestProgress(Quest.Id);
base.WriteString(Quest.Category);
base.WriteInteger(Number); // Quest progress in this cat
base.WriteInteger((Quest.Name.Contains("xmas2012")) ? 1 : AmountInCat); // Total quests in this cat
base.WriteInteger(Quest == null ? 3 : Quest.RewardType); // Reward type (1 = Snowflakes, 2 = Love hearts, 3 = Pixels, 4 = Seashells, everything else is pixels
base.WriteInteger(Quest == null ? 0 : Quest.Id); // Quest id
base.WriteBoolean(Quest == null ? false : Session.GetHabbo().GetStats().QuestID == Quest.Id); // Quest started
base.WriteString(Quest == null ? string.Empty : Quest.ActionName);
base.WriteString(Quest == null ? string.Empty : Quest.DataBit);
base.WriteInteger(Quest == null ? 0 : Quest.Reward);
base.WriteString(Quest == null ? string.Empty : Quest.Name);
base.WriteInteger(UserProgress); // Current progress
base.WriteInteger(Quest == null ? 0 : Quest.GoalData); // Target progress
base.WriteInteger(Quest == null ? 0 : Quest.TimeUnlock); // "Next quest available countdown" in seconds
base.WriteString("");
base.WriteString("");
base.WriteBoolean(true); // ?
base.WriteBoolean(true); // Activate next quest..
}
示例7: OnTrigger
public void OnTrigger(GameClient Session, Item Item, int Request, bool HasRights)
{
if (Item == null || Item.GetRoom() == null || Session == null || Session.GetHabbo() == null)
return;
RoomUser User = Item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);
if (User == null)
{
return;
}
// Alright. But is this user in the right position?
if (User.Coordinate == Item.Coordinate || User.Coordinate == Item.SquareInFront)
{
// Fine. But is this tele even free?
if (Item.InteractingUser != 0)
{
return;
}
User.TeleDelay = 2;
Item.InteractingUser = User.GetClient().GetHabbo().Id;
}
else if (User.CanWalk)
{
User.MoveTo(Item.SquareInFront);
}
}
示例8: FriendListUpdateComposer
public FriendListUpdateComposer(GameClient Session, MessengerBuddy Buddy)
: base(ServerPacketHeader.FriendListUpdateMessageComposer)
{
base.WriteInteger(0);//Category Count
base.WriteInteger(1);//Updates Count
base.WriteInteger(0);//Update
Relationship Relationship = Session.GetHabbo().Relationships.FirstOrDefault(x => x.Value.UserId == Convert.ToInt32(Buddy.UserId)).Value;
int y = Relationship == null ? 0 : Relationship.Type;
base.WriteInteger(Buddy.UserId);
base.WriteString(Buddy.mUsername);
base.WriteInteger(1);
if (!Buddy.mAppearOffline || Session.GetHabbo().GetPermissions().HasRight("mod_tool"))
base.WriteBoolean(Buddy.IsOnline);
else
base.WriteBoolean(false);
if (!Buddy.mHideInroom || Session.GetHabbo().GetPermissions().HasRight("mod_tool"))
base.WriteBoolean(Buddy.InRoom);
else
base.WriteBoolean(false);
base.WriteString("");//Habbo.IsOnline ? Habbo.Look : "");
base.WriteInteger(0); // categoryid
base.WriteString(Buddy.mMotto);
base.WriteString(string.Empty); // Facebook username
base.WriteString(string.Empty);
base.WriteBoolean(true); // Allows offline messaging
base.WriteBoolean(false); // ?
base.WriteBoolean(false); // Uses phone
base.WriteShort(y);
}
示例9: SerializeQuest
private void SerializeQuest(ServerPacket Message, GameClient Session, Quest Quest, string Category)
{
if (Message == null || Session == null)
return;
int AmountInCat = PlusEnvironment.GetGame().GetQuestManager().GetAmountOfQuestsInCategory(Category);
int Number = Quest == null ? AmountInCat : Quest.Number - 1;
int UserProgress = Quest == null ? 0 : Session.GetHabbo().GetQuestProgress(Quest.Id);
if (Quest != null && Quest.IsCompleted(UserProgress))
Number++;
Message.WriteString(Category);
Message.WriteInteger(Quest == null ? 0 : ((Quest.Category.Contains("xmas2012")) ? 0 : Number)); // Quest progress in this cat
Message.WriteInteger(Quest == null ? 0 : (Quest.Category.Contains("xmas2012")) ? 0 : AmountInCat); // Total quests in this cat
Message.WriteInteger(Quest == null ? 3 : Quest.RewardType);// Reward type (1 = Snowflakes, 2 = Love hearts, 3 = Pixels, 4 = Seashells, everything else is pixels
Message.WriteInteger(Quest == null ? 0 : Quest.Id); // Quest id
Message.WriteBoolean(Quest == null ? false : Session.GetHabbo().GetStats().QuestID == Quest.Id); // Quest started
Message.WriteString(Quest == null ? string.Empty : Quest.ActionName);
Message.WriteString(Quest == null ? string.Empty : Quest.DataBit);
Message.WriteInteger(Quest == null ? 0 : Quest.Reward);
Message.WriteString(Quest == null ? string.Empty : Quest.Name);
Message.WriteInteger(UserProgress); // Current progress
Message.WriteInteger(Quest == null ? 0 : Quest.GoalData); // Target progress
Message.WriteInteger(Quest == null ? 0 : Quest.TimeUnlock); // "Next quest available countdown" in seconds
Message.WriteString("");
Message.WriteString("");
Message.WriteBoolean(true);
}
示例10: Parse
public void Parse(GameClient Session, ClientPacket Packet)
{
if (!Session.GetHabbo().InRoom)
return;
if (!Session.GetHabbo().EnterRoom(Session.GetHabbo().CurrentRoom))
Session.SendMessage(new CloseConnectionComposer());
}
示例11: Parse
public void Parse(GameClient Session, ClientPacket Packet)
{
if (Session == null || Session.GetHabbo() == null)
return;
int RoomId = Packet.PopInt();
string Password = Packet.PopString();
Session.GetHabbo().PrepareRoom(RoomId, Password);
}
示例12: CheckRewards
public void CheckRewards(GameClient Session)
{
if (Session == null || Session.GetHabbo() == null)
return;
foreach (KeyValuePair<int, Reward> Entry in _rewards)
{
int Id = Entry.Key;
Reward Reward = Entry.Value;
if (this.HasReward(Session.GetHabbo().Id, Id))
continue;
if (Reward.isActive())
{
switch (Reward.Type)
{
case RewardType.BADGE:
{
if (!Session.GetHabbo().GetBadgeComponent().HasBadge(Reward.RewardData))
Session.GetHabbo().GetBadgeComponent().GiveBadge(Reward.RewardData, true, Session);
break;
}
case RewardType.CREDITS:
{
Session.GetHabbo().Credits += Convert.ToInt32(Reward.RewardData);
Session.SendMessage(new CreditBalanceComposer(Session.GetHabbo().Credits));
break;
}
case RewardType.DUCKETS:
{
Session.GetHabbo().Duckets += Convert.ToInt32(Reward.RewardData);
Session.SendMessage(new HabboActivityPointNotificationComposer(Session.GetHabbo().Duckets, Convert.ToInt32(Reward.RewardData)));
break;
}
case RewardType.DIAMONDS:
{
Session.GetHabbo().Diamonds += Convert.ToInt32(Reward.RewardData);
Session.SendMessage(new HabboActivityPointNotificationComposer(Session.GetHabbo().Diamonds, Convert.ToInt32(Reward.RewardData), 5));
break;
}
}
if (!String.IsNullOrEmpty(Reward.Message))
Session.SendNotification(Reward.Message);
this.LogReward(Session.GetHabbo().Id, Id);
}
else
continue;
}
}
示例13: Parse
public void Parse(GameClient Session, ClientPacket Packet)
{
bool FocusPreference = Packet.PopBoolean();
Session.GetHabbo().FocusPreference = FocusPreference;
using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
{
dbClient.SetQuery("UPDATE `users` SET `focus_preference` = @focusPreference WHERE `id` = '" + Session.GetHabbo().Id + "' LIMIT 1");
dbClient.AddParameter("focusPreference", PlusEnvironment.BoolToEnum(FocusPreference));
dbClient.RunQuery();
}
}
示例14: Parse
public void Parse(GameClient Session, ClientPacket Packet)
{
int Id = Packet.PopInt();
Session.GetHabbo().FavoriteRooms.Remove(Id);
Session.SendMessage(new UpdateFavouriteRoomComposer(Id, false));
using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
{
dbClient.RunQuery("DELETE FROM user_favorites WHERE user_id = " + Session.GetHabbo().Id + " AND room_id = " + Id + " LIMIT 1");
}
}
示例15: CalcTreeSize
public int CalcTreeSize(GameClient Session, ICollection<CatalogPage> Pages, int ParentId)
{
int i = 0;
foreach (CatalogPage Page in Pages)
{
if (Page.MinimumRank > Session.GetHabbo().Rank|| (Page.MinimumVIP > Session.GetHabbo().VIPRank && Session.GetHabbo().Rank == 1) || Page.ParentId != ParentId)
continue;
if (Page.ParentId == ParentId)
i++;
}
return i;
}