private List <JieriLianXuChargeActivity._AwardInfo> _GetMyActInfoFromDB(GameClient client) { List <JieriLianXuChargeActivity._AwardInfo> result2; if (client == null) { result2 = null; } else if (!this.InActivityTime() && !this.InAwardTime()) { result2 = null; } else { StringBuilder sb = new StringBuilder(); sb.Append(client.ClientData.RoleID); sb.Append(':').Append(client.ClientData.ZoneID); sb.Append(':').Append(this.FromDate.Replace(':', '$')); sb.Append(':').Append(this.ToDate.Replace(':', '$')); sb.Append(':'); foreach (JieriLianXuChargeActivity._ChargeLvl cl in this.chargeLvlList) { sb.Append(cl.Id).Append('_'); } string[] dbRet = Global.ExecuteDBCmd(13214, sb.ToString(), client.ServerId); if (dbRet == null || dbRet.Length != 2) { result2 = null; } else { int[] eachDayChargeArr = this._ParseEachDayCharge(dbRet[0]); Dictionary <int, int> awardFlagDic = this._ParseAwardFlagOfEachLvl(dbRet[1]); List <JieriLianXuChargeActivity._AwardInfo> result = new List <JieriLianXuChargeActivity._AwardInfo>(); foreach (JieriLianXuChargeActivity._ChargeLvl cl in this.chargeLvlList) { JieriLianXuChargeActivity._AwardInfo ai = new JieriLianXuChargeActivity._AwardInfo(); ai.LianXuDay = this._CalcLianXuChargeDay(eachDayChargeArr, cl.NeedCharge); ai.AwardId = cl.Id; ai.AwardFlag = 0; if (awardFlagDic.ContainsKey(cl.Id)) { ai.AwardFlag = awardFlagDic[cl.Id]; } result.Add(ai); } result2 = result; } } return(result2); }
public bool CanGetAnyAward(GameClient client) { bool result; if (client == null || !this.InAwardTime()) { result = false; } else { List <JieriLianXuChargeActivity._AwardInfo> myDataLst = this._GetMyActInfoFromDB(client); if (myDataLst == null) { result = false; } else { using (List <JieriLianXuChargeActivity._AwardInfo> .Enumerator enumerator = myDataLst.GetEnumerator()) { while (enumerator.MoveNext()) { JieriLianXuChargeActivity._AwardInfo info = enumerator.Current; JieriLianXuChargeActivity._ChargeLvl cl = this.chargeLvlList.Find((JieriLianXuChargeActivity._ChargeLvl _cl) => _cl.Id == info.AwardId); if (cl == null) { return(false); } foreach (JieriLianXuChargeActivity._DayAward award in cl.AwardList) { if (award.LianXuDay <= info.LianXuDay && Global.GetIntSomeBit(info.AwardFlag, award.LianXuDay) == 0) { return(true); } } } } result = false; } } return(result); }
public JieriLianXuChargeErrorCode HandleGetAward(GameClient client, int awardId, int day) { JieriLianXuChargeErrorCode result; if (!this.InAwardTime() || client == null) { result = JieriLianXuChargeErrorCode.NotAwardTime; } else { JieriLianXuChargeActivity._ChargeLvl cl = this.chargeLvlList.Find((JieriLianXuChargeActivity._ChargeLvl _cl) => _cl.Id == awardId); if (cl == null) { result = JieriLianXuChargeErrorCode.ConfigError; } else { JieriLianXuChargeActivity._DayAward da = cl.AwardList.Find((JieriLianXuChargeActivity._DayAward _da) => _da.LianXuDay == day); if (da == null) { result = JieriLianXuChargeErrorCode.ConfigError; } else { List <JieriLianXuChargeActivity._AwardInfo> myDataLst = this._GetMyActInfoFromDB(client); if (myDataLst == null) { result = JieriLianXuChargeErrorCode.DBFailed; } else { JieriLianXuChargeActivity._AwardInfo info = myDataLst.Find((JieriLianXuChargeActivity._AwardInfo _info) => _info.AwardId == awardId); if (info == null) { result = JieriLianXuChargeErrorCode.ConfigError; } else if (info.LianXuDay < day || Global.GetIntSomeBit(info.AwardFlag, day) == 1) { result = JieriLianXuChargeErrorCode.NotMeetAwardCond; } else { if (da.AwardGoods != null && da.AwardGoods.GoodsDataList != null && da.AwardGoods.GoodsDataList.Count > 0) { int AwardGoodsCnt = da.AwardGoods.GoodsDataList.Count((GoodsData goods) => Global.IsRoleOccupationMatchGoods(client, goods.GoodsID)); if (!Global.CanAddGoodsNum(client, AwardGoodsCnt)) { return(JieriLianXuChargeErrorCode.NoBagSpace); } } int newAwardFlag = Global.SetIntSomeBit(day, info.AwardFlag, true); if (!this._UpdateAwardFlag2DB(client, awardId, newAwardFlag)) { result = JieriLianXuChargeErrorCode.DBFailed; } else { info.AwardFlag = newAwardFlag; base.GiveAward(client, da.AwardGoods); if (client._IconStateMgr.CheckJieriLianXuCharge(client)) { client._IconStateMgr.AddFlushIconState(14000, client._IconStateMgr.IsAnyJieRiTipActived()); client._IconStateMgr.SendIconStateToClient(client); } result = JieriLianXuChargeErrorCode.Success; } } } } } } return(result); }