本文整理汇总了C#中Butterfly.HabboHotel.GameClients.GameClient类的典型用法代码示例。如果您正苦于以下问题:C# GameClient类的具体用法?C# GameClient怎么用?C# GameClient使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
GameClient类属于Butterfly.HabboHotel.GameClients命名空间,在下文中一共展示了GameClient类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: DoTrigger
protected override void DoTrigger(GameClient Session, RoomItem Item, int Request, bool UserHasRights)
{
ServerMessage message = PacketHandelingManager.GetRecycledItem(OutputCode.WiredFurniActionEvent);
message.AddBoolean(false);
message.AddInt32(0);
message.AddInt32(0);
message.AddInt32(Item.GetBaseItem().SpriteId);
message.AddUInt32(Item.Id);
if (Item.wiredHandler != null)
{
Kick handler = (Kick)Item.wiredHandler;
message.AddString(handler.message);
}
else
{
message.AddString(string.Empty);
}
message.AddInt32(0);
message.AddInt32(0);
message.AddInt32(7);
message.AddInt32(0);
message.AddInt32(0);
message.AddString(string.Empty);
Session.SendMessage(message);
}
示例2:
void IFurniTrigger.OnTrigger(GameClient Session, RoomItem Item, int Request, bool UserHasRights)
{
RoomUser User = null;
if (Session != null)
User = Item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);
if (User == null)
return;
if (Gamemap.TilesTouching(Item.GetX, Item.GetY, User.X, User.Y))
{
if (Item.ExtraData != "-1")
{
if (Request == -1)
{
Item.ExtraData = "0";
Item.UpdateState();
}
else
{
Item.ExtraData = "-1";
Item.UpdateState(false, true);
Item.ReqUpdate(4, true);
}
}
}
else
{
User.MoveTo(Item.SquareInFront);
}
}
示例3: SellItem
internal static void SellItem(GameClient Session, uint ItemId, int SellingPrice)
{
UserItem item = Session.GetHabboDataContainer().GetInventoryComponent().GetItem(ItemId);
if (item == null || SellingPrice > 10000 || !CanSellItem(item))
{
ServerMessage message = PacketHandelingManager.GetRecycledItem(OutputCode.MarketplaceMakeOfferResult);
message.AddInt32(0);
Session.SendMessage(message);
}
else
{
int comissionPrice = CalculateComissionPrice(SellingPrice);
int totalPrice = SellingPrice + comissionPrice;
int itemType = (item.GetBaseItem().Type == 'i') ? 2 : 1;
using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
{
dbClient.setQuery("INSERT INTO catalog_marketplace_offers (item_id,user_id,asking_price,total_price,public_name,sprite_id,item_type,timestamp,extra_data) VALUES (" + item.BaseItemID + "," + Session.GetHabbo().Id + "," + SellingPrice + "," + totalPrice + ",@public_name," + item.GetBaseItem().SpriteId + "," + itemType + "," + ButterflyEnvironment.GetUnixTimestamp() + ",@extra_data)");
dbClient.addParameter("public_name", item.GetBaseItem().PublicName);
dbClient.addParameter("extra_data", item.extraData);
dbClient.runQuery();
}
Session.GetHabboDataContainer().GetInventoryComponent().RemoveItem(ItemId, true);
Session.GetHabboDataContainer().GetInventoryComponent().RunDBUpdate();
ServerMessage message = PacketHandelingManager.GetRecycledItem(OutputCode.MarketplaceMakeOfferResult);
message.AddInt32(1);
Session.SendMessage(message);
}
}
示例4: if
void IFurniTrigger.OnTrigger(GameClient Session, RoomItem Item, int Request, bool UserHasRights)
{
// Is this user valid?
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 = -1;
Item.InteractingUser = User.GetClient().GetHabbo().Id;
}
else if (User.CanWalk)
{
User.MoveTo(Item.SquareInFront);
}
}
示例5: AlertUser
internal static void AlertUser(GameClient ModSession, uint UserId, String Message, Boolean Caution)
{
GameClient Client = ButterflyEnvironment.GetGame().GetClientManager().GetClientByUserID(UserId);
if (Client == null || Client.GetHabbo().Id == ModSession.GetHabbo().Id)
{
return;
}
if (Caution && Client.GetHabbo().Rank >= ModSession.GetHabbo().Rank)
{
ModSession.SendNotif(LanguageLocale.GetValue("moderation.caution.missingrank"));
Caution = false;
}
Client.SendNotif(Message, Caution);
if (Caution)
{
using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
{
dbClient.runFastQuery("UPDATE user_info SET cautions = cautions + 1 WHERE user_id = " + UserId + "");
}
}
}
示例6:
void IFurniTrigger.OnRemove(GameClient Session, RoomItem 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;
}
//Item.GetRoom().RegenerateUserMatrix();
}
示例7:
void IFurniTrigger.OnTrigger(GameClient Session, RoomItem Item, int Request, bool UserHasRights)
{
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.ClearMovement(true);
user.SetRot(Rotation.Calculate(user.X, user.Y, Item.GetX, Item.GetY), false);
Item.ReqUpdate(2, true);
Item.ExtraData = "1";
Item.UpdateState(false, true);
}
}
示例8: if
void IFurniTrigger.OnTrigger(GameClient Session, RoomItem Item, int Request, bool UserHasRights)
{
RoomUser User = null;
if (Session != null)
User = Item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);
if (User == null)
return;
if (!Gamemap.TilesTouching(Item.GetX, Item.GetY, User.X, User.Y))
{
return;
}
int Modes = (Item.GetBaseItem().Modes - 1);
if (Modes < 0)
{
Modes = 0;
}
if (Session != null)
ButterflyEnvironment.GetGame().GetQuestManager().ProgressUserQuest(Session, HabboHotel.Quests.QuestType.FURNI_SWITCH);
if (!UserHasRights)
{
return;
}
if (Modes == 0)
{
return;
}
int currentMode = 0;
int newMode = 0;
try
{
currentMode = int.Parse(Item.ExtraData);
}
catch // (Exception e)
{
//Logging.HandleException(e, "InteractorGenericSwitch.OnTrigger");
}
if (currentMode <= 0)
{
newMode = 1;
}
else if (currentMode >= Modes)
{
newMode = 0;
}
else
{
newMode = currentMode + 1;
}
Item.ExtraData = newMode.ToString();
Item.UpdateState();
}
示例9: GamePacketParser
public GamePacketParser(GameClient Client)
{
this.CurrentClient = Client;
this.bufferPos = 0;
this.currentPacketLength = -1;
this.bufferedData = memoryContainer.TakeBuffer();
}
示例10: SerializeQuest
internal static void SerializeQuest(ServerMessage Message, GameClient Session, Quest Quest, string Category)
{
int AmountInCat = ButterflyEnvironment.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.AddString(Category);
Message.AddInt32(Number); // Quest progress in this cat
Message.AddInt32(AmountInCat); // Total quests in this cat
Message.AddInt32((int)QuestRewardType.Pixels); // Reward type (1 = Snowflakes, 2 = Love hearts, 3 = Pixels, 4 = Seashells, everything else is pixels
Message.AddUInt32(Quest == null ? 0 : Quest.Id); // Quest id
Message.AddBoolean(Quest == null ? false : Session.GetHabbo().CurrentQuestId == Quest.Id); // Quest started
Message.AddString(Quest == null ? string.Empty : Quest.ActionName);
Message.AddString(Quest == null ? string.Empty : Quest.DataBit);
Message.AddInt32(Quest == null ? 0 : Quest.Reward);
Message.AddString(Quest == null ? string.Empty : Quest.Name);
Message.AddInt32(UserProgress); // Current progress
Message.AddUInt32(Quest == null ? 0 : Quest.GoalData); // Target progress
Message.AddInt32(0); // "Next quest available countdown" in seconds
Message.AddString(string.Empty); //set_kuurna
Message.AddString(string.Empty); // MAIN_CHAIN
Message.AddBoolean(true); // Euh?
}
示例11: AddToPlaylist
private static void AddToPlaylist(GameClient Session, ClientMessage Message)
{
Room Instance = Session.GetHabbo().CurrentRoom;
if (Instance == null || !Instance.CheckRights(Session, true) || !Instance.GotMusicController() ||
Instance.GetRoomMusicController().PlaylistSize >= Instance.GetRoomMusicController().PlaylistCapacity)
{
return;
}
UserItem DiskUserItem = Session.GetHabbo().GetInventoryComponent().GetItem(Message.PopWiredUInt());
if (DiskUserItem == null || DiskUserItem.GetBaseItem().InteractionType != InteractionType.musicdisc)
{
return;
}
SongItem item = new SongItem(DiskUserItem);
int NewOrder = Instance.GetRoomMusicController().AddDisk(item);
if (NewOrder < 0)
{
return;
}
Session.GetHabbo().GetInventoryComponent().RemoveItem(item.itemID, true);
Session.SendMessage(JukeboxComposer.Compose(Instance.GetRoomMusicController().PlaylistCapacity,
Instance.GetRoomMusicController().Playlist.Values.ToList()));
}
示例12: AvatarEffectsInventoryComponent
internal AvatarEffectsInventoryComponent(uint UserId, GameClient pClient, UserData data)
{
this.mClient = pClient;
this.Effects = new ArrayList();
this.UserId = UserId;
this.CurrentEffect = -1;
this.Effects.Clear();
StringBuilder QueryBuilder = new StringBuilder();
foreach (AvatarEffect effect in data.effects)
{
if (!effect.HasExpired)
{
Effects.Add(effect);
EffectCount++;
}
else
QueryBuilder.Append("DELETE FROM user_effects WHERE user_id = " + UserId + " AND effect_id = " + effect.EffectId + "; ");
}
if (QueryBuilder.Length > 0)
{
using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
dbClient.runFastQuery(QueryBuilder.ToString());
}
}
示例13: if
void IFurniTrigger.OnTrigger(GameClient Session, RoomItem Item, int Request, bool UserHasRights)
{
if (!UserHasRights)
{
return;
}
int oldValue = 0;
if (!string.IsNullOrEmpty(Item.ExtraData))
{
try
{
oldValue = int.Parse(Item.ExtraData);
}
catch { }
}
if (Request == 1)
{
oldValue++;
}
else if (Request == 2)
{
oldValue--;
}
else if (Request == 3)
{
oldValue = 0;
}
Item.ExtraData = oldValue.ToString();
Item.UpdateState(false, true);
}
示例14: UserGotAuthorization
internal bool UserGotAuthorization(GameClient session)
{
foreach (string subsciption in this.clubsAllowed)
{
if (!session.GetHabboDataContainer().GetSubscriptionManager().HasSubscription(subsciption) && subsciption != string.Empty)
return false;
}
if (minrank == 0)
return true;
else if (minrank > 0)
{
if (minrank <= session.GetHabbo().Rank)
return true;
}
else if (minrank < 0)
{
if (minrank == -1)
{
if (session.GetHabbo().CurrentRoom.CheckRights(session, false))
return true;
}
else if (minrank == -2)
{
if (session.GetHabbo().CurrentRoom.CheckRights(session, true))
return true;
}
}
return false;
}
示例15: Compose
internal static ServerMessage Compose(GameClient Session, Quest Quest)
{
ServerMessage Message = PacketHandelingManager.GetRecycledItem(OutputCode.QuestCompletedMessageComposer);
QuestListComposer.SerializeQuest(Message, Session, Quest, Quest.Category);
Message.AddBoolean(true);
return Message;
}