コード例 #1
0
    private void SetCharList()
    {
        NrCharBase[] @char = NrTSingleton <NkCharManager> .Instance.Get_Char();

        NrCharBase char2 = NrTSingleton <NkCharManager> .Instance.GetChar(1);

        int num = 0;

        this.m_nlbCharList.Clear();
        NrCharBase[] array = @char;
        for (int i = 0; i < array.Length; i++)
        {
            NrCharBase nrCharBase = array[i];
            if (nrCharBase != null && nrCharBase.GetPersonID() > 0L && char2.GetPersonID() != nrCharBase.GetPersonID())
            {
                if (num >= this.m_nCurPage * this.m_nNumPerPage && num < (this.m_nCurPage + 1) * this.m_nNumPerPage)
                {
                    NewListItem newListItem = new NewListItem(this.m_nlbCharList.ColumnNum, true, string.Empty);
                    newListItem.SetListItemData(0, nrCharBase.GetCharName(), null, null, null);
                    newListItem.SetListItemData(1, nrCharBase.GetPersonInfo().GetLevel(0L).ToString(), null, null, null);
                    newListItem.Data = nrCharBase.GetCharName();
                    this.m_nlbCharList.Add(newListItem);
                    this.m_nlbCharList.RepositionItems();
                    num++;
                }
                else
                {
                    num++;
                }
            }
        }
        this.m_nTotalPage = num / this.m_nNumPerPage + 1;
    }
