public int GetChapterRewardStateByAwardIndex(int chapter, int index) { if (!DataDBSMainChapter.ContainsKey(chapter)) { return(ERewardState.NOT_RECEIVE); } XMainChapter vo = DataDBSMainChapter.GetDataById(chapter); DWorld db = ReadCfgWorld.GetDataById(chapter); int starNum = GetChapterStarNumByChapter(chapter); if (starNum < db.Stars[index]) { return(ERewardState.NOT_RECEIVE); } int s = 0; switch (index) { case 0: s = vo.Award1; break; case 1: s = vo.Award2; break; case 2: s = vo.Award3; break; } return(s == 1 ? ERewardState.HAS_RECEIVE : ERewardState.CAN_RECEIVE); }
private void OnAck_GetChapterAward(MessageRecv obj) { System.IO.MemoryStream ms = new System.IO.MemoryStream(obj.Data); AckGetChapterAward ack = Serializer.Deserialize <AckGetChapterAward>(ms); int chapter = ack.Chapter; int awardIndex = ack.Index; DWorld db = ReadCfgWorld.GetDataById(chapter); XMainChapter xc; if (!DataDBSMainChapter.ContainsKey(chapter)) { xc = new XMainChapter(); xc.Id = chapter; } else { xc = DataDBSMainChapter.GetDataById(chapter); } switch (awardIndex) { case 0: xc.Award1 = 1; break; case 1: xc.Award2 = 1; break; case 3: xc.Award3 = 1; break; } DataDBSMainChapter.Update(chapter, xc); int awardID = db.Awards[awardIndex]; List <KStruct> list = AwardModule.Instance.GetAwardDataByID(awardID); for (int i = 0; i < list.Count; i++) { GTDataManager.Instance.AddNewItem(list[i].Id, list[i].Num); } GTEventCenter.FireEvent(GTEventID.TYPE_GET_CHAPTERAWARD); }