Example #1
0
 /// <summary> 推送活动结束</summary>
 public void CommandStart(SiegeResultType type)
 {
     Variable.Activity.Siege.IsOpen = false;   //关闭活动入口
     new Share.Activity().PushActivity(0, 14); //推送关闭图标
     SendAllEndAndExit(type);
     SendEndNotice(type);
 }
Example #2
0
        /// <summary> 活动公告结束跑马灯推送 </summary>
        private void SendEndNotice(SiegeResultType type)
        {
            switch (type)
            {
            case SiegeResultType.DOGFALL: { SendPlayersNoyice(100008, ""); break; }

            case SiegeResultType.EAST_WIN: { SendPlayersNoyice(100006, "东军"); break; }

            case SiegeResultType.EAST_LOSE: { SendPlayersNoyice(100006, "西军"); break; }
            }
        }
Example #3
0
        /// <summary> 区分玩家应获得奖励 </summary>
        /// <param name="model">玩家活动数据</param>
        /// <param name="type">活动胜利类型</param>
        private List <RewardVo> ConvertRewardVos(SiegePlayer model, SiegeResultType type)
        {
            var list = new List <RewardVo>();

            switch (type)
            {
            case SiegeResultType.DOGFALL: { list = GetRewardVos(model.fame, Convert.ToInt32(ActivityRewardType.DRAW)); break; }

            case SiegeResultType.EAST_LOSE: { list = GetRewardVos(model.fame, model.player_camp == (int)CampType.East ? Convert.ToInt32(ActivityRewardType.LOSE) : Convert.ToInt32(ActivityRewardType.WIN)); break; }

            case SiegeResultType.EAST_WIN: { list = GetRewardVos(model.fame, model.player_camp == (int)CampType.East ? Convert.ToInt32(ActivityRewardType.WIN) : Convert.ToInt32(ActivityRewardType.LOSE)); break; }

            default: { break; }
            }
            return(list);
        }
Example #4
0
        /// <summary> Send 所有活动玩家 活动结束和活动退出 </summary>
        /// <param name="type">活动结果枚举类型</param>
        private void SendAllEndAndExit(SiegeResultType type)
        {
            foreach (var item in Variable.Activity.Siege.PlayerData)
            {
                var token = new CancellationTokenSource();
                Task.Factory.StartNew(m =>
                {
                    var temp = m as SiegePlayer;
                    if (temp == null)
                    {
                        return;
                    }

                    var reward = ConvertRewardVos(temp, type);          //计算玩家活动结束奖励所得

                    (new Share.Message()).BuildMessagesSend(temp.user_id, "美浓活动奖励", "美浓活动奖励", reward);

                    (new Share.DaMing()).CheckDaMing(temp.user_id, (int)DaMingType.美浓攻略);
                    if (!Variable.OnlinePlayer.ContainsKey(temp.user_id))
                    {
                        return;
                    }
                    var session = Variable.OnlinePlayer[temp.user_id] as TGGSession;

                    if (Common.GetInstance().IsActivities(temp.user_id))                                 //是否在活动中
                    {
                        var aso = EXIT.GetInstance().CommandStart(session);                              //退出活动(会推送其他玩家 该玩家离开美浓活动场景)
                        Common.GetInstance().TrainingSiegeEndSend(session, aso, (int)SiegeCommand.EXIT); //(SendData)退出活动
                    }
                    var asobj = new ASObject(BuildData((int)type, reward));
                    Common.GetInstance().TrainingSiegeEndSend(session, asobj, (int)SiegeCommand.PUSH_END);//Send活动结束
                    token.Cancel();
                }, item, token.Token);
            }

            Variable.Activity.Siege.PlayerData    = new List <SiegePlayer>();
            Variable.Activity.Siege.BossCondition = new List <CampCondition>();
        }