Пример #1
0
        public static GoodsData AddDamonGoodsData(GameClient client, int id, int goodsID, int forgeLevel, int quality, int goodsNum, int binding, int site, string jewelList, string endTime, int addPropIndex, int bornIndex, int lucky, int strong, int ExcellenceProperty, int nAppendPropLev, int nEquipChangeLife)
        {
            GoodsData gd = new GoodsData
            {
                Id                    = id,
                GoodsID               = goodsID,
                Using                 = 0,
                Forge_level           = forgeLevel,
                Starttime             = "1900-01-01 12:00:00",
                Endtime               = endTime,
                Site                  = site,
                Quality               = quality,
                Props                 = "",
                GCount                = goodsNum,
                Binding               = binding,
                Jewellist             = jewelList,
                BagIndex              = 0,
                AddPropIndex          = addPropIndex,
                BornIndex             = bornIndex,
                Lucky                 = lucky,
                Strong                = strong,
                ExcellenceInfo        = ExcellenceProperty,
                AppendPropLev         = nAppendPropLev,
                ChangeLifeLevForEquip = nEquipChangeLife
            };

            DamonMgr.AddDamonGoodsData(client, gd, true);
            return(gd);
        }
Пример #2
0
 public static void InitDemonGoodsDataList(GameClient client)
 {
     if (null == client.ClientData.DamonGoodsDataList)
     {
         client.ClientData.DamonGoodsDataList = Global.sendToDB <List <GoodsData>, string>(204, string.Format("{0}:{1}", client.ClientData.RoleID, 5000), client.ServerId);
         if (client.ClientData.DamonGoodsDataList == null || client.ClientData.DamonGoodsDataList.Count == 0)
         {
             client.ClientData.DamonGoodsDataList = new List <GoodsData>();
             DamonMgr.AddOldDamonGoodsData(client);
         }
     }
     JingLingQiYuanManager.getInstance().RefreshProps(client, true);
 }
Пример #3
0
        /// <summary>
        /// 初始化列表
        /// </summary>
        public static void InitDemonGoodsDataList(GameClient client)
        {
            if (null == client.ClientData.DamonGoodsDataList)
            {
                client.ClientData.DamonGoodsDataList = Global.sendToDB <List <GoodsData>, string>((int)TCPGameServerCmds.CMD_GETGOODSLISTBYSITE, string.Format("{0}:{1}", client.ClientData.RoleID, (int)SaleGoodsConsts.UsingDemonGoodsID), client.ServerId);

                //这样做能够保证gamedb的请求每次客户端登录后最多一次
                if (null == client.ClientData.DamonGoodsDataList || client.ClientData.DamonGoodsDataList.Count == 0)
                {
                    client.ClientData.DamonGoodsDataList = new List <GoodsData>();
                    DamonMgr.AddOldDamonGoodsData(client);
                }
            }

            JingLingQiYuanManager.getInstance().RefreshProps(client);
        }
Пример #4
0
        public static bool CanAddGoodsToDamonCangKu(GameClient client, int goodsID, int newGoodsNum, int binding, string endTime = "1900-01-01 12:00:00", bool canUseOld = true)
        {
            bool result;

            if (client.ClientData.DamonGoodsDataList == null)
            {
                result = true;
            }
            else
            {
                int gridNum = Global.GetGoodsGridNumByID(goodsID);
                gridNum = Global.GMax(gridNum, 1);
                bool findOldGrid  = false;
                int  totalGridNum = 0;
                lock (client.ClientData.DamonGoodsDataList)
                {
                    for (int i = 0; i < client.ClientData.DamonGoodsDataList.Count; i++)
                    {
                        totalGridNum++;
                        if (canUseOld && gridNum > 1)
                        {
                            if (client.ClientData.DamonGoodsDataList[i].GoodsID == goodsID && client.ClientData.DamonGoodsDataList[i].Binding == binding && Global.DateTimeEqual(client.ClientData.DamonGoodsDataList[i].Endtime, endTime))
                            {
                                if (client.ClientData.DamonGoodsDataList[i].GCount + newGoodsNum <= gridNum)
                                {
                                    findOldGrid = true;
                                    break;
                                }
                            }
                        }
                    }
                }
                if (findOldGrid)
                {
                    result = true;
                }
                else
                {
                    int totalMaxGridCount = DamonMgr.GetDamonBagCapacity(client);
                    result = (totalGridNum < totalMaxGridCount);
                }
            }
            return(result);
        }
Пример #5
0
        public static void AddOldDamonGoodsData(GameClient client)
        {
            if (null != client.ClientData.GoodsDataList)
            {
                List <GoodsData> listDamon = new List <GoodsData>();
                int i = 0;
                while (i < client.ClientData.GoodsDataList.Count)
                {
                    int nCategories = Global.GetGoodsCatetoriy(client.ClientData.GoodsDataList[i].GoodsID);
                    if (nCategories >= 9 && nCategories <= 10)
                    {
                        if (client.ClientData.GoodsDataList[i].Using > 0 && client.ClientData.GoodsDataList[i].Site == 0)
                        {
                            int      nBagIndex = Global.GetIdleSlotOfDamonGoods(client);
                            string[] dbFields  = null;
                            string   strcmd    = Global.FormatUpdateDBGoodsStr(new object[]
                            {
                                client.ClientData.RoleID,
                                client.ClientData.GoodsDataList[i].Id,
                                client.ClientData.GoodsDataList[i].Using,
                                "*",
                                "*",
                                "*",
                                5000,
                                "*",
                                "*",
                                client.ClientData.GoodsDataList[i].GCount,
                                "*",
                                nBagIndex,
                                "*",
                                "*",
                                "*",
                                "*",
                                "*",
                                "*",
                                "*",
                                "*",
                                "*",
                                "*",
                                "*"
                            });
                            TCPProcessCmdResults dbRequestResult = Global.RequestToDBServer(TCPClientPool.getInstance(), TCPOutPacketPool.getInstance(), 10006, strcmd, out dbFields, client.ServerId);
                            if (dbRequestResult != TCPProcessCmdResults.RESULT_FAILED)
                            {
                                if (dbFields.Length > 0 && Convert.ToInt32(dbFields[1]) >= 0)
                                {
                                    DamonMgr.AddDamonGoodsData(client, client.ClientData.GoodsDataList[i], false);
                                    client.ClientData.GoodsDataList[i].Site     = 5000;
                                    client.ClientData.GoodsDataList[i].BagIndex = nBagIndex;
                                    listDamon.Add(client.ClientData.GoodsDataList[i]);
                                }
                            }
                        }
                    }
IL_2AC:
                    i++;
                    continue;
                    goto IL_2AC;
                }
                for (i = 0; i < listDamon.Count; i++)
                {
                    Global.RemoveGoodsData(client, listDamon[i]);
                }
                JingLingQiYuanManager.getInstance().RefreshProps(client, true);
            }
        }