Example of gameserver log:
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)maxxxx
error-L1 : CloseClient INVALID_SOCKET
17:00:59 login [201.254.76.67] : [maxxxx] numer:12791/ db:1
17:00:59 [maxxxx][] BillType : (3)
U need use this jobs in Query Analizer to fix it.
-----------------------------x-----------------------
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
------------------------------------------x-------------------------
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