Exemplo n.º 1
0
        public static void ProcessMeditateGoods(GameClient client)
        {
            int GetRewardTime = Global.GetMingXiangGoodsInterval(client);
            int givenGoodsCnt = GoodsUtil.GetMeditateBagGoodsCnt(client);
            int totalTime     = client.ClientData.MeditateTime;
            int leaveTime     = Global.GMax(0, totalTime - givenGoodsCnt * GetRewardTime);

            if (leaveTime >= GetRewardTime)
            {
                int cnt      = leaveTime / GetRewardTime;
                int addCount = 0;
                for (int i = 0; i < cnt; i++)
                {
                    if (givenGoodsCnt + 1 > Data.OfflineRW_ItemLimit)
                    {
                        LogManager.WriteLog(LogTypes.Info, string.Format("角色冥想背包超过{2}了,角色ID = {0} ,角色roleid = {1}", client.strUserID, client.ClientData.RoleID, Data.OfflineRW_ItemLimit), null, true);
                        break;
                    }
                    if (null != GoodsUtil.GiveOneMeditateGood(client))
                    {
                        givenGoodsCnt++;
                        addCount++;
                    }
                }
                LogManager.WriteLog(LogTypes.Info, string.Format("玩家登陆的时候,冥想背包物品添加{3}个,现有{2}个,角色ID = {0} ,角色roleid = {1}", new object[]
                {
                    client.strUserID,
                    client.ClientData.RoleID,
                    givenGoodsCnt,
                    addCount
                }), null, true);
            }
        }
Exemplo n.º 2
0
        public static GoodsData GiveOneMeditateGood(GameClient client)
        {
            int       packageID = Global.GetMingXiangPackageID(client);
            GoodsData result;

            if (0 == packageID)
            {
                result = null;
            }
            else
            {
                List <GoodsData> AwardGoodsList = GoodsBaoXiang.FetchGoodListBaseFallPacketID(client, packageID, 1, FallAlgorithm.BaoXiang);
                if (AwardGoodsList == null || AwardGoodsList.Count == 0)
                {
                    result = null;
                }
                else
                {
                    GoodsData tmpGoodsData = AwardGoodsList[0];
                    tmpGoodsData.Site = 1;
                    int dbRet = GoodsUtil.AddGoodsDBCommand(client, tmpGoodsData, false, 0, "冥想", true);
                    tmpGoodsData.Id = dbRet;
                    int totalTime = Global.GetRoleParamsInt32FromDB(client, "MeditateTime");
                    EventLogManager.AddRoleMeditateEvent(client, (long)(totalTime / 1000), GoodsUtil.GetMeditateBagGoodsCnt(client), Global.NewGoodsDataPropString(tmpGoodsData));
                    result = tmpGoodsData;
                }
            }
            return(result);
        }
Exemplo n.º 3
0
 public static long GetLastGiveMeditateTime(GameClient client)
 {
     return((long)(GoodsUtil.GetMeditateBagGoodsCnt(client) * Global.GetMingXiangGoodsInterval(client)));
 }