Beispiel #1
0
        public void TurnInQuest(Client client, byte slot)
        {
            QuestRedeemPacket tqp = (QuestRedeemPacket)Packet.Create(PacketType.QUESTREDEEM);

            tqp.Slot          = new SlotObject();
            tqp.Slot.SlotId   = slot;
            tqp.Slot.ObjectId = client.PlayerData.OwnerObjectId;

            if (slot > 11)
            {
                tqp.Slot.ObjectType = client.PlayerData.BackPack[(slot - 12)];
            }
            else
            {
                tqp.Slot.ObjectType = client.PlayerData.Slot[slot];
            }

            client.SendToServer(tqp);
        }
Beispiel #2
0
        public void OnCommand(Client client, string command, string[] args)
        {
            if (!_dQuest.ContainsKey(client))
            {
                return;
            }

            if (args.Length == 0)
            {
                // The quest can only be turned in when you are in the Daily Quest Room
                if (_dQuest[client].map == "Daily Quest Room")
                {
                    byte slot = 0;
                    if (_dQuest[client].goal != 0)
                    {
                        for (byte i = 0; i < 8; i++)
                        {
                            if (client.PlayerData.Slot[i + 4] == _dQuest[client].goal)
                            {
                                slot = (byte)(i + 4);
                                break;
                            }
                            if (client.PlayerData.BackPack[i] == _dQuest[client].goal)
                            {
                                slot = (byte)(i + 12);
                                break;
                            }
                        }
                    }
                    // If slot does not equal 0 that means we have the item
                    if (slot != 0)
                    {
                        Console.WriteLine("[DailyQuest] Attempting turn in");
                        TurnInQuest(client, slot);
                    }
                    else
                    {
                        Console.WriteLine("[DailyQuest] Requesting Quest Data");
                        client.SendToServer(Packet.Create(PacketType.QUESTFETCHASK));
                    }
                }
                else
                {
                    Console.WriteLine("[DailyQuest] Requesting Quest Data");
                    client.SendToServer(Packet.Create(PacketType.QUESTFETCHASK));
                }
            }
            else if (args[0] == "get")
            {
                Console.WriteLine("[DailyQuest] Requesting Quest Data");
                client.SendToServer(Packet.Create(PacketType.QUESTFETCHASK));
            }
            else if (args[0] == "turnin")
            {
                byte slot;
                if (byte.TryParse(args[1], out slot))
                {
                    QuestRedeemPacket tqp = (QuestRedeemPacket)Packet.Create(PacketType.QUESTREDEEM);
                    tqp.Slot          = new SlotObject();
                    tqp.Slot.SlotId   = slot;
                    tqp.Slot.ObjectId = client.PlayerData.OwnerObjectId;
                    if (slot > 11)
                    {
                        tqp.Slot.ObjectType = client.PlayerData.BackPack[(slot - 12)];
                    }
                    else
                    {
                        tqp.Slot.ObjectType = client.PlayerData.Slot[slot];
                    }
                    tqp.Send = true;

                    Console.WriteLine("[DailyQuest] Attempting turn in");

                    client.SendToServer(tqp);
                }
            }
            else if (args[0] == "settings")
            {
                PluginUtils.ShowGenericSettingsGUI(DailyQuestConfig.Default, "Daily Quest Settings");
            }
        }