Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
471 lines
12 KiB
Transact-SQL
471 lines
12 KiB
Transact-SQL
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[CMS_DoingRestraintChar]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
|
||
drop procedure [dbo].[CMS_DoingRestraintChar]
|
||
GO
|
||
|
||
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[USPCheckRestraintChar]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
|
||
drop procedure [dbo].[USPCheckRestraintChar]
|
||
GO
|
||
|
||
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[USPDeleteRestraintChar]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
|
||
drop procedure [dbo].[USPDeleteRestraintChar]
|
||
GO
|
||
|
||
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TblChatBanList]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
|
||
drop table [dbo].[TblChatBanList]
|
||
GO
|
||
|
||
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TblGMLogMsg]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
|
||
drop table [dbo].[TblGMLogMsg]
|
||
GO
|
||
|
||
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TblGMLogMsg_Log]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
|
||
drop table [dbo].[TblGMLogMsg_Log]
|
||
GO
|
||
|
||
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TblInterestedUser]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
|
||
drop table [dbo].[TblInterestedUser]
|
||
GO
|
||
|
||
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TblRestraintChar]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
|
||
drop table [dbo].[TblRestraintChar]
|
||
GO
|
||
|
||
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TblAdminStore]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
|
||
drop table [dbo].[TblAdminStore]
|
||
GO
|
||
|
||
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TblDetailLog]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
|
||
drop table [dbo].[TblDetailLog]
|
||
GO
|
||
|
||
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TblLog]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
|
||
drop table [dbo].[TblLog]
|
||
GO
|
||
|
||
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TblToolAdmin]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
|
||
drop table [dbo].[TblToolAdmin]
|
||
GO
|
||
|
||
CREATE TABLE [dbo].[TblChatBanList] (
|
||
[CID] [int] NULL ,
|
||
[ServerGroupID] [tinyint] NULL ,
|
||
[RemainTime] [int] NULL ,
|
||
[AdminCID] [int] NULL ,
|
||
[StartTime] [smalldatetime] NULL ,
|
||
[EndTime] [smalldatetime] NULL
|
||
) ON [PRIMARY]
|
||
GO
|
||
|
||
CREATE TABLE [dbo].[TblGMLogMsg] (
|
||
[LogID] [int] IDENTITY (1, 1) NOT NULL ,
|
||
[UID] [int] NULL ,
|
||
[CID] [int] NULL ,
|
||
[ServerGroupID] [tinyint] NOT NULL ,
|
||
[EditDate] [smalldatetime] NOT NULL ,
|
||
[LogMsg] [varchar] (200) NULL ,
|
||
[AdminID] [varchar] (20) NOT NULL
|
||
) ON [PRIMARY]
|
||
GO
|
||
|
||
CREATE TABLE [dbo].[TblGMLogMsg_Log] (
|
||
[LogID] [int] NOT NULL ,
|
||
[UID] [int] NULL ,
|
||
[CID] [int] NULL ,
|
||
[ServerGroupID] [tinyint] NOT NULL ,
|
||
[EditDate] [smalldatetime] NOT NULL ,
|
||
[LogMsg] [varchar] (200) NULL ,
|
||
[AdminID] [varchar] (20) NOT NULL ,
|
||
[InsertTime] [smalldatetime] NOT NULL
|
||
) ON [PRIMARY]
|
||
GO
|
||
|
||
CREATE TABLE [dbo].[TblInterestedUser] (
|
||
[strAccount] [varchar] (20) COLLATE NOT NULL ,
|
||
[strReason] [varchar] (260) COLLATE NULL ,
|
||
[intUID] [int] NOT NULL
|
||
) ON [PRIMARY]
|
||
GO
|
||
|
||
CREATE TABLE [dbo].[TblRestraintChar] (
|
||
[tinyServerID] [tinyint] NOT NULL ,
|
||
[UID] [int] NOT NULL ,
|
||
[strClientID] [varchar] (20) NOT NULL ,
|
||
[strCharName] [varchar] (20) NOT NULL ,
|
||
[tinyType] [tinyint] NOT NULL ,
|
||
[tinyKind] [tinyint] NOT NULL ,
|
||
[tinyBlocked] [tinyint] NOT NULL ,
|
||
[dateStartTime] [smalldatetime] NOT NULL ,
|
||
[dateEndTime] [smalldatetime] NOT NULL ,
|
||
[intEndTime] [int] NOT NULL ,
|
||
[strAdminID] [varchar] (20) NULL ,
|
||
[strDescription] [varchar] (30) NULL
|
||
) ON [PRIMARY]
|
||
GO
|
||
|
||
CREATE TABLE [dbo].[TblAdminStore] (
|
||
[uid] [int] IDENTITY (1, 1) NOT NULL ,
|
||
[server] [tinyint] NOT NULL ,
|
||
[owner] [varchar] (20) NOT NULL ,
|
||
[ItemName] [varchar] (32) NOT NULL ,
|
||
[ItemInfo] [binary] (100) NULL
|
||
) ON [PRIMARY]
|
||
GO
|
||
|
||
CREATE TABLE [dbo].[TblDetailLog] (
|
||
[DetailLogID] [int] IDENTITY (1, 1) NOT NULL ,
|
||
[LogID] [int] NOT NULL ,
|
||
[UpdateDate] [smalldatetime] NOT NULL ,
|
||
[UpdateType] [int] NULL ,
|
||
[Before] [varchar] (200) NULL ,
|
||
[After] [varchar] (200) NULL
|
||
) ON [PRIMARY]
|
||
GO
|
||
|
||
CREATE TABLE [dbo].[TblLog] (
|
||
[UID] [int] NOT NULL ,
|
||
[LogID] [int] IDENTITY (1, 1) NOT NULL ,
|
||
[Login] [smalldatetime] NOT NULL ,
|
||
[Logout] [smalldatetime] NULL ,
|
||
[UseIP] [varchar] (16) NOT NULL ,
|
||
[UseMsg] [varchar] (100) NULL
|
||
) ON [PRIMARY]
|
||
GO
|
||
|
||
CREATE TABLE [dbo].[TblToolAdmin] (
|
||
[UID] [int] IDENTITY (1, 1) NOT NULL ,
|
||
[strAdminID] [varchar] (20) NOT NULL ,
|
||
[strPasswd] [varchar] (20) NOT NULL ,
|
||
[strLevel] [varchar] (2) NOT NULL ,
|
||
[strName] [varchar] (20) NOT NULL ,
|
||
[strIP] [varchar] (16) NOT NULL ,
|
||
[dateRegit] [smalldatetime] NOT NULL ,
|
||
[binZone] [binary] (3400) NULL
|
||
) ON [PRIMARY]
|
||
GO
|
||
|
||
ALTER TABLE [dbo].[TblGMLogMsg] WITH NOCHECK ADD
|
||
CONSTRAINT [PK_TblGMLogMsg] PRIMARY KEY CLUSTERED
|
||
(
|
||
[LogID]
|
||
) ON [PRIMARY]
|
||
GO
|
||
|
||
ALTER TABLE [dbo].[TblGMLogMsg_Log] WITH NOCHECK ADD
|
||
CONSTRAINT [PK_TblGMLogMsg_Log] PRIMARY KEY CLUSTERED
|
||
(
|
||
[LogID]
|
||
) ON [PRIMARY]
|
||
GO
|
||
|
||
ALTER TABLE [dbo].[TblDetailLog] WITH NOCHECK ADD
|
||
CONSTRAINT [PK_TblDetailLog] PRIMARY KEY CLUSTERED
|
||
(
|
||
[DetailLogID]
|
||
) ON [PRIMARY]
|
||
GO
|
||
|
||
ALTER TABLE [dbo].[TblLog] WITH NOCHECK ADD
|
||
CONSTRAINT [PK_TblLog] PRIMARY KEY CLUSTERED
|
||
(
|
||
[LogID]
|
||
) ON [PRIMARY]
|
||
GO
|
||
|
||
ALTER TABLE [dbo].[TblToolAdmin] WITH NOCHECK ADD
|
||
CONSTRAINT [PK_TblToolAdmin] PRIMARY KEY CLUSTERED
|
||
(
|
||
[strAdminID]
|
||
) ON [PRIMARY]
|
||
GO
|
||
|
||
CREATE INDEX [idx_TblChatBanList_cid] ON [dbo].[TblChatBanList]([CID]) ON [PRIMARY]
|
||
GO
|
||
|
||
ALTER TABLE [dbo].[TblGMLogMsg] ADD
|
||
CONSTRAINT [DF_TblGMLogMsg_UID] DEFAULT (0) FOR [UID],
|
||
CONSTRAINT [DF_TblGMLogMsg_CID] DEFAULT (0) FOR [CID],
|
||
CONSTRAINT [DF_TblGMLogMsg_EditDate] DEFAULT (getdate()) FOR [EditDate]
|
||
GO
|
||
|
||
ALTER TABLE [dbo].[TblGMLogMsg_Log] ADD
|
||
CONSTRAINT [DF_TblGMLogMsg_Log_UID] DEFAULT (0) FOR [UID],
|
||
CONSTRAINT [DF_TblGMLogMsg_Log_CID] DEFAULT (0) FOR [CID],
|
||
CONSTRAINT [DF_TblGMLogMsg_Log_EditDate] DEFAULT (getdate()) FOR [EditDate],
|
||
CONSTRAINT [DF_TblGMLogMsg_Log_InsertTime] DEFAULT (getdate()) FOR [InsertTime]
|
||
GO
|
||
|
||
ALTER TABLE [dbo].[TblRestraintChar] ADD
|
||
CONSTRAINT [DF__TblRestra__strCh__11158940] DEFAULT ('ACCOUNT') FOR [strCharName],
|
||
CONSTRAINT [DF__TblRestra__dateS__1209AD79] DEFAULT (getdate()) FOR [dateStartTime],
|
||
CONSTRAINT [DF__TblRestra__intEn__12FDD1B2] DEFAULT (0) FOR [intEndTime]
|
||
GO
|
||
|
||
ALTER TABLE [dbo].[TblDetailLog] ADD
|
||
CONSTRAINT [DF_TblDetailLog_UpdateDate] DEFAULT (getdate()) FOR [UpdateDate]
|
||
GO
|
||
|
||
ALTER TABLE [dbo].[TblLog] ADD
|
||
CONSTRAINT [DF_TblLog_Login] DEFAULT (getdate()) FOR [Login]
|
||
GO
|
||
|
||
ALTER TABLE [dbo].[TblToolAdmin] ADD
|
||
CONSTRAINT [DF_TblToolAdmin_dateRegit] DEFAULT (getdate()) FOR [dateRegit]
|
||
GO
|
||
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
|
||
|
||
|
||
|
||
|
||
-- <20><><EFBFBD><EFBFBD> <20>ϱ<EFBFBD>
|
||
CREATE PROC CMS_DoingRestraintChar @ServerID TINYINT,@UID INT, @strClientID VARCHAR(20), @strCharName varchar(16),@Type tinyint,@Kind tinyint,@EndDate varchar(10),
|
||
@AdminID VARCHAR(20),@Description VARCHAR(50)
|
||
AS
|
||
SET NOCOUNT ON
|
||
|
||
DECLARE @EndDateTime INT
|
||
|
||
IF @strCharName IS NULL
|
||
BEGIN
|
||
SET @strCharName = 'Unknown'
|
||
END
|
||
|
||
SET @EndDateTime = cast(@EndDate as INT)
|
||
|
||
INSERT INTO TblRestraintChar (tinyServerID,UID,strClientID,strCharName,tinyType,tinyKind,tinyBlocked,dateEndTime,strAdminID,strDescription)
|
||
VALUES (@ServerID,@UID,@strClientid,@strCharName,@Type,@Kind,1,GETDATE() + @EndDateTime,@AdminID,@Description)
|
||
|
||
SELECT @@ROWCOUNT
|
||
|
||
GO
|
||
SET QUOTED_IDENTIFIER OFF
|
||
GO
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
|
||
|
||
-- <20><><EFBFBD><EFBFBD> üũ
|
||
CREATE Proc USPCheckRestraintChar @ServerID Tinyint,@UID INT
|
||
AS
|
||
|
||
SET NOCOUNT ON
|
||
|
||
DECLARE @tinyType TINYINT
|
||
SET @tinyType = 0
|
||
|
||
DECLARE @tinyKind TINYINT -- 1:<3A><><EFBFBD><EFBFBD>,0:<3A>ӽ<EFBFBD>
|
||
DECLARE @EndTime INT
|
||
DECLARE @dateEndTime SMALLDATETIME
|
||
DECLARE @intEndTime INT
|
||
|
||
DECLARE @RETURNCHAR1 VARCHAR(20)
|
||
DECLARE @RETURNCHAR2 VARCHAR(20)
|
||
DECLARE @RETURNCHAR3 VARCHAR(20)
|
||
DECLARE @RETURNCHAR4 VARCHAR(20)
|
||
DECLARE @RETURNCHAR5 VARCHAR(20)
|
||
|
||
DECLARE @strCharName VARCHAR(20)
|
||
DECLARE @TIME INT
|
||
|
||
SELECT @tinyType=tinyType,@tinyKind = tinykind,@EndTime =DATEDIFF(MINUTE,GETDATE(),dateEndTime)
|
||
FROM TblRestraintChar
|
||
WHERE tinyServerID=@ServerID AND UID = @UID AND tinyBlocked = 1
|
||
ORDER BY tinyType
|
||
|
||
IF @tinyType = 0 -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
BEGIN
|
||
SELECT @tinyType,@RETURNCHAR1,@RETURNCHAR2,@RETURNCHAR3,@RETURNCHAR4,@RETURNCHAR5
|
||
RETURN
|
||
END
|
||
ELSE IF @tinyType = 1 -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
BEGIN
|
||
|
||
-- <20>Ⱓ<EFBFBD><E2B0A3><EFBFBD><EFBFBD>üũ
|
||
IF (@EndTime <= 0 and @tinyKind = 0) --<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
BEGIN
|
||
UPDATE TblRestraintChar
|
||
SET tinyBlocked = 0
|
||
WHERE tinyServerID=@ServerID AND UID = @UID AND tinyBlocked = 1
|
||
|
||
SET @tinyType = 0
|
||
|
||
SELECT @tinyType=tinyType,@tinyKind = tinykind,@EndTime =DATEDIFF(MINUTE,GETDATE(),dateEndTime)
|
||
FROM TblRestraintChar
|
||
WHERE tinyServerID=@ServerID AND UID = @UID AND tinyBlocked = 1
|
||
ORDER BY tinyType
|
||
|
||
IF @tinyType = 2 --ij<><C4B3><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD>
|
||
BEGIN
|
||
SET @strCharName = NULL
|
||
SET @EndTime = 0
|
||
SET @TIME = 1
|
||
|
||
DECLARE Restraint_Cursor_A CURSOR FOR
|
||
SELECT strCharName,DATEDIFF(MINUTE,GETDATE(),dateEndTime),tinyKind
|
||
FROM TblRestraintChar
|
||
WHERE tinyServerID=@ServerID AND UID = @UID AND tinyBlocked = 1
|
||
|
||
OPEN Restraint_Cursor_A FETCH NEXT FROM Restraint_Cursor_A INTO @strCharName,@EndTime,@tinyKind
|
||
|
||
WHILE @@FETCH_STATUS = 0
|
||
BEGIN
|
||
|
||
IF ((@EndTime > 0) or (@tinyKind = 1))
|
||
BEGIN
|
||
|
||
IF @TIME = 1
|
||
SET @RETURNCHAR1 = @strCharName
|
||
ELSE IF @TIME = 2
|
||
SET @RETURNCHAR2 = @strCharName
|
||
ELSE IF @TIME = 3
|
||
SET @RETURNCHAR3 = @strCharName
|
||
ELSE IF @TIME = 4
|
||
SET @RETURNCHAR4 = @strCharName
|
||
ELSE IF @TIME = 5
|
||
SET @RETURNCHAR5 = @strCharName
|
||
END
|
||
ELSE
|
||
BEGIN
|
||
|
||
UPDATE TblRestraintChar
|
||
SET tinyBlocked = 0
|
||
WHERE tinyServerID=@ServerID AND UID = @UID AND strCharName = @strCharName AND tinyBlocked = 1
|
||
END
|
||
|
||
|
||
SET @TIME = @TIME + 1
|
||
|
||
FETCH NEXT FROM Restraint_Cursor_A into @strCharName,@EndTime,@tinyKind
|
||
|
||
END
|
||
|
||
CLOSE Restraint_Cursor_A
|
||
DEALLOCATE Restraint_Cursor_A
|
||
|
||
IF ((@RETURNCHAR1 IS NULL) AND (@RETURNCHAR2 IS NULL) AND (@RETURNCHAR3 IS NULL) and (@RETURNCHAR4 IS NULL) and (@RETURNCHAR5 IS NULL))
|
||
BEGIN
|
||
SET @tinyType = 0
|
||
END
|
||
|
||
SELECT @tinyType,@RETURNCHAR1,@RETURNCHAR2,@RETURNCHAR3,@RETURNCHAR4,@RETURNCHAR5
|
||
RETURN
|
||
END
|
||
|
||
SET @tinyType = 0
|
||
SELECT @tinyType,@RETURNCHAR1,@RETURNCHAR2,@RETURNCHAR3,@RETURNCHAR4,@RETURNCHAR5
|
||
RETURN
|
||
END
|
||
ELSE
|
||
BEGIN
|
||
SELECT @tinyType,@RETURNCHAR1,@RETURNCHAR2,@RETURNCHAR3,@RETURNCHAR4,@RETURNCHAR5
|
||
RETURN
|
||
END
|
||
END
|
||
ELSE IF @tinyType = 2 --ij<><C4B3><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD>
|
||
BEGIN
|
||
SET @strCharName = NULL
|
||
SET @EndTime = 0
|
||
SET @TIME = 1
|
||
|
||
DECLARE Restraint_Cursor CURSOR FOR
|
||
SELECT strCharName,DATEDIFF(MINUTE,GETDATE(),dateEndTime),tinyKind
|
||
FROM TblRestraintChar
|
||
WHERE tinyServerID=@ServerID AND UID = @UID AND tinyBlocked = 1
|
||
|
||
|
||
OPEN Restraint_Cursor FETCH NEXT FROM Restraint_Cursor INTO @strCharName,@EndTime,@tinyKind
|
||
|
||
WHILE @@FETCH_STATUS = 0
|
||
BEGIN
|
||
|
||
IF ((@EndTime > 0) or (@tinyKind = 1))
|
||
BEGIN
|
||
|
||
IF @TIME = 1
|
||
SET @RETURNCHAR1 = @strCharName
|
||
ELSE IF @TIME = 2
|
||
SET @RETURNCHAR2 = @strCharName
|
||
ELSE IF @TIME = 3
|
||
SET @RETURNCHAR3 = @strCharName
|
||
ELSE IF @TIME = 4
|
||
SET @RETURNCHAR4 = @strCharName
|
||
ELSE IF @TIME = 5
|
||
SET @RETURNCHAR5 = @strCharName
|
||
END
|
||
ELSE
|
||
BEGIN
|
||
|
||
UPDATE TblRestraintChar
|
||
SET tinyBlocked = 0
|
||
WHERE tinyServerID=@ServerID AND UID = @UID AND strCharName = @strCharName AND tinyBlocked = 1
|
||
END
|
||
|
||
|
||
SET @TIME = @TIME + 1
|
||
|
||
FETCH NEXT FROM Restraint_Cursor into @strCharName,@EndTime,@tinyKind
|
||
|
||
END
|
||
|
||
CLOSE Restraint_Cursor
|
||
DEALLOCATE Restraint_Cursor
|
||
|
||
IF ((@RETURNCHAR1 IS NULL) AND (@RETURNCHAR2 IS NULL) AND (@RETURNCHAR3 IS NULL) and (@RETURNCHAR4 IS NULL) and (@RETURNCHAR5 IS NULL))
|
||
BEGIN
|
||
SET @tinyType = 0
|
||
END
|
||
|
||
SELECT @tinyType,@RETURNCHAR1,@RETURNCHAR2,@RETURNCHAR3,@RETURNCHAR4,@RETURNCHAR5
|
||
RETURN
|
||
END
|
||
|
||
|
||
|
||
GO
|
||
SET QUOTED_IDENTIFIER OFF
|
||
GO
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
|
||
|
||
|
||
CREATE PROC USPDeleteRestraintChar @SeverID tinyint,@UID INT,@Charname varchar(16)
|
||
AS
|
||
|
||
|
||
SET NOCOUNT ON
|
||
|
||
IF EXISTS (SELECT UID FROM TblRestraintChar WHERE tinyServerID=@SeverID AND UID = @UID AND strCharName = @Charname)
|
||
BEGIN
|
||
DELETE TblRestraintChar
|
||
WHERE tinyServerID=@SeverID AND UID = @UID AND strCharName = @Charname
|
||
|
||
SELECT @@ROWCOUNT
|
||
END
|
||
ELSE
|
||
BEGIN
|
||
SELECT 0
|
||
END
|
||
|
||
|
||
GO
|
||
SET QUOTED_IDENTIFIER OFF
|
||
GO
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
|