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

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 corrigir este conflito.

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.
© 2026 Aprendiz Mu Online