View Full Version : |Suporte| Desconectar conta MuSite
Boa noite a todos, então galera estou com um problema no meu servidor que é o seguinte:
As vezes as contas ficam presas!
Como assim ficam presas? Elas "deslogam" do GameServer, mas ficam conectadas no JoinServer, impedindo os usuários de conectar novamente.
Com isso eu lembrei que o MuSite por padrão tem uma opção de desconectar conta logada, e resolvi testar essa função.
Porém, ela realmente desconecta contas logadas, tanto no GS como no GS_CS, mas quando a conta está "presa" o site dá a mensagem que desconectou, mas não desconecta de verdade.. O player continua sem conseguir logar.
Quando uma conta fica presa, pra eu liberar eu preciso fazer manualmente no JoinServer, e se eu der esse disconnect em alguém, a pessoa recebe uma mensagem na tela, mensagem que também é recebida através dessa ferramente do MuSite.
Aparentemente é a mesma função, mas algo não funciona direito.
Alguém tem uma solução?
Olá colega, boa noite!
Olha, esse erro é bem old, acho que você consegue achar algo mais detalhado, porem...
Refaça as procedures WZ_CONNECT_MEMB e WZ_DISCONNECT_MEMB e a tabela MEMB_STAT.
att's
Olá colega, boa noite!
Olha, esse erro é bem old, acho que você consegue achar algo mais detalhado, porem...
Refaça as procedures WZ_CONNECT_MEMB e WZ_DISCONNECT_MEMB e a tabela MEMB_STAT.
att's
O problema ocorre quando o usuário está movendo do GS pro GS_CS ou do GS_CS pro GS, modificando essas procedures resolve?
Vou tentar pesquisar mais sobre isso.. É um problema antigo, mas a versão que utilizo também é bem antiga infelizmente.
O problema ocorre quando o usuário está movendo do GS pro GS_CS ou do GS_CS pro GS, modificando essas procedures resolve?
Vou tentar pesquisar mais sobre isso.. É um problema antigo, mas a versão que utilizo também é bem antiga infelizmente.
Olá novamente Colega, boa tarde!
Geralmente o JoinServer a partir da Season 2 se eu não estiver enganado, já possui o sistema Auto Disconnect, provavelmente deve ser algo mas antigo que isso então.
Mas, dê uma atenção no que eu disse, que vai ser sucesso.
Vou elaborar melhor o que você deve fazer, partindo do principio que você já deletou as procedures WZ_CONNECT_MEMB, WZ_DISCONNECT_MEMB e a tabela MEMB_STAT.
Vamos lá, e vamos recriar a procedure, WZ_CONNECT_MEMB:
USE [MuOnline] GO
SET ANSI_NULLS OFF GO
SET QUOTED_IDENTIFIER ON GO
CREATE PROCEDURE [dbo].[WZ_CONNECT_MEMB]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
SET NOCOUNT ON IF EXISTS
(SELECT memb___id
FROM MEMB_STAT WITH (READUNCOMMITTED)
[Only registered and activated users can see links]
UPDATE MEMB_STAT
[Only registered and activated users can see links]
connectstat = 1,
[Only registered and activated users can see links]
ConnectTM = (getdate())
[Only registered and activated users can see links]
UPDATE Character
SET MapNumber = '0',
MapPosX='130',
MapPosY='125'
[Only registered and activated users can see links]
ELSE BEGIN
INSERT INTO MEMB_STAT (memb___id, ip, connectstat, servername)
[Only registered and activated users can see links]
[Only registered and activated users can see links]
1,
[Only registered and activated users can see links]
[Only registered and activated users can see links]
ROLLBACK TRANSACTION
ELSE
COMMIT TRANSACTION
SET NOCOUNT OFF END
Criada a procedure WZ_CONNECT_MEMB, vamos recriar agora a procedure WZ_DISCONNECT_MEMB:
USE [MuOnline] GO
SET ANSI_NULLS OFF GO
SET QUOTED_IDENTIFIER ON GO
CREATE PROCEDURE [dbo].[WZ_DISCONNECT_MEMB]
[Only registered and activated users can see links]
SET NOCOUNT ON IF EXISTS
(SELECT memb___id
FROM MEMB_STAT WITH (READUNCOMMITTED)
[Only registered and activated users can see links]
UPDATE MEMB_STAT
SET DisConnectTM = (getdate()),
connectstat = 0
[Only registered and activated users can see links]
INSERT INTO MEMB_STAT (memb___id, DisConnectTM, connectstat)
[Only registered and activated users can see links]
[Only registered and activated users can see links]
ROLLBACK TRANSACTION
ELSE
COMMIT TRANSACTION
SET NOCOUNT OFF END
Agora o ultimo passo é criar novamente a tabela MEMB_STAT:
USE [MuOnline]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[MEMB_STAT](
[memb___id] [nvarchar](10) NOT NULL,
[ConnectStat] [tinyint] NULL,
[ServerName] [nvarchar](20) NULL,
[IP] [nvarchar](15) NULL,
[ConnectTM] [smalldatetime] NULL,
[DisConnectTM] [smalldatetime] NULL,
CONSTRAINT [PK_MEMB_STAT] PRIMARY KEY CLUSTERED
(
[memb___id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[MEMB_STAT] ADD CONSTRAINT [DF_MEMB_STAT_ConnectTM] DEFAULT (getdate()) FOR [ConnectTM]
GO
ALTER TABLE [dbo].[MEMB_STAT] ADD CONSTRAINT [DF_MEMB_STAT_DisConnectTM] DEFAULT (getdate()) FOR [DisConnectTM]
GO
Agora é só realizar seus testes, qualquer coisa, comenta seu resultado.
Obs: Lembrando que WZ_CONNECT_MEMB e WZ_DISCONNECT_MEMB são PROCEDURES, não esqueça desse enorme detalhe.
att's
cronusmaker
25/05/2020, 04:23 PM
não e nas produceres a porta do joinserver tem que estar aberta e algumas funções so funciona se o mu chat server estiver ligado e conectado a porta do joinserver
allam
26/05/2020, 03:14 PM
Minha Opinião
TAAH BUGADO .
[ Ja tive esse problema ] Refiz as procedures, deletei a tabela Memb_Stat e refiz a mesma
Resolveu o meu caso .
[ Conta Presa ] Fator diretamente ligado a fonte de dados ODBC, verifique..
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions Inc. All rights reserved.