public override void SendInteract(Player Plr, InteractMenu Menu) { Plr.QtsInterface.HandleEvent(Objective_Type.QUEST_SPEACK_TO, Spawn.Entry, 1); if (!IsDead) { switch (InteractType) { case GameData.InteractType.INTERACTTYPE_DYEMERCHANT: { string Text = WorldMgr.GetCreatureText(Spawn.Entry); if (Menu.Menu == 9) // List des objets a vendre { WorldMgr.SendVendor(Plr, Spawn.Entry); } else if (Menu.Menu == 11) // Achat d'un item { WorldMgr.BuyItemVendor(Plr, Menu, Spawn.Entry); } else if (Menu.Menu == 14) // Vend un Item { Plr.ItmInterface.SellItem(Menu); } else if (Menu.Menu == 36) // Rachette un item { Plr.ItmInterface.BuyBackItem(Menu); } else { PacketOut Out = new PacketOut((byte)Opcodes.F_INTERACT_RESPONSE); Out.WriteByte(0); Out.WriteUInt16(Oid); Out.WriteUInt16(0); Out.WriteByte(0x40); // Dye Out.WriteByte(0x22); // Vendors Out.WriteByte(0); Out.WritePascalString(Text); Out.WriteByte(0); Plr.SendPacket(Out); } } break; case GameData.InteractType.INTERACTTYPE_FLIGHT_MASTER: { byte[] data = new byte[62] { 0x01, 0xF4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x42, 0x39, 0x00, 0x00, 0x00, 0xC0, 0xE3, 0x03, 0x39, 0xA0, 0xD1, 0x6F, 0x00, 0xC8, 0xA8, 0x1D, 0x37, 0x28, 0x94, 0x79, 0x33, 0xB2, 0x24, 0x32, 0x44, 0xDB, 0xD7, 0x1C, 0x5D, 0x18, 0x5D, 0xDD, 0x1C, 0xA4, 0x0D, 0x00, 0x00, 0xA8, 0x6B, 0x21, 0x36, 0x11, 0x00, 0x00, 0x00, 0xC8, 0xD0, 0xAF, 0x3A, 0x78, 0xD1, 0x6F, 0x00 }; UInt16 Counts = 1; PacketOut Out = new PacketOut((byte)Opcodes.F_INTERACT_RESPONSE); Out.WriteUInt16(0x0A12); foreach (Zone_Taxi Taxi in WorldMgr.GetTaxis(Plr)) { Out.WriteUInt16(Counts); Out.WriteByte(2); Out.WriteUInt16(Taxi.Info.Price); Out.WriteUInt16(Taxi.Info.ZoneId); Out.WriteByte(1); ++Counts; } Out.Write(data); Plr.SendPacket(Out); } break; case GameData.InteractType.INTERACTTYPE_TRAINER: { if (Menu.Menu == 7) { PacketOut Out = new PacketOut((byte)Opcodes.F_INTERACT_RESPONSE); Out.WriteByte(5); Out.WriteByte(0x0F); Out.WriteByte(6); Out.WriteUInt16(0); Plr.SendPacket(Out); } else { PacketOut Out = new PacketOut((byte)Opcodes.F_INTERACT_RESPONSE); Out.WriteByte(0); Out.WriteUInt16(Oid); if (Plr.Realm == GameData.Realms.REALMS_REALM_ORDER) { Out.WritePacketString(@"|00 00 00 21 00 94 48 61 69 6C |.........!..Hail| |20 64 65 66 65 6E 64 65 72 20 6F 66 20 74 68 65 | defender of the| |20 45 6D 70 69 72 65 21 20 20 59 6F 75 72 20 70 | Empire! Your p| |65 72 66 6F 72 6D 61 6E 63 65 20 69 6E 20 62 61 |erformance in ba| |74 74 6C 65 20 69 73 20 74 68 65 20 6F 6E 6C 79 |ttle is the only| |20 74 68 69 6E 67 20 74 68 61 74 20 6B 65 65 70 | thing that keep| |73 20 74 68 65 20 68 6F 72 64 65 73 20 6F 66 20 |s the hordes of | |43 68 61 6F 73 20 61 74 20 62 61 79 2E 20 4C 65 |Chaos at bay. Le| |74 27 73 20 62 65 67 69 6E 20 79 6F 75 72 20 74 |t's begin your t| |72 61 69 6E 69 6E 67 20 61 74 20 6F 6E 63 65 21 |raining at once!| |00 |. |"); } else { Out.WritePacketString(@"|00 00 00 21 00 AA 4C 65 61 72 |.........!..Lear| |6E 20 74 68 65 73 65 20 6C 65 73 73 6F 6E 73 20 |n these lessons | |77 65 6C 6C 2C 20 66 6F 72 20 67 61 69 6E 69 6E |well, for gainin| |67 20 74 68 65 20 66 61 76 6F 72 20 6F 66 20 74 |g the favor of t| |68 65 20 52 61 76 65 6E 20 67 6F 64 20 73 68 6F |he Raven god sho| |75 6C 64 20 62 65 20 6F 66 20 75 74 6D 6F 73 74 |uld be of utmost| |20 69 6D 70 6F 72 74 61 6E 63 65 20 74 6F 20 79 | importance to y| |6F 75 2E 20 4F 74 68 65 72 77 69 73 65 2E 2E 2E |ou. Otherwise...| |20 54 68 65 72 65 20 69 73 20 61 6C 77 61 79 73 | There is always| |20 72 6F 6F 6D 20 66 6F 72 20 6D 6F 72 65 20 53 | room for more S| |70 61 77 6E 20 77 69 74 68 69 6E 20 6F 75 72 20 |pawn within our | |72 61 6E 6B 73 2E 00 |....... |"); } Plr.SendPacket(Out); } } break; case GameData.InteractType.INTERACTTYPE_BANKER: { PacketOut Out = new PacketOut((byte)Opcodes.F_INTERACT_RESPONSE); Out.WriteByte(0x1D); Out.WriteByte(0); Plr.SendPacket(Out); } break; default: QtsInterface.HandleInteract(Plr, this, Menu); break; } ; } base.SendInteract(Plr, Menu); }
public override void SendInteract(Player Plr, InteractMenu Menu) { Log.Success("SendInteract", "" + Name + " -> " + Plr.Name + ",Type=" + InteractType); Plr.QtsInterface.HandleEvent(Objective_Type.QUEST_SPEACK_TO, Spawn.Entry, 1); if (!IsDead) { switch (InteractType) { case GameData.InteractType.INTERACTTYPE_DYEMERCHANT: { string Text = WorldMgr.GetCreatureText(Spawn.Entry); if (Menu.Menu == 9) // List des objets a vendre { WorldMgr.SendVendor(Plr, Spawn.Entry); } else if (Menu.Menu == 11) // Achat d'un item { WorldMgr.BuyItemVendor(Plr, Menu, Spawn.Entry); } else if (Menu.Menu == 14) // Vend un Item { Plr.ItmInterface.SellItem(Menu); } else if (Menu.Menu == 36) // Rachette un item { Plr.ItmInterface.BuyBackItem(Menu); } else { PacketOut Out = new PacketOut((byte)Opcodes.F_INTERACT_RESPONSE); Out.WriteByte(0); Out.WriteUInt16(Oid); Out.WriteUInt16(0); Out.WriteByte(0x40); // Dye Out.WriteByte(0x22); // Vendors Out.WriteByte(0); Out.WritePascalString(Text); Out.WriteByte(0); Plr.SendPacket(Out); } } break; case GameData.InteractType.INTERACTTYPE_FLIGHT_MASTER: { byte[] data = new byte[62] { 0x01, 0xF4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x42, 0x39, 0x00, 0x00, 0x00, 0xC0, 0xE3, 0x03, 0x39, 0xA0, 0xD1, 0x6F, 0x00, 0xC8, 0xA8, 0x1D, 0x37, 0x28, 0x94, 0x79, 0x33, 0xB2, 0x24, 0x32, 0x44, 0xDB, 0xD7, 0x1C, 0x5D, 0x18, 0x5D, 0xDD, 0x1C, 0xA4, 0x0D, 0x00, 0x00, 0xA8, 0x6B, 0x21, 0x36, 0x11, 0x00, 0x00, 0x00, 0xC8, 0xD0, 0xAF, 0x3A, 0x78, 0xD1, 0x6F, 0x00 }; UInt16 Counts = 1; Zone_Info Info; PacketOut Out = new PacketOut((byte)Opcodes.F_INTERACT_RESPONSE); Out.WriteUInt16(0x0A12); foreach (Zone_Taxi Taxi in WorldMgr.GetTaxis(Plr)) { Out.WriteUInt16(Counts); Out.WriteByte(2); Out.WriteUInt16(Taxi.Info.Price); Out.WriteUInt16(Taxi.Info.ZoneId); Out.WriteByte(1); ++Counts; } Out.Write(data); Plr.SendPacket(Out); } break; default: QtsInterface.HandleInteract(Plr, Menu); break; } ; } base.SendInteract(Plr, Menu); }