当前位置: 首页>>代码示例>>C#>>正文


C# GameClient.SendMessage方法代码示例

本文整理汇总了C#中GameClient.SendMessage方法的典型用法代码示例。如果您正苦于以下问题:C# GameClient.SendMessage方法的具体用法?C# GameClient.SendMessage怎么用?C# GameClient.SendMessage使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在GameClient的用法示例。


在下文中一共展示了GameClient.SendMessage方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Handle

        public void Handle(GameClient client)
        {
            if (this.Position != null)
                client.Player.Position = this.Position;

            // looking for gold to pick up
            // TODO: Need to consider items on the ground globally as well (and this doesn't belong here)
            var actorList = client.Player.World.GetActorsInRange(this.Position.X, this.Position.Y, this.Position.Z, 20f);
            foreach (var actor in actorList)
            {
                Item item;
                if (client.Player.GroundItems.TryGetValue(actor.DynamicID, out item) && item.ItemType == ItemType.Gold)
                {
                    client.SendMessage(new FloatingAmountMessage() {
                        Place = new WorldPlace() {
                            Position = this.Position,
                            WorldID = client.Player.World.DynamicID,
                        },
                        Amount = item.Attributes[GameAttribute.Gold],
                        Type = FloatingAmountMessage.FloatType.Gold,
                    });
                    // NOTE: ANNDataMessage6 is probably "AddToInventory"
                    client.SendMessage(new ANNDataMessage(Opcodes.ANNDataMessage6)
                    {
                        ActorID = actor.DynamicID,
                    });

                    client.Player.Inventory.PickUpGold(actor.DynamicID);

                    client.Player.GroundItems.Remove(actor.DynamicID);
                    // should delete from World also
                }
            }
        }
开发者ID:geiz123,项目名称:mooege-1,代码行数:34,代码来源:ACDTranslateNormalMessage.cs

示例2: Handle

        public override void Handle(GameClient client)
        {
            if (this.Id != 0x000A)
                throw new NotImplementedException();

            // a hackish way to get client.BnetClient in context -- pretends games has only one client in. when we're done with implementing bnet completely, will get this sorted out. /raist
            client.BnetClient = Core.Games.GameManager.AvailableGames[(ulong)this.Field2].Clients.FirstOrDefault();
            if (client.BnetClient != null)
            {
                client.Toon = client.BnetClient.CurrentToon;
                client.BnetClient.InGameClient = client;
            }

            client.SendMessageNow(new VersionsMessage()
            {
                Id = 0x000D,
                SNOPackHash = this.SNOPackHash,
                ProtocolHash = GameMessage.ImplementedProtocolHash,
                Version = "0.3.0.7333",
            });

            client.SendMessage(new ConnectionEstablishedMessage()
            {
                Id = 0x002E,
                Field0 = 0x00000000,
                Field1 = 0x4BB91A16,
                Field2 = this.SNOPackHash,
            });

            client.SendMessage(new GameSetupMessage()
            {
                Id = 0x002F,
                Field0 = 0x00000077,
            });

            client.SendMessage(new SavePointInfoMessage()
            {
                Id = 0x0045,
                snoLevelArea = -1,
            });

            client.SendMessage(new HearthPortalInfoMessage()
            {
                Id = 0x0046,
                snoLevelArea = -1,
                Field1 = -1,
            });

            client.SendMessage(new ActTransitionMessage()
            {
                Id = 0x00A8,
                Field0 = 0x00000000,
                Field1 = true,
            });

            client.GameUniverse.EnterPlayer(client);

            client.FlushOutgoingBuffer();
        }
开发者ID:neoleszcz,项目名称:d3sharp,代码行数:59,代码来源:JoinBNetGameMessage.cs

示例3: SendMessage

 public void SendMessage(GameClient client, uint actorID)
 {
     var list = GetMessageList(actorID);
     foreach (var msg in list)
         client.SendMessage(msg);
     client.FlushOutgoingBuffer();
 }
开发者ID:Sanchen,项目名称:mooege,代码行数:7,代码来源:GameAttributeMap.cs

示例4: SendChangedMessage

 /// <summary>
 /// Send only the changed attributes. How nice is that?
 /// </summary>
 /// <param name="client">the client we send it to</param>
 /// <param name="actorID">the actor this attribs belong to</param>
 public void SendChangedMessage(GameClient client, uint actorID)
 {
     var list = GetChangedMessageList(actorID);
     foreach (var msg in list)
         client.SendMessage(msg);
     _changedAttributes.Clear();
 }
开发者ID:ripper47,项目名称:mooege,代码行数:12,代码来源:GameAttributeMap.cs

示例5: CompleteUserTalent

        /// <summary>
        /// Completes the user talent.
        /// </summary>
        /// <param name="Session">The session.</param>
        /// <param name="Talent">The talent.</param>
        internal void CompleteUserTalent(GameClient Session, Talent Talent)
        {
            if (Session == null || Session.GetHabbo() == null || Session.GetHabbo().CurrentTalentLevel < Talent.Level || Session.GetHabbo().Talents.ContainsKey(Talent.Id))
                return;
            if (!LevelIsCompleted(Session, Talent.Type, Talent.Level))
                return;
            if (!string.IsNullOrEmpty(Talent.Prize) && Talent.PrizeBaseItem > 0u)
            {
                Item item = AzureEmulator.GetGame().GetItemManager().GetItem(Talent.PrizeBaseItem);
                AzureEmulator.GetGame().GetCatalog().DeliverItems(Session, item, 1, "", 0, 0, "");
            }
            var value = new UserTalent(Talent.Id, 1);
            Session.GetHabbo().Talents.Add(Talent.Id, value);
            using (IQueryAdapter queryReactor = AzureEmulator.GetDatabaseManager().GetQueryReactor())
            {
                queryReactor.RunFastQuery(string.Concat("REPLACE INTO users_talents VALUES (", Session.GetHabbo().Id, ", ", Talent.Id, ", ", 1, ");"));
            }
            var serverMessage = new ServerMessage(LibraryParser.OutgoingRequest("TalentLevelUpMessageComposer"));
            serverMessage.AppendString(Talent.Type);
            serverMessage.AppendInteger(Talent.Level);
            serverMessage.AppendInteger(0);
            if (Talent.Type == "citizenship" && Talent.Level == 4)
            {
                serverMessage.AppendInteger(2);
                serverMessage.AppendString("HABBO_CLUB_VIP_7_DAYS");
                serverMessage.AppendInteger(7);
                serverMessage.AppendString(Talent.Prize);
                serverMessage.AppendInteger(0);
            }
            else
            {
                serverMessage.AppendInteger(1);
                serverMessage.AppendString(Talent.Prize);
                serverMessage.AppendInteger(0);
            }

            Session.SendMessage(serverMessage);

            if (Talent.Type == "citizenship")
            {
                if (Talent.Level == 3)
                    AzureEmulator.GetGame().GetAchievementManager().ProgressUserAchievement(Session, "ACH_Citizenship", 1);
                else if (Talent.Level == 4)
                {
                    Session.GetHabbo().GetSubscriptionManager().AddSubscription(7);
                    using (IQueryAdapter queryReactor = AzureEmulator.GetDatabaseManager().GetQueryReactor())
                    {
                        queryReactor.RunFastQuery(string.Concat(new object[]
                        {
                            "UPDATE users SET talent_status = 'helper' WHERE id = ",
                            Session.GetHabbo().Id,
                            ";"
                        }));
                    }
                }
            }
        }
开发者ID:BjkGkh,项目名称:Azure2,代码行数:62,代码来源:TalentManager.cs

示例6: OnUserWalk

 public void OnUserWalk(GameClient session, RoomItem item, RoomUser user)
 {
     if (item == null || user == null) return;
     var data = item.ExtraData.Split(Convert.ToChar(9));
     if (item.ExtraData == "" || data.Length < 4) return;
     var message = new ServerMessage(LibraryParser.OutgoingRequest("InternalLinkMessageComposer"));
     message.AppendString(data[3]);
     session.SendMessage(message);
 }
开发者ID:BjkGkh,项目名称:Azure2,代码行数:9,代码来源:InteractorWalkInternalLink.cs

示例7: Handle

        public void Handle(GameClient client)
        {
            if (this.Position != null)
                client.Player.Hero.Position = this.Position;

            // looking for gold to pick up
            var actorList = client.Player.Hero.CurrentWorld.GetActorsInRange(0x00000178, this.Position.X, this.Position.Y, this.Position.Z, 20f);
            foreach (var actor in actorList) 
            {
                Item item;

                if (client.items.TryGetValue(actor.DynamicId, out item) && item.Type == ItemType.Gold) 
                {
                    client.SendMessage(new FloatingAmountMessage() {
                        Field0 = new WorldPlace() {
                            Field0 = this.Position,
                            Field1 = client.Player.Hero.CurrentWorld.WorldID,
                        },
                        Field1 = item.Count,
                        Field3 = 0x1c,
                    });
                    client.SendMessage(new ANNDataMessage()
                    {
                        Id = 0x003C,
                        Field0 = actor.DynamicId,
                    });

                    client.Player.Hero.Inventory.PickUpGold(actor.DynamicId);

                    client.PacketId += 10 * 2;
                    client.SendMessage(new DWordDataMessage()
                    {
                        Id = 0x89,
                        Field0 = client.PacketId,
                    });

                    client.FlushOutgoingBuffer();

                    client.items.Remove(actor.DynamicId);
                    // should delete from World also
                }
            }
        }
开发者ID:BuloZB,项目名称:mooege,代码行数:43,代码来源:ACDTranslateNormalMessage.cs

示例8: Handle

        public void Handle(GameClient client)
        {
            if (client.IsLoggingOut)
            {
                client.SendMessage(new QuitGameMessage() // should be sent to all players i guess /raist.
                {
                    PlayerIndex = client.Player.PlayerIndex,
                });

                GameManager.RemovePlayerFromGame(client);
            }
        }
开发者ID:wow4all,项目名称:mooege,代码行数:12,代码来源:LogoutComplete.cs

示例9: Execute

 public override void Execute(GameClient session, string[] pms)
 {
     var room = session.GetHabbo().CurrentRoom;
     foreach (
         var pet in
             room.GetRoomUserManager().GetPets().Where(pet => pet.OwnerId == session.GetHabbo().Id))
     {
         session.GetHabbo().GetInventoryComponent().AddPet(pet);
         room.GetRoomUserManager().RemoveBot(pet.VirtualId, false);
     }
     session.SendMessage(session.GetHabbo().GetInventoryComponent().SerializePetInventory());
 }
开发者ID:BjkGkh,项目名称:Azure2,代码行数:12,代码来源:PickPets.cs

示例10: Execute

        public override bool Execute(GameClient session, string[] pms)
        {
            session.GetHabbo().NewNavigator = !session.GetHabbo().NewNavigator;

            var msg = new ServerMessage(LibraryParser.OutgoingRequest("SendPerkAllowancesMessageComposer"));
            msg.AppendInteger(1);
            msg.AppendString("NAVIGATOR_PHASE_TWO_2014");
            msg.AppendString("");
            msg.AppendBool(session.GetHabbo().NewNavigator);

            session.SendMessage(msg);
            return true;
        }
开发者ID:BjkGkh,项目名称:Azure2,代码行数:13,代码来源:Navigator.cs

示例11: Handle

        public void Handle(GameClient client)
        {
            client.IsLoggingOut = !client.IsLoggingOut;

            if (client.IsLoggingOut)
            {
                client.SendMessage(new LogoutTickTimeMessage()
                {
                    Field0 = false, // true - logout with party?
                    Ticks = 0, // delay 1, make this equal to 0 for instant logout
                    Field2 = 0, // delay 2
                });
            }
        }
开发者ID:wow4all,项目名称:mooege,代码行数:14,代码来源:LogoutContextMessage.cs

示例12: Execute

 public override void Execute(GameClient session, string[] pms)
 {
     var client = AzureEmulator.GetGame().GetClientManager().GetClientByUserName(pms[0]);
     if (client == null || client.GetHabbo() == null)
     {
         session.SendWhisper(TextManager.GetText("user_not_found"));
         return;
     }
     if (client.GetHabbo().CurrentRoom == null ||
         client.GetHabbo().CurrentRoom == session.GetHabbo().CurrentRoom)
         return;
     var roomFwd =
         new ServerMessage(LibraryParser.OutgoingRequest("RoomForwardMessageComposer"));
     roomFwd.AppendInteger(client.GetHabbo().CurrentRoom.RoomId);
     session.SendMessage(roomFwd);
 }
开发者ID:BjkGkh,项目名称:Azure2,代码行数:16,代码来源:FollowUser.cs

示例13: OnTrigger

 public void OnTrigger(GameClient session, RoomItem item, int request, bool hasRights)
 {
     var message = new ServerMessage(LibraryParser.OutgoingRequest("CraftableProductsMessageComposer"));
     var crafting = AzureEmulator.GetGame().GetCraftingManager();
     message.AppendInteger(crafting.CraftingRecipes.Count);
     foreach(var recipe in crafting.CraftingRecipes.Values)
     {
         message.AppendString(recipe.Result);
         message.AppendString(recipe.Result);
     }
     message.AppendInteger(crafting.CraftableItems.Count);
     foreach (var itemName in crafting.CraftableItems)
     {
         message.AppendString(itemName);
     }
     session.SendMessage(message);
 }
开发者ID:BjkGkh,项目名称:Azure2,代码行数:17,代码来源:InteractorCrafting.cs

示例14: OnTrigger

        public void OnTrigger(GameClient session, RoomItem item, int request, bool hasRights)
        {
            {
                var user = session.GetHabbo();
                var ishc = user.VIP;
                if (!ishc)
                {
                    var message = new ServerMessage(LibraryParser.OutgoingRequest("CustomUserNotificationMessageComposer"));
                    message.AppendInteger(3);
                    session.SendMessage(message);
                    return;
                }

                if (item == null || item.GetBaseItem() == null || item.GetBaseItem().InteractionType != Interaction.HCGate)
                    return;

                var modes = item.GetBaseItem().Modes - 1;
                if (modes <= 0)
                    item.UpdateState(false, true);

                int currentMode;
                int.TryParse(item.ExtraData, out currentMode);
                int newMode;
                if (currentMode <= 0)
                    newMode = 1;
                else if (currentMode >= modes)
                    newMode = 0;
                else
                    newMode = currentMode + 1;

                if (newMode == 0 && !item.GetRoom().GetGameMap().ItemCanBePlacedHere(item.X, item.Y))
                    return;

                item.ExtraData = newMode.ToString();
                item.UpdateState();
                item.GetRoom().GetGameMap().UpdateMapForItem(item);
                item.GetRoom().GetWiredHandler().ExecuteWired(Interaction.TriggerStateChanged, item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(session.GetHabbo().Id), item);
            }
        }
开发者ID:BjkGkh,项目名称:Azure2,代码行数:39,代码来源:InteractorHCGate.cs

示例15: GiveBadge

 /// <summary>
 /// Gives the badge.
 /// </summary>
 /// <param name="badge">The badge.</param>
 /// <param name="inDatabase">if set to <c>true</c> [in database].</param>
 /// <param name="session">The session.</param>
 /// <param name="wiredReward">if set to <c>true</c> [wired reward].</param>
 internal void GiveBadge(string badge, bool inDatabase, GameClient session, bool wiredReward = false)
 {
     if (wiredReward)
         session.SendMessage(SerializeBadgeReward(!HasBadge(badge)));
     if (HasBadge(badge))
         return;
     if (inDatabase)
         using (var queryReactor = AzureEmulator.GetDatabaseManager().GetQueryReactor())
         {
             queryReactor.SetQuery(string.Concat("INSERT INTO users_badges (user_id,badge_id,badge_slot) VALUES (", _userId, ",@badge,", 0, ")"));
             queryReactor.AddParameter("badge", badge);
             queryReactor.RunQuery();
         }
     BadgeList.Add(badge, new Badge(badge, 0));
     session.SendMessage(SerializeBadge(badge));
     session.SendMessage(Update(badge));
 }
开发者ID:BjkGkh,项目名称:Azure2,代码行数:24,代码来源:BadgeComponent.cs


注:本文中的GameClient.SendMessage方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。