コード例 #1
0
    public void ReqFBFight(MsgPack pack)
    {
        ReqFBFight data = (ReqFBFight)pack.msg;

        SCPacketBase msg   = new RspFBFight();
        PlayerData   pd    = cacheSvc.GetPlayerDataBySession(pack.session);
        int          power = cfgSvc.GetMapCfg(data.Fbid).power;

        if (pd.Fuben < data.Fbid)
        {
            msg.error = (int)ErrorCode.ClientDataError;
        }
        else if (pd.Power < power)
        {
            msg.error = (int)ErrorCode.LackPower;
        }
        else
        {
            pd.Power -= power;
            if (cacheSvc.UpdatePlayerData(pd.Id, pd))
            {
                RspFBFight rspFBFight = new RspFBFight {
                    Fbid  = data.Fbid,
                    Power = pd.Power
                };
                msg = rspFBFight;
            }
            else
            {
                msg.error = (int)ErrorCode.UpdateDBError;
            }
        }
        pack.session.SendMsg(msg);
    }
コード例 #2
0
    public void ReqFBFight(MsgPack pack)
    {
        ReqFBFight data = pack.msg.reqFBFight;

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

        MapCfg     mcfg = cfgRvc.GetMapCfgData(data.id);
        PlayerData pd   = cacheSvc.GetPlayerDataBySession(pack.session);


        if (pd.fuben < data.id)
        {
            //玩家记录副本ID少于客户端发过来的副本ID
            //客户端数据异常
            msg.err = (int)ErrorCode.ClientDataError;
        }
        else if (pd.power < mcfg.power)
        {
            //体力不足
            msg.err = (int)ErrorCode.LackPower;
        }
        else
        {
            //扣除体力
            pd.power -= mcfg.power;
            if (!cacheSvc.UpdataPlayerData(pd.id, pd))
            {
                //数据库写入失败
                msg.err = (int)ErrorCode.UpdateDBError;
            }
            else
            {
                TaskSys.Instance.CalcTaskPrgs(pd, 2);
                msg.rspFBFight = new RspFBFight()
                {
                    id    = data.id,
                    power = pd.power
                };
            }
        }

        pack.session.SendMsg(msg);
    }
コード例 #3
0
ファイル: FubenSys.cs プロジェクト: XANkui/Server_DarkGod_XAN
    public void ReqFBFight(MsgPack pack)
    {
        ReqFBFight data = pack.msg.reqFBFight;

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

        PlayerData playerData = cacheSvc.GetPlayerDataBySession(pack.session);
        int        power      = cfgSvc.GetMapCfg(data.fbId).power;

        // 判断发过来的副本id是否合法
        if (data.fbId > playerData.fuben)
        {
            msg.err = (int)ErrorCode.ClientDataError;
        }
        else if (playerData.power < power)
        {
            msg.err = (int)ErrorCode.LackPower;
        }
        else
        {
            playerData.power -= power;
            if (cacheSvc.UpdatePlayerData(playerData.id, playerData) == false)
            {
                msg.err = (int)ErrorCode.UpdateDBError;
            }
            else
            {
                RspFBFight rspFBFight = new RspFBFight {
                    fbId  = data.fbId,
                    power = playerData.power
                };

                msg.rspFBFight = rspFBFight;
            }
        }

        pack.session.SendMsg(msg);
    }
コード例 #4
0
    public void ReqFBFight(PackMsg pack)
    {
        ReqFBFight    data    = pack.msg.reqFBFight;
        ServerSession session = pack.session;

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

        PlayerData playerData = cacheSvc.GetPlayerDataCache(session);
        MapCfg     mapCfg     = cfgSvc.GetMapCfg(data.fbid);

        if (playerData.fuben < data.fbid)
        {
            msg.err = (int)ErrorCode.ClientDataError;
        }
        else if (playerData.stamina < mapCfg.costStamina)
        {
            msg.err = (int)ErrorCode.LackStamia;
        }
        else
        {
            playerData.stamina -= mapCfg.costStamina;
            if (!cacheSvc.UpdatePlayerData(playerData.id, playerData))
            {
                msg.err = (int)ErrorCode.UpdateDBError;
            }
            else
            {
                RspFBFight rspFBFight = new RspFBFight
                {
                    fbid    = data.fbid,
                    stamina = playerData.stamina,
                };
                msg.rspFBFight = rspFBFight;
            }
        }
        session.SendMsg(msg);
    }
コード例 #5
0
ファイル: FubenSys.cs プロジェクト: imgoul/DarkGodServer
    public void ReqFBFight(MsgPack pack)
    {
        ReqFBFight data = pack.Msg.reqFBFight;

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

        PlayerData pd    = cacheSvc.GetPlayerDataBySession(pack.Session);
        int        power = cfgSvc.GetMapCfg(data.fbid).power;

        if (pd.fuben < data.fbid)
        {
            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))
            {
                RspFBFight rspFbFight = new RspFBFight()
                {
                    fbid  = data.fbid,
                    power = pd.power
                };
                msg.rspFBFight = rspFbFight;
            }
            else
            {
                msg.err = (int)ErrorCode.UpdateDBError;
            }
        }

        pack.Session.SendMsg(msg);
    }
コード例 #6
0
    public void ReqFBFight(MsgPack pack)
    {
        ReqFBFight data = pack.msg.reqFBFight;
        GameMsg    msg  = new GameMsg
        {
            cmd = (int)CMD.RspFBFight,
        };
        PlayerData pd     = CacheSvc.Instance.GetPlayerDataBySession(pack.session);
        MapCfg     mapcfg = CfgSvc.Instance.GetMapCfg(data.fbid);

        if (data.fbid > pd.mission)
        {
            msg.err = (int)ErrorCode.ClientDataError;
        }
        else if (pd.power < mapcfg.power)
        {
            msg.err = (int)ErrorCode.LackPower;
        }
        else
        {
            pd.power -= mapcfg.power;
            if (!CacheSvc.Instance.UpdatePlayerData(pd.id, pd, pack.session))
            {
                msg.err = (int)ErrorCode.UpdateDBError;
            }
            else
            {
                RspFBFight rspFBFight = new RspFBFight
                {
                    fbid  = data.fbid,
                    power = pd.power,
                };
                msg.rspFBFight = rspFBFight;
            }
        }
        pack.session.SendMsg(msg);
    }