Example #1
0
        public static void Finish(GameClient Client)
        {
            NpcDialog *Packet = PacketHelper.NpcPacket();

            Packet->OptionType = NpcOptionType.Finish;
            Client.Send(Packet, Packet->Size);
            Memory.Free(Packet);
        }
Example #2
0
        public static void Text(GameClient Client, string Text)
        {
            NpcDialog *Packet = PacketHelper.NpcPacket(Text);

            Packet->OptionType = NpcOptionType.Dialogue;
            Client.Send(Packet, Packet->Size);
            Memory.Free(Packet);
        }
Example #3
0
        public static void Option(GameClient Client, byte OptionID, string Text)
        {
            NpcDialog *Packet = PacketHelper.NpcPacket(Text);

            Packet->OptionType = NpcOptionType.Option;
            Packet->OptionID   = OptionID;
            Client.Send(Packet, Packet->Size);
            Memory.Free(Packet);
        }
Example #4
0
        public static void Avatar(GameClient Client, ushort ID)
        {
            NpcDialog *Packet = PacketHelper.NpcPacket();

            Packet->OptionType = NpcOptionType.Avatar;
            Packet->Extra      = ID;
            Client.Send(Packet, Packet->Size);
            Memory.Free(Packet);
        }
Example #5
0
        public static NpcDialog *NpcPacket(string Input = "")
        {
            int        Size   = 16 + Input.Length;
            NpcDialog *Packet = (NpcDialog *)Memory.Alloc(Size);

            Packet->Size        = (ushort)Size;
            Packet->Type        = 0x7F0;
            Packet->Timer       = (uint)Environment.TickCount;
            Packet->OptionID    = 0xFF;
            Packet->DontDisplay = true;
            if (!string.IsNullOrEmpty(Input))
            {
                byte[] Payload = StringPayload(Input);
                fixed(byte *pPayload = Payload)
                {
                    Memory.Copy(pPayload, Packet->Input, Payload.Length);
                }
            }
            return(Packet);
        }
Example #6
0
        public override void Execute(GameClient Client, byte *pPacket)
        {
            PacketHeader *Header = (PacketHeader *)pPacket;

            if (Header->Type == 0x7EF)
            {
                NpcInitialize *Packet = (NpcInitialize *)pPacket;
                NpcScriptEngine.Initialize(Client, Packet->UID);
            }
            else
            {
                NpcDialog *Packet = (NpcDialog *)pPacket;
                if (Packet->OptionID != 255)
                {
                    string Input = new string(Packet->Input, 1, Packet->Input[0]);
                    NpcScriptEngine.Process(Client, Packet->OptionID, Input);
                }
                else
                {
                    Client.ActiveNPC = 0;
                }
            }
        }