public static void HandleCashInventory(TownContext context, PacketReader packet) //37 between items { //805309057 = pouch //805308750 if (context.Client.OpeningGoldPouches == true) { int itemID = 0; long itemUUID = 0; packet.Skip(4); byte bNumItemsInPacket = packet.ReadByte(); if (packet.Length > 4800) { while (packet.Position < 4800) { itemID = packet.ReadInt(); itemUUID = packet.ReadLong(); if (itemID == 805309057) { Console.WriteLine("Added gold pouch to queue!"); context.Client.GoldPouches.Enqueue(itemUUID); } packet.Skip(37); } } } }
public static void HandlePlayerMovement(TownContext context, PacketReader packet) { uint playerUUID = packet.ReadUInt(); D3DVector pos1 = new D3DVector(3774.0f, -1048.0f, -2377.0f); //context.Client.session.SendPacket(PacketFactory.MoveCharacter(playerUUID, 179905999, 3, pos1)); //context.Client.session.SendPacket(PacketFactory.StopCharacterMovement(playerUUID, 179907999, pos1)); }
public static void HandleMailList(TownContext context, PacketReader packet) { int[] mailIds = new int[6] { 0, 0, 0, 0, 0, 0 }; packet.Skip(9); byte bNumMails = packet.ReadByte(); int idCounter = 0; if (bNumMails == 0) { Console.WriteLine("No mail in box."); context.Client.OpeningMail = false; context.Client.OpeningGoldPouches = true; context.Client.GoldPouchOpenThread = new Thread(new ThreadStart(context.OpenGoldPouches)); if (context.Client.GoldPouchOpenThread.ThreadState == ThreadState.Running) { return; } else { context.Client.GoldPouchOpenThread.Start(); } } for (int i = 0; i < bNumMails; i++) { mailIds[idCounter] = packet.ReadInt(); idCounter++; if (i != bNumMails) //prevent edge case crash { packet.Skip(142); } } if (context.Client.OpeningMail == true) { Thread.Sleep(500); context.Client.session.SendPacket(PacketFactory.RetrieveBatchMail(mailIds)); Thread.Sleep(500); context.Client.session.SendPacket(PacketFactory.DeleteMail(mailIds)); Thread.Sleep(500); context.Client.session.SendPacket(PacketFactory.OpenMailbox()); Thread.Sleep(500); context.Client.session.SendPacket(PacketFactory.CrashNearbyPlayers(context.Client.Magic)); } }
public static void HandlePlayerSpeak(TownContext context, PacketReader packet) { int type = packet.ReadInt(); string name = packet.ReadWideNullTerminatedString(); packet.Skip(38 - (name.Length * 2) - 2); int len = packet.ReadShort(); string message = packet.ReadString(len); Console.WriteLine("{0}: {1}", name, message); }
public static void HandleSpawnNPC(TownContext context, PacketReader packet) { int NPCUUID = packet.ReadInt(); int npcID = packet.ReadInt(); float X = packet.ReadFloat(); float Y = packet.ReadFloat(); float Z = packet.ReadFloat(); Console.WriteLine("NPC spawned: {0}", npcID); }
public static void HandleQuestNPC(TownContext context, PacketReader packet) { int NPCID = packet.ReadInt(); int questID = packet.ReadInt(); if (questID == 1870) { Console.WriteLine("Got mailbox NPCID"); context.Client.MailboxNPCID = NPCID; } }
public static void HandleMapReady(TownContext context, PacketReader packet) { Console.WriteLine("Got map info"); context.Send(PacketFactory.SendMapReady()); context.Send(PacketFactory.MapSpawn_1()); context.Send(PacketFactory.MapSpawn_2()); context.Send(PacketFactory.LandInField1()); context.Send(PacketFactory.LandInField2()); context.Send(PacketFactory.LandInField3()); context.Send(PacketFactory.LandInField4()); //context.Send(PacketFactory.EnterPortal(-3885.0f, -1624.0f, 5896.0f)); //for udp testing }
public static void HandleFieldInfo(TownContext context, PacketReader packet) { Console.WriteLine("Field Info"); packet.Skip(5); string ip = string.Join(".", packet.ReadBytes(4)); context.Client.UdpPort = packet.ReadShort(); context.Client.TcpPort = packet.ReadInt(); packet.Skip(2); context.Client.Session = packet.ReadBytes(12); //need to send udp handshake here context.Client.session.Disconnect(); context.Client.Migrate(ip, context.Client.TcpPort, ServerType.Field); }
public static void HandleLoadedCashInv(TownContext context, PacketReader packet) { if (context.Client.OpeningMail == true) { context.Client.session.SendPacket(PacketFactory.ChangePlayerState(0x10)); context.Client.session.SendPacket(PacketFactory.OpenMailbox()); } if (context.Client.OpeningGoldPouches == true) { context.Client.GoldPouchOpenThread = new Thread(new ThreadStart(context.OpenGoldPouches)); if (context.Client.GoldPouchOpenThread.ThreadState == ThreadState.Running) { return; } else { context.Client.GoldPouchOpenThread.Start(); } } }
public SightRepository(TownContext context) { Context = context; }
public TownRepository(TownContext context) { Context = context; }
public static void HandleEnterPortal(TownContext context, PacketReader packet) { Console.WriteLine("Entering portal.."); context.Send(PacketFactory.SendStartStage(0xFF, 0)); }
public static void HandleEnterMap(TownContext context, PacketReader packet) { Console.WriteLine("Entering Map..."); context.Send(PacketFactory.enterMap()); }