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)); } } }
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)); } }
public static void Stage2Responce(PlayerSocket socket, Packet packet) { socket.Send(new Stage2Reply()); }
public static void Stage2(PlayerSocket socket, Packet packet) { socket.Send(new Stage2()); }
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(); }
public static void CompletePatchMap(PlayerSocket socket, Packet packet) { socket.Send(new Unk51Packet()); }