Como fixear el error-L1 : CloseClient INVALID_SOCKET
Hoy en dia se puede saber cómo solucionar este molesto y, a veces, extraño para los servidores de ppl propia.
En primer lugar, no es un problema gs, cs problema, o mal configurado IPS, ni el cliente ni los archivos.
Es un problema entre el sistema operativo y bases de datos, que son complementarias.
Ejemplo de gameserver de registro:
17:00:32 connect : [4806][201.255.22.210]
17:00:33 connect : [4807][190.224.207.143]
17:00:43 connect : [4808][201.250.238.79]
17:00:53 (4803)logout : [201.250.190.27]
error-L1 : CloseClient INVALID_SOCKET
17:00:53 connect : [4809][190.224.207.253]
error-L1 : CloseClient INVALID_SOCKET
17:00:56 connect : [4810][200.29.248.26]
17:00:57 connect : [4811][201.254.76.67]
17:00:59 join send : (4811)Azzlaer
error-L1 : CloseClient INVALID_SOCKET
17:00:59 login [201.254.76.67] : [Azzlaer] numer:12791/ db:1
17:00:59 [Azzlaer][] BillType : (3)
Solo necesitas utilizar esta consulta
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
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
ANTES DE EJECUTAR ESTA QUERY POR FAVOR RECORDA EN HACER UNA COPIA DE TU BASE DE DATOS DE MU ONLINE Y TENER EL SERVIDOR OFFLINE rebote
Sale esto.,..
Servidor: mensaje 170, nivel 15, estado 1, línea 3
Línea 3: sintaxis incorrecta cerca de '*'.
Servidor: mensaje 170, nivel 15, estado 1, línea 14
Línea 14: sintaxis incorrecta cerca de '*'.
Servidor: mensaje 170, nivel 15, estado 1, línea 17
Línea 17: sintaxis incorrecta cerca de '*'.
Servidor: mensaje 170, nivel 15, estado 1, línea 23
Línea 23: sintaxis incorrecta cerca de '*'.
Servidor: mensaje 170, nivel 15, estado 1, línea 25
Línea 25: sintaxis incorrecta cerca de '*'.
Servidor: mensaje 170, nivel 15, estado 1, línea 31
Línea 31: sintaxis incorrecta cerca de '*'.
Servidor: mensaje 170, nivel 15, estado 1, línea 34
Línea 34: sintaxis incorrecta cerca de '=*'.
Servidor: mensaje 170, nivel 15, estado 1, línea 40
Línea 40: sintaxis incorrecta cerca de '*'.
Servidor: mensaje 170, nivel 15, estado 1, línea 50
Línea 50: sintaxis incorrecta cerca de 'SmallestZS'.
Servidor: mensaje 170, nivel 15, estado 1, línea 53
Línea 53: sintaxis incorrecta cerca de '*'.
Servidor: mensaje 170, nivel 15, estado 1, línea 56
Línea 56: sintaxis incorrecta cerca de '*'.
Servidor: mensaje 170, nivel 15, estado 1, línea 60
Línea 60: sintaxis incorrecta cerca de '*'.
Servidor: mensaje 170, nivel 15, estado 1, línea 63
Línea 63: sintaxis incorrecta cerca de '*'.