Ejemplo n.º 1
0
        public void RequestBattleEnd(MsgPack msgPack)
        {
            RequestBattleEnd data = msgPack.Msg.RequestBattleEnd;

            NetMsg netMsg = new NetMsg
            {
                cmd = (int)Command.ResponseBattleEnd
            };

            //校验战斗是否合法
            if (data.IsWin)
            {
                if (data.CostTime > 0 && data.RestHp > 0)
                {
                    //获取战斗副本相应的奖励
                    MapCfg     mapCfg     = _resCfgSvc.GetMapData(data.BattleId);
                    PlayerData playerData = _cacheSvc.GetPlayerDataBySession(msgPack.Session);

                    TaskSys.Instance.CalcTaskPrangs(playerData, 2);
                    playerData.Coin    += mapCfg.Coin;
                    playerData.Crystal += mapCfg.Crystal;

                    PeRoot.CalcExp(playerData, mapCfg.Exp);

                    if (playerData.Battle == data.BattleId)
                    {
                        playerData.Battle += 1;
                    }

                    if (!_cacheSvc.UpdatePlayerData(playerData.Id, playerData))
                    {
                        netMsg.err = (int)ErrorCode.UpdateDbError;
                    }
                    else
                    {
                        ResponseBattleEnd battleEnd = new ResponseBattleEnd
                        {
                            IsWin    = data.IsWin,
                            Battle   = data.BattleId,
                            CostTime = data.CostTime,
                            RestHp   = data.RestHp,


                            Coin     = playerData.Coin,
                            Level    = playerData.Level,
                            Exp      = playerData.Exp,
                            Crystal  = playerData.Crystal,
                            BattleId = playerData.Battle,
                        };
                        netMsg.ResponseBattleEnd = battleEnd;
                    }
                }
            }
            else
            {
                netMsg.err = (int)ErrorCode.ClientDataError;
            }
            msgPack.Session.SendMsg(netMsg);
        }
Ejemplo n.º 2
0
        public IEnumerator RequestBattleEnd(List <int> character_ids, List <int> die_ids, int star)
        {
            var     url  = "battle/battle_end";
            WWWForm form = new WWWForm();

            form.AddField("character_ids", ImplodeList <int>(character_ids));
            form.AddField("die_ids", ImplodeList <int>(die_ids));
            form.AddField("star", star);
            HttpClient client = new HttpClient();

            yield return(App.Util.SceneManager.CurrentScene.StartCoroutine(client.Send(url, form)));

            ResponseBattleEnd response = client.Deserialize <ResponseBattleEnd>();

            this.battleRewards = response.battle_rewards;
            App.Util.LSharp.LSharpScript.Instance.UpdateBattleList();
        }