コード例 #2
0
    public void Update()
    {
        if (NrTSingleton <CMovingServer> .Instance.IsMovingWorld())
        {
            return;
        }
        if (this.m_tickCount + 1000L > PublicMethod.GetTick())
        {
            return;
        }
        this.m_tickCount = PublicMethod.GetTick();
        if (!this.m_bIsActivity)
        {
            return;
        }
        if (TsPlatform.IsMobile)
        {
            if (Scene.CurScene != Scene.Type.SELECTCHAR && Scene.CurScene != Scene.Type.LOGIN)
            {
                if (NrTSingleton <NkClientLogic> .Instance.IsLoginGameServer())
                {
                    return;
                }
            }
        }
        if (this.m_eAutoReloginState >= NkAutoRelogin.eAUTORELOGIN_STATE.E_AUTORELOGIN_STATE_WAITING_ENCRYPTKEY && !BaseNet_Game.GetInstance().IsSocketConnected())
        {
            this.m_eAutoReloginState = NkAutoRelogin.eAUTORELOGIN_STATE.E_AUTORELOGIN_STATE_RECONNECTING;
        }
        switch (this.m_eAutoReloginState)
        {
        case NkAutoRelogin.eAUTORELOGIN_STATE.E_AUTORELOGIN_STATE_DETECT_DISCONNECT:
            if (BaseNet_Game.GetInstance().IsSocketConnected())
            {
                return;
            }
            if (this.bRequestRelogin)
            {
                return;
            }
            if (!NrTSingleton <FormsManager> .Instance.IsShow(G_ID.WAIT_DLG))
            {
                NrTSingleton <FormsManager> .Instance.LoadForm(G_ID.WAIT_DLG);
            }
            this.m_eAutoReloginState = NkAutoRelogin.eAUTORELOGIN_STATE.E_AUTORELOGIN_STATE_RECONNECTING;
            this.bRequestRelogin     = false;
            if (!NrTSingleton <NkCharManager> .Instance.m_kMyCharInfo.IsBackupPersonInfo())
            {
                NrCharBase @char = NrTSingleton <NkCharManager> .Instance.GetChar(1);

                if (@char != null)
                {
                    NrTSingleton <NkCharManager> .Instance.m_kMyCharInfo.BackupPersonInfo(@char.GetPersonInfo() as NrPersonInfoUser);
                }
            }
            if (TsPlatform.IsMobile && Scene.IsCurScene(Scene.Type.BATTLE))
            {
                NrTSingleton <NkBattleCharManager> .Instance.DeleteAllChar();
            }
            NrTSingleton <FormsManager> .Instance.CloseForm(G_ID.ITEM_BOX_RANDOM_DLG);

            NrTSingleton <FormsManager> .Instance.CloseForm(G_ID.ITEM_BOX_RARERANDOM_DLG);

            TsLog.LogWarning("[NkAutoRelogin] Disconnected", new object[0]);
            SendPacket.GetInstance().SetBlockSendPacket(true);
            break;

        case NkAutoRelogin.eAUTORELOGIN_STATE.E_AUTORELOGIN_STATE_RECONNECTING:
            if (this.bRequestRelogin)
            {
                return;
            }
            TsLog.LogWarning("[NkAutoRelogin] trying to connect to server", new object[0]);
            if (TsPlatform.IsMobile && Scene.IsCurScene(Scene.Type.SELECTCHAR))
            {
                MsgHandler.Handle("OnFirstConnectChar", new object[0]);
            }
            SendPacket.GetInstance().SetBlockSendPacket(false);
            if (!NrTSingleton <FormsManager> .Instance.IsShow(G_ID.WAIT_DLG))
            {
                NrTSingleton <FormsManager> .Instance.LoadForm(G_ID.WAIT_DLG);
            }
            if (BaseNet_Game.GetInstance().ReConnectServer())
            {
                TsLog.LogWarning("[NkAutoRelogin] server connected", new object[0]);
                this.m_eAutoReloginState = NkAutoRelogin.eAUTORELOGIN_STATE.E_AUTORELOGIN_STATE_WAITING_ENCRYPTKEY;
                SendPacket.GetInstance().SetBlockSendPacket(true);
            }
            else
            {
                NrTSingleton <FormsManager> .Instance.CloseForm(G_ID.WAIT_DLG);

                TsLog.LogWarning("[NkAutoRelogin] server not connected", new object[0]);
                if (!Scene.IsCurScene(Scene.Type.BATTLE))
                {
                    this.askReconnectionFailed();
                    SendPacket.GetInstance().SetBlockSendPacket(true);
                }
                else if (!NrTSingleton <FormsManager> .Instance.IsShow(G_ID.BATTLE_RESULT_DLG) && !NrTSingleton <FormsManager> .Instance.IsShow(G_ID.BATTLE_RESULT_PLUNDER_DLG))
                {
                    this.askReconnectionFailed();
                    SendPacket.GetInstance().SetBlockSendPacket(true);
                }
                else
                {
                    this.m_eAutoReloginState = NkAutoRelogin.eAUTORELOGIN_STATE.E_AUTORELOGIN_STATE_RECONNECTING;
                    this.bRequestRelogin     = false;
                    SendPacket.GetInstance().SetBlockSendPacket(true);
                }
            }
            break;

        case NkAutoRelogin.eAUTORELOGIN_STATE.E_AUTORELOGIN_STATE_TRYING_RELOGIN:
        {
            SendPacket.GetInstance().SetBlockSendPacket(false);
            if (!NrTSingleton <FormsManager> .Instance.IsShow(G_ID.WAIT_DLG))
            {
                NrTSingleton <FormsManager> .Instance.LoadForm(G_ID.WAIT_DLG);
            }
            WS_USER_RELOGIN_REQ wS_USER_RELOGIN_REQ = new WS_USER_RELOGIN_REQ();
            wS_USER_RELOGIN_REQ.UID = NrTSingleton <NkCharManager> .Instance.m_kCharAccountInfo.m_UID;
            wS_USER_RELOGIN_REQ.i64AccountWorldInfoKey = NrTSingleton <NkCharManager> .Instance.m_kCharAccountInfo.m_i64AccountWorldInfoKey;
            if (TsPlatform.IsMobile && !TsPlatform.IsEditor)
            {
                TKString.StringChar(TsPlatform.Operator.GetMobileDeviceId(), ref wS_USER_RELOGIN_REQ.szDeviceToken);
            }
            else if (TsPlatform.IsWeb)
            {
                TKString.StringChar(string.Empty, ref wS_USER_RELOGIN_REQ.szDeviceToken);
            }
            wS_USER_RELOGIN_REQ.i8HP_AuthRequest = NrTSingleton <NkCharManager> .Instance.m_kMyCharInfo.HP_AuthRequest;
            SendPacket.GetInstance().SendObject(16777237, wS_USER_RELOGIN_REQ);
            SendPacket.GetInstance().SetBlockSendPacket(true);
            this.m_eAutoReloginState = NkAutoRelogin.eAUTORELOGIN_STATE.E_AUTORELOGIN_STATE_WAITING_RELOGIN;
            TsLog.LogWarning("[NkAutoRelogin] send relogin packet to server", new object[0]);
            break;
        }

        case NkAutoRelogin.eAUTORELOGIN_STATE.E_AUTORELOGIN_STATE_RELOGINED:
            this.m_eAutoReloginState = NkAutoRelogin.eAUTORELOGIN_STATE.E_AUTORELOGIN_STATE_DETECT_DISCONNECT;
            if (!Scene.IsCurScene(Scene.Type.SELECTCHAR))
            {
                if (!Scene.IsCurScene(Scene.Type.LOGIN))
                {
                    GS_CLIENT_RELOGIN_REQ gS_CLIENT_RELOGIN_REQ = new GS_CLIENT_RELOGIN_REQ();
                    gS_CLIENT_RELOGIN_REQ.CharState = 0L;
                    SendPacket.GetInstance().SendObject(eGAME_PACKET_ID.GS_CLIENT_RELOGIN_REQ, gS_CLIENT_RELOGIN_REQ);
                }
            }
            break;
        }
    }