[APORTE] Solucion a Pones Clave y Login y se queda pegado
Página 1 de 1.
[APORTE] Solucion a Pones Clave y Login y se queda pegado
Si te paza esto y nisiquiera en el tema de errores mas comunes ala hora de crear el server te funco ? ps aca la solucion ( parte fue sacada de otro foro ) pero quiero ayudarlos por q ami me paso y da rabia q da reiniciar el server cada 15 minutos , ps aca la solucion :
Empesamos:
1-Abrir administrador de Tareas
2-Buscar DataServer hacer click derecho sobre DataServer y poner Establecer Afinidad.
paso1f.jpg
Se les abrira algo como esto
paso2e.jpgpaso2e.jpg
y donde dice CPU1 lo sacamos
3- Hacemos lo mismo con:
Dataserver.exe
Dataserver.exe
GameServer.exe
JoinServer.exe
4-Abrir de nuevo el administrador de tareas y poner procesos y seleccionar dataserver y apretar click derecho en Dataserver.exe y poner Establecer Prioridad les aparecera algo como esto y seleccionan En Tiempo Real
Les quedaria algo asi:
paso3m.jpg
Bien una vez echo esto ami se me empeso a solucionar pero por la dudas vamos a sacar lo del error Dataserver StandBy
para eso abrimos el administrador de consultas y ponemos
Codigo:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[MEMB_STAT_GJ]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[MEMB_STAT_GJ]
GO
CREATE TABLE [dbo].[MEMB_STAT_GJ] (
[memb___id] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[name] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[ServerName] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[ServerCode] [int] NULL ,
[IP] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[TM] [datetime] NULL
) ON [PRIMARY]
GO
Luego apretamos F5 nos tiene que decir que los code se cargaron correctamente o algo asi luego apretamos CTRL+N
y se nos abrira otra ventana y ponemos esto:
Codigo:
use MuOnline
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[WZ_CONNECT_MEMB]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[WZ_CONNECT_MEMB]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS OFF
GO
CREATE PROCEDURE WZ_CONNECT_MEMB
@uid varchar(10),
@server varchar(20),
@uip varchar(20)
AS
Begin
BEGIN TRANSACTION
SET NOCOUNT ON
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)
valueS (@uid,@uip,1,@server )
End
IF(@@Error <> 0 )
ROLLBACK TRANSACTION
ELSE
COMMIT TRANSACTION
--??????
IF EXISTS ( SELECT UserID FROM UserLogin WITH (READUNCOMMITTED) WHERE UserID = @uid )
Begin
UPDATE UserLogin
SET LoginIP=@uip,Server=@server,LoginTM = (getdate()),OnlineSec=0,GiveMoney=0,logoutTM=null
WHERE UserID = @uid
End
ELSE
Begin
INSERT INTO UserLogin (UserID,LoginIP,Server,LoginTM,OnlineSec,GiveMoney )
values (@uid,@uip,@server,getdate(),0,0)
End
--?????????????
declare @SmallestZS int
declare @LargestZS int
declare @Type int
select @Type=Type from SetServerList where ServerName=@server
if (@Type>0) begin
select @SmallestZS=Smallest_ZS from SetServerList where ServerName=@server
select @LargestZS=Largest_ZS from SetServerList where ServerName=@server
if not (@SmallestZS is null) begin
update character set ctlcode=(ctlcode | 0x81) where [name] not in
(
SELECT NAME FROM WEB_ZS WHERE (ACC = @uid) AND (ZSCS >= @LargestZS) AND (ZSCS <= @SmallestZS)
) AND (AccountID = @uid)
end
end
DELETE FROM MEMB_STAT_GJ WHERE (memb___id = @uid and servername=@server)
update character set ctlcode=(ctlcode | 0x81) where [name] in
(
SELECT name FROM MEMB_STAT_GJ WHERE (memb___id = @uid)
) AND (AccountID = @uid)
SET NOCOUNT OFF
End
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
apretan F5 epseran que se les carge igual que el otro y ponen serrar y guardan los bloc de notas en cualquier lado apagan el server lo vuelven a prender y listo yo creo que con esos dos cambios ya se tendria que solucionar
IMPORTANTE:
*Los primeros 3 pasos se hacen siempre cuando se abre el server!
*Lo de dataserver stanby con una vez nomas ya hace falta
Se que canza cada ves q abres el server pero si guardas los codigos del sql sera en menos de 59 segundos que lo haces ..
Empesamos:
1-Abrir administrador de Tareas
2-Buscar DataServer hacer click derecho sobre DataServer y poner Establecer Afinidad.
paso1f.jpg
Se les abrira algo como esto
paso2e.jpgpaso2e.jpg
y donde dice CPU1 lo sacamos
3- Hacemos lo mismo con:
Dataserver.exe
Dataserver.exe
GameServer.exe
JoinServer.exe
4-Abrir de nuevo el administrador de tareas y poner procesos y seleccionar dataserver y apretar click derecho en Dataserver.exe y poner Establecer Prioridad les aparecera algo como esto y seleccionan En Tiempo Real
Les quedaria algo asi:
paso3m.jpg
Bien una vez echo esto ami se me empeso a solucionar pero por la dudas vamos a sacar lo del error Dataserver StandBy
para eso abrimos el administrador de consultas y ponemos
Codigo:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[MEMB_STAT_GJ]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[MEMB_STAT_GJ]
GO
CREATE TABLE [dbo].[MEMB_STAT_GJ] (
[memb___id] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[name] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[ServerName] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[ServerCode] [int] NULL ,
[IP] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[TM] [datetime] NULL
) ON [PRIMARY]
GO
Luego apretamos F5 nos tiene que decir que los code se cargaron correctamente o algo asi luego apretamos CTRL+N
y se nos abrira otra ventana y ponemos esto:
Codigo:
use MuOnline
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[WZ_CONNECT_MEMB]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[WZ_CONNECT_MEMB]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS OFF
GO
CREATE PROCEDURE WZ_CONNECT_MEMB
@uid varchar(10),
@server varchar(20),
@uip varchar(20)
AS
Begin
BEGIN TRANSACTION
SET NOCOUNT ON
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)
valueS (@uid,@uip,1,@server )
End
IF(@@Error <> 0 )
ROLLBACK TRANSACTION
ELSE
COMMIT TRANSACTION
--??????
IF EXISTS ( SELECT UserID FROM UserLogin WITH (READUNCOMMITTED) WHERE UserID = @uid )
Begin
UPDATE UserLogin
SET LoginIP=@uip,Server=@server,LoginTM = (getdate()),OnlineSec=0,GiveMoney=0,logoutTM=null
WHERE UserID = @uid
End
ELSE
Begin
INSERT INTO UserLogin (UserID,LoginIP,Server,LoginTM,OnlineSec,GiveMoney )
values (@uid,@uip,@server,getdate(),0,0)
End
--?????????????
declare @SmallestZS int
declare @LargestZS int
declare @Type int
select @Type=Type from SetServerList where ServerName=@server
if (@Type>0) begin
select @SmallestZS=Smallest_ZS from SetServerList where ServerName=@server
select @LargestZS=Largest_ZS from SetServerList where ServerName=@server
if not (@SmallestZS is null) begin
update character set ctlcode=(ctlcode | 0x81) where [name] not in
(
SELECT NAME FROM WEB_ZS WHERE (ACC = @uid) AND (ZSCS >= @LargestZS) AND (ZSCS <= @SmallestZS)
) AND (AccountID = @uid)
end
end
DELETE FROM MEMB_STAT_GJ WHERE (memb___id = @uid and servername=@server)
update character set ctlcode=(ctlcode | 0x81) where [name] in
(
SELECT name FROM MEMB_STAT_GJ WHERE (memb___id = @uid)
) AND (AccountID = @uid)
SET NOCOUNT OFF
End
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
apretan F5 epseran que se les carge igual que el otro y ponen serrar y guardan los bloc de notas en cualquier lado apagan el server lo vuelven a prender y listo yo creo que con esos dos cambios ya se tendria que solucionar
IMPORTANTE:
*Los primeros 3 pasos se hacen siempre cuando se abre el server!
*Lo de dataserver stanby con una vez nomas ya hace falta
Se que canza cada ves q abres el server pero si guardas los codigos del sql sera en menos de 59 segundos que lo haces ..
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.