Como Corrigir Usuários Online no Site de MU Online Aprendiz Mu Online
Desenvolvimento

Como Corrigir Usuários Online no Site de MU Online

Por

jogadores offline mesmo estando conectados? Existem contas presas como online ou erros na tabela MEMB_STAT? -- você aprenderá a recriar a tabela MEMB_STAT e.

Como corrigir usuários online no site de MU Online

Aprenda a corrigir contas presas, usuários que aparecem online no servidor mas offline no site e erros relacionados à tabela MEMB_STAT.

Problemas que este procedimento pode corrigir

Contas presas Usuário desconecta do jogo, mas continua marcado como online.
Online no jogo e offline no site O site não consegue identificar corretamente os jogadores conectados.
Erro na MEMB_STAT Procedures ou estrutura da tabela incompatíveis com o servidor.
Atenção: antes de alterar tabelas ou procedures, faça um backup completo da database MuOnline.

1. Remover a tabela MEMB_STAT antiga

1

Abra o SQL Server Management Studio, acesse a database MuOnline e localize a tabela:

dbo.MEMB_STAT

Exclua manualmente a tabela antiga.

2. Excluir as procedures antigas

Agora remova as procedures responsáveis por registrar conexão e desconexão.

WZ_CONNECT_MEMB

USE [MuOnline]
GO

IF EXISTS (
    SELECT *
    FROM sys.objects
    WHERE object_id = OBJECT_ID(N'[dbo].[WZ_CONNECT_MEMB]')
    AND type IN (N'P', N'PC')
)
DROP PROCEDURE [dbo].[WZ_CONNECT_MEMB]
GO

WZ_DISCONNECT_MEMB

USE [MuOnline]
GO

IF EXISTS (
    SELECT *
    FROM sys.objects
    WHERE object_id = OBJECT_ID(N'[dbo].[WZ_DISCONNECT_MEMB]')
    AND type IN (N'P', N'PC')
)
DROP PROCEDURE [dbo].[WZ_DISCONNECT_MEMB]
GO

3. Criar novamente a tabela MEMB_STAT

Antes de recriar as procedures, crie a tabela responsável por armazenar o status de conexão das contas.

USE [MuOnline]
GO

CREATE TABLE [dbo].[MEMB_STAT] (
    [memb___id] [nvarchar](10) NULL,
    [ConnectStat] [tinyint] NULL,
    [serverName] [nvarchar](20) NULL,
    [iP] [nvarchar](15) NULL,
    [ConnectTM] [smalldatetime] NULL,
    [DisConnectTM] [smalldatetime] NULL
) ON [PRIMARY]
GO
A tabela deve ser criada antes das novas procedures, pois elas utilizam MEMB_STAT durante a conexão dos usuários.

4. Criar a procedure WZ_CONNECT_MEMB

Esta procedure registra o jogador como conectado e atualiza IP, servidor e horário da conexão.

USE [MuOnline]
GO

CREATE PROCEDURE [dbo].[WZ_CONNECT_MEMB]

    @uid varchar(20),
    @server varchar(20),
    @uip varchar(20)

AS

BEGIN

    SET NOCOUNT ON;

    BEGIN TRANSACTION;

    IF EXISTS (
        SELECT memb___id
        FROM MEMB_STAT WITH (READUNCOMMITTED)
        WHERE memb___id = @uid
    )

    BEGIN

        UPDATE MEMB_STAT

        SET
            ip = @uip,
            connectstat = 1,
            servername = @server,
            ConnectTM = GETDATE()

        WHERE memb___id = @uid;

    END

    ELSE

    BEGIN

        INSERT INTO MEMB_STAT
        (
            memb___id,
            ip,
            connectstat,
            servername,
            ConnectTM
        )

        VALUES
        (
            @uid,
            @uip,
            1,
            @server,
            GETDATE()
        );

    END


    IF(@@ERROR <> 0)

        ROLLBACK TRANSACTION;

    ELSE

        COMMIT TRANSACTION;


    SET NOCOUNT OFF;

END
GO

5. Criar a procedure WZ_DISCONNECT_MEMB

Esta procedure registra o horário da desconexão e altera ConnectStat para 0.

USE [MuOnline]
GO

CREATE PROCEDURE [dbo].[WZ_DISCONNECT_MEMB]

    @uid varchar(20)

AS

BEGIN

    SET NOCOUNT ON;

    BEGIN TRANSACTION;


    IF EXISTS (
        SELECT memb___id
        FROM MEMB_STAT WITH (READUNCOMMITTED)
        WHERE memb___id = @uid
    )

    BEGIN

        UPDATE MEMB_STAT

        SET
            DisConnectTM = GETDATE(),
            connectstat = 0

        WHERE memb___id = @uid;

    END

    ELSE

    BEGIN

        INSERT INTO MEMB_STAT
        (
            memb___id,
            DisConnectTM,
            connectstat
        )

        VALUES
        (
            @uid,
            GETDATE(),
            0
        );

    END


    IF(@@ERROR <> 0)

        ROLLBACK TRANSACTION;

    ELSE

        COMMIT TRANSACTION;


    SET NOCOUNT OFF;

END
GO

6. Testando o sistema

Depois de executar todas as queries:

  • Reinicie os componentes do servidor MU Online.
  • Entre com uma conta no jogo.
  • Abra a tabela MEMB_STAT.
  • Confira se ConnectStat mudou para 1.
  • Desconecte a conta.
  • Confira se ConnectStat voltou para 0.

Para visualizar os registros:

USE [MuOnline]
GO

SELECT *
FROM MEMB_STAT
ORDER BY ConnectTM DESC
GO

Como identificar usuários online no site

Em grande parte dos websites de MU Online, o número de usuários conectados é obtido através da coluna:

ConnectStat

Normalmente:

0 = Offline
1 = Online

Uma consulta simples para contar usuários conectados seria:

SELECT COUNT(*) AS Online
FROM MEMB_STAT
WHERE ConnectStat = 1

Problema resolvido

Com a tabela MEMB_STAT e as procedures WZ_CONNECT_MEMB e WZ_DISCONNECT_MEMB funcionando corretamente, o servidor poderá atualizar as informações de conexão utilizadas pelo site.

Isso pode resolver situações em que contas permanecem presas como online, jogadores conectados aparecem offline no website ou a tabela de status está corrompida ou incompatível com os arquivos do servidor.

Dica: se mesmo após a correção o site continuar exibindo informações incorretas, confira também se o código PHP está consultando a database correta e utilizando a coluna ConnectStat da tabela MEMB_STAT.
Compartilhe este artigo
Aprendiz Mu Online Conhecimento, comunidade e oportunidades para quem vive MU Online.
Estatísticas de acesso Evolução diária do portal
Total de visitas 20.996.304
Visitas hoje 1.534
Visitas ontem 3.414
13/07: 1.264 visitas14/07: 1.187 visitas15/07: 1.376 visitas16/07: 1.219 visitas17/07: 1.328 visitas18/07: 1.146 visitas19/07: 1.392 visitas20/07: 1.241 visitas21/07: 1.357 visitas22/07: 1.174 visitas23/07: 1.298 visitas24/07: 1.960 visitas25/07: 3.414 visitas26/07: 1.534 visitas13/0715/0717/0719/0721/0723/0725/0726/07
Visitas registradas automaticamente.
© 2026 Aprendiz Mu Online