本文整理汇总了C#中Plus.HabboHotel.GameClients.GameClient类的典型用法代码示例。如果您正苦于以下问题:C# GameClient类的具体用法?C# GameClient怎么用?C# GameClient使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
GameClient类属于Plus.HabboHotel.GameClients命名空间,在下文中一共展示了GameClient类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: OnPlace
public void OnPlace(GameClient Session, Item Item)
{
Item.ExtraData = "0";
if (Item.InteractingUser != 0)
{
RoomUser User = Item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(Item.InteractingUser);
if (User != null)
{
User.ClearMovement(true);
User.AllowOverride = false;
User.CanWalk = true;
}
Item.InteractingUser = 0;
}
if (Item.InteractingUser2 != 0)
{
RoomUser User = Item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(Item.InteractingUser2);
if (User != null)
{
User.ClearMovement(true);
User.AllowOverride = false;
User.CanWalk = true;
}
Item.InteractingUser2 = 0;
}
}
示例2: OnRemove
public void OnRemove(GameClient Session, Item Item)
{
Item.ExtraData = "0";
if (Item.InteractingUser != 0)
{
RoomUser User = Item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(Item.InteractingUser);
if (User != null)
{
User.UnlockWalking();
}
Item.InteractingUser = 0;
}
if (Item.InteractingUser2 != 0)
{
RoomUser User = Item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(Item.InteractingUser2);
if (User != null)
{
User.UnlockWalking();
}
Item.InteractingUser2 = 0;
}
}
示例3: 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);
}
}
示例4: GroupInfoComposer
public GroupInfoComposer(Group Group, GameClient Session, bool NewWindow = false)
: base(ServerPacketHeader.GroupInfoMessageComposer)
{
DateTime Origin = new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(Group.CreateTime);
base.WriteInteger(Group.Id);
base.WriteBoolean(true);
base.WriteInteger(Group.GroupType == GroupType.OPEN ? 0 : Group.GroupType == GroupType.LOCKED ? 1 : 2);
base.WriteString(Group.Name);
base.WriteString(Group.Description);
base.WriteString(Group.Badge);
base.WriteInteger(Group.RoomId);
base.WriteString((PlusEnvironment.GetGame().GetRoomManager().GenerateRoomData(Group.RoomId) == null) ? "No room found.." : PlusEnvironment.GetGame().GetRoomManager().GenerateRoomData(Group.RoomId).Name); // room name
base.WriteInteger(Group.CreatorId == Session.GetHabbo().Id ? 3 : Group.HasRequest(Session.GetHabbo().Id) ? 2 : Group.IsMember(Session.GetHabbo().Id) ? 1 : 0);
base.WriteInteger(Group.MemberCount); // Members
base.WriteBoolean(false);//?? CHANGED
base.WriteString(Origin.Day + "-" + Origin.Month + "-" + Origin.Year);
base.WriteBoolean(Group.CreatorId == Session.GetHabbo().Id);
base.WriteBoolean(Group.IsAdmin(Session.GetHabbo().Id)); // admin
base.WriteString(PlusEnvironment.GetUsernameById(Group.CreatorId));
base.WriteBoolean(NewWindow); // Show group info
base.WriteBoolean(Group.AdminOnlyDeco == 0); // Any user can place furni in home room
base.WriteInteger(Group.CreatorId == Session.GetHabbo().Id ? Group.RequestCount : Group.IsAdmin(Session.GetHabbo().Id) ? Group.RequestCount : Group.IsMember(Session.GetHabbo().Id) ? 0 : 0); // Pending users
//base.WriteInteger(0);//what the fuck
base.WriteBoolean(Group != null ? Group.ForumEnabled : true);//HabboTalk.
}
示例5: Parse
public void Parse(GameClient Session, ClientPacket Packet)
{
string PetName = Packet.PopString();
if (PetName.Length < 2)
{
Session.SendMessage(new CheckPetNameComposer(2, "2"));
return;
}
else if (PetName.Length > 15)
{
Session.SendMessage(new CheckPetNameComposer(1, "15"));
return;
}
else if (!PlusEnvironment.IsValidAlphaNumeric(PetName))
{
Session.SendMessage(new CheckPetNameComposer(3, ""));
return;
}
else if (PlusEnvironment.GetGame().GetChatManager().GetFilter().IsFiltered(PetName))
{
Session.SendMessage(new CheckPetNameComposer(4, ""));
return;
}
Session.SendMessage(new CheckPetNameComposer(0, ""));
}
示例6: OnTrigger
public void OnTrigger(GameClient Session, Item Item, int Request, bool HasRights)
{
if (Session == null || Item == null)
return;
if (!HasRights)
return;
IWiredItem Box = null;
if (!Item.GetRoom().GetWired().TryGet(Item.Id, out Box))
return;
Item.ExtraData = "1";
Item.UpdateState(false, true);
Item.RequestUpdate(2, true);
if (Item.GetBaseItem().WiredType == WiredBoxType.AddonRandomEffect)
return;
if (Item.GetRoom().GetWired().IsTrigger(Item))
{
List<int> BlockedItems = WiredBoxTypeUtility.ContainsBlockedEffect(Box, Item.GetRoom().GetWired().GetEffects(Box));
Session.SendMessage(new WiredTriggerConfigComposer(Box, BlockedItems));
}
else if (Item.GetRoom().GetWired().IsEffect(Item))
{
List<int> BlockedItems = WiredBoxTypeUtility.ContainsBlockedTrigger(Box, Item.GetRoom().GetWired().GetTriggers(Box));
Session.SendMessage(new WiredEffectConfigComposer(Box, BlockedItems));
}
else if (Item.GetRoom().GetWired().IsCondition(Item))
Session.SendMessage(new WiredConditionConfigComposer(Box));
}
示例7: 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..
}
示例8: CreateRoom
public RoomData CreateRoom(GameClient Session, string Name, string Description, string Model, int Category, int MaxVisitors, int TradeSettings)
{
if (!_roomModels.ContainsKey(Model))
{
Session.SendNotification(PlusEnvironment.GetGame().GetLanguageLocale().TryGetValue("room_model_missing"));
return null;
}
if (Name.Length < 3)
{
Session.SendNotification(PlusEnvironment.GetGame().GetLanguageLocale().TryGetValue("room_name_length_short"));
return null;
}
int RoomId = 0;
using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
{
dbClient.SetQuery("INSERT INTO `rooms` (`roomtype`,`caption`,`description`,`owner`,`model_name`,`category`,`users_max`,`trade_settings`) VALUES ('private',@caption,@description,@UserId,@model,@category,@usersmax,@tradesettings)");
dbClient.AddParameter("caption", Name);
dbClient.AddParameter("description", Description);
dbClient.AddParameter("UserId", Session.GetHabbo().Id);
dbClient.AddParameter("model", Model);
dbClient.AddParameter("category", Category);
dbClient.AddParameter("usersmax", MaxVisitors);
dbClient.AddParameter("tradesettings", TradeSettings);
RoomId = Convert.ToInt32(dbClient.InsertQuery());
}
RoomData newRoomData = GenerateRoomData(RoomId);
Session.GetHabbo().UsersRooms.Add(newRoomData);
return newRoomData;
}
示例9: 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);
}
示例10: GameAchievementListComposer
public GameAchievementListComposer(GameClient Session, ICollection<Achievement> Achievements, int GameId)
: base(ServerPacketHeader.GameAchievementListMessageComposer)
{
base.WriteInteger(GameId);
base.WriteInteger(Achievements.Count);
foreach (Achievement Ach in Achievements.ToList())
{
UserAchievement UserData = Session.GetHabbo().GetAchievementData(Ach.GroupName);
int TargetLevel = (UserData != null ? UserData.Level + 1 : 1);
AchievementLevel TargetLevelData = Ach.Levels[TargetLevel];
base.WriteInteger(Ach.Id); // ach id
base.WriteInteger(TargetLevel); // target level
base.WriteString(Ach.GroupName + TargetLevel); // badge
base.WriteInteger(TargetLevelData.Requirement); // requirement
base.WriteInteger(TargetLevelData.Requirement); // requirement
base.WriteInteger(TargetLevelData.RewardPixels); // pixels
base.WriteInteger(0); // ach score
base.WriteInteger(UserData != null ? UserData.Progress : 0); // Current progress
base.WriteBoolean(UserData != null ? (UserData.Level >= Ach.Levels.Count) : false); // Set 100% completed(??)
base.WriteString(Ach.Category);
base.WriteString("basejump");
base.WriteInteger(0); // total levels
base.WriteInteger(0);
}
base.WriteString("");
}
示例11: 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);
}
}
示例12: Parse
public void Parse(GameClient Session, ClientPacket Packet)
{
if (!Session.GetHabbo().InRoom)
return;
Room Room = null;
if (!PlusEnvironment.GetGame().GetRoomManager().TryGetRoom(Session.GetHabbo().CurrentRoomId, out Room))
return;
if (!Room.CheckRights(Session, false))
return;
if (Room.UsersWithRights.Contains(Session.GetHabbo().Id))
{
RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);
if (User != null && !User.IsBot)
{
User.RemoveStatus("flatctrl 1");
User.UpdateNeeded = true;
User.GetClient().SendMessage(new YouAreNotControllerComposer());
}
using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
{
dbClient.SetQuery("DELETE FROM `room_rights` WHERE `user_id` = @uid AND `room_id` = @rid LIMIT 1");
dbClient.AddParameter("uid", Session.GetHabbo().Id);
dbClient.AddParameter("rid", Room.Id);
dbClient.RunQuery();
}
if (Room.UsersWithRights.Contains(Session.GetHabbo().Id))
Room.UsersWithRights.Remove(Session.GetHabbo().Id);
}
}
示例13: AchievementsComposer
public AchievementsComposer(GameClient Session, List<Achievement> Achievements)
: base(ServerPacketHeader.AchievementsMessageComposer)
{
base.WriteInteger(Achievements.Count);
foreach (Achievement Achievement in Achievements)
{
UserAchievement UserData = Session.GetHabbo().GetAchievementData(Achievement.GroupName);
int TargetLevel = (UserData != null ? UserData.Level + 1 : 1);
int TotalLevels = Achievement.Levels.Count;
TargetLevel = (TargetLevel > TotalLevels ? TotalLevels : TargetLevel);
AchievementLevel TargetLevelData = Achievement.Levels[TargetLevel];
base.WriteInteger(Achievement.Id); // Unknown (ID?)
base.WriteInteger(TargetLevel); // Target level
base.WriteString(Achievement.GroupName + TargetLevel); // Target name/desc/badge
base.WriteInteger(1);
base.WriteInteger(TargetLevelData.Requirement); // Progress req/target
base.WriteInteger(TargetLevelData.RewardPixels);
base.WriteInteger(0); // Type of reward
base.WriteInteger(UserData != null ? UserData.Progress : 0); // Current progress
base.WriteBoolean(UserData != null ? (UserData.Level >= TotalLevels) : false);// Set 100% completed(??)
base.WriteString(Achievement.Category); // Category
base.WriteString(string.Empty);
base.WriteInteger(TotalLevels); // Total amount of levels
base.WriteInteger(0);
}
base.WriteString("");
}
示例14: Parse
public void Parse(GameClient Session, ClientPacket Packet)
{
if (Session == null || Session.RC4Client == null || Session.GetHabbo() != null)
return;
Session.TryAuthenticate(Packet.PopString());
}
示例15: 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);
}
}
}
}
}