public uint Execute(PacketDistributed ipacket) { GC_SYNCALLCARNIVALGOAL packet = (GC_SYNCALLCARNIVALGOAL )ipacket; if (null == packet) { return((uint)PACKET_EXE.PACKET_EXE_ERROR); } //enter your logic GameManager.gameManager.PlayerDataPool.SevenDaysRewardProxy.SetData(packet); return((uint)PACKET_EXE.PACKET_EXE_CONTINUE); }
public void SetData(GC_SYNCALLCARNIVALGOAL data) { int dayIndex = 0; int rewardIndex = 0; for (int i = 0; i < data.GoalflagsCount; i++) { dayIndex = i / 21; rewardIndex = i - dayIndex * 21; SevenDaysRewardVO vo = null; if (dayIndex >= rewardDataList.Count) { vo = new SevenDaysRewardVO(); vo.dayIndex = dayIndex; List <Tab_SevenDaysReward> dataList = GetTabSevenDaysRewardByDay(vo.dayIndex); for (int j = 0; j < dataList.Count; j++) { if (j == 0) { vo.dayTarget = dataList[j]; } else { vo.data[j - 1] = dataList[j]; } } rewardDataList.Add(vo); } else { vo = rewardDataList[dayIndex]; } // rewardIndex == 0 代表是每日目标 if (rewardIndex == 0) { if (data.GoalflagsList[i] == -1) { // claimed day reward vo.dayTargetProgress = -1; } else { // need to calculate vo.dayTargetProgress = 0; } } else { // rewardIndex > 0 代表是每个任务 if (vo.data[rewardIndex - 1] != null) { vo.curProgress[rewardIndex - 1] = data.GoalflagsList[i]; if (vo.curProgress[rewardIndex - 1] == -1 && vo.dayTargetProgress != -1) { vo.dayTargetProgress += 1; } } } } if (reqCallback != null) { reqCallback(); reqCallback = null; } }