Example #1
0
        public int HandlePacket(GameClient client, GSPacketIn packet)
        {
            int id = packet.ReadInt();

            if (client.Player.PlayerCharacter.AnswerSite < id)
            {
                List <ItemInfo> infos = null;
                if (DropInventory.AnswerDrop(id, ref infos) == true)
                {
                    client.Player.PlayerCharacter.AnswerSite = id;
                    if (infos != null)
                    {
                        int gold      = 0;
                        int money     = 0;
                        int giftToken = 0;
                        foreach (ItemInfo info in infos)
                        {
                            ItemInfo.FindSpecialItemInfo(info, ref gold, ref money, ref giftToken);
                            if (info != null)
                            {
                                if (info.Template.BagType == eBageType.PropBag)
                                {
                                    client.Player.MainBag.AddTemplate(info, info.Count);
                                }
                            }
                            client.Player.AddGold(gold);
                            client.Player.AddMoney(money);
                            client.Player.AddGiftToken(giftToken);
                            LogMgr.LogMoneyAdd(LogMoneyType.Award, LogMoneyType.Award_Answer, client.Player.PlayerCharacter.ID, money, client.Player.PlayerCharacter.Money, gold, 0, 0, "", "", "");
                        }
                    }
                }
            }
            //GSPacketIn pkg = packet.Clone();
            //pkg.ClearContext();
            //pkg.WriteByte(0);
            ////pkg.WriteInt(0);
            //for (int i = 0; i < 100; i++)
            //{
            //    pkg.WriteByte(1);
            //}
            //pkg.WriteInt(client.Player.PlayerCharacter.AnswerSite);
            //client.Player.Out.SendTCP(pkg);
            return(1);
        }
        public int HandlePacket(GameClient client, GSPacketIn packet)
        {
            byte b    = packet.ReadByte();
            int  num  = packet.ReadInt();
            bool flag = false;

            if (b == 1)
            {
                flag = packet.ReadBoolean();
            }
            if (b == 1)
            {
                List <ItemInfo> list = null;
                if (DropInventory.AnswerDrop(num, ref list))
                {
                    int value = 0;
                    int num2  = 0;
                    int num3  = 0;
                    int num4  = 0;
                    foreach (ItemInfo current in list)
                    {
                        ItemInfo.FindSpecialItemInfo(current, ref value, ref num2, ref num3, ref num4);
                        if (current != null && current.Template.BagType == eBageType.PropBag)
                        {
                            client.Player.MainBag.AddTemplate(current, current.Count);
                        }
                        client.Player.AddGold(value);
                        client.Player.AddMoney(num2);
                        client.Player.AddGiftToken(num3);
                        LogMgr.LogMoneyAdd(LogMoneyType.Award, LogMoneyType.Award_Answer, client.Player.PlayerCharacter.ID, num3, client.Player.PlayerCharacter.Money, num2, 0, 0, 0, "", "", "");
                    }
                }
                if (flag)
                {
                    client.Player.PlayerCharacter.openFunction((Step)num);
                }
            }
            if (b == 2)
            {
                client.Player.PlayerCharacter.openFunction((Step)num);
            }
            client.Player.UpdateAnswerSite(num);
            return(1);
        }
Example #3
0
        public int HandlePacket(GameClient client, GSPacketIn packet)
        {
            byte unknow = packet.ReadByte();
            int  id     = packet.ReadInt();

            if (client.Player.PlayerCharacter.AnswerSite < id)
            {
                List <ItemInfo> infos = null;
                client.Player.PlayerCharacter.AnswerSite = id;
                if (DropInventory.AnswerDrop(id, ref infos))
                {
                    int gold      = 0;
                    int money     = 0;
                    int giftToken = 0;
                    int medal     = 0;
                    foreach (ItemInfo info in infos)
                    {
                        ItemInfo.FindSpecialItemInfo(info, ref gold, ref money, ref giftToken, ref medal);
                        //if ((info != null) && (info.Template.BagType == eBageType.PropBag))
                        //{
                        client.Player.MainBag.AddTemplate(info, info.Count);
                        //}
                        client.Player.AddGold(gold);
                        client.Player.AddMoney(money);
                        client.Player.AddGiftToken(giftToken);
                        client.Player.AddMedal(medal);
                        LogMgr.LogMoneyAdd(LogMoneyType.Award, LogMoneyType.Award_Answer, client.Player.PlayerCharacter.ID, giftToken, client.Player.PlayerCharacter.Money, money, 0, 0, 0, "", "", "");
                    }
                }
            }

            GSPacketIn pkg = packet.Clone();

            pkg.ClearContext();
            pkg.WriteInt(client.Player.PlayerCharacter.AnswerSite);
            for (int i = 0; i < client.Player.PlayerCharacter.AnswerSite; i++)
            {
                pkg.WriteByte(unknow);
            }

            client.Player.Out.SendTCP(pkg);
            return(1);
        }