コード例 #1
0
    // 请求攻打城池
    public void RequestAttack(int mapPos, long playerID, bool isNpc, int cost)
    {
        PAttack data = new PAttack();

        data.pos        = new PVector();
        data.pos.x      = mapPos;
        data.pos.y      = (int)(isNpc ? eWorldMapType.NPC_CITY_MAP : eWorldMapType.PLAYER_CITY_MAP);
        data.defenserId = playerID;

        NetworkManager.Instance.Send(eCommand.READY_BT_OCCUPY_CITY, data, (buffer) => {
            PBattlVerify ret = Net.Deserialize <PBattlVerify>(buffer);
            if (!Net.CheckErrorCode(ret.errorCode, eCommand.READY_BT_OCCUPY_CITY))
            {
                return;
            }

            BattleManager.Instance.StartBattle(ret.battleId, LogicBattleType.WORLD);

            UserManager.Instance.CostMoney(cost, PriceType.MONEY);
            EventDispatcher.TriggerEvent(EventID.EVENT_UI_MAIN_REFRESH_VALUE);

            // 刷新地图
            // UIManager.Instance.RefreshWindow<UIWorldView>();
        });
    }
コード例 #2
0
ファイル: PVPManager_Msg.cs プロジェクト: fqkw6/AStartTest
    private void OnMsgReadyAthteclicChallenge(byte[] buffer)
    {
        PBattlVerify ret = Net.Deserialize <PBattlVerify>(buffer);

        if (!Net.CheckErrorCode(ret.errorCode, eCommand.READY_ATHTECLIC_CHALLENGE))
        {
            return;
        }

        BattleManager.Instance.StartBattle(ret.battleId, LogicBattleType.PVP);
    }
コード例 #3
0
    // 请求攻打关卡
    public void RequestFight(int levelID)
    {
        Log.Info("RequestFight:  {0}", levelID);
        MissionConstConfig cfg = MissionConstConfigLoader.GetConfig(levelID);

        if (cfg == null)
        {
            return;
        }

        if (UserManager.Instance.SP < cfg.StaminaCost)
        {
            UIUtil.ShowErrMsgFormat("UI_NOT_ENOUGTH_SP");
            return;
        }

        eCommand cmd = eCommand.READY_BT_FUBEN_NORMAL;

        if (cfg.MissionDegree == (int)ChapterType.NORMAL)
        {
            cmd = eCommand.READY_BT_FUBEN_NORMAL;
        }
        else if (cfg.MissionDegree == (int)ChapterType.ELITE)
        {
            cmd = eCommand.READY_BT_FUBEN_ELITE;
        }

        PAttack data = new PAttack();

//        foreach (var item in UserManager.Instance.PVEHeroList) {
//            data.attackerId.Add(item.EntityID);
//        }
//
        if (UserManager.Instance.HeroList.Count <= 0)
        {
            Log.Error("RequestFight error, no hero");
            return;
        }

        for (int i = 0; i < 3; ++i)
        {
            if (i < UserManager.Instance.HeroList.Count)
            {
                data.attackerId.Add(UserManager.Instance.HeroList[i].EntityID);
            }
        }

        data.pos   = new PVector();
        data.pos.x = levelID;

        NetworkManager.Instance.Send(cmd, data, (buffer) =>
        {
            PBattlVerify ret = Net.Deserialize <PBattlVerify>(buffer);
            if (!Net.CheckErrorCode(ret.errorCode, cmd))
            {
                return;
            }

            BattleManager.Instance.StartBattle(ret.battleId, LogicBattleType.PVE);
        });
    }