예제 #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 RspFBFight(GameMsg msg)
    {
        RspFBFight data = msg.rspFBFight;

        GameRoot.instance.SetPlayerDataByFuben(data);
        MainCitySys.instance.maincityWind.SetWindowState(false);
        fubenWind.SetWindowState(false);
        BattleSys.instance.StartBattle(data.id);
    }
예제 #3
0
    public void RspFBFight(GameMsg msg)
    {
        RspFBFight data = msg.rspFBFight;

        GameRoot.Instance.SetPlayerDataByFBStart(data);

        //关闭界面,开始战斗
        SetStateFubenWnd(false);
        MainCitySys.Instance.mainCityWnd.SetWndState(false);

        BattleSys.Instance.StartBattle(data.fbId);
    }
예제 #4
0
    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);
    }
예제 #5
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);
    }
예제 #6
0
    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);
    }
예제 #7
0
    private void RspFBFight(object sender, GameEventArgs e)
    {
        OnReceiveSCPacketBaseEventArgs ne = e as OnReceiveSCPacketBaseEventArgs;

        if (ne.msgID != CMD.RspFBFight)
        {
            return;
        }
        RspFBFight rspFBFight = (RspFBFight)ne.scPacketBase;

        PECommon.SetPlayerDataByFBStart(rspFBFight);
        GameEntry.UI.CloseUIForm(UIFormId.FubenForm);
        if (PECommon.InSecene(SceneId.SceneMainCity))
        {
            m_ProcedureOwner.SetData <VarInt>(Constant.ProcedureData.NextSceneId, (int)SceneId.SceneOrge);
            m_ProcedureOwner.SetData <VarInt>(Constant.ProcedureData.FubenId, rspFBFight.Fbid);
            ChangeState <ProcedureChangeScene>(m_ProcedureOwner);
        }
        else
        {
            ChangeState <ProcedureBattle>(m_ProcedureOwner);
        }
    }
예제 #8
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);
    }
예제 #9
0
파일: GameRoot.cs 프로젝트: RedAWM/DarkGod
 public void SetPlayerDataByFBStart(RspFBFight data)
 {
     PlayerData.power = data.power;
 }
예제 #10
0
 public void SetPlayerDataByFuben(RspFBFight data)
 {
     playerData.power = data.power;
 }
예제 #11
0
 public void SetPlayerDataByRspFBFight(RspFBFight rspFBFight)
 {
     PlayerData.stamina = rspFBFight.stamina;
 }