public bool TownFolkInteract(NPC Unit) { Hero.Instance.State = HeroState.Interacting; this.Packet.Send(new GameClient.GoToTownFolk(UnitType.NPC, Unit.UID, Unit.X, Unit.Y).Data); this.Packet.Send(new GameClient.RunToTarget(UnitType.NPC, Unit.UID).Data); this.Packet.Send(new GameClient.UnitInteract(UnitType.NPC, Unit.UID).Data); if (!WaitForPacket(GameServerPacket.NPCInfo, 5000)) return false; this.Packet.Send(new GameClient.TownFolkInteract(UnitType.NPC, Unit.UID).Data); return true; } public void TownFolkMenuSelect(NPC Unit, TownFolkMenuItem menu) { Hero.Instance.State = HeroState.Interacting; uint unknown9; if(menu != TownFolkMenuItem.Trade) throw new Exception("Trade is the only supported menu type--unknown 9?"); else // Apparently this only happens during trade selection: unknown9 = ETUtils.BEBitConverter.ToUInt32(new byte[] {0x00, 0x00, 0x00, 0x00}, 0); this.Packet.Send(new GameClient.TownFolkMenuSelect(menu, Unit.UID, unknown9).Data); }