Restructure repository to include all source folders

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>
This commit is contained in:
2025-11-29 20:17:20 +09:00
parent 5d3cd64a25
commit dd97ddec92
11602 changed files with 1446576 additions and 0 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,337 @@
/*******************************
* Made in date : 2004-03-26
* DESCRIPTION : TO USE WHEN USER LOG IN A GAME
* EDIT : 2005-02-28
* ******************************/
-- LOCATION DBNAME : RYLBillingDB
CREATE TABLE dbo.[TblAdminSetting] (
[AdminID] [char] (1) NULL ,
[RightID] [smallint] NULL ,
[RightValue] [bit] NULL ,
[descriptionRightID] [varchar] (20) NULL
)
GO
CREATE TABLE dbo.[TblToolAdmin] (
[strAdminID] [varchar] (20) NOT NULL ,
[strPasswd] [varchar] (20) NOT NULL ,
[strLevel] [varchar] (2) NOT NULL ,
[strName] [varchar] (7) NULL ,
[strIP] [varchar] (16) NULL ,
[dateRegit] [smalldatetime] NULL CONSTRAINT [DF__TblToolAd__dateR__3B40CD36] DEFAULT (getdate()),
PRIMARY KEY CLUSTERED
(
[strAdminID]
) WITH FILLFACTOR = 90
)
GO
CREATE TABLE dbo.[TblCRM_RYLLOG] (
[intIndex] [int] NOT NULL ,
[strCRMCode] [varchar] (15) NOT NULL ,
[strPriceType] [char] (1) NOT NULL ,
[dateSysDay] [smalldatetime] NOT NULL ,
[strCommand] [char] (1) NULL ,
[strCRMIP1] [varchar] (12) NULL ,
[strStartCRMIP1] [tinyint] NULL ,
[strEndCRMIP1] [tinyint] NULL ,
[strCRMIP2] [varchar] (12) NULL ,
[strStartCRMIP2] [tinyint] NULL ,
[strEndCRMIP2] [tinyint] NULL ,
[strCRMIP3] [varchar] (12) NULL ,
[strStartCRMIP3] [tinyint] NULL ,
[strEndCRMIP3] [tinyint] NULL ,
[strTimeprocess] [char] (1) NULL ,
[intServiceTime] [int] NULL ,
[dateServiceDay] [smalldatetime] NULL ,
[TinyServiceIPNum] [tinyint] NULL ,
[dateEndday] [smalldatetime] NULL ,
[intEndTime] [int] NULL ,
[strRYLCHK] [char] (1) NULL ,
[strConvertCHK] [char] (1) NULL CONSTRAINT [DF__TblCRM_RY__strCo__0697FACD] DEFAULT ('N'),
CHECK ([strPriceType] = 'T' or [strPriceType] = 'D')
)
GO
CREATE TABLE dbo.[TblCRM_SERVICETIME] (
[strCRMCode] [varchar] (20) NULL ,
[strGameCode] [char] (3) NULL ,
[intServiceTime] [int] NULL ,
[DelColumn] [char] (1) NULL ,
[WebCHK] [char] (1) NULL ,
[dateInsertTime] [smalldatetime] NULL CONSTRAINT [DF__TblCRM_SE__dateI__03BB8E22] DEFAULT (getdate())
)
GO
CREATE TABLE dbo.[TblCurrentUser] (
[strClientID] [varchar] (20) NOT NULL ,
[UID] [int] NOT NULL ,
[intCRMIndex] [int] NOT NULL ,
[strIP] [varchar] (15) NOT NULL ,
[strBillingType] [char] (1) NOT NULL ,
[tinyServerID] [tinyint] NOT NULL ,
[dateLoginTime] [smalldatetime] NOT NULL CONSTRAINT [DF__TblCurren__dateL__7D0E9093] DEFAULT (getdate()),
[FirstLoginTime] [smalldatetime] NOT NULL CONSTRAINT [DF__TblCurren__First__7E02B4CC] DEFAULT (getdate()),
CONSTRAINT [PK_TblCurrentUser] PRIMARY KEY NONCLUSTERED
(
[strClientID]
) WITH FILLFACTOR = 90
)
GO
CREATE TABLE dbo.[TblCurrentUser_Disconn] (
[strClientID] [varchar] (20) NOT NULL ,
[UID] [int] NOT NULL ,
[ServerID] [int] NOT NULL ,
[strCommand] [char] (2) NOT NULL
)
GO
CREATE TABLE dbo.[TblCurrentUser_Temp] (
[strClientID] [varchar] (20) NOT NULL ,
[UID] [int] NOT NULL ,
[intCRMIndex] [int] NOT NULL ,
[strIP] [varchar] (15) NOT NULL ,
[strBillingType] [char] (1) NOT NULL ,
[tinyServerID] [tinyint] NOT NULL ,
[dateLoginTime] [smalldatetime] NOT NULL CONSTRAINT [DF__TblCurren__dateL__00DF2177] DEFAULT (getdate()),
CONSTRAINT [PK_TblCurrentUser_TEMP] PRIMARY KEY NONCLUSTERED
(
[strClientID]
) WITH FILLFACTOR = 90
)
GO
CREATE TABLE dbo.[TblImportedNum] (
[strCompType] [char] (1) NULL ,
[intCount] [int] NULL
)
GO
CREATE TABLE dbo.[TblPCRoomBillingInfo] (
[intCRMIndex] [int] NOT NULL ,
[strCRMCode] [varchar] (20) NOT NULL ,
[strBillingType] [char] (1) NOT NULL ,
[dateRegTime] [smalldatetime] NOT NULL CONSTRAINT [DF__TblPCRoom__dateR__6BE40491] DEFAULT (getdate()),
CONSTRAINT [PK_TblPCRoomBillingInfo] PRIMARY KEY CLUSTERED
(
[strCRMCode],
[strBillingType]
) WITH FILLFACTOR = 90 ,
UNIQUE NONCLUSTERED
(
[intCRMIndex]
) WITH FILLFACTOR = 90 ,
CHECK ([strBillingType] = 'T' or [strBillingType] = 'D')
)
GO
CREATE TABLE dbo.[TblGameRoomIPList] (
[intCRMIndex] [int] NOT NULL ,
[strIP] [varchar] (15) NOT NULL ,
CONSTRAINT [pk_TblGameRoomIPList] PRIMARY KEY CLUSTERED
(
[intCRMIndex],
[strIP]
) WITH FILLFACTOR = 90 ,
CONSTRAINT [FK_TblGameRoomIPList_intCRMIndex] FOREIGN KEY
(
[intCRMIndex]
) REFERENCES [TblPCRoomBillingInfo] (
[intCRMIndex]
)
)
GO
CREATE TABLE dbo.[TblPCRoomBilling_Date] (
[intCRMIndex] [int] NOT NULL ,
[strRegProcess] [char] (1) NOT NULL ,
[dateStartTime] [smalldatetime] NOT NULL ,
[dateEndTime] [smalldatetime] NOT NULL ,
[tinyServiceIpNum] [tinyint] NOT NULL ,
[tinyUsedIpNum] [tinyint] NOT NULL CONSTRAINT [DF__TblPCRoom__tinyU__6EC0713C] DEFAULT (0),
[strClosed] [char] (1) NOT NULL CONSTRAINT [DF__TblPCRoom__strCl__70A8B9AE] DEFAULT ('N'),
PRIMARY KEY NONCLUSTERED
(
[intCRMIndex]
) WITH FILLFACTOR = 90 ,
CONSTRAINT [FK_TblPCRoomBillingInfo_Date_intCRMIndex] FOREIGN KEY
(
[intCRMIndex]
) REFERENCES [TblPCRoomBillingInfo] (
[intCRMIndex]
),
CHECK ([tinyUsedIpNum] >= 0)
)
GO
CREATE TABLE dbo.[TblPCRoomBilling_Time] (
[intCRMIndex] [int] NOT NULL ,
[strRegProcess] [char] (1) NOT NULL ,
[intServiceTime] [int] NOT NULL ,
[intUsingTime] [int] NOT NULL CONSTRAINT [DF__TblPCRoom__intUs__74794A92] DEFAULT (0),
[dateStartTime] [smalldatetime] NOT NULL CONSTRAINT [DF__TblPCRoom__dateS__756D6ECB] DEFAULT (getdate()),
[strClosed] [char] (1) NOT NULL CONSTRAINT [DF__TblPCRoom__strCl__76619304] DEFAULT ('N'),
PRIMARY KEY NONCLUSTERED
(
[intCRMIndex]
) WITH FILLFACTOR = 90 ,
CONSTRAINT [FK_TblPCRoomBillingInfo_Time_intCRMIndex] FOREIGN KEY
(
[intCRMIndex]
) REFERENCES [TblPCRoomBillingInfo] (
[intCRMIndex]
)
)
GO
CREATE TABLE dbo.[TblPersonBilling_log] (
[intIndex] [int] NULL ,
[strClientID] [varchar] (20) NULL ,
[UID] [int] NULL ,
[strBillingType] [char] (1) NULL ,
[dateEndTime] [smalldatetime] NULL ,
[intServiceTime] [int] NULL ,
[strConvertCHK] [char] (1) NULL ,
[dateInsertTime] [smalldatetime] NULL ,
CHECK ([strBillingType] = 'T' or [strBillingType] = 'D')
)
GO
CREATE TABLE dbo.[TblPersonBillingInfo] (
[strClientID] [varchar] (20) NOT NULL ,
[UID] [int] NOT NULL ,
[dateEndTime] [smalldatetime] NULL ,
[intServiceTime] [int] NULL ,
[intUsingTime] [int] NULL ,
[dateRegTime] [smalldatetime] NOT NULL ,
PRIMARY KEY NONCLUSTERED
(
[strClientID]
) WITH FILLFACTOR = 90
)
GO
CREATE TABLE dbo.[TblPersonInfo] (
[UID] [int] NOT NULL ,
[strClientID] [varchar] (20) NOT NULL ,
[RegLoginTime] [smalldatetime] NOT NULL ,
[LastLogOutTime] [smalldatetime] NOT NULL ,
PRIMARY KEY NONCLUSTERED
(
[UID]
) WITH FILLFACTOR = 90
)
GO
CREATE TABLE dbo.[TblRestraintChar] (
[tinyServerID] [tinyint] NOT NULL ,
[UID] [int] NOT NULL ,
[strClientID] [varchar] (20) NOT NULL ,
[strCharName] [varchar] (20) NOT NULL CONSTRAINT [DF__TblRestra__strCh__11158940] DEFAULT ('ACCOUNT'),
[tinyType] [tinyint] NOT NULL ,
[tinyKind] [tinyint] NOT NULL ,
[tinyBlocked] [tinyint] NOT NULL ,
[dateStartTime] [smalldatetime] NOT NULL CONSTRAINT [DF__TblRestra__dateS__1209AD79] DEFAULT (getdate()),
[dateEndTime] [smalldatetime] NOT NULL ,
[intEndTime] [int] NOT NULL CONSTRAINT [DF__TblRestra__intEn__12FDD1B2] DEFAULT (0),
[strAdminID] [varchar] (20) NULL ,
[strDescription] [varchar] (30) NULL
)
GO
-- LOCATION DBNAME : RYLBillingDB_LOG
CREATE TABLE dbo.[TblCRM_RYLLOG_LOG] (
[intIndex] [int] NULL ,
[strCRMCode] [varchar] (15) NULL ,
[strPriceType] [char] (1) NULL ,
[dateSysDay] [smalldatetime] NULL ,
[strCommand] [char] (1) NULL ,
[strCRMIP1] [varchar] (12) NULL ,
[strStartCRMIP1] [tinyint] NULL ,
[strEndCRMIP1] [tinyint] NULL ,
[strCRMIP2] [varchar] (12) NULL ,
[strStartCRMIP2] [tinyint] NULL ,
[strEndCRMIP2] [tinyint] NULL ,
[strCRMIP3] [varchar] (12) NULL ,
[strStartCRMIP3] [tinyint] NULL ,
[strEndCRMIP3] [tinyint] NULL ,
[strTimeprocess] [char] (1) NULL ,
[intServiceTime] [int] NULL ,
[dateServiceDay] [smalldatetime] NULL ,
[TinyServiceIPNum] [tinyint] NULL ,
[dateEndday] [smalldatetime] NULL ,
[intEndTime] [int] NULL ,
[strRYLCHK] [char] (1) NULL ,
[strConvertCHK] [char] (1) NULL
)
GO
CREATE TABLE dbo.[TblCRM_SERVICETIME_LOG] (
[strCRMCode] [varchar] (20) NULL ,
[intServiceTime] [int] NULL ,
[DelColumn] [char] (1) NULL ,
[dateInsertTime] [smalldatetime] NULL
)
GO
CREATE TABLE dbo.[TblCurrentUser_Log] (
[strClientid] [varchar] (20) NULL ,
[UID] [int] NULL ,
[intCRMIndex] [int] NULL ,
[strIp] [varchar] (15) NULL ,
[strBillingType] [char] (1) NULL ,
[tinyServerID] [tinyint] NULL ,
[FirstLoginTime] [smalldatetime] NULL ,
[LoginTime] [smalldatetime] NULL ,
[LogoutTime] [smalldatetime] NULL ,
[intPlayTime] [int] NULL
)
GO
CREATE TABLE dbo.[TblGameRoomIPList_DELLOG] (
[intCRMIndex] [int] NULL ,
[strIP] [varchar] (15) NULL
)
GO
CREATE TABLE dbo.[TblPCRoomBilling_Date_DELLOG] (
[intCRMIndex] [int] NULL ,
[strRegProcess] [char] (1) NULL ,
[dateStartTime] [smalldatetime] NULL ,
[dateEndTime] [smalldatetime] NULL ,
[tinyServiceIpNum] [tinyint] NULL ,
[tinyUsedIpNum] [tinyint] NULL ,
[strClosed] [char] (1) NULL
)
GO
CREATE TABLE dbo.[TblPCRoomBillingInfo_DELLOG] (
[intCRMIndex] [int] NULL ,
[strCRMCode] [varchar] (20) NULL ,
[strBillingType] [char] (1) NULL ,
[dateRegTime] [smalldatetime] NULL
)
GO
CREATE TABLE dbo.[TblPersonBilling_log_History] (
[intIndex] [int] NULL ,
[strClientID] [varchar] (20) NULL ,
[UID] [int] NULL ,
[strBillingType] [char] (1) NULL ,
[dateEndTime] [smalldatetime] NULL ,
[intServiceTime] [int] NULL ,
[strConvertCHK] [char] (1) NULL ,
[dateInsertTime] [smalldatetime] NULL
)
GO

View File

@@ -0,0 +1,744 @@
-- 배틀그라운드 클로스베타 유저를 위한 테이블
CREATE TABLE TblBattleLoginUser
(
strClientID VARCHAR(20) PRIMARY KEY
)
GO
-- 캐릭터 선택창 가기 전에 과금 여부를 체크한다.
-- 캐릭터 선택창에서 다시 실행한다.
ALTER PROC USPCheckBilling_Login @strClientID VARCHAR(20),@UID INT, @Check Int,@ClientIP VARCHAR(15),@ServerID TINYINT
AS
SET NOCOUNT ON
--DECLARE @RegLogInTime
DECLARE @strBillingType CHAR(1) --D,T
DECLARE @strBillingType2 CHAR(2)
DECLARE @PlayTime INT --(),
DECLARE @CanUseTime INT
DECLARE @FLAG INT
SET @strBillingType = 'N'
SET @PlayTime = 0
SET @CanUseTime = 0
SET @FLAG = -1
DECLARE @IPType CHAR(1) --D,T
DECLARE @intCRMIndex1 INT
DECLARE @intCRMIndex2 INT
SET @intCRMIndex1 =0
SET @intCRMIndex2 =0
DECLARE @BillingDate CHAR(1)
DECLARE @BillingTime CHAR(1)
SET @BillingDate = 'D'
SET @BillingTime = 'T'
-- 피시방중 정량제와 정액제를 같이 사용하는 경우 해당 과금의 피시방인덱스를 얻어와야한다.
DECLARE @OutCRMIndex INT
DECLARE @tinyServerID INT
SET @tinyServerID = -1
DECLARE @FreeTime INT
EXEC USPInsertPerson @strClientID,@UID
-- 현재 로그인 된 사용자 인지 아닌지 체크한다.
SELECT @tinyServerID = tinyServerID FROM TblCurrentUser_Temp WHERE strClientid = @strClientID
IF @tinyServerID > -1
BEGIN
SET @FLAG = 1 -- .
SET @intCRMIndex1 = @tinyServerID
SET @strBillingType2 = @strBillingType
SELECT @FLAG as FLAG,@strBillingType2 as BillingType,@PlayTime as PlayTime,@intCRMIndex1 as ServerID
RETURN
END
-- 현재 로그인 된 사용자 인지 아닌지 체크한다.
SELECT @tinyServerID = tinyServerID FROM TblCurrentUser WHERE strClientid = @strClientID
IF @tinyServerID > -1
BEGIN
SET @FLAG = 1 -- .
SET @intCRMIndex1 = @tinyServerID
SET @strBillingType2 = @strBillingType
SELECT @FLAG as FLAG,@strBillingType2 as BillingType,@PlayTime as PlayTime,@intCRMIndex1 as ServerID
RETURN
END
-- 무료계정 여부 체크 -- 나중에 수정해야함.
IF (@Check = 1) --
BEGIN
SET @FLAG = 0
-- 임시테이블 TblCurrentUser_Temp에 입력한다.
INSERT INTO TblCurrentUser_Temp (strClientid,UID,intCRMIndex,strip,strBillingType,tinyServerID)
VALUES (@strClientID,@UID,@intCRMIndex1,@ClientIP,@strBillingType,@ServerID)
SET @strBillingType2 = @strBillingType
SELECT @FLAG as FLAG,@strBillingType2 as BillingType,
@PlayTime as PlayTime,@intCRMIndex1 as CRMIndex
RETURN
END
-- 배틀그라운드 클로즈 베타에 따른 인증추가 (2004-04-19)
-- @SERVERID가 7번인 경우는 배틀그라운드에 접속함을 가정한다.
IF (@ServerID = 7 )
BEGIN
IF EXISTS (SELECT * FROM TblBattleLoginUser WHERE strClientID = @strClientID)
BEGIN
SET @FLAG = 0
-- 임시테이블 TblCurrentUser_Temp에 입력한다.
INSERT INTO TblCurrentUser_Temp (strClientid,UID,intCRMIndex,strip,strBillingType,tinyServerID)
VALUES (@strClientID,@UID,@intCRMIndex1,@ClientIP,@strBillingType,@ServerID)
-- 'N' 타입으로 리턴한다.
SET @strBillingType2 = 'B'
SET @FreeTime = DATEDIFF(DAY,GETDATE(),'2030-01-01 00:00:00')
SELECT @FLAG as FLAG,@strBillingType2 as BillingType,
@FreeTime as PlayTime,@intCRMIndex1 as CRMIndex
RETURN
END
END
-- 무료계정인지 아닌지 체크한다
SELECT @FreeTime = DATEDIFF(DAY,GETDATE(),RegLoginTime)
FROM TBLPERSONINFO
WHERE UID = @UID
-- 실제 무료 계정임을 나타냄.
IF (@FreeTime >= 0)
BEGIN
SET @FLAG = 0
-- 임시테이블 TblCurrentUser_Temp에 입력한다.
INSERT INTO TblCurrentUser_Temp (strClientid,UID,intCRMIndex,strip,strBillingType,tinyServerID)
VALUES (@strClientID,@UID,@intCRMIndex1,@ClientIP,@strBillingType,@ServerID)
SET @strBillingType2 = @strBillingType
SELECT @FLAG as FLAG,@strBillingType2 as BillingType,
@FreeTime as PlayTime,@intCRMIndex1 as CRMIndex
RETURN
END
/*************************************************
* @FLAG = 0,@strBillingType ='D',@PlayTime = 남은일자 --개인정액제 성공
* @FLAG = 0,@strBillingType ='T',@PlayTime = 남은시간 --개인정량제 성공
* @FLAG = 1,@strBillingType ='N',@PlayTime = 0 --과금등록이 되어있지 않음
* @FLAG = 2,@strBillingType ='D',@PlayTime = 0 --개인정액제 과금이 종료된 경우
* @FLAG = 3,@strBillingType ='T',@PlayTime = 0 --개인정량제 과금이 종료된 경우
**************************************************/
EXEC @FLAG = USPCheckBilling_Person @strClientID,@strBillingType OUTPUT,@PlayTime OUTPUT
-- 개인과금이 성공적인경우
IF (@FLAG = 0)
BEGIN
-- 정액제 개인 유저인경우
IF (@strBillingType =@BillingDate)
BEGIN
-- 임시테이블 TblCurrentUser_Temp에 입력한다.
INSERT INTO TblCurrentUser_Temp (strClientid,UID,intCRMIndex,strip,strBillingType,tinyServerID)
VALUES (@strClientID,@UID,@intCRMIndex1,@ClientIP,@strBillingType,@ServerID)
SET @strBillingType2 = @strBillingType
SELECT @FLAG as FLAG,@strBillingType2 as BillingType,@PlayTime as PlayTime,@intCRMIndex1 as CRMIndex
RETURN
END
-- 정량제 개인 유저인경우
ELSE IF (@strBillingType =@BillingTime)
BEGIN
SET @FLAG = -1
--AGAIN CHECK ClientIP
/*********************************************
* @FLAG = 0,@intCRMIndex1 = 숫자,@intCRMIndex2 = 숫자 -- 피시방 아이피가 정액과 정량 모두를 사용함
* @FLAG = 0,@intCRMIndex1 = 숫자,@intCRMIndex2 = 0 -- 피시방 아이피가 정액 또는 정량중 하나 임
* @FLAG = 1,@intCRMIndex1 = 0,@intCRMIndex2 = 0 -- 피시방 아이피가 아님
*********************************************/
EXEC @FLAG = USPCheckBilling_ClientIP @ClientIP,@intCRMIndex1 OUTPUT,@intCRMIndex2 OUTPUT
-- PC방이 아닌경우
IF @FLAG <> 0
BEGIN
-- 개인정량제로 리턴한다.
SET @FLAG = 0
SET @intCRMIndex1 = 0
-- 임시테이블 TblCurrentUser_Temp에 입력한다.
INSERT INTO TblCurrentUser_Temp (strClientid,UID,intCRMIndex,strip,strBillingType,tinyServerID)
VALUES (@strClientID,@UID,@intCRMIndex1,@ClientIP,@strBillingType,@ServerID)
SET @strBillingType2 = @strBillingType
SELECT @FLAG as FLAG,@strBillingType2 as BillingType,@PlayTime as PlayTime,@intCRMIndex1 as CRMIndex
RETURN
END
-- PC방 아이피인경우
ELSE IF @FLAG = 0
BEGIN
-- 해당 아이피의 과금 방식 가져오기
IF (@intCRMIndex1 <> 0 AND @intCRMIndex2 = 0) -- 하나의 과금 방식만 따른다.
BEGIN
SELECT @IPType = strBillingType
FROM TblPCRoomBillingInfo
WHERE intCRMIndex = @intCRMIndex1
END
ELSE IF (@intCRMIndex1 <> 0 AND @intCRMIndex2 <> 0) -- 두개의 과금 방식을 따른다.
BEGIN
SET @IPType = 'C'
END
-- PC방 과금종류를 체크한다.
-- T:정량제,D:정액제
EXEC @FLAG = USPCheckBilling_GameRoom @intCRMIndex1,@intCRMIndex2,@IPType,@OutCRMIndex OUTPUT,@strBillingType OUTPUT,@canUseTime OUTPUT
IF @FLAG <> 0 --ERROR
BEGIN
-- PC방 과금이 종료된 경우이므로 다시 개인정량제로 과금을 적용시킨다.
SET @intCRMIndex1 = 0
SET @FLAG = 0
SET @strBillingType = @BillingTime
-- 임시테이블 TblCurrentUser_Temp에 입력한다.
INSERT INTO TblCurrentUser_Temp (strClientid,UID,intCRMIndex,strip,strBillingType,tinyServerID)
VALUES (@strClientID,@UID,@intCRMIndex1,@ClientIP,@strBillingType,@ServerID)
SET @strBillingType2 = @strBillingType
SELECT @FLAG as FLAG,@strBillingType2 as BillingType,
@PlayTime as PlayTime,@intCRMIndex1 as CRMIndex
RETURN
END
ELSE
BEGIN
IF @strBillingType = 'D' -- 정액제
BEGIN
-- 아이피 하나를 사용해서 카운트를 1 더하기 한다.
EXEC USPCheckBilling_UpIPCount @OutCRMIndex
-- 임시테이블 TblCurrentUser_Temp에 입력한다.
INSERT INTO TblCurrentUser_Temp (strClientid,UID,intCRMIndex,strip,strBillingType,tinyServerID)
VALUES (@strClientID,@UID,@OutCRMIndex,@ClientIP,@strBillingType,@ServerID)
SET @strBillingType2 = @strBillingType
SELECT @FLAG as FLAG,@strBillingType2 as BillingType,
@canUseTime as PlayTime,@OutCRMIndex as CRMIndex
RETURN
END
ELSE IF @strBillingType = 'T' -- 정액제
BEGIN
-- 임시테이블 TblCurrentUser_Temp에 입력한다.
INSERT INTO TblCurrentUser_Temp (strClientid,UID,intCRMIndex,strip,strBillingType,tinyServerID)
VALUES (@strClientID,@UID,@OutCRMIndex,@ClientIP,@strBillingType,@ServerID)
SET @strBillingType2 = @strBillingType
SELECT @FLAG as FLAG,@strBillingType2 as BillingType,
@canUseTime as PlayTime,@OutCRMIndex as CRMIndex
RETURN
END
END
END
END
END
-- 개인과금이 실패된 경우 다시 과금등록된 피시방인지 아닌지 체크한다.
ELSE
BEGIN
--AGAIN CHECK ClientIP
/*********************************************
* @FLAG = 0,@intCRMIndex1 = 숫자,@intCRMIndex2 = 숫자 -- 피시방 아이피가 정액과 정량 모두를 사용함
* @FLAG = 0,@intCRMIndex1 = 숫자,@intCRMIndex2 = 0 -- 피시방 아이피가 정액 또는 정량중 하나 임
* @FLAG = 1,@intCRMIndex1 = 0,@intCRMIndex2 = 0 -- 피시방 아이피가 아님
*********************************************/
EXEC @FLAG = USPCheckBilling_ClientIP @ClientIP,@intCRMIndex1 OUTPUT,@intCRMIndex2 OUTPUT
-- PC방이 아닌경우
IF @FLAG <> 0
BEGIN
/*********임시 적용 부분 ***********
SET @FLAG = 0
SET @intCRMIndex1 = 0
SET @strBillingType = 'N'
--접속테이블에 입력한다.
INSERT INTO TblCurrentUser_temp(strClientid,UID,intCRMIndex,strip,strBillingType,tinyServerID)
VALUES (@strClientID,@UID,@intCRMIndex1,@ClientIP,@strBillingType,@ServerID)
SET @strBillingType2 = @strBillingType
SELECT @FLAG as FLAG,@strBillingType2 as BillingType,@PlayTime as PlayTime,@intCRMIndex1 as CRMIndex
RETURN
********임시 적용 부분 끝 ************/
-- 에러리턴한다
SET @FLAG = 2
SET @strBillingType2 = @strBillingType
SELECT @FLAG as FLAG,@strBillingType2 as BillingType,
@PlayTime as PlayTime,@intCRMIndex1 as CRMIndex
RETURN
END
ELSE IF @FLAG = 0
BEGIN
-- 해당 아이피의 과금 방식 가져오기
IF (@intCRMIndex1 <> 0 AND @intCRMIndex2 = 0) -- 하나의 과금 방식만 따른다.
BEGIN
SELECT @IPType = strBillingType
FROM TblPCRoomBillingInfo
WHERE intCRMIndex = @intCRMIndex1
END
ELSE IF (@intCRMIndex1 <> 0 AND @intCRMIndex2 <> 0) -- 두개의 과금 방식을 따른다.
BEGIN
SET @IPType = 'C'
END
-- PC방 과금종류를 체크한다.
-- T:정량제,D:정액제
EXEC @FLAG = USPCheckBilling_GameRoom @intCRMIndex1,@intCRMIndex2,@IPType,@OutCRMIndex OUTPUT,@strBillingType OUTPUT,@canUseTime OUTPUT
IF @FLAG <> 0 --ERROR
BEGIN
SET @FLAG = 2
SET @strBillingType = 'N'
-- PC방 과금이 종료된 에러를 리턴한다.
SET @strBillingType2 = @strBillingType
SELECT @FLAG as FLAG,@strBillingType2 as BillingType,
@PlayTime as PlayTime,@intCRMIndex1 as CRMIndex
RETURN
END
ELSE -- SUCCESS
BEGIN
IF @strBillingType = 'D' -- 정액제
BEGIN
-- 아이피 하나를 사용해서 카운트를 1 더하기 한다.
EXEC USPCheckBilling_UpIPCount @OutCRMIndex
-- 임시테이블 TblCurrentUser_Temp에 입력한다.
INSERT INTO TblCurrentUser_Temp (strClientid,UID,intCRMIndex,strip,strBillingType,tinyServerID)
VALUES (@strClientID,@UID,@OutCRMIndex,@ClientIP,@strBillingType,@ServerID)
SET @strBillingType2 = @strBillingType
SELECT @FLAG as FLAG,@strBillingType2 as BillingType,
@canUseTime as PlayTime,@OutCRMIndex as CRMIndex
RETURN
END
ELSE IF @strBillingType = 'T' -- 정액제
BEGIN
-- 임시테이블 TblCurrentUser_Temp에 입력한다.
INSERT INTO TblCurrentUser_Temp (strClientid,UID,intCRMIndex,strip,strBillingType,tinyServerID)
VALUES (@strClientID,@UID,@OutCRMIndex,@ClientIP,@strBillingType,@ServerID)
SET @strBillingType2 = @strBillingType
SELECT @FLAG as FLAG,@strBillingType2 as BillingType,
@canUseTime as PlayTime,@OutCRMIndex as CRMIndex
RETURN
END
END
END
END
GO
-- 캐릭터 선택창 가기 전에 과금 여부를 체크한다.
-- 캐릭터 선택창에서 다시 실행한다.
-- 추가사항 : 블럭된 캐릭터인지 아닌지를 가려야한다.
ALTER PROC USPCheckBilling_CharIDLogin @strClientID VARCHAR(20),@UID INT,@check TINYINT,@ClientIP VARCHAR(15),@ServerID TINYINT
AS
SET NOCOUNT ON
DECLARE @strBillingType CHAR(1) --D,T
DECLARE @strBillingType2 CHAR(2) -- RETURN VALUES
DECLARE @PlayTime INT --(),
DECLARE @CanUseTime INT
DECLARE @FLAG INT
SET @strBillingType = 'N'
SET @PlayTime = 0
SET @CanUseTime = 0
SET @FLAG = -1
DECLARE @IPType CHAR(1) --D,T
DECLARE @intCRMIndex1 INT
DECLARE @intCRMIndex2 INT
SET @intCRMIndex1 =0
SET @intCRMIndex2 =0
DECLARE @BillingDate CHAR(1)
DECLARE @BillingTime CHAR(1)
SET @BillingDate = 'D'
SET @BillingTime = 'T'
-- 피시방중 정량제와 정액제를 같이 사용하는 경우 해당 과금의 피시방인덱스를 얻어와야한다.
DECLARE @OutCRMIndex INT
DECLARE @tinyServerID INT
SET @tinyServerID = -1
DECLARE @FreeTime INT
-- 현재 로그인 된 사용자 인지 아닌지 체크한다.
SELECT @tinyServerID = tinyServerID FROM TblCurrentUser WHERE strClientid = @strClientID
IF @tinyServerID > -1
BEGIN
SET @FLAG = 1 -- .
SET @intCRMIndex1 = @tinyServerID
SET @strBillingType2 = @strBillingType
SELECT @FLAG as FLAG,@strBillingType2 as BillingType,@PlayTime as PlayTime,@intCRMIndex1 as ServerID
RETURN
END
-- 무료계정 여부 체크
IF (@Check = 1) --
BEGIN
SET @FLAG = 0
-- .
INSERT INTO TblCurrentUser(strClientid,UID,intCRMIndex,strip,strBillingType,tinyServerID)
VALUES (@strClientID,@UID,@intCRMIndex1,@ClientIP,@strBillingType,@ServerID)
SET @strBillingType2 = @strBillingType
SELECT @FLAG as FLAG,@strBillingType2 as BillingType,
@PlayTime as PlayTime,@intCRMIndex1 as CRMIndex
RETURN
END
-- 배틀그라운드 클로즈 베타에 따른 인증추가 (2004-04-19)
-- @SERVERID가 7번인 경우는 배틀그라운드에 접속함을 가정한다.
IF (@ServerID = 7 )
BEGIN
IF EXISTS (SELECT * FROM TblBattleLoginUser WHERE strClientID = @strClientID)
BEGIN
SET @FLAG = 0
-- 임시테이블 TblCurrentUser_Temp에 입력한다.
INSERT INTO TblCurrentUser (strClientid,UID,intCRMIndex,strip,strBillingType,tinyServerID)
VALUES (@strClientID,@UID,@intCRMIndex1,@ClientIP,@strBillingType,@ServerID)
-- 'N' 타입으로 리턴한다.
SET @strBillingType2 = 'B'
SET @FreeTime = DATEDIFF(DAY,GETDATE(),'2030-01-01 00:00:00')
SELECT @FLAG as FLAG,@strBillingType2 as BillingType,
@FreeTime as PlayTime,@intCRMIndex1 as CRMIndex
RETURN
END
END
-- 무료계정인지 아닌지 체크한다
SELECT @FreeTime = DATEDIFF(DAY,GETDATE(),RegLoginTime)
FROM TBLPERSONINFO
WHERE UID = @UID
-- 실제 무료 계정임을 나타냄.
IF (@FreeTime >= 0)
BEGIN
SET @FLAG = 0
-- 임시테이블 TblCurrentUser에 입력한다.
INSERT INTO TblCurrentUser (strClientid,UID,intCRMIndex,strip,strBillingType,tinyServerID)
VALUES (@strClientID,@UID,@intCRMIndex1,@ClientIP,@strBillingType,@ServerID)
SET @strBillingType2 = @strBillingType
SELECT @FLAG as FLAG,@strBillingType2 as BillingType,
@FreeTime as PlayTime,@intCRMIndex1 as CRMIndex
RETURN
END
/*************************************************
* @FLAG = 0,@strBillingType ='D',@PlayTime = 남은일자 --개인정액제 성공
* @FLAG = 0,@strBillingType ='T',@PlayTime = 남은시간 --개인정량제 성공
* @FLAG = 1,@strBillingType ='N',@PlayTime = 0 --과금등록이 되어있지 않음
* @FLAG = 2,@strBillingType ='D',@PlayTime = 0 --개인정액제 과금이 종료된 경우
* @FLAG = 3,@strBillingType ='T',@PlayTime = 0 --개인정량제 과금이 종료된 경우
**************************************************/
EXEC @FLAG = USPCheckBilling_Person @strClientID,@strBillingType OUTPUT,@PlayTime OUTPUT
-- 개인과금이 성공적인경우
IF (@FLAG = 0)
BEGIN
-- 정액제 개인 유저인경우
IF (@strBillingType =@BillingDate)
BEGIN
-- .
INSERT INTO TblCurrentUser(strClientid,UID,intCRMIndex,strip,strBillingType,tinyServerID)
VALUES (@strClientID,@UID,@intCRMIndex1,@ClientIP,@strBillingType,@ServerID)
SET @strBillingType2 = @strBillingType
SELECT @FLAG as FLAG,@strBillingType2 as BillingType,
@PlayTime as PlayTime,@intCRMIndex1 as CRMIndex
RETURN
END
-- 정량제 개인 유저인경우
ELSE IF (@strBillingType =@BillingTime)
BEGIN
SET @FLAG = -1
--AGAIN CHECK ClientIP
/*********************************************
* @FLAG = 0,@intCRMIndex1 = 숫자,@intCRMIndex2 = 숫자 -- 피시방 아이피가 정액과 정량 모두를 사용함
* @FLAG = 0,@intCRMIndex1 = 숫자,@intCRMIndex2 = 0 -- 피시방 아이피가 정액 또는 정량중 하나 임
* @FLAG = 1,@intCRMIndex1 = 0,@intCRMIndex2 = 0 -- 피시방 아이피가 아님
*********************************************/
EXEC @FLAG = USPCheckBilling_ClientIP @ClientIP,@intCRMIndex1 OUTPUT,@intCRMIndex2 OUTPUT
-- PC방이 아닌경우
IF @FLAG <> 0
BEGIN
-- 개인정량제로 리턴한다.
SET @FLAG = 0
SET @intCRMIndex1 = 0
-- .
INSERT INTO TblCurrentUser (strClientid,UID,intCRMIndex,strip,strBillingType,tinyServerID)
VALUES (@strClientID,@UID,@intCRMIndex1,@ClientIP,@strBillingType,@ServerID)
SET @strBillingType2 = @strBillingType
SELECT @FLAG as FLAG,@strBillingType2 as BillingType,
@PlayTime as PlayTime,@intCRMIndex1 as CRMIndex
RETURN
END
-- PC방 아이피인경우
ELSE IF @FLAG = 0
BEGIN
-- 해당 아이피의 과금 방식 가져오기
IF (@intCRMIndex1 <> 0 AND @intCRMIndex2 = 0) -- 하나의 과금 방식만 따른다.
BEGIN
SELECT @IPType = strBillingType
FROM TblPCRoomBillingInfo
WHERE intCRMIndex = @intCRMIndex1
END
ELSE IF (@intCRMIndex1 <> 0 AND @intCRMIndex2 <> 0) -- 두개의 과금 방식을 따른다.
BEGIN
SET @IPType = 'C'
END
-- PC방 과금종류를 체크한다.
-- T:정량제,D:정액제
EXEC @FLAG = USPCheckBilling_GameRoom @intCRMIndex1,@intCRMIndex2,@IPType,@OutCRMIndex OUTPUT,@strBillingType OUTPUT,@canUseTime OUTPUT
IF @FLAG <> 0 --ERROR
BEGIN
-- PC방 과금이 종료된 경우이므로 다시 개인정량제로 과금을 적용시킨다.
SET @intCRMIndex1 = 0
SET @FLAG = 0
SET @strBillingType = @BillingTime
-- .
INSERT INTO TblCurrentUser (strClientid,UID,intCRMIndex,strip,strBillingType,tinyServerID)
VALUES (@strClientID,@UID,@intCRMIndex1,@ClientIP,@strBillingType,@ServerID)
SET @strBillingType2 = @strBillingType
SELECT @FLAG as FLAG,@strBillingType2 as BillingType,
@PlayTime as PlayTime,@intCRMIndex1 as CRMIndex
RETURN
END
ELSE
BEGIN
IF @strBillingType = 'D' -- 정액제
BEGIN
-- 아이피 하나를 사용해서 카운트를 1 더하기 한다.
EXEC USPCheckBilling_UpIPCount @OutCRMIndex
-- .
INSERT INTO TblCurrentUser (strClientid,UID,intCRMIndex,strip,strBillingType,tinyServerID)
VALUES (@strClientID,@UID,@OutCRMIndex,@ClientIP,@strBillingType,@ServerID)
SET @strBillingType2 = @strBillingType
SELECT @FLAG as FLAG,@strBillingType2 as BillingType,
@PlayTime as PlayTime,@OutCRMIndex as CRMIndex
RETURN
END
ELSE IF @strBillingType = 'T' -- 정액제
BEGIN
-- .
INSERT INTO TblCurrentUser (strClientid,UID,intCRMIndex,strip,strBillingType,tinyServerID)
VALUES (@strClientID,@UID,@OutCRMIndex,@ClientIP,@strBillingType,@ServerID)
SET @strBillingType2 = @strBillingType
SELECT @FLAG as FLAG,@strBillingType2 as BillingType,
@PlayTime as PlayTime,@OutCRMIndex as CRMIndex
RETURN
END
END
END
END
END
-- 개인과금이 실패된 경우 다시 과금등록된 피시방인지 아닌지 체크한다.
ELSE
BEGIN
--AGAIN CHECK ClientIP
/*********************************************
* @FLAG = 0,@intCRMIndex1 = 숫자,@intCRMIndex2 = 숫자 -- 피시방 아이피가 정액과 정량 모두를 사용함
* @FLAG = 0,@intCRMIndex1 = 숫자,@intCRMIndex2 = 0 -- 피시방 아이피가 정액 또는 정량중 하나 임
* @FLAG = 1,@intCRMIndex1 = 0,@intCRMIndex2 = 0 -- 피시방 아이피가 아님
*********************************************/
EXEC @FLAG = USPCheckBilling_ClientIP @ClientIP,@intCRMIndex1 OUTPUT,@intCRMIndex2 OUTPUT
-- PC방이 아닌경우
IF @FLAG <> 0
BEGIN
-- 임시 적용 부분
/*
SET @FLAG = 0
SET @intCRMIndex1 = 0
SET @strBillingType = 'N'
--접속테이블에 입력한다.
INSERT INTO TblCurrentUser(strClientid,UID,intCRMIndex,strip,strBillingType,tinyServerID)
VALUES (@strClientID,@UID,@intCRMIndex1,@ClientIP,@strBillingType,@ServerID)
SET @strBillingType2 = @strBillingType
SELECT @FLAG as FLAG,@strBillingType2 as BillingType,@PlayTime as PlayTime,@intCRMIndex1 as CRMIndex
RETURN
*/
-- 에러리턴한다.
SET @FLAG = 2
SET @strBillingType2 = @strBillingType
SELECT @FLAG as FLAG,@strBillingType2 as BillingType,
@PlayTime as PlayTime,@intCRMIndex1 as CRMIndex
RETURN
END
ELSE IF @FLAG = 0
BEGIN
-- 해당 아이피의 과금 방식 가져오기
IF (@intCRMIndex1 <> 0 AND @intCRMIndex2 = 0) -- 하나의 과금 방식만 따른다.
BEGIN
SELECT @IPType = strBillingType
FROM TblPCRoomBillingInfo
WHERE intCRMIndex = @intCRMIndex1
END
ELSE IF (@intCRMIndex1 <> 0 AND @intCRMIndex2 <> 0) -- 두개의 과금 방식을 따른다.
BEGIN
SET @IPType = 'C'
END
-- PC방 과금종류를 체크한다.
-- T:정량제,D:정액제
EXEC @FLAG = USPCheckBilling_GameRoom @intCRMIndex1,@intCRMIndex2,@IPType,@OutCRMIndex OUTPUT,@strBillingType OUTPUT,@canUseTime OUTPUT
IF @FLAG <> 0 --ERROR
BEGIN
SET @strBillingType = 'N'
-- PC방 과금이 종료된 에러를 리턴한다.
SET @strBillingType2 = @strBillingType
SELECT @FLAG as FLAG,@strBillingType2 as BillingType,
@PlayTime as PlayTime,@intCRMIndex1 as CRMIndex
RETURN
END
ELSE -- SUCCESS
BEGIN
IF @strBillingType = 'D' -- 정액제
BEGIN
-- 아이피 하나를 사용해서 카운트를 1 더하기 한다.
EXEC USPCheckBilling_UpIPCount @OutCRMIndex
-- .
INSERT INTO TblCurrentUser (strClientid,UID,intCRMIndex,strip,strBillingType,tinyServerID)
VALUES (@strClientID,@UID,@OutCRMIndex,@ClientIP,@strBillingType,@ServerID)
SET @strBillingType2 = @strBillingType
SELECT @FLAG as FLAG,@strBillingType2 as BillingType,
@PlayTime as PlayTime,@OutCRMIndex as CRMIndex
RETURN
END
ELSE IF @strBillingType = 'T' -- 정액제
BEGIN
-- .
INSERT INTO TblCurrentUser (strClientid,UID,intCRMIndex,strip,strBillingType,tinyServerID)
VALUES (@strClientID,@UID,@OutCRMIndex,@ClientIP,@strBillingType,@ServerID)
SET @strBillingType2 = @strBillingType
SELECT @FLAG as FLAG,@strBillingType2 as BillingType,
@PlayTime as PlayTime,@OutCRMIndex as CRMIndex
RETURN
END
END
END
END

View File

@@ -0,0 +1,205 @@
--Create the table which is checking a user playing in other server
USE RYLBillingDB_LOG
GO
CREATE TABLE dbo.[TblCurrentUser_Log] (
[strClientid] [varchar] (20) NULL ,
[UID] [int] NULL ,
[strIp] [varchar] (15) NULL ,
[tinyServerID] [tinyint] NULL ,
[FirstLoginTime] [smalldatetime] NULL ,
[LogoutTime] [smalldatetime] NULL
)
GO
USE youxiuser
GO
CREATE TABLE dbo.[TblCurrentUser_Temp] (
[strClientID] [varchar] (20) NOT NULL ,
[UID] [int] NOT NULL ,
[strIP] [varchar] (15) NOT NULL ,
[tinyServerID] [tinyint] NOT NULL ,
[FirstLoginTime] [smalldatetime] NOT NULL CONSTRAINT [DF_TblCurrentUserTemp_Firs] DEFAULT (getdate()),
)
GO
CREATE TABLE dbo.[TblCurrentUser] (
[strClientID] [varchar] (20) NOT NULL ,
[UID] [int] NOT NULL ,
[strIP] [varchar] (15) NOT NULL ,
[tinyServerID] [tinyint] NOT NULL ,
[FirstLoginTime] [smalldatetime] NOT NULL CONSTRAINT [DF_TblCurrentUser_Firs] DEFAULT (getdate()),
CONSTRAINT [PK_TblCurrentUser] PRIMARY KEY NONCLUSTERED
(
[strClientID]
) WITH FILLFACTOR = 90
)
GO
CREATE VIEW dbo.UView_CurrentUser
AS
SELECT * FROM TblCurrentUser_Temp
UNION ALL
SELECT * FROM TblCurrentUser
GO
CREATE PROC dbo.USPCheckBilling_Login @strClientID varchar(20),@UID int,@Check int,@ClientIP varchar(15),@ServerID Tinyint
AS
SET NOCOUNT ON
DECLARE @FLAG INT
DECLARE @BillingType Char(2)
DECLARE @PlayTime INT
DECLARE @Crmindex INT
SET @FLAG = 1 --ERROR
SET @BillingType ='N'
SET @PlayTime = 0
SET @Crmindex = 0
--CHECKING
IF EXISTS (SELECT strClientID FROM UView_CurrentUser WHERE strClientID = @strClientID)
BEGIN
SELECT @FLAG,@BillingType,@PlayTime,@Crmindex
END
ELSE
BEGIN
INSERT TblCurrentUser_Temp (strClientID,UID,strIP,tinyServerID)
VALUES (@strClientID,@UID,@ClientIP,@ServerID)
IF @@ROWCOUNT <> 1
BEGIN
SELECT @FLAG,@BillingType,@PlayTime,@Crmindex
END
ELSE
BEGIN
SET @FLAG = 0 --SUCCESS
SELECT @FLAG,@BillingType,@PlayTime,@Crmindex
END
END
GO
CREATE PROC dbo.USPCheckBilling_CharIDLogin @strClientID varchar(20),@UID int,@Check int,@ClientIP varchar(15),@ServerID Tinyint
AS
SET NOCOUNT ON
DECLARE @FLAG INT
DECLARE @BillingType Char(2)
DECLARE @PlayTime INT
DECLARE @Crmindex INT
SET @FLAG = 1 --ERROR
SET @BillingType ='N'
SET @PlayTime = 0
SET @Crmindex = 0
--CHECKING
IF EXISTS (SELECT strClientID FROM UView_CurrentUser WHERE strClientID = @strClientID)
BEGIN
SELECT @FLAG,@BillingType,@PlayTime,@Crmindex
END
ELSE
BEGIN
INSERT TblCurrentUser (strClientID,UID,strIP,tinyServerID)
VALUES (@strClientID,@UID,@ClientIP,@ServerID)
IF @@ROWCOUNT <> 1
BEGIN
SELECT @FLAG,@BillingType,@PlayTime,@Crmindex
END
ELSE
BEGIN
SET @FLAG = 0 --SUCCESS
SELECT @FLAG,@BillingType,@PlayTime,@Crmindex
END
END
GO
CREATE PROC dbo.USPCheckBilling_LogOut @ClientID VARCHAR(20)
AS
SET NOCOUNT ON
DECLARE @FLAG INT
IF EXISTS (SELECT strClientID FROM TblCurrentUser_Temp WHERE strClientID = @ClientID)
BEGIN
DELETE TblCurrentUser_Temp WHERE strClientID = @ClientID
IF @@ROWCOUNT <> 1
BEGIN
SET @FLAG = 1 --ERROR
END
SET @FLAG = 0 --SUCCESS
SELECT @FLAG
END
ELSE
BEGIN
IF EXISTS (SELECT strClientID FROM TblCurrentUser WHERE strClientID = @ClientID)
BEGIN
-- LOG WRITE
INSERT RYLBillingDB_LOG.dbo.TblCurrentUser_LOG (strClientid,UID,strIp,tinyServerID,FirstLoginTime,LogoutTime)
SELECT strClientid,UID,strIp,tinyServerID,FirstLoginTime,GETDATE()
FROM TblCurrentUser WHERE strClientID = @ClientID
IF @@ROWCOUNT <> 1
BEGIN
SET @FLAG = 2 --ERROR
SELECT @FLAG
RETURN
END
DELETE TblCurrentUser WHERE strClientID = @ClientID
IF @@ROWCOUNT <> 1
BEGIN
SET @FLAG = 3 --ERROR
SELECT @FLAG
RETURN
END
SET @FLAG = 0 --SUCCESS
SELECT @FLAG
END
ELSE
BEGIN
SET @FLAG = 4
SELECT @FLAG
END
END

View File

@@ -0,0 +1,296 @@
/**********************************************************************
RYLCHECKT
KEEPERSEQ NUMBER NOT NULL
BILLNUM NUMBER NOT NULL
MEMBERID VARCHAR2(20) NOT NULL
RYLUID NUMBER
REGDATE DATE
ADDEDDAY NUMBER
ADDEDTIME NUMBER
ADDEDMONTH NUMBER
CHECKFLAG CHAR(1)
BILLENDDATE DATE
AUTOBILL CHAR(1)
**********************************************************************/
/*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+
CREATE TABLE [TblPersonBilling_log]
(
[intIndex] [int] NULL ,
[strClientID] [varchar] (20) NULL ,
[UID] [int] NULL ,
[strBillingType] [char] (1) NULL ,
[dateEndTime] [smalldatetime] NULL ,
[intServiceTime] [int] NULL ,
[strConvertCHK] [char] (1) NULL ,
[dateInsertTime] [smalldatetime] NULL ,
CHECK ([strBillingType] = 'T' or [strBillingType] = 'D')
)
*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*/
GO
USE RylBillingDB_LOG
GO
-- NHN BILLING TABLE
CREATE TABLE dbo.TblRYLCheckT_LOG
(
BillNum INT NOT NULL primary key
, ClientID varchar (20) NOT NULL
, UID INT NOT NULL
, RegDate SMALLDATETIME
, AddedDay SMALLINT
, AddedTime INT
, AddedMonth SMALLINT
, BillEndDate SMALLDATETIME
, AutoBill CHAR(1)
, CheckFlag CHAR(1)
, InsertTime SMALLDATETIME
)
GO
USE RylBillingDB
GO
-- NHN BILLING TABLE
CREATE TABLE dbo.TblRYLCheckT
(
BillNum INT NOT NULL primary key
, ClientID varchar (20) NOT NULL
, UID INT NOT NULL
, RegDate SMALLDATETIME
, AddedDay SMALLINT
, AddedTime INT
, AddedMonth SMALLINT
, BillEndDate SMALLDATETIME
, AutoBill CHAR(1)
, CheckFlag CHAR(1)
, InsertTime SMALLDATETIME
)
GO
-- .
ALTER PROC agt_PersonBilling_CHK
AS
SET NOCOUNT ON
DECLARE @ROWID INT
DECLARE @BILLNUM INT
DECLARE @ClientID VARCHAR(20)
DECLARE @UID INT
DECLARE @RegDate SMALLDATETIME --
DECLARE @AddedDay SMALLINT --
DECLARE @AddedTime INT --
DECLARE @AddedMonth SMALLINT --
DECLARE @BillEndDate SMALLDATETIME --,
DECLARE @strCorrentState CHAR(1)
DECLARE @TempTable TABLE
(
RowID INT IDENTITY(1,1) PRIMARY KEY
, BillNum INT NOT NULL
, ClientID varchar (20) NOT NULL
, UID INT NOT NULL
, RegDate SMALLDATETIME
, AddedDay SMALLINT
, AddedTime INT
, AddedMonth SMALLINT
, BillEndDate SMALLDATETIME
)
INSERT INTO @TempTable (BillNum,ClientID,UID,RegDate,AddedDay,AddedTime,AddedMonth,BillEndDate)
SELECT BillNum,ClientID,UID,RegDate,AddedDay,AddedTime,AddedMonth,BillEndDate
FROM TblRYLCheckT
WHERE CheckFlag = 'N' ORDER BY BillNum DESC
SET @ROWID = @@ROWCOUNT
WHILE @ROWID > 0
BEGIN
SELECT @BILLNUM = BILLNUM,@ClientID=ClientID,@UID=UID,@RegDate=RegDate,@AddedDay=AddedDay
,@AddedTime=AddedTime,@AddedMonth=AddedMonth,@BillEndDate=BillEndDate
FROM @TempTable
WHERE RowID = @ROWID
-- 2004-12-01 00:00:00 으로 세팅함.
SET @RegDate = CAST( CONVERT(VARCHAR(10),@RegDate,102) AS SMALLDATETIME ) + 1
EXEC agt_PersonBilling_CHK_Include @BILLNUM,@ClientID,@UID,@RegDate,@AddedDay,@AddedTime,@AddedMonth,@BillEndDate
SET @ROWID = @ROWID - 1
END
GO
ALTER PROC agt_PersonBilling_CHK_Include @BILLNUM INT,@ClientID VARCHAR(20),@UID INT,@RegDate SMALLDATETIME,
@AddedDay SMALLINT,@AddedTime INT, @AddedMonth SMALLINT , @BillEndDate SMALLDATETIME
AS
SET NOCOUNT ON
DECLARE @nTime INT
-- 현재 무료사용자인지 체크해서 무료일자를 없앤다.
IF EXISTS (SELECT strClientID FROM TblPersonInfo WHERE UID =@UID)
BEGIN
SELECT @nTime = DATEDIFF(DAY,GETDATE(),RegLoginTime)
FROM TblPersonInfo WHERE UID = @UID
IF @nTime >= 0
BEGIN
UPDATE TblPersonInfo
SET RegLoginTime = GETDATE() - 1
WHERE UID = @UID
END
END
ELSE
BEGIN
INSERT INTO TblPersonInfo
VALUES (@UID,@ClientID,GETDATE()-1,GETDATE())
END
BEGIN TRAN
IF EXISTS (SELECT strClientID FROM TblPersonBillingInfo WHERE strClientID = @ClientID)
BEGIN
-- 정액제인 경우
IF @AddedMonth <> 0
BEGIN
UPDATE TblPersonBillingInfo
SET dateEndTime = DATEADD(MONTH,@AddedMonth,@RegDate),dateRegTime = GETDATE()
WHERE strClientID = @ClientID
IF @@ROWCOUNT <> 1
BEGIN
ROLLBACK TRAN
RETURN
END
END
-- 보상인 경우
IF @AddedDay <> 0
BEGIN
Declare @dateEndTime smalldatetime
SELECT @dateEndTime = dateEndTime FROM TblPersonBillingInfo WHERE strClientID = @ClientID
IF ((@dateEndTime < GETDATE()) or (@dateEndTime IS NULL))
SET @dateEndTime = CONVERT(VARCHAR(10),GETDATE()+1,102)
UPDATE TblPersonBillingInfo
SET dateEndTime = @dateEndTime + @AddedDay, dateRegTime = GETDATE()
WHERE strClientID = @ClientID
IF @@ROWCOUNT <> 1
BEGIN
ROLLBACK TRAN
RETURN
END
END
-- 정량제인 경우
IF @AddedTime <> 0
BEGIN
UPDATE TblPersonBillingInfo
SET intServiceTime = intServiceTime + @AddedTime,dateRegTime = GETDATE()
WHERE strClientID = @ClientID
IF @@ROWCOUNT <> 1
BEGIN
ROLLBACK TRAN
RETURN
END
END
-- 해지했거나 자동결제가 취소된 경우
IF ( @BillEndDate IS NOT NULL )
BEGIN
SET @BillEndDate = CAST (CONVERT(VARCHAR(10),@BillEndDate,102) AS SMALLDATETIME)
UPDATE TblPersonBillingInfo
SET dateEndTime = @BillEndDate,dateRegTime = GETDATE()
WHERE strClientID = @ClientID
IF @@ROWCOUNT <> 1
BEGIN
ROLLBACK TRAN
RETURN
END
END
END
-- 신규 과금 등록자 일경우
ELSE
BEGIN
if @AddedTime > 0
set @RegDate = null -- 정량제일경우 만료일을 넣지 않는다.
INSERT INTO TblPersonBillingInfo VALUES (@ClientID,@UID,DATEADD(MONTH,@AddedMonth,@RegDate),@AddedTime,0,GETDATE())
IF @@ROWCOUNT <> 1
BEGIN
ROLLBACK TRAN
RETURN
END
END
UPDATE TblRYLCheckT
SET CheckFlag = 'Y'
WHERE BILLNUM =@BILLNUM AND CheckFlag = 'N'
IF @@ROWCOUNT <> 1
BEGIN
ROLLBACK TRAN
RETURN
END
COMMIT TRAN
GO
ALTER PROC agt_PersonBilling_Delete
AS
SET NOCOUNT ON
DECLARE @MIN INT -- 전에 가져왔던 최대값
SELECT @MIN = intCount FROM TblImportedNum WHERE strCompType = 'H'
BEGIN TRAN
INSERT INTO RYLBillingDB_LOG.dbo.TblRYLCheckT_LOG
SELECT * FROM TblRYLCheckT
WHERE BillNum <= @MIN
IF @@ERROR <> 0
BEGIN
ROLLBACK TRAN
RETURN
END
DELETE TblRYLCheckT
WHERE BillNum <= @MIN
IF @@ERROR <> 0
BEGIN
ROLLBACK TRAN
RETURN
END
COMMIT TRAN

View File

@@ -0,0 +1,125 @@
# Microsoft Developer Studio Project File - Database Project
Begin DataProject = "DBProject"
MSDTVersion = "70"
SccProjectName = "SAK"
SccLocalPath = "SAK"
SccAuxPath = "SAK"
SccProvider = "SAK"
Node = "|게임 DB 스키마.xls|ac8cc7840020004400420020c2a4d0a4b9c8002e0078006c0073"
Begin Folder = "|대만 서버 통합|b300b9cc0020c11cbc840020d1b5d569"
Script = "|15 자 이하에 이름 중복자 확인.sql|003100350020c7900020c774d558c5d00020c774b9840020c911bcf5c7900020d655c778002e00730071006c"
Script = "|대만.sql|b300b9cc002e00730071006c"
Script = "|서버통합.sql|c11cbc84d1b5d569002e00730071006c"
Script = "|수동 이름 처리.sql|c218b3d90020c774b9840020cc98b9ac002e00730071006c"
Script = "|이름 중복 1 단계.sql|c774b9840020c911bcf5002000310020b2e8acc4002e00730071006c"
Script = "|일반 이름 중복자 확인.sql|c77cbc180020c774b9840020c911bcf5c7900020d655c778002e00730071006c"
Script = "|캐릭터 정보 초기화.sql|ce90b9add1300020c815bcf40020cd08ae30d654002e00730071006c"
End
Begin DBRefFolder = "|데이터베이스 참조|b370c774d130bca0c774c2a40020cc38c870"
End
Node = "|운영 DB 스키마.xls|c6b4c6010020004400420020c2a4d0a4b9c8002e0078006c0073"
Begin Folder = "BillingDB"
Script = "BillingDB_PROC_ADD_MediaWebBillingSys.sql"
Script = "BillingDB_PROC_CREATE.sql"
Script = "BillingDB_TABLE_CREATE.sql"
Script = "BillingDB_Tbl_PROC_ALTER_BattleGround.sql"
Script = "CheckLoginUser_Log_ADD_Taipei.sql"
Script = "NHN_BILLING_ALTER_20041201.sql"
End
Begin Folder = "GameDB"
Begin Folder = "20040627_RYLCreateDB"
Script = "RYL_Create_TBL_PROC_VIEW.sql"
End
Begin Folder = "|20040628_공성전테이블구조_미적용|00320030003000340030003600320038005facf5c131c804d14cc774be14ad6cc870005fbbf8c801c6a9"
Script = "|20040628_공성전테이블생성_서버_버전.sql|00320030003000340030003600320038005facf5c131c804d14cc774be14c0ddc131005fc11cbc84005fbc84c804002e00730071006c"
End
Begin Folder = "20040707_BattleSrv_CreateDB"
Script = "20040707_BattleSrv_CreateDB.sql"
End
Begin Folder = "|20040726_리밸런싱_미적용|00320030003000340030003700320036005fb9acbc38b7f0c2f1005fbbf8c801c6a9"
Script = "AddColumn_CharItemEx.sql"
Script = "alter_deleteChar_without_DelHostoryDB.sql"
Script = "Checking_DoubleItem_Add_PRO_TABLE.sql"
Script = "Convertin_Location_ver2.0.sql"
Script = "Converting_Exp_ver2.0.sql"
Script = "DelHistoryDB_add_View_table.sql"
End
Begin Folder = "20041027_RYLCreateDB_part_1_2"
Script = "DelHistoryDB_PART2_FULL.sql"
Script = "RylCreateDB_Part1_Full.sql"
Script = "RYLCREATEDB_PART2_FULL.sql"
Script = "RylPart2_DeleteChar_Without_DelHistoryDB.sql"
End
Begin Folder = "|20050316_패치때부터_그이후로_새롭게적용된_것들|00320030003000350030003300310036005fd328ce58b54cbd80d130005fadf8c774d6c4b85c005fc0c8b86dac8cc801c6a9b41c005fac83b4e4"
Script = "|20050315-대만통합이후국내에변경된것들.sql|00320030003000350030003300310035002db300b9ccd1b5d569c774d6c4ad6db0b4c5d0bcc0acbdb41cac83b4e4002e00730071006c"
Script = "|20050316-PART2-추가-CampShopInfo-테섭부터적용.sql|00320030003000350030003300310036002d00500041005200540032002dcd94ac00002d00430061006d007000530068006f00700049006e0066006f002dd14cc12dbd80d130c801c6a9002e00730071006c"
Script = "|20050330-part2-테이블변경-CampInfo_add_tnMaterial.sql|00320030003000350030003300330030002d00700061007200740032002dd14cc774be14bcc0acbd002d00430061006d00700049006e0066006f005f006100640064005f0074006e004d006100740065007200690061006c002e00730071006c"
Script = "|20050408-Part2-Update-민우로부터.sql|00320030003000350030003400300038002d00500061007200740032002d005500700064006100740065002dbbfcc6b0b85cbd80d130002e00730071006c"
End
Begin Folder = "|20050429_인수인계|00320030003000350030003400320039005fc778c218c778acc4"
Begin Folder = "|통합스크립트|d1b5d569c2a4d06cb9bdd2b8"
Script = "CREATE_VIEW_UserInfoConvertView.sql"
Script = "Step_1_Execute_CreateTempObject.sql"
Script = "Step_2_Execute_UnifiedCharList.sql"
Script = "Step_3_Execute_CharInfo.sql"
Script = "Step_4_Execute_UserInfo_bind.sql"
Script = "Step_5_Execute_GuildDelete.sql"
End
Begin Folder = "|해외지원|d574c678c9c0c6d0"
Script = "Transfer_From_OldGameDB_To_NewGameDB_China.sql"
End
Begin Folder = "|DB생성스크립트|00440042c0ddc131c2a4d06cb9bdd2b8"
Script = "|20050316-PART2-추가-CampShopInfo-테섭부터적용.sql|00320030003000350030003300310036002d00500041005200540032002dcd94ac00002d00430061006d007000530068006f00700049006e0066006f002dd14cc12dbd80d130c801c6a9002e00730071006c"
Script = "|20050330-part2-테이블변경-CampInfo_add_tnMaterial.sql|00320030003000350030003300330030002d00700061007200740032002dd14cc774be14bcc0acbd002d00430061006d00700049006e0066006f005f006100640064005f0074006e004d006100740065007200690061006c002e00730071006c"
Script = "|20050408-Part2-Update-민우로부터.sql|00320030003000350030003400300038002d00500061007200740032002d005500700064006100740065002dbbfcc6b0b85cbd80d130002e00730071006c"
Script = "CreateRYLDB_20041201.sql"
Script = "DelHistoryDB_20041201.sql"
End
End
Begin Folder = "|정리전데이터(옛날꺼)|c815b9acc804b370c774d1300028c61bb0a0aebc0029"
Script = "GameDB_PROC_CREATE.sql"
Script = "GameDB_TABLE_ADD_CastleBattle.sql"
Script = "GAMEDB_TABLE_ALTER_QuickSlot.sql"
Script = "GameDB_Table_Change_GuildInfo.sql"
Script = "GameDB_TABLE_CREATE.sql"
Script = "GameDB_TABLE_CREATE_CharDelHistory.sql"
Script = "GameDB_Table_Create_EventItem.sql"
Script = "GameDB_VIEW_CREATE.sql"
End
Begin Folder = "|통합용스크립트_real|d1b5d569c6a9c2a4d06cb9bdd2b8005f007200650061006c"
Script = "|영구블럭대상자캐릭터삭제.sql|c601ad6cbe14b7edb300c0c1c790ce90b9add130c0adc81c002e00730071006c"
Script = "|테섭DB테이블설계변경에따른데이터입력작업.sql|d14cc12d00440042d14cc774be14c124acc4bcc0acbdc5d0b530b978b370c774d130c785b825c791c5c5002e00730071006c"
Script = "CreateRYLDB_20041201.sql"
Node = "|DB작업히스토리.txt|00440042c791c5c5d788c2a4d1a0b9ac002e007400780074"
Script = "DelHistoryDB_20041201.sql"
Script = "Step1_Create_object_for_unifyDB.sql"
Script = "Step2_execute_Step1_script.sql"
Script = "Step2_execute_Step1_script_add.sql"
Script = "Step3_execute_in_China.sql"
Script = "Step4_execute_Init_Guild_China.sql"
End
Begin Folder = "|해외지원|d574c678c9c0c6d0"
Script = "Transfer_From_OldGameDB_To_NewGameDB_China.sql"
End
Begin Folder = "Part2 UPDATE"
Script = "|1420_피아식별 관련 테이블 수정 및 프로시저 추가.sql|0031003400320030005fd53cc544c2ddbcc40020ad00b8280020d14cc774be140020c218c8150020bc0f0020d504b85cc2dcc8000020cd94ac00002e00730071006c"
Script = "|1460_공성 DB 변경.sql|0031003400360030005facf5c1310020004400420020bcc0acbd002e00730071006c"
Script = "|1460_적아군 식별.sql|0031003400360030005fc801c544ad700020c2ddbcc4002e00730071006c"
Script = "|1540_존16 생산정보 추가.sql|0031003500340030005fc874003100360020c0ddc0b0c815bcf40020cd94ac00002e00730071006c"
Script = "|1560_GM 캐릭터 관련.sql|0031003500360030005f0047004d0020ce90b9add1300020ad00b828002e00730071006c"
Script = "|1620_2국체제로 회귀.sql|0031003600320030005f0032ad6dccb4c81cb85c0020d68cadc0002e00730071006c"
Script = "|1680_길드 길드원 관련 쿼리 삭제.sql|0031003600380030005fae38b4dc0020ae38b4dcc6d00020ad00b8280020cffcb9ac0020c0adc81c002e00730071006c"
Script = "1700_AdminCommandLog.sql"
Script = "|1720_퀘스트 히스토리 수정.sql|0031003700320030005fd018c2a4d2b80020d788c2a4d1a0b9ac0020c218c815002e00730071006c"
Script = "|1760_캐릭삭제 3개월 이상된 캐릭터 데이터 삭제.sql|0031003700360030005fce90b9adc0adc81c00200033ac1cc6d40020c774c0c1b41c0020ce90b9add1300020b370c774d1300020c0adc81c002e00730071006c"
Script = "|조이스틱 관련 쿼리.sql|c870c774c2a4d2f10020ad00b8280020cffcb9ac002e00730071006c"
Begin Folder = "ETC"
Script = "|1420_잘못된 1420 스크립트 실행 후 수습.sql|0031003400320030005fc798babbb41c002000310034003200300020c2a4d06cb9bdd2b80020c2e4d5890020d6c40020c218c2b5002e00730071006c"
Script = "|ETC_길마 없는 길드 바로잡기.sql|004500540043005fae38b9c80020c5c6b2940020ae38b4dc0020bc14b85cc7a1ae30002e00730071006c"
End
Script = "|xxxx_공성전 추가.sql|0078007800780078005facf5c131c8040020cd94ac00002e00730071006c"
End
End
Script = "v.1800] Part2_GameDB Creation(Global).sql"
Script = "v.457] Part1_GameDB Creation(Global).sql"
End

View File

@@ -0,0 +1,24 @@
Microsoft Visual Studio Solution File, Format Version 8.00
Project("{4F174C21-8C12-11D0-8340-0000F80270F8}") = "DBProject", "DBProject.dbp", "{C6270AB5-4071-41CD-9933-3EE6CC92C06D}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
Global
GlobalSection(SourceCodeControl) = preSolution
SccNumberOfProjects = 2
SccLocalPath0 = .
CanCheckoutShared = false
SolutionUniqueID = {085D29CF-F198-4B0B-8D88-D337463C53ED}
SccProjectUniqueName1 = DBProject.dbp
SccLocalPath1 = .
CanCheckoutShared = false
EndGlobalSection
GlobalSection(SolutionConfiguration) = preSolution
EndGlobalSection
GlobalSection(ProjectConfiguration) = postSolution
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
EndGlobalSection
GlobalSection(ExtensibilityAddIns) = postSolution
EndGlobalSection
EndGlobal

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,240 @@
/******************************************************************************
** File:
** Name: Table_Name
** Desc:
**
** This template can be customized:
**
**
** Auth:
** Date:
*******************************************************************************
** Change History
*******************************************************************************
** Date: Author: Description:
** -------- -------- -------------------------------------------
**
*******************************************************************************/
DROP TABLE TblGuildOtherList
GO
PRINT 'Creating Table TblGuildOtherList'
GO
CREATE TABLE [TblGuildOtherList] (
[nGuildID] [int] NOT NULL ,
[nOtherGuildID] [int] NOT NULL ,
[tnRelation] [tinyint] NOT NULL,
[tnState] [tinyint] NOT NULL ,
[waitTime] SMALLDATETIME NOT NULL,
CONSTRAINT [PK_TblGuildOtherList_1] PRIMARY KEY CLUSTERED
(
[nGuildID],
[nOtherGuildID]
) ON [PRIMARY] ,
CONSTRAINT [FK_TblGuildInfo_TblGuildOtherList] FOREIGN KEY
(
[nGuildID]
) REFERENCES [TblGuildInfo] (
[nGuildID]
) ON DELETE CASCADE ,
CHECK ([tnRelation] = 0 or [tnRelation] = 1 or [tnRelation] = 2)
) ON [PRIMARY]
GO
CREATE TABLE TblCastleInfo
(
nCastleID INT IDENTITY(1,1)
, nGuildID INT
, snTax SMALLINT
, nTaxMoney INT
, tnZone TINYINT
, tnTaxIncomeRemainDay TINYINT
, tnInvincibleDay TINYINT
, LastSiegeTime SMALLDATETIME
, bRight BINARY(10)
, strCastleName VARCHAR(50)
, fPosInX FLOAT(1)
, fPosInY FLOAT(1)
, fPosInZ FLOAT(1)
, fPosOutX FLOAT(1)
, fPosOutY FLOAT(1)
, fPosOutZ FLOAT(1)
)
GO
PRINT 'Creating Table TblCastleCreatureInfo'
GO
CREATE TABLE TblCastleCreatureInfo
(
nCreatureID INT IDENTITY(1,1) PRIMARY KEY
, nCastleID INT
, nHP INT
, snObjectType SMALLINT
, fDirection FLOAT(1)
, tnState TINYINT
, tnSubState TINYINT
, tnUpgradeStep TINYINT
, tnUpgradeType TINYINT
, RemainTime SMALLDATETIME
, fPosX FLOAT(1)
, fPosY FLOAT(1)
, fPosZ FLOAT(1)
)
GO
PRINT 'CREATE TABLE TblCampInfo'
GO
CREATE TABLE TblCampInfo
(
nCampID INT IDENTITY(1,1) PRIMARY KEY
, nGuildID INT
, nHP INT
, tnZone TINYINT
, tnChannel TINYINT
, tnState TINYINT
, tnUpgradeStep TINYINT
, RemainTime SMALLDATETIME
, LastUseTime SMALLDATETIME
, bRight BINARY(10)
, fPosX FLOAT(1)
, fPosY FLOAT(1)
, fPosZ FLOAT(1)
)
go
/********************************************
-- 성정보
INSERT INTO TblCastleInfo (nGuildID,snTax,nTaxMoney,tnZone,tnTaxIncomeRemainDay,
tnInvincibleDay,LastSiegeTime,bRight,strCastleName,fPosInX,fPosInY,fPosInZ,
fPosOutX,fPosOutY,fPosOutZ)
VALUES (10989,0,0,8,7,0,GETDATE(),0x0000,'어쭈구리',1380,71,1690,1340,70,1677)
-- 진지정보
INSERT INTO TblCampInfo (nGuildID,nHP,tnZone,tnChannel,tnState,tnUpgradeStep,
RemainTime,LastUseTime,bRight,fPosX,fPosY,fPosZ)
VALUES (10989,10,8,0,0,0,GETDATE(),GETDATE(),0x00,1424,0,1372)
--상징물
INSERT INTO TblCastleCreatureInfo(nCastleID,nHP,snObjectType,fDirection,tnState,
tnSubState,tnUpgradeStep,tnUpgradeType,RemainTime,fPosX,fPosY,fPosZ)
VALUES (1,10000,5000,0,0,0,0,0,GETDATE(),1410,71,1695)
--성 앞문
INSERT INTO TblCastleCreatureInfo(nCastleID,nHP,snObjectType,fDirection,tnState,
tnSubState,tnUpgradeStep,tnUpgradeType,RemainTime,fPosX,fPosY,fPosZ)
VALUES (1,10000,5288,3.1,0,0,0,0,GETDATE(),1409.4,71,1610)
--성 뒷문
INSERT INTO TblCastleCreatureInfo(nCastleID,nHP,snObjectType,fDirection,tnState,
tnSubState,tnUpgradeStep,tnUpgradeType,RemainTime,fPosX,fPosY,fPosZ)
VALUES (1,10000,5336,3.1,0,0,0,0,GETDATE(),1371,71,1727)
--NPC
INSERT INTO TblCastleCreatureInfo(nCastleID,nHP,snObjectType,fDirection,tnState,
tnSubState,tnUpgradeStep,tnUpgradeType,RemainTime,fPosX,fPosY,fPosZ)
VALUES (1,10000,5385,4.6,7,0,0,0,GETDATE(),1364.6,96,1660.2)
INSERT INTO TblCastleCreatureInfo(nCastleID,nHP,snObjectType,fDrection,tnState,
tnSubState,tnUpgradeStep,tnUpgradeType,RemainTime,fPosX,fPosY,fPosZ)
VALUES (1,10000,5385,4.6,7,0,0,0,GETDATE(),1364.2,96,1644.8)
INSERT INTO TblCastleCreatureInfo(nCastleID,nHP,snObjectType,fDirection,tnState,
tnSubState,tnUpgradeStep,tnUpgradeType,RemainTime,fPosX,fPosY,fPosZ)
VALUES (1,10000,5385,3.1,7,0,0,0,GETDATE(),1377.6,96,1615.3)
INSERT INTO TblCastleCreatureInfo(nCastleID,nHP,snObjectType,fDirection,tnState,
tnSubState,tnUpgradeStep,tnUpgradeType,RemainTime,fPosX,fPosY,fPosZ)
VALUES (1,10000,5385,3.1,7,0,0,0,GETDATE(),1440.4,96.5,1616.4)
INSERT INTO TblCastleCreatureInfo(nCastleID,nHP,snObjectType,fDirection,tnState,
tnSubState,tnUpgradeStep,tnUpgradeType,RemainTime,fPosX,fPosY,fPosZ)
VALUES (1,10000,5385,1.5,7,0,0,0,GETDATE(),1453.6,96,1638.2)
INSERT INTO TblCastleCreatureInfo(nCastleID,nHP,snObjectType,fDirection,tnState,
tnSubState,tnUpgradeStep,tnUpgradeType,RemainTime,fPosX,fPosY,fPosZ)
VALUES (1,10000,5385,1.5,7,0,0,0,GETDATE(),1364.6,96,1695.4)
INSERT INTO TblCastleCreatureInfo(nCastleID,nHP,snObjectType,fDirection,tnState,
tnSubState,tnUpgradeStep,tnUpgradeType,RemainTime,fPosX,fPosY,fPosZ)
VALUES (1,10000,5385,6.2,7,0,0,0,GETDATE(),1436.9,96.5,1727.5)
INSERT INTO TblCastleCreatureInfo(nCastleID,nHP,snObjectType,fDirection,tnState,
tnSubState,tnUpgradeStep,tnUpgradeType,RemainTime,fPosX,fPosY,fPosZ)
VALUES (1,10000,5385,6.2,7,0,0,0,GETDATE(),1378.4,96.5,1726.9)
********************************************************************/
GO
PRINT 'CREATE USPCastleUpdate'
GO
CREATE PROC USPCastleUpdate @nCastleID INT,@nGuildID INT,@snTax SMALLINT,@nTaxMoney INT,
@tnTaxIncomeRemainDay TINYINT,@tnInvincibleDay TINYINT
AS
SET NOCOUNT ON
DECLARE @RETURN INT
UPDATE TblCastleInfo
SET nGuildID = @nGuildID,snTax = @snTax,nTaxMoney=@nTaxMoney,
tnTaxIncomeRemainDay=@tnTaxIncomeRemainDay,tnInvincibleDay = @tnInvincibleDay
WHERE nCastleID = @nCastleID
SET @RETURN = @@ROWCOUNT
SELECT @RETURN
GO
PRINT 'CREATE USPCampCreate'
GO
CREATE PROC USPCampCreate @nGuildID INT,@tnZone TINYINT,@tnChannel TINYINT,@fPosX FLOAT,@fPosY FLOAT,@fPosZ FLOAT
AS
SET NOCOUNT ON
DECLARE @nCampID INT
SET @nCampID = 0
BEGIN TRAN
INSERT INTO TblCampInfo (nGuildID,nHP,tnZone,tnChannel,
tnState,tnUpgradeStep,RemainTime,LastUseTime,bRight,fPosX,fPosY,fPosZ)
VALUES (@nGuildID,10,@tnZone,@tnChannel,4,0,GETDATE(),GETDATE(),0x01030101010101010101,@fPosX,@fPosY,@fPosZ)
IF @@ERROR <> 0
BEGIN
SELECT @nCampID
ROLLBACK TRAN
RETURN
END
SET @nCampID = CAST(SCOPE_IDENTITY() AS INT)
COMMIT TRAN
SELECT @nCampID
GO
PRINT 'CREATE USPCampDelete'
GO
CREATE PROC USPCampDelete @CampID INT
AS
SET NOCOUNT ON
DECLARE @RETURN INT
DELETE TblCampInfo
WHERE nCampID = @CampID
SET @RETURN = @@ROWCOUNT
SELECT @RETURN

View File

@@ -0,0 +1,200 @@
-- »ý¼º ½ºÅ©¸³Æ®
print 'create table TblItemLog'
go
CREATE TABLE [dbo].[TblItemLog]
(
InsertTime DATETIME default(getdate())
, UpdateTime DATETIME default(getdate())
, UID INT
, CID INT
, ItemSerial BIGINT
, CharName varchar(20)
, Qty INT CHECK(Qty > 0 )
, CheckField bit default (0)
)
CREATE NONCLUSTERED INDEX nidx_TblItemLog_UidCidItemSerial ON TblItemLog (UID,CID,ItemSerial)
GO
print 'create USP_InsertItemLog ..'
go
CREATE PROC USP_InsertItemLog
(
@UID INT,
@CID INT,
@ItemSerial BIGINT,
@CharName VARCHAR(20),
@Qty INT
)
AS
SET NOCOUNT ON
DECLARE @bQty INT
SET @bQty = 0
SELECT @bQty = Qty FROM TblItemLog
WHERE UID = @UID AND CID = @CID AND ItemSerial = @ItemSerial AND CheckField = 0
IF (@bQty > 0 )
BEGIN
IF (@bQty >= @Qty)
BEGIN
UPDATE TblItemLog
SET UpdateTime = GETDATE()
WHERE UID = @UID AND CID = @CID
AND ItemSerial = @ItemSerial AND CheckField = 0
END
ELSE
BEGIN
UPDATE TblItemLog
SET UpdateTime = GETDATE(),Qty = @Qty
WHERE UID = @UID AND CID = @CID
AND ItemSerial = @ItemSerial AND CheckField = 0
END
END
ELSE
BEGIN
INSERT INTO TblItemLog (UID,CID,ItemSerial,CharName,Qty)
Values (@UID, @CID, @ItemSerial, @CharName, @Qty)
END
GO
print 'create USP_UpdateCheckField_ItemLog ..'
go
CREATE PROC USP_UpdateCheckField_ItemLog
(
@UID INT,
@CID INT,
@ItemSerial BIGINT
)
AS
SET NOCOUNT ON
UPDATE TblItemLog
SET CheckField = 1,UpdateTime = Getdate()
WHERE UID = @UID AND CID = @CID AND ItemSerial = @ItemSerial AND CheckField = 0
GO
PRINT 'ALTER TABLE CharItemEx'
go
ALTER TABLE dbo.CharItemEx
ADD TempInven binary(1440)
GO
/**************************************************************
*
*
*
*
****************************************************************/
--CONVERTING EXP
SELECT UID,Level,Exp INTO Temp_CharInfo_1 FROM CharInfo_1
SELECT UID,Level,Exp INTO Temp_CharInfo_2 FROM CharInfo_2
SELECT UID,Level,Exp INTO Temp_CharInfo_3 FROM CharInfo_3
SELECT UID,Level,Exp INTO Temp_CharInfo_4 FROM CharInfo_4
UPDATE A
SET A.Exp = A.Exp * [percent]
FROM CharInfo_1 A,ConvertExp B
WHERE A.Level = B.Level
UPDATE A
SET A.Exp = A.Exp * [percent]
FROM CharInfo_2 A,ConvertExp B
WHERE A.Level = B.Level
UPDATE A
SET A.Exp = A.Exp * [percent]
FROM CharInfo_3 A,ConvertExp B
WHERE A.Level = B.Level
UPDATE A
SET A.Exp = A.Exp * [percent]
FROM CharInfo_4 A,ConvertExp B
WHERE A.Level = B.Level
SELECT A.UID INTO Temp_ErrorConvert FROM CharInfo A JOIN ConvertExp B
ON A.Level = B.Level
WHERE B.newExp - A.Exp < 0
/****************************************************************
*
*
*
*****************************************************************/
GO
print 'Using CharDelHistory'
USE CharDelHistory
INSERT INTO DelCharItem (UID)
SELECT UID FROM DelCharInfo
WHERE UID NOT IN (SELECT UID from dbo.DelCharItem)
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[DelCharInfo]') and OBJECTPROPERTY(id, N'IsView') = 1)
drop view [dbo].DelCharInfo
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[DelCharSkill]') and OBJECTPROPERTY(id, N'IsView') = 1)
drop view [dbo].DelCharInfo
create view DelCharInfo
AS
SELECT * FROM dbo.DelCharInfo_1
UNION ALL
SELECT * FROM dbo.DelCharInfo_2
UNION ALL
SELECT * FROM dbo.DelCharInfo_3
UNION ALL
SELECT * FROM dbo.DelCharInfo_4
create view DelCharSkill
AS
SELECT * FROM dbo.DelCharSkill_1
UNION ALL
SELECT * FROM dbo.DelCharSkill_2
UNION ALL
SELECT * FROM dbo.DelCharSkill_3
UNION ALL
SELECT * FROM dbo.DelCharSkill_4
ALTER TABLE dbo.DelCharItem
ADD TempInven binary(1440)

View File

@@ -0,0 +1,9 @@
PRINT 'ALTER TABLE CharItemEx'
go
ALTER TABLE dbo.CharItemEx
ADD TempInven binary(1440)
GO

View File

@@ -0,0 +1,91 @@
-- »ý¼º ½ºÅ©¸³Æ®
print 'create table TblItemLog'
go
CREATE TABLE [dbo].[TblItemLog]
(
InsertTime DATETIME default(getdate())
, UpdateTime DATETIME default(getdate())
, UID INT
, CID INT
, ItemSerial BIGINT
, CharName varchar(20)
, Qty INT CHECK(Qty > 0 )
, CheckField bit default (0)
)
CREATE NONCLUSTERED INDEX nidx_TblItemLog_UidCidItemSerial ON TblItemLog (UID,CID,ItemSerial)
GO
print 'create USP_InsertItemLog ..'
go
CREATE PROC USP_InsertItemLog
(
@UID INT,
@CID INT,
@ItemSerial BIGINT,
@CharName VARCHAR(20),
@Qty INT
)
AS
SET NOCOUNT ON
DECLARE @bQty INT
SET @bQty = 0
SELECT @bQty = Qty FROM TblItemLog
WHERE UID = @UID AND CID = @CID AND ItemSerial = @ItemSerial AND CheckField = 0
IF (@bQty > 0 )
BEGIN
IF (@bQty >= @Qty)
BEGIN
UPDATE TblItemLog
SET UpdateTime = GETDATE()
WHERE UID = @UID AND CID = @CID
AND ItemSerial = @ItemSerial AND CheckField = 0
END
ELSE
BEGIN
UPDATE TblItemLog
SET UpdateTime = GETDATE(),Qty = @Qty
WHERE UID = @UID AND CID = @CID
AND ItemSerial = @ItemSerial AND CheckField = 0
END
END
ELSE
BEGIN
INSERT INTO TblItemLog (UID,CID,ItemSerial,CharName,Qty)
Values (@UID, @CID, @ItemSerial, @CharName, @Qty)
END
GO
print 'create USP_UpdateCheckField_ItemLog ..'
go
CREATE PROC USP_UpdateCheckField_ItemLog
(
@UID INT,
@CID INT,
@ItemSerial BIGINT
)
AS
SET NOCOUNT ON
UPDATE TblItemLog
SET CheckField = 1,UpdateTime = Getdate()
WHERE UID = @UID AND CID = @CID AND ItemSerial = @ItemSerial AND CheckField = 0
GO

View File

@@ -0,0 +1,142 @@
UPDATE CharinfoEx
SET ServerID = cast ((12 * POWER(2, 24)) + 2 as varbinary)
WHERE cast(ServerID as varbinary) / POWER(2, 24) IN (1,2,3,4,5)
-- ÈÞ¸Õ
UPDATE CharPos_1 SET LastPointX = 2792,LastPointY=0,LastPointZ = 2515
WHERE UID IN (SELECT UID FROM CharInfo_1 WHERE Level between 1 and 20 AND Nationality = 0)
UPDATE CharPos_2 SET LastPointX = 2792,LastPointY=0,LastPointZ = 2515
WHERE UID IN (SELECT UID FROM CharInfo_2 WHERE Level between 1 and 20 AND Nationality = 0)
UPDATE CharPos_3 SET LastPointX = 2792,LastPointY=0,LastPointZ = 2515
WHERE UID IN (SELECT UID FROM CharInfo_3 WHERE Level between 1 and 20 AND Nationality = 0)
UPDATE CharPos_4 SET LastPointX = 2792,LastPointY=0,LastPointZ = 2515
WHERE UID IN (SELECT UID FROM CharInfo_4 WHERE Level between 1 and 20 AND Nationality = 0)
-- 21-40
UPDATE CharPos_1 SET LastPointX = 2817,LastPointY=0,LastPointZ = 2471
WHERE UID IN (SELECT UID FROM CharInfo_1 WHERE Level between 21 and 40 AND Nationality = 0)
UPDATE CharPos_2 SET LastPointX = 2817,LastPointY=0,LastPointZ = 2471
WHERE UID IN (SELECT UID FROM CharInfo_2 WHERE Level between 21 and 40 AND Nationality =0)
UPDATE CharPos_3 SET LastPointX = 2817,LastPointY=0,LastPointZ = 2471
WHERE UID IN (SELECT UID FROM CharInfo_3 WHERE Level between 21 and 40 AND Nationality = 0)
UPDATE CharPos_4 SET LastPointX = 2817,LastPointY=0,LastPointZ = 2471
WHERE UID IN (SELECT UID FROM CharInfo_4 WHERE Level between 21 and 40 AND Nationality = 0)
-- 41-60
UPDATE CharPos_1 SET LastPointX = 2814,LastPointY=0,LastPointZ = 2372
WHERE UID IN (SELECT UID FROM CharInfo_1 WHERE Level between 41 and 60 AND Nationality = 0)
UPDATE CharPos_2 SET LastPointX = 2814,LastPointY=0,LastPointZ = 2372
WHERE UID IN (SELECT UID FROM CharInfo_2 WHERE Level between 41 and 60 AND Nationality = 0)
UPDATE CharPos_3 SET LastPointX = 2814,LastPointY=0,LastPointZ = 2372
WHERE UID IN (SELECT UID FROM CharInfo_3 WHERE Level between 41 and 60 AND Nationality = 0)
UPDATE CharPos_4 SET LastPointX = 2814,LastPointY=0,LastPointZ = 2372
WHERE UID IN (SELECT UID FROM CharInfo_4 WHERE Level between 41 and 60 AND Nationality = 0)
-- 61 - 80
UPDATE CharPos_1 SET LastPointX = 2797,LastPointY=0,LastPointZ = 2332
WHERE UID IN (SELECT UID FROM CharInfo_1 WHERE Level between 61 and 80 AND Nationality = 0)
UPDATE CharPos_2 SET LastPointX = 2797,LastPointY=0,LastPointZ = 2332
WHERE UID IN (SELECT UID FROM CharInfo_2 WHERE Level between 61 and 80 AND Nationality = 0)
UPDATE CharPos_3 SET LastPointX = 2797,LastPointY=0,LastPointZ = 2332
WHERE UID IN (SELECT UID FROM CharInfo_3 WHERE Level between 61 and 80 AND Nationality = 0)
UPDATE CharPos_4 SET LastPointX = 2797,LastPointY=0,LastPointZ = 2332
WHERE UID IN (SELECT UID FROM CharInfo_4 WHERE Level between 61 and 80 AND Nationality = 0)
-- 81 - 95
UPDATE CharPos_1 SET LastPointX = 2563,LastPointY=0,LastPointZ = 2318
WHERE UID IN (SELECT UID FROM CharInfo_1 WHERE Level between 81 and 100 AND Nationality = 0)
UPDATE CharPos_2 SET LastPointX = 2563,LastPointY=0,LastPointZ = 2318
WHERE UID IN (SELECT UID FROM CharInfo_2 WHERE Level between 81 and 100 AND Nationality = 0)
UPDATE CharPos_3 SET LastPointX = 2563,LastPointY=0,LastPointZ = 2318
WHERE UID IN (SELECT UID FROM CharInfo_3 WHERE Level between 81 and 100 AND Nationality = 0)
UPDATE CharPos_4 SET LastPointX = 2563,LastPointY=0,LastPointZ = 2318
WHERE UID IN (SELECT UID FROM CharInfo_4 WHERE Level between 81 and 100 AND Nationality = 0)
-- ¾ÆÄ­
UPDATE CharPos_1 SET LastPointX = 2804,LastPointY=0,LastPointZ = 2514
WHERE UID IN (SELECT UID FROM CharInfo_1 WHERE Level between 1 and 20 AND Nationality = 1)
UPDATE CharPos_2 SET LastPointX = 2804,LastPointY=0,LastPointZ = 2514
WHERE UID IN (SELECT UID FROM CharInfo_2 WHERE Level between 1 and 20 AND Nationality = 1)
UPDATE CharPos_3 SET LastPointX = 2804,LastPointY=0,LastPointZ = 2514
WHERE UID IN (SELECT UID FROM CharInfo_3 WHERE Level between 1 and 20 AND Nationality = 1)
UPDATE CharPos_4 SET LastPointX = 2804,LastPointY=0,LastPointZ = 2514
WHERE UID IN (SELECT UID FROM CharInfo_4 WHERE Level between 1 and 20 AND Nationality = 1)
-- 21-40
UPDATE CharPos_1 SET LastPointX = 2834,LastPointY=0,LastPointZ = 2482
WHERE UID IN (SELECT UID FROM CharInfo_1 WHERE Level between 21 and 40 AND Nationality = 1)
UPDATE CharPos_2 SET LastPointX = 2834,LastPointY=0,LastPointZ = 2482
WHERE UID IN (SELECT UID FROM CharInfo_2 WHERE Level between 21 and 40 AND Nationality = 1)
UPDATE CharPos_3 SET LastPointX = 2834,LastPointY=0,LastPointZ = 2482
WHERE UID IN (SELECT UID FROM CharInfo_3 WHERE Level between 21 and 40 AND Nationality = 1)
UPDATE CharPos_4 SET LastPointX = 2834,LastPointY=0,LastPointZ = 2482
WHERE UID IN (SELECT UID FROM CharInfo_4 WHERE Level between 21 and 40 AND Nationality = 1)
-- 41-60
UPDATE CharPos_1 SET LastPointX = 2856,LastPointY=0,LastPointZ = 2338
WHERE UID IN (SELECT UID FROM CharInfo_1 WHERE Level between 41 and 60 AND Nationality = 1)
UPDATE CharPos_2 SET LastPointX = 2856,LastPointY=0,LastPointZ = 2338
WHERE UID IN (SELECT UID FROM CharInfo_2 WHERE Level between 41 and 60 AND Nationality = 1)
UPDATE CharPos_3 SET LastPointX = 2856,LastPointY=0,LastPointZ = 2338
WHERE UID IN (SELECT UID FROM CharInfo_3 WHERE Level between 41 and 60 AND Nationality = 1)
UPDATE CharPos_4 SET LastPointX = 2856,LastPointY=0,LastPointZ = 2338
WHERE UID IN (SELECT UID FROM CharInfo_4 WHERE Level between 41 and 60 AND Nationality = 1)
-- 61 - 80
UPDATE CharPos_1 SET LastPointX = 2822,LastPointY=0,LastPointZ = 2305
WHERE UID IN (SELECT UID FROM CharInfo_1 WHERE Level between 61 and 80 AND Nationality = 1)
UPDATE CharPos_2 SET LastPointX = 2822,LastPointY=0,LastPointZ = 2305
WHERE UID IN (SELECT UID FROM CharInfo_2 WHERE Level between 61 and 80 AND Nationality = 1)
UPDATE CharPos_3 SET LastPointX = 2822,LastPointY=0,LastPointZ = 2305
WHERE UID IN (SELECT UID FROM CharInfo_3 WHERE Level between 61 and 80 AND Nationality = 1)
UPDATE CharPos_4 SET LastPointX = 2822,LastPointY=0,LastPointZ = 2305
WHERE UID IN (SELECT UID FROM CharInfo_4 WHERE Level between 61 and 80 AND Nationality = 1)
-- 81 - 95
UPDATE CharPos_1 SET LastPointX = 2674,LastPointY=0,LastPointZ = 2317
WHERE UID IN (SELECT UID FROM CharInfo_1 WHERE Level between 81 and 100 AND Nationality = 1)
UPDATE CharPos_2 SET LastPointX = 2674,LastPointY=0,LastPointZ = 2317
WHERE UID IN (SELECT UID FROM CharInfo_2 WHERE Level between 81 and 100 AND Nationality = 1)
UPDATE CharPos_3 SET LastPointX = 2674,LastPointY=0,LastPointZ = 2317
WHERE UID IN (SELECT UID FROM CharInfo_3 WHERE Level between 81 and 100 AND Nationality = 1)
UPDATE CharPos_4 SET LastPointX = 2674,LastPointY=0,LastPointZ = 2317
WHERE UID IN (SELECT UID FROM CharInfo_4 WHERE Level between 81 and 100 AND Nationality = 1)

View File

@@ -0,0 +1,36 @@
/**************************************************************
*
*
*
*
****************************************************************/
--CONVERTING EXP
SELECT UID,Level,Exp INTO Temp_CharInfo_1 FROM CharInfo_1
SELECT UID,Level,Exp INTO Temp_CharInfo_2 FROM CharInfo_2
SELECT UID,Level,Exp INTO Temp_CharInfo_3 FROM CharInfo_3
SELECT UID,Level,Exp INTO Temp_CharInfo_4 FROM CharInfo_4
UPDATE A
SET A.Exp = A.Exp * [percent]
FROM CharInfo_1 A,ConvertExp B
WHERE A.Level = B.Level
UPDATE A
SET A.Exp = A.Exp * [percent]
FROM CharInfo_2 A,ConvertExp B
WHERE A.Level = B.Level
UPDATE A
SET A.Exp = A.Exp * [percent]
FROM CharInfo_3 A,ConvertExp B
WHERE A.Level = B.Level
UPDATE A
SET A.Exp = A.Exp * [percent]
FROM CharInfo_4 A,ConvertExp B
WHERE A.Level = B.Level
SELECT A.UID INTO Temp_ErrorConvert FROM CharInfo A JOIN ConvertExp B
ON A.Level = B.Level
WHERE B.newExp - A.Exp < 0

View File

@@ -0,0 +1,46 @@
print 'Using CharDelHistory'
USE CharDelHistory
INSERT INTO DelCharItem (UID)
SELECT UID FROM DelCharInfo
WHERE UID NOT IN (SELECT UID from dbo.DelCharItem)
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[DelCharInfo]') and OBJECTPROPERTY(id, N'IsView') = 1)
drop view [dbo].DelCharInfo
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[DelCharSkill]') and OBJECTPROPERTY(id, N'IsView') = 1)
drop view [dbo].DelCharInfo
create view DelCharInfo
AS
SELECT * FROM dbo.DelCharInfo_1
UNION ALL
SELECT * FROM dbo.DelCharInfo_2
UNION ALL
SELECT * FROM dbo.DelCharInfo_3
UNION ALL
SELECT * FROM dbo.DelCharInfo_4
create view DelCharSkill
AS
SELECT * FROM dbo.DelCharSkill_1
UNION ALL
SELECT * FROM dbo.DelCharSkill_2
UNION ALL
SELECT * FROM dbo.DelCharSkill_3
UNION ALL
SELECT * FROM dbo.DelCharSkill_4
ALTER TABLE dbo.DelCharItemEx
ADD TempInven binary(1440)

View File

@@ -0,0 +1,159 @@
----------------------------------------------------------------------------------------------------------------------
-- DeleteCharInfo.sql
---------------------------------------------------------------------------------------------------------------------
ALTER PROCEDURE dbo.DeleteCharInfo
@char_uid AS INT
AS
SET NOCOUNT ON
DECLARE @Div INT
SET @Div = @char_uid % 4
IF @Div = 0
BEGIN
DELETE FROM CharInfo_1 WHERE UID = @char_uid
DELETE FROM CharPos_1 WHERE UID = @char_uid
DELETE FROM CharSkill_1 WHERE UID = @char_uid
END
ELSE IF @Div = 1
BEGIN
DELETE FROM CharInfo_2 WHERE UID = @char_uid
DELETE FROM CharPos_2 WHERE UID = @char_uid
DELETE FROM CharSkill_2 WHERE UID = @char_uid
END
ELSE IF @Div = 2
BEGIN
DELETE FROM CharInfo_3 WHERE UID = @char_uid
DELETE FROM CharPos_3 WHERE UID = @char_uid
DELETE FROM CharSkill_3 WHERE UID = @char_uid
END
ELSE IF @Div = 3
BEGIN
DELETE FROM CharInfo_4 WHERE UID = @char_uid
DELETE FROM CharPos_4 WHERE UID = @char_uid
DELETE FROM CharSkill_4 WHERE UID = @char_uid
END
DELETE FROM CharInfoEx WHERE UID = @char_uid
DELETE FROM CharItem WHERE UID = @char_uid
DELETE FROM CharItemEx WHERE UID = @char_uid
DELETE FROM Friend WHERE UID = @char_uid
DELETE FROM Quest WHERE UID = @char_uid
GO
ALTER PROC DeleteChar @user_uid INT,@user_pos INT,@CID INT
AS
SET NOCOUNT ON
UPDATE CharInfo SET Guild = 0 WHERE UID = @CID
EXEC DeleteCharInfo @CID
DECLARE @Div INT
/* 유저 정보 테이블 업데이트 */
SET @Div = @user_uid % 4
IF @user_pos = 0
BEGIN
IF @Div = 0
BEGIN
UPDATE UserInfo_1 SET Char1 = 0 WHERE UID = @user_uid
RETURN
END
ELSE IF @Div = 1
BEGIN
UPDATE UserInfo_2 SET Char1 = 0 WHERE UID = @user_uid
RETURN
END
ELSE IF @Div = 2
BEGIN
UPDATE UserInfo_3 SET Char1 = 0 WHERE UID = @user_uid
RETURN
END
ELSE IF @Div = 3
BEGIN
UPDATE UserInfo_4 SET Char1 = 0 WHERE UID = @user_uid
RETURN
END
END
ELSE IF @user_pos = 1
BEGIN
IF @Div = 0
BEGIN
UPDATE UserInfo_1 SET Char2 = 0 WHERE UID = @user_uid
RETURN
END
ELSE IF @Div = 1
BEGIN
UPDATE UserInfo_2 SET Char2 = 0 WHERE UID = @user_uid
RETURN
END
ELSE IF @Div = 2
BEGIN
UPDATE UserInfo_3 SET Char2 = 0 WHERE UID = @user_uid
RETURN
END
ELSE IF @Div = 3
BEGIN
UPDATE UserInfo_4 SET Char2 = 0 WHERE UID = @user_uid
RETURN
END
END
ELSE IF @user_pos = 2
BEGIN
IF @Div = 0
BEGIN
UPDATE UserInfo_1 SET Char3 = 0 WHERE UID = @user_uid
RETURN
END
ELSE IF @Div = 1
BEGIN
UPDATE UserInfo_2 SET Char3 = 0 WHERE UID = @user_uid
RETURN
END
ELSE IF @Div = 2
BEGIN
UPDATE UserInfo_3 SET Char3 = 0 WHERE UID = @user_uid
RETURN
END
ELSE IF @Div = 3
BEGIN
UPDATE UserInfo_4 SET Char3 = 0 WHERE UID = @user_uid
RETURN
END
END

View File

@@ -0,0 +1,256 @@
/***************************************************
*
* 2004.10.27
* You should make the database named 'CharDelHostory' before you execute this script
***************************************************/
GO
USE CharDelHostory
GO
CREATE TABLE [dbo].[DelCharInfo_1] (
[UID] [int] NOT NULL ,
[Name] [varchar] (16) NULL ,
[Sex] [tinyint] NULL ,
[Hair] [tinyint] NULL ,
[Face] [tinyint] NULL ,
[Nationality] [tinyint] NULL ,
[Class] [smallint] NULL ,
[Fame] [int] NULL ,
[Mileage] [int] NULL ,
[Guild] [int] NULL ,
[Party] [int] NULL ,
[Level] [tinyint] NULL ,
[Equip] [binary] (30) NULL ,
[Gold] [int] NULL ,
[IP] [smallint] NULL ,
[STR] [smallint] NULL ,
[DEX] [smallint] NULL ,
[CON] [smallint] NULL ,
[Intell] [smallint] NULL ,
[WIS] [smallint] NULL ,
[HP] [smallint] NULL ,
[MP] [smallint] NULL ,
[Exp] [bigint] NULL ,
[Chance] [tinyint] NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[DelCharInfo_2] (
[UID] [int] NOT NULL ,
[Name] [varchar] (16) NULL ,
[Sex] [tinyint] NULL ,
[Hair] [tinyint] NULL ,
[Face] [tinyint] NULL ,
[Nationality] [tinyint] NULL ,
[Class] [smallint] NULL ,
[Fame] [int] NULL ,
[Mileage] [int] NULL ,
[Guild] [int] NULL ,
[Party] [int] NULL ,
[Level] [tinyint] NULL ,
[Equip] [binary] (30) NULL ,
[Gold] [int] NULL ,
[IP] [smallint] NULL ,
[STR] [smallint] NULL ,
[DEX] [smallint] NULL ,
[CON] [smallint] NULL ,
[Intell] [smallint] NULL ,
[WIS] [smallint] NULL ,
[HP] [smallint] NULL ,
[MP] [smallint] NULL ,
[Exp] [bigint] NULL ,
[Chance] [tinyint] NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[DelCharInfo_3] (
[UID] [int] NOT NULL ,
[Name] [varchar] (16) NULL ,
[Sex] [tinyint] NULL ,
[Hair] [tinyint] NULL ,
[Face] [tinyint] NULL ,
[Nationality] [tinyint] NULL ,
[Class] [smallint] NULL ,
[Fame] [int] NULL ,
[Mileage] [int] NULL ,
[Guild] [int] NULL ,
[Party] [int] NULL ,
[Level] [tinyint] NULL ,
[Equip] [binary] (30) NULL ,
[Gold] [int] NULL ,
[IP] [smallint] NULL ,
[STR] [smallint] NULL ,
[DEX] [smallint] NULL ,
[CON] [smallint] NULL ,
[Intell] [smallint] NULL ,
[WIS] [smallint] NULL ,
[HP] [smallint] NULL ,
[MP] [smallint] NULL ,
[Exp] [bigint] NULL ,
[Chance] [tinyint] NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[DelCharInfo_4] (
[UID] [int] NOT NULL ,
[Name] [varchar] (16) NULL ,
[Sex] [tinyint] NULL ,
[Hair] [tinyint] NULL ,
[Face] [tinyint] NULL ,
[Nationality] [tinyint] NULL ,
[Class] [smallint] NULL ,
[Fame] [int] NULL ,
[Mileage] [int] NULL ,
[Guild] [int] NULL ,
[Party] [int] NULL ,
[Level] [tinyint] NULL ,
[Equip] [binary] (30) NULL ,
[Gold] [int] NULL ,
[IP] [smallint] NULL ,
[STR] [smallint] NULL ,
[DEX] [smallint] NULL ,
[CON] [smallint] NULL ,
[Intell] [smallint] NULL ,
[WIS] [smallint] NULL ,
[HP] [smallint] NULL ,
[MP] [smallint] NULL ,
[Exp] [bigint] NULL ,
[Chance] [tinyint] NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[DelCharInfo_Time] (
[CID] [int] NOT NULL ,
[CreateTime] [smalldatetime] NULL ,
[UpdateTime] [smalldatetime] NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[DelCharItem] (
[UID] [int] NOT NULL ,
[Quick] [binary] (100) NULL ,
[Equip] [binary] (1440) NULL ,
[Inventory] [binary] (5120) NULL ,
[Extra] [binary] (512) NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[DelCharItemEx] (
[UID] [int] NOT NULL ,
[Exchange] [binary] (1284) NULL ,
[TempInven] [binary] (1440) NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[DelCharSkill_1] (
[UID] [int] NOT NULL ,
[Skill] [binary] (84) NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[DelCharSkill_2] (
[UID] [int] NOT NULL ,
[Skill] [binary] (84) NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[DelCharSkill_3] (
[UID] [int] NOT NULL ,
[Skill] [binary] (84) NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[DelCharSkill_4] (
[UID] [int] NOT NULL ,
[Skill] [binary] (84) NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[TblCharDelHistory_LOG] (
[intCID] [int] NULL ,
[intUID] [int] NULL ,
[dateInsertTime] [smalldatetime] NULL ,
[dateDeleteTime] [smalldatetime] NULL
) ON [PRIMARY]
GO
CREATE INDEX [IDX_DelCharInfo_1_UID] ON [dbo].[DelCharInfo_1]([UID]) ON [PRIMARY]
GO
CREATE INDEX [IDX_DelCharInfo_2_UID] ON [dbo].[DelCharInfo_2]([UID]) ON [PRIMARY]
GO
CREATE INDEX [IDX_DelCharInfo_3_UID] ON [dbo].[DelCharInfo_3]([UID]) ON [PRIMARY]
GO
CREATE INDEX [IDX_DelCharInfo_4_UID] ON [dbo].[DelCharInfo_4]([UID]) ON [PRIMARY]
GO
CREATE INDEX [IDX_DelCharInfo_Time_UID] ON [dbo].[DelCharInfo_Time]([CID]) ON [PRIMARY]
GO
CREATE INDEX [IDX_DelCharItem_UID] ON [dbo].[DelCharItem]([UID]) ON [PRIMARY]
GO
CREATE INDEX [IDX_DelCharItemEx_UID] ON [dbo].[DelCharItemEx]([UID]) ON [PRIMARY]
GO
CREATE INDEX [IDX_DelCharSkill_1_UID] ON [dbo].[DelCharSkill_1]([UID]) ON [PRIMARY]
GO
CREATE INDEX [IDX_DelCharSkill_2_UID] ON [dbo].[DelCharSkill_2]([UID]) ON [PRIMARY]
GO
CREATE INDEX [IDX_DelCharSkill_3_UID] ON [dbo].[DelCharSkill_3]([UID]) ON [PRIMARY]
GO
CREATE INDEX [IDX_DelCharSkill_4_UID] ON [dbo].[DelCharSkill_4]([UID]) ON [PRIMARY]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
create view DelCharInfo
AS
SELECT * FROM dbo.DelCharInfo_1
UNION ALL
SELECT * FROM dbo.DelCharInfo_2
UNION ALL
SELECT * FROM dbo.DelCharInfo_3
UNION ALL
SELECT * FROM dbo.DelCharInfo_4
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
create view DelCharSkill
AS
SELECT * FROM dbo.DelCharSkill_1
UNION ALL
SELECT * FROM dbo.DelCharSkill_2
UNION ALL
SELECT * FROM dbo.DelCharSkill_3
UNION ALL
SELECT * FROM dbo.DelCharSkill_4
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,231 @@
/****************************************************
*
* 2004.10.27
*
****************************************************/
GO
----------------------------------------------------------------------------------------------------------------------
-- DeleteCharInfo.sql
---------------------------------------------------------------------------------------------------------------------
ALTER PROCEDURE dbo.DeleteCharInfo
@char_uid AS INT
AS
SET NOCOUNT ON
DECLARE @Div INT
SET @Div = @char_uid % 4
IF @Div = 0
BEGIN
DELETE FROM CharInfo_1 WHERE UID = @char_uid
DELETE FROM CharPos_1 WHERE UID = @char_uid
DELETE FROM CharSkill_1 WHERE UID = @char_uid
END
ELSE IF @Div = 1
BEGIN
DELETE FROM CharInfo_2 WHERE UID = @char_uid
DELETE FROM CharPos_2 WHERE UID = @char_uid
DELETE FROM CharSkill_2 WHERE UID = @char_uid
END
ELSE IF @Div = 2
BEGIN
DELETE FROM CharInfo_3 WHERE UID = @char_uid
DELETE FROM CharPos_3 WHERE UID = @char_uid
DELETE FROM CharSkill_3 WHERE UID = @char_uid
END
ELSE IF @Div = 3
BEGIN
DELETE FROM CharInfo_4 WHERE UID = @char_uid
DELETE FROM CharPos_4 WHERE UID = @char_uid
DELETE FROM CharSkill_4 WHERE UID = @char_uid
END
DELETE FROM CharInfoEx WHERE UID = @char_uid
DELETE FROM CharItem WHERE UID = @char_uid
DELETE FROM CharItemEx WHERE UID = @char_uid
DELETE FROM Friend WHERE UID = @char_uid
DELETE FROM Quest WHERE UID = @char_uid
GO
ALTER PROC DeleteChar @user_uid INT,@user_pos INT,@CID INT
AS
SET NOCOUNT ON
UPDATE CharInfo SET Guild = 0 WHERE UID = @CID
EXEC DeleteCharInfo @CID
DECLARE @Div INT
/* 유저 정보 테이블 업데이트 */
SET @Div = @user_uid % 4
IF @user_pos = 0
BEGIN
IF @Div = 0
BEGIN
UPDATE UserInfo_1 SET Char1 = 0 WHERE UID = @user_uid
RETURN
END
ELSE IF @Div = 1
BEGIN
UPDATE UserInfo_2 SET Char1 = 0 WHERE UID = @user_uid
RETURN
END
ELSE IF @Div = 2
BEGIN
UPDATE UserInfo_3 SET Char1 = 0 WHERE UID = @user_uid
RETURN
END
ELSE IF @Div = 3
BEGIN
UPDATE UserInfo_4 SET Char1 = 0 WHERE UID = @user_uid
RETURN
END
END
ELSE IF @user_pos = 1
BEGIN
IF @Div = 0
BEGIN
UPDATE UserInfo_1 SET Char2 = 0 WHERE UID = @user_uid
RETURN
END
ELSE IF @Div = 1
BEGIN
UPDATE UserInfo_2 SET Char2 = 0 WHERE UID = @user_uid
RETURN
END
ELSE IF @Div = 2
BEGIN
UPDATE UserInfo_3 SET Char2 = 0 WHERE UID = @user_uid
RETURN
END
ELSE IF @Div = 3
BEGIN
UPDATE UserInfo_4 SET Char2 = 0 WHERE UID = @user_uid
RETURN
END
END
ELSE IF @user_pos = 2
BEGIN
IF @Div = 0
BEGIN
UPDATE UserInfo_1 SET Char3 = 0 WHERE UID = @user_uid
RETURN
END
ELSE IF @Div = 1
BEGIN
UPDATE UserInfo_2 SET Char3 = 0 WHERE UID = @user_uid
RETURN
END
ELSE IF @Div = 2
BEGIN
UPDATE UserInfo_3 SET Char3 = 0 WHERE UID = @user_uid
RETURN
END
ELSE IF @Div = 3
BEGIN
UPDATE UserInfo_4 SET Char3 = 0 WHERE UID = @user_uid
RETURN
END
END
ELSE IF @user_pos = 3
BEGIN
IF @Div = 0
BEGIN
UPDATE UserInfo_1 SET Char4 = 0 WHERE UID = @user_uid
RETURN
END
ELSE IF @Div = 1
BEGIN
UPDATE UserInfo_2 SET Char4 = 0 WHERE UID = @user_uid
RETURN
END
ELSE IF @Div = 2
BEGIN
UPDATE UserInfo_3 SET Char4 = 0 WHERE UID = @user_uid
RETURN
END
ELSE IF @Div = 3
BEGIN
UPDATE UserInfo_4 SET Char4 = 0 WHERE UID = @user_uid
RETURN
END
END
ELSE IF @user_pos = 4
BEGIN
IF @Div = 0
BEGIN
UPDATE UserInfo_1 SET Char5 = 0 WHERE UID = @user_uid
RETURN
END
ELSE IF @Div = 1
BEGIN
UPDATE UserInfo_2 SET Char5 = 0 WHERE UID = @user_uid
RETURN
END
ELSE IF @Div = 2
BEGIN
UPDATE UserInfo_3 SET Char5 = 0 WHERE UID = @user_uid
RETURN
END
ELSE IF @Div = 3
BEGIN
UPDATE UserInfo_4 SET Char5 = 0 WHERE UID = @user_uid
RETURN
END
END

View File

@@ -0,0 +1,256 @@
/***************************************************
*
* 2004.10.27
* You should make the database named 'CharDelHostory' before you execute this script
***************************************************/
GO
USE CharDelHostory
GO
CREATE TABLE [dbo].[DelCharInfo_1] (
[UID] [int] NOT NULL ,
[Name] [varchar] (16) NULL ,
[Sex] [tinyint] NULL ,
[Hair] [tinyint] NULL ,
[Face] [tinyint] NULL ,
[Nationality] [tinyint] NULL ,
[Class] [smallint] NULL ,
[Fame] [int] NULL ,
[Mileage] [int] NULL ,
[Guild] [int] NULL ,
[Party] [int] NULL ,
[Level] [tinyint] NULL ,
[Equip] [binary] (30) NULL ,
[Gold] [int] NULL ,
[IP] [smallint] NULL ,
[STR] [smallint] NULL ,
[DEX] [smallint] NULL ,
[CON] [smallint] NULL ,
[Intell] [smallint] NULL ,
[WIS] [smallint] NULL ,
[HP] [smallint] NULL ,
[MP] [smallint] NULL ,
[Exp] [bigint] NULL ,
[Chance] [tinyint] NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[DelCharInfo_2] (
[UID] [int] NOT NULL ,
[Name] [varchar] (16) NULL ,
[Sex] [tinyint] NULL ,
[Hair] [tinyint] NULL ,
[Face] [tinyint] NULL ,
[Nationality] [tinyint] NULL ,
[Class] [smallint] NULL ,
[Fame] [int] NULL ,
[Mileage] [int] NULL ,
[Guild] [int] NULL ,
[Party] [int] NULL ,
[Level] [tinyint] NULL ,
[Equip] [binary] (30) NULL ,
[Gold] [int] NULL ,
[IP] [smallint] NULL ,
[STR] [smallint] NULL ,
[DEX] [smallint] NULL ,
[CON] [smallint] NULL ,
[Intell] [smallint] NULL ,
[WIS] [smallint] NULL ,
[HP] [smallint] NULL ,
[MP] [smallint] NULL ,
[Exp] [bigint] NULL ,
[Chance] [tinyint] NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[DelCharInfo_3] (
[UID] [int] NOT NULL ,
[Name] [varchar] (16) NULL ,
[Sex] [tinyint] NULL ,
[Hair] [tinyint] NULL ,
[Face] [tinyint] NULL ,
[Nationality] [tinyint] NULL ,
[Class] [smallint] NULL ,
[Fame] [int] NULL ,
[Mileage] [int] NULL ,
[Guild] [int] NULL ,
[Party] [int] NULL ,
[Level] [tinyint] NULL ,
[Equip] [binary] (30) NULL ,
[Gold] [int] NULL ,
[IP] [smallint] NULL ,
[STR] [smallint] NULL ,
[DEX] [smallint] NULL ,
[CON] [smallint] NULL ,
[Intell] [smallint] NULL ,
[WIS] [smallint] NULL ,
[HP] [smallint] NULL ,
[MP] [smallint] NULL ,
[Exp] [bigint] NULL ,
[Chance] [tinyint] NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[DelCharInfo_4] (
[UID] [int] NOT NULL ,
[Name] [varchar] (16) NULL ,
[Sex] [tinyint] NULL ,
[Hair] [tinyint] NULL ,
[Face] [tinyint] NULL ,
[Nationality] [tinyint] NULL ,
[Class] [smallint] NULL ,
[Fame] [int] NULL ,
[Mileage] [int] NULL ,
[Guild] [int] NULL ,
[Party] [int] NULL ,
[Level] [tinyint] NULL ,
[Equip] [binary] (30) NULL ,
[Gold] [int] NULL ,
[IP] [smallint] NULL ,
[STR] [smallint] NULL ,
[DEX] [smallint] NULL ,
[CON] [smallint] NULL ,
[Intell] [smallint] NULL ,
[WIS] [smallint] NULL ,
[HP] [smallint] NULL ,
[MP] [smallint] NULL ,
[Exp] [bigint] NULL ,
[Chance] [tinyint] NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[DelCharInfo_Time] (
[CID] [int] NOT NULL ,
[CreateTime] [smalldatetime] NULL ,
[UpdateTime] [smalldatetime] NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[DelCharItem] (
[UID] [int] NOT NULL ,
[Quick] [binary] (100) NULL ,
[Equip] [binary] (1440) NULL ,
[Inventory] [binary] (5120) NULL ,
[Extra] [binary] (512) NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[DelCharItemEx] (
[UID] [int] NOT NULL ,
[Exchange] [binary] (1284) NULL ,
[TempInven] [binary] (1440) NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[DelCharSkill_1] (
[UID] [int] NOT NULL ,
[Skill] [binary] (84) NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[DelCharSkill_2] (
[UID] [int] NOT NULL ,
[Skill] [binary] (84) NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[DelCharSkill_3] (
[UID] [int] NOT NULL ,
[Skill] [binary] (84) NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[DelCharSkill_4] (
[UID] [int] NOT NULL ,
[Skill] [binary] (84) NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[TblCharDelHistory_LOG] (
[intCID] [int] NULL ,
[intUID] [int] NULL ,
[dateInsertTime] [smalldatetime] NULL ,
[dateDeleteTime] [smalldatetime] NULL
) ON [PRIMARY]
GO
CREATE INDEX [IDX_DelCharInfo_1_UID] ON [dbo].[DelCharInfo_1]([UID]) ON [PRIMARY]
GO
CREATE INDEX [IDX_DelCharInfo_2_UID] ON [dbo].[DelCharInfo_2]([UID]) ON [PRIMARY]
GO
CREATE INDEX [IDX_DelCharInfo_3_UID] ON [dbo].[DelCharInfo_3]([UID]) ON [PRIMARY]
GO
CREATE INDEX [IDX_DelCharInfo_4_UID] ON [dbo].[DelCharInfo_4]([UID]) ON [PRIMARY]
GO
CREATE INDEX [IDX_DelCharInfo_Time_UID] ON [dbo].[DelCharInfo_Time]([CID]) ON [PRIMARY]
GO
CREATE INDEX [IDX_DelCharItem_UID] ON [dbo].[DelCharItem]([UID]) ON [PRIMARY]
GO
CREATE INDEX [IDX_DelCharItemEx_UID] ON [dbo].[DelCharItemEx]([UID]) ON [PRIMARY]
GO
CREATE INDEX [IDX_DelCharSkill_1_UID] ON [dbo].[DelCharSkill_1]([UID]) ON [PRIMARY]
GO
CREATE INDEX [IDX_DelCharSkill_2_UID] ON [dbo].[DelCharSkill_2]([UID]) ON [PRIMARY]
GO
CREATE INDEX [IDX_DelCharSkill_3_UID] ON [dbo].[DelCharSkill_3]([UID]) ON [PRIMARY]
GO
CREATE INDEX [IDX_DelCharSkill_4_UID] ON [dbo].[DelCharSkill_4]([UID]) ON [PRIMARY]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
create view DelCharInfo
AS
SELECT * FROM dbo.DelCharInfo_1
UNION ALL
SELECT * FROM dbo.DelCharInfo_2
UNION ALL
SELECT * FROM dbo.DelCharInfo_3
UNION ALL
SELECT * FROM dbo.DelCharInfo_4
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
create view DelCharSkill
AS
SELECT * FROM dbo.DelCharSkill_1
UNION ALL
SELECT * FROM dbo.DelCharSkill_2
UNION ALL
SELECT * FROM dbo.DelCharSkill_3
UNION ALL
SELECT * FROM dbo.DelCharSkill_4
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

View File

@@ -0,0 +1,91 @@
/***************************************************
*
* 2004.11.01
* You should make the database named 'CharDelHostory' before you execute this script
***************************************************/
GO
USE CharDelHostory
GO
CREATE TABLE [dbo].[DelCharInfo] (
[UID] [int] NOT NULL ,
[Name] [varchar] (16) NULL ,
[Sex] [tinyint] NULL ,
[Hair] [tinyint] NULL ,
[Face] [tinyint] NULL ,
[Nationality] [tinyint] NULL ,
[Class] [smallint] NULL ,
[Fame] [int] NULL ,
[Mileage] [int] NULL ,
[Guild] [int] NULL ,
[Party] [int] NULL ,
[Level] [tinyint] NULL ,
[Equip] [binary] (30) NULL ,
[Gold] [int] NULL ,
[IP] [smallint] NULL ,
[STR] [smallint] NULL ,
[DEX] [smallint] NULL ,
[CON] [smallint] NULL ,
[Intell] [smallint] NULL ,
[WIS] [smallint] NULL ,
[HP] [smallint] NULL ,
[MP] [smallint] NULL ,
[Exp] [bigint] NULL ,
[Chance] [tinyint] NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[DelCharInfo_Time] (
[CID] [int] NOT NULL ,
[CreateTime] [smalldatetime] NULL ,
[UpdateTime] [smalldatetime] NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[DelCharItem] (
[UID] [int] NOT NULL ,
[Quick] [binary] (100) NULL ,
[Equip] [binary] (1440) NULL ,
[Inventory] [binary] (5120) NULL ,
[Extra] [binary] (512) NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[DelCharItemEx] (
[UID] [int] NOT NULL ,
[Exchange] [binary] (1284) NULL ,
[TempInven] [binary] (1440) NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[DelCharSkill] (
[UID] [int] NOT NULL ,
[Skill] [binary] (84) NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[TblCharDelHistory_LOG] (
[intCID] [int] NULL ,
[intUID] [int] NULL ,
[dateInsertTime] [smalldatetime] NULL ,
[dateDeleteTime] [smalldatetime] NULL
) ON [PRIMARY]
GO
CREATE INDEX [IDX_DelCharInfo_UID] ON [dbo].[DelCharInfo]([UID]) ON [PRIMARY]
GO
CREATE INDEX [IDX_DelCharInfo_Time_UID] ON [dbo].[DelCharInfo_Time]([CID]) ON [PRIMARY]
GO
CREATE INDEX [IDX_DelCharItem_UID] ON [dbo].[DelCharItem]([UID]) ON [PRIMARY]
GO
CREATE INDEX [IDX_DelCharItemEx_UID] ON [dbo].[DelCharItemEx]([UID]) ON [PRIMARY]
GO
CREATE INDEX [IDX_DelCharSkill_UID] ON [dbo].[DelCharSkill]([UID]) ON [PRIMARY]
GO

View File

@@ -0,0 +1,231 @@
/****************************************************
*
* 2004.10.27
*
****************************************************/
GO
----------------------------------------------------------------------------------------------------------------------
-- DeleteCharInfo.sql
---------------------------------------------------------------------------------------------------------------------
ALTER PROCEDURE dbo.DeleteCharInfo
@char_uid AS INT
AS
SET NOCOUNT ON
DECLARE @Div INT
SET @Div = @char_uid % 4
IF @Div = 0
BEGIN
DELETE FROM CharInfo_1 WHERE UID = @char_uid
DELETE FROM CharPos_1 WHERE UID = @char_uid
DELETE FROM CharSkill_1 WHERE UID = @char_uid
END
ELSE IF @Div = 1
BEGIN
DELETE FROM CharInfo_2 WHERE UID = @char_uid
DELETE FROM CharPos_2 WHERE UID = @char_uid
DELETE FROM CharSkill_2 WHERE UID = @char_uid
END
ELSE IF @Div = 2
BEGIN
DELETE FROM CharInfo_3 WHERE UID = @char_uid
DELETE FROM CharPos_3 WHERE UID = @char_uid
DELETE FROM CharSkill_3 WHERE UID = @char_uid
END
ELSE IF @Div = 3
BEGIN
DELETE FROM CharInfo_4 WHERE UID = @char_uid
DELETE FROM CharPos_4 WHERE UID = @char_uid
DELETE FROM CharSkill_4 WHERE UID = @char_uid
END
DELETE FROM CharInfoEx WHERE UID = @char_uid
DELETE FROM CharItem WHERE UID = @char_uid
DELETE FROM CharItemEx WHERE UID = @char_uid
DELETE FROM Friend WHERE UID = @char_uid
DELETE FROM Quest WHERE UID = @char_uid
GO
ALTER PROC DeleteChar @user_uid INT,@user_pos INT,@CID INT
AS
SET NOCOUNT ON
UPDATE CharInfo SET Guild = 0 WHERE UID = @CID
EXEC DeleteCharInfo @CID
DECLARE @Div INT
/* 유저 정보 테이블 업데이트 */
SET @Div = @user_uid % 4
IF @user_pos = 0
BEGIN
IF @Div = 0
BEGIN
UPDATE UserInfo_1 SET Char1 = 0 WHERE UID = @user_uid
RETURN
END
ELSE IF @Div = 1
BEGIN
UPDATE UserInfo_2 SET Char1 = 0 WHERE UID = @user_uid
RETURN
END
ELSE IF @Div = 2
BEGIN
UPDATE UserInfo_3 SET Char1 = 0 WHERE UID = @user_uid
RETURN
END
ELSE IF @Div = 3
BEGIN
UPDATE UserInfo_4 SET Char1 = 0 WHERE UID = @user_uid
RETURN
END
END
ELSE IF @user_pos = 1
BEGIN
IF @Div = 0
BEGIN
UPDATE UserInfo_1 SET Char2 = 0 WHERE UID = @user_uid
RETURN
END
ELSE IF @Div = 1
BEGIN
UPDATE UserInfo_2 SET Char2 = 0 WHERE UID = @user_uid
RETURN
END
ELSE IF @Div = 2
BEGIN
UPDATE UserInfo_3 SET Char2 = 0 WHERE UID = @user_uid
RETURN
END
ELSE IF @Div = 3
BEGIN
UPDATE UserInfo_4 SET Char2 = 0 WHERE UID = @user_uid
RETURN
END
END
ELSE IF @user_pos = 2
BEGIN
IF @Div = 0
BEGIN
UPDATE UserInfo_1 SET Char3 = 0 WHERE UID = @user_uid
RETURN
END
ELSE IF @Div = 1
BEGIN
UPDATE UserInfo_2 SET Char3 = 0 WHERE UID = @user_uid
RETURN
END
ELSE IF @Div = 2
BEGIN
UPDATE UserInfo_3 SET Char3 = 0 WHERE UID = @user_uid
RETURN
END
ELSE IF @Div = 3
BEGIN
UPDATE UserInfo_4 SET Char3 = 0 WHERE UID = @user_uid
RETURN
END
END
ELSE IF @user_pos = 3
BEGIN
IF @Div = 0
BEGIN
UPDATE UserInfo_1 SET Char4 = 0 WHERE UID = @user_uid
RETURN
END
ELSE IF @Div = 1
BEGIN
UPDATE UserInfo_2 SET Char4 = 0 WHERE UID = @user_uid
RETURN
END
ELSE IF @Div = 2
BEGIN
UPDATE UserInfo_3 SET Char4 = 0 WHERE UID = @user_uid
RETURN
END
ELSE IF @Div = 3
BEGIN
UPDATE UserInfo_4 SET Char4 = 0 WHERE UID = @user_uid
RETURN
END
END
ELSE IF @user_pos = 4
BEGIN
IF @Div = 0
BEGIN
UPDATE UserInfo_1 SET Char5 = 0 WHERE UID = @user_uid
RETURN
END
ELSE IF @Div = 1
BEGIN
UPDATE UserInfo_2 SET Char5 = 0 WHERE UID = @user_uid
RETURN
END
ELSE IF @Div = 2
BEGIN
UPDATE UserInfo_3 SET Char5 = 0 WHERE UID = @user_uid
RETURN
END
ELSE IF @Div = 3
BEGIN
UPDATE UserInfo_4 SET Char5 = 0 WHERE UID = @user_uid
RETURN
END
END

View File

@@ -0,0 +1,55 @@
-- 기존 소스세이프에 있는 내용이 최신이 아니여서 1480 버전에서 스크립팅 (by zun!)
ALTER TABLE dbo.PartyInfo
ADD UserInfo VARBINARY(70)
GO
ALTER TABLE Friend
ADD FriendInfo VARBINARY(704)
GO
ALTER TABLE Friend
ADD BanInfo VARBINARY(704)
GO
CREATE PROCEDURE dbo.GetPartyInfo_Part2
@Party_uid AS INT
AS
SET NOCOUNT ON
SELECT Party, UserInfo, GID FROM PartyInfo WHERE PID = @Party_uid
GO
CREATE PROCEDURE dbo.UpdatePartyInfo_Part2
@Party_uid AS INT,
@Party AS varBINARY(202),
@UserInfo AS varBINARY(72),
@GID AS INT
AS
SET NOCOUNT ON
UPDATE PartyInfo SET Party = @Party, UserInfo = @UserInfo, GID = @GID WHERE PID = @Party_uid
GO
CREATE PROCEDURE dbo.InsertParty_Part2
@Party AS varBINARY(202),
@UserInfo AS varBINARY(72),
@GID AS int
AS
SET NOCOUNT ON
INSERT INTO PartyInfo (Party, UserInfo, GID) VALUES (@Party, @UserInfo, @GID)
GO

View File

@@ -0,0 +1,169 @@
ALTER TABLE UserFirstLoginInfo
ADD TransferCharCount TINYINT DEFAULT(0)
GO
UPDATE UserFirstLoginInfo SET TransferCharCount = 0
GO
CREATE TABLE [TblUnifiedItemStore1_TransferLOG] (
InsertTime SMALLDATETIME NULL,
[UID] [int] NULL ,
[OldServerGroupID] [tinyint] NULL ,
[Password] [char] (5),
[Frag] [int] NULL ,
[Gold] [int] NULL ,
[Store] [varbinary] (7300) NULL
)
GO
CREATE TABLE [TblUnifiedItemStore2_TransferLOG] (
InsertTime SMALLDATETIME NULL,
[UID] [int] NOT NULL ,
[OldServerGroupID] [tinyint] NOT NULL ,
[Store] [varbinary] (7300) NULL
)
GO
ALTER PROC TransferStore @UID INT , @SourceSrvID TINYINT , @DestSrvID TINYINT
AS
SET NOCOUNT ON
IF EXISTS (SELECT * FROM dbo.TblUnifiedItemStore1 WHERE UID = @UID AND OldServerGroupID = @SourceSrvID)
BEGIN
IF EXISTS (SELECT * FROM dbo.TblUnifiedItemStore2 WHERE UID = @UID AND OldServerGroupID = @SourceSrvID)
BEGIN
DECLARE @GETDATE SMALLDATETIME
SET @GETDATE = GETDATE()
BEGIN TRAN
IF EXISTS (SELECT * FROM dbo.TblUnifiedItemStore1
WHERE UID = @UID AND OldServerGroupID = @DestSrvID
AND ( (ISNULL(Frag,0) not in (0,1)) OR (ISNULL(Gold,0) <>0 ) OR (Store IS NOT NULL)) )
BEGIN
INSERT INTO TblUnifiedItemStore1_TransferLOG
SELECT @GETDATE,* FROM dbo.TblUnifiedItemStore1 WHERE UID = @UID AND OldServerGroupID = @DestSrvID
IF @@ERROR <> 0
BEGIN
ROLLBACK TRAN
RETURN
END
END
DELETE dbo.TblUnifiedItemStore1 WHERE UID = @UID AND OldServerGroupID = @DestSrvID
IF @@ERROR <> 0
BEGIN
ROLLBACK TRAN
RETURN
END
UPDATE dbo.TblUnifiedItemStore1 SET OldServerGroupID = @DestSrvID
WHERE UID = @UID AND OldServerGroupID = @SourceSrvID
IF @@ERROR <> 0
BEGIN
ROLLBACK TRAN
RETURN
END
INSERT INTO dbo.TblUnifiedItemStore1(UID, OldServerGroupID) VALUES (@UID, @SourceSrvID)
IF @@ERROR <> 0
BEGIN
ROLLBACK TRAN
RETURN
END
IF EXISTS (SELECT * FROM dbo.TblUnifiedItemStore2 WHERE UID = @UID AND OldServerGroupID = @DestSrvID
AND Store IS NOT NULL)
BEGIN
INSERT INTO TblUnifiedItemStore2_TransferLOG
SELECT @GETDATE,* FROM dbo.TblUnifiedItemStore2 WHERE UID = @UID AND OldServerGroupID = @DestSrvID
IF @@ERROR <> 0
BEGIN
ROLLBACK TRAN
RETURN
END
END
DELETE dbo.TblUnifiedItemStore2 WHERE UID = @UID AND OldServerGroupID = @DestSrvID
IF @@ERROR <> 0
BEGIN
ROLLBACK TRAN
RETURN
END
UPDATE dbo.TblUnifiedItemStore2 SET OldServerGroupID = @DestSrvID
WHERE UID = @UID AND OldServerGroupID = @SourceSrvID
IF @@ERROR <> 0
BEGIN
ROLLBACK TRAN
RETURN
END
INSERT INTO dbo.TblUnifiedItemStore2(UID, OldServerGroupID) VALUES (@UID, @SourceSrvID)
IF @@ERROR <> 0
BEGIN
ROLLBACK TRAN
RETURN
END
COMMIT TRAN
END
END
GO
UPDATE TblCampInfo
SET snObjectType = 5379
GO
ALTER PROC USPCampCreate @nGuildID INT, @snObjectType SMALLINT, @tnZone TINYINT,@tnChannel TINYINT, @fPosX FLOAT, @fPosY FLOAT,@fPosZ FLOAT
AS
SET NOCOUNT ON
DECLARE @nCampID INT
SET @nCampID = 0
BEGIN TRAN
INSERT INTO TblCampInfo (nGuildID,nHP,tnZone,tnChannel,snObjectType,
tnState,tnSubState,tnUpgradeStep,RemainTime,LastUseTime,bRight,fPosX,fPosY,fPosZ)
VALUES (@nGuildID,10,@tnZone,@tnChannel,@snObjectType,4,0,0,GETDATE(),GETDATE(),0x01030101010101010101,@fPosX,@fPosY,@fPosZ)
IF @@ERROR <> 0
BEGIN
SELECT @nCampID
ROLLBACK TRAN
RETURN
END
SET @nCampID = CAST(SCOPE_IDENTITY() AS INT)
COMMIT TRAN
SELECT @nCampID
GO

View File

@@ -0,0 +1,142 @@
---------------------------------------------------------------------------------------------------
-- 공성전 관련 기능추가
-- 통합용스크립트_real\CreateRYLDB_20041201.sql 적용후 실행해야 최종DB스크립트 버젼을 유지하게된다.
-- 최종수행시간 : 2005-03-17 오전
-- 최종수행서버 : 국내 테스트서버
-- 참조사항 : 이미 dbo.TblFertilityInfo ,dbo.TblCampMineralInfo 두개의 테이블이 들어가 있음.
-- 최종수행시간 : 2005-03-31 오전 10:00
-- 최종수행서버 : 라타르,루안
----------------------------------------------------------------------------------------------------
GO
CREATE TABLE [TblCampShopInfo] (
[CampID] [int] NOT NULL ,
[Item] [varbinary] (8000) NULL ,
[TempMoney] [int] NULL ,
[Tax] [tinyint] NULL ,
[TransferTime] [smalldatetime] NULL ,
PRIMARY KEY CLUSTERED
(
[CampID]
)
)
GO
CREATE TABLE [TblWorldWeaponInfo] (
[tnZone] [tinyint] NULL ,
[tnChannel] [tinyint] NULL ,
[tnKarRemainSiegeTime] [tinyint] NULL ,
[tnMerRemainSiegeTime] [tinyint] NULL
)
GO
DECLARE @ID INT
SET @ID = 0
WHILE @ID < 5
BEGIN
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x002200FF, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x004400FF, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x008800FF, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x009900FF, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x002211FF, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x004411FF, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x006611FF, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x008811FF, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x008911FF, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x002222FF, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x004422FF, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x006622FF, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x002200F1, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x004400F1, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x006600F1, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x008800F1, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x002211F1, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x004411F1, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x006611F1, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x008811F1, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x008911F1, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x009911F1, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x002222F1, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x004422F1, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x002200F2, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x004400F2, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x006600F2, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x008800F2, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x002211F2, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x004411F2, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x006611F2, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x008811F2, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x002222F2, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x004422F2, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x006622F2, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x0011FF00, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x0022FF00, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x0033FF00, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x0044FF00, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x0055FF00, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x0066FF00, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x0077FF00, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x0088FF00, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x002200FF, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x004400FF, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x006600FF, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x002100F2, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x004100FF, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x006100FF, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x002300FF, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x004300FF, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x006300FF, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x002211FF, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x004411FF, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x006611FF, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x002111FF, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x004111FF, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x006111FF, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x002311FF, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x004311FF, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x006311FF, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x008311FF, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x002200F0, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x004400F0, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x006600F0, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x008800F0, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x002100F0, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x004100F0, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x006100F0, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x002111F0, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x004111F0, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x006111F0, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x002211F0, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x004411F0, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x006611F0, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x0000FF11, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x0000FF22, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x0000FF33, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x0000FF44, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x00FF0011, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x00FF0022, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x00FF0033, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x00FF0044, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x00FF0055, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x00FF0066, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x00FF0077, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x00FF0088, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x00FF1111, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x00FF2211, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x00FF2222, 10, 8, @ID)
SET @ID = @ID +1
END
GO

View File

@@ -0,0 +1,7 @@
-- 2005-03-31 테섭에 적용됨
-- 2005-04-13 정섭에 적용됨
alter table dbo.TblCampInfo
add tnMaterial tinyint

View File

@@ -0,0 +1,87 @@
-- 2005-04-14 정섭에 적용됨
-- 파티 테이블 수정 --
ALTER TABLE dbo.PartyInfo
Add UserInfo varbinary(70)
GO
-- Friend 테이블 수정 --
GO
alter table Friend
add FriendInfo varBINARY(704)
GO
alter table Friend
add BanInfo varBinary(704)
-- 파티 정보 얻어오기 --
GO
----------------------------------------------------------------------------------------------------------------------
-- GetPartyInfo.sql
----------------------------------------------------------------------------------------------------------------------
/*
*/
GO
CREATE PROCEDURE dbo.GetPartyInfo_Part2
@Party_uid AS INT /* 파티 아이디 */
AS
SET NOCOUNT ON
SELECT Party, UserInfo FROM PartyInfo WHERE PID = @Party_uid
-- 파티 정보 업데이트 --
GO
----------------------------------------------------------------------------------------------------------------------
-- UpdatePartyInfo.sql
----------------------------------------------------------------------------------------------------------------------
/*
*/
CREATE PROCEDURE dbo.UpdatePartyInfo_Part2
@Party_uid AS INT, /* 파티 고유 아이디 */
@Party AS varBINARY(202), /* 친구 리스트 */
@UserInfo AS varBINARY(72) /* 유저 정보 */
AS
SET NOCOUNT ON
UPDATE PartyInfo SET Party = @Party, UserInfo = @UserInfo WHERE PID = @Party_uid
-- 파티 추가 --
GO
-------------------------------------------------------------------------------------------------------------
-- InsertParty.sql
----------------------------------------------------------------------------------------------------------------------
/*
*/
CREATE PROCEDURE dbo.InsertParty_Part2
@Party AS varBINARY(202), /* 친구 리스트 */
@UserInfo AS varBINARY(72) /* 유저 정보 */
AS
SET NOCOUNT ON
INSERT INTO PartyInfo (Party, UserInfo) VALUES (@Party, @UserInfo)
/* 고유 아이디 돌려줌 */
SELECT CAST(SCOPE_IDENTITY() AS INT)
GO

View File

@@ -0,0 +1,142 @@
---------------------------------------------------------------------------------------------------
-- 공성전 관련 기능추가
-- 통합용스크립트_real\CreateRYLDB_20041201.sql 적용후 실행해야 최종DB스크립트 버젼을 유지하게된다.
-- 최종수행시간 : 2005-03-17 오전
-- 최종수행서버 : 국내 테스트서버
-- 참조사항 : 이미 dbo.TblFertilityInfo ,dbo.TblCampMineralInfo 두개의 테이블이 들어가 있음.
-- 최종수행시간 : 2005-03-31 오전 10:00
-- 최종수행서버 : 라타르,루안
----------------------------------------------------------------------------------------------------
GO
CREATE TABLE [TblCampShopInfo] (
[CampID] [int] NOT NULL ,
[Item] [varbinary] (8000) NULL ,
[TempMoney] [int] NULL ,
[Tax] [tinyint] NULL ,
[TransferTime] [smalldatetime] NULL ,
PRIMARY KEY CLUSTERED
(
[CampID]
)
)
GO
CREATE TABLE [TblWorldWeaponInfo] (
[tnZone] [tinyint] NULL ,
[tnChannel] [tinyint] NULL ,
[tnKarRemainSiegeTime] [tinyint] NULL ,
[tnMerRemainSiegeTime] [tinyint] NULL
)
GO
DECLARE @ID INT
SET @ID = 0
WHILE @ID < 5
BEGIN
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x002200FF, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x004400FF, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x008800FF, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x009900FF, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x002211FF, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x004411FF, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x006611FF, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x008811FF, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x008911FF, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x002222FF, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x004422FF, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x006622FF, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x002200F1, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x004400F1, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x006600F1, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x008800F1, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x002211F1, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x004411F1, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x006611F1, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x008811F1, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x008911F1, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x009911F1, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x002222F1, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x004422F1, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x002200F2, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x004400F2, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x006600F2, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x008800F2, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x002211F2, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x004411F2, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x006611F2, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x008811F2, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x002222F2, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x004422F2, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x006622F2, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x0011FF00, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x0022FF00, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x0033FF00, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x0044FF00, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x0055FF00, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x0066FF00, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x0077FF00, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x0088FF00, 10, 12, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x002200FF, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x004400FF, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x006600FF, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x002100F2, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x004100FF, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x006100FF, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x002300FF, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x004300FF, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x006300FF, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x002211FF, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x004411FF, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x006611FF, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x002111FF, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x004111FF, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x006111FF, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x002311FF, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x004311FF, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x006311FF, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x008311FF, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x002200F0, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x004400F0, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x006600F0, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x008800F0, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x002100F0, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x004100F0, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x006100F0, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x002111F0, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x004111F0, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x006111F0, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x002211F0, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x004411F0, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x006611F0, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x0000FF11, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x0000FF22, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x0000FF33, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x0000FF44, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x00FF0011, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x00FF0022, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x00FF0033, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x00FF0044, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x00FF0055, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x00FF0066, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x00FF0077, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x00FF0088, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x00FF1111, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x00FF2211, 10, 8, @ID)
insert into TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel) values (0x00FF2222, 10, 8, @ID)
SET @ID = @ID +1
END
GO

View File

@@ -0,0 +1,7 @@
-- 2005-03-31 테섭에 적용됨
-- 2005-04-13 정섭에 적용됨
alter table dbo.TblCampInfo
add tnMaterial tinyint

View File

@@ -0,0 +1,87 @@
-- 2005-04-14 정섭에 적용됨
-- 파티 테이블 수정 --
ALTER TABLE dbo.PartyInfo
Add UserInfo varbinary(70)
GO
-- Friend 테이블 수정 --
GO
alter table Friend
add FriendInfo varBINARY(704)
GO
alter table Friend
add BanInfo varBinary(704)
-- 파티 정보 얻어오기 --
GO
----------------------------------------------------------------------------------------------------------------------
-- GetPartyInfo.sql
----------------------------------------------------------------------------------------------------------------------
/*
*/
GO
CREATE PROCEDURE dbo.GetPartyInfo_Part2
@Party_uid AS INT /* 파티 아이디 */
AS
SET NOCOUNT ON
SELECT Party, UserInfo FROM PartyInfo WHERE PID = @Party_uid
-- 파티 정보 업데이트 --
GO
----------------------------------------------------------------------------------------------------------------------
-- UpdatePartyInfo.sql
----------------------------------------------------------------------------------------------------------------------
/*
*/
CREATE PROCEDURE dbo.UpdatePartyInfo_Part2
@Party_uid AS INT, /* 파티 고유 아이디 */
@Party AS varBINARY(202), /* 친구 리스트 */
@UserInfo AS varBINARY(72) /* 유저 정보 */
AS
SET NOCOUNT ON
UPDATE PartyInfo SET Party = @Party, UserInfo = @UserInfo WHERE PID = @Party_uid
-- 파티 추가 --
GO
-------------------------------------------------------------------------------------------------------------
-- InsertParty.sql
----------------------------------------------------------------------------------------------------------------------
/*
*/
CREATE PROCEDURE dbo.InsertParty_Part2
@Party AS varBINARY(202), /* 친구 리스트 */
@UserInfo AS varBINARY(72) /* 유저 정보 */
AS
SET NOCOUNT ON
INSERT INTO PartyInfo (Party, UserInfo) VALUES (@Party, @UserInfo)
/* 고유 아이디 돌려줌 */
SELECT CAST(SCOPE_IDENTITY() AS INT)
GO

View File

@@ -0,0 +1,89 @@
/***************************************************
*
* 2004.11.01
* You should make the database named 'CharDelHostory' before you execute this script
***************************************************/
GO
USE CharDelHistory
GO
CREATE TABLE [dbo].[DelCharInfo] (
[NewServerGroupID] TINYINT NOT NULL,
[CID] [int] NOT NULL ,
[Name] [varchar] (16) NULL ,
[Sex] [tinyint] NULL ,
[Hair] [tinyint] NULL ,
[Face] [tinyint] NULL ,
[Race] [tinyint] NULL ,
[Class] [smallint] NULL ,
[Fame] [int] NULL ,
[Mileage] [int] NULL ,
[Guild] [int] NULL ,
[Party] [int] NULL ,
[Level] [tinyint] NULL ,
[Equip] [binary] (30) NULL ,
[Gold] [int] NULL ,
[IP] [smallint] NULL ,
[STR] [smallint] NULL ,
[DEX] [smallint] NULL ,
[CON] [smallint] NULL ,
[Intell] [smallint] NULL ,
[WIS] [smallint] NULL ,
[HP] [smallint] NULL ,
[MP] [smallint] NULL ,
[Exp] [bigint] NULL ,
[Chance] [tinyint] NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[DelCharItem] (
[NewServerGroupID] TINYINT NOT NULL,
[CID] [int] NOT NULL ,
[Quick] [binary] (100) NULL ,
[Equip] [binary] (1440) NULL ,
[Inventory] [binary] (5120) NULL ,
[Extra] [binary] (512) NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[DelCharItemEx] (
[NewServerGroupID] TINYINT NOT NULL ,
[CID] [int] NOT NULL ,
[Exchange] [binary] (1284) NULL ,
[TempInven] [binary] (1440) NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[DelCharSkill] (
[NewServerGroupID] TINYINT NOT NULL ,
[CID] [int] NOT NULL ,
[Skill] [binary] (84) NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[TblCharDelHistory_LOG] (
[intCID] [int] NULL ,
[intUID] [int] NULL ,
[dateInsertTime] [smalldatetime] NULL ,
[dateDeleteTime] [smalldatetime] NULL ,
[NewServerGroupID] TINYINT NULL ,
[OldServerGroupID] TINYINT NULL
) ON [PRIMARY]
GO
CREATE INDEX [IDX_DelCharInfo_CID] ON [dbo].[DelCharInfo]([CID],[NewServerGroupID]) ON [PRIMARY]
GO
CREATE INDEX [IDX_DelCharItem_CID] ON [dbo].[DelCharItem]([CID],[NewServerGroupID]) ON [PRIMARY]
GO
CREATE INDEX [IDX_DelCharItemEx_CID] ON [dbo].[DelCharItemEx]([CID],[NewServerGroupID]) ON [PRIMARY]
GO
CREATE INDEX [IDX_DelCharSkill_CID] ON [dbo].[DelCharSkill]([CID],[NewServerGroupID]) ON [PRIMARY]
GO

View File

@@ -0,0 +1,16 @@
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UserInfoConvertView]') and
OBJECTPROPERTY(id, N'IsView') = 1)
drop view [dbo].[UserInfoConvertView]
GO
-- 통합하기전 통합원본 각각의 데이터베이스에 생성되어야 할 뷰
-- CharInfo_1, CharInfo_2 ..... 이런식으로 게임DB가 존재했던 통합 이전 DB에 생성되어야 함.
CREATE VIEW dbo.UserInfoConvertView
AS
SELECT UID,Char1 AS CID FROM UserInfo WHERE Char1 > 0
UNION ALL
SELECT UID,Char2 AS CID FROM UserInfo WHERE Char2 > 0
UNION ALL
SELECT UID,Char3 AS CID FROM UserInfo WHERE Char3 > 0

View File

@@ -0,0 +1,223 @@
/**************************************************
--통합될 새로생성된 게임DB에서 실행되어야 한다.
-- dbo.UserInfoConvertView 가 존재 해야한다.
****************************************************/
GO
--
CREATE TABLE dbo.TblUnifiedGuildList
(
BeforeGuildID INT NOT NULL
, OldServerGroupID TINYINT NOT NULL
, NewGuildID INT NOT NULL IDENTITY(1000,1)
, BeforeGName VARCHAR(20)
, NewGName VARCHAR(20)
)
GO
CREATE TABLE [TblUnifiedCharList_TEMP] (
[UID] [int] NOT NULL ,
[OldServerGroupID] [tinyint] NOT NULL ,
[BeforeCID] [int] NOT NULL ,
[NewCID] [int] IDENTITY (1000, 1) NOT NULL PRIMARY KEY,
[BeforeCharName] [varchar] (20) NOT NULL ,
[NewCharName] [varchar] (20) ,
[BeforeGuildID] [int] NULL ,
[NewGuildID] [int] NULL
) ON [PRIMARY]
GO
CREATE INDEX Idx_TblUnifiedCharList_U_Old ON [TblUnifiedCharList_TEMP] (UID,OldServerGroupID)
GO
/*******************************************************************************************
*
* 실제 DB통합하기 전 캐릭터정보 및 길드정보 통합 메타데이터 생성하기
* (캐릭터기본정보와 길드기본정보 각각을 TblUnifiedCharList 와 TblUnifiedGuildList 에 저장
********************************************************************************************/
GO
CREATE PROC procCreateMetaData @ServerGroupNum TINYINT,@DBName VARCHAR(20)
AS
SET NOCOUNT ON
DECLARE @String NVARCHAR(4000)
SET @String =
'INSERT INTO TblUnifiedCharList_TEMP (UID,OldServerGroupID,BeforeCID,BeforeCharName,NewCharName,BeforeGuildID,NewGuildID) ' +
'SELECT A.UID,@ServerGroupNum,A.CID,B.Name,B.Name,Guild,Guild FROM ' + @DBName + '.dbo.UserInfoConvertView A join ' + @DBName + '.dbo.CharInfo B ON A.CID = B.UID '+
'INSERT INTO TblUnifiedGuildList (BeforeGuildID,OldServerGroupID,BeforeGName,NewGName) '+
'SELECT nGuildID,@ServerGroupNum,strGuildName,strGuildName FROM ' + @DBName + '.dbo.TblGuildInfo'
EXEC sp_executesql @String,N'@ServerGroupNum TINYINT',@ServerGroupNum
GO
/****************************************************************************
*
* 통합된 캐릭터 정보중 캐릭터Name의 중복여부를 체크한다.
* 통합될 서버갯수와 @nCount 같이 일치해야한다.
****************************************************************************/
CREATE PROC procCheckCharInfoGuild @nCount int,@Server1 CHAR(1) = NULL,@Server2 CHAR(1) = NULL,
@Server3 CHAR(1) = NULL,@Server4 CHAR(1) = NULL,
@Server5 CHAR(1) = NULL,@Server6 CHAR(1) = NULL
AS
SET NOCOUNT ON
CREATE TABLE #TblUnifiedCIDList_TEMP
(
NewCharName VARCHAR(20) NOT NULL
)
INSERT INTO #TblUnifiedCIDList_TEMP
SELECT NewCharName FROM TblUnifiedCharList_TEMP GROUP BY NewCharName HAVING COUNT(*) > 1
DECLARE @ROWID INT
DECLARE @ServerGroupNum TINYINT
DECLARE @Initial CHAR(1)
DECLARE @TABLE TABLE
(
ROWID INT IDENTITY(1,1)
, ServerGroupNum TINYINT
)
INSERT INTO @TABLE
SELECT DISTINCT OldServerGroupID FROM TblUnifiedCharList_TEMP
SET @ROWID = @@ROWCOUNT
if ((@ROWID <> @nCount) OR (@nCount <= 0))
BEGIN
PRINT 'incorrect parameter counts'
RETURN
END
WHILE (@ROWID > 0)
BEGIN
SELECT @ServerGroupNum = ServerGroupNum
FROM @TABLE WHERE ROWID = @ROWID
-- 통합된 캐릭터 정보중 캐릭터Name의 중복여부를 체크한다.
IF @ServerGroupNum = 1
SET @Initial = @Server1
ELSE IF @ServerGroupNum = 2
SET @Initial = @Server2
ELSE IF @ServerGroupNum = 3
SET @Initial = @Server3
ELSE IF @ServerGroupNum = 4
SET @Initial = @Server4
ELSE IF @ServerGroupNum = 5
SET @Initial = @Server5
ELSE IF @ServerGroupNum = 6
SET @Initial = @Server6
UPDATE A SET A.NewCharName = @Initial + A.NewCharName
FROM TblUnifiedCharList_TEMP A,#TblUnifiedCIDList_TEMP B
WHERE A.NewCharName = B.NewCharName AND OldServerGroupID = @ServerGroupNum
-- .
UPDATE TblUnifiedGuildList SET NewGName = @Initial + NewGName
WHERE NewGName IN ( SELECT NewGName FROM TblUnifiedGuildList GROUP BY NewGName HAVING COUNT(*) > 1 )
AND OldServerGroupID = @ServerGroupNum
SET @ROWID = @ROWID - 1
END
-- 통합 캐릭터 정보 중 Guild 번호 변경한다.
UPDATE A
SET A.NewGuildID = B.NewGuildID
FROM dbo.TblUnifiedCharList_TEMP A, dbo.TblUnifiedGuildList B
WHERE A.BeforeGuildID = B.BeforeGuildID AND A.OldServerGroupID = B.OldServerGroupID AND A.BeforeGuildID > 0
DROP TABLE #TblUnifiedCIDList_TEMP
GO
/*************************************************************************************************************************
*
* 실제 데이터 통합하기.
*
* CharInfo , CharSkill , CharInfoEx , CharItem , CharItemEx , Friend , Quest , TblGuildInfo , TblUnifiedItemStore1 , TblUnifiedItemStore2
*
*************************************************************************************************************************/
GO
CREATE PROC procUnifingGameDB @ServerGroupNum TINYINT,@DBName VARCHAR(20)
AS
SET NOCOUNT ON
DECLARE @String NVARCHAR(4000)
SET @String =
'INSERT INTO CharInfo (CID,Name,Sex,Hair,Face,Race,Class,Fame,Mileage,Guild,Party,Level,Equip,Gold,IP,STR,DEX,CON,Intell,WIS,HP,Exp,Chance) ' +
'SELECT B.NewCID,NewCharName,Sex,Hair,Face,Nationality,Class,Fame,Mileage,B.NewGuildID,Party,Level,Equip,Gold,IP,STR,DEX,CON,Intell,WIS,HP,Exp,Chance '+
'FROM ' + @DBName + '.dbo.CharInfo A JOIN TblUnifiedCharList_TEMP B ON A.UID = B.BeforeCID WHERE OldServerGroupID = @ServerGroupNum '+
'INSERT INTO CharSkill (CID,Skill) ' +
'SELECT NewCID,Skill FROM ' + @DBName + '.dbo.CharSkill A JOIN TblUnifiedCharList_TEMP B ON A.UID = B.BeforeCID WHERE OldServerGroupID = @ServerGroupNum ' +
'INSERT INTO CharInfoEx (CID,Total,ServerID,Config) ' +
'SELECT NewCID,Total,ServerID,Config FROM ' + @DBName + '.dbo.CharInfoEx A JOIN TblUnifiedCharList_TEMP B ON A.UID = B.BeforeCID WHERE OldServerGroupID = @ServerGroupNum ' +
'INSERT INTO CharItem (CID,Quick,Equip,Inventory,Extra) ' +
'SELECT NewCID,Quick,Equip,Inventory,Extra FROM ' + @DBName + '.dbo.CharItem A JOIN TblUnifiedCharList_TEMP B ON A.UID = B.BeforeCID WHERE OldServerGroupID = @ServerGroupNum ' +
'INSERT INTO CharItemEx (CID,Exchange) ' +
'SELECT NewCID,Exchange FROM ' + @DBName + '.dbo.CharItemEx A JOIN TblUnifiedCharList_TEMP B ON A.UID = B.BeforeCID WHERE OldServerGroupID = @ServerGroupNum ' +
'INSERT INTO Quest (CID,Quest,History) ' +
'SELECT NewCID,Quest,History FROM ' + @DBName + '.dbo.Quest A JOIN TblUnifiedCharList_TEMP B ON A.UID = B.BeforeCID WHERE OldServerGroupID = @ServerGroupNum ' +
'INSERT INTO TblUnifiedItemStore1 (UID,OldServerGroupID,Password,Frag,Gold,Store) ' +
'SELECT UID,@ServerGroupNum,Password,ISNULL(Frag,1),Gold,Store FROM ' + @DBName + '.dbo.ItemStore1 ' +
'INSERT INTO TblUnifiedItemStore2 (UID,OldServerGroupID,Store) ' +
'SELECT UID,@ServerGroupNum,Store FROM ' + @DBName + '.dbo.ItemStore2 '
exec sp_executesql @String,N'@ServerGroupNum TINYINT',@ServerGroupNum
GO
CREATE PROC procUnifingGameDB_Guild @ServerGroupNum TINYINT,@DBName VARCHAR(20)
AS
SET NOCOUNT ON
DECLARE @String NVARCHAR(4000)
SET @String =
'INSERT INTO dbo.TblGuildInfo (nGuildID,strGuildName,tnGuildLevel,nGuildFame,nGuildGold,tLastLogout,tCheckMember,tGMLastLogout,bGuildMark,bRight,tnNationType,tChangeState) ' +
'SELECT NewGuildID,NewGName,tnGuildLevel,nGuildFame,nGuildGold,tLastLogout,tCheckMember,tGMLastLogout,bGuildMark,bRight,tnNationType,tChangeState ' +
'FROM ' + @DBName + '.dbo.TblGuildInfo A JOIN TblUnifiedGuildList B ON A.nGuildID = B.BeforeGuildID WHERE B.OldServerGroupID = @ServerGroupNum ' +
'INSERT INTO dbo.TblGuildMember (nGuildID,nCID,nPosition,nPositionInGuild,tLeaveGuildTime,nCampID) ' +
'SELECT B.NewGuildID,C.NewCID,nPosition,nPositionInGuild,tLeaveGuildTime,nCampID ' +
'FROM ' + @DBName + '.dbo.TblGuildMember A JOIN TblUnifiedGuildList B ON A.nGuildID = B.BeforeGuildID ' +
'JOIN TblUnifiedCharList_TEMP C ON A.nCID = C.BeforeCID WHERE B.OldServerGroupID =@ServerGroupNum AND C.OldServerGroupID = @ServerGroupNum AND C.NewGuildID > 0 '
exec sp_executesql @String,N'@ServerGroupNum TINYINT',@ServerGroupNum
GO

View File

@@ -0,0 +1,99 @@
/********************************************************************
*
* 실제 실행 될 스크립트 순차적으로 실행되어야 함.
*
********************************************************************/
GO
-- DB통합하기
-- 말레이시아 통합버젼
EXEC procCreateMetaData @ServerGroupNum = 1,@DBName ='Hyperion'
EXEC procCreateMetaData @ServerGroupNum = 2,@DBName ='Cheiron'
EXEC procCreateMetaData @ServerGroupNum = 3,@DBName ='Prometheus'
EXEC procCreateMetaData @ServerGroupNum = 4,@DBName ='Thanatos'
-- 대만 통합버젼
--EXEC procCreateMetaData @ServerGroupNum = 1,@DBName ='POTATOS'
--EXEC procCreateMetaData @ServerGroupNum = 2,@DBName ='karterant'
--EXEC procCreateMetaData @ServerGroupNum = 3,@DBName ='LOTUS'
--EXEC procCreateMetaData @ServerGroupNum = 4,@DBName ='AQUATICA'
--
--EXEC procCreateMetaData @ServerGroupNum = 4,@DBName ='MARS161.Highland'
--EXEC procCreateMetaData @ServerGroupNum = 5,@DBName ='MARS189.Aldia'
--EXEC procCreateMetaData @ServerGroupNum = 6,@DBName ='Unite'
GO
-- 3분
DROP PROC procCreateMetaData
GO
INSERT INTO [TblUnifiedCharList] (UID,OldServerGroupID,BeforeCID,NewCID,BeforeCharName)
SELECT UID,OldServerGroupID,BeforeCID,NewCID,BeforeCharName FROM [TblUnifiedCharList_TEMP]
GO
-- Name의 .
-- 처음파라미터 숫자만큼 문자열 갯수를 정의해야한다.
--EXEC procCheckCharInfoGuild 6,'S','K','I','H','A','U' --
EXEC procCheckCharInfoGuild 4,'H','C','P','T'
GO
DROP PROC procCheckCharInfoGuild
GO
-- 이름 문자열수 체크하기
IF EXISTS (SELECT NewCharName FROM TblUnifiedCharList_TEMP WHERE DATALENGTH(NewCharName) > 15)
BEGIN
UPDATE TblUnifiedCharList_TEMP
SET NewCharName = SUBSTRING(NewCharName,1,LEN(NewCharName)-2) + SUBSTRING(NewCharName,LEN(NewCharName),1)
WHERE DATALENGTH(NewCharName) > 15
END
IF EXISTS (SELECT NewGName FROM TblUnifiedGuildList WHERE DATALENGTH(NewGName) > 10 )
BEGIN
UPDATE TblUnifiedGuildList
SET NewGName = SUBSTRING(NewGName,1,LEN(NewGName)-2) + SUBSTRING(NewGName,LEN(NewGName),1)
WHERE DATALENGTH(NewGName) > 10
END
GO
/************************
*
* 이름체크부분 중복여부를 확인해서 수동으로 다시 돌려야함.
*
*************************/
--
UPDATE A
SET A.NewCharName = A.NewCharName + '#' -- .
FROM TblUnifiedCharList_TEMP A, (
SELECT NewCharName,MIN(NewCID) AS NewCID FROM TblUnifiedCharList_TEMP WHERE NewCharName IN (
SELECT NewCharName FROM TblUnifiedCharList_TEMP GROUP BY NewCharName HAVING COUNT(*) > 1 )
GROUP BY NewCharName ) B
WHERE A.NewCID = B.NewCID
-- 이름문자열 수 체크
SELECT NewCharName FROM dbo.TblUnifiedCharList_TEMP WHERE DATALENGTH(NewCharName) > 15
-- 중복이름 체크
SELECT NewCharName FROM TblUnifiedCharList_TEMP GROUP BY NewCharName HAVING COUNT(*) > 1
-- 길드이름문자열 체크
SELECT NewGName FROM dbo.TblUnifiedGuildList WHERE DATALENGTH(NewGName) > 10
-- 길드이름 체크
SELECT NewGName,Count(*) FROM TblUnifiedGuildList GROUP BY NewGName HAVING COUNT(*) > 1
/* 말레이시아 일때 체크함.
SELECT * FROM TblUnifiedGuildList WHERE NewGName ='T100000000'
update TblUnifiedGuildList set NewGName = 'T10000000^' where NewGuildID = 3449
*/

View File

@@ -0,0 +1,112 @@
-- 실제 수행하기
EXEC procUnifingGameDB @ServerGroupNum = 1,@DBName = 'Hyperion'
PRINT 'Completed procUnifingGameDB : Hyperion'
GO
EXEC procUnifingGameDB @ServerGroupNum = 2,@DBName = 'Cheiron'
PRINT 'Completed procUnifingGameDB : Cheiron'
GO
EXEC procUnifingGameDB @ServerGroupNum = 3,@DBName = 'Prometheus'
PRINT 'Completed procUnifingGameDB : Prometheus'
GO
EXEC procUnifingGameDB @ServerGroupNum = 4,@DBName = 'Thanatos'
PRINT 'Completed procUnifingGameDB : Thanatos'
GO
--EXEC procUnifingGameDB @ServerGroupNum = 4,@DBName = 'MARS161.Highland'
--PRINT 'Completed procUnifingGameDB : Highland'
GO
--EXEC procUnifingGameDB @ServerGroupNum = 5,@DBName = 'MARS189.Aldia'
--PRINT 'Completed procUnifingGameDB : Aldia'
GO
--EXEC procUnifingGameDB @ServerGroupNum = 6,@DBName = 'Unite'
--PRINT 'Completed procUnifingGameDB : Unite'
-- Execute time 9 : 58
GO
DROP PROC procUnifingGameDB
GO
SET IDENTITY_INSERT TblGuildInfo ON
GO
-- 실제 수행하기
-- 주의하기 1.한국에서 정섭통합시 길드는 합쳐야하고 Part2시 합쳐지면 안된다.
-- 2. 중국에서는 길드를 합쳐야한다.
EXEC procUnifingGameDB_Guild @ServerGroupNum = 1,@DBName = 'Hyperion'
PRINT 'Completed procUnifingGameDB_Guild : Hyperion'
GO
EXEC procUnifingGameDB_Guild @ServerGroupNum = 2,@DBName = 'Cheiron'
PRINT 'Completed procUnifingGameDB_Guild : Cheiron'
GO
EXEC procUnifingGameDB_Guild @ServerGroupNum = 3,@DBName = 'Prometheus'
PRINT 'Completed procUnifingGameDB_Guild : Prometheus'
GO
EXEC procUnifingGameDB_Guild @ServerGroupNum = 4,@DBName = 'Thanatos'
PRINT 'Completed procUnifingGameDB_Guild : Thanatos'
GO
--EXEC procUnifingGameDB_Guild @ServerGroupNum = 4,@DBName = 'MARS161.Highland'
--PRINT 'Completed procUnifingGameDB_Guild : Highland'
GO
--EXEC procUnifingGameDB_Guild @ServerGroupNum = 5,@DBName = 'MARS189.Aldia'
--PRINT 'Completed procUnifingGameDB_Guild : Aldia'
GO
--EXEC procUnifingGameDB_Guild @ServerGroupNum = 6,@DBName = 'Unite'
--PRINT 'Completed procUnifingGameDB_Guild : Unite'
GO
SET IDENTITY_INSERT TblGuildInfo OFF
GO
DROP PROC procUnifingGameDB_Guild
GO
-- SETTING PID = 0
UPDATE CharInfo SET Party = 0
GO
-- SETTING CharPos
INSERT INTO CharPos SELECT CID,0,0,0,0,0,0 FROM CharInfo
--GO
INSERT INTO Friend (CID) SELECT CID FROM CharInfo
GO
UPDATE dbo.CharInfoEx
SET ServerID = 0,NameChangeCount =1
GO
UPDATE TblGuildInfo SET OldServerGroupID = 21
GO
UPDATE CharInfo SET Chance = 3
GO
UPDATE dbo.TblUnifiedItemStore1 SET Frag = 1 WHERE Frag is null or Frag = 0
GO

View File

@@ -0,0 +1,131 @@
/****************************************************************
*
* 국내가 아닌 중국에서만 실행 되어야한다.
*
*****************************************************************/
GO
SET NOCOUNT ON
DECLARE @RowID_UID INT
DECLARE @RowID_CID INT
DECLARE @Identitymax INT
DECLARE @UID INT
DECLARE @ServerGroupNum TINYINT
DECLARE @NewCID INT
DECLARE @Nation INT
SET @Nation = 1
DECLARE @Char1 INT
DECLARE @Char2 INT
DECLARE @Char3 INT
DECLARE @Char4 INT
DECLARE @Char5 INT
DECLARE @TABLE_UID TABLE
(
ROWID INT IDENTITY(1,1) PRIMARY KEY
, UID INT
, ServerGroupNum TINYINT
)
DECLARE @TABLE_CID TABLE
(
ROWID INT IDENTITY(1,1)
, NewCID INT
)
INSERT INTO @TABLE_UID (UID,ServerGroupNum)
SELECT UID,OldServerGroupID FROM TblUnifiedCharList
GROUP BY UID,OldServerGroupID
SET @RowID_UID = @@ROWCOUNT
WHILE (@RowID_UID > 0 )
BEGIN
SELECT @Char1 = 0,@Char2 = 0,@Char3 = 0,@Char4 = 0,@Char5 = 0
SELECT @UID = UID,@ServerGroupNum = ServerGroupNum
FROM @TABLE_UID WHERE ROWID = @RowID_UID
DELETE @TABLE_CID
INSERT INTO @TABLE_CID (NewCID)
SELECT NewCID FROM TblUnifiedCharList WHERE UID = @UID AND OldServerGroupID = @ServerGroupNum
SET @RowID_CID = @@ROWCOUNT
SET @Identitymax = @@IDENTITY
WHILE (@Identitymax > (@@IDENTITY - @RowID_CID) )
BEGIN
IF (@Char1 = 0 AND @Char2 = 0 AND @Char3 = 0 AND @Char4 = 0 AND @Char5 = 0)
SELECT @Char1 = NewCID FROM @TABLE_CID WHERE ROWID = @Identitymax
ELSE IF (@Char1 <> 0 AND @Char2 = 0 AND @Char3 = 0 AND @Char4 = 0 AND @Char5 = 0)
SELECT @Char2 = NewCID FROM @TABLE_CID WHERE ROWID = @Identitymax
ELSE IF (@Char1 <> 0 AND @Char2 <> 0 AND @Char3 = 0 AND @Char4 = 0 AND @Char5 = 0)
SELECT @Char3 = NewCID FROM @TABLE_CID WHERE ROWID = @Identitymax
ELSE IF (@Char1 <> 0 AND @Char2 <> 0 AND @Char3 <> 0 AND @Char4 = 0 AND @Char5 = 0)
SELECT @Char4 = NewCID FROM @TABLE_CID WHERE ROWID = @Identitymax
ELSE IF (@Char1 <> 0 AND @Char2 <> 0 AND @Char3 <> 0 AND @Char4 <> 0 AND @Char5 = 0)
SELECT @Char5 = NewCID FROM @TABLE_CID WHERE ROWID = @Identitymax
SET @Identitymax = @Identitymax - 1
END
INSERT INTO UserInfo (UID,OldServerGroupID,Nation,Char1,Char2,Char3,Char4,Char5)
VALUES (@UID,@ServerGroupNum,@Nation,@Char1,@Char2,@Char3,@Char4,@Char5)
SET @RowID_UID = @RowID_UID - 1
END
GO
INSERT INTO UserInfo
SELECT A.UID,A.OldServerGroupID,0,0,0,0,0,0
FROM dbo.TblUnifiedItemStore1 A LEFT OUTER JOIN UserInfo B ON A.UID = B.UID AND A.OldServerGroupID = B.OldServerGroupID
WHERE B.UID IS NULL AND B.OldServerGroupID IS NULL
GO
UPDATE TblGuildInfo SET OldServerGroupID = 24
GO
--
UPDATE A
SET Nation = Race+1
FROM UserInfo A, (
SELECT UID,OldServerGroupID,Race FROM TblUnifiedCharList A JOIN CharInfo B on A.NewCID = B.CID
GROUP BY UID,OldServerGroupID,Race ) B
WHERE A.UID = B.UID AND A.OldServerGroupID = B.OldServerGroupID
GO
INSERT INTO UserFirstLoginInfo (UID)
SELECT DISTINCT UID FROM UserInfo
GO
UPDATE Quest
SET Quest = NULL , History = NULL
GO
Update CharItem
SET Quick = NULL

View File

@@ -0,0 +1,6 @@
DELETE dbo.TblGuildMember
DELETE dbo.TblGuildOtherList
DELETE dbo.TblGuildOtherList
DELETE dbo.TblGuildInfo
UPDATE CharInfo SET Guild = 0

View File

@@ -0,0 +1,102 @@
CREATE PROC procTransferGameData @OldDBName VARCHAR(20),@NewDBName VARCHAR(20),@OldServerGroupID TINYINT,@NewServerGroupID TINYINT
AS
SET NOCOUNT ON
DECLARE @String NVARCHAR(4000)
SET @String =
'INSERT INTO ' + @NewDBName + '.dbo.AdminList ' +
'SELECT * FROM ' + @OldDBName + '.dbo.AdminList ' +
'INSERT INTO ' + @NewDBName + '.dbo.CharInfo ' +
'SELECT * FROM ' + @OldDBName + '.dbo.CharInfo ' +
'INSERT INTO ' + @NewDBName + '.dbo.CharInfoEx (CID,Total,ServerID,Config) ' +
'SELECT * FROM ' + @OldDBName + '.dbo.CharInfoEx ' +
'INSERT INTO ' + @NewDBName + '.dbo.CharItem ' +
'SELECT * FROM ' + @OldDBName + '.dbo.CharItem ' +
'INSERT INTO ' + @NewDBName + '.dbo.CharItemEx (CID,Exchange) ' +
'SELECT * FROM ' + @OldDBName + '.dbo.CharItemEx ' +
'INSERT INTO ' + @NewDBName + '.dbo.CharPos ' +
'SELECT * FROM ' + @OldDBName + '.dbo.CharPos ' +
'INSERT INTO ' + @NewDBName + '.dbo.CharSkill ' +
'SELECT * FROM ' + @OldDBName + '.dbo.CharSkill ' +
'INSERT INTO ' + @NewDBName + '.dbo.Friend ' +
'SELECT * FROM ' + @OldDBName + '.dbo.Friend ' +
'INSERT INTO ' + @NewDBName + '.dbo.ItemUID ' +
'SELECT * FROM ' + @OldDBName + '.dbo.ItemUID ' +
'INSERT INTO ' + @NewDBName + '.dbo.Quest ' +
'SELECT * FROM ' + @OldDBName + '.dbo.Quest ' +
'SET IDENTITY_INSERT ' + @NewDBName + '.dbo.PartyInfo ON ' +
'INSERT INTO ' + @NewDBName + '.dbo.PartyInfo (PID,Party) ' +
'SELECT * FROM ' + @OldDBName + '.dbo.PartyInfo ' +
'SET IDENTITY_INSERT ' + @NewDBName + '.dbo.PartyInfo OFF ' +
'INSERT INTO ' + @NewDBName + '.dbo. TblEventItem ' +
'SELECT * FROM ' + @OldDBName + '.dbo.TblEventItem ' +
'INSERT INTO ' + @NewDBName + '.dbo.TblCharDelHistory ' +
'SELECT intCID,intUID,dateInsertTime,dateDeleteTime,@NewServerGroupID,@OldServerGroupID FROM ' + @OldDBName + '.dbo.TblCharDelHistory ' +
'SET IDENTITY_INSERT ' + @NewDBName + '.dbo.TblGuildInfo ON ' +
'INSERT INTO ' + @NewDBName + '.dbo.TblGuildInfo (nGuildID,strGuildName,tnGuildLevel,nGuildFame,nGuildGold,tLastLogout,tCheckMember,tGMLastLogout, ' +
'bGuildMark,bRight,tnNationType,tChangeState,OldServerGroupID) ' +
'SELECT *,@OldServerGroupID FROM ' + @OldDBName + '.dbo.TblGuildInfo ' +
'SET IDENTITY_INSERT ' + @NewDBName + '.dbo.TblGuildInfo OFF ' +
'INSERT INTO ' + @NewDBName + '.dbo.TblGuildMember ' +
'SELECT * FROM ' + @OldDBName + '.dbo.TblGuildMember ' +
'INSERT INTO ' + @NewDBName + '.dbo.TblGuildRestoreData ' +
'SELECT nGuildID,strGuildName,nGuildGold,tDeleteTime,NULL,@OldServerGroupID FROM ' + @OldDBName + '.dbo.TblGuildRestoreData ' +
'INSERT INTO ' + @NewDBName + '.dbo.TblUnifiedItemStore1 ' +
'SELECT UID,@OldServerGroupID,Password,Frag,Gold,Store FROM ' + @OldDBName + '.dbo.ItemStore1 ' +
'INSERT INTO ' + @NewDBName + '.dbo.TblUnifiedItemStore2 ' +
'SELECT UID,@OldServerGroupID,Store FROM ' + @OldDBName + '.dbo.ItemStore2 ' +
'INSERT INTO ' + @NewDBName + '.dbo.UserInfo ' +
'SELECT UID,@OldServerGroupID,0,Char1,Char2,Char3,0,0 FROM ' + @OldDBName + '.dbo.UserInfo ' +
'INSERT INTO ' + @NewDBName + '.dbo.TblUnifiedCharList ' +
'SELECT UID,@OldServerGroupID,B.CID,B.CID,B.Name FROM ( ' +
'SELECT UID,Char1 AS CID FROM ' + @NewDBName + '.dbo.UserInfo ' +
'UNION ALL ' +
'SELECT UID,Char2 FROM ' + @NewDBName + '.dbo.UserInfo ' +
'UNION ALL ' +
'SELECT UID,Char3 FROM ' + @NewDBName + '.dbo.UserInfo ) A JOIN ' + @NewDBName + '.dbo.CharInfo B on A.CID = B.CID ' +
'INSERT INTO ' + @NewDBName + '.dbo.UserFirstLoginInfo (UID) ' +
'SELECT DISTINCT UID FROM ' + @NewDBName + '.dbo.UserInfo '
EXEC sp_executesql @String,N'@OldServerGroupID TINYINT,@NewServerGroupID TINYINT',@OldServerGroupID,@NewServerGroupID
GO
EXEC procTransferGameData
@OldDBName= ,
@NewDBName = ,
@OldServerGroupID = ,
@NewServerGroupID =
GO

View File

@@ -0,0 +1,28 @@
ALTER TABLE CharItem
ALTER COLUMN Quick BINARY(100)
GO
----------------------------------------------------------------------------------------------------------------------
-- UpdateCharItemQuick.sql
----------------------------------------------------------------------------------------------------------------------
/*
*/
ALTER PROCEDURE dbo.UpdateCharItemQuick
@char_uid AS INT, /* 캐릭터 고유 아이디 */
@C_Quick AS BINARY(100) /* 장비 (2 * 15 = 30) */
AS
SET NOCOUNT ON
DECLARE @Div INT
BEGIN TRAN
UPDATE CharItem SET Quick = @C_Quick WHERE UID = @char_uid
COMMIT TRAN

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,212 @@
/* 이 SQL DDL 스크립트는 Microsoft Visual Studio(릴리스 날짜: LOCAL BUILD)에서 생성했습니다. */
/* 사용된 드라이브 : Microsoft Visual Studio - Microsoft SQL Server 드라이버 */
/* 문서 : E:\Work\여러가지문서들\VISIO FILE\공성전테이블구조.vsd */
/* 만든 시간: 2004년4월8일 4:22 오후 */
/* 작업 : Visio 데이터베이스 업데이트 마법사에서 수행 */
/* 연결된 데이터 원본 : JunDBServer */
/* 연결된 서버 : STATIONRYL */
/* 연결된 데이터베이스 : Gama_Test */
/* 새 테이블 "TblPatrolInCampInfo"을(를) 만듭니다. */
/* "TblPatrolInCampInfo" : Table of TblPatrolInCampInfo */
/* "nPatrolID" : nPatrolID identifies TblPatrolInCampInfo */
/* "nCampID" : nCampID is of TblPatrolInCampInfo */
/* "nHP" : nHP is of TblPatrolInCampInfo */
/* "tnState" : 상태 */
/* "nX" : nX is of TblPatrolInCampInfo */
/* "nY" : nY is of TblPatrolInCampInfo */
/* "nZ" : nZ is of TblPatrolInCampInfo */
create table "TblPatrolInCampInfo" (
"nCampID" int not null,
"nHP" int not null,
"tnState" tinyint not null,
"nX" int not null,
"nY" int not null,
"nZ" int not null)
go
alter table "TblPatrolInCampInfo"
add constraint "TblPatrolInCampInfo_PK" primary key (nCampID,nX,nY,nZ)
go
/* 새 테이블 "TblCampInfo"을(를) 만듭니다. */
/* "TblCampInfo" : Table of TblCampInfo */
/* "nCampID" : nCampID identifies TblCampInfo */
/* "nGuildID" : nGuildID is of TblCampInfo */
/* "nHP" : nHP is of TblCampInfo */
/* "tnState" : 구축,완료 */
/* "nEnCampingTime" : 캠프구축시간 */
/* "nX" : nX is of TblCampInfo */
/* "nY" : nY is of TblCampInfo */
/* "nZ" : nZ is of TblCampInfo */
create table "TblCampInfo" (
"nCampID" int not null,
"nGuildID" int not null,
"nHP" int not null,
"tnState" tinyint not null,
"nEnCampingTime" int not null,
"nX" int not null,
"nY" int not null,
"nZ" int not null)
go
alter table "TblCampInfo"
add constraint "TblCampInfo_PK" primary key ("nCampID")
go
/* 새 테이블 "TblWeaponInCastleInfo"을(를) 만듭니다. */
/* "TblWeaponInCastleInfo" : Table of TblWeaponInCastleInfo */
/* "nCastleID" : nCastleID is of TblWeaponInCastleInfo */
/* "tnType" : 병기종류(가드,근거리,원거리) */
/* "nHP" : 체력 */
/* "tnState" : 개발,수리,완료,업그레이드중 */
/* "tnUpgradeStep" : 업그레이드단계 */
/* "nRemainUpTime" : 업그레이드남은 시간 */
/* "nX" : nX is of TblWeaponInCastleInfo */
/* "nY" : nY is of TblWeaponInCastleInfo */
/* "nZ" : nZ is of TblWeaponInCastleInfo */
create table "TblWeaponInCastleInfo" (
"nCastleID" int not null,
"tnType" tinyint not null,
"nHP" int not null,
"tnState" tinyint not null,
"tnUpgradeStep" tinyint not null,
"nRemainUpTime" int not null,
"nX" int not null,
"nY" int not null,
"nZ" int not null)
go
alter table "TblWeaponInCastleInfo"
add constraint "TblWeaponInCastleInfo_PK" primary key (nCastleID,nX,nY,nZ)
go
/* 새 테이블 "TblCastleGateInfo"을(를) 만듭니다. */
/* "TblCastleGateInfo" : Table of TblCastleGateInfo */
/* "nCastleID" : 성아이디 */
/* "nHP" : HP */
/* "tnState" : 성문상태(수리,복구,업그레이드중) */
/* "tnOpenClose" : 성문 OPEN 또는 Close 여부 */
/* "tnUpgradeStep" : tnUpgradeStep is of TblCastleGateInfo */
/* "nRemainUpTime" : 업그레이드 남은시간 */
/* "nX" : nX is of TblCastleGateInfo */
/* "nY" : nY is of TblCastleGateInfo */
/* "nZ" : nZ is of TblCastleGateInfo */
create table "TblCastleGateInfo" (
"nCastleID" int not null,
"nHP" int not null,
"tnState" tinyint not null,
"tnOpenClose" tinyint not null,
"tnUpgradeStep" tinyint not null,
"nRemainUpTime" int not null,
"nX" int not null,
"nY" int not null,
"nZ" int not null)
go
alter table "TblCastleGateInfo"
add constraint "TblCastleGateInfo_PK" primary key ("nCastleID")
go
/* 새 테이블 "TblEmblemInCastleInfo"을(를) 만듭니다. */
/* "TblEmblemInCastleInfo" : Table of TblEmblemInCastleInfo */
/* "nCastleID" : 성아이디 */
/* "nHP" : HP */
/* "tnUpgradeStep" : 업그레이드 단계 */
/* "tnUpgradeType" : 업그레이드 종류(보석종류) */
/* "nRemainUpTime" : 업그레이드남은시간 */
/* "nX" : 좌표값 */
/* "nY" : 좌표값 */
/* "nZ" : 좌표값 */
create table "TblEmblemInCastleInfo" (
"nCastleID" int not null,
"nHP" int not null,
"tnUpgradeStep" tinyint not null,
"tnUpgradeType" tinyint not null,
"nRemainUpTime" int not null,
"nX" int not null,
"nY" int not null,
"nZ" int not null)
go
alter table "TblEmblemInCastleInfo"
add constraint "TblEmblemInCastleInfo_PK" primary key ("nCastleID")
go
/* 새 테이블 "TblCastleInfo"을(를) 만듭니다. */
/* "TblCastleInfo" : Table of TblCastleInfo */
/* "nCastleID" : 성아이디 */
/* "nGuildID" : 소유길드ID */
/* "snTax" : 세율 */
/* "nTaxMoney" : 세금저장소 */
/* "tnAttackCount" : 공성횟수 */
/* "bRight" : 관리권한 */
/* "tnInvincibleCount" : 무적횟수 */
create table "TblCastleInfo" (
"nCastleID" int not null,
"nGuildID" int not null,
"snTax" smallint not null,
"nTaxMoney" int not null,
"tnAttackCount" tinyint not null,
"bRight" binary(10) not null,
"tnInvincibleCount" tinyint not null)
go
alter table "TblCastleInfo"
add constraint "TblCastleInfo_PK" primary key ("nCastleID")
go
/* "TblPatrolInCampInfo" 테이블에 외래 키 제약 조건을 추가합니다. */
alter table "TblPatrolInCampInfo"
add constraint "TblCampInfo_TblPatrolInCampInfo_FK1" foreign key (
"nCampID")
references "TblCampInfo" (
"nCampID") on update no action on delete no action
go
/* "TblWeaponInCastleInfo" 테이블에 외래 키 제약 조건을 추가합니다. */
alter table "TblWeaponInCastleInfo"
add constraint "TblCastleInfo_TblWeaponInCastleInfo_FK1" foreign key (
"nCastleID")
references "TblCastleInfo" (
"nCastleID") on update no action on delete no action
go
/* "TblCastleGateInfo" 테이블에 외래 키 제약 조건을 추가합니다. */
alter table "TblCastleGateInfo"
add constraint "TblCastleInfo_TblCastleGateInfo_FK1" foreign key (
"nCastleID")
references "TblCastleInfo" (
"nCastleID") on update no action on delete no action
go
/* "TblEmblemInCastleInfo" 테이블에 외래 키 제약 조건을 추가합니다. */
alter table "TblEmblemInCastleInfo"
add constraint "TblCastleInfo_TblEmblemInCastleInfo_FK1" foreign key (
"nCastleID")
references "TblCastleInfo" (
"nCastleID") on update no action on delete no action
go

View File

@@ -0,0 +1,692 @@
CREATE TABLE [AdminList] (
[UID] [int] NOT NULL ,
[Level] [smallint] NULL CONSTRAINT [DF__AdminList__Level__150615B5] DEFAULT (0),
[IP_S] [varchar] (16) NULL ,
[IP_E] [varchar] (16) NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
)
)
GO
CREATE TABLE [CharInfo_1] (
[UID] [int] NOT NULL ,
[Name] [varchar] (16) NULL ,
[Sex] [tinyint] NULL CONSTRAINT [DF__CharInfo_1__Sex__7C6F7215] DEFAULT (0),
[Hair] [tinyint] NULL CONSTRAINT [DF__CharInfo_1__Hair__7D63964E] DEFAULT (0),
[Face] [tinyint] NULL CONSTRAINT [DF__CharInfo_1__Face__7E57BA87] DEFAULT (0),
[Nationality] [tinyint] NULL CONSTRAINT [DF__CharInfo___Natio__7F4BDEC0] DEFAULT (0),
[Class] [smallint] NULL CONSTRAINT [DF__CharInfo___Class__004002F9] DEFAULT (1),
[Fame] [int] NULL CONSTRAINT [DF__CharInfo___Merit__01342732] DEFAULT (0),
[Mileage] [int] NULL CONSTRAINT [DF__CharInfo_1__Fame__02284B6B] DEFAULT (0),
[Guild] [int] NULL CONSTRAINT [DF__CharInfo___Guild__031C6FA4] DEFAULT (0),
[Party] [int] NULL CONSTRAINT [DF__CharInfo___Party__041093DD] DEFAULT (0),
[Level] [tinyint] NULL CONSTRAINT [DF__CharInfo___Level__0504B816] DEFAULT (1),
[Equip] [binary] (30) NULL ,
[Gold] [int] NULL ,
[IP] [smallint] NULL CONSTRAINT [DF__CharInfo_1__IP__05F8DC4F] DEFAULT (0),
[STR] [smallint] NULL CONSTRAINT [DF__CharInfo_1__STR__06ED0088] DEFAULT (0),
[DEX] [smallint] NULL CONSTRAINT [DF__CharInfo_1__DEX__07E124C1] DEFAULT (0),
[CON] [smallint] NULL CONSTRAINT [DF__CharInfo_1__CON__08D548FA] DEFAULT (0),
[Intell] [smallint] NULL CONSTRAINT [DF__CharInfo___Intel__09C96D33] DEFAULT (0),
[WIS] [smallint] NULL CONSTRAINT [DF__CharInfo_1__WIS__0ABD916C] DEFAULT (0),
[HP] [smallint] NULL CONSTRAINT [DF__CharInfo_1__HP__0BB1B5A5] DEFAULT (0),
[MP] [smallint] NULL CONSTRAINT [DF__CharInfo_1__MP__0CA5D9DE] DEFAULT (0),
[Exp] [bigint] NULL CONSTRAINT [DF__CharInfo_1__Exp__0D99FE17] DEFAULT (0),
[Chance] [tinyint] NULL CONSTRAINT [DF__CharInfo___Chanc__7CF981FA] DEFAULT (0),
CONSTRAINT [PK__CharInfo_1__7A8729A3] PRIMARY KEY CLUSTERED
(
[UID]
) ,
CONSTRAINT [CK__CharInfo_1__UID__7B7B4DDC] CHECK ([UID] % 4 = 0)
)
GO
CREATE TABLE [CharInfo_2] (
[UID] [int] NOT NULL ,
[Name] [varchar] (16) NULL ,
[Sex] [tinyint] NULL CONSTRAINT [DF__CharInfo_2__Sex__116A8EFB] DEFAULT (0),
[Hair] [tinyint] NULL CONSTRAINT [DF__CharInfo_2__Hair__125EB334] DEFAULT (0),
[Face] [tinyint] NULL CONSTRAINT [DF__CharInfo_2__Face__1352D76D] DEFAULT (0),
[Nationality] [tinyint] NULL CONSTRAINT [DF__CharInfo___Natio__1446FBA6] DEFAULT (0),
[Class] [smallint] NULL CONSTRAINT [DF__CharInfo___Class__153B1FDF] DEFAULT (1),
[Fame] [int] NULL CONSTRAINT [DF__CharInfo___Merit__162F4418] DEFAULT (0),
[Mileage] [int] NULL CONSTRAINT [DF__CharInfo_2__Fame__17236851] DEFAULT (0),
[Guild] [int] NULL CONSTRAINT [DF__CharInfo___Guild__18178C8A] DEFAULT (0),
[Party] [int] NULL CONSTRAINT [DF__CharInfo___Party__190BB0C3] DEFAULT (0),
[Level] [tinyint] NULL CONSTRAINT [DF__CharInfo___Level__19FFD4FC] DEFAULT (1),
[Equip] [binary] (30) NULL ,
[Gold] [int] NULL ,
[IP] [smallint] NULL CONSTRAINT [DF__CharInfo_2__IP__1AF3F935] DEFAULT (0),
[STR] [smallint] NULL CONSTRAINT [DF__CharInfo_2__STR__1BE81D6E] DEFAULT (0),
[DEX] [smallint] NULL CONSTRAINT [DF__CharInfo_2__DEX__1CDC41A7] DEFAULT (0),
[CON] [smallint] NULL CONSTRAINT [DF__CharInfo_2__CON__1DD065E0] DEFAULT (0),
[Intell] [smallint] NULL CONSTRAINT [DF__CharInfo___Intel__1EC48A19] DEFAULT (0),
[WIS] [smallint] NULL CONSTRAINT [DF__CharInfo_2__WIS__1FB8AE52] DEFAULT (0),
[HP] [smallint] NULL CONSTRAINT [DF__CharInfo_2__HP__20ACD28B] DEFAULT (0),
[MP] [smallint] NULL CONSTRAINT [DF__CharInfo_2__MP__21A0F6C4] DEFAULT (0),
[Exp] [bigint] NULL CONSTRAINT [DF__CharInfo_2__Exp__22951AFD] DEFAULT (0),
[Chance] [tinyint] NULL CONSTRAINT [DF__CharInfo___Chanc__7DEDA633] DEFAULT (0),
CONSTRAINT [PK__CharInfo_2__0F824689] PRIMARY KEY CLUSTERED
(
[UID]
) ,
CONSTRAINT [CK__CharInfo_2__UID__10766AC2] CHECK ([UID] % 4 = 1)
)
GO
CREATE TABLE [CharInfo_3] (
[UID] [int] NOT NULL ,
[Name] [varchar] (16) NULL ,
[Sex] [tinyint] NULL CONSTRAINT [DF__CharInfo_3__Sex__2665ABE1] DEFAULT (0),
[Hair] [tinyint] NULL CONSTRAINT [DF__CharInfo_3__Hair__2759D01A] DEFAULT (0),
[Face] [tinyint] NULL CONSTRAINT [DF__CharInfo_3__Face__284DF453] DEFAULT (0),
[Nationality] [tinyint] NULL CONSTRAINT [DF__CharInfo___Natio__2942188C] DEFAULT (0),
[Class] [smallint] NULL CONSTRAINT [DF__CharInfo___Class__2A363CC5] DEFAULT (1),
[Fame] [int] NULL CONSTRAINT [DF__CharInfo___Merit__2B2A60FE] DEFAULT (0),
[Mileage] [int] NULL CONSTRAINT [DF__CharInfo_3__Fame__2C1E8537] DEFAULT (0),
[Guild] [int] NULL CONSTRAINT [DF__CharInfo___Guild__2D12A970] DEFAULT (0),
[Party] [int] NULL CONSTRAINT [DF__CharInfo___Party__2E06CDA9] DEFAULT (0),
[Level] [tinyint] NULL CONSTRAINT [DF__CharInfo___Level__2EFAF1E2] DEFAULT (1),
[Equip] [binary] (30) NULL ,
[Gold] [int] NULL ,
[IP] [smallint] NULL CONSTRAINT [DF__CharInfo_3__IP__2FEF161B] DEFAULT (0),
[STR] [smallint] NULL CONSTRAINT [DF__CharInfo_3__STR__30E33A54] DEFAULT (0),
[DEX] [smallint] NULL CONSTRAINT [DF__CharInfo_3__DEX__31D75E8D] DEFAULT (0),
[CON] [smallint] NULL CONSTRAINT [DF__CharInfo_3__CON__32CB82C6] DEFAULT (0),
[Intell] [smallint] NULL CONSTRAINT [DF__CharInfo___Intel__33BFA6FF] DEFAULT (0),
[WIS] [smallint] NULL CONSTRAINT [DF__CharInfo_3__WIS__34B3CB38] DEFAULT (0),
[HP] [smallint] NULL CONSTRAINT [DF__CharInfo_3__HP__35A7EF71] DEFAULT (0),
[MP] [smallint] NULL CONSTRAINT [DF__CharInfo_3__MP__369C13AA] DEFAULT (0),
[Exp] [bigint] NULL CONSTRAINT [DF__CharInfo_3__Exp__379037E3] DEFAULT (0),
[Chance] [tinyint] NULL CONSTRAINT [DF__CharInfo___Chanc__7EE1CA6C] DEFAULT (0),
CONSTRAINT [PK__CharInfo_3__247D636F] PRIMARY KEY CLUSTERED
(
[UID]
) ,
CONSTRAINT [CK__CharInfo_3__UID__257187A8] CHECK ([UID] % 4 = 2)
)
GO
CREATE TABLE [CharInfo_4] (
[UID] [int] NOT NULL ,
[Name] [varchar] (16) NULL ,
[Sex] [tinyint] NULL CONSTRAINT [DF__CharInfo_4__Sex__3B60C8C7] DEFAULT (0),
[Hair] [tinyint] NULL CONSTRAINT [DF__CharInfo_4__Hair__3C54ED00] DEFAULT (0),
[Face] [tinyint] NULL CONSTRAINT [DF__CharInfo_4__Face__3D491139] DEFAULT (0),
[Nationality] [tinyint] NULL CONSTRAINT [DF__CharInfo___Natio__3E3D3572] DEFAULT (0),
[Class] [smallint] NULL CONSTRAINT [DF__CharInfo___Class__3F3159AB] DEFAULT (1),
[Fame] [int] NULL CONSTRAINT [DF__CharInfo___Merit__40257DE4] DEFAULT (0),
[Mileage] [int] NULL CONSTRAINT [DF__CharInfo_4__Fame__4119A21D] DEFAULT (0),
[Guild] [int] NULL CONSTRAINT [DF__CharInfo___Guild__420DC656] DEFAULT (0),
[Party] [int] NULL CONSTRAINT [DF__CharInfo___Party__4301EA8F] DEFAULT (0),
[Level] [tinyint] NULL CONSTRAINT [DF__CharInfo___Level__43F60EC8] DEFAULT (1),
[Equip] [binary] (30) NULL ,
[Gold] [int] NULL ,
[IP] [smallint] NULL CONSTRAINT [DF__CharInfo_4__IP__44EA3301] DEFAULT (0),
[STR] [smallint] NULL CONSTRAINT [DF__CharInfo_4__STR__45DE573A] DEFAULT (0),
[DEX] [smallint] NULL CONSTRAINT [DF__CharInfo_4__DEX__46D27B73] DEFAULT (0),
[CON] [smallint] NULL CONSTRAINT [DF__CharInfo_4__CON__47C69FAC] DEFAULT (0),
[Intell] [smallint] NULL CONSTRAINT [DF__CharInfo___Intel__48BAC3E5] DEFAULT (0),
[WIS] [smallint] NULL CONSTRAINT [DF__CharInfo_4__WIS__49AEE81E] DEFAULT (0),
[HP] [smallint] NULL CONSTRAINT [DF__CharInfo_4__HP__4AA30C57] DEFAULT (0),
[MP] [smallint] NULL CONSTRAINT [DF__CharInfo_4__MP__4B973090] DEFAULT (0),
[Exp] [bigint] NULL CONSTRAINT [DF__CharInfo_4__Exp__4C8B54C9] DEFAULT (0),
[Chance] [tinyint] NULL CONSTRAINT [DF__CharInfo___Chanc__7FD5EEA5] DEFAULT (0),
CONSTRAINT [PK__CharInfo_4__39788055] PRIMARY KEY CLUSTERED
(
[UID]
) ,
CONSTRAINT [CK__CharInfo_4__UID__3A6CA48E] CHECK ([UID] % 4 = 3)
)
GO
CREATE TABLE [CharInfo_Time] (
[CID] [int] NOT NULL ,
[CreateTime] [smalldatetime] NULL ,
[UpdateTime] [smalldatetime] NULL ,
PRIMARY KEY CLUSTERED
(
[CID]
)
)
GO
CREATE TABLE [CharInfoEx] (
[UID] [int] NOT NULL ,
[Total] [int] NULL CONSTRAINT [DF__CharInfoE__Total__5CC1BC92] DEFAULT (0),
[ServerID] [int] NULL CONSTRAINT [DF__CharInfoE__Serve__5DB5E0CB] DEFAULT (0),
[Config] [binary] (50) NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
)
)
GO
CREATE TABLE [CharItem] (
[UID] [int] NOT NULL ,
[Quick] [binary] (40) NULL ,
[Equip] [binary] (1440) NULL ,
[Inventory] [binary] (5120) NULL ,
[Extra] [binary] (512) NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
)
)
GO
CREATE TABLE [CharItemEx] (
[UID] [int] NOT NULL ,
[Exchange] [binary] (1284) NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
)
)
GO
CREATE TABLE [CharPos_1] (
[UID] [int] NOT NULL ,
[LastPointX] [real] NULL ,
[LastPointY] [real] NULL ,
[LastPointZ] [real] NULL ,
[SavePointX] [real] NULL ,
[SavePointY] [real] NULL ,
[SavePointZ] [real] NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
) ,
CHECK ([UID] % 4 = 0)
)
GO
CREATE TABLE [CharPos_2] (
[UID] [int] NOT NULL ,
[LastPointX] [real] NULL ,
[LastPointY] [real] NULL ,
[LastPointZ] [real] NULL ,
[SavePointX] [real] NULL ,
[SavePointY] [real] NULL ,
[SavePointZ] [real] NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
) ,
CHECK ([UID] % 4 = 1)
)
GO
CREATE TABLE [CharPos_3] (
[UID] [int] NOT NULL ,
[LastPointX] [real] NULL ,
[LastPointY] [real] NULL ,
[LastPointZ] [real] NULL ,
[SavePointX] [real] NULL ,
[SavePointY] [real] NULL ,
[SavePointZ] [real] NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
) ,
CHECK ([UID] % 4 = 2)
)
GO
CREATE TABLE [CharPos_4] (
[UID] [int] NOT NULL ,
[LastPointX] [real] NULL ,
[LastPointY] [real] NULL ,
[LastPointZ] [real] NULL ,
[SavePointX] [real] NULL ,
[SavePointY] [real] NULL ,
[SavePointZ] [real] NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
) ,
CHECK ([UID] % 4 = 3)
)
GO
CREATE TABLE [CharSkill_1] (
[UID] [int] NOT NULL ,
[Skill] [binary] (84) NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
) ,
CHECK ([UID] % 4 = 0)
)
GO
CREATE TABLE [CharSkill_2] (
[UID] [int] NOT NULL ,
[Skill] [binary] (84) NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
) ,
CHECK ([UID] % 4 = 1)
)
GO
CREATE TABLE [CharSkill_3] (
[UID] [int] NOT NULL ,
[Skill] [binary] (84) NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
) ,
CHECK ([UID] % 4 = 2)
)
GO
CREATE TABLE [CharSkill_4] (
[UID] [int] NOT NULL ,
[Skill] [binary] (84) NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
) ,
CHECK ([UID] % 4 = 3)
)
GO
CREATE TABLE [CIDStore] (
[UID] [int] NOT NULL
)
GO
CREATE TABLE [Friend] (
[UID] [int] NOT NULL ,
[Friend] [binary] (2404) NULL ,
[Ban] [binary] (2004) NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
)
)
GO
CREATE TABLE [ItemStore1] (
[UID] [int] NOT NULL ,
[Password] [char] (5) NULL CONSTRAINT [DF__ItemStore__Passw__73A521EA] DEFAULT ('0000'),
[Frag] [int] NULL ,
[Gold] [int] NULL ,
[Store] [binary] (7300) NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
)
)
GO
CREATE TABLE [ItemStore2] (
[UID] [int] NOT NULL ,
[Store] [binary] (7300) NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
)
)
GO
CREATE TABLE [ItemUID] (
[Server] [int] NOT NULL ,
[Item] [bigint] NULL CONSTRAINT [DF__ItemUID__Item__70C8B53F] DEFAULT (0),
PRIMARY KEY CLUSTERED
(
[Server]
)
)
GO
CREATE TABLE [PartyInfo_1] (
[UID] [int] NOT NULL ,
[Party] [binary] (200) NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
) ,
CHECK ([UID] % 4 = 0)
)
GO
CREATE TABLE [PartyInfo_2] (
[UID] [int] NOT NULL ,
[Party] [binary] (200) NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
) ,
CHECK ([UID] % 4 = 1)
)
GO
CREATE TABLE [PartyInfo_3] (
[UID] [int] NOT NULL ,
[Party] [binary] (200) NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
) ,
CHECK ([UID] % 4 = 2)
)
GO
CREATE TABLE [PartyInfo_4] (
[UID] [int] NOT NULL ,
[Party] [binary] (200) NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
) ,
CHECK ([UID] % 4 = 3)
)
GO
CREATE TABLE [PIDStore] (
[UID] [int] NOT NULL
)
GO
CREATE TABLE [Quest] (
[UID] [int] NOT NULL ,
[Quest] [binary] (134) NULL ,
[History] [binary] (204) NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
)
)
GO
CREATE TABLE [TblCharDelHistory] (
[intCID] [int] NOT NULL ,
[intUID] [int] NOT NULL ,
[dateInsertTime] [smalldatetime] NOT NULL CONSTRAINT [DF__TblCharDe__dateI__0C3BC58A] DEFAULT (getdate()),
[dateDeleteTime] [smalldatetime] NOT NULL ,
PRIMARY KEY CLUSTERED
(
[intCID]
)
)
GO
CREATE TABLE [TblCharDelHistory_LOG] (
[intCID] [int] NULL ,
[intUID] [int] NULL ,
[dateInsertTime] [smalldatetime] NULL ,
[dateDeleteTime] [smalldatetime] NULL
)
GO
CREATE TABLE [TblEventItem] (
[nItemIndex] [int] NULL ,
[strItemName] [varchar] (20) NULL ,
[nItemAmount] [int] NULL ,
[UpdateTime] [smalldatetime] NULL
)
GO
CREATE TABLE [TblGuildGold_Log] (
[nGuildID] [int] NOT NULL ,
[tInsertTime] [datetime] NOT NULL ,
[strCharName] [varchar] (20) NOT NULL ,
[tnStrengthType] [tinyint] NOT NULL ,
[snPosition] [smallint] NOT NULL ,
[tnStrengthLevel] [tinyint] NOT NULL ,
[nLostGold] [int] NOT NULL ,
[nGetGold] [int] NOT NULL ,
[nRemainGold] [int] NOT NULL
)
GO
CREATE TABLE [TblGuildInfo] (
[nGuildID] [int] IDENTITY (10001, 1) NOT NULL ,
[strGuildName] [varchar] (20) NOT NULL ,
[tnGuildLevel] [tinyint] NOT NULL ,
[nGuildFame] [int] NOT NULL ,
[nGuildGold] [int] NOT NULL CONSTRAINT [DF__TblGuildI__nGuil__13DCE752] DEFAULT (0),
[tLastLogout] [smalldatetime] NOT NULL CONSTRAINT [DF__TblGuildI__tLast__14D10B8B] DEFAULT ('2010.12.31'),
[tCheckMember] [smalldatetime] NOT NULL CONSTRAINT [DF__TblGuildI__tChec__15C52FC4] DEFAULT (getdate()),
[tGMLastLogout] [smalldatetime] NULL CONSTRAINT [DF__TblGuildI__tGMLa__16B953FD] DEFAULT ('2010.12.31'),
[bGuildMark] [binary] (433) NULL ,
[bRight] [binary] (50) NULL ,
[tnNationType] [tinyint] NULL ,
PRIMARY KEY CLUSTERED
(
[nGuildID]
) ,
CONSTRAINT [uk_TblGuildInfo_strGuildName] UNIQUE NONCLUSTERED
(
[strGuildName]
) ,
CHECK ([strGuildName] <> null)
)
GO
CREATE TABLE [TblGuildItem] (
[nGuildID] [int] NOT NULL ,
[bGuildItem] [binary] (7300) NULL ,
PRIMARY KEY CLUSTERED
(
[nGuildID]
) ,
CONSTRAINT [FK_TblGuildInfo_guilditem] FOREIGN KEY
(
[nGuildID]
) REFERENCES [TblGuildInfo] (
[nGuildID]
) ON DELETE CASCADE
)
GO
CREATE TABLE [TblGuildItem_EX] (
[nGuildID] [int] NOT NULL ,
[bGuildItem] [binary] (7300) NULL ,
PRIMARY KEY CLUSTERED
(
[nGuildID]
) ,
CONSTRAINT [FK_TblGuildInfo_guilditem_ex] FOREIGN KEY
(
[nGuildID]
) REFERENCES [TblGuildInfo] (
[nGuildID]
) ON DELETE CASCADE
)
GO
CREATE TABLE [TblGuildItem_log] (
[nGuildID] [int] NULL ,
[tInsertTime] [datetime] NULL ,
[strCharName] [varchar] (20) NULL ,
[nItemID] [int] NULL ,
[nItemType] [int] NULL ,
[nItemStrengthStep] [int] NULL ,
[nReason] [int] NULL
)
GO
CREATE TABLE [TblGuildMember] (
[nGuildID] [int] NOT NULL ,
[nCID] [int] NOT NULL ,
[nPosition] [int] NOT NULL ,
[nPositionInGuild] [int] NULL ,
[tLeaveGuildTime] [smalldatetime] NULL ,
CONSTRAINT [PK_GuildMember_Guildid_nCid] PRIMARY KEY CLUSTERED
(
[nGuildID],
[nCID]
) ,
CONSTRAINT [FK_TblGuildInfo_TblGuildMember] FOREIGN KEY
(
[nGuildID]
) REFERENCES [TblGuildInfo] (
[nGuildID]
) ON DELETE CASCADE
)
GO
CREATE TABLE [TblGuildMsg] (
[nMsgID] [int] IDENTITY (1, 1) NOT NULL ,
[nGuildID] [int] NOT NULL ,
[strCharName] [varchar] (20) NOT NULL ,
[tInsertTime] [smalldatetime] NOT NULL ,
[strTitle] [varchar] (60) NOT NULL ,
[strMsgType] [varchar] (10) NULL ,
[nClass] [int] NULL ,
[nLevel] [int] NULL ,
[strContent] [varchar] (4000) NULL ,
PRIMARY KEY NONCLUSTERED
(
[nMsgID]
) ,
CONSTRAINT [FK_TblGuildInfo_TblGuildMsg] FOREIGN KEY
(
[nGuildID]
) REFERENCES [TblGuildInfo] (
[nGuildID]
) ON DELETE CASCADE
)
GO
CREATE TABLE [TblGuildOtherList] (
[nGuildID] [int] NOT NULL ,
[nOtherGuildID] [int] NOT NULL ,
[tnState] [tinyint] NOT NULL ,
CONSTRAINT [PK_TblGuildOtherList_1] PRIMARY KEY CLUSTERED
(
[nGuildID],
[nOtherGuildID]
) ,
CONSTRAINT [FK_TblGuildInfo_TblGuildOtherList] FOREIGN KEY
(
[nGuildID]
) REFERENCES [TblGuildInfo] (
[nGuildID]
) ON DELETE CASCADE ,
CHECK ([tnState] = 0 or [tnState] = 1 or [tnState] = 2)
)
GO
CREATE TABLE [TblGuildRestoreData] (
[nGuildID] [int] NULL ,
[strGuildName] [varchar] (20) NULL ,
[nGuildGold] [int] NULL ,
[bGuildItem] [binary] (7300) NULL ,
[tDeleteTime] [smalldatetime] NULL ,
[strGuildMName] [varchar] (20) NULL
)
GO
CREATE TABLE [TblGuildRestoreData_EX] (
[nGuildID] [int] NULL ,
[bGuildItem_EX] [binary] (7300) NULL
)
GO
CREATE TABLE [UserInfo_1] (
[UID] [int] NOT NULL ,
[Char1] [int] NULL ,
[Char2] [int] NULL ,
[Char3] [int] NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
) ,
CHECK ([UID] % 4 = 0)
)
GO
CREATE TABLE [UserInfo_2] (
[UID] [int] NOT NULL ,
[Char1] [int] NULL ,
[Char2] [int] NULL ,
[Char3] [int] NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
) ,
CHECK ([UID] % 4 = 1)
)
GO
CREATE TABLE [UserInfo_3] (
[UID] [int] NOT NULL ,
[Char1] [int] NULL ,
[Char2] [int] NULL ,
[Char3] [int] NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
) ,
CHECK ([UID] % 4 = 2)
)
GO
CREATE TABLE [UserInfo_4] (
[UID] [int] NOT NULL ,
[Char1] [int] NULL ,
[Char2] [int] NULL ,
[Char3] [int] NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
) ,
CHECK ([UID] % 4 = 3)
)
GO

View File

@@ -0,0 +1,180 @@
CREATE TABLE [DelCharInfo_1] (
[UID] [int] NOT NULL ,
[Name] [varchar] (16) NULL ,
[Sex] [tinyint] NULL ,
[Hair] [tinyint] NULL ,
[Face] [tinyint] NULL ,
[Nationality] [tinyint] NULL ,
[Class] [smallint] NULL ,
[Fame] [int] NULL ,
[Mileage] [int] NULL ,
[Guild] [int] NULL ,
[Party] [int] NULL ,
[Level] [tinyint] NULL ,
[Equip] [binary] (30) NULL ,
[Gold] [int] NULL ,
[IP] [smallint] NULL ,
[STR] [smallint] NULL ,
[DEX] [smallint] NULL ,
[CON] [smallint] NULL ,
[Intell] [smallint] NULL ,
[WIS] [smallint] NULL ,
[HP] [smallint] NULL ,
[MP] [smallint] NULL ,
[Exp] [bigint] NULL ,
[Chance] [tinyint] NULL
)
GO
CREATE TABLE [DelCharInfo_2] (
[UID] [int] NOT NULL ,
[Name] [varchar] (16) NULL ,
[Sex] [tinyint] NULL ,
[Hair] [tinyint] NULL ,
[Face] [tinyint] NULL ,
[Nationality] [tinyint] NULL ,
[Class] [smallint] NULL ,
[Fame] [int] NULL ,
[Mileage] [int] NULL ,
[Guild] [int] NULL ,
[Party] [int] NULL ,
[Level] [tinyint] NULL ,
[Equip] [binary] (30) NULL ,
[Gold] [int] NULL ,
[IP] [smallint] NULL ,
[STR] [smallint] NULL ,
[DEX] [smallint] NULL ,
[CON] [smallint] NULL ,
[Intell] [smallint] NULL ,
[WIS] [smallint] NULL ,
[HP] [smallint] NULL ,
[MP] [smallint] NULL ,
[Exp] [bigint] NULL ,
[Chance] [tinyint] NULL
)
GO
CREATE TABLE [DelCharInfo_3] (
[UID] [int] NOT NULL ,
[Name] [varchar] (16) NULL ,
[Sex] [tinyint] NULL ,
[Hair] [tinyint] NULL ,
[Face] [tinyint] NULL ,
[Nationality] [tinyint] NULL ,
[Class] [smallint] NULL ,
[Fame] [int] NULL ,
[Mileage] [int] NULL ,
[Guild] [int] NULL ,
[Party] [int] NULL ,
[Level] [tinyint] NULL ,
[Equip] [binary] (30) NULL ,
[Gold] [int] NULL ,
[IP] [smallint] NULL ,
[STR] [smallint] NULL ,
[DEX] [smallint] NULL ,
[CON] [smallint] NULL ,
[Intell] [smallint] NULL ,
[WIS] [smallint] NULL ,
[HP] [smallint] NULL ,
[MP] [smallint] NULL ,
[Exp] [bigint] NULL ,
[Chance] [tinyint] NULL
)
GO
CREATE TABLE [DelCharInfo_4] (
[UID] [int] NOT NULL ,
[Name] [varchar] (16) NULL ,
[Sex] [tinyint] NULL ,
[Hair] [tinyint] NULL ,
[Face] [tinyint] NULL ,
[Nationality] [tinyint] NULL ,
[Class] [smallint] NULL ,
[Fame] [int] NULL ,
[Mileage] [int] NULL ,
[Guild] [int] NULL ,
[Party] [int] NULL ,
[Level] [tinyint] NULL ,
[Equip] [binary] (30) NULL ,
[Gold] [int] NULL ,
[IP] [smallint] NULL ,
[STR] [smallint] NULL ,
[DEX] [smallint] NULL ,
[CON] [smallint] NULL ,
[Intell] [smallint] NULL ,
[WIS] [smallint] NULL ,
[HP] [smallint] NULL ,
[MP] [smallint] NULL ,
[Exp] [bigint] NULL ,
[Chance] [tinyint] NULL
)
GO
CREATE TABLE [DelCharInfo_Time] (
[CID] [int] NOT NULL ,
[CreateTime] [smalldatetime] NULL ,
[UpdateTime] [smalldatetime] NULL
)
GO
CREATE TABLE [DelCharItem] (
[UID] [int] NOT NULL ,
[Quick] [binary] (40) NULL ,
[Equip] [binary] (1440) NULL ,
[Inventory] [binary] (5120) NULL ,
[Extra] [binary] (512) NULL
)
GO
CREATE TABLE [DelCharItemEx] (
[UID] [int] NOT NULL ,
[Exchange] [binary] (1284) NULL
)
GO
CREATE TABLE [DelCharSkill_1] (
[UID] [int] NOT NULL ,
[Skill] [binary] (84) NULL
)
GO
CREATE TABLE [DelCharSkill_2] (
[UID] [int] NOT NULL ,
[Skill] [binary] (84) NULL
)
GO
CREATE TABLE [DelCharSkill_3] (
[UID] [int] NOT NULL ,
[Skill] [binary] (84) NULL
)
GO
CREATE TABLE [DelCharSkill_4] (
[UID] [int] NOT NULL ,
[Skill] [binary] (84) NULL
)
GO
CREATE TABLE [TblCharDelHistory_LOG] (
[intCID] [int] NULL ,
[intUID] [int] NULL ,
[dateInsertTime] [smalldatetime] NULL ,
[dateDeleteTime] [smalldatetime] NULL
)
GO

View File

@@ -0,0 +1,39 @@
ALTER TABLE TblGuildInfo
ADD tChangeState SMALLDATETIME
GO
UPDATE TblGuildInfo
SET tnNationType = 101
WHERE tnNationType = 0
GO
UPDATE TblGuildInfo
SET tnNationType = 105
WHERE tnNationType = 1
GO
-- ADD Equip column
ALTER PROCEDURE dbo.GetCharInfo
@UID AS INT
AS
SET NOCOUNT ON
SELECT UID, Name, Sex, Hair, Face, Nationality, Class, Fame, Mileage, Guild, Party, Level, Gold, IP, STR, DEX, CON, Intell, WIS, HP, MP,
Exp , Chance,Equip
FROM CharInfo WHERE UID = @UID
GO
-- add nCampID
ALTER TABLE TblGuildMember
ADD nCampID INT default(0)
GO
update TblGuildMember
set nCampID = 0

View File

@@ -0,0 +1,14 @@
DROP TABLE TblEventItem
GO
CREATE TABLE [TblEventItem] (
[nItemIndex] [int] NULL ,
[nItemAmount] [int] NULL ,
nMaxAmount int NULL,
[StartTime] [smalldatetime] NULL ,
EndTime smalldatetime null
) ON [PRIMARY]
GO

View File

@@ -0,0 +1,83 @@
/*
디폴트 = 0
*/
CREATE VIEW dbo.CharInfo
AS
SELECT * FROM CharInfo_1
UNION ALL
SELECT * FROM CharInfo_2
UNION ALL
SELECT * FROM CharInfo_3
UNION ALL
SELECT * FROM CharInfo_4
GO
/*
캐릭터 위치 테이블 뷰
*/
CREATE VIEW dbo.CharPos
AS
SELECT * FROM CharPos_1
UNION ALL
SELECT * FROM CharPos_2
UNION ALL
SELECT * FROM CharPos_3
UNION ALL
SELECT * FROM CharPos_4
GO
/*
캐릭터 추가 정 테이블 뷰
*/
CREATE VIEW dbo.CharSkill
AS
SELECT * FROM CharSkill_1
UNION ALL
SELECT * FROM CharSkill_2
UNION ALL
SELECT * FROM CharSkill_3
UNION ALL
SELECT * FROM CharSkill_4
GO
/*
파티 정보 테이블 뷰
*/
CREATE VIEW dbo.PartyInfo
AS
SELECT * FROM PartyInfo_1
UNION ALL
SELECT * FROM PartyInfo_2
UNION ALL
SELECT * FROM PartyInfo_3
UNION ALL
SELECT * FROM PartyInfo_4
GO
/*
유저 정보 테이블 뷰
*/
CREATE VIEW dbo.UserInfo
AS
SELECT * FROM UserInfo_1
UNION ALL
SELECT * FROM UserInfo_2
UNION ALL
SELECT * FROM UserInfo_3
UNION ALL
SELECT * FROM UserInfo_4
GO

View File

@@ -0,0 +1,87 @@
-- 2005-04-14 정섭에 적용됨
-- 파티 테이블 수정 --
ALTER TABLE dbo.PartyInfo
Add UserInfo varbinary(70)
GO
-- Friend 테이블 수정 --
GO
alter table Friend
add FriendInfo varBINARY(704)
GO
alter table Friend
add BanInfo varBinary(704)
-- 파티 정보 얻어오기 --
GO
----------------------------------------------------------------------------------------------------------------------
-- GetPartyInfo.sql
----------------------------------------------------------------------------------------------------------------------
/*
*/
GO
CREATE PROCEDURE dbo.GetPartyInfo_Part2
@Party_uid AS INT /* 파티 아이디 */
AS
SET NOCOUNT ON
SELECT Party, UserInfo FROM PartyInfo WHERE PID = @Party_uid
-- 파티 정보 업데이트 --
GO
----------------------------------------------------------------------------------------------------------------------
-- UpdatePartyInfo.sql
----------------------------------------------------------------------------------------------------------------------
/*
*/
CREATE PROCEDURE dbo.UpdatePartyInfo_Part2
@Party_uid AS INT, /* 파티 고유 아이디 */
@Party AS varBINARY(202), /* 친구 리스트 */
@UserInfo AS varBINARY(72) /* 유저 정보 */
AS
SET NOCOUNT ON
UPDATE PartyInfo SET Party = @Party, UserInfo = @UserInfo WHERE PID = @Party_uid
-- 파티 추가 --
GO
-------------------------------------------------------------------------------------------------------------
-- InsertParty.sql
----------------------------------------------------------------------------------------------------------------------
/*
*/
CREATE PROCEDURE dbo.InsertParty_Part2
@Party AS varBINARY(202), /* 친구 리스트 */
@UserInfo AS varBINARY(72) /* 유저 정보 */
AS
SET NOCOUNT ON
INSERT INTO PartyInfo (Party, UserInfo) VALUES (@Party, @UserInfo)
/* 고유 아이디 돌려줌 */
SELECT CAST(SCOPE_IDENTITY() AS INT)
GO

View File

@@ -0,0 +1,86 @@
ALTER TABLE [TblCampInfo] ADD [tnSiegeCount] [tinyint] NULL
GO
ALTER TABLE [TblCampShopInfo] DROP COLUMN [TransferTime]
GO
DROP TABLE [TblCastleInfo]
GO
CREATE TABLE [TblCastleInfo] (
[nCastleID] [int] IDENTITY (1, 1) NOT NULL,
[nGuildID] [int] NULL,
[tnZone] [tinyint] NULL,
[tnChannel] [tinyint] NULL,
[tnName] [tinyint] NULL,
[tnSiegeCount] [tinyint] NULL,
[tnInvincibleCount] [tinyint] NULL,
[snTotalSiegeCount] [smallint] NULL,
[nTotalTaxMoney] [int] NULL,
[bRight] [varbinary] (10) NULL,
[fPosInX] [real] NULL,
[fPosInY] [real] NULL,
[fPosInZ] [real] NULL,
[fPosOutX] [real] NULL,
[fPosOutY] [real] NULL,
[fPosOutZ] [real] NULL,
[snItemID] [smallint] NULL,
[tnItemNum] [tinyint] NULL
) ON [PRIMARY]
GO
CREATE TABLE [TblCastleTaxInfo] (
[nCastleID] [int] NULL,
[tnType] [tinyint] NULL,
[tnTax] [tinyint] NULL,
[nTempMoney] [int] NULL,
[nTaxMoney] [int] NULL,
[tnTaxChangable] [tinyint] NULL
) ON [PRIMARY]
GO
CREATE TABLE [TblCastleMineralInfo] (
[nCastleID] [int] NULL ,
[snMineralID] [smallint] NULL ,
[snAmount] [smallint] NULL ,
[tnFlag] [tinyint] NULL
) ON [PRIMARY]
GO
DROP PROC USPCastleUpdate
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROC USPCastleUpdate @nCastleID INT,@nGuildID INT,@tnSiegeCount TINYINT,
@tnInvincibleCount TINYINT,@snTotalSiegeCount SMALLINT,@nTotalTaxMoney INT,
@snItemID SMALLINT,@tnItemNum TINYINT
AS
SET NOCOUNT ON
DECLARE @RETURN INT
UPDATE TblCastleInfo
SET nGuildID = @nGuildID,tnSiegeCount = @tnSiegeCount,tnInvincibleCount = @tnInvincibleCount,
snTotalSiegeCount = @snTotalSiegeCount,nTotalTaxMoney = @nTotalTaxMoney,
snItemID = @snItemID,tnItemNum = @tnItemNum
WHERE nCastleID = @nCastleID
SET @RETURN = @@ROWCOUNT
SELECT @RETURN
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

View File

@@ -0,0 +1,80 @@
/*------------------------------------------------------------------------------//
// 적아군 식별 장치 관련 DB 수정. //
//------------------------------------------------------------------------------*/
-- 파티 정보에 길드 정보 추가 --
ALTER TABLE dbo.PartyInfo
ADD GID INT
-- 새로 만들 프로시저 모두 드랍
GO
DROP PROC InsertParty_Part2
GO
DROP PROC GetPartyInfo_Part2
GO
DROP PROC UpdatePartyInfo_Part2
GO
----------------------------------------------------------------------------------------------------------------------
-- GetPartyInfo.sql
----------------------------------------------------------------------------------------------------------------------
/*
*/
CREATE PROCEDURE dbo.GetPartyInfo_Part2
@Party_uid AS INT /* 파티 아이디 */
AS
SET NOCOUNT ON
SELECT Party, UserInfo, GID FROM PartyInfo WHERE PID = @Party_uid
GO
----------------------------------------------------------------------------------------------------------------------
-- InsertParty.sql
----------------------------------------------------------------------------------------------------------------------
/*
*/
CREATE PROCEDURE dbo.InsertParty_Part2
@Party AS varBINARY(202), /* 친구 리스트 */
@UserInfo AS varBINARY(72), /* 유저 정보 */
@GID AS int /* 임시 길드원 정보 */
AS
SET NOCOUNT ON
INSERT INTO PartyInfo (Party, UserInfo, GID) VALUES (@Party, @UserInfo, @GID)
/* 고유 아이디 돌려줌 */
SELECT CAST(SCOPE_IDENTITY() AS INT)
GO
----------------------------------------------------------------------------------------------------------------------
-- UpdatePartyInfo.sql
----------------------------------------------------------------------------------------------------------------------
CREATE PROCEDURE dbo.UpdatePartyInfo_Part2
@Party_uid AS INT, /* 파티 고유 아이디 */
@Party AS varBINARY(202), /* 친구 리스트 */
@UserInfo AS varBINARY(72), /* 유저 정보 */
@GID AS INT /* 임시 길드 정보 */
AS
SET NOCOUNT ON
UPDATE PartyInfo SET Party = @Party, UserInfo = @UserInfo, GID = @GID WHERE PID = @Party_uid

View File

@@ -0,0 +1,2 @@
INSERT INTO TblFertilityInfo(nVeinColor, nFertility, tnZone, tnChannel)
(SELECT nVeinColor, nFertility, 16, tnChannel FROM TblFertilityInfo WHERE tnZone = 8)

View File

@@ -0,0 +1,3 @@
Alter Table CharInfoEX
Add AdminFlag tinyint NULL

View File

@@ -0,0 +1,105 @@
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[vUserInfo]') and OBJECTPROPERTY(id, N'IsView') = 1)
drop view dbo.vUserInfo
GO
create view dbo.vUserInfo
AS
SELECT UID,OldServerGroupID,Nation,Char1 as CID FROM UserInfo
UNION ALL
SELECT UID,OldServerGroupID,Nation,Char2 FROM UserInfo
UNION ALL
SELECT UID,OldServerGroupID,Nation,Char3 FROM UserInfo
UNION ALL
SELECT UID,OldServerGroupID,Nation,Char4 FROM UserInfo
UNION ALL
SELECT UID,OldServerGroupID,Nation,Char5 FROM UserInfo
GO
/* 국적이 신의 해적단이면서, 종족이 휴먼인 사람들의 국적을 카르테란트로 바꿔준다. */
update UserInfo set UserInfo.Nation = 1 where UserInfo.UID in
(select distinct vUserInfo.UID from
vUserInfo INNER JOIN CharInfo
ON vUserInfo.CID = CharInfo.CID
where vUserInfo.Nation = 3 and CharInfo.Race = 0)
/* 국적이 신의 해적단이면서, 종족이 아칸인 사람들의 국적을 메르카디아로 바꿔준다. */
update UserInfo set UserInfo.Nation = 2 where UserInfo.UID in
(select distinct vUserInfo.UID from
vUserInfo INNER JOIN CharInfo
ON vUserInfo.CID = CharInfo.CID
where vUserInfo.Nation = 3 and CharInfo.Race = 1)
/* 길드 국적이 신의 해적단이고, 길드 마스터가 휴먼이면, 길드 국적을 카르테란트로 바꿔준다. */
update TblGuildInfo set TblGuildInfo.tnNationType = 1 where TblGuildInfo.nGuildID in
(select distinct TblGuildInfo.nGuildID from
TblGuildInfo INNER JOIN TblGuildMember
ON TblGuildInfo.nGuildID = TblGuildMember.nGuildID
INNER JOIN CharInfo
ON TblGuildMember.nCID = CharInfo.CID
where tnNationType = 3 and TblGuildMember.nPosition = 1 and CharInfo.Race = 0)
/* 길드 국적이 신의 해적단이고, 길드 마스터가 아칸이면, 길드 국적을 메르카디아로 바꿔준다. */
update TblGuildInfo set TblGuildInfo.tnNationType = 2 where TblGuildInfo.nGuildID in
(select distinct TblGuildInfo.nGuildID from
TblGuildInfo INNER JOIN TblGuildMember
ON TblGuildInfo.nGuildID = TblGuildMember.nGuildID
INNER JOIN CharInfo
ON TblGuildMember.nCID = CharInfo.CID
where tnNationType = 3 and TblGuildMember.nPosition = 1 and CharInfo.Race = 1)
/* 길드에 속한 캐릭터의 종족이, 그 길드에 가입할 수 없는 종족이면 해당 캐릭터를 길드에서 탈퇴시킨다 */
/* 길드에서 탈퇴시킬 캐릭터 정보 얻어오기 */
declare @DeleteInfo table (nCID int)
insert into @DeleteInfo
select distinct TblGuildMember.nCID from
TblGuildInfo INNER JOIN TblGuildMember
ON TblGuildInfo.nGuildID = TblGuildMember.nGuildID
INNER JOIN CharInfo
ON TblGuildMember.nCID = CharInfo.CID
where TblGuildInfo.tnNationType <> CharInfo.Race + 1
/* 길드에서 캐릭터 삭제, 캐릭터 정보에서 Guild ID클리어 */
delete from TblGuildMember where nCID in (select nCID from @DeleteInfo)
update CharInfo set CharInfo.Guild = 0 where CharInfo.CID in (select nCID from @DeleteInfo)
/* 캠프를 DB에서 전부 제거한다 */
delete from TblCampInfo
delete from TblCampShopInfo
delete from TblCampMineralInfo
delete from TblWorldWeaponInfo
/* 파티를 날려버린다 */
delete from PartyInfo
/* 길드전쟁, 국가전쟁 참여 플래그를 추가한다. */
ALTER TABLE [CharInfoEx] ADD [GuildWarFlag] [tinyint] NULL
ALTER TABLE [CharInfoEx] ADD [RealmWarFlag] [tinyint] NULL
/* 게임 시간 값 DB Table 생성 */
CREATE TABLE [TblGameTime] (
[GuildTime] [tinyint] NULL,
[RealmTime] [tinyint] NULL,
[SiegeTime] [tinyint] NULL,
[MiningTime] [tinyint] NULL
) ON [PRIMARY]
INSERT INTO TblGameTime(GuildTime, RealmTime, SiegeTime, MiningTime) VALUES (0, 0, 0, 0)
/* 국가 전잰 석상 DB 테이블 추가 */
CREATE TABLE [TblStatueInfo] (
[nIndex] [int] NULL,
[tnChannel] [tinyint] NULL,
[snKID] [smallint] NULL,
[nLostHP] [int] NULL
) ON [PRIMARY]
/* 국가 전쟁 석상 초기값 추가 */
INSERT INTO TblStatueInfo(nIndex, tnChannel, snKID, nLostHP) VALUES (1, 0, 1044, 0)
INSERT INTO TblStatueInfo(nIndex, tnChannel, snKID, nLostHP) VALUES (2, 0, 1044, 0)
INSERT INTO TblStatueInfo(nIndex, tnChannel, snKID, nLostHP) VALUES (3, 0, 1049, 0)
INSERT INTO TblStatueInfo(nIndex, tnChannel, snKID, nLostHP) VALUES (4, 0, 1049, 0)
INSERT INTO TblStatueInfo(nIndex, tnChannel, snKID, nLostHP) VALUES (5, 0, 1059, 0)
INSERT INTO TblStatueInfo(nIndex, tnChannel, snKID, nLostHP) VALUES (6, 0, 1059, 0)
INSERT INTO TblStatueInfo(nIndex, tnChannel, snKID, nLostHP) VALUES (7, 0, 1054, 0)

View File

@@ -0,0 +1,131 @@
-- CharInfoEx 에 컬럼 추가(국가전쟁 훈장 포인트, 로그아웃 시간) --
alter table CharInfoEx
add RealmPoint tinyint NULL
go
alter table CharInfoEx
add RealmCheckPoint tinyint NULL
go
alter table CharInfoEx
add RealmMinute tinyint NULL
go
alter table CharInfoEx
add LogoutTime smalldatetime Not NULL default(getdate())
go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[vUserInfo]') and OBJECTPROPERTY(id, N'IsView') = 1)
drop view dbo.vUserInfo
GO
create view dbo.vUserInfo
AS
SELECT UID,OldServerGroupID,Nation,Char1 as CID FROM UserInfo
UNION ALL
SELECT UID,OldServerGroupID,Nation,Char2 FROM UserInfo
UNION ALL
SELECT UID,OldServerGroupID,Nation,Char3 FROM UserInfo
UNION ALL
SELECT UID,OldServerGroupID,Nation,Char4 FROM UserInfo
UNION ALL
SELECT UID,OldServerGroupID,Nation,Char5 FROM UserInfo
GO
/* 국적이 신의 해적단이면서, 종족이 휴먼인 사람들의 국적을 카르테란트로 바꿔준다. */
update UserInfo set UserInfo.Nation = 1 where UserInfo.UID in
(select distinct vUserInfo.UID from
vUserInfo INNER JOIN CharInfo
ON vUserInfo.CID = CharInfo.CID
where vUserInfo.Nation = 3 and CharInfo.Race = 0)
/* 국적이 신의 해적단이면서, 종족이 아칸인 사람들의 국적을 메르카디아로 바꿔준다. */
update UserInfo set UserInfo.Nation = 2 where UserInfo.UID in
(select distinct vUserInfo.UID from
vUserInfo INNER JOIN CharInfo
ON vUserInfo.CID = CharInfo.CID
where vUserInfo.Nation = 3 and CharInfo.Race = 1)
/* 길드 국적이 신의 해적단이고, 길드 마스터가 휴먼이면, 길드 국적을 카르테란트로 바꿔준다. */
update TblGuildInfo set TblGuildInfo.tnNationType = 1 where TblGuildInfo.nGuildID in
(select distinct TblGuildInfo.nGuildID from
TblGuildInfo INNER JOIN TblGuildMember
ON TblGuildInfo.nGuildID = TblGuildMember.nGuildID
INNER JOIN CharInfo
ON TblGuildMember.nCID = CharInfo.CID
where tnNationType = 3 and TblGuildMember.nPosition = 1 and CharInfo.Race = 0)
/* 길드 국적이 신의 해적단이고, 길드 마스터가 아칸이면, 길드 국적을 메르카디아로 바꿔준다. */
update TblGuildInfo set TblGuildInfo.tnNationType = 2 where TblGuildInfo.nGuildID in
(select distinct TblGuildInfo.nGuildID from
TblGuildInfo INNER JOIN TblGuildMember
ON TblGuildInfo.nGuildID = TblGuildMember.nGuildID
INNER JOIN CharInfo
ON TblGuildMember.nCID = CharInfo.CID
where tnNationType = 3 and TblGuildMember.nPosition = 1 and CharInfo.Race = 1)
/* 길드에 속한 캐릭터의 종족이, 그 길드에 가입할 수 없는 종족이면 해당 캐릭터를 길드에서 탈퇴시킨다 */
/* 길드에서 탈퇴시킬 캐릭터 정보 얻어오기 */
declare @DeleteInfo table (nCID int)
insert into @DeleteInfo
select distinct TblGuildMember.nCID from
TblGuildInfo INNER JOIN TblGuildMember
ON TblGuildInfo.nGuildID = TblGuildMember.nGuildID
INNER JOIN CharInfo
ON TblGuildMember.nCID = CharInfo.CID
where TblGuildInfo.tnNationType <> CharInfo.Race + 1
/* 길드에서 캐릭터 삭제, 캐릭터 정보에서 Guild ID클리어 */
delete from TblGuildMember where nCID in (select nCID from @DeleteInfo)
update CharInfo set CharInfo.Guild = 0 where CharInfo.CID in (select nCID from @DeleteInfo)
/* 길드간의 관계를 모두 제거한다. */
delete from TblGuildOtherList
/* 캠프를 DB에서 전부 제거한다 */
delete from TblCampInfo
delete from TblCampShopInfo
delete from TblCampMineralInfo
delete from TblWorldWeaponInfo
/* 파티를 날려버린다 */
delete from PartyInfo
Update CharInfo Set Party = 0
/* 길드전쟁, 국가전쟁 참여 플래그를 추가한다. */
ALTER TABLE [CharInfoEx] ADD [GuildWarFlag] [tinyint] NULL
ALTER TABLE [CharInfoEx] ADD [RealmWarFlag] [tinyint] NULL
/* 게임 시간 값 DB Table 생성 */
CREATE TABLE [TblGameTime] (
[GuildTime] [tinyint] NULL,
[RealmTime] [tinyint] NULL,
[SiegeTime] [tinyint] NULL,
[MiningTime] [tinyint] NULL
) ON [PRIMARY]
INSERT INTO TblGameTime(GuildTime, RealmTime, SiegeTime, MiningTime) VALUES (0, 0, 0, 0)
/* 국가 전잰 석상 DB 테이블 추가 */
CREATE TABLE [TblStatueInfo] (
[nIndex] [int] NULL,
[tnChannel] [tinyint] NULL,
[snKID] [smallint] NULL,
[nLostHP] [int] NULL
) ON [PRIMARY]
/* 국가 전쟁 석상 초기값 추가 */
INSERT INTO TblStatueInfo(nIndex, tnChannel, snKID, nLostHP) VALUES (1, 0, 1044, 0)
INSERT INTO TblStatueInfo(nIndex, tnChannel, snKID, nLostHP) VALUES (2, 0, 1044, 0)
INSERT INTO TblStatueInfo(nIndex, tnChannel, snKID, nLostHP) VALUES (3, 0, 1049, 0)
INSERT INTO TblStatueInfo(nIndex, tnChannel, snKID, nLostHP) VALUES (4, 0, 1049, 0)
INSERT INTO TblStatueInfo(nIndex, tnChannel, snKID, nLostHP) VALUES (5, 0, 1059, 0)
INSERT INTO TblStatueInfo(nIndex, tnChannel, snKID, nLostHP) VALUES (6, 0, 1059, 0)
INSERT INTO TblStatueInfo(nIndex, tnChannel, snKID, nLostHP) VALUES (7, 0, 1054, 0)

View File

@@ -0,0 +1,91 @@
alter table PartyInfo
drop column GID
go
alter Table TblGuildMember
add Tactics tinyint NULL
go
drop proc dbo.InsertParty_Part2
go
/*
파티 추가 프로시져
*/
CREATE PROCEDURE dbo.InsertParty_Part2
@Party AS varBINARY(202), /* 친구 리스트 */
@UserInfo AS varBINARY(72) /* 유저 정보 */
AS
SET NOCOUNT ON
INSERT INTO PartyInfo (Party, UserInfo) VALUES (@Party, @UserInfo)
/* 고유 아이디 돌려줌 */
SELECT CAST(SCOPE_IDENTITY() AS INT)
go
drop proc dbo.GetPartyInfo_Part2
go
/*
파티 정보 보기 프로시져
*/
CREATE PROCEDURE dbo.GetPartyInfo_Part2
@Party_uid AS INT /* 파티 아이디 */
AS
SET NOCOUNT ON
SELECT Party, UserInfo FROM PartyInfo WHERE PID = @Party_uid
go
drop proc dbo.UpdatePartyInfo_Part2
go
CREATE PROCEDURE dbo.UpdatePartyInfo_Part2
@Party_uid AS INT, /* 파티 고유 아이디 */
@Party AS varBINARY(202), /* 친구 리스트 */
@UserInfo AS varBINARY(72) /* 유저 정보 */
AS
SET NOCOUNT ON
UPDATE PartyInfo SET Party = @Party, UserInfo = @UserInfo WHERE PID = @Party_uid
/*
길드 관계 DB
DESC : 옛날 관계 DB 인 TblGuildOtherList 테이블을 삭제하고
TblGuildRelation 을 추가한다.
*/
DROP TABLE dbo.TblGuildOtherList
GO
CREATE TABLE [TblGuildRelation] (
[nGuildID] [int] NOT NULL ,
[nTargetGuildID] [int] NOT NULL ,
[tnRelation] [tinyint] NOT NULL ,
CONSTRAINT [PK_TblGuildRelation_1] PRIMARY KEY CLUSTERED
(
[nGuildID],
[nTargetGuildID]
) ON [PRIMARY] ,
CHECK ([tnRelation] = 1 or [tnRelation] = 2 or [tnRelation] = 3)
) ON [PRIMARY]
GO

View File

@@ -0,0 +1,18 @@
Create Table AdminCommandLog
(
[Index] [int] IDENTITY (1, 1),
[ServerGroupID] [int] NULL, -- ServerGroupID
[AdminCID] [int] NULL , -- 지금한 Admin UID
[CID] [int] NULL, -- 해당 CID
[Type] [varchar] (128) NULL, -- 해당 명령어
[Time] [datetime] DEFAULT(getdate()),
PRIMARY KEY CLUSTERED
(
[Index]
) ON [PRIMARY]
)

View File

@@ -0,0 +1,2 @@
alter table Quest
alter Column History varbinary(404)

View File

@@ -0,0 +1,2 @@
Alter Table Quest
Alter Column History varbinary(404)

View File

@@ -0,0 +1,55 @@
Create Table CharDeleteData
(
[Index] [int] IDENTITY (1, 1),
[CID] [int] Not NULL,
[Name] [varchar] (16) NULL,
[Level] [tinyint] NULL,
[Class] [smallint] NULL,
PRIMARY KEY CLUSTERED
(
[CID]
)
)
go
-- 퀘스트 삭제 --
Delete From Quest Where CID In (Select intCID From TblCharDelHistory where dateDeleteTime < getdate())
-- 캐릭터 시간 --
Delete From CharInfo_Time Where CID In (Select intCID From TblCharDelHistory where dateDeleteTime < getdate())
-- 캐릭터 정보 Ex --
Delete From CharInfoEx Where CID In (Select intCID From TblCharDelHistory where dateDeleteTime < getdate())
-- 캐릭터 아이템 --
Delete From CharItem Where CID In (Select intCID From TblCharDelHistory where dateDeleteTime < getdate())
-- 캐릭터 아이템 Ex --
Delete From CharItemEx Where CID In (Select intCID From TblCharDelHistory where dateDeleteTime < getdate())
-- 캐릭터 위치 --
Delete From CharPos Where CID In (Select intCID From TblCharDelHistory where dateDeleteTime < getdate())
-- 캐릭터 스킬 --
Delete From CharSkill Where CID In (Select intCID From TblCharDelHistory where dateDeleteTime < getdate())
-- 친구, 거부 리스트 --
Delete From Friend Where CID In (Select intCID From TblCharDelHistory where dateDeleteTime < getdate())
-- 데이터 저장
Insert into CharDeleteData Select CID, [Name], [Level], Class From CharInfo where CID In (Select intCID From TblCharDelHistory where dateDeleteTime < getdate())
-- 캐릭터 정보 삭제 --
Delete From CharInfo Where CID In (Select intCID From TblCharDelHistory where dateDeleteTime < getdate())

View File

@@ -0,0 +1,23 @@
ALTER TABLE AdminTool..TblRestraintChar
ADD idx int IDENTITY(1,1) NOT NULL
GO
ALTER PROC USPDeleteRestraintChar @SeverID tinyint,@nidx INT
AS
SET NOCOUNT ON
IF EXISTS (SELECT UID FROM TblRestraintChar WHERE tinyServerID=@SeverID AND idx = @nidx)
BEGIN
DELETE TblRestraintChar
WHERE tinyServerID=@SeverID AND idx = @nidx
SELECT @@ROWCOUNT
END
ELSE
BEGIN
SELECT -1
END
GO

View File

@@ -0,0 +1,135 @@
DROP TABLE TblCastleInfo
GO
CREATE TABLE [TblCastleInfo] (
[nCastleID] [int] IDENTITY (1, 1) NOT NULL ,
[tnNation] [tinyint] NULL ,
[tnZone] [tinyint] NULL ,
[tnChannel] [tinyint] NULL ,
[tnName] [tinyint] NULL ,
[tnSiegeCount] [tinyint] NULL ,
[tnInvincibleCount] [tinyint] NULL ,
[snTotalSiegeCount] [smallint] NULL ,
[nTotalTaxMoney] [int] NULL ,
[bRight] [varbinary] (10) NULL ,
[fPosInX] [real] NULL ,
[fPosInY] [real] NULL ,
[fPosInZ] [real] NULL ,
[fPosOutX] [real] NULL ,
[fPosOutY] [real] NULL ,
[fPosOutZ] [real] NULL ,
[snItemID] [smallint] NULL ,
[tnItemNum] [tinyint] NULL
) ON [PRIMARY]
GO
INSERT INTO TblCastleInfo(tnNation, tnZone, tnChannel, tnName, tnSiegeCount, tnInvincibleCount, snTotalSiegeCount, nTotalTaxMoney, bRight, fPosInX, fPosInY, fPosInZ, fPosOutX, fPosOutY, fPosOutZ, snItemID, tnItemNum)
VALUES (0, 16, 0, 1, 0, 0, 0, 0, 0x03030303030303030303, 0.0, 100.0, 0.0, 0.0, 100.0, 0.0, 0, 0)
GO
INSERT INTO TblCastleInfo(tnNation, tnZone, tnChannel, tnName, tnSiegeCount, tnInvincibleCount, snTotalSiegeCount, nTotalTaxMoney, bRight, fPosInX, fPosInY, fPosInZ, fPosOutX, fPosOutY, fPosOutZ, snItemID, tnItemNum)
VALUES (0, 16, 1, 1, 0, 0, 0, 0, 0x03030303030303030303, 0.0, 100.0, 0.0, 0.0, 100.0, 0.0, 0, 0)
GO
DROP TABLE TblCastleCreatureInfo
GO
CREATE TABLE [TblCastleCreatureInfo] (
[nCreatureID] [int] IDENTITY (1, 1) NOT NULL ,
[nCastleID] [int] NULL ,
[nOwnerID] [int] NULL,
[nHP] [int] NULL ,
[snObjectType] [smallint] NULL ,
[fDirection] [real] NULL ,
[tnState] [tinyint] NULL ,
[tnSubState] [tinyint] NULL ,
[tnUpgradeStep] [tinyint] NULL ,
[tnUpgradeType] [tinyint] NULL ,
[RemainTime] [smalldatetime] NULL ,
[LastUseTime] [smalldatetime] NULL,
[fPosX] [real] NULL ,
[fPosY] [real] NULL ,
[fPosZ] [real] NULL ,
PRIMARY KEY CLUSTERED
(
[nCreatureID]
) ON [PRIMARY]
) ON [PRIMARY]
GO
INSERT INTO TblCastleCreatureInfo(nCastleID, nOwnerID, nHP, snObjectType, fDirection, tnState, tnSubState, tnUpgradeStep, tnUpgradeType, RemainTime, LastUseTime, fPosX, fPosY, fPosZ)
VALUES (1, 0, 59973, 5000, 3.1670001, 0, 1, 1, 0, getdate(), getdate(), 2034.0, 138.133, 3004.5)
INSERT INTO TblCastleCreatureInfo(nCastleID, nOwnerID, nHP, snObjectType, fDirection, tnState, tnSubState, tnUpgradeStep, tnUpgradeType, RemainTime, LastUseTime, fPosX, fPosY, fPosZ)
VALUES (1, 0, 100, 5324, 3.1340001, 0, 2, 0, 0, getdate(), getdate(), 2034.5, 100.0, 2956.0)
INSERT INTO TblCastleCreatureInfo(nCastleID, nOwnerID, nHP, snObjectType, fDirection, tnState, tnSubState, tnUpgradeStep, tnUpgradeType, RemainTime, LastUseTime, fPosX, fPosY, fPosZ)
VALUES (1, 0, 100, 5433, 0.76999998, 0, 0, 0, 0, getdate(), getdate(), 1987.5, 118.1, 2952.0)
INSERT INTO TblCastleCreatureInfo(nCastleID, nOwnerID, nHP, snObjectType, fDirection, tnState, tnSubState, tnUpgradeStep, tnUpgradeType, RemainTime, LastUseTime, fPosX, fPosY, fPosZ)
VALUES (1, 0, 100, 5433, 0.0, 0, 0, 0, 0, getdate(), getdate(), 2018.0, 118.1, 2951.5)
INSERT INTO TblCastleCreatureInfo(nCastleID, nOwnerID, nHP, snObjectType, fDirection, tnState, tnSubState, tnUpgradeStep, tnUpgradeType, RemainTime, LastUseTime, fPosX, fPosY, fPosZ)
VALUES (1, 0, 100, 5433, 5.48, 0, 0, 0, 0, getdate(), getdate(), 2080.0, 118.1, 2952.0)
INSERT INTO TblCastleCreatureInfo(nCastleID, nOwnerID, nHP, snObjectType, fDirection, tnState, tnSubState, tnUpgradeStep, tnUpgradeType, RemainTime, LastUseTime, fPosX, fPosY, fPosZ)
VALUES (1, 0, 100, 5433, 0.0, 0, 0, 0, 0, getdate(), getdate(), 2050.0, 118.1, 2952.0)
GO
INSERT INTO TblCastleCreatureInfo(nCastleID, nOwnerID, nHP, snObjectType, fDirection, tnState, tnSubState, tnUpgradeStep, tnUpgradeType, RemainTime, LastUseTime, fPosX, fPosY, fPosZ)
VALUES (2, 0, 59973, 5000, 3.1670001, 0, 1, 1, 0, getdate(), getdate(), 2034.0, 138.133, 3004.0)
INSERT INTO TblCastleCreatureInfo(nCastleID, nOwnerID, nHP, snObjectType, fDirection, tnState, tnSubState, tnUpgradeStep, tnUpgradeType, RemainTime, LastUseTime, fPosX, fPosY, fPosZ)
VALUES (2, 0, 100, 5324, 3.1340001, 0, 2, 0, 0, getdate(), getdate(), 2034.0, 100.0, 2956.0)
INSERT INTO TblCastleCreatureInfo(nCastleID, nOwnerID, nHP, snObjectType, fDirection, tnState, tnSubState, tnUpgradeStep, tnUpgradeType, RemainTime, LastUseTime, fPosX, fPosY, fPosZ)
VALUES (2, 0, 100, 5433, 0.76999998, 0, 0, 0, 0, getdate(), getdate(), 1987.5, 118.1, 2952.0)
INSERT INTO TblCastleCreatureInfo(nCastleID, nOwnerID, nHP, snObjectType, fDirection, tnState, tnSubState, tnUpgradeStep, tnUpgradeType, RemainTime, LastUseTime, fPosX, fPosY, fPosZ)
VALUES (2, 0, 100, 5433, 0.0, 0, 0, 0, 0, getdate(), getdate(), 2018.0, 118.1, 2951.5)
INSERT INTO TblCastleCreatureInfo(nCastleID, nOwnerID, nHP, snObjectType, fDirection, tnState, tnSubState, tnUpgradeStep, tnUpgradeType, RemainTime, LastUseTime, fPosX, fPosY, fPosZ)
VALUES (2, 0, 100, 5433, 5.48, 0, 0, 0, 0, getdate(), getdate(), 2080.0, 118.1, 2952.0)
INSERT INTO TblCastleCreatureInfo(nCastleID, nOwnerID, nHP, snObjectType, fDirection, tnState, tnSubState, tnUpgradeStep, tnUpgradeType, RemainTime, LastUseTime, fPosX, fPosY, fPosZ)
VALUES (2, 0, 100, 5433, 0.0, 0, 0, 0, 0, getdate(), getdate(), 2050.0, 118.1, 2952.0)
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
ALTER PROC USPCastleUpdate @nCastleID INT,@tnNation TINYINT,@tnSiegeCount TINYINT,
@tnInvincibleCount TINYINT,@snTotalSiegeCount SMALLINT,@nTotalTaxMoney INT,
@snItemID SMALLINT,@tnItemNum TINYINT
AS
SET NOCOUNT ON
DECLARE @RETURN INT
UPDATE TblCastleInfo
SET tnNation = @tnNation,tnSiegeCount = @tnSiegeCount,tnInvincibleCount = @tnInvincibleCount,
snTotalSiegeCount = @snTotalSiegeCount,nTotalTaxMoney = @nTotalTaxMoney,
snItemID = @snItemID,tnItemNum = @tnItemNum
WHERE nCastleID = @nCastleID
SET @RETURN = @@ROWCOUNT
SELECT @RETURN
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

View File

@@ -0,0 +1,11 @@
Update TblCastleCreatureInfo Set fPosZ = 3004.5 where snObjectType = 5000
go
Update TblCastleCreatureInfo Set fPosX = 2033.98, fPosY = 100.5, fPosZ = 2957.3 where snObjectType = 5324
go
Update TblCastleInfo Set tnNation = 0 Where tnZone = 16
go

View File

@@ -0,0 +1,2 @@
Alter Table Quest
Alter Column Quest varbinary(264)

View File

@@ -0,0 +1,20 @@
CREATE TABLE [dbo].[CharSpell] (
[CID] [int] NOT NULL ,
[Spell] [varbinary] (270) NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[CharSpell] WITH NOCHECK ADD
PRIMARY KEY CLUSTERED
(
[CID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[CharSpell] ADD
CONSTRAINT [FK_CharSpell_CharInfo] FOREIGN KEY
(
[CID]
) REFERENCES [dbo].[CharInfo] (
[CID]
)

View File

@@ -0,0 +1,124 @@
CREATE PROCEDURE dbo.InsertChar
@user_uid AS INT, /* 유저 고유 아이디 */
@user_pos AS INT, /* 캐릭터 위치 (3개의 슬롯) */
@user_name AS VARCHAR(16), /* 캐릭터 이름 */
@user_Sex AS TINYINT, /* 캐릭터 성 */
@user_Hair AS TINYINT, /* 캐릭터 머리 모양 */
@user_Face AS TINYINT, /* 캐릭터 얼굴 모양 */
@user_Nation AS TINYINT, /* 캐릭터 국가 */
@user_Class AS SMALLINT, /* 캐릭터 클래스 */
@C_Gold AS INT, /* 캐릭터 소지금 */
@C_STR AS SMALLINT, /* 캐릭터 STR */
@C_DEX AS SMALLINT, /* 캐릭터 DEX */
@C_CON AS SMALLINT, /* 캐릭터 CON */
@C_INT AS SMALLINT, /* 캐릭터 INT */
@C_WIS AS SMALLINT, /* 캐릭터 WIS */
@PointX AS REAL, /* 캐릭터 Point X 좌표 */
@PointY AS REAL, /* 캐릭터 Point Y 좌표 */
@PointZ AS REAL, /* 캐릭터 Point Z 좌표 */
@C_Equip AS varBINARY(30), /* 장비 (2 * 15 = 30) */
@Skill AS varBinary(84),
@UserInfoType TINYINT,
@CID INT OUTPUT
AS
SET NOCOUNT ON
--DECLARE @UID INT
DECLARE @C_HP INT, @C_MP INT
/* 캐릭터 이름 확인 */
SELECT @CID = CID FROM CharInfo WHERE Name = @user_name
IF @CID <> 0
BEGIN
SET @CID = -1 /* 동일 이름 존재 */
RETURN
END
/* 슬롯 확인 */
DECLARE @CharSlot INT
IF @user_pos = 0
BEGIN
SELECT @CharSlot = Char1 FROM UserInfo WHERE UID = @user_uid AND OldServerGroupID = @UserInfoType
END
ELSE IF @user_pos = 1
BEGIN
SELECT @CharSlot = Char2 FROM UserInfo WHERE UID = @user_uid AND OldServerGroupID = @UserInfoType
END
ELSE IF @user_pos = 2
BEGIN
SELECT @CharSlot = Char3 FROM UserInfo WHERE UID = @user_uid AND OldServerGroupID = @UserInfoType
END
ELSE IF @user_pos = 3
BEGIN
SELECT @CharSlot = Char4 FROM UserInfo WHERE UID = @user_uid AND OldServerGroupID = @UserInfoType
END
ELSE IF @user_pos = 4
BEGIN
SELECT @CharSlot = Char5 FROM UserInfo WHERE UID = @user_uid AND OldServerGroupID = @UserInfoType
END
IF @CharSlot <> 0
BEGIN
SET @CID = -2 /* 슬롯이 차있음 */
RETURN
END
SET @C_HP = 100 + @C_CON * 8 + 2
IF @C_INT > @C_WIS
BEGIN
SET @C_MP = 100 + @C_INT * 8 + 2
END
ELSE
BEGIN
SET @C_MP = 100 + @C_WIS * 8 + 2
END
BEGIN TRAN
SELECT @CID = MAX(CID) + 1 FROM CharInfo WITH (UPDLOCK)
IF (@CID IS NULL)
SET @CID = 1
INSERT INTO CharInfo (CID,Name, Sex, Hair, Face, Race, Class, Equip, Gold, STR, DEX, CON, Intell, WIS, HP, MP)
VALUES (@CID,@user_name, @user_Sex, @user_Hair, @user_Face, @user_Nation, @user_Class, @C_Equip, @C_Gold, @C_STR, @C_DEX, @C_CON, @C_INT, @C_WIS, @C_HP, @C_MP)
IF @@ERROR <> 0
BEGIN
ROLLBACK TRAN
SET @CID = -100
RETURN
END
COMMIT TRAN
INSERT INTO CharInfoEx (CID) VALUES (@CID)
INSERT INTO CharItem (CID) VALUES (@CID)
INSERT INTO CharItemEx (CID) VALUES (@CID)
INSERT INTO CharSkill (CID, Skill) VALUES (@CID, @Skill)
INSERT INTO CharSpell (CID) VALUES (@CID)
INSERT INTO CharPos (CID, LastPointX, LastPointY, LastPointZ, SavePointX, SavePointY, SavePointZ) VALUES (@CID, @PointX, @PointY, @PointZ, @PointX, @PointY, @PointZ)
INSERT INTO CharInfo_Time(CID,CreateTime,UpdateTime)
VALUES (@CID,GETDATE(),GETDATE())
INSERT INTO Friend (CID) VALUES (@CID)
INSERT INTO Quest (CID) VALUES (@CID)
-- UnifiedCharList정보테이블에 입력하기
INSERT TblUnifiedCharList(UID,OldServerGroupID,BeforeCID,NewCID,BeforeCharName)
VALUES (@user_uid,@UserInfoType,@CID,@CID,@user_name)
/* 유저 정보 테이블 업데이트 */
EXEC UpdateCharUID @user_uid, @user_pos, @CID , @UserInfoType
GO

View File

@@ -0,0 +1,2 @@
UPDATE CharSpell Set Spell = 0xFFFFFFFF35000100050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
WHERE CID IN (SELECT CID FROM CharInfo WHERE Level = 100)

View File

@@ -0,0 +1,26 @@
----------------------------------------------------------------------------------------------------------------------
-- UpdateCharSpell.sql
----------------------------------------------------------------------------------------------------------------------
/*
*/
CREATE PROCEDURE dbo.UpdateCharSpell
@char_uid AS INT, /* 캐릭터 고유 아이디 */
@C_Spell AS varBINARY(1664) /* 스펠 (128 * 13 = 1664) */
AS
SET NOCOUNT ON
IF EXISTS (SELECT CID FROM CharSpell WHERE CID = @char_uid)
BEGIN
UPDATE CharSpell SET Spell = @C_Spell WHERE CID = @char_uid
END
ELSE
BEGIN
INSERT INTO CharSpell(CID,Spell)
VALUES (@char_uid,@C_Spell)
END
GO

View File

@@ -0,0 +1,7 @@
1. CharSpell(Table).sql을 실행하여 CharSpell 테이블을 생성한다.
2. SELECT CID FROM CharInfo를 수행하여 나온 CID를 정규식을 사용하여 Insert문으로 변형하여 나온 Insert문을 실행한다.
- 찾을말 : [0-9]*
- 바꿀말 : INSERT INTO CharSpell(CID) VALUES(\0)
3. UpdateCharSpell(Procedure).sql UpdateCharSpell 프로시져를 생성한다.
4. 기존에 있던 InsertChar 프로시져를 InsertChar(Procedure).sql로 변경한다.
5. 이펙트 버그가 사라졌다면 SetSpell(Query)를 실행해서 기존에 100랩이던 유저들에게 만랩이펙트를 부여한다.

View File

@@ -0,0 +1,40 @@
-- 이미 Part2 파티 관련 프로시저가 있으나 제대로 동작하지 않는 경우 실행!
-- 관련 프로시저를 모두 바로 잡는다.
ALTER PROCEDURE dbo.GetPartyInfo_Part2
@Party_uid AS INT /* 파티 아이디 */
AS
SET NOCOUNT ON
SELECT Party, UserInfo, GID FROM PartyInfo WHERE PID = @Party_uid
GO
ALTER PROCEDURE dbo.InsertParty_Part2
@Party AS varBINARY(202), /* 친구 리스트 */
@UserInfo AS varBINARY(72), /* 유저 정보 */
@GID AS int /* 임시 길드원 정보 */
AS
SET NOCOUNT ON
INSERT INTO PartyInfo (Party, UserInfo, GID) VALUES (@Party, @UserInfo, @GID)
-- 고유 아이디 돌려줌
SELECT CAST(SCOPE_IDENTITY() AS INT)
GO
ALTER PROCEDURE dbo.UpdatePartyInfo_Part2
@Party_uid AS INT, /* 파티 고유 아이디 */
@Party AS varBINARY(202), /* 친구 리스트 */
@UserInfo AS varBINARY(72), /* 유저 정보 */
@GID AS INT /* 임시 길드 정보 */
AS
SET NOCOUNT ON
UPDATE PartyInfo SET Party = @Party, UserInfo = @UserInfo, GID = @GID WHERE PID = @Party_uid

View File

@@ -0,0 +1,48 @@
-- 마지막 수정: 파트2 1470
-- [길마가 없는 길드 바로잡기]
-- 1. 길마뿐 아니라 길드원이 없으나 존재하는 길드 검색
SELECT strGuildName FROM TblGuildInfo
WHERE nGuildID NOT IN (SELECT Distinct nGuildID FROM TblGuildMember)
-- 1-1. 해당 길드들 삭제
DELETE TblGuildInfo
WHERE nGuildID NOT IN (SELECT Distinct nGuildID FROM TblGuildMember)
-- 2. 길마가 없는 길드 검색
SELECT strGuildName FROM TblGuildInfo
WHERE nGuildID NOT IN (SELECT Distinct nGuildID FROM TblGuildMember WHERE nPosition = 1)
-- 2-1. 길마 만들어 주기 (길마 우선 순위 : 레벨 > 명성치 > 캐릭터명 > 인벤토리 금액)
DECLARE @ROW INT
DECLARE @GuildID INT
DECLARE @TABLE TABLE
(
nRowID INT IDENTITY(1,1)
, nGuildID INT
)
INSERT INTO @TABLE
SELECT nGuildID FROM TblGuildInfo
WHERE nGuildID NOT IN (SELECT Distinct nGuildID FROM TblGuildMember WHERE nPosition = 1)
SET @ROW = @@ROWCOUNT
WHILE (@ROW > 0)
BEGIN
SELECT @GuildID = nGuildID FROM @TABLE WHERE nRowID = @ROW
UPDATE TblGuildMember
SET nPosition = 1
FROM (
SELECT TOP 1 B.nGuildID,nCID FROM CharInfo A join TblGuildMember B
ON A.CID = B.nCID
WHERE nGuildID = @GuildID
ORDER BY A.Level desc,A.Fame desc) C,TblGuildMember D
WHERE C.nGuildID = D.nGuildID AND C.nCID = D.nCID
SET @ROW = @ROW - 1
END

View File

@@ -0,0 +1,2 @@
ALTER TABLE [TblGameTime] ADD [EnterTime] [tinyint] NULL
GO

View File

@@ -0,0 +1,3 @@
Alter Table UserInfo
Add KeyInfo varbinary(137)

View File

@@ -0,0 +1,2 @@
UPDATE UserFirstLoginInfo
SET TransferCharCount = 0

View File

@@ -0,0 +1,28 @@
ALTER TABLE CharItem
ALTER COLUMN Quick BINARY(100)
GO
----------------------------------------------------------------------------------------------------------------------
-- UpdateCharItemQuick.sql
----------------------------------------------------------------------------------------------------------------------
/*
*/
ALTER PROCEDURE dbo.UpdateCharItemQuick
@char_uid AS INT, /* 캐릭터 고유 아이디 */
@C_Quick AS BINARY(100) /* 장비 (2 * 15 = 30) */
AS
SET NOCOUNT ON
DECLARE @Div INT
BEGIN TRAN
UPDATE CharItem SET Quick = @C_Quick WHERE UID = @char_uid
COMMIT TRAN

View File

@@ -0,0 +1,212 @@
/* 이 SQL DDL 스크립트는 Microsoft Visual Studio(릴리스 날짜: LOCAL BUILD)에서 생성했습니다. */
/* 사용된 드라이브 : Microsoft Visual Studio - Microsoft SQL Server 드라이버 */
/* 문서 : E:\Work\여러가지문서들\VISIO FILE\공성전테이블구조.vsd */
/* 만든 시간: 2004년4월8일 4:22 오후 */
/* 작업 : Visio 데이터베이스 업데이트 마법사에서 수행 */
/* 연결된 데이터 원본 : JunDBServer */
/* 연결된 서버 : STATIONRYL */
/* 연결된 데이터베이스 : Gama_Test */
/* 새 테이블 "TblPatrolInCampInfo"을(를) 만듭니다. */
/* "TblPatrolInCampInfo" : Table of TblPatrolInCampInfo */
/* "nPatrolID" : nPatrolID identifies TblPatrolInCampInfo */
/* "nCampID" : nCampID is of TblPatrolInCampInfo */
/* "nHP" : nHP is of TblPatrolInCampInfo */
/* "tnState" : 상태 */
/* "nX" : nX is of TblPatrolInCampInfo */
/* "nY" : nY is of TblPatrolInCampInfo */
/* "nZ" : nZ is of TblPatrolInCampInfo */
create table "TblPatrolInCampInfo" (
"nCampID" int not null,
"nHP" int not null,
"tnState" tinyint not null,
"nX" int not null,
"nY" int not null,
"nZ" int not null)
go
alter table "TblPatrolInCampInfo"
add constraint "TblPatrolInCampInfo_PK" primary key (nCampID,nX,nY,nZ)
go
/* 새 테이블 "TblCampInfo"을(를) 만듭니다. */
/* "TblCampInfo" : Table of TblCampInfo */
/* "nCampID" : nCampID identifies TblCampInfo */
/* "nGuildID" : nGuildID is of TblCampInfo */
/* "nHP" : nHP is of TblCampInfo */
/* "tnState" : 구축,완료 */
/* "nEnCampingTime" : 캠프구축시간 */
/* "nX" : nX is of TblCampInfo */
/* "nY" : nY is of TblCampInfo */
/* "nZ" : nZ is of TblCampInfo */
create table "TblCampInfo" (
"nCampID" int not null,
"nGuildID" int not null,
"nHP" int not null,
"tnState" tinyint not null,
"nEnCampingTime" int not null,
"nX" int not null,
"nY" int not null,
"nZ" int not null)
go
alter table "TblCampInfo"
add constraint "TblCampInfo_PK" primary key ("nCampID")
go
/* 새 테이블 "TblWeaponInCastleInfo"을(를) 만듭니다. */
/* "TblWeaponInCastleInfo" : Table of TblWeaponInCastleInfo */
/* "nCastleID" : nCastleID is of TblWeaponInCastleInfo */
/* "tnType" : 병기종류(가드,근거리,원거리) */
/* "nHP" : 체력 */
/* "tnState" : 개발,수리,완료,업그레이드중 */
/* "tnUpgradeStep" : 업그레이드단계 */
/* "nRemainUpTime" : 업그레이드남은 시간 */
/* "nX" : nX is of TblWeaponInCastleInfo */
/* "nY" : nY is of TblWeaponInCastleInfo */
/* "nZ" : nZ is of TblWeaponInCastleInfo */
create table "TblWeaponInCastleInfo" (
"nCastleID" int not null,
"tnType" tinyint not null,
"nHP" int not null,
"tnState" tinyint not null,
"tnUpgradeStep" tinyint not null,
"nRemainUpTime" int not null,
"nX" int not null,
"nY" int not null,
"nZ" int not null)
go
alter table "TblWeaponInCastleInfo"
add constraint "TblWeaponInCastleInfo_PK" primary key (nCastleID,nX,nY,nZ)
go
/* 새 테이블 "TblCastleGateInfo"을(를) 만듭니다. */
/* "TblCastleGateInfo" : Table of TblCastleGateInfo */
/* "nCastleID" : 성아이디 */
/* "nHP" : HP */
/* "tnState" : 성문상태(수리,복구,업그레이드중) */
/* "tnOpenClose" : 성문 OPEN 또는 Close 여부 */
/* "tnUpgradeStep" : tnUpgradeStep is of TblCastleGateInfo */
/* "nRemainUpTime" : 업그레이드 남은시간 */
/* "nX" : nX is of TblCastleGateInfo */
/* "nY" : nY is of TblCastleGateInfo */
/* "nZ" : nZ is of TblCastleGateInfo */
create table "TblCastleGateInfo" (
"nCastleID" int not null,
"nHP" int not null,
"tnState" tinyint not null,
"tnOpenClose" tinyint not null,
"tnUpgradeStep" tinyint not null,
"nRemainUpTime" int not null,
"nX" int not null,
"nY" int not null,
"nZ" int not null)
go
alter table "TblCastleGateInfo"
add constraint "TblCastleGateInfo_PK" primary key ("nCastleID")
go
/* 새 테이블 "TblEmblemInCastleInfo"을(를) 만듭니다. */
/* "TblEmblemInCastleInfo" : Table of TblEmblemInCastleInfo */
/* "nCastleID" : 성아이디 */
/* "nHP" : HP */
/* "tnUpgradeStep" : 업그레이드 단계 */
/* "tnUpgradeType" : 업그레이드 종류(보석종류) */
/* "nRemainUpTime" : 업그레이드남은시간 */
/* "nX" : 좌표값 */
/* "nY" : 좌표값 */
/* "nZ" : 좌표값 */
create table "TblEmblemInCastleInfo" (
"nCastleID" int not null,
"nHP" int not null,
"tnUpgradeStep" tinyint not null,
"tnUpgradeType" tinyint not null,
"nRemainUpTime" int not null,
"nX" int not null,
"nY" int not null,
"nZ" int not null)
go
alter table "TblEmblemInCastleInfo"
add constraint "TblEmblemInCastleInfo_PK" primary key ("nCastleID")
go
/* 새 테이블 "TblCastleInfo"을(를) 만듭니다. */
/* "TblCastleInfo" : Table of TblCastleInfo */
/* "nCastleID" : 성아이디 */
/* "nGuildID" : 소유길드ID */
/* "snTax" : 세율 */
/* "nTaxMoney" : 세금저장소 */
/* "tnAttackCount" : 공성횟수 */
/* "bRight" : 관리권한 */
/* "tnInvincibleCount" : 무적횟수 */
create table "TblCastleInfo" (
"nCastleID" int not null,
"nGuildID" int not null,
"snTax" smallint not null,
"nTaxMoney" int not null,
"tnAttackCount" tinyint not null,
"bRight" binary(10) not null,
"tnInvincibleCount" tinyint not null)
go
alter table "TblCastleInfo"
add constraint "TblCastleInfo_PK" primary key ("nCastleID")
go
/* "TblPatrolInCampInfo" 테이블에 외래 키 제약 조건을 추가합니다. */
alter table "TblPatrolInCampInfo"
add constraint "TblCampInfo_TblPatrolInCampInfo_FK1" foreign key (
"nCampID")
references "TblCampInfo" (
"nCampID") on update no action on delete no action
go
/* "TblWeaponInCastleInfo" 테이블에 외래 키 제약 조건을 추가합니다. */
alter table "TblWeaponInCastleInfo"
add constraint "TblCastleInfo_TblWeaponInCastleInfo_FK1" foreign key (
"nCastleID")
references "TblCastleInfo" (
"nCastleID") on update no action on delete no action
go
/* "TblCastleGateInfo" 테이블에 외래 키 제약 조건을 추가합니다. */
alter table "TblCastleGateInfo"
add constraint "TblCastleInfo_TblCastleGateInfo_FK1" foreign key (
"nCastleID")
references "TblCastleInfo" (
"nCastleID") on update no action on delete no action
go
/* "TblEmblemInCastleInfo" 테이블에 외래 키 제약 조건을 추가합니다. */
alter table "TblEmblemInCastleInfo"
add constraint "TblCastleInfo_TblEmblemInCastleInfo_FK1" foreign key (
"nCastleID")
references "TblCastleInfo" (
"nCastleID") on update no action on delete no action
go

View File

@@ -0,0 +1,692 @@
CREATE TABLE [AdminList] (
[UID] [int] NOT NULL ,
[Level] [smallint] NULL CONSTRAINT [DF__AdminList__Level__150615B5] DEFAULT (0),
[IP_S] [varchar] (16) NULL ,
[IP_E] [varchar] (16) NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
)
)
GO
CREATE TABLE [CharInfo_1] (
[UID] [int] NOT NULL ,
[Name] [varchar] (16) NULL ,
[Sex] [tinyint] NULL CONSTRAINT [DF__CharInfo_1__Sex__7C6F7215] DEFAULT (0),
[Hair] [tinyint] NULL CONSTRAINT [DF__CharInfo_1__Hair__7D63964E] DEFAULT (0),
[Face] [tinyint] NULL CONSTRAINT [DF__CharInfo_1__Face__7E57BA87] DEFAULT (0),
[Nationality] [tinyint] NULL CONSTRAINT [DF__CharInfo___Natio__7F4BDEC0] DEFAULT (0),
[Class] [smallint] NULL CONSTRAINT [DF__CharInfo___Class__004002F9] DEFAULT (1),
[Fame] [int] NULL CONSTRAINT [DF__CharInfo___Merit__01342732] DEFAULT (0),
[Mileage] [int] NULL CONSTRAINT [DF__CharInfo_1__Fame__02284B6B] DEFAULT (0),
[Guild] [int] NULL CONSTRAINT [DF__CharInfo___Guild__031C6FA4] DEFAULT (0),
[Party] [int] NULL CONSTRAINT [DF__CharInfo___Party__041093DD] DEFAULT (0),
[Level] [tinyint] NULL CONSTRAINT [DF__CharInfo___Level__0504B816] DEFAULT (1),
[Equip] [binary] (30) NULL ,
[Gold] [int] NULL ,
[IP] [smallint] NULL CONSTRAINT [DF__CharInfo_1__IP__05F8DC4F] DEFAULT (0),
[STR] [smallint] NULL CONSTRAINT [DF__CharInfo_1__STR__06ED0088] DEFAULT (0),
[DEX] [smallint] NULL CONSTRAINT [DF__CharInfo_1__DEX__07E124C1] DEFAULT (0),
[CON] [smallint] NULL CONSTRAINT [DF__CharInfo_1__CON__08D548FA] DEFAULT (0),
[Intell] [smallint] NULL CONSTRAINT [DF__CharInfo___Intel__09C96D33] DEFAULT (0),
[WIS] [smallint] NULL CONSTRAINT [DF__CharInfo_1__WIS__0ABD916C] DEFAULT (0),
[HP] [smallint] NULL CONSTRAINT [DF__CharInfo_1__HP__0BB1B5A5] DEFAULT (0),
[MP] [smallint] NULL CONSTRAINT [DF__CharInfo_1__MP__0CA5D9DE] DEFAULT (0),
[Exp] [bigint] NULL CONSTRAINT [DF__CharInfo_1__Exp__0D99FE17] DEFAULT (0),
[Chance] [tinyint] NULL CONSTRAINT [DF__CharInfo___Chanc__7CF981FA] DEFAULT (0),
CONSTRAINT [PK__CharInfo_1__7A8729A3] PRIMARY KEY CLUSTERED
(
[UID]
) ,
CONSTRAINT [CK__CharInfo_1__UID__7B7B4DDC] CHECK ([UID] % 4 = 0)
)
GO
CREATE TABLE [CharInfo_2] (
[UID] [int] NOT NULL ,
[Name] [varchar] (16) NULL ,
[Sex] [tinyint] NULL CONSTRAINT [DF__CharInfo_2__Sex__116A8EFB] DEFAULT (0),
[Hair] [tinyint] NULL CONSTRAINT [DF__CharInfo_2__Hair__125EB334] DEFAULT (0),
[Face] [tinyint] NULL CONSTRAINT [DF__CharInfo_2__Face__1352D76D] DEFAULT (0),
[Nationality] [tinyint] NULL CONSTRAINT [DF__CharInfo___Natio__1446FBA6] DEFAULT (0),
[Class] [smallint] NULL CONSTRAINT [DF__CharInfo___Class__153B1FDF] DEFAULT (1),
[Fame] [int] NULL CONSTRAINT [DF__CharInfo___Merit__162F4418] DEFAULT (0),
[Mileage] [int] NULL CONSTRAINT [DF__CharInfo_2__Fame__17236851] DEFAULT (0),
[Guild] [int] NULL CONSTRAINT [DF__CharInfo___Guild__18178C8A] DEFAULT (0),
[Party] [int] NULL CONSTRAINT [DF__CharInfo___Party__190BB0C3] DEFAULT (0),
[Level] [tinyint] NULL CONSTRAINT [DF__CharInfo___Level__19FFD4FC] DEFAULT (1),
[Equip] [binary] (30) NULL ,
[Gold] [int] NULL ,
[IP] [smallint] NULL CONSTRAINT [DF__CharInfo_2__IP__1AF3F935] DEFAULT (0),
[STR] [smallint] NULL CONSTRAINT [DF__CharInfo_2__STR__1BE81D6E] DEFAULT (0),
[DEX] [smallint] NULL CONSTRAINT [DF__CharInfo_2__DEX__1CDC41A7] DEFAULT (0),
[CON] [smallint] NULL CONSTRAINT [DF__CharInfo_2__CON__1DD065E0] DEFAULT (0),
[Intell] [smallint] NULL CONSTRAINT [DF__CharInfo___Intel__1EC48A19] DEFAULT (0),
[WIS] [smallint] NULL CONSTRAINT [DF__CharInfo_2__WIS__1FB8AE52] DEFAULT (0),
[HP] [smallint] NULL CONSTRAINT [DF__CharInfo_2__HP__20ACD28B] DEFAULT (0),
[MP] [smallint] NULL CONSTRAINT [DF__CharInfo_2__MP__21A0F6C4] DEFAULT (0),
[Exp] [bigint] NULL CONSTRAINT [DF__CharInfo_2__Exp__22951AFD] DEFAULT (0),
[Chance] [tinyint] NULL CONSTRAINT [DF__CharInfo___Chanc__7DEDA633] DEFAULT (0),
CONSTRAINT [PK__CharInfo_2__0F824689] PRIMARY KEY CLUSTERED
(
[UID]
) ,
CONSTRAINT [CK__CharInfo_2__UID__10766AC2] CHECK ([UID] % 4 = 1)
)
GO
CREATE TABLE [CharInfo_3] (
[UID] [int] NOT NULL ,
[Name] [varchar] (16) NULL ,
[Sex] [tinyint] NULL CONSTRAINT [DF__CharInfo_3__Sex__2665ABE1] DEFAULT (0),
[Hair] [tinyint] NULL CONSTRAINT [DF__CharInfo_3__Hair__2759D01A] DEFAULT (0),
[Face] [tinyint] NULL CONSTRAINT [DF__CharInfo_3__Face__284DF453] DEFAULT (0),
[Nationality] [tinyint] NULL CONSTRAINT [DF__CharInfo___Natio__2942188C] DEFAULT (0),
[Class] [smallint] NULL CONSTRAINT [DF__CharInfo___Class__2A363CC5] DEFAULT (1),
[Fame] [int] NULL CONSTRAINT [DF__CharInfo___Merit__2B2A60FE] DEFAULT (0),
[Mileage] [int] NULL CONSTRAINT [DF__CharInfo_3__Fame__2C1E8537] DEFAULT (0),
[Guild] [int] NULL CONSTRAINT [DF__CharInfo___Guild__2D12A970] DEFAULT (0),
[Party] [int] NULL CONSTRAINT [DF__CharInfo___Party__2E06CDA9] DEFAULT (0),
[Level] [tinyint] NULL CONSTRAINT [DF__CharInfo___Level__2EFAF1E2] DEFAULT (1),
[Equip] [binary] (30) NULL ,
[Gold] [int] NULL ,
[IP] [smallint] NULL CONSTRAINT [DF__CharInfo_3__IP__2FEF161B] DEFAULT (0),
[STR] [smallint] NULL CONSTRAINT [DF__CharInfo_3__STR__30E33A54] DEFAULT (0),
[DEX] [smallint] NULL CONSTRAINT [DF__CharInfo_3__DEX__31D75E8D] DEFAULT (0),
[CON] [smallint] NULL CONSTRAINT [DF__CharInfo_3__CON__32CB82C6] DEFAULT (0),
[Intell] [smallint] NULL CONSTRAINT [DF__CharInfo___Intel__33BFA6FF] DEFAULT (0),
[WIS] [smallint] NULL CONSTRAINT [DF__CharInfo_3__WIS__34B3CB38] DEFAULT (0),
[HP] [smallint] NULL CONSTRAINT [DF__CharInfo_3__HP__35A7EF71] DEFAULT (0),
[MP] [smallint] NULL CONSTRAINT [DF__CharInfo_3__MP__369C13AA] DEFAULT (0),
[Exp] [bigint] NULL CONSTRAINT [DF__CharInfo_3__Exp__379037E3] DEFAULT (0),
[Chance] [tinyint] NULL CONSTRAINT [DF__CharInfo___Chanc__7EE1CA6C] DEFAULT (0),
CONSTRAINT [PK__CharInfo_3__247D636F] PRIMARY KEY CLUSTERED
(
[UID]
) ,
CONSTRAINT [CK__CharInfo_3__UID__257187A8] CHECK ([UID] % 4 = 2)
)
GO
CREATE TABLE [CharInfo_4] (
[UID] [int] NOT NULL ,
[Name] [varchar] (16) NULL ,
[Sex] [tinyint] NULL CONSTRAINT [DF__CharInfo_4__Sex__3B60C8C7] DEFAULT (0),
[Hair] [tinyint] NULL CONSTRAINT [DF__CharInfo_4__Hair__3C54ED00] DEFAULT (0),
[Face] [tinyint] NULL CONSTRAINT [DF__CharInfo_4__Face__3D491139] DEFAULT (0),
[Nationality] [tinyint] NULL CONSTRAINT [DF__CharInfo___Natio__3E3D3572] DEFAULT (0),
[Class] [smallint] NULL CONSTRAINT [DF__CharInfo___Class__3F3159AB] DEFAULT (1),
[Fame] [int] NULL CONSTRAINT [DF__CharInfo___Merit__40257DE4] DEFAULT (0),
[Mileage] [int] NULL CONSTRAINT [DF__CharInfo_4__Fame__4119A21D] DEFAULT (0),
[Guild] [int] NULL CONSTRAINT [DF__CharInfo___Guild__420DC656] DEFAULT (0),
[Party] [int] NULL CONSTRAINT [DF__CharInfo___Party__4301EA8F] DEFAULT (0),
[Level] [tinyint] NULL CONSTRAINT [DF__CharInfo___Level__43F60EC8] DEFAULT (1),
[Equip] [binary] (30) NULL ,
[Gold] [int] NULL ,
[IP] [smallint] NULL CONSTRAINT [DF__CharInfo_4__IP__44EA3301] DEFAULT (0),
[STR] [smallint] NULL CONSTRAINT [DF__CharInfo_4__STR__45DE573A] DEFAULT (0),
[DEX] [smallint] NULL CONSTRAINT [DF__CharInfo_4__DEX__46D27B73] DEFAULT (0),
[CON] [smallint] NULL CONSTRAINT [DF__CharInfo_4__CON__47C69FAC] DEFAULT (0),
[Intell] [smallint] NULL CONSTRAINT [DF__CharInfo___Intel__48BAC3E5] DEFAULT (0),
[WIS] [smallint] NULL CONSTRAINT [DF__CharInfo_4__WIS__49AEE81E] DEFAULT (0),
[HP] [smallint] NULL CONSTRAINT [DF__CharInfo_4__HP__4AA30C57] DEFAULT (0),
[MP] [smallint] NULL CONSTRAINT [DF__CharInfo_4__MP__4B973090] DEFAULT (0),
[Exp] [bigint] NULL CONSTRAINT [DF__CharInfo_4__Exp__4C8B54C9] DEFAULT (0),
[Chance] [tinyint] NULL CONSTRAINT [DF__CharInfo___Chanc__7FD5EEA5] DEFAULT (0),
CONSTRAINT [PK__CharInfo_4__39788055] PRIMARY KEY CLUSTERED
(
[UID]
) ,
CONSTRAINT [CK__CharInfo_4__UID__3A6CA48E] CHECK ([UID] % 4 = 3)
)
GO
CREATE TABLE [CharInfo_Time] (
[CID] [int] NOT NULL ,
[CreateTime] [smalldatetime] NULL ,
[UpdateTime] [smalldatetime] NULL ,
PRIMARY KEY CLUSTERED
(
[CID]
)
)
GO
CREATE TABLE [CharInfoEx] (
[UID] [int] NOT NULL ,
[Total] [int] NULL CONSTRAINT [DF__CharInfoE__Total__5CC1BC92] DEFAULT (0),
[ServerID] [int] NULL CONSTRAINT [DF__CharInfoE__Serve__5DB5E0CB] DEFAULT (0),
[Config] [binary] (50) NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
)
)
GO
CREATE TABLE [CharItem] (
[UID] [int] NOT NULL ,
[Quick] [binary] (40) NULL ,
[Equip] [binary] (1440) NULL ,
[Inventory] [binary] (5120) NULL ,
[Extra] [binary] (512) NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
)
)
GO
CREATE TABLE [CharItemEx] (
[UID] [int] NOT NULL ,
[Exchange] [binary] (1284) NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
)
)
GO
CREATE TABLE [CharPos_1] (
[UID] [int] NOT NULL ,
[LastPointX] [real] NULL ,
[LastPointY] [real] NULL ,
[LastPointZ] [real] NULL ,
[SavePointX] [real] NULL ,
[SavePointY] [real] NULL ,
[SavePointZ] [real] NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
) ,
CHECK ([UID] % 4 = 0)
)
GO
CREATE TABLE [CharPos_2] (
[UID] [int] NOT NULL ,
[LastPointX] [real] NULL ,
[LastPointY] [real] NULL ,
[LastPointZ] [real] NULL ,
[SavePointX] [real] NULL ,
[SavePointY] [real] NULL ,
[SavePointZ] [real] NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
) ,
CHECK ([UID] % 4 = 1)
)
GO
CREATE TABLE [CharPos_3] (
[UID] [int] NOT NULL ,
[LastPointX] [real] NULL ,
[LastPointY] [real] NULL ,
[LastPointZ] [real] NULL ,
[SavePointX] [real] NULL ,
[SavePointY] [real] NULL ,
[SavePointZ] [real] NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
) ,
CHECK ([UID] % 4 = 2)
)
GO
CREATE TABLE [CharPos_4] (
[UID] [int] NOT NULL ,
[LastPointX] [real] NULL ,
[LastPointY] [real] NULL ,
[LastPointZ] [real] NULL ,
[SavePointX] [real] NULL ,
[SavePointY] [real] NULL ,
[SavePointZ] [real] NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
) ,
CHECK ([UID] % 4 = 3)
)
GO
CREATE TABLE [CharSkill_1] (
[UID] [int] NOT NULL ,
[Skill] [binary] (84) NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
) ,
CHECK ([UID] % 4 = 0)
)
GO
CREATE TABLE [CharSkill_2] (
[UID] [int] NOT NULL ,
[Skill] [binary] (84) NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
) ,
CHECK ([UID] % 4 = 1)
)
GO
CREATE TABLE [CharSkill_3] (
[UID] [int] NOT NULL ,
[Skill] [binary] (84) NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
) ,
CHECK ([UID] % 4 = 2)
)
GO
CREATE TABLE [CharSkill_4] (
[UID] [int] NOT NULL ,
[Skill] [binary] (84) NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
) ,
CHECK ([UID] % 4 = 3)
)
GO
CREATE TABLE [CIDStore] (
[UID] [int] NOT NULL
)
GO
CREATE TABLE [Friend] (
[UID] [int] NOT NULL ,
[Friend] [binary] (2404) NULL ,
[Ban] [binary] (2004) NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
)
)
GO
CREATE TABLE [ItemStore1] (
[UID] [int] NOT NULL ,
[Password] [char] (5) NULL CONSTRAINT [DF__ItemStore__Passw__73A521EA] DEFAULT ('0000'),
[Frag] [int] NULL ,
[Gold] [int] NULL ,
[Store] [binary] (7300) NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
)
)
GO
CREATE TABLE [ItemStore2] (
[UID] [int] NOT NULL ,
[Store] [binary] (7300) NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
)
)
GO
CREATE TABLE [ItemUID] (
[Server] [int] NOT NULL ,
[Item] [bigint] NULL CONSTRAINT [DF__ItemUID__Item__70C8B53F] DEFAULT (0),
PRIMARY KEY CLUSTERED
(
[Server]
)
)
GO
CREATE TABLE [PartyInfo_1] (
[UID] [int] NOT NULL ,
[Party] [binary] (200) NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
) ,
CHECK ([UID] % 4 = 0)
)
GO
CREATE TABLE [PartyInfo_2] (
[UID] [int] NOT NULL ,
[Party] [binary] (200) NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
) ,
CHECK ([UID] % 4 = 1)
)
GO
CREATE TABLE [PartyInfo_3] (
[UID] [int] NOT NULL ,
[Party] [binary] (200) NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
) ,
CHECK ([UID] % 4 = 2)
)
GO
CREATE TABLE [PartyInfo_4] (
[UID] [int] NOT NULL ,
[Party] [binary] (200) NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
) ,
CHECK ([UID] % 4 = 3)
)
GO
CREATE TABLE [PIDStore] (
[UID] [int] NOT NULL
)
GO
CREATE TABLE [Quest] (
[UID] [int] NOT NULL ,
[Quest] [binary] (134) NULL ,
[History] [binary] (204) NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
)
)
GO
CREATE TABLE [TblCharDelHistory] (
[intCID] [int] NOT NULL ,
[intUID] [int] NOT NULL ,
[dateInsertTime] [smalldatetime] NOT NULL CONSTRAINT [DF__TblCharDe__dateI__0C3BC58A] DEFAULT (getdate()),
[dateDeleteTime] [smalldatetime] NOT NULL ,
PRIMARY KEY CLUSTERED
(
[intCID]
)
)
GO
CREATE TABLE [TblCharDelHistory_LOG] (
[intCID] [int] NULL ,
[intUID] [int] NULL ,
[dateInsertTime] [smalldatetime] NULL ,
[dateDeleteTime] [smalldatetime] NULL
)
GO
CREATE TABLE [TblEventItem] (
[nItemIndex] [int] NULL ,
[strItemName] [varchar] (20) NULL ,
[nItemAmount] [int] NULL ,
[UpdateTime] [smalldatetime] NULL
)
GO
CREATE TABLE [TblGuildGold_Log] (
[nGuildID] [int] NOT NULL ,
[tInsertTime] [datetime] NOT NULL ,
[strCharName] [varchar] (20) NOT NULL ,
[tnStrengthType] [tinyint] NOT NULL ,
[snPosition] [smallint] NOT NULL ,
[tnStrengthLevel] [tinyint] NOT NULL ,
[nLostGold] [int] NOT NULL ,
[nGetGold] [int] NOT NULL ,
[nRemainGold] [int] NOT NULL
)
GO
CREATE TABLE [TblGuildInfo] (
[nGuildID] [int] IDENTITY (10001, 1) NOT NULL ,
[strGuildName] [varchar] (20) NOT NULL ,
[tnGuildLevel] [tinyint] NOT NULL ,
[nGuildFame] [int] NOT NULL ,
[nGuildGold] [int] NOT NULL CONSTRAINT [DF__TblGuildI__nGuil__13DCE752] DEFAULT (0),
[tLastLogout] [smalldatetime] NOT NULL CONSTRAINT [DF__TblGuildI__tLast__14D10B8B] DEFAULT ('2010.12.31'),
[tCheckMember] [smalldatetime] NOT NULL CONSTRAINT [DF__TblGuildI__tChec__15C52FC4] DEFAULT (getdate()),
[tGMLastLogout] [smalldatetime] NULL CONSTRAINT [DF__TblGuildI__tGMLa__16B953FD] DEFAULT ('2010.12.31'),
[bGuildMark] [binary] (433) NULL ,
[bRight] [binary] (50) NULL ,
[tnNationType] [tinyint] NULL ,
PRIMARY KEY CLUSTERED
(
[nGuildID]
) ,
CONSTRAINT [uk_TblGuildInfo_strGuildName] UNIQUE NONCLUSTERED
(
[strGuildName]
) ,
CHECK ([strGuildName] <> null)
)
GO
CREATE TABLE [TblGuildItem] (
[nGuildID] [int] NOT NULL ,
[bGuildItem] [binary] (7300) NULL ,
PRIMARY KEY CLUSTERED
(
[nGuildID]
) ,
CONSTRAINT [FK_TblGuildInfo_guilditem] FOREIGN KEY
(
[nGuildID]
) REFERENCES [TblGuildInfo] (
[nGuildID]
) ON DELETE CASCADE
)
GO
CREATE TABLE [TblGuildItem_EX] (
[nGuildID] [int] NOT NULL ,
[bGuildItem] [binary] (7300) NULL ,
PRIMARY KEY CLUSTERED
(
[nGuildID]
) ,
CONSTRAINT [FK_TblGuildInfo_guilditem_ex] FOREIGN KEY
(
[nGuildID]
) REFERENCES [TblGuildInfo] (
[nGuildID]
) ON DELETE CASCADE
)
GO
CREATE TABLE [TblGuildItem_log] (
[nGuildID] [int] NULL ,
[tInsertTime] [datetime] NULL ,
[strCharName] [varchar] (20) NULL ,
[nItemID] [int] NULL ,
[nItemType] [int] NULL ,
[nItemStrengthStep] [int] NULL ,
[nReason] [int] NULL
)
GO
CREATE TABLE [TblGuildMember] (
[nGuildID] [int] NOT NULL ,
[nCID] [int] NOT NULL ,
[nPosition] [int] NOT NULL ,
[nPositionInGuild] [int] NULL ,
[tLeaveGuildTime] [smalldatetime] NULL ,
CONSTRAINT [PK_GuildMember_Guildid_nCid] PRIMARY KEY CLUSTERED
(
[nGuildID],
[nCID]
) ,
CONSTRAINT [FK_TblGuildInfo_TblGuildMember] FOREIGN KEY
(
[nGuildID]
) REFERENCES [TblGuildInfo] (
[nGuildID]
) ON DELETE CASCADE
)
GO
CREATE TABLE [TblGuildMsg] (
[nMsgID] [int] IDENTITY (1, 1) NOT NULL ,
[nGuildID] [int] NOT NULL ,
[strCharName] [varchar] (20) NOT NULL ,
[tInsertTime] [smalldatetime] NOT NULL ,
[strTitle] [varchar] (60) NOT NULL ,
[strMsgType] [varchar] (10) NULL ,
[nClass] [int] NULL ,
[nLevel] [int] NULL ,
[strContent] [varchar] (4000) NULL ,
PRIMARY KEY NONCLUSTERED
(
[nMsgID]
) ,
CONSTRAINT [FK_TblGuildInfo_TblGuildMsg] FOREIGN KEY
(
[nGuildID]
) REFERENCES [TblGuildInfo] (
[nGuildID]
) ON DELETE CASCADE
)
GO
CREATE TABLE [TblGuildOtherList] (
[nGuildID] [int] NOT NULL ,
[nOtherGuildID] [int] NOT NULL ,
[tnState] [tinyint] NOT NULL ,
CONSTRAINT [PK_TblGuildOtherList_1] PRIMARY KEY CLUSTERED
(
[nGuildID],
[nOtherGuildID]
) ,
CONSTRAINT [FK_TblGuildInfo_TblGuildOtherList] FOREIGN KEY
(
[nGuildID]
) REFERENCES [TblGuildInfo] (
[nGuildID]
) ON DELETE CASCADE ,
CHECK ([tnState] = 0 or [tnState] = 1 or [tnState] = 2)
)
GO
CREATE TABLE [TblGuildRestoreData] (
[nGuildID] [int] NULL ,
[strGuildName] [varchar] (20) NULL ,
[nGuildGold] [int] NULL ,
[bGuildItem] [binary] (7300) NULL ,
[tDeleteTime] [smalldatetime] NULL ,
[strGuildMName] [varchar] (20) NULL
)
GO
CREATE TABLE [TblGuildRestoreData_EX] (
[nGuildID] [int] NULL ,
[bGuildItem_EX] [binary] (7300) NULL
)
GO
CREATE TABLE [UserInfo_1] (
[UID] [int] NOT NULL ,
[Char1] [int] NULL ,
[Char2] [int] NULL ,
[Char3] [int] NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
) ,
CHECK ([UID] % 4 = 0)
)
GO
CREATE TABLE [UserInfo_2] (
[UID] [int] NOT NULL ,
[Char1] [int] NULL ,
[Char2] [int] NULL ,
[Char3] [int] NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
) ,
CHECK ([UID] % 4 = 1)
)
GO
CREATE TABLE [UserInfo_3] (
[UID] [int] NOT NULL ,
[Char1] [int] NULL ,
[Char2] [int] NULL ,
[Char3] [int] NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
) ,
CHECK ([UID] % 4 = 2)
)
GO
CREATE TABLE [UserInfo_4] (
[UID] [int] NOT NULL ,
[Char1] [int] NULL ,
[Char2] [int] NULL ,
[Char3] [int] NULL ,
PRIMARY KEY CLUSTERED
(
[UID]
) ,
CHECK ([UID] % 4 = 3)
)
GO

View File

@@ -0,0 +1,180 @@
CREATE TABLE [DelCharInfo_1] (
[UID] [int] NOT NULL ,
[Name] [varchar] (16) NULL ,
[Sex] [tinyint] NULL ,
[Hair] [tinyint] NULL ,
[Face] [tinyint] NULL ,
[Nationality] [tinyint] NULL ,
[Class] [smallint] NULL ,
[Fame] [int] NULL ,
[Mileage] [int] NULL ,
[Guild] [int] NULL ,
[Party] [int] NULL ,
[Level] [tinyint] NULL ,
[Equip] [binary] (30) NULL ,
[Gold] [int] NULL ,
[IP] [smallint] NULL ,
[STR] [smallint] NULL ,
[DEX] [smallint] NULL ,
[CON] [smallint] NULL ,
[Intell] [smallint] NULL ,
[WIS] [smallint] NULL ,
[HP] [smallint] NULL ,
[MP] [smallint] NULL ,
[Exp] [bigint] NULL ,
[Chance] [tinyint] NULL
)
GO
CREATE TABLE [DelCharInfo_2] (
[UID] [int] NOT NULL ,
[Name] [varchar] (16) NULL ,
[Sex] [tinyint] NULL ,
[Hair] [tinyint] NULL ,
[Face] [tinyint] NULL ,
[Nationality] [tinyint] NULL ,
[Class] [smallint] NULL ,
[Fame] [int] NULL ,
[Mileage] [int] NULL ,
[Guild] [int] NULL ,
[Party] [int] NULL ,
[Level] [tinyint] NULL ,
[Equip] [binary] (30) NULL ,
[Gold] [int] NULL ,
[IP] [smallint] NULL ,
[STR] [smallint] NULL ,
[DEX] [smallint] NULL ,
[CON] [smallint] NULL ,
[Intell] [smallint] NULL ,
[WIS] [smallint] NULL ,
[HP] [smallint] NULL ,
[MP] [smallint] NULL ,
[Exp] [bigint] NULL ,
[Chance] [tinyint] NULL
)
GO
CREATE TABLE [DelCharInfo_3] (
[UID] [int] NOT NULL ,
[Name] [varchar] (16) NULL ,
[Sex] [tinyint] NULL ,
[Hair] [tinyint] NULL ,
[Face] [tinyint] NULL ,
[Nationality] [tinyint] NULL ,
[Class] [smallint] NULL ,
[Fame] [int] NULL ,
[Mileage] [int] NULL ,
[Guild] [int] NULL ,
[Party] [int] NULL ,
[Level] [tinyint] NULL ,
[Equip] [binary] (30) NULL ,
[Gold] [int] NULL ,
[IP] [smallint] NULL ,
[STR] [smallint] NULL ,
[DEX] [smallint] NULL ,
[CON] [smallint] NULL ,
[Intell] [smallint] NULL ,
[WIS] [smallint] NULL ,
[HP] [smallint] NULL ,
[MP] [smallint] NULL ,
[Exp] [bigint] NULL ,
[Chance] [tinyint] NULL
)
GO
CREATE TABLE [DelCharInfo_4] (
[UID] [int] NOT NULL ,
[Name] [varchar] (16) NULL ,
[Sex] [tinyint] NULL ,
[Hair] [tinyint] NULL ,
[Face] [tinyint] NULL ,
[Nationality] [tinyint] NULL ,
[Class] [smallint] NULL ,
[Fame] [int] NULL ,
[Mileage] [int] NULL ,
[Guild] [int] NULL ,
[Party] [int] NULL ,
[Level] [tinyint] NULL ,
[Equip] [binary] (30) NULL ,
[Gold] [int] NULL ,
[IP] [smallint] NULL ,
[STR] [smallint] NULL ,
[DEX] [smallint] NULL ,
[CON] [smallint] NULL ,
[Intell] [smallint] NULL ,
[WIS] [smallint] NULL ,
[HP] [smallint] NULL ,
[MP] [smallint] NULL ,
[Exp] [bigint] NULL ,
[Chance] [tinyint] NULL
)
GO
CREATE TABLE [DelCharInfo_Time] (
[CID] [int] NOT NULL ,
[CreateTime] [smalldatetime] NULL ,
[UpdateTime] [smalldatetime] NULL
)
GO
CREATE TABLE [DelCharItem] (
[UID] [int] NOT NULL ,
[Quick] [binary] (40) NULL ,
[Equip] [binary] (1440) NULL ,
[Inventory] [binary] (5120) NULL ,
[Extra] [binary] (512) NULL
)
GO
CREATE TABLE [DelCharItemEx] (
[UID] [int] NOT NULL ,
[Exchange] [binary] (1284) NULL
)
GO
CREATE TABLE [DelCharSkill_1] (
[UID] [int] NOT NULL ,
[Skill] [binary] (84) NULL
)
GO
CREATE TABLE [DelCharSkill_2] (
[UID] [int] NOT NULL ,
[Skill] [binary] (84) NULL
)
GO
CREATE TABLE [DelCharSkill_3] (
[UID] [int] NOT NULL ,
[Skill] [binary] (84) NULL
)
GO
CREATE TABLE [DelCharSkill_4] (
[UID] [int] NOT NULL ,
[Skill] [binary] (84) NULL
)
GO
CREATE TABLE [TblCharDelHistory_LOG] (
[intCID] [int] NULL ,
[intUID] [int] NULL ,
[dateInsertTime] [smalldatetime] NULL ,
[dateDeleteTime] [smalldatetime] NULL
)
GO

View File

@@ -0,0 +1,39 @@
ALTER TABLE TblGuildInfo
ADD tChangeState SMALLDATETIME
GO
UPDATE TblGuildInfo
SET tnNationType = 101
WHERE tnNationType = 0
GO
UPDATE TblGuildInfo
SET tnNationType = 105
WHERE tnNationType = 1
GO
-- ADD Equip column
ALTER PROCEDURE dbo.GetCharInfo
@UID AS INT
AS
SET NOCOUNT ON
SELECT UID, Name, Sex, Hair, Face, Nationality, Class, Fame, Mileage, Guild, Party, Level, Gold, IP, STR, DEX, CON, Intell, WIS, HP, MP,
Exp , Chance,Equip
FROM CharInfo WHERE UID = @UID
GO
-- add nCampID
ALTER TABLE TblGuildMember
ADD nCampID INT default(0)
GO
update TblGuildMember
set nCampID = 0

View File

@@ -0,0 +1,14 @@
DROP TABLE TblEventItem
GO
CREATE TABLE [TblEventItem] (
[nItemIndex] [int] NULL ,
[nItemAmount] [int] NULL ,
nMaxAmount int NULL,
[StartTime] [smalldatetime] NULL ,
EndTime smalldatetime null
) ON [PRIMARY]
GO

View File

@@ -0,0 +1,83 @@
/*
디폴트 = 0
*/
CREATE VIEW dbo.CharInfo
AS
SELECT * FROM CharInfo_1
UNION ALL
SELECT * FROM CharInfo_2
UNION ALL
SELECT * FROM CharInfo_3
UNION ALL
SELECT * FROM CharInfo_4
GO
/*
캐릭터 위치 테이블 뷰
*/
CREATE VIEW dbo.CharPos
AS
SELECT * FROM CharPos_1
UNION ALL
SELECT * FROM CharPos_2
UNION ALL
SELECT * FROM CharPos_3
UNION ALL
SELECT * FROM CharPos_4
GO
/*
캐릭터 추가 정 테이블 뷰
*/
CREATE VIEW dbo.CharSkill
AS
SELECT * FROM CharSkill_1
UNION ALL
SELECT * FROM CharSkill_2
UNION ALL
SELECT * FROM CharSkill_3
UNION ALL
SELECT * FROM CharSkill_4
GO
/*
파티 정보 테이블 뷰
*/
CREATE VIEW dbo.PartyInfo
AS
SELECT * FROM PartyInfo_1
UNION ALL
SELECT * FROM PartyInfo_2
UNION ALL
SELECT * FROM PartyInfo_3
UNION ALL
SELECT * FROM PartyInfo_4
GO
/*
유저 정보 테이블 뷰
*/
CREATE VIEW dbo.UserInfo
AS
SELECT * FROM UserInfo_1
UNION ALL
SELECT * FROM UserInfo_2
UNION ALL
SELECT * FROM UserInfo_3
UNION ALL
SELECT * FROM UserInfo_4
GO

View File

@@ -0,0 +1,13 @@
1. 서버팀 윤정수 요청사항 작업 완료
일시 : 2004-12-15
작업내용 : 1) TblFertilityInfo , TblCampMineralInfo 생성
2) TblCampInfo 변경 - [snObjectType],[tnSubState] 컬럼추가
3) USPCampCreate 프로시져 변경
2. 서버팀 박세원 요청사항 작업 완료
일시 : 2004-12-15
작업내용 : 1) CharInfoEx 변경 - NameChangeCount 컬럼 추가
2) GetCharInfoEx , UpdateCharInfoEx 프로시져 삭제

View File

@@ -0,0 +1,89 @@
/***************************************************
*
* 2004.11.01
* You should make the database named 'CharDelHostory' before you execute this script
***************************************************/
GO
USE CharDelHistory
GO
CREATE TABLE [dbo].[DelCharInfo] (
[NewServerGroupID] TINYINT NOT NULL,
[CID] [int] NOT NULL ,
[Name] [varchar] (16) NULL ,
[Sex] [tinyint] NULL ,
[Hair] [tinyint] NULL ,
[Face] [tinyint] NULL ,
[Race] [tinyint] NULL ,
[Class] [smallint] NULL ,
[Fame] [int] NULL ,
[Mileage] [int] NULL ,
[Guild] [int] NULL ,
[Party] [int] NULL ,
[Level] [tinyint] NULL ,
[Equip] [binary] (30) NULL ,
[Gold] [int] NULL ,
[IP] [smallint] NULL ,
[STR] [smallint] NULL ,
[DEX] [smallint] NULL ,
[CON] [smallint] NULL ,
[Intell] [smallint] NULL ,
[WIS] [smallint] NULL ,
[HP] [smallint] NULL ,
[MP] [smallint] NULL ,
[Exp] [bigint] NULL ,
[Chance] [tinyint] NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[DelCharItem] (
[NewServerGroupID] TINYINT NOT NULL,
[CID] [int] NOT NULL ,
[Quick] [binary] (100) NULL ,
[Equip] [binary] (1440) NULL ,
[Inventory] [binary] (5120) NULL ,
[Extra] [binary] (512) NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[DelCharItemEx] (
[NewServerGroupID] TINYINT NOT NULL ,
[CID] [int] NOT NULL ,
[Exchange] [binary] (1284) NULL ,
[TempInven] [binary] (1440) NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[DelCharSkill] (
[NewServerGroupID] TINYINT NOT NULL ,
[CID] [int] NOT NULL ,
[Skill] [binary] (84) NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[TblCharDelHistory_LOG] (
[intCID] [int] NULL ,
[intUID] [int] NULL ,
[dateInsertTime] [smalldatetime] NULL ,
[dateDeleteTime] [smalldatetime] NULL ,
[NewServerGroupID] TINYINT NULL ,
[OldServerGroupID] TINYINT NULL
) ON [PRIMARY]
GO
CREATE INDEX [IDX_DelCharInfo_CID] ON [dbo].[DelCharInfo]([CID],[NewServerGroupID]) ON [PRIMARY]
GO
CREATE INDEX [IDX_DelCharItem_CID] ON [dbo].[DelCharItem]([CID],[NewServerGroupID]) ON [PRIMARY]
GO
CREATE INDEX [IDX_DelCharItemEx_CID] ON [dbo].[DelCharItemEx]([CID],[NewServerGroupID]) ON [PRIMARY]
GO
CREATE INDEX [IDX_DelCharSkill_CID] ON [dbo].[DelCharSkill]([CID],[NewServerGroupID]) ON [PRIMARY]
GO

View File

@@ -0,0 +1,223 @@
/**************************************************
--통합될 새로생성된 게임DB에서 실행되어야 한다.
-- dbo.UserInfoConvertView 가 존재 해야한다.
****************************************************/
GO
--
CREATE TABLE dbo.TblUnifiedGuildList
(
BeforeGuildID INT NOT NULL
, OldServerGroupID TINYINT NOT NULL
, NewGuildID INT NOT NULL IDENTITY(1000,1)
, BeforeGName VARCHAR(20)
, NewGName VARCHAR(20)
)
GO
CREATE TABLE [TblUnifiedCharList_TEMP] (
[UID] [int] NOT NULL ,
[OldServerGroupID] [tinyint] NOT NULL ,
[BeforeCID] [int] NOT NULL ,
[NewCID] [int] IDENTITY (1000, 1) NOT NULL PRIMARY KEY,
[BeforeCharName] [varchar] (20) NOT NULL ,
[NewCharName] [varchar] (20) ,
[BeforeGuildID] [int] NULL ,
[NewGuildID] [int] NULL
) ON [PRIMARY]
GO
CREATE INDEX Idx_TblUnifiedCharList_U_Old ON [TblUnifiedCharList_TEMP] (UID,OldServerGroupID)
GO
/*******************************************************************************************
*
* 실제 DB통합하기 전 캐릭터정보 및 길드정보 통합 메타데이터 생성하기
* (캐릭터기본정보와 길드기본정보 각각을 TblUnifiedCharList 와 TblUnifiedGuildList 에 저장
********************************************************************************************/
GO
CREATE PROC procCreateMetaData @ServerGroupNum TINYINT,@DBName VARCHAR(20)
AS
SET NOCOUNT ON
DECLARE @String NVARCHAR(4000)
SET @String =
'INSERT INTO TblUnifiedCharList_TEMP (UID,OldServerGroupID,BeforeCID,BeforeCharName,NewCharName,BeforeGuildID,NewGuildID) ' +
'SELECT A.UID,@ServerGroupNum,A.CID,B.Name,B.Name,Guild,Guild FROM ' + @DBName + '.dbo.UserInfoConvertView A join ' + @DBName + '.dbo.CharInfo B ON A.CID = B.UID '+
'INSERT INTO TblUnifiedGuildList (BeforeGuildID,OldServerGroupID,BeforeGName,NewGName) '+
'SELECT nGuildID,@ServerGroupNum,strGuildName,strGuildName FROM ' + @DBName + '.dbo.TblGuildInfo'
EXEC sp_executesql @String,N'@ServerGroupNum TINYINT',@ServerGroupNum
GO
/****************************************************************************
*
* 통합된 캐릭터 정보중 캐릭터Name의 중복여부를 체크한다.
* 통합될 서버갯수와 @nCount 같이 일치해야한다.
****************************************************************************/
CREATE PROC procCheckCharInfoGuild @nCount int,@Server1 CHAR(1) = NULL,@Server2 CHAR(1) = NULL,
@Server3 CHAR(1) = NULL,@Server4 CHAR(1) = NULL,
@Server5 CHAR(1) = NULL,@Server6 CHAR(1) = NULL
AS
SET NOCOUNT ON
CREATE TABLE #TblUnifiedCIDList_TEMP
(
NewCharName VARCHAR(20) NOT NULL
)
INSERT INTO #TblUnifiedCIDList_TEMP
SELECT NewCharName FROM TblUnifiedCharList_TEMP GROUP BY NewCharName HAVING COUNT(*) > 1
DECLARE @ROWID INT
DECLARE @ServerGroupNum TINYINT
DECLARE @Initial CHAR(1)
DECLARE @TABLE TABLE
(
ROWID INT IDENTITY(1,1)
, ServerGroupNum TINYINT
)
INSERT INTO @TABLE
SELECT DISTINCT OldServerGroupID FROM TblUnifiedCharList_TEMP
SET @ROWID = @@ROWCOUNT
if ((@ROWID <> @nCount) OR (@nCount <= 0))
BEGIN
PRINT 'incorrect parameter counts'
RETURN
END
WHILE (@ROWID > 0)
BEGIN
SELECT @ServerGroupNum = ServerGroupNum
FROM @TABLE WHERE ROWID = @ROWID
-- 통합된 캐릭터 정보중 캐릭터Name의 중복여부를 체크한다.
IF @ServerGroupNum = 1
SET @Initial = @Server1
ELSE IF @ServerGroupNum = 2
SET @Initial = @Server2
ELSE IF @ServerGroupNum = 3
SET @Initial = @Server3
ELSE IF @ServerGroupNum = 4
SET @Initial = @Server4
ELSE IF @ServerGroupNum = 5
SET @Initial = @Server5
ELSE IF @ServerGroupNum = 6
SET @Initial = @Server6
UPDATE A SET A.NewCharName = @Initial + A.NewCharName
FROM TblUnifiedCharList_TEMP A,#TblUnifiedCIDList_TEMP B
WHERE A.NewCharName = B.NewCharName AND OldServerGroupID = @ServerGroupNum
-- .
UPDATE TblUnifiedGuildList SET NewGName = @Initial + NewGName
WHERE NewGName IN ( SELECT NewGName FROM TblUnifiedGuildList GROUP BY NewGName HAVING COUNT(*) > 1 )
AND OldServerGroupID = @ServerGroupNum
SET @ROWID = @ROWID - 1
END
-- 통합 캐릭터 정보 중 Guild 번호 변경한다.
UPDATE A
SET A.NewGuildID = B.NewGuildID
FROM dbo.TblUnifiedCharList_TEMP A, dbo.TblUnifiedGuildList B
WHERE A.BeforeGuildID = B.BeforeGuildID AND A.OldServerGroupID = B.OldServerGroupID AND A.BeforeGuildID > 0
DROP TABLE #TblUnifiedCIDList_TEMP
GO
/*************************************************************************************************************************
*
* 실제 데이터 통합하기.
*
* CharInfo , CharSkill , CharInfoEx , CharItem , CharItemEx , Friend , Quest , TblGuildInfo , TblUnifiedItemStore1 , TblUnifiedItemStore2
*
*************************************************************************************************************************/
GO
CREATE PROC procUnifingGameDB @ServerGroupNum TINYINT,@DBName VARCHAR(20)
AS
SET NOCOUNT ON
DECLARE @String NVARCHAR(4000)
SET @String =
'INSERT INTO CharInfo (CID,Name,Sex,Hair,Face,Race,Class,Fame,Mileage,Guild,Party,Level,Equip,Gold,IP,STR,DEX,CON,Intell,WIS,HP,Exp,Chance) ' +
'SELECT B.NewCID,NewCharName,Sex,Hair,Face,Nationality,Class,Fame,Mileage,B.NewGuildID,Party,Level,Equip,Gold,IP,STR,DEX,CON,Intell,WIS,HP,Exp,Chance '+
'FROM ' + @DBName + '.dbo.CharInfo A JOIN TblUnifiedCharList_TEMP B ON A.UID = B.BeforeCID WHERE OldServerGroupID = @ServerGroupNum '+
'INSERT INTO CharSkill (CID,Skill) ' +
'SELECT NewCID,Skill FROM ' + @DBName + '.dbo.CharSkill A JOIN TblUnifiedCharList_TEMP B ON A.UID = B.BeforeCID WHERE OldServerGroupID = @ServerGroupNum ' +
'INSERT INTO CharInfoEx (CID,Total,ServerID,Config) ' +
'SELECT NewCID,Total,ServerID,Config FROM ' + @DBName + '.dbo.CharInfoEx A JOIN TblUnifiedCharList_TEMP B ON A.UID = B.BeforeCID WHERE OldServerGroupID = @ServerGroupNum ' +
'INSERT INTO CharItem (CID,Quick,Equip,Inventory,Extra) ' +
'SELECT NewCID,Quick,Equip,Inventory,Extra FROM ' + @DBName + '.dbo.CharItem A JOIN TblUnifiedCharList_TEMP B ON A.UID = B.BeforeCID WHERE OldServerGroupID = @ServerGroupNum ' +
'INSERT INTO CharItemEx (CID,Exchange) ' +
'SELECT NewCID,Exchange FROM ' + @DBName + '.dbo.CharItemEx A JOIN TblUnifiedCharList_TEMP B ON A.UID = B.BeforeCID WHERE OldServerGroupID = @ServerGroupNum ' +
'INSERT INTO Quest (CID,Quest,History) ' +
'SELECT NewCID,Quest,History FROM ' + @DBName + '.dbo.Quest A JOIN TblUnifiedCharList_TEMP B ON A.UID = B.BeforeCID WHERE OldServerGroupID = @ServerGroupNum ' +
'INSERT INTO TblUnifiedItemStore1 (UID,OldServerGroupID,Password,Frag,Gold,Store) ' +
'SELECT UID,@ServerGroupNum,Password,ISNULL(Frag,1),Gold,Store FROM ' + @DBName + '.dbo.ItemStore1 ' +
'INSERT INTO TblUnifiedItemStore2 (UID,OldServerGroupID,Store) ' +
'SELECT UID,@ServerGroupNum,Store FROM ' + @DBName + '.dbo.ItemStore2 '
exec sp_executesql @String,N'@ServerGroupNum TINYINT',@ServerGroupNum
GO
CREATE PROC procUnifingGameDB_Guild @ServerGroupNum TINYINT,@DBName VARCHAR(20)
AS
SET NOCOUNT ON
DECLARE @String NVARCHAR(4000)
SET @String =
'INSERT INTO dbo.TblGuildInfo (nGuildID,strGuildName,tnGuildLevel,nGuildFame,nGuildGold,tLastLogout,tCheckMember,tGMLastLogout,bGuildMark,bRight,tnNationType,tChangeState) ' +
'SELECT NewGuildID,NewGName,tnGuildLevel,nGuildFame,nGuildGold,tLastLogout,tCheckMember,tGMLastLogout,bGuildMark,bRight,tnNationType,tChangeState ' +
'FROM ' + @DBName + '.dbo.TblGuildInfo A JOIN TblUnifiedGuildList B ON A.nGuildID = B.BeforeGuildID WHERE B.OldServerGroupID = @ServerGroupNum ' +
'INSERT INTO dbo.TblGuildMember (nGuildID,nCID,nPosition,nPositionInGuild,tLeaveGuildTime,nCampID) ' +
'SELECT B.NewGuildID,C.NewCID,nPosition,nPositionInGuild,tLeaveGuildTime,nCampID ' +
'FROM ' + @DBName + '.dbo.TblGuildMember A JOIN TblUnifiedGuildList B ON A.nGuildID = B.BeforeGuildID ' +
'JOIN TblUnifiedCharList_TEMP C ON A.nCID = C.BeforeCID WHERE B.OldServerGroupID =@ServerGroupNum AND C.OldServerGroupID = @ServerGroupNum AND C.NewGuildID > 0 '
exec sp_executesql @String,N'@ServerGroupNum TINYINT',@ServerGroupNum
GO

View File

@@ -0,0 +1,120 @@
/********************************************************************
*
* 실제 실행 될 스크립트 순차적으로 실행되어야 함.
*
********************************************************************/
GO
-- DB통합하기
EXEC procCreateMetaData @ServerGroupNum = 1,@DBName ='AQUATICA'
EXEC procCreateMetaData @ServerGroupNum = 2,@DBName ='LOTUS'
EXEC procCreateMetaData @ServerGroupNum = 3,@DBName ='POTATOS'
--EXEC procCreateMetaData @ServerGroupNum = 4,@DBName ='MARS161.Highland'
--EXEC procCreateMetaData @ServerGroupNum = 5,@DBName ='MARS189.Aldia'
--EXEC procCreateMetaData @ServerGroupNum = 6,@DBName ='Unite'
GO
-- 3분
DROP PROC procCreateMetaData
GO
INSERT INTO [TblUnifiedCharList] (UID,OldServerGroupID,BeforeCID,NewCID,BeforeCharName)
SELECT UID,OldServerGroupID,BeforeCID,NewCID,BeforeCharName FROM [TblUnifiedCharList_TEMP]
GO
-- Name의 .
-- 처음파라미터 숫자만큼 문자열 갯수를 정의해야한다.
--EXEC procCheckCharInfoGuild 6,'S','K','I','H','A','U' --
EXEC procCheckCharInfoGuild 3,'A','L','P'
GO
-- 이름 문자열수 체크하기
IF EXISTS (SELECT NewCharName FROM TblUnifiedCharList_TEMP WHERE DATALENGTH(NewCharName) > 15)
BEGIN
UPDATE TblUnifiedCharList_TEMP
SET NewCharName = SUBSTRING(NewCharName,1,LEN(NewCharName)-2) + SUBSTRING(NewCharName,LEN(NewCharName),1)
WHERE DATALENGTH(NewCharName) > 15
END
IF EXISTS (SELECT NewGName FROM TblUnifiedGuildList WHERE DATALENGTH(NewGName) > 10 )
BEGIN
UPDATE TblUnifiedGuildList
SET NewGName = SUBSTRING(NewGName,1,LEN(NewGName)-2) + SUBSTRING(NewGName,LEN(NewGName),1)
WHERE DATALENGTH(NewGName) > 10
END
GO
DROP PROC procCheckCharInfoGuild
GO
/************************
*
* 이름체크부분 중복여부를 확인해서 수동으로 다시 돌려야함.
*
*************************/
SELECT * FROM TblUnifiedCharList_TEMP WHERE NewCharName IN (
SELECT NewCharName FROM TblUnifiedCharList_TEMP GROUP BY NewCharName HAVING COUNT(*) > 1 )
--
UPDATE A
SET A.NewCharName = A.NewCharName + '-'
FROM TblUnifiedCharList_TEMP A, (
SELECT NewCharName,MIN(NewCID) AS NewCID FROM TblUnifiedCharList_TEMP WHERE NewCharName IN (
SELECT NewCharName FROM TblUnifiedCharList_TEMP GROUP BY NewCharName HAVING COUNT(*) > 1 )
GROUP BY NewCharName ) B
WHERE A.NewCID = B.NewCID
-- 이름문자열 수 체크
SELECT NewCharName FROM dbo.TblUnifiedCharList_TEMP WHERE DATALENGTH(NewCharName) > 15
-- 중복이름 체크
SELECT NewCharName FROM TblUnifiedCharList_TEMP GROUP BY NewCharName HAVING COUNT(*) > 1
-- 길드이름문자열 체크
SELECT NewGName FROM dbo.TblUnifiedGuildList WHERE DATALENGTH(NewGName) > 10
-- 길드이름 체크
SELECT NewGName,Count(*) FROM TblUnifiedGuildList GROUP BY NewGName HAVING COUNT(*) > 1
-- 이름 중복여부 체크 : 존재한다면 수동으로 처리해야한다.
IF EXISTS (SELECT NewCharName FROM dbo.TblUnifiedCharList_TEMP WHERE DATALENGTH(NewCharName) > 15 )
BEGIN
PRINT 'ERROR 1 -- DATALENGTH(NewCharName) > 15'
END
ELSE
BEGIN
IF EXISTS (SELECT NewCharName FROM dbo.TblUnifiedCharList_TEMP GROUP BY NewCharName HAVING COUNT(*) > 1)
BEGIN
PRINT 'ERROR 2 -- NewCharName HAVING COUNT(*) > 1'
END
ELSE
BEGIN
IF EXISTS (SELECT NewGName FROM dbo.TblUnifiedGuildList WHERE DATALENGTH(NewGName) > 10 )
BEGIN
PRINT 'ERROR 1 -- DATALENGTH(NewGName) > 10'
END
ELSE
BEGIN
IF EXISTS (SELECT NewGName FROM dbo.TblUnifiedGuildList GROUP BY NewGName HAVING COUNT(*) > 1 )
BEGIN
PRINT 'ERROR 2 -- NewGName HAVING COUNT(*) > 1'
END
ELSE
BEGIN
PRINT 'SUCCESS...'
END
END
END
END

View File

@@ -0,0 +1,103 @@
-- 실제 수행하기
EXEC procUnifingGameDB @ServerGroupNum = 1,@DBName = 'AQUATICA'
PRINT 'Completed procUnifingGameDB : AQUATICA'
GO
EXEC procUnifingGameDB @ServerGroupNum = 2,@DBName = 'LOTUS'
PRINT 'Completed procUnifingGameDB : LOTUS'
GO
EXEC procUnifingGameDB @ServerGroupNum = 3,@DBName = 'POTATOS'
PRINT 'Completed procUnifingGameDB : POTATOS'
GO
--EXEC procUnifingGameDB @ServerGroupNum = 4,@DBName = 'MARS161.Highland'
--PRINT 'Completed procUnifingGameDB : Highland'
GO
--EXEC procUnifingGameDB @ServerGroupNum = 5,@DBName = 'MARS189.Aldia'
--PRINT 'Completed procUnifingGameDB : Aldia'
GO
--EXEC procUnifingGameDB @ServerGroupNum = 6,@DBName = 'Unite'
--PRINT 'Completed procUnifingGameDB : Unite'
-- Execute time 9 : 58
GO
DROP PROC procUnifingGameDB
GO
SET IDENTITY_INSERT TblGuildInfo ON
GO
-- 실제 수행하기
-- 주의하기 1.한국에서 정섭통합시 길드는 합쳐야하고 Part2시 합쳐지면 안된다.
-- 2. 중국에서는 길드를 합쳐야한다.
EXEC procUnifingGameDB_Guild @ServerGroupNum = 1,@DBName = 'AQUATICA'
PRINT 'Completed procUnifingGameDB_Guild : AQUATICA'
GO
EXEC procUnifingGameDB_Guild @ServerGroupNum = 2,@DBName = 'LOTUS'
PRINT 'Completed procUnifingGameDB_Guild : LOTUS'
GO
EXEC procUnifingGameDB_Guild @ServerGroupNum = 3,@DBName = 'POTATOS'
PRINT 'Completed procUnifingGameDB_Guild : POTATOS'
GO
--EXEC procUnifingGameDB_Guild @ServerGroupNum = 4,@DBName = 'MARS161.Highland'
--PRINT 'Completed procUnifingGameDB_Guild : Highland'
GO
--EXEC procUnifingGameDB_Guild @ServerGroupNum = 5,@DBName = 'MARS189.Aldia'
--PRINT 'Completed procUnifingGameDB_Guild : Aldia'
GO
--EXEC procUnifingGameDB_Guild @ServerGroupNum = 6,@DBName = 'Unite'
--PRINT 'Completed procUnifingGameDB_Guild : Unite'
GO
SET IDENTITY_INSERT TblGuildInfo OFF
GO
DROP PROC procUnifingGameDB_Guild
GO
-- SETTING PID = 0
UPDATE CharInfo SET Party = 0
GO
-- SETTING CharPos
INSERT INTO CharPos SELECT CID,0,0,0,0,0,0 FROM CharInfo
--GO
INSERT INTO Friend (CID) SELECT CID FROM CharInfo
GO
UPDATE dbo.CharInfoEx
SET ServerID = 0,NameChangeCount =1
GO
UPDATE TblGuildInfo SET OldServerGroupID = 21
GO
UPDATE CharInfo SET Chance = 3
GO
UPDATE dbo.TblUnifiedItemStore1 SET Frag = 1 WHERE Frag is null or Frag = 0
GO

View File

@@ -0,0 +1,142 @@
/****************************************************************
*
* 국내가 아닌 중국에서만 실행 되어야한다.
*
*****************************************************************/
GO
SET NOCOUNT ON
DECLARE @RowID_UID INT
DECLARE @RowID_CID INT
DECLARE @Identitymax INT
DECLARE @UID INT
DECLARE @ServerGroupNum TINYINT
DECLARE @NewCID INT
DECLARE @Nation INT
SET @Nation = 1
DECLARE @Char1 INT
DECLARE @Char2 INT
DECLARE @Char3 INT
DECLARE @Char4 INT
DECLARE @Char5 INT
DECLARE @TABLE_UID TABLE
(
ROWID INT IDENTITY(1,1) PRIMARY KEY
, UID INT
, ServerGroupNum TINYINT
)
DECLARE @TABLE_CID TABLE
(
ROWID INT IDENTITY(1,1)
, NewCID INT
)
INSERT INTO @TABLE_UID (UID,ServerGroupNum)
SELECT UID,OldServerGroupID FROM TblUnifiedCharList
GROUP BY UID,OldServerGroupID
SET @RowID_UID = @@ROWCOUNT
WHILE (@RowID_UID > 0 )
BEGIN
SELECT @Char1 = 0,@Char2 = 0,@Char3 = 0,@Char4 = 0,@Char5 = 0
SELECT @UID = UID,@ServerGroupNum = ServerGroupNum
FROM @TABLE_UID WHERE ROWID = @RowID_UID
DELETE @TABLE_CID
INSERT INTO @TABLE_CID (NewCID)
SELECT NewCID FROM TblUnifiedCharList WHERE UID = @UID AND OldServerGroupID = @ServerGroupNum
SET @RowID_CID = @@ROWCOUNT
SET @Identitymax = @@IDENTITY
WHILE (@Identitymax > (@@IDENTITY - @RowID_CID) )
BEGIN
IF (@Char1 = 0 AND @Char2 = 0 AND @Char3 = 0 AND @Char4 = 0 AND @Char5 = 0)
SELECT @Char1 = NewCID FROM @TABLE_CID WHERE ROWID = @Identitymax
ELSE IF (@Char1 <> 0 AND @Char2 = 0 AND @Char3 = 0 AND @Char4 = 0 AND @Char5 = 0)
SELECT @Char2 = NewCID FROM @TABLE_CID WHERE ROWID = @Identitymax
ELSE IF (@Char1 <> 0 AND @Char2 <> 0 AND @Char3 = 0 AND @Char4 = 0 AND @Char5 = 0)
SELECT @Char3 = NewCID FROM @TABLE_CID WHERE ROWID = @Identitymax
ELSE IF (@Char1 <> 0 AND @Char2 <> 0 AND @Char3 <> 0 AND @Char4 = 0 AND @Char5 = 0)
SELECT @Char4 = NewCID FROM @TABLE_CID WHERE ROWID = @Identitymax
ELSE IF (@Char1 <> 0 AND @Char2 <> 0 AND @Char3 <> 0 AND @Char4 <> 0 AND @Char5 = 0)
SELECT @Char5 = NewCID FROM @TABLE_CID WHERE ROWID = @Identitymax
SET @Identitymax = @Identitymax - 1
END
INSERT INTO UserInfo (UID,OldServerGroupID,Nation,Char1,Char2,Char3,Char4,Char5)
VALUES (@UID,@ServerGroupNum,@Nation,@Char1,@Char2,@Char3,@Char4,@Char5)
SET @RowID_UID = @RowID_UID - 1
END
GO
-- ADD (2005-01-20)
INSERT INTO UserInfo
SELECT A.UID,A.OldServerGroupID,0,0,0,0,0,0
FROM dbo.TblUnifiedItemStore1 A LEFT OUTER JOIN UserInfo B ON A.UID = B.UID AND A.OldServerGroupID = B.OldServerGroupID
WHERE B.UID IS NULL AND B.OldServerGroupID IS NULL
GO
UPDATE TblGuildInfo SET OldServerGroupID = 24
GO
--
UPDATE A
SET Nation = Race+1
FROM UserInfo A, (
SELECT UID,OldServerGroupID,Race FROM TblUnifiedCharList A JOIN CharInfo B on A.NewCID = B.CID
GROUP BY UID,OldServerGroupID,Race ) B
WHERE A.UID = B.UID AND A.OldServerGroupID = B.OldServerGroupID
GO
INSERT INTO UserFirstLoginInfo (UID)
SELECT DISTINCT UID FROM UserInfo
GO
UPDATE Quest
SET Quest = NULL , History = NULL
GO
Update CharItem
SET Quick = NULL
/*************************
SELECT A.UID,A.NewCID,B.UID,Char1,Char2,Char3,Char4,Char5 FROM TblUnifiedCharList A JOIN UserInfo B
ON A.UID = B.UID AND A.ServerGroupNum = B.ServerGroupID
ORDER BY A.UID
**************************/

View File

@@ -0,0 +1,12 @@
DELETE TblGuildMember
DELETE TblGuildRestoreData
DELETE TblGuildOtherList
DELETE GuildInfo
UPDATE CharInfo
SET Guild = 0

View File

@@ -0,0 +1,100 @@
-- 블럭된 캐릭터 정보를 날린다.
-- 솔피스티아
-- 창고삭제
DECLARE @NUM INT
SET @NUM = 2
DELETE dbo.ItemStore1
WHERE UID IN (SELECT UID FROM MARS162.Unite.dbo.Temp_DeleteUser WHERE ServerID = @NUM)
DELETE dbo.ItemStore2
WHERE UID IN (SELECT UID FROM MARS162.Unite.dbo.Temp_DeleteUser WHERE ServerID = @NUM)
CREATE TABLE #TEMP_T
(
CID INT
)
INSERT INTO #TEMP_T
SELECT Char1
FROM (
SELECT Char1 FROM dbo.UserInfo
WHERE UID IN (SELECT UID FROM MARS162.Unite.dbo.Temp_DeleteUser WHERE ServerID = @NUM)
UNION ALL
SELECT Char2 FROM dbo.UserInfo
WHERE UID IN (SELECT UID FROM MARS162.Unite.dbo.Temp_DeleteUser WHERE ServerID = @NUM)
UNION ALL
SELECT Char3 FROM dbo.UserInfo
WHERE UID IN (SELECT UID FROM MARS162.Unite.dbo.Temp_DeleteUser WHERE ServerID = @NUM)
) A
WHERE Char1 > 0
--CharInfo
DELETE dbo.CharInfo_1 WHERE UID IN (SELECT CID FROM #TEMP_T)
DELETE dbo.CharInfo_2 WHERE UID IN (SELECT CID FROM #TEMP_T)
DELETE dbo.CharInfo_3 WHERE UID IN (SELECT CID FROM #TEMP_T)
DELETE dbo.CharInfo_4 WHERE UID IN (SELECT CID FROM #TEMP_T)
--CharSkill
DELETE dbo.CharSkill_1 WHERE UID IN (SELECT CID FROM #TEMP_T)
DELETE dbo.CharSkill_2 WHERE UID IN (SELECT CID FROM #TEMP_T)
DELETE dbo.CharSkill_3 WHERE UID IN (SELECT CID FROM #TEMP_T)
DELETE dbo.CharSkill_4 WHERE UID IN (SELECT CID FROM #TEMP_T)
--CharInfo_Time
DELETE dbo.CharInfo_Time WHERE CID IN (SELECT CID FROM #TEMP_T)
--CharInfoEx
DELETE dbo.CharInfoEx WHERE UID IN (SELECT CID FROM #TEMP_T)
--CharItem
DELETE dbo.CharItem WHERE UID IN (SELECT CID FROM #TEMP_T)
--CharItemEx
DELETE dbo.CharItemEx WHERE UID IN (SELECT CID FROM #TEMP_T)
--CharPos
DELETE dbo.CharPos_1 WHERE UID IN (SELECT CID FROM #TEMP_T)
DELETE dbo.CharPos_2 WHERE UID IN (SELECT CID FROM #TEMP_T)
DELETE dbo.CharPos_3 WHERE UID IN (SELECT CID FROM #TEMP_T)
DELETE dbo.CharPos_4 WHERE UID IN (SELECT CID FROM #TEMP_T)
--Friend
DELETE dbo.Friend WHERE UID IN (SELECT CID FROM #TEMP_T)
--Quest
DELETE dbo.Quest WHERE UID IN (SELECT CID FROM #TEMP_T)
--TblCharDelHistory
DELETE dbo.TblCharDelHistory WHERE intCID IN (SELECT CID FROM #TEMP_T)
--TblGuildMember
DELETE dbo.TblGuildMember WHERE nCID IN (SELECT CID FROM #TEMP_T)
--UserInfo
DELETE dbo.UserInfo_1 WHERE UID IN (SELECT UID FROM MARS162.Unite.dbo.Temp_DeleteUser WHERE ServerID = @NUM)
DELETE dbo.UserInfo_2 WHERE UID IN (SELECT UID FROM MARS162.Unite.dbo.Temp_DeleteUser WHERE ServerID = @NUM)
DELETE dbo.UserInfo_3 WHERE UID IN (SELECT UID FROM MARS162.Unite.dbo.Temp_DeleteUser WHERE ServerID = @NUM)
DELETE dbo.UserInfo_4 WHERE UID IN (SELECT UID FROM MARS162.Unite.dbo.Temp_DeleteUser WHERE ServerID = @NUM)
DROP TABLE #TEMP_T
GO
/**********************************************
*
* TblCharDelHistory 용 테이블 임시보관용
*
**********************************************/
select *, 1 as OldServerGroupID into dbo.TblCharDelHistory_Old from HAN916.solphistia.dbo.TblCharDelHistory
insert into dbo.TblCharDelHistory_Old
select *, 2 as OldServerGroupID from HAN516.karterant.dbo.TblCharDelHistory
insert into dbo.TblCharDelHistory_Old
select *, 3 as OldServerGroupID from HAN430.testia.dbo.TblCharDelHistory
insert into dbo.TblCharDelHistory_Old
select *, 4 as OldServerGroupID from MARS161.highland.dbo.TblCharDelHistory
insert into dbo.TblCharDelHistory_Old
select *, 5 as OldServerGroupID from MARS189.aldia.dbo.TblCharDelHistory
insert into dbo.TblCharDelHistory_Old
select *, 6 as OldServerGroupID from unite.dbo.TblCharDelHistory

View File

@@ -0,0 +1,127 @@
-- Å×¼· DB±¸Á¶º¯°æÇϱâ
INSERT INTO AdminList
SELECT * FROM Test.dbo.AdminList
INSERT INTO CharInfo
SELECT * FROM Test.dbo.CharInfo
INSERT INTO CharInfo_Time
SELECT * FROM Test.dbo.CharInfo_Time
INSERT INTO CharInfoEx (CID,Total,ServerID,Config)
SELECT * FROM Test.dbo.CharInfoEx
INSERT INTO CharItem
SELECT * FROM Test.dbo.CharItem
INSERT INTO CharItemEx
SELECT * FROM Test.dbo.CharItemEx
INSERT INTO CharPos
SELECT * FROM Test.dbo.CharPos
INSERT INTO CharSkill
SELECT * FROM Test.dbo.CharSkill
INSERT INTO Friend
SELECT * FROM Test.dbo.Friend
INSERT INTO ItemUID
SELECT * FROM Test.dbo.ItemUID
GO
SET IDENTITY_INSERT PartyInfo ON
INSERT INTO PartyInfo (PID,Party)
SELECT * FROM Test.dbo.PartyInfo
SET IDENTITY_INSERT PartyInfo OFF
GO
INSERT INTO Quest
SELECT * FROM Test.dbo.Quest
GO
SET IDENTITY_INSERT TblCampInfo ON
INSERT INTO TblCampInfo(nCampID,nGuildID,nHP,tnZone,tnChannel,snObjectType,tnState,tnSubState,
tnUpgradeStep,RemainTime,LastUseTime,bRight,fPosX,fPosY,fPosZ)
SELECT nCampID,nGuildID,nHP,tnZone,tnChannel,5337,tnState,0,
tnUpgradeStep,RemainTime,LastUseTime,bRight,fPosX,fPosY,fPosZ
FROM Test.dbo.TblCampInfo
SET IDENTITY_INSERT TblCampInfo OFF
GO
INSERT INTO TblEventItem
SELECT * FROM Test.dbo.TblEventItem
GO
INSERT INTO TblCharDelHistory
SELECT intCID,intUID,dateInsertTime,dateDeleteTime,0 FROM Test.dbo.TblCharDelHistory
DECLARE @OldServerGroupID TINYINT
SET @OldServerGroupID = 22
SET IDENTITY_INSERT TblGuildInfo ON
INSERT INTO TblGuildInfo (nGuildID,strGuildName,tnGuildLevel,nGuildFame,nGuildGold,tLastLogout,tCheckMember,tGMLastLogout,
bGuildMark,bRight,tnNationType,tChangeState,OldServerGroupID)
SELECT *,@OldServerGroupID FROM Test.dbo.TblGuildInfo
SET IDENTITY_INSERT TblGuildInfo OFF
INSERT INTO TblGuildMember
SELECT * FROM Test.dbo.TblGuildMember
-- CHECK
INSERT INTO TblGuildOtherList
SELECT * FROM Test.dbo.TblGuildOtherList
INSERT INTO dbo.TblItemLog
SELECT * FROM Test.dbo.TblItemLog
INSERT INTO dbo.TblGuildRestoreData
SELECT nGuildID,strGuildName,nGuildGold,tDeleteTime,NULL,@OldServerGroupID FROM Test.dbo.TblGuildRestoreData
INSERT INTO dbo.TblUnifiedItemStore1
SELECT UID,@OldServerGroupID,Password,Frag,Gold,Store FROM Test.dbo.ItemStore1
INSERT INTO dbo.TblUnifiedItemStore2
SELECT UID,@OldServerGroupID,Store FROM Test.dbo.ItemStore2
INSERT INTO dbo.UserInfo
SELECT UID,@OldServerGroupID,Nation,0,Char1,Char2,Char3,Char4,Char5 FROM Test.dbo.UserInfo
INSERT INTO TblUnifiedCharList
SELECT UID,@OldServerGroupID,B.CID,B.CID,B.Name FROM (
SELECT UID,Char1 AS CID FROM UserInfo
UNION ALL
SELECT UID,Char2 FROM UserInfo
UNION ALL
SELECT UID,Char3 FROM UserInfo
UNION ALL
SELECT UID,Char4 FROM UserInfo
UNION ALL
SELECT UID,Char5 FROM UserInfo ) A JOIN CharInfo B on A.CID = B.CID

View File

@@ -0,0 +1,72 @@
CREATE TABLE dbo.TblIWebItemInfo
(
CreateID INT IDENTITY(1,1) PRIMARY KEY
, UID INT
, CID INT
, ItemPrototypeID SMALLINT
, Amount TINYINT
, MIN_DAMAGE TINYINT CHECK (MIN_DAMAGE IN (0,1,2,3,4,5,6))
, MAX_DAMAGE TINYINT CHECK (MAX_DAMAGE IN (0,1,2,3,4,5,6))
, ARMOR TINYINT CHECK (ARMOR IN (0,1,2,3,4,5,6))
, HIT_RATE TINYINT CHECK (HIT_RATE IN (0,1,2,3,4,5,6))
, EVADE TINYINT CHECK (EVADE IN (0,1,2,3,4,5,6))
, MAX_HP TINYINT CHECK (MAX_HP IN (0,1,2,3,4,5,6))
, HP_REGEN TINYINT CHECK (HP_REGEN IN (0,1,2,3,4,5,6))
, MAX_MP TINYINT CHECK (MAX_MP IN (0,1,2,3,4,5,6))
, MP_REGEN TINYINT CHECK (MP_REGEN IN (0,1,2,3,4,5,6))
, CRITICAL TINYINT CHECK (CRITICAL IN (0,1,2,3,4,5,6))
, BLOCK TINYINT CHECK (BLOCK IN (0,1,2,3,4,5,6))
, SPEED TINYINT CHECK (SPEED IN (0,1,2,3,4,5,6))
, MAGIC_POWER TINYINT CHECK (MAGIC_POWER IN (0,1,2,3,4,5,6))
, MAGIC_RESIST TINYINT CHECK (MAGIC_RESIST IN (0,1,2,3,4,5,6))
, ItemUID BIGINT NOT NULL DEFAULT(0)
)
GO
CREATE INDEX IDX_TblIWebItemInfo_U_CID ON dbo.TblIWebItemInfo (UID,CID)
GO
CREATE INDEX IDX_TblIWebItemInfo_ItemUID ON dbo.TblIWebItemInfo (ItemUID)
GO
CREATE Proc dbo.GetUserCharInfo_Web @UID INT
AS
SET NOCOUNT ON
-- ID / CID / / / / /
DECLARE @TblReports TABLE
(
OldServerGroupID INT
, CID INT
)
INSERT INTO @TblReports
SELECT OldServerGroupID,Char1 FROM UserInfo WHERE UID = @UID and Char1 > 0
INSERT INTO @TblReports
SELECT OldServerGroupID,Char2 FROM UserInfo WHERE UID = @UID and Char2 > 0
INSERT INTO @TblReports
SELECT OldServerGroupID,Char3 FROM UserInfo WHERE UID = @UID and Char3 > 0
INSERT INTO @TblReports
SELECT OldServerGroupID,Char4 FROM UserInfo WHERE UID = @UID and Char4> 0
INSERT INTO @TblReports
SELECT OldServerGroupID,Char5 FROM UserInfo WHERE UID = @UID and Char5 > 0
SELECT OldServerGroupID,A.CID,Name,Class,Level,Fame,Mileage
FROM @TblReports A JOIN CharInfo B ON A.CID = B.CID
ORDER BY OldServerGroupID
GO

View File

@@ -0,0 +1,102 @@
CREATE PROC procTransferGameData @OldDBName VARCHAR(20),@NewDBName VARCHAR(20),@OldServerGroupID TINYINT,@NewServerGroupID TINYINT
AS
SET NOCOUNT ON
DECLARE @String NVARCHAR(4000)
SET @String =
'INSERT INTO ' + @NewDBName + '.dbo.AdminList ' +
'SELECT * FROM ' + @OldDBName + '.dbo.AdminList ' +
'INSERT INTO ' + @NewDBName + '.dbo.CharInfo ' +
'SELECT * FROM ' + @OldDBName + '.dbo.CharInfo ' +
'INSERT INTO ' + @NewDBName + '.dbo.CharInfoEx (CID,Total,ServerID,Config) ' +
'SELECT * FROM ' + @OldDBName + '.dbo.CharInfoEx ' +
'INSERT INTO ' + @NewDBName + '.dbo.CharItem ' +
'SELECT * FROM ' + @OldDBName + '.dbo.CharItem ' +
'INSERT INTO ' + @NewDBName + '.dbo.CharItemEx (CID,Exchange) ' +
'SELECT * FROM ' + @OldDBName + '.dbo.CharItemEx ' +
'INSERT INTO ' + @NewDBName + '.dbo.CharPos ' +
'SELECT * FROM ' + @OldDBName + '.dbo.CharPos ' +
'INSERT INTO ' + @NewDBName + '.dbo.CharSkill ' +
'SELECT * FROM ' + @OldDBName + '.dbo.CharSkill ' +
'INSERT INTO ' + @NewDBName + '.dbo.Friend ' +
'SELECT * FROM ' + @OldDBName + '.dbo.Friend ' +
'INSERT INTO ' + @NewDBName + '.dbo.ItemUID ' +
'SELECT * FROM ' + @OldDBName + '.dbo.ItemUID ' +
'INSERT INTO ' + @NewDBName + '.dbo.Quest ' +
'SELECT * FROM ' + @OldDBName + '.dbo.Quest ' +
'SET IDENTITY_INSERT ' + @NewDBName + '.dbo.PartyInfo ON ' +
'INSERT INTO ' + @NewDBName + '.dbo.PartyInfo (PID,Party) ' +
'SELECT * FROM ' + @OldDBName + '.dbo.PartyInfo ' +
'SET IDENTITY_INSERT ' + @NewDBName + '.dbo.PartyInfo OFF ' +
'INSERT INTO ' + @NewDBName + '.dbo. TblEventItem ' +
'SELECT * FROM ' + @OldDBName + '.dbo.TblEventItem ' +
'INSERT INTO ' + @NewDBName + '.dbo.TblCharDelHistory ' +
'SELECT intCID,intUID,dateInsertTime,dateDeleteTime,@NewServerGroupID,@OldServerGroupID FROM ' + @OldDBName + '.dbo.TblCharDelHistory ' +
'SET IDENTITY_INSERT ' + @NewDBName + '.dbo.TblGuildInfo ON ' +
'INSERT INTO ' + @NewDBName + '.dbo.TblGuildInfo (nGuildID,strGuildName,tnGuildLevel,nGuildFame,nGuildGold,tLastLogout,tCheckMember,tGMLastLogout, ' +
'bGuildMark,bRight,tnNationType,tChangeState,OldServerGroupID) ' +
'SELECT *,@OldServerGroupID FROM ' + @OldDBName + '.dbo.TblGuildInfo ' +
'SET IDENTITY_INSERT ' + @NewDBName + '.dbo.TblGuildInfo OFF ' +
'INSERT INTO ' + @NewDBName + '.dbo.TblGuildMember ' +
'SELECT * FROM ' + @OldDBName + '.dbo.TblGuildMember ' +
'INSERT INTO ' + @NewDBName + '.dbo.TblGuildRestoreData ' +
'SELECT nGuildID,strGuildName,nGuildGold,tDeleteTime,NULL,@OldServerGroupID FROM ' + @OldDBName + '.dbo.TblGuildRestoreData ' +
'INSERT INTO ' + @NewDBName + '.dbo.TblUnifiedItemStore1 ' +
'SELECT UID,@OldServerGroupID,Password,Frag,Gold,Store FROM ' + @OldDBName + '.dbo.ItemStore1 ' +
'INSERT INTO ' + @NewDBName + '.dbo.TblUnifiedItemStore2 ' +
'SELECT UID,@OldServerGroupID,Store FROM ' + @OldDBName + '.dbo.ItemStore2 ' +
'INSERT INTO ' + @NewDBName + '.dbo.UserInfo ' +
'SELECT UID,@OldServerGroupID,0,Char1,Char2,Char3,0,0 FROM ' + @OldDBName + '.dbo.UserInfo ' +
'INSERT INTO ' + @NewDBName + '.dbo.TblUnifiedCharList ' +
'SELECT UID,@OldServerGroupID,B.CID,B.CID,B.Name FROM ( ' +
'SELECT UID,Char1 AS CID FROM ' + @NewDBName + '.dbo.UserInfo ' +
'UNION ALL ' +
'SELECT UID,Char2 FROM ' + @NewDBName + '.dbo.UserInfo ' +
'UNION ALL ' +
'SELECT UID,Char3 FROM ' + @NewDBName + '.dbo.UserInfo ) A JOIN ' + @NewDBName + '.dbo.CharInfo B on A.CID = B.CID ' +
'INSERT INTO ' + @NewDBName + '.dbo.UserFirstLoginInfo (UID) ' +
'SELECT DISTINCT UID FROM ' + @NewDBName + '.dbo.UserInfo '
EXEC sp_executesql @String,N'@OldServerGroupID TINYINT,@NewServerGroupID TINYINT',@OldServerGroupID,@NewServerGroupID
GO
EXEC procTransferGameData
@OldDBName= ,
@NewDBName = ,
@OldServerGroupID = ,
@NewServerGroupID =
GO

View File

@@ -0,0 +1,180 @@
CREATE TABLE [DelCharInfo_1] (
[UID] [int] NOT NULL ,
[Name] [varchar] (16) COLLATE Korean_Wansung_CI_AS NULL ,
[Sex] [tinyint] NULL ,
[Hair] [tinyint] NULL ,
[Face] [tinyint] NULL ,
[Nationality] [tinyint] NULL ,
[Class] [smallint] NULL ,
[Fame] [int] NULL ,
[Mileage] [int] NULL ,
[Guild] [int] NULL ,
[Party] [int] NULL ,
[Level] [tinyint] NULL ,
[Equip] [binary] (30) NULL ,
[Gold] [int] NULL ,
[IP] [smallint] NULL ,
[STR] [smallint] NULL ,
[DEX] [smallint] NULL ,
[CON] [smallint] NULL ,
[Intell] [smallint] NULL ,
[WIS] [smallint] NULL ,
[HP] [smallint] NULL ,
[MP] [smallint] NULL ,
[Exp] [bigint] NULL ,
[Chance] [tinyint] NULL
) ON [PRIMARY]
GO
CREATE TABLE [DelCharInfo_2] (
[UID] [int] NOT NULL ,
[Name] [varchar] (16) COLLATE Korean_Wansung_CI_AS NULL ,
[Sex] [tinyint] NULL ,
[Hair] [tinyint] NULL ,
[Face] [tinyint] NULL ,
[Nationality] [tinyint] NULL ,
[Class] [smallint] NULL ,
[Fame] [int] NULL ,
[Mileage] [int] NULL ,
[Guild] [int] NULL ,
[Party] [int] NULL ,
[Level] [tinyint] NULL ,
[Equip] [binary] (30) NULL ,
[Gold] [int] NULL ,
[IP] [smallint] NULL ,
[STR] [smallint] NULL ,
[DEX] [smallint] NULL ,
[CON] [smallint] NULL ,
[Intell] [smallint] NULL ,
[WIS] [smallint] NULL ,
[HP] [smallint] NULL ,
[MP] [smallint] NULL ,
[Exp] [bigint] NULL ,
[Chance] [tinyint] NULL
) ON [PRIMARY]
GO
CREATE TABLE [DelCharInfo_3] (
[UID] [int] NOT NULL ,
[Name] [varchar] (16) COLLATE Korean_Wansung_CI_AS NULL ,
[Sex] [tinyint] NULL ,
[Hair] [tinyint] NULL ,
[Face] [tinyint] NULL ,
[Nationality] [tinyint] NULL ,
[Class] [smallint] NULL ,
[Fame] [int] NULL ,
[Mileage] [int] NULL ,
[Guild] [int] NULL ,
[Party] [int] NULL ,
[Level] [tinyint] NULL ,
[Equip] [binary] (30) NULL ,
[Gold] [int] NULL ,
[IP] [smallint] NULL ,
[STR] [smallint] NULL ,
[DEX] [smallint] NULL ,
[CON] [smallint] NULL ,
[Intell] [smallint] NULL ,
[WIS] [smallint] NULL ,
[HP] [smallint] NULL ,
[MP] [smallint] NULL ,
[Exp] [bigint] NULL ,
[Chance] [tinyint] NULL
) ON [PRIMARY]
GO
CREATE TABLE [DelCharInfo_4] (
[UID] [int] NOT NULL ,
[Name] [varchar] (16) COLLATE Korean_Wansung_CI_AS NULL ,
[Sex] [tinyint] NULL ,
[Hair] [tinyint] NULL ,
[Face] [tinyint] NULL ,
[Nationality] [tinyint] NULL ,
[Class] [smallint] NULL ,
[Fame] [int] NULL ,
[Mileage] [int] NULL ,
[Guild] [int] NULL ,
[Party] [int] NULL ,
[Level] [tinyint] NULL ,
[Equip] [binary] (30) NULL ,
[Gold] [int] NULL ,
[IP] [smallint] NULL ,
[STR] [smallint] NULL ,
[DEX] [smallint] NULL ,
[CON] [smallint] NULL ,
[Intell] [smallint] NULL ,
[WIS] [smallint] NULL ,
[HP] [smallint] NULL ,
[MP] [smallint] NULL ,
[Exp] [bigint] NULL ,
[Chance] [tinyint] NULL
) ON [PRIMARY]
GO
CREATE TABLE [DelCharInfo_Time] (
[CID] [int] NOT NULL ,
[CreateTime] [smalldatetime] NULL ,
[UpdateTime] [smalldatetime] NULL
) ON [PRIMARY]
GO
CREATE TABLE [DelCharItem] (
[UID] [int] NOT NULL ,
[Quick] [binary] (40) NULL ,
[Equip] [binary] (1440) NULL ,
[Inventory] [binary] (5120) NULL ,
[Extra] [binary] (512) NULL
) ON [PRIMARY]
GO
CREATE TABLE [DelCharItemEx] (
[UID] [int] NOT NULL ,
[Exchange] [binary] (1284) NULL
) ON [PRIMARY]
GO
CREATE TABLE [DelCharSkill_1] (
[UID] [int] NOT NULL ,
[Skill] [binary] (84) NULL
) ON [PRIMARY]
GO
CREATE TABLE [DelCharSkill_2] (
[UID] [int] NOT NULL ,
[Skill] [binary] (84) NULL
) ON [PRIMARY]
GO
CREATE TABLE [DelCharSkill_3] (
[UID] [int] NOT NULL ,
[Skill] [binary] (84) NULL
) ON [PRIMARY]
GO
CREATE TABLE [DelCharSkill_4] (
[UID] [int] NOT NULL ,
[Skill] [binary] (84) NULL
) ON [PRIMARY]
GO
CREATE TABLE [TblCharDelHistory_LOG] (
[intCID] [int] NULL ,
[intUID] [int] NULL ,
[dateInsertTime] [smalldatetime] NULL ,
[dateDeleteTime] [smalldatetime] NULL
) ON [PRIMARY]
GO

Some files were not shown because too many files have changed in this diff Show More