Exemple #1
0
        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);
        }
Exemple #2
0
    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;
        }
    }