Esempio n. 1
0
    public void ReqFBFightEnd(MsgPack pack)
    {
        ReqFBFightEnd data = pack.msg.reqFBFightEnd;

        GameMsg msg = new GameMsg {
            cmd = (int)CMD.RspFBFightEnd
        };

        // 校验战斗是否合法
        if (data.win == true)
        {
            if (data.costtime > 0 && data.resthp > 0)
            {
                // 根据对应副本ID获取奖励
                MapCfg     rd = cfgSvc.GetMapCfg(data.fbId);
                PlayerData pd = cacheSvc.GetPlayerDataBySession(pack.session);

                // 任务进度更新
                TaskSys.Instance.CalcTaskPrgs(pd, 2);

                pd.coin    += rd.coin;
                pd.crystal += rd.exp;
                Common.CalcExp(pd, rd.exp);

                if (pd.fuben == data.fbId)
                {
                    pd.fuben += 1;
                }

                // 更新数据库
                if (cacheSvc.UpdatePlayerData(pd.id, pd) == false)
                {
                    msg.err = (int)ErrorCode.UpdateDBError;
                }
                else
                {
                    RspFBFightEnd rspFBFightEnd = new RspFBFightEnd {
                        win      = data.win,
                        fbId     = data.fbId,
                        resthp   = data.resthp,
                        costtime = data.costtime,

                        coin    = pd.coin,
                        lv      = pd.lv,
                        exp     = pd.exp,
                        crystal = pd.crystal,
                        fuben   = pd.fuben
                    };

                    msg.rspFBFightEnd = rspFBFightEnd;
                }
            }
        }
        else
        {
            msg.err = (int)ErrorCode.ClientDataError;
        }

        pack.session.SendMsg(msg);
    }
Esempio n. 2
0
    public void RspFBFightEnd(GameMsg msg)
    {
        RspFBFightEnd rspFBFightEnd = msg.rspFBFightEnd;

        GameRoot.Instance.SetPlayerDataByRspFBFightEnd(rspFBFightEnd);

        battleEndWindow.RefreshWinInfo(rspFBFightEnd.fbid, rspFBFightEnd.costTime, rspFBFightEnd.restHp);
    }
Esempio n. 3
0
 public void SetPlayerDataByFBEnd(RspFBFightEnd data)
 {
     PlayerData.coin    = data.coin;
     PlayerData.lv      = data.lv;
     PlayerData.exp     = data.exp;
     PlayerData.crystal = data.crystal;
     PlayerData.fuben   = data.fuben;
 }
Esempio n. 4
0
 public static void SetPlayerDataByFBEnd(RspFBFightEnd data)
 {
     PlayerData.Coin    = data.Coin;
     PlayerData.Lv      = data.Lv;
     PlayerData.Exp     = data.Exp;
     PlayerData.Crystal = data.Crystal;
     PlayerData.Fuben   = data.Fuben;
 }
Esempio n. 5
0
 public void SetPlayerDataByRspFBFightEnd(RspFBFightEnd rspFBFightEnd)
 {
     PlayerData.coin    = rspFBFightEnd.coin;
     PlayerData.exp     = rspFBFightEnd.exp;
     PlayerData.lv      = rspFBFightEnd.lv;
     PlayerData.crystal = rspFBFightEnd.crystal;
     PlayerData.fuben   = rspFBFightEnd.fuben;
 }
Esempio n. 6
0
    public void ReqFBFightEnd(MsgPack pack)
    {
        ReqFBFightEnd data = (ReqFBFightEnd)pack.msg;

        SCPacketBase msg = new RspFBFightEnd();

        //校验战斗是否合法
        if (data.Win)
        {
            if (data.Costtime > 0 && data.Resthp > 0)
            {
                //根据副本ID获取相应奖励
                MapCfg     rd = cfgSvc.GetMapCfg(data.Fbid);
                PlayerData pd = cacheSvc.GetPlayerDataBySession(pack.session);

                //任务进度数据更新
                TaskSys.Instance.CalcTaskPrgs(pd, 2);

                pd.Coin    += rd.coin;
                pd.Crystal += rd.crystal;
                KDCommon.CalcExp(pd, rd.exp);

                if (pd.Fuben == data.Fbid)
                {
                    pd.Fuben += 1;
                }

                if (!cacheSvc.UpdatePlayerData(pd.Id, pd))
                {
                    msg.error = (int)ErrorCode.UpdateDBError;
                }
                else
                {
                    RspFBFightEnd rspFBFight = new RspFBFightEnd {
                        Win      = data.Win,
                        Fbid     = data.Fbid,
                        Resthp   = data.Resthp,
                        Costtime = data.Costtime,

                        Coin    = pd.Coin,
                        Lv      = pd.Lv,
                        Exp     = pd.Exp,
                        Crystal = pd.Crystal,
                        Fuben   = pd.Fuben
                    };

                    msg = rspFBFight;
                }
            }
        }
        else
        {
            msg.error = (int)ErrorCode.ClientDataError;
        }

        pack.session.SendMsg(msg);
    }
Esempio n. 7
0
    public void RspFBFightEnd(GameMsg msg)
    {
        RspFBFightEnd data = msg.rspFBFightEnd;

        GameRoot.Instance.SetPlayerDataByFBEnd(data);

        battleEndWnd.SetBattleEndData(data.fbId, data.costtime, data.resthp);
        SetBattleEndWndState(FBEndType.Win);
    }
Esempio n. 8
0
    public void ReqFBFightEnd(PackMsg pack)
    {
        ReqFBFightEnd data    = pack.msg.reqFBFightEnd;
        ServerSession session = pack.session;

        GameMsg msg = new GameMsg
        {
            cmd = (int)(CMD.RspFBFFightEnd),
        };
        PlayerData playerData = cacheSvc.GetPlayerDataCache(session);
        MapCfg     mapCfg     = cfgSvc.GetMapCfg(data.fbid);

        if (data.isWin)
        {
            if (data.costTime > 0 && data.restHp > 0)
            {
                TaskSys.Instance.CalcTaskProgs(playerData, 2);

                PECommon.UpdateExp(playerData, mapCfg.exp);
                playerData.coin    += mapCfg.coin;
                playerData.crystal += mapCfg.crystal;
                if (data.fbid == playerData.fuben)
                {
                    playerData.fuben++;
                }

                if (!cacheSvc.UpdatePlayerData(playerData.id, playerData))
                {
                    msg.err = (int)ErrorCode.UpdateDBError;
                }
                else
                {
                    RspFBFightEnd rspFBFightEnd = new RspFBFightEnd
                    {
                        isWin    = data.isWin,
                        fbid     = data.fbid,
                        restHp   = data.restHp,
                        costTime = data.costTime,
                        exp      = playerData.exp,
                        lv       = playerData.lv,
                        coin     = playerData.coin,
                        crystal  = playerData.crystal,
                        fuben    = playerData.fuben,
                    };

                    msg.rspFBFightEnd = rspFBFightEnd;
                }
            }
        }
        else
        {
            msg.err = (int)ErrorCode.UpdateDBError;
        }
        session.SendMsg(msg);
    }
Esempio n. 9
0
    public void RspFBFightEnd(GameMsg msg)
    {
        RspFBFightEnd data = msg.rspFBFightEnd;

        GameRoot.Instance.SetPlayerDataByFBEnd(data);

        battleEndWnd.SetBattleEndData(data.fbid, data.costtime, data.resthp);
        SetBattleEndWndState(FBEndType.Win, true);

        if (msg.pshTaskPrgs != null)
        {
            MainCitySys.Instance.PshTaskPrgs(msg);
        }
    }
    private void RspFBFightEnd(object sender, GameEventArgs e)
    {
        OnReceiveSCPacketBaseEventArgs ne = e as OnReceiveSCPacketBaseEventArgs;

        if (ne.msgID != CMD.RspFBFightEnd)
        {
            return;
        }

        RspFBFightEnd data = (RspFBFightEnd)ne.scPacketBase;

        PECommon.SetPlayerDataByFBEnd(data);

        m_BattleEndFormData.Fbid     = data.Fbid;
        m_BattleEndFormData.CostTime = data.Costtime;
        m_BattleEndFormData.RestHp   = data.Resthp;
        SetBattleEndWndState(FBEndType.Win);
    }
Esempio n. 11
0
    public void ReqFBFightEnd(MsgPack pack)
    {
        ReqFBFightEnd data = pack.msg.reqFBFightEnd;
        GameMsg       msg  = new GameMsg
        {
            cmd = (int)CMD.RspFBFightEnd,
        };

        //校验战斗结果是否合法
        if (data.iswin)
        {
            if (data.costtime > 10 && data.resthp > 0)
            {
                //根据副本ID获取奖励数据
                MapCfg     mapcfg = CfgSvc.Instance.GetMapCfg(data.fbid);
                PlayerData pd     = CacheSvc.Instance.GetPlayerDataBySession(pack.session);

                pd.coin    += mapcfg.coin;
                pd.crystal += mapcfg.crystal;
                PECommon.CalcExp(pd, mapcfg.exp);

                if (pd.mission == data.fbid)
                {
                    pd.mission++;
                }

                if (!CacheSvc.Instance.UpdatePlayerData(pd.id, pd, pack.session))
                {
                    msg.err = (int)ErrorCode.UpdateDBError;
                }
                else
                {
                    RspFBFightEnd rspFBFightEnd = new RspFBFightEnd
                    {
                        iswin    = data.iswin,
                        fbid     = data.fbid,
                        resthp   = data.resthp,
                        costtime = data.costtime,

                        coin    = pd.coin,
                        lv      = pd.lv,
                        exp     = pd.exp,
                        crystal = pd.crystal,
                        fuben   = pd.mission,
                    };

                    msg.rspFBFightEnd = rspFBFightEnd;
                    //更新任务进度数据
                    TaskSys.Instance.CalcTaskPrgs(pd, 2);
                }
            }
            else
            {
                msg.err = (int)ErrorCode.ClientDataError;
            }
        }
        else
        {
            msg.err = (int)ErrorCode.ClientDataError;
        }

        pack.session.SendMsg(msg);
    }