コード例 #1
0
        public static void GetMobileLook(PlayerSocket socket, Packet packet)
        {
            byte playerID = packet.ReadByte();

            if (playerID == 0)
            {
                return;
            }
            if (Listener.Instance.PlayerSockets[playerID] != null)
            {
                IMobile m = Listener.Instance.PlayerSockets[playerID].Mobile;
                if (m != null)
                {
                    socket.Send(new GetPlayerLookPacket(m));
                }
            }
        }
コード例 #2
0
        public static void GetNPCMobileInfo(PlayerSocket socket, Packet packet)
        {
            byte mapID    = packet.ReadByte();
            int  mobileID = packet.ReadInt16();
            IMap map      = World.GetMapByID(mapID);

            if (map == null)
            {
                return;
            }

            IMobile m = map.GetMobile(mobileID);

            //if (m != null && m.Name != "-vendor-")
            if (m != null)
            {
                socket.Send(new NPCLookPacket(m));
            }
        }
コード例 #3
0
 public static void Stage2Responce(PlayerSocket socket, Packet packet)
 {
     socket.Send(new Stage2Reply());
 }
コード例 #4
0
 public static void Stage2(PlayerSocket socket, Packet packet)
 {
     socket.Send(new Stage2());
 }
コード例 #5
0
        public static void Unknown64(PlayerSocket socket, Packet packet)
        {
            byte val1 = packet.ReadByte();
            byte marketTab;
            byte itemID;
            int  mailMessageID = 0;

            switch (val1)
            {
            case 0x00:    //Mail
            {
                socket.Mobile.SendMailList();
                break;
            }

            case 0x01:    //Read Message
            {
                mailMessageID += packet.ReadByte() * 32768;
                mailMessageID += packet.ReadByte();
                mailMessageID += packet.ReadByte() * 256;
                socket.Mobile.ShowMailMessage(mailMessageID);
                break;
            }

            case 0x02:    //GetItem from Message
            {
                mailMessageID += packet.ReadByte() * 32768;
                mailMessageID += packet.ReadByte();
                mailMessageID += packet.ReadByte() * 256;
                byte itemNum = packet.ReadByte();
                socket.Mobile.GetItemFromMail(mailMessageID, itemNum);
                break;
            }

            case 0x03:    //Compose new Mail Message
            {
                List <int> mailItems = new List <int>(4);
                for (int i = 0; i < 4; i++)
                {
                    byte locationID = packet.ReadByte();        //Item1
                    mailItems[i] = locationID;
                }
                byte   subjectLen = packet.ReadByte();
                byte   toLen      = packet.ReadByte();
                int    contentLen = packet.ReadInt16();
                string subject    = packet.ReadString(subjectLen);
                string toName     = packet.ReadString(toLen);
                string content    = packet.ReadString(contentLen);
                socket.Mobile.SendMail(toName, subject, content, mailItems);
                break;
            }

            case 0x20:    //Market
            {
                marketTab = packet.ReadByte();
                //state.Mobile.SendPopupMessage(String.Format("Open Market {0}",marketTab));
                socket.Mobile.ShowMarket(marketTab);
                break;
            }

            case 0x21:    //Sell Item in Market
            {
                marketTab = packet.ReadByte();
                int itemLocation = packet.ReadByte();
                int totalCost    = packet.ReadInt32();
                socket.Mobile.SellItemOnMarket(marketTab, itemLocation, totalCost);
                break;
            }

            case 0x22:    //Buy Market
            {
                marketTab = packet.ReadByte();
                byte unk1 = packet.ReadByte();        //0x07 might be map ID???
                itemID = packet.ReadByte();
                socket.Mobile.BuyItemOnMarket(marketTab, itemID, unk1);
                break;
            }

            case 0x43:
                int messageTypes = packet.ReadInt16();
                if (messageTypes == 0)
                {
                    socket.Mobile.UnsubscribeToMessage(MessageSubscriptionType.None);
                }
                else
                {
                    foreach (MessageSubscriptionType mst in (MessageSubscriptionType[])Enum.GetValues(typeof(MessageSubscriptionType)))
                    {
                        int imst = (int)mst;
                        if ((messageTypes & imst) == imst)
                        {
                            socket.Mobile.UnsubscribeToMessage(mst);
                            Console.WriteLine("Client: {0}: UnSubscribe Text messages {1}", socket, mst);
                        }
                    }
                }
                break;

            case 0x44:
                //state.Mobile.SendPopupMessage("64 Packet 44");
                socket.Send(new Unk64ReplyPacket(socket.Mobile));
                break;

            case 0x48:
                string accountName = packet.ReadNullString();
                World.AccountManager.LostPassword(socket, accountName);
                break;

            default:
                Console.WriteLine("Client: {0}: Unhandled packet 0x64 sub 0x{1:X2}", socket, val1);
                break;
            }
            //byte val2 = pvSrc.ReadByte();
        }
コード例 #6
0
 public static void CompletePatchMap(PlayerSocket socket, Packet packet)
 {
     socket.Send(new Unk51Packet());
 }