/// <summary> /// Shows the bank interface. /// </summary> /// <param name="character">The character to show interface for.</param> public static void Show(Character character) { character.Session.SendData(new StringPacketComposer("Bank of " + GameEngine.World.Name, 762, 24).Serialize()); character.Session.SendData(new ConfigPacketComposer(563, 4194304).Serialize()); character.Session.SendData(new ConfigPacketComposer(1248, -2013265920).Serialize()); character.Session.SendData(new ConfigPacketComposer(115, character.Bank.Noting ? 1 : 0).Serialize()); character.Session.SendData(new ConfigPacketComposer(305, character.Bank.Inserting ? 1 : 0).Serialize()); GenericPacketComposer gpc = new GenericPacketComposer(); gpc.SetOpcode(223); gpc.AppendShort(496); gpc.AppendLEShortA(0); gpc.AppendLEShort(73); gpc.AppendLEShort(762); gpc.AppendLEShort(1278); gpc.AppendLEShort(20); character.Session.SendData(gpc.Serialize()); gpc = new GenericPacketComposer(); gpc.SetOpcode(223); gpc.AppendShort(27); gpc.AppendLEShortA(0); gpc.AppendLEShort(0); gpc.AppendLEShort(763); gpc.AppendLEShort(1150); gpc.AppendLEShort(18); character.Session.SendData(gpc.Serialize()); character.Bank.Refresh(); Frames.SendInterface(character, 762, true); Frames.SendInventoryInterface(character, 763); Frames.SendHideTabs(character); }
/// <summary> /// Handles the protocol request. /// </summary> /// <param name="request">The instance requesting the protcol handle.</param> public void Handle(LoginRequest request) { request.Buffer.Skip(1); int nameHash = request.Buffer.ReadByte(); long key = ((long)(new Random().NextDouble() * 99999999D) << 32) + (long)(new Random().NextDouble() * 99999999D); GenericPacketComposer session = new GenericPacketComposer(); session.AppendByte(0); session.AppendLong(key); request.Buffer = null; // Dump current buffer. request.NameHash = nameHash; // Save name hash. request.Connection.SendData(session.Serialize()); }
/// <summary> /// Handles the world map interface. /// </summary> /// <param name="character">The character to handle for.</param> /// <param name="packetId">The packet id of the button.</param> /// <param name="buttonId">The button to handle.</param> /// <param name="buttonId2">The secondary button to handle.</param> public void HandleButton(Character character, int packetId, int buttonId, int buttonId2) { switch (buttonId) { case 9: { character.Session.SendData(new WindowPanePacketComposer(548).Serialize()); PacketComposer composer = new GenericPacketComposer(); composer.SetOpcode(173); character.Session.SendData(composer.Serialize()); break; } } }