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


C# Packet.AddChar方法代码示例

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


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

示例1: HandleMessage

        public static void HandleMessage(Packet packet, IClient client, bool fromQueue)
        {
            Packet reply = new Packet(PacketFamily.Welcome, PacketAction.Reply);

            client.EnterGame();
            client.Character.Map.Enter(client.Character, WarpAnimation.Admin);

            reply.AddShort((short)WelcomeReply.WorldInfo);
            reply.AddBreak();

            for (int i = 0; i < 9; ++i)
            {
                reply.AddBreakString("A");
            }

            reply.AddChar(client.Character.Weight); // Weight
            reply.AddChar(client.Character.MaxWeight); // Max Weight

            // Inventory
            foreach (ItemStack item in client.Character.Items)
            {
                reply.AddShort(item.Id);
                reply.AddInt(item.Amount);
            }
            reply.AddBreak();

            // Spells
            reply.AddBreak();

            IEnumerable<Character> characters = client.Character.GetInRange<Character>();
            IEnumerable<NPC> npcs = client.Character.GetInRange<NPC>();
            IEnumerable<MapItem> items = client.Character.GetInRange<MapItem>();

            reply.AddChar((byte)characters.Count());
            reply.AddBreak();

            // Characters
            // {
            foreach (Character character in characters)
            {
                character.InfoBuilder(ref reply);
                reply.AddBreak();
            }
            // }

            // NPCs
            foreach (NPC npc in npcs)
            {
                npc.InfoBuilder(ref reply);
            }
            reply.AddBreak();

            // Items
            foreach (MapItem item in items)
            {
                item.InfoBuilder(ref reply);
            }

            client.Send(reply);
        }
开发者ID:Bart97,项目名称:BeemuSharp,代码行数:60,代码来源:Welcome.cs

示例2: DoorOpen

		public bool DoorOpen(byte x, byte y)
		{
			if (!m_client.ConnectedAndInitialized || !Initialized) return false;

			Packet builder = new Packet(PacketFamily.Door, PacketAction.Open);
			builder.AddChar(x);
			builder.AddChar(y);

			return m_client.SendPacket(builder);
		}
开发者ID:weedindeed,项目名称:EndlessClient,代码行数:10,代码来源:Door.cs

示例3: OpenLocker

        /// <summary>
        /// Opens a locker at X/Y coordinates
        /// </summary>
        public bool OpenLocker(byte x, byte y)
        {
            if (!m_client.ConnectedAndInitialized || !Initialized)
                return false;

            Packet pkt = new Packet(PacketFamily.Locker, PacketAction.Open);
            pkt.AddChar(x);
            pkt.AddChar(y);

            return m_client.SendPacket(pkt);
        }
开发者ID:Vulttwin,项目名称:EndlessClient,代码行数:14,代码来源:Locker.cs

示例4: ChestOpen

		public bool ChestOpen(byte x, byte y)
		{
			if (!m_client.ConnectedAndInitialized || !Initialized)
				return false;

			Packet toSend = new Packet(PacketFamily.Chest, PacketAction.Open);
			toSend.AddChar(x);
			toSend.AddChar(y);

			return m_client.SendPacket(toSend);
		}
开发者ID:weedindeed,项目名称:EndlessClient,代码行数:11,代码来源:Chest.cs

示例5: LockerTakeItem

        /// <summary>
        /// Withdraw an item from your private locker
        /// </summary>
        public bool LockerTakeItem(byte x, byte y, short id)
        {
            if (!m_client.ConnectedAndInitialized || !Initialized)
                return false;

            Packet pkt = new Packet(PacketFamily.Locker, PacketAction.Take);
            pkt.AddChar(x);
            pkt.AddChar(y);
            pkt.AddShort(id);

            return m_client.SendPacket(pkt);
        }
开发者ID:Vulttwin,项目名称:EndlessClient,代码行数:15,代码来源:Locker.cs

示例6: ChestAddItem

        public bool ChestAddItem(byte x, byte y, short itemID, int amount)
        {
            if (!m_client.ConnectedAndInitialized || !Initialized)
                return false;

            Packet pkt = new Packet(PacketFamily.Chest, PacketAction.Add);
            pkt.AddChar(x);
            pkt.AddChar(y);
            pkt.AddShort(itemID);
            pkt.AddThree(amount);

            return m_client.SendPacket(pkt);
        }
开发者ID:Vulttwin,项目名称:EndlessClient,代码行数:13,代码来源:Chest.cs

示例7: PlayerWalk

		public bool PlayerWalk(EODirection dir, byte destX, byte destY, bool admin = false)
		{
			if (!m_client.ConnectedAndInitialized || !Initialized)
				return false;

			Packet builder = new Packet(PacketFamily.Walk, admin ? PacketAction.Admin : PacketAction.Player);
				//change family/action
			builder.AddChar((byte) dir);
			builder.AddThree(DateTime.Now.ToEOTimeStamp());
			builder.AddChar(destX);
			builder.AddChar(destY);

			return m_client.SendPacket(builder);
		}
开发者ID:weedindeed,项目名称:EndlessClient,代码行数:14,代码来源:Walk.cs

示例8: HandleAgree

        public static void HandleAgree(Packet packet, IClient client, bool fromQueue)
        {
            FileType fileType = (FileType)packet.GetChar();

            string fileName;
            InitReply replyCode;

            switch (fileType)
            {
                case FileType.Map:
                    fileName = client.Character.Map.Data.GetPubFile("./tmp/");
                    replyCode = InitReply.FileMap;
                    break;

                case FileType.Item:
                    fileName = "./data/dat001.eif";
                    replyCode = InitReply.FileEIF;
                    break;

                case FileType.NPC:
                    fileName = "./data/dtn001.enf";
                    replyCode = InitReply.FileENF;
                    break;

                case FileType.Spell:
                    fileName = "./data/dsl001.esf";
                    replyCode = InitReply.FileESF;
                    break;

                case FileType.Class:
                    fileName = "./data/dat001.ecf";
                    replyCode = InitReply.FileECF;
                    break;

                default:
                    throw new ArgumentOutOfRangeException("Invalid file type request");
            }

            Packet reply = new Packet(PacketFamily.Init, PacketAction.Init);
            reply.AddChar((byte)replyCode);

            if (fileType != FileType.Map)
                reply.AddChar(1); // File ID

            reply.AddBytes(File.ReadAllBytes(fileName));

            client.Send(reply);
        }
开发者ID:Bart97,项目名称:BeemuSharp,代码行数:48,代码来源:Welcome.cs

示例9: AttackUse

		public bool AttackUse(EODirection direction)
		{
			if (!m_client.ConnectedAndInitialized || !Initialized) return false;

			Packet pkt = new Packet(PacketFamily.Attack, PacketAction.Use);
			pkt.AddChar((byte)direction);
			pkt.AddThree(DateTime.Now.ToEOTimeStamp());

			return m_client.SendPacket(pkt);
		}
开发者ID:weedindeed,项目名称:EndlessClient,代码行数:10,代码来源:Attack.cs

示例10: FacePlayer

        /// <summary>
        /// Change the direction of the currently logged in player
        /// </summary>
        /// <param name="dir">Direction to face the currently logged in player</param>
        /// <returns>True on successful send, false otherwise</returns>
        public bool FacePlayer(EODirection dir)
        {
            if (!m_client.ConnectedAndInitialized || !Initialized)
                return false;

            Packet pkt = new Packet(PacketFamily.Face, PacketAction.Player);
            pkt.AddChar((byte)dir);

            return m_client.SendPacket(pkt);
        }
开发者ID:Vulttwin,项目名称:EndlessClient,代码行数:15,代码来源:Face.cs

示例11: TradeAgree

        /// <summary>
        /// Set the agree flag for a pending trade offer
        /// </summary>
        /// <param name="agree">True to agree, false to un-agree</param>
        public bool TradeAgree(bool agree)
        {
            if (!m_client.ConnectedAndInitialized || !Initialized)
                return false;

            Packet pkt = new Packet(PacketFamily.Trade, PacketAction.Agree);
            pkt.AddChar((byte)(agree ? 1 : 0));

            return m_client.SendPacket(pkt);
        }
开发者ID:Vulttwin,项目名称:EndlessClient,代码行数:14,代码来源:Trade.cs

示例12: TradeAcceptRequest

		/// <summary>
		/// Accept another players request for trade
		/// </summary>
		/// <param name="characterID">ID of the other player's character</param>
		public bool TradeAcceptRequest(short characterID)
		{
			if (!m_client.ConnectedAndInitialized || !Initialized)
				return false;

			Packet pkt = new Packet(PacketFamily.Trade, PacketAction.Accept);
			pkt.AddChar(123); //?
			pkt.AddShort(characterID);

			return m_client.SendPacket(pkt);
		}
开发者ID:weedindeed,项目名称:EndlessClient,代码行数:15,代码来源:Trade.cs

示例13: HandleRequest

        public static void HandleRequest(Packet packet, IClient client, bool fromQueue)
        {
            short count = (short)client.Server.Characters.Count;
            // TODO: Don't list hidden admins

            Packet reply = new Packet(PacketFamily.Init, PacketAction.Init);
            reply.AddChar((byte)EO.InitReply.Players);
            reply.AddShort(count);
            reply.AddBreak();

            foreach (Character character in client.Server.Characters)
            {
                reply.AddBreakString(character.Name);
                reply.AddBreakString(character.Title ?? "");
                reply.AddChar(0); // What's this?
                reply.AddChar((byte)EO.PaperdollIcon.HGM);
                reply.AddChar((byte)character.ClassId);
                reply.AddString("TAG");
                reply.AddBreak();
            }
            client.Send(reply);
        }
开发者ID:Bart97,项目名称:BeemuSharp,代码行数:22,代码来源:Players.cs

示例14: ReportEmote

        public bool ReportEmote(Emote emote)
        {
            //trade/level up happen differently
            if (emote == Emote.Trade || emote == Emote.LevelUp)
                return false; //signal error client-side

            if (!m_client.ConnectedAndInitialized || !Initialized)
                return false;

            Packet pkt = new Packet(PacketFamily.Emote, PacketAction.Report);
            pkt.AddChar((byte)emote);

            return m_client.SendPacket(pkt);
        }
开发者ID:Vulttwin,项目名称:EndlessClient,代码行数:14,代码来源:Emote.cs

示例15: DropItem

        //255 means use character's current location
        public bool DropItem(short id, int amount, byte x = 255, byte y = 255)
        {
            if (!m_client.ConnectedAndInitialized || !Initialized)
                return false;

            Packet pkt = new Packet(PacketFamily.Item, PacketAction.Drop);
            pkt.AddShort(id);
            pkt.AddInt(amount);
            if (x == 255 && y == 255)
            {
                pkt.AddByte(x);
                pkt.AddByte(y);
            }
            else
            {
                pkt.AddChar(x);
                pkt.AddChar(y);
            }

            return m_client.SendPacket(pkt);
        }
开发者ID:Vulttwin,项目名称:EndlessClient,代码行数:22,代码来源:Item.cs


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