Пример #1
0
    public void ReqDungeonFight(MsgPack pack)
    {
        ReqDungeonFight data = pack.msg.reqDungeonFight;

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

        PlayerData pd    = cacheSvc.GetPlayerDataBySession(pack.session);
        int        power = cfgSvc.GetMapCfg(data.dungeonId).power;

        if (pd.dungeon < data.dungeonId)   // 关卡进度是否合法
        {
            msg.err = (int)ErrorCode.ClientDataError;
        }
        else if (pd.power < power)
        {
            msg.err = (int)ErrorCode.LackPower;
        }
        else
        {
            pd.power -= power;
            if (cacheSvc.UpdatePlayerData(pd.id, pd))
            {
                RspDungeonFight rspDungeonFight = new RspDungeonFight {
                    dungeonId = data.dungeonId,
                    power     = pd.power
                };
                msg.rspDungeonFight = rspDungeonFight;
            }
            else
            {
                msg.err = (int)ErrorCode.UpdateDBError;
            }
        }
        pack.session.SendMsg(msg);
    }
Пример #2
0
 /// <summary>
 /// 进入副本后的体力变化
 /// </summary>
 /// <param name="data"></param>
 public void SetPlayerDataByDungeonStart(RspDungeonFight data)
 {
     PlayerData.power = data.power;
 }