Пример #1
0
    public void ChangeRate(NetCmdPack pack)
    {
        NetCmdChangeRate cmd        = (NetCmdChangeRate)pack.cmd;
        byte             clientSeat = SceneRuntime.ServerToClientSeat(cmd.Seat);

        if (GetPlayer(clientSeat) == null)
        {
            return;
        }
        byte OldRate = GetPlayer(clientSeat).RateIndex;

        GetPlayer(clientSeat).RateIndex = cmd.RateIndex;
        //Debug.Log(cmd.RateIndex);
        GetPlayer(clientSeat).Launcher.ChangeRate(cmd.RateIndex, cmd.IsCanUseRate);

        //如果是自己切换倍率我们就清掉连击状态
        if (clientSeat == m_MyClientSeat)
        {
            if (m_PlayerList[clientSeat].ComboEft != null)
            {
                if (m_PlayerList[clientSeat].ComboEft.LifeTime >= 0.1f)
                {
                    m_PlayerList[clientSeat].ComboEft.LifeTime = 0;
                }
            }
        }
        //因为玩家切换倍率 我们触发一个事件
        tagGameRateChangeEvent pEvent = new tagGameRateChangeEvent(GetPlayer(clientSeat).Player.playerData.ID, OldRate, cmd.RateIndex);

        MsgEventHandle.HandleMsg(pEvent);
    }
Пример #2
0
    public void ChangeRate(byte rateIndex)
    {
        NetCmdChangeRate ncb = new NetCmdChangeRate();

        ncb.SetCmdType(NetCmdType.CMD_CHANGE_RATE);
        ncb.Seat      = SceneRuntime.ClientToServerSeat(m_PlayerMgr.MyClientSeat);
        ncb.RateIndex = rateIndex;
        Send <NetCmdChangeRate>(ncb);
    }