/************************************************ * * PART 2 * * Ãß°¡ÀÛ¾÷ - 2005-01-06 pm 4:00 : UserFirstLoginInfo Å×ÀÌºí¿¡ TransferCharCount - 2005-01-11 pm 4:50 : TblUnifiedItemStore1_TransferLOG TblUnifiedItemStore2_TransferLOG ·Î±×Å×À̺í Ãß°¡ TransferStore ÇÁ·Î½ÃÁ® º¯°æ - 2005-01-12 pm 3:30 : USPCampCreate ÇÁ·Î½ÃÁ® º¯°æ - @snObjectType ÀÎÀÚ Ãß°¡ - 2005-01-17 : USPCampCreate ÇÁ·Î½ÃÁ® º¯°æ - @snObjectType ÀÎÀÚ ¼ø¼­¼öÁ¤ *************************************************/ 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 CREATE TABLE dbo.UserFirstLoginInfo ( UID INT NOT NULL PRIMARY KEY , FirstLogin TINYINT , TransferCharCount TINYINT DEFAULT(0) ) GO CREATE TABLE [TblUnifiedItemStore1] ( [UID] [int] NOT NULL , [OldServerGroupID] [tinyint] NOT NULL , [Password] [char] (5) NULL default('0000'), [Frag] [int] NULL , [Gold] [int] NULL , [Store] [varbinary] (7300) NULL, CONSTRAINT PK_TblUnifiedItemStore1_UID_SERID PRIMARY KEY (UID,OldServerGroupID) ) ON [PRIMARY] GO CREATE TABLE [TblUnifiedItemStore2] ( [UID] [int] NOT NULL , [OldServerGroupID] [tinyint] NOT NULL , [Store] [varbinary] (7300) NULL , CONSTRAINT PK_TblUnifiedItemStore2_UID_SERID PRIMARY KEY (UID,OldServerGroupID) ) ON [PRIMARY] GO CREATE TABLE [TblUnifiedCharList] ( [UID] [int] NOT NULL , [OldServerGroupID] [tinyint] NOT NULL , [BeforeCID] [int] NOT NULL , [NewCID] [int] NOT NULL PRIMARY KEY, [BeforeCharName] [varchar] (20) NOT NULL ) ON [PRIMARY] GO CREATE INDEX Idx_TblUnifiedCharList_U_Old ON [TblUnifiedCharList] (UID,OldServerGroupID) GO CREATE TABLE [dbo].[AdminList] ( [UID] [int] NOT NULL , [Level] [smallint] NULL , [IP_S] [varchar] (16) NULL , [IP_E] [varchar] (16) NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[CharInfo] ( [CID] [int] NOT NULL , [Name] [varchar] (16) NULL UNIQUE, [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] [varbinary] (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].[CharInfoEx] ( [CID] [int] NOT NULL , [Total] [int] NULL , [ServerID] [int] NULL , [Config] [varbinary] (50) NULL ) ON [PRIMARY] GO ALTER TABLE dbo.[CharInfoEx] ADD NameChangeCount TINYINT GO CREATE TABLE [dbo].[CharInfo_Time] ( [CID] [int] NOT NULL , [CreateTime] [smalldatetime] NULL , [UpdateTime] [smalldatetime] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[CharItem] ( [CID] [int] NOT NULL , [Quick] [varbinary] (100) NULL , [Equip] [varbinary] (1440) NULL , [Inventory] [varbinary] (5120) NULL , [Extra] [varbinary] (512) NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[CharItemEx] ( [CID] [int] NOT NULL , [Exchange] [varbinary] (1284) NULL , [TempInven] [varbinary] (1440) NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[CharPos] ( [CID] [int] NOT NULL , [LastPointX] [real] NULL , [LastPointY] [real] NULL , [LastPointZ] [real] NULL , [SavePointX] [real] NULL , [SavePointY] [real] NULL , [SavePointZ] [real] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[CharSkill] ( [CID] [int] NOT NULL , [Skill] [varbinary] (84) NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[Friend] ( [CID] [int] NOT NULL , [Friend] [varbinary] (2404) NULL , [Ban] [varbinary] (2004) NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[ItemUID] ( [Server] [int] NOT NULL , [Item] [bigint] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[PartyInfo] ( [PID] [int] IDENTITY (1, 1) NOT NULL , [Party] [varbinary] (200) NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[Quest] ( [CID] [int] NOT NULL , [Quest] [varbinary] (134) NULL , [History] [varbinary] (204) NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[TblCampInfo] ( [nCampID] [int] IDENTITY (1, 1) NOT NULL , [nGuildID] [int] NULL , [nHP] [int] NULL , [tnZone] [tinyint] NULL , [tnChannel] [tinyint] NULL , [snObjectType] [smallint] NULL , [tnState] [tinyint] NULL , [tnSubState] [tinyint] NULL , [tnUpgradeStep] [tinyint] NULL , [RemainTime] [smalldatetime] NULL , [LastUseTime] [smalldatetime] NULL , [bRight] [varbinary] (10) NULL , [fPosX] [real] NULL , [fPosY] [real] NULL , [fPosZ] [real] NULL ) ON [PRIMARY] GO CREATE TABLE dbo.TblCampMineralInfo ( nCampID INT , snMineralID SMALLINT , snAmount SMALLINT , tnFlag TINYINT ) GO CREATE INDEX IDX_TblCampMineralInfo_nCampID ON dbo.TblCampMineralInfo(nCampID) GO CREATE TABLE dbo.TblFertilityInfo ( nVeinColor int , nFertility int , tnZone TINYINT , tnChannel TINYINT ) GO CREATE TABLE [dbo].[TblCastleCreatureInfo] ( [nCreatureID] [int] IDENTITY (1, 1) NOT NULL , [nCastleID] [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 , [fPosX] [real] NULL , [fPosY] [real] NULL , [fPosZ] [real] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[TblCastleInfo] ( [nCastleID] [int] IDENTITY (1, 1) NOT NULL , [nGuildID] [int] NULL , [snTax] [smallint] NULL , [nTaxMoney] [int] NULL , [tnZone] [tinyint] NULL , [tnTaxIncomeRemainDay] [tinyint] NULL , [tnInvincibleDay] [tinyint] NULL , [LastSiegeTime] [smalldatetime] NULL , [bRight] [varbinary] (10) NULL , [strCastleName] [varchar] (50) NULL , [fPosInX] [real] NULL , [fPosInY] [real] NULL , [fPosInZ] [real] NULL , [fPosOutX] [real] NULL , [fPosOutY] [real] NULL , [fPosOutZ] [real] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[TblCharDelHistory] ( [intCID] [int] NOT NULL , [intUID] [int] NOT NULL , [dateInsertTime] [smalldatetime] NOT NULL , [dateDeleteTime] [smalldatetime] NOT NULL , [NewServerGroupID] TINYINT, [OldServerGroupID] TINYINT ) ON [PRIMARY] GO CREATE TABLE [dbo].[TblEventItem] ( [nItemIndex] [int] NULL , [nItemAmount] [int] NULL , [nMaxAmount] [int] NULL , [StartTime] [smalldatetime] NULL , [EndTime] [smalldatetime] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[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 , [tLastLogout] [smalldatetime] NOT NULL , [tCheckMember] [smalldatetime] NOT NULL , [tGMLastLogout] [smalldatetime] NULL , [bGuildMark] [varbinary] (433) NULL , [bRight] [varbinary] (50) NULL , [tnNationType] [tinyint] NULL , [tChangeState] [smalldatetime] NULL , [OldServerGroupID] TINYINT NULL --ADD ) ON [PRIMARY] GO CREATE TABLE [dbo].[TblGuildMember] ( [nGuildID] [int] NOT NULL , [nCID] [int] NOT NULL , [nPosition] [int] NOT NULL , [nPositionInGuild] [int] NULL , [tLeaveGuildTime] [smalldatetime] NULL , [nCampID] [int] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[TblGuildOtherList] ( [nGuildID] [int] NOT NULL , [nOtherGuildID] [int] NOT NULL , [tnRelation] [tinyint] NOT NULL , [tnState] [tinyint] NOT NULL , [waitTime] [smalldatetime] NOT NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[TblGuildRestoreData] ( [nGuildID] [int] NULL , [strGuildName] [varchar] (20) NULL , [nGuildGold] [int] NULL , [tDeleteTime] [smalldatetime] NULL , [nGuildMCID] int NULL , [OldServerGroupID] tinyint ) ON [PRIMARY] GO CREATE TABLE [dbo].[TblItemLog] ( [InsertTime] [datetime] NULL , [UpdateTime] [datetime] NULL , [UID] [int] NULL , [CID] [int] NULL , [ItemSerial] [bigint] NULL , [CharName] [varchar] (20) NULL , [Qty] [int] NULL , [CheckField] [bit] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[UserInfo] ( [UID] [int] NOT NULL , [OldServerGroupID] [tinyint] NOT NULL, [Nation] [tinyint] NOT NULL DEFAULT(0) , [Char1] [int] NULL , [Char2] [int] NULL , [Char3] [int] NULL , [Char4] [int] NULL , [Char5] [int] NULL ) ON [PRIMARY] GO ALTER TABLE [dbo].[AdminList] WITH NOCHECK ADD PRIMARY KEY CLUSTERED ( [UID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[CharInfo] WITH NOCHECK ADD CONSTRAINT [PK__CharInfo_7A8729A3] PRIMARY KEY CLUSTERED ( [CID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[CharInfoEx] WITH NOCHECK ADD PRIMARY KEY CLUSTERED ( [CID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[CharInfo_Time] WITH NOCHECK ADD PRIMARY KEY CLUSTERED ( [CID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[CharItem] WITH NOCHECK ADD PRIMARY KEY CLUSTERED ( [CID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[CharItemEx] WITH NOCHECK ADD PRIMARY KEY CLUSTERED ( [CID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[CharPos] WITH NOCHECK ADD PRIMARY KEY CLUSTERED ( [CID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[CharSkill] WITH NOCHECK ADD PRIMARY KEY CLUSTERED ( [CID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[Friend] WITH NOCHECK ADD PRIMARY KEY CLUSTERED ( [CID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[ItemUID] WITH NOCHECK ADD PRIMARY KEY CLUSTERED ( [Server] ) ON [PRIMARY] GO ALTER TABLE [dbo].[PartyInfo] WITH NOCHECK ADD PRIMARY KEY CLUSTERED ( [PID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[Quest] WITH NOCHECK ADD PRIMARY KEY CLUSTERED ( [CID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[TblCampInfo] WITH NOCHECK ADD PRIMARY KEY CLUSTERED ( [nCampID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[TblCastleCreatureInfo] WITH NOCHECK ADD PRIMARY KEY CLUSTERED ( [nCreatureID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[TblCharDelHistory] WITH NOCHECK ADD PRIMARY KEY CLUSTERED ( [intCID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[TblGuildInfo] WITH NOCHECK ADD PRIMARY KEY CLUSTERED ( [nGuildID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[TblGuildMember] WITH NOCHECK ADD CONSTRAINT [PK_GuildMember_Guildid_nCid] PRIMARY KEY CLUSTERED ( [nGuildID], [nCID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[TblGuildOtherList] WITH NOCHECK ADD CONSTRAINT [PK_TblGuildOtherList_1] PRIMARY KEY CLUSTERED ( [nGuildID], [nOtherGuildID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[UserInfo] WITH NOCHECK ADD PRIMARY KEY CLUSTERED ( [UID],[OldServerGroupID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[AdminList] ADD CONSTRAINT [DF__AdminList__Level__150615B5] DEFAULT (0) FOR [Level] GO ALTER TABLE [dbo].[CharInfo] ADD CONSTRAINT [DF__CharInfo_1__Sex__7C6F7215] DEFAULT (0) FOR [Sex], CONSTRAINT [DF__CharInfo_1__Hair__7D63964E] DEFAULT (0) FOR [Hair], CONSTRAINT [DF__CharInfo_1__Face__7E57BA87] DEFAULT (0) FOR [Face], CONSTRAINT [DF__CharInfo___race__7F4BDEC0] DEFAULT (0) FOR [Race], CONSTRAINT [DF__CharInfo___Class__004002F9] DEFAULT (1) FOR [Class], CONSTRAINT [DF__CharInfo___Merit__01342732] DEFAULT (0) FOR [Fame], CONSTRAINT [DF__CharInfo_1__Fame__02284B6B] DEFAULT (0) FOR [Mileage], CONSTRAINT [DF__CharInfo___Guild__031C6FA4] DEFAULT (0) FOR [Guild], CONSTRAINT [DF__CharInfo___Party__041093DD] DEFAULT (0) FOR [Party], CONSTRAINT [DF__CharInfo___Level__0504B816] DEFAULT (1) FOR [Level], CONSTRAINT [DF__CharInfo_1__IP__05F8DC4F] DEFAULT (0) FOR [IP], CONSTRAINT [DF__CharInfo_1__STR__06ED0088] DEFAULT (0) FOR [STR], CONSTRAINT [DF__CharInfo_1__DEX__07E124C1] DEFAULT (0) FOR [DEX], CONSTRAINT [DF__CharInfo_1__CON__08D548FA] DEFAULT (0) FOR [CON], CONSTRAINT [DF__CharInfo___Intel__09C96D33] DEFAULT (0) FOR [Intell], CONSTRAINT [DF__CharInfo_1__WIS__0ABD916C] DEFAULT (0) FOR [WIS], CONSTRAINT [DF__CharInfo_1__HP__0BB1B5A5] DEFAULT (0) FOR [HP], CONSTRAINT [DF__CharInfo_1__MP__0CA5D9DE] DEFAULT (0) FOR [MP], CONSTRAINT [DF__CharInfo_1__Exp__0D99FE17] DEFAULT (0) FOR [Exp], CONSTRAINT [DF__CharInfo___Chanc__7CF981FA] DEFAULT (0) FOR [Chance] GO ALTER TABLE [dbo].[CharInfoEx] ADD CONSTRAINT [DF__CharInfoE__Total__5CC1BC92] DEFAULT (0) FOR [Total], CONSTRAINT [DF__CharInfoE__Serve__5DB5E0CB] DEFAULT (0) FOR [ServerID] GO ALTER TABLE [dbo].[ItemUID] ADD CONSTRAINT [DF__ItemUID__Item__70C8B53F] DEFAULT (0) FOR [Item] GO ALTER TABLE [dbo].[TblCharDelHistory] ADD CONSTRAINT [DF__TblCharDe__dateI__0C3BC58A] DEFAULT (getdate()) FOR [dateInsertTime] GO ALTER TABLE [dbo].[TblGuildInfo] ADD CONSTRAINT [DF__TblGuildI__nGuil__13DCE752] DEFAULT (0) FOR [nGuildGold], CONSTRAINT [DF__TblGuildI__tLast__14D10B8B] DEFAULT ('2010.12.31') FOR [tLastLogout], CONSTRAINT [DF__TblGuildI__tChec__15C52FC4] DEFAULT (getdate()) FOR [tCheckMember], CONSTRAINT [DF__TblGuildI__tGMLa__16B953FD] DEFAULT ('2010.12.31') FOR [tGMLastLogout], CONSTRAINT [uk_TblGuildInfo_strGuildName] UNIQUE NONCLUSTERED ( [strGuildName] ) ON [PRIMARY] , CHECK ([strGuildName] <> null) GO ALTER TABLE [dbo].[TblGuildMember] ADD CONSTRAINT [DF__TblGuildM__nCamp__36470DEF] DEFAULT (0) FOR [nCampID] GO ALTER TABLE [dbo].[TblGuildOtherList] ADD CHECK ([tnRelation] = 0 or [tnRelation] = 1 or [tnRelation] = 2) GO ALTER TABLE [dbo].[TblItemLog] ADD CONSTRAINT [DF__TblItemLo__Inser__4A4E069C] DEFAULT (getdate()) FOR [InsertTime], CONSTRAINT [DF__TblItemLo__Updat__4B422AD5] DEFAULT (getdate()) FOR [UpdateTime], CONSTRAINT [DF__TblItemLo__Check__4D2A7347] DEFAULT (0) FOR [CheckField], CHECK ([Qty] > 0) GO CREATE INDEX [nidx_TblItemLog_UidCidItemSerial] ON [dbo].[TblItemLog]([UID], [CID], [ItemSerial]) ON [PRIMARY] GO ALTER TABLE [dbo].[Quest] ADD CONSTRAINT [FK_Quest_CharInfo] FOREIGN KEY ( [CID] ) REFERENCES [dbo].[CharInfo] ( [CID] ) GO ALTER TABLE [dbo].[CharSkill] ADD CONSTRAINT [FK_CharSkill_CharInfo] FOREIGN KEY ( [CID] ) REFERENCES [dbo].[CharInfo] ( [CID] ) GO ALTER TABLE [dbo].[CharPos] ADD CONSTRAINT [FK_CharPos_CharInfo] FOREIGN KEY ( [CID] ) REFERENCES [dbo].[CharInfo] ( [CID] ) GO ALTER TABLE [dbo].[CharInfoEx] ADD CONSTRAINT [FK_CharInfoEx_CharInfo] FOREIGN KEY ( [CID] ) REFERENCES [dbo].[CharInfo] ( [CID] ) GO ALTER TABLE [dbo].[CharItem] ADD CONSTRAINT [FK_CharItem_CharInfo] FOREIGN KEY ( [CID] ) REFERENCES [dbo].[CharInfo] ( [CID] ) GO ALTER TABLE [dbo].[CharInfo_Time] ADD CONSTRAINT [FK_CharInfo_Time_CharInfo] FOREIGN KEY ( [CID] ) REFERENCES [dbo].[CharInfo] ( [CID] ) GO ALTER TABLE [dbo].[CharItemEx] ADD CONSTRAINT [FK_CharItemEx_CharInfo] FOREIGN KEY ( [CID] ) REFERENCES [dbo].[CharInfo] ( [CID] ) GO ALTER TABLE [dbo].[Friend] ADD CONSTRAINT [FK_Friend_CharInfo] FOREIGN KEY ( [CID] ) REFERENCES [dbo].[CharInfo] ( [CID] ) GO ALTER TABLE [dbo].[TblGuildMember] ADD CONSTRAINT [FK_TblGuildInfo_TblGuildMember] FOREIGN KEY ( [nGuildID] ) REFERENCES [dbo].[TblGuildInfo] ( [nGuildID] ) ON DELETE CASCADE GO ALTER TABLE [dbo].[TblGuildOtherList] ADD CONSTRAINT [FK_TblGuildInfo_TblGuildOtherList] FOREIGN KEY ( [nGuildID] ) REFERENCES [dbo].[TblGuildInfo] ( [nGuildID] ) ON DELETE CASCADE GO ---------------------------------------------------------------------------------------------------------------------- -- UpdateCharUID.sql ---------------------------------------------------------------------------------------------------------------------- /* À¯Àú Á¤º¸ Å×À̺í ij¸¯ÅÍ ¾ÆÀ̵ð ¾÷µ¥ÀÌÆ® ÇÁ·Î½ÃÁ® */ CREATE PROCEDURE dbo.UpdateCharUID @user_uid AS INT, /* À¯Àú °íÀ¯ ¾ÆÀ̵ð */ @user_pos AS INT, /* ij¸¯ÅÍ À§Ä¡ (3°³ÀÇ ½½·Ô) */ @char_uid AS INT , /* ij¸¯ÅÍ °íÀ¯ ¾ÆÀ̵ð */ @UserInfoType TINYINT AS SET NOCOUNT ON IF @user_pos = 0 UPDATE UserInfo SET Char1 = @char_uid WHERE UID = @user_uid AND OldServerGroupID = @UserInfoType ELSE IF @user_pos = 1 UPDATE UserInfo SET Char2 = @char_uid WHERE UID = @user_uid AND OldServerGroupID = @UserInfoType ELSE IF @user_pos = 2 UPDATE UserInfo SET Char3 = @char_uid WHERE UID = @user_uid AND OldServerGroupID = @UserInfoType ELSE IF @user_pos = 3 UPDATE UserInfo SET Char4 = @char_uid WHERE UID = @user_uid AND OldServerGroupID = @UserInfoType ELSE IF @user_pos = 4 UPDATE UserInfo SET Char5 = @char_uid WHERE UID = @user_uid AND OldServerGroupID = @UserInfoType GO ---------------------------------------------------------------------------------------------------------------------- -- DeleteAdmin.sql ---------------------------------------------------------------------------------------------------------------------- /* ¿î¿µÀÚ »èÁ¦ ÇÁ·Î½ÃÁ® */ CREATE PROCEDURE dbo.DeleteAdmin @UID AS INT /* À¯Àú °íÀ¯ ¾ÆÀ̵ð */ AS SET NOCOUNT ON DELETE FROM AdminList WHERE UID = @UID GO CREATE PROC DeleteChar @user_uid INT,@user_pos INT,@CID INT,@NewServerGroupID TINYINT,@UserInfoType TINYINT AS SET NOCOUNT ON DECLARE @ColumnIndex INT DECLARE @QUERY NVARCHAR(1000) IF @user_pos = 0 SET @ColumnIndex = 1 ELSE IF @user_pos = 1 SET @ColumnIndex = 2 ELSE IF @user_pos = 2 SET @ColumnIndex = 3 ELSE IF @user_pos = 3 SET @ColumnIndex = 4 ELSE IF @user_pos = 4 SET @ColumnIndex = 5 SET @QUERY = 'Begin Tran' + ' UPDATE UserInfo SET Char' + CAST(@ColumnIndex AS CHAR(1)) + ' = 0 WHERE UID = @User_Uid AND OldServerGroupID = @UserInfoType' + ' IF @@ROWCOUNT <> 1' + ' BEGIN' + ' ROLLBACK TRAN' + ' RETURN' + ' END' + ' DELETE TblUnifiedCharList WHERE UID = @User_Uid AND NewCID = @CID ' + ' INSERT INTO TblCharDelHistory (intCID,intUID,dateDeleteTime,NewServerGroupID,OldServerGroupID)' + ' VALUES (@CID,@User_Uid,GETDATE() + 90,@NewServerGroupID,@UserInfoType)' + ' IF @@ROWCOUNT <> 1' + ' BEGIN' + ' ROLLBACK TRAN' + ' RETURN' + ' END' + ' COMMIT TRAN' + ' RETURN' Exec sp_executesql @QUERY,N'@User_Uid int,@CID int,@NewServerGroupID TINYINT,@UserInfoType TINYINT', @user_uid,@CID,@NewServerGroupID,@UserInfoType GO ---------------------------------------------------------------------------------------------------------------------- -- DeleteCharEx.sql ---------------------------------------------------------------------------------------------------------------------- /* ij¸¯ÅÍ »èÁ¦ */ CREATE PROCEDURE dbo.DeleteCharEx @Char_uid AS INT,@NewServerGroupID TINYINT,@UserInfoType TINYINT AS DECLARE @UserID INT, @CharSlot INT SELECT @UserID = UID, @CharSlot = Char1 FROM UserInfo WHERE Char1 = @Char_uid AND OldServerGroupID = @UserInfoType IF @UserID IS NOT NULL BEGIN EXEC DeleteChar @UserID, 0, @Char_uid ,@NewServerGroupID , @UserInfoType RETURN END SELECT @UserID = UID, @CharSlot = Char2 FROM UserInfo WHERE Char2 = @Char_uid AND OldServerGroupID = @UserInfoType IF @UserID IS NOT NULL BEGIN EXEC DeleteChar @UserID, 1, @Char_uid,@NewServerGroupID , @UserInfoType RETURN END SELECT @UserID = UID, @CharSlot = Char3 FROM UserInfo WHERE Char3 = @Char_uid AND OldServerGroupID = @UserInfoType IF @UserID IS NOT NULL BEGIN EXEC DeleteChar @UserID, 2, @Char_uid,@NewServerGroupID , @UserInfoType RETURN END SELECT @UserID = UID, @CharSlot = Char4 FROM UserInfo WHERE Char4 = @Char_uid AND OldServerGroupID = @UserInfoType IF @UserID IS NOT NULL BEGIN EXEC DeleteChar @UserID, 3, @Char_uid,@NewServerGroupID , @UserInfoType RETURN END SELECT @UserID = UID, @CharSlot = Char5 FROM UserInfo WHERE Char5 = @Char_uid AND OldServerGroupID = @UserInfoType IF @UserID IS NOT NULL BEGIN EXEC DeleteChar @UserID, 4, @Char_uid,@NewServerGroupID , @UserInfoType RETURN END GO ---------------------------------------------------------------------------------------------------------------------- -- DeleteCharInfo.sql ---------------------------------------------------------------------------------------------------------------------- /* À¯Àú Á¤º¸ »èÁ¦ ÇÁ·Î½ÃÁ® */ CREATE PROCEDURE dbo.DeleteCharInfo @char_uid AS INT,@NewServerGroupID TINYINT AS SET NOCOUNT ON DELETE FROM CharInfoEx WHERE CID = @char_uid --INSERT BEFORE CHARINFO DELETED INSERT INTO CharDelHistory.dbo.DelCharItem SELECT @NewServerGroupID,* FROM CharItem WHERE CID = @char_uid DELETE FROM CharItem WHERE CID = @char_uid INSERT INTO CharDelHistory.dbo.DelCharItemEx SELECT @NewServerGroupID,* FROM CharItemEx WHERE CID = @char_uid DELETE FROM CharItemEx WHERE CID = @char_uid INSERT INTO CharDelHistory.dbo.DelCharSkill SELECT @NewServerGroupID,* FROM CharSkill WHERE CID = @char_uid DELETE FROM CharSkill WHERE CID = @char_uid DELETE FROM CharPos WHERE CID = @char_uid DELETE FROM CharInfo_Time WHERE CID = @char_uid DELETE FROM Friend WHERE CID = @char_uid DELETE FROM Quest WHERE CID = @char_uid --INSERT BEFORE CHARINFO DELETED INSERT INTO CharDelHistory.dbo.DelCharInfo SELECT @NewServerGroupID,* FROM CharInfo WHERE CID = @char_uid DELETE FROM CharInfo WHERE CID = @char_uid GO ---------------------------------------------------------------------------------------------------------------------- -- DeleteParty.sql ---------------------------------------------------------------------------------------------------------------------- /* ÆÄƼ Á¦°Å ÇÁ·Î½ÃÁ® */ CREATE PROCEDURE dbo.DeleteParty @Party_uid AS INT /* ÆÄƼ ¾ÆÀ̵ð */ AS SET NOCOUNT ON DELETE FROM PartyInfo WHERE PID = @Party_uid GO ---------------------------------------------------------------------------------------------------------------------- -- DeleteUser.sql ---------------------------------------------------------------------------------------------------------------------- /* À¯Àú »èÁ¦ ÇÁ·Î½ÃÁ® ( DeleteCharInfo Á¤ÀÇ µÇ¾î ÀÖ¾î¾ß ÇÔ. ) */ CREATE PROCEDURE dbo.DeleteUser @UID INT , @NewServerGroupID TINYINT , @UserInfoType TINYINT AS SET NOCOUNT ON -- in korea = @NewServerGroupID = 0 -- in china = @NewServerGroupID = { 1 , 3 , 4 .....} DECLARE @Char1 AS INT, @Char2 AS INT, @Char3 AS INT,@Char4 INT,@Char5 INT /* ij¸¯ÅÍ »èÁ¦ */ SELECT @Char1 = Char1, @Char2 = Char2, @Char3 = Char3,@Char4 =Char4,@Char5 = Char5 FROM UserInfo WHERE UID = @UID AND OldServerGroupID = @UserInfoType IF(@Char1 <> 0) BEGIN EXEC DeleteCharInfo @Char1,@NewServerGroupID END IF(@Char2 <> 0) BEGIN EXEC DeleteCharInfo @Char2,@NewServerGroupID END IF(@Char3 <> 0) BEGIN EXEC DeleteCharInfo @Char3,@NewServerGroupID END IF(@Char4 <> 0) BEGIN EXEC DeleteCharInfo @Char4,@NewServerGroupID END IF(@Char5 <> 0) BEGIN EXEC DeleteCharInfo @Char5,@NewServerGroupID END DELETE FROM UserInfo WHERE UID = @UID AND OldServerGroupID = @UserInfoType DELETE FROM TblUnifiedItemStore1 WHERE UID = @UID DELETE FROM TblUnifiedItemStore2 WHERE UID = @UID GO ---------------------------------------------------------------------------------------------------------------------- -- FoundSlot.sql ---------------------------------------------------------------------------------------------------------------------- /* ½½·Ô ã±â */ CREATE PROCEDURE dbo.FoundSlot @Char_uid AS INT /* ij¸¯ÅÍ °íÀ¯ ¾ÆÀ̵ð */ AS DECLARE @UserID INT SELECT @UserID = UID FROM UserInfo WHERE Char1 = @Char_uid IF @UserID IS NOT NULL BEGIN SELECT @UserID, 0 RETURN END SELECT @UserID = UID FROM UserInfo WHERE Char2 = @Char_uid IF @UserID IS NOT NULL BEGIN SELECT @UserID, 1 RETURN END SELECT @UserID = UID FROM UserInfo WHERE Char3 = @Char_uid IF @UserID IS NOT NULL BEGIN SELECT @UserID, 2 RETURN END SELECT @UserID = UID FROM UserInfo WHERE Char4 = @Char_uid IF @UserID IS NOT NULL BEGIN SELECT @UserID, 3 RETURN END SELECT @UserID = UID FROM UserInfo WHERE Char5 = @Char_uid IF @UserID IS NOT NULL BEGIN SELECT @UserID, 4 RETURN END GO -- ADD Equip column CREATE PROCEDURE dbo.GetCharInfo @CID AS INT AS SET NOCOUNT ON SELECT CID, Name, Sex, Hair, Face, Race, Class, Fame, Mileage, Guild, Party, Level, Gold, IP, STR, DEX, CON, Intell, WIS, HP, MP, Exp , Chance,Equip FROM CharInfo WHERE CID = @CID GO ---------------------------------------------------------------------------------------------------------------------- -- GetCharItem.sql ---------------------------------------------------------------------------------------------------------------------- /* ij¸¯ÅÍ ¾ÆÀÌÅÛ Á¤º¸ ¾ò±â ÇÁ·Î½ÃÁ® */ CREATE PROCEDURE dbo.GetCharItem @CID AS INT /* ij¸¯ÅÍ °íÀ¯ ¾ÆÀ̵ð */ AS SET NOCOUNT ON SELECT Quick, Equip, Inventory FROM CharItem WHERE CID = @CID GO ---------------------------------------------------------------------------------------------------------------------- -- GetCharPos.sql ---------------------------------------------------------------------------------------------------------------------- /* ij¸¯ÅÍ À§Ä¡ Á¤º¸ ¾ò±â ÇÁ·Î½ÃÁ® */ CREATE PROCEDURE dbo.GetCharPos @CID AS INT /* ij¸¯ÅÍ °íÀ¯ ¾ÆÀ̵ð */ AS SET NOCOUNT ON SELECT LastPointX, LastPointY, LastPointZ, SavePointX, SavePointY, SavePointZ FROM CharPos WHERE CID = @CID GO ---------------------------------------------------------------------------------------------------------------------- -- GetCharSkill.sql ---------------------------------------------------------------------------------------------------------------------- /* ½ºÅ³ Á¤º¸ º¸±â ÇÁ·Î½ÃÁ® */ CREATE PROCEDURE dbo.GetCharSkill @CID AS INT /* ij¸¯ÅÍ ¾ÆÀ̵ð */ AS SET NOCOUNT ON SELECT Skill FROM CharSkill WHERE CID = @CID GO /* ij¸¯ÅÍ º¸±â ¾ò±â ÇÁ·Î½ÃÁ® º¯°æ */ CREATE PROCEDURE dbo.GetCharView @CID AS INT /* ij¸¯ÅÍ °íÀ¯ ¾ÆÀ̵ð */ AS SET NOCOUNT ON SELECT CID, Name, Sex, Hair, Face, Race, Class, Fame, Mileage, Guild, Party, Level, Equip FROM CharInfo WHERE CID = @CID GO /******************* CREATE PROCEDURE dbo.GetItemStore @UID AS INT AS SET NOCOUNT ON SELECT Password, Frag, Gold FROM ItemStore1 WHERE UID = @UID *********************/ GO ---------------------------------------------------------------------------------------------------------------------- -- GetPartyInfo.sql ---------------------------------------------------------------------------------------------------------------------- /* ÆÄƼ Á¤º¸ º¸±â ÇÁ·Î½ÃÁ® */ CREATE PROCEDURE dbo.GetPartyInfo @Party_uid AS INT /* ÆÄƼ ¾ÆÀ̵ð */ AS SET NOCOUNT ON SELECT Party FROM PartyInfo WHERE PID = @Party_uid GO CREATE Proc GetUIDCIDFromName @Name varchar(16) as Declare @CID int set @CID = 0 Declare @UID int set @UID = 0 Select @CID = CID from CharInfo where Name = @Name if @CID = 0 Begin Select 0, 0 Return End Select @UID = UID from UserInfo where Char1 = @CID or Char2 = @CID or Char3 = @CID or Char4 = @CID or Char5 = @CID if @UID = 0 Begin Select 0, @CID Return End select @UID, @CID GO ---------------------------------------------------------------------------------------------------------------------- -- GetUserInfo.sql ---------------------------------------------------------------------------------------------------------------------- /* À¯Àú Á¤º¸ ¾ò±â ÇÁ·Î½ÃÁ® */ CREATE PROCEDURE dbo.GetUserInfo @UID AS INT,@OldServerGroupID TINYINT AS SET NOCOUNT ON SELECT Char1, Char2, Char3 ,Char4 , Char5 , Nation , OldServerGroupID ,FirstLogin FROM UserInfo A JOIN UserFirstLoginInfo B ON A.UID = B.UID WHERE A.UID = @UID AND OldServerGroupID = @OldServerGroupID GO ---------------------------------------------------------------------------------------------------------------------- -- InsertAdmin.sql ---------------------------------------------------------------------------------------------------------------------- /* ¾îµå¹Î Ãß°¡ ÇÁ·Î½ÃÁ® */ CREATE PROCEDURE dbo.InsertAdmin @UID INT /* »ç¿ëÀÚ ¾ÆÀ̵ð */ AS SET NOCOUNT ON DECLARE @Div INT INSERT INTO AdminList (UID) VALUES (@UID) GO CREATE PROCEDURE dbo.InsertChar @user_uid AS INT, /* À¯Àú °íÀ¯ ¾ÆÀ̵ð */ @user_pos AS INT, /* ij¸¯ÅÍ À§Ä¡ (3°³ÀÇ ½½·Ô) */ @user_name AS VARCHAR(16), /* ij¸¯ÅÍ À̸§ */ @user_Sex AS TINYINT, /* ij¸¯ÅÍ ¼º */ @user_Hair AS TINYINT, /* ij¸¯ÅÍ ¸Ó¸® ¸ð¾ç */ @user_Face AS TINYINT, /* ij¸¯ÅÍ ¾ó±¼ ¸ð¾ç */ @user_Nation AS TINYINT, /* ij¸¯ÅÍ ±¹°¡ */ @user_Class AS SMALLINT, /* ij¸¯ÅÍ Å¬·¡½º */ @C_Gold AS INT, /* ij¸¯ÅÍ ¼ÒÁö±Ý */ @C_STR AS SMALLINT, /* ij¸¯ÅÍ STR */ @C_DEX AS SMALLINT, /* ij¸¯ÅÍ DEX */ @C_CON AS SMALLINT, /* ij¸¯ÅÍ CON */ @C_INT AS SMALLINT, /* ij¸¯ÅÍ INT */ @C_WIS AS SMALLINT, /* ij¸¯ÅÍ WIS */ @PointX AS REAL, /* ij¸¯ÅÍ Point X ÁÂÇ¥ */ @PointY AS REAL, /* ij¸¯ÅÍ Point Y ÁÂÇ¥ */ @PointZ AS REAL, /* ij¸¯ÅÍ 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 /* ij¸¯ÅÍ À̸§ È®ÀÎ */ 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 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 ---------------------------------------------------------------------------------------------------------------------- -- InsertParty.sql ---------------------------------------------------------------------------------------------------------------------- /* ÆÄƼ Ãß°¡ ÇÁ·Î½ÃÁ® */ CREATE PROCEDURE dbo.InsertParty @Party AS varBINARY(202) /* Ä£±¸ ¸®½ºÆ® */ AS SET NOCOUNT ON INSERT INTO PartyInfo (Party) VALUES (@Party) /* °íÀ¯ ¾ÆÀ̵𠵹·ÁÁÜ */ SELECT CAST(SCOPE_IDENTITY() AS INT) GO ---------------------------------------------------------------------------------------------------------------------- -- InsertUser.sql ---------------------------------------------------------------------------------------------------------------------- /* À¯Àú Ãß°¡ ÇÁ·Î½ÃÁ® */ CREATE PROCEDURE dbo.InsertUser @UID INT,@UserInfoType TINYINT AS SET NOCOUNT ON BEGIN TRAN INSERT INTO UserInfo (UID,OldServerGroupID) VALUES (@UID,@UserInfoType) IF NOT EXISTS (SELECT * FROM UserFirstLoginInfo WHERE UID = @UID) INSERT INTO UserFirstLoginInfo(UID) VALUES (@UID) INSERT TblUnifiedItemStore1(UID,OldServerGroupID,Frag) VALUES (@UID,@UserInfoType,1) INSERT TblUnifiedItemStore2(UID,OldServerGroupID) VALUES (@UID,@UserInfoType) COMMIT TRAN GO /********************************************** -- º¹¿øÇÁ·Î½ÃÁ® CREATE PROC RestoreCharInfo @user_uid INT,@CID INT,@user_name VARCHAR(20),@NewServerGroupID TINYINT,@UserInfoType TINYINT = 0 AS DECLARE @UID INT DECLARE @C_HP INT, @C_MP INT -- ij¸¯ÅÍ À̸§ È®ÀÎ SELECT @UID = CID FROM CharInfo WHERE Name = @user_name IF @UID <> 0 BEGIN SELECT -1 -- µ¿ÀÏ À̸§ Á¸Àç RETURN END -- ½½·Ô È®ÀÎ DECLARE @user_pos INT DECLARE @CharSlot1 INT SET @CharSlot1 = 0 DECLARE @CharSlot2 INT SET @CharSlot2 = 0 DECLARE @CharSlot3 INT SET @CharSlot3 = 0 DECLARE @CharSlot4 INT SET @CharSlot4 = 0 DECLARE @CharSlot5 INT SET @CharSlot5 = 0 SELECT @CharSlot1 = Char1,@CharSlot2=Char2,@CharSlot3=Char3,@CharSlot4=Char4,@CharSlot5=Char5 FROM UserInfo WHERE UID = @user_uid AND OldServerGroupID = @UserInfoType IF @CharSlot1 = 0 SET @user_pos = 0 ELSE IF @CharSlot2 = 0 SET @user_pos = 1 ELSE IF @CharSlot3 = 0 SET @user_pos = 2 ELSE IF @CharSlot4 = 0 SET @user_pos = 3 ELSE IF @CharSlot5 = 0 SET @user_pos = 4 ELSE BEGIN SELECT -2 -- ½½·ÔÀÌ Â÷ÀÖÀ½ RETURN END INSERT INTO CharInfo (UID,Name,Sex,Hair,Face,Nationality,Class,Fame,Mileage,Guild,Party,Level,Equip,Gold,IP,STR,DEX,CON,Intell,WIS,HP,MP,Exp,Chance) SELECT UID,Name,Sex,Hair,Face,Race,Class,Fame,Mileage,Guild,Party,Level,Equip,Gold,IP,STR,DEX,CON,Intell,WIS,HP,MP,Exp,Chance FROM CharDelHistory.dbo.DelCharInfo WHERE UID = @CID and NewServerGroupID = @NewServerGroupID IF @@ERROR <> 0 BEGIN SELECT -100 RETURN END DELETE CharDelHistory.dbo.DelCharInfo WHERE UID = @CID and NewServerGroupID = @NewServerGroupID INSERT INTO CharSkill (UID, Skill) SELECT UID,Skill FROM CharDelHistory.dbo.DelCharSkill WHERE UID = @CID and NewServerGroupID = @NewServerGroupID DELETE CharDelHistory.dbo.DelCharSkill WHERE UID = @CID and NewServerGroupID = @NewServerGroupID INSERT INTO CharPos (UID, LastPointX, LastPointY, LastPointZ, SavePointX, SavePointY, SavePointZ) VALUES (@CID, 0, 0, 0, 0, 0, 0) INSERT INTO CharInfoEx (UID) VALUES (@CID) INSERT INTO CharItem SELECT UID,Quick,Equip,Inventory,Extra FROM CharDelHistory.dbo.DelCharItem WHERE UID = @CID and NewServerGroupID = @NewServerGroupID DELETE CharDelHistory.dbo.DelCharItem WHERE UID = @CID and NewServerGroupID = @NewServerGroupID INSERT INTO CharItemEx (UID,Exchange) SELECT UID,Exchange FROM CharDelHistory.dbo.DelCharItemEx WHERE UID = @CID and NewServerGroupID = @NewServerGroupID DELETE CharDelHistory.dbo.DelCharItemEx WHERE UID = @CID and NewServerGroupID = @NewServerGroupID INSERT INTO Friend (UID) VALUES (@CID) INSERT INTO Quest (UID) VALUES (@CID) INSERT INTO CharInfo_Time(CID,CreateTime,UpdateTime) VALUES (@CID,GETDATE(),GETDATE()) -- À¯Àú Á¤º¸ Å×ÀÌºí ¾÷µ¥ÀÌÆ® --EXEC UpdateCharUID @user_uid, @user_pos, @CID exec UpdateCharUID @user_uid, @user_pos, @UID , @NewServerGroupID select 0 as success *******************************************************/ GO CREATE 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 CREATE PROC USPCampDelete @CampID INT AS SET NOCOUNT ON DECLARE @RETURN INT DELETE TblCampInfo WHERE nCampID = @CampID SET @RETURN = @@ROWCOUNT SELECT @RETURN 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 -- ±æµå Á÷À§º¯°æ CREATE PROC USPGuildChangePos @GuildID INT,@CID INT,@BeforePos INT,@AfterPos INT AS SET NOCOUNT ON DECLARE @RETURN INT SET @RETURN = 0 IF (@BeforePos < @AfterPos) -- °­µî... (1±æµå¸¶½ºÅÍ --> 7 ÀϹÝȸ¿ø) BEGIN BEGIN TRAN UPDATE TblGuildMember SET nPositionInGuild = @AfterPos WHERE nGuildID = @GuildID AND nCID = @CID AND nPositionInGuild = @BeforePos IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN SET @RETURN = 1 SELECT @RETURN RETURN END UPDATE TblGuildMember SET nPositionInGuild = nPositionInGuild - 1 WHERE nGuildID = @GuildID AND nCID <> @CID AND nPositionInGuild BETWEEN @BeforePos AND @AfterPos IF @@ERROR <> 0 BEGIN ROLLBACK TRAN SET @RETURN = 1 SELECT @RETURN RETURN END COMMIT TRAN END ELSE IF (@BeforePos > @AfterPos) -- »ó½Â... (8 --> 1 ±æµå¸¶½ºÅÍ) BEGIN BEGIN TRAN UPDATE TblGuildMember SET nPositionInGuild = @AfterPos WHERE nGuildID = @GuildID AND nCID = @CID AND nPositionInGuild = @BeforePos IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN SET @RETURN = 1 SELECT @RETURN RETURN END UPDATE TblGuildMember SET nPositionInGuild = nPositionInGuild + 1 WHERE nGuildID = @GuildID AND nCID <> @CID AND nPositionInGuild BETWEEN @AfterPos AND @BeforePos IF @@ERROR <> 0 BEGIN ROLLBACK TRAN SET @RETURN = 1 SELECT @RETURN RETURN END COMMIT TRAN END SELECT @RETURN RETURN GO -- ±æµå »ý¼º Çϱâ CREATE PROC USPGuildCreate @GuildName VARCHAR(20),@tnNationType TINYINT,@GuildLevel Tinyint,@GuildFame INT,@bRight varBINARY(50), @OldServerGroupID TINYINT AS SET NOCOUNT ON -- ±âº»±æµåÁ¤º¸¿¡ °ªÀ» ÀÔ·ÂÇϱâ. DECLARE @RETURN INT DECLARE @GuildID INT SET @RETURN = 0 SET @GuildID = 0 IF EXISTS (SELECT strGuildName FROM dbo.TblGuildInfo WHERE strGuildName = @GuildName) BEGIN SET @RETURN = 2 SELECT @RETURN,@GuildID-- Áߺ¹µÈ ±æµå¸íÀÔ´Ï´Ù. RETURN END ELSE BEGIN BEGIN TRAN INSERT INTO TblGuildInfo (strGuildName,tnGuildLevel,nGuildFame,bRight,tnNationType,OldServerGroupID) VALUES (@GuildName,@GuildLevel,@GuildFame,@bRight,@tnNationType,@OldServerGroupID) IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN SET @RETURN = 1 SELECT @RETURN,@GuildID RETURN END COMMIT TRAN -- ÀÌ¹Ì ÀÔ·ÂµÈ ±æµåÀÇ ¾ÆÀ̵𸦠¾ò¾î¿Â´Ù. SELECT @GuildID = nGuildID FROM TblGuildInfo WHERE strGuildName = @GuildName SELECT @RETURN,@GuildID -- SUCCESS END GO CREATE PROC USPGuildDelete @GuildID INT AS SET NOCOUNT ON INSERT INTO TblGuildRestoreData (nGuildID,strGuildName,nGuildGold,tDeleteTime,nGuildMCID,OldServerGroupID) SELECT TOP 1 a.nGuildID,a.strGuildName,a.nGuildGold,Getdate(),nCID,OldServerGroupID FROM TblGuildInfo a Left OUTER JOIN TblGuildMember c ON a.nGuildID = c.nGuildID WHERE a.nGuildID = @GuildID ORDER BY c.nPositionInGuild ASC DECLARE @ROWID INT DECLARE @CID INT DECLARE @TEMPTABLE TABLE ( ROWID INT IDENTITY(1,1) , CID INT ) INSERT INTO @TEMPTABLE (CID) SELECT nCID FROM TblGuildMember WHERE nGuildID = @GuildID SET @ROWID = @@ROWCOUNT WHILE @ROWID > 0 BEGIN SELECT @CID=CID FROM @TEMPTABLE WHERE ROWID = @ROWID UPDATE CharInfo SET Guild = 0 WHERE CID = @CID SET @ROWID = @ROWID - 1 END DELETE TblGuildInfo WHERE nGuildID = @GuildID IF @@ERROR <> 0 SELECT 1 -- ERROR ELSE SELECT 0 -- SUCCESS GO CREATE PROC USPGuildGiveMemberGold @GuildID INT,@Gold INT AS SET NOCOUNT ON DECLARE @Position INT UPDATE CharInfo SET Gold = Gold + @Gold FROM TblGuildMember a,Charinfo b WHERE a.nCID = b.CID AND a.nGuildID = @GuildID AND a.nPosition < 5 GO -- GUILD MEMBER ÀÔ·Â CREATE PROC USPGuildMemberInsert @GuildID INT,@CID INT,@Position INT,@PositionInGuild INT AS SET NOCOUNT ON DECLARE @RETURN INT SET @RETURN = 0 BEGIN TRAN INSERT INTO TblGuildMember (nGuildID,nCID,nPosition,nPositionInGuild) VALUES (@GuildID,@CID,@Position,@PositionInGuild) IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN SET @RETURN = 1 SELECT @RETURN RETURN END UPDATE CharInfo SET Guild = @GuildID WHERE CID = @CID IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN SET @RETURN = 1 SELECT @RETURN RETURN END COMMIT TRAN SELECT @RETURN RETURN GO --±æµåÅ»Åð.... CREATE PROC USPGuildMemberOut @GuildID INT,@CID INT,@Pos INT AS SET NOCOUNT ON DECLARE @RETURN INT SET @RETURN = 0 -- member »èÁ¦... BEGIN TRAN DELETE TblGuildMember WHERE nGuildID = @GuildID AND nCID = @CID IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN SET @RETURN = 1 SELECT @RETURN RETURN END -- ¼­¿­¼øÀ§ UPDATE TblGuildMember SET nPositionInGuild = nPositionInGuild - 1 WHERE nGuildID = @GuildID AND nPositionInGuild > @Pos IF @@ERROR <> 0 BEGIN ROLLBACK TRAN SET @RETURN = 1 SELECT @RETURN RETURN END UPDATE CharInfo SET Guild = 0 WHERE CID = @CID IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN SET @RETURN = 1 SELECT @RETURN RETURN END COMMIT TRAN SELECT @RETURN RETURN 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 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 ---------------------------------------------------------------------------------------------------------------------- -- UpdateCharEquip.sql ---------------------------------------------------------------------------------------------------------------------- /* ij¸¯ÅÍ Á¤º¸ º¯°æ ÇÁ·Î½ÃÁ® */ CREATE PROCEDURE dbo.UpdateCharEquip @char_uid AS INT, /* ij¸¯ÅÍ °íÀ¯ ¾ÆÀ̵ð */ @C_Equip AS varBINARY(30) /* Àåºñ (2 * 15 = 30) */ AS SET NOCOUNT ON UPDATE CharInfo SET Equip = @C_Equip WHERE CID = @char_uid GO ---------------------------------------------------------------------------------------------------------------------- -- UpdateCharInfo.sql ---------------------------------------------------------------------------------------------------------------------- /* ij¸¯ÅÍ Á¤º¸ º¯°æ ÇÁ·Î½ÃÁ® */ CREATE PROCEDURE dbo.UpdateCharInfo @char_uid AS INT, /* ij¸¯ÅÍ °íÀ¯ ¾ÆÀ̵ð */ @char_Class AS SMALLINT, /* ij¸¯ÅÍ Å¬·¡½º */ @char_Fame AS INT, /* ij¸¯ÅÍ ¸í¼º */ @char_Mileage AS INT, /* ij¸¯ÅÍ ¸¶Àϸ®Áö */ @char_Level AS TINYINT, /* ij¸¯ÅÍ ·¹º§ */ @char_Gold AS INT, /* µ· */ @char_IP AS SMALLINT, /* ij¸¯ÅÍ Áõ°¡ Æ÷ÀÎÆ® */ @char_STR AS SMALLINT, /* ij¸¯ÅÍ STR */ @char_DEX AS SMALLINT, /* ij¸¯ÅÍ DEX */ @char_CON AS SMALLINT, /* ij¸¯ÅÍ CON */ @char_INT AS SMALLINT, /* ij¸¯ÅÍ INT */ @char_WIS AS SMALLINT, /* ij¸¯ÅÍ WIS */ @char_HP AS SMALLINT, /* ij¸¯ÅÍ HP */ @char_MP AS SMALLINT, /* ij¸¯ÅÍ MP */ @char_Exp AS BIGINT, /* ij¸¯ÅÍ °æÇèÁ¡ */ @char_Chance AS TINYINT, /* ij¸¯ÅÍ Ã¦½º */ @char_Equip AS varBINARY(30) /* Àåºñ (2 * 15 = 30) */ AS SET NOCOUNT ON UPDATE CharInfo SET Class = @char_Class, Fame = @char_Fame, Mileage = @char_Mileage, Level = @char_Level, Equip = @char_Equip, Gold = @char_Gold, IP = @char_IP, STR = @char_STR, DEX = @char_DEX, CON = @char_CON, Intell = @char_INT, WIS = @char_WIS, HP = @char_HP, MP = @char_MP, Exp = @char_Exp, Chance = @char_Chance WHERE CID = @char_uid IF EXISTS (SELECT CID FROM CharInfo_Time WHERE CID = @char_uid) BEGIN UPDATE CharInfo_Time SET UpdateTime = GETDATE() WHERE CID = @char_uid END ELSE BEGIN INSERT INTO CharInfo_Time(CID,CreateTime,UpdateTime) VALUES (@char_uid,GETDATE(),GETDATE()) END GO ---------------------------------------------------------------------------------------------------------------------- -- UpdateCharItemQuick.sql ---------------------------------------------------------------------------------------------------------------------- /* ij¸¯ÅÍ Á¤º¸ º¯°æ ÇÁ·Î½ÃÁ® */ CREATE PROCEDURE dbo.UpdateCharItemQuick @char_uid AS INT, /* ij¸¯ÅÍ °íÀ¯ ¾ÆÀ̵ð */ @C_Quick AS varBINARY(100) /* Àåºñ (2 * 15 = 30) */ AS SET NOCOUNT ON UPDATE CharItem SET Quick = @C_Quick WHERE CID = @char_uid GO ---------------------------------------------------------------------------------------------------------------------- -- UpdateCharParty.sql ---------------------------------------------------------------------------------------------------------------------- /* ij¸¯ÅÍ ÆÄƼ °ü°è ¾÷µ¥ÀÌÆ® */ CREATE PROCEDURE dbo.UpdateCharParty @CID AS INT, /* ij¸¯ÅÍ °íÀ¯ ¾ÆÀ̵ð */ @Party AS INT /* ÆÄƼ */ AS SET NOCOUNT ON UPDATE CharInfo SET Party = @Party WHERE CID = @CID GO ---------------------------------------------------------------------------------------------------------------------- -- UpdateCharPos.sql ---------------------------------------------------------------------------------------------------------------------- /* ij¸¯ÅÍ À§Ä¡ Á¤º¸ ¾÷µ¥ÀÌÆ® ÇÁ·Î½ÃÁ® */ CREATE PROCEDURE dbo.UpdateCharPos @CID AS INT, /* ij¸¯ÅÍ °íÀ¯ ¾ÆÀ̵ð */ @LastPointX AS REAL, /* ij¸¯ÅÍ Last Point X ÁÂÇ¥ */ @LastPointY AS REAL, /* ij¸¯ÅÍ Last Point Y ÁÂÇ¥ */ @LastPointZ AS REAL, /* ij¸¯ÅÍ Last Point Z ÁÂÇ¥ */ @SavePointX AS REAL, /* ij¸¯ÅÍ Last Point X ÁÂÇ¥ */ @SavePointY AS REAL, /* ij¸¯ÅÍ Last Point Y ÁÂÇ¥ */ @SavePointZ AS REAL /* ij¸¯ÅÍ Last Point Z ÁÂÇ¥ */ AS SET NOCOUNT ON UPDATE CharPos SET LastPointX = @LastPointX, LastPointY = @LastPointY, LastPointZ = @LastPointZ, SavePointX = @SavePointX, SavePointY = @SavePointY, SavePointZ = @SavePointZ WHERE CID = @CID GO ---------------------------------------------------------------------------------------------------------------------- -- UpdateCharSkill.sql ---------------------------------------------------------------------------------------------------------------------- /* ½ºÅ³ ¾÷µ¥ÀÌÆ® */ CREATE PROCEDURE dbo.UpdateCharSkill @CID AS INT, /* »ç¿ëÀÚ ¾ÆÀ̵ð */ @Skill AS varBINARY(84) /* ½ºÅ³ ½½·Ô */ AS SET NOCOUNT ON UPDATE CharSkill SET Skill = @Skill WHERE CID = @CID GO ---------------------------------------------------------------------------------------------------------------------- -- UpdatePartyInfo.sql ---------------------------------------------------------------------------------------------------------------------- /* ÆÄƼ ¸É¹ö Ãß°¡ ÇÁ·Î½ÃÁ® */ CREATE PROCEDURE dbo.UpdatePartyInfo @Party_uid AS INT, /* ÆÄƼ °íÀ¯ ¾ÆÀ̵ð */ @Party AS varBINARY(202) /* Ä£±¸ ¸®½ºÆ® */ AS SET NOCOUNT ON UPDATE PartyInfo SET Party = @Party WHERE PID = @Party_uid GO ---------------------------------------------------------------------------------------------------------------------- -- UpdateUserInfo.sql ---------------------------------------------------------------------------------------------------------------------- /* À¯Àú Á¤º¸ º¯°æ ÇÁ·Î½ÃÁ® */ CREATE PROCEDURE dbo.UpdateUserInfo @user_uid AS INT, @UserInfoType TINYINT, @nation TINYINT, @user_char1 AS INT, @user_char2 AS INT, @user_char3 AS INT, @user_char4 AS INT, @user_char5 AS INT AS SET NOCOUNT ON BEGIN TRAN UPDATE UserInfo SET Char1 = @user_char1, Char2 = @user_char2, Char3 = @user_char3 , Char4 = @user_char4 , Char5 = @user_char5 , Nation = @nation WHERE UID = @user_uid AND OldServerGroupID = @UserInfoType COMMIT TRAN GO CREATE PROC WEB_SelectCharName @UID INT, @UserInfoType TINYINT, @CharName1 VARCHAR(20) OUTPUT,@CharName2 VARCHAR(20) OUTPUT, @CharName3 VARCHAR(20) OUTPUT,@CharName4 VARCHAR(20) OUTPUT,@CharName5 VARCHAR(20) OUTPUT AS SET NOCOUNT ON DECLARE @Char1 INT,@Char2 INT,@Char3 INT,@Char4 INT,@Char5 INT SELECT @Char1 = (CASE WHEN Char1 IS NULL THEN 0 ELSE Char1 END), @Char2 = (CASE WHEN Char2 IS NULL THEN 0 ELSE Char2 END), @Char3= (CASE WHEN Char3 IS NULL THEN 0 ELSE Char3 END), @Char4= (CASE WHEN Char4 IS NULL THEN 0 ELSE Char4 END), @Char5= (CASE WHEN Char5 IS NULL THEN 0 ELSE Char5 END) FROM UserInfo WHERE UID = @UID AND OldServerGroupID = @UserInfoType IF (@Char1 <> 0 ) SELECT @CharName1 = Name FROM CharInfo WHERE CID = @Char1 IF (@Char2 <> 0 ) SELECT @CharName2 = Name FROM CharInfo WHERE CID = @Char2 IF (@Char3 <> 0 ) SELECT @CharName3 = Name FROM CharInfo WHERE CID = @Char3 IF (@Char4 <> 0 ) SELECT @CharName4 = Name FROM CharInfo WHERE CID = @Char4 IF (@Char5 <> 0 ) SELECT @CharName5 = Name FROM CharInfo WHERE CID = @Char5 GO CREATE PROC agt_CharDelHistory AS SET NOCOUNT ON DECLARE @ROWID INT DECLARE @CID INT DECLARE @NewServerGroupID TINYINT DECLARE @GETDATE SMALLDATETIME DECLARE @Table TABLE ( ROWID INT IDENTITY(1,1) PRIMARY KEY , intCID INT , NewServerGroupID TINYINT ) SET @GETDATE = GETDATE() INSERT INTO @Table SELECT intCID,NewServerGroupID FROM TblCharDelHistory WHERE dateDeleteTime < @GETDATE SET @ROWID = @@ROWCOUNT WHILE @ROWID <> 0 BEGIN SELECT @CID = intCID,@NewServerGroupID = NewServerGroupID FROM @Table WHERE ROWID = @ROWID /* ij¸¯ÅÍ »èÁ¦ */ EXEC DeleteCharInfo @CID,@NewServerGroupID SET @ROWID = @ROWID - 1 END INSERT INTO CharDelHistory.dbo.TblCharDelHistory_LOG SELECT * FROM TblCharDelHistory WHERE dateDeleteTime < @GETDATE DELETE TblCharDelHistory WHERE dateDeleteTime < @GETDATE GO -- »õ·ÎÃß°¡µÉ ³»¿ë CREATE PROC dbo.UpdateUserInfoNation @UID INT,@Nation TINYINT,@UserInfoType TINYINT AS SET NOCOUNT ON UPDATE UserInfo SET Nation = @Nation WHERE UID = @UID AND OldServerGroupID = @UserInfoType GO CREATE PROC dbo.UpdateUserFirstLogin @UID INT,@FirstLogin TINYINT AS SET NOCOUNT ON UPDATE UserFirstLoginInfo SET FirstLogin = @FirstLogin WHERE UID = @UID GO CREATE PROC dbo.GetUnifiedCharList @UID INT AS SET NOCOUNT ON SELECT Name,BeforeCharName,NewCID,BeforeCID,Class,Level,OldServerGroupID FROM TblUnifiedCharList A JOIN CharInfo B ON A.NewCID = B.CID WHERE A.UID = @UID GO -- ¹èƲ·ÎÇÑ¿ë ij¸¯ÅÍ »èÁ¦ ½ºÅ©¸³Æ® -- ij¸¯ÅÍ 3°³·Î ¼¼ÆÃµÇ¾îÀÖÀ½. CREATE PROC DeleteChar_BattleServer @user_uid INT,@user_pos INT,@CID INT,@OldServerGroupID TINYINT,@servergroupid TINYINT AS SET NOCOUNT ON IF @user_pos = 0 BEGIN BEGIN TRAN UPDATE UserInfo SET Char1 = 0 WHERE UID = @user_uid IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END /* ij¸¯ÅÍ »èÁ¦ */ EXEC DeleteCharInfo @CID,@OldServerGroupID IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RETURN END COMMIT TRAN RETURN END ELSE IF @user_pos = 1 BEGIN BEGIN TRAN UPDATE UserInfo SET Char2 = 0 WHERE UID = @user_uid IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END /* ij¸¯ÅÍ »èÁ¦ */ EXEC DeleteCharInfo @CID,@OldServerGroupID IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RETURN END COMMIT TRAN RETURN END ELSE IF @user_pos = 2 BEGIN BEGIN TRAN UPDATE UserInfo SET Char3 = 0 WHERE UID = @user_uid IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END /* ij¸¯ÅÍ »èÁ¦ */ EXEC DeleteCharInfo @CID,@OldServerGroupID IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RETURN END COMMIT TRAN RETURN END ELSE IF @user_pos = 3 BEGIN BEGIN TRAN UPDATE UserInfo SET Char4 = 0 WHERE UID = @user_uid IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END /* ij¸¯ÅÍ »èÁ¦ */ EXEC DeleteCharInfo @CID,@OldServerGroupID IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RETURN END COMMIT TRAN RETURN END ELSE IF @user_pos = 4 BEGIN BEGIN TRAN UPDATE UserInfo SET Char5 = 0 WHERE UID = @user_uid IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END /* ij¸¯ÅÍ »èÁ¦ */ EXEC DeleteCharInfo @CID,@OldServerGroupID IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RETURN END COMMIT TRAN RETURN END GO CREATE 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 CREATE TABLE dbo.TblWebItemInfo ( CreateID INT IDENTITY(1,1) PRIMARY KEY , UID INT , CID INT , ItemPrototypeID SMALLINT , Amount TINYINT , MIN_DAMAGE TINYINT CHECK (MIN_DAMAGE IN (1,2,3,4,5,6,7)) , MAX_DAMAGE TINYINT CHECK (MAX_DAMAGE IN (1,2,3,4,5,6,7)) , ARMOR TINYINT CHECK (ARMOR IN (1,2,3,4,5,6,7)) , HIT_RATE TINYINT CHECK (HIT_RATE IN (1,2,3,4,5,6,7)) , EVADE TINYINT CHECK (EVADE IN (1,2,3,4,5,6,7)) , MAX_HP TINYINT CHECK (MAX_HP IN (1,2,3,4,5,6,7)) , HP_REGEN TINYINT CHECK (HP_REGEN IN (1,2,3,4,5,6,7)) , MAX_MP TINYINT CHECK (MAX_MP IN (1,2,3,4,5,6,7)) , MP_REGEN TINYINT CHECK (MP_REGEN IN (1,2,3,4,5,6,7)) , CRITICAL TINYINT CHECK (CRITICAL IN (1,2,3,4,5,6,7)) , BLOCK TINYINT CHECK (BLOCK IN (1,2,3,4,5,6,7)) , SPEED TINYINT CHECK (SPEED IN (1,2,3,4,5,6,7)) , MAGIC_POWER TINYINT CHECK (MAGIC_POWER IN (1,2,3,4,5,6,7)) , MAGIC_RESIST TINYINT CHECK (MAGIC_RESIST IN (1,2,3,4,5,6,7)) , ItemUID BIGINT NOT NULL DEFAULT(0) ) GO CREATE INDEX IDX_TblWebItemInfo_U_CID ON dbo.TblWebItemInfo (UID,CID) GO CREATE INDEX IDX_TblWebItemInfo_ItemUID ON dbo.TblWebItemInfo (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