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); } }
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); }
public static long GetLastGiveMeditateTime(GameClient client) { return((long)(GoodsUtil.GetMeditateBagGoodsCnt(client) * Global.GetMingXiangGoodsInterval(client))); }