Beispiel #1
0
    public void InitForArena(InGameManager.IntervalTransferInfo transferInfo = null)
    {
        //IL_001e: Unknown result type (might be due to invalid IL or missing references)
        //IL_0072: Unknown result type (might be due to invalid IL or missing references)
        Self self = null;

        if (transferInfo != null)
        {
            InGameManager.IntervalTransferInfo.PlayerInfo playerInfo = transferInfo.playerInfoList[0];
            self             = (CreatePlayer(0, playerInfo.createInfo, true, Vector3.get_zero(), 0f, playerInfo.transferInfo, null) as Self);
            self.taskChecker = playerInfo.taskChecker;
            if (self.controller != null)
            {
                self.controller.SetEnableControll(false, ControllerBase.DISABLE_FLAG.BATTLE_START);
            }
        }
        if (self == null)
        {
            self = CreateSelf(0, Vector3.get_zero(), 0f);
            if (self != null && self.controller != null)
            {
                self.controller.SetEnableControll(false, ControllerBase.DISABLE_FLAG.BATTLE_START);
            }
        }
        if (self == null)
        {
            return;
        }
    }
Beispiel #2
0
    public void Init(InGameManager.IntervalTransferInfo transfer_info = null)
    {
        //IL_007e: Unknown result type (might be due to invalid IL or missing references)
        //IL_0141: Unknown result type (might be due to invalid IL or missing references)
        //IL_016d: Unknown result type (might be due to invalid IL or missing references)
        //IL_01cf: Unknown result type (might be due to invalid IL or missing references)
        //IL_0290: Unknown result type (might be due to invalid IL or missing references)
        //IL_02f1: Unknown result type (might be due to invalid IL or missing references)
        Self self = null;

        if (transfer_info != null)
        {
            int i = 0;
            for (int count = transfer_info.playerInfoList.Count; i < count; i++)
            {
                InGameManager.IntervalTransferInfo.PlayerInfo playerInfo = transfer_info.playerInfoList[i];
                Player     player     = null;
                CoopClient coopClient = null;
                if (MonoBehaviourSingleton <CoopManager> .IsValid() && !playerInfo.isSelf && playerInfo.coopClientId != 0)
                {
                    coopClient = MonoBehaviourSingleton <CoopManager> .I.coopRoom.clients.FindByClientId(playerInfo.coopClientId);
                }
                if (playerInfo.isSelf)
                {
                    player = CreatePlayer(0, playerInfo.createInfo, true, Vector3.get_zero(), 0f, playerInfo.transferInfo, null);
                    if (player == null)
                    {
                        continue;
                    }
                    self             = (player as Self);
                    self.taskChecker = playerInfo.taskChecker;
                }
                else
                {
                    bool flag = false;
                    if (MonoBehaviourSingleton <CoopManager> .IsValid())
                    {
                        if (MonoBehaviourSingleton <CoopManager> .I.coopRoom.isOfflinePlay)
                        {
                            flag = true;
                        }
                        else if (coopClient != null && coopClient.isLeave && MonoBehaviourSingleton <CoopManager> .I.isStageHost)
                        {
                            flag = true;
                        }
                    }
                    if (flag || playerInfo.coopMode == StageObject.COOP_MODE_TYPE.NONE || playerInfo.coopMode == StageObject.COOP_MODE_TYPE.ORIGINAL)
                    {
                        player = CreatePlayer(playerInfo.id, playerInfo.createInfo, false, Vector3.get_zero(), 0f, playerInfo.transferInfo, null);
                        if (player == null)
                        {
                            continue;
                        }
                        player.SetAppearPosGuest(Vector3.get_zero());
                        if (coopClient != null && playerInfo.isCoopPlayer)
                        {
                            coopClient.SetPlayerID(player.id);
                        }
                    }
                    else
                    {
                        PlayerLoader.OnCompleteLoad callback = delegate(object o)
                        {
                            //IL_0008: Unknown result type (might be due to invalid IL or missing references)
                            Player player2 = o as Player;
                            player2.get_gameObject().SetActive(false);
                            MonoBehaviourSingleton <StageObjectManager> .I.AddCacheObject(player2);
                        };
                        player = CreatePlayer(playerInfo.id, playerInfo.createInfo, false, Vector3.get_zero(), 0f, playerInfo.transferInfo, callback);
                        if (player == null)
                        {
                            continue;
                        }
                        if (coopClient != null)
                        {
                            coopClient.SetCachePlayer(player.id, playerInfo.isCoopPlayer);
                        }
                    }
                    if (flag || playerInfo.isNpcController)
                    {
                        if (!(player.controller is NpcController))
                        {
                            player.AddController <NpcController>();
                        }
                        if (QuestManager.IsValidInGameDefenseBattle())
                        {
                            player.DestroyObject();
                        }
                    }
                }
                if (player.controller != null)
                {
                    player.controller.SetEnableControll(false, ControllerBase.DISABLE_FLAG.BATTLE_START);
                }
            }
        }
        if (self == null)
        {
            self = CreateSelf(0, Vector3.get_zero(), 0f);
            if (self != null && self.controller != null)
            {
                self.controller.SetEnableControll(false, ControllerBase.DISABLE_FLAG.BATTLE_START);
            }
        }
        if (!(self == null))
        {
            if (QuestManager.IsValidInGame() && !MonoBehaviourSingleton <InGameManager> .I.IsNeedInitBoss())
            {
                self.SetAppearPosGuest(Vector3.get_zero());
            }
            if (FieldManager.IsValidInGameNoQuest() || MonoBehaviourSingleton <QuestManager> .I.IsExplore() || MonoBehaviourSingleton <QuestManager> .I.IsWaveMatch())
            {
                self.SetAppearPosField();
            }
        }
    }