CREATE PROC agt_CharDelHistory AS SET NOCOUNT ON DECLARE @ROWID INT DECLARE @CID INT DECLARE @GETDATE SMALLDATETIME DECLARE @Table TABLE ( ROWID INT IDENTITY(1,1) PRIMARY KEY , intCID INT ) SET @GETDATE = GETDATE() INSERT INTO @Table SELECT intCID FROM TblCharDelHistory WHERE DateDeleteTime < @GETDATE SET @ROWID = @@ROWCOUNT WHILE @ROWID <> 0 BEGIN SELECT @CID = intCID FROM @Table WHERE ROWID = @ROWID /* ij¸¯ÅÍ »èÁ¦ */ EXEC DeleteCharInfo @CID --INSERT INTO CIDStore (UID) VALUES (@CID) SET @ROWID = @ROWID - 1 END INSERT INTO CharDelHistory.dbo.TblCharDelHistory_LOG SELECT * FROM TblCharDelHistory WHERE DateDeleteTime < @GETDATE DELETE TblCharDelHistory WHERE DateDeleteTime < @GETDATE 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 AS SET NOCOUNT ON DECLARE @Div INT /* À¯Àú Á¤º¸ Å×ÀÌºí ¾÷µ¥ÀÌÆ® */ SET @Div = @user_uid % 4 IF @user_pos = 0 BEGIN IF @Div = 0 BEGIN BEGIN TRAN UPDATE UserInfo_1 SET Char1 = 0 WHERE UID = @user_uid IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END INSERT INTO TblCharDelHistory (intCID,intUID,dateDeleteTime) VALUES (@CID,@user_uid,GETDATE() + 30) IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END COMMIT TRAN RETURN END ELSE IF @Div = 1 BEGIN BEGIN TRAN UPDATE UserInfo_2 SET Char1 = 0 WHERE UID = @user_uid IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END INSERT INTO TblCharDelHistory (intCID,intUID,dateDeleteTime) VALUES (@CID,@user_uid,GETDATE() + 30) IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END COMMIT TRAN RETURN END ELSE IF @Div = 2 BEGIN BEGIN TRAN UPDATE UserInfo_3 SET Char1 = 0 WHERE UID = @user_uid IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END INSERT INTO TblCharDelHistory (intCID,intUID,dateDeleteTime) VALUES (@CID,@user_uid,GETDATE() + 30) IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END COMMIT TRAN RETURN END ELSE IF @Div = 3 BEGIN BEGIN TRAN UPDATE UserInfo_4 SET Char1 = 0 WHERE UID = @user_uid IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END INSERT INTO TblCharDelHistory (intCID,intUID,dateDeleteTime) VALUES (@CID,@user_uid,GETDATE() + 30) IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END COMMIT TRAN RETURN END END ELSE IF @user_pos = 1 BEGIN IF @Div = 0 BEGIN BEGIN TRAN UPDATE UserInfo_1 SET Char2 = 0 WHERE UID = @user_uid IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END INSERT INTO TblCharDelHistory (intCID,intUID,dateDeleteTime) VALUES (@CID,@user_uid,GETDATE() + 30) IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END COMMIT TRAN RETURN END ELSE IF @Div = 1 BEGIN BEGIN TRAN UPDATE UserInfo_2 SET Char2 = 0 WHERE UID = @user_uid IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END INSERT INTO TblCharDelHistory (intCID,intUID,dateDeleteTime) VALUES (@CID,@user_uid,GETDATE() + 30) IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END COMMIT TRAN RETURN END ELSE IF @Div = 2 BEGIN BEGIN TRAN UPDATE UserInfo_3 SET Char2 = 0 WHERE UID = @user_uid IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END INSERT INTO TblCharDelHistory (intCID,intUID,dateDeleteTime) VALUES (@CID,@user_uid,GETDATE() + 30) IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END COMMIT TRAN RETURN END ELSE IF @Div = 3 BEGIN BEGIN TRAN UPDATE UserInfo_4 SET Char2 = 0 WHERE UID = @user_uid IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END INSERT INTO TblCharDelHistory (intCID,intUID,dateDeleteTime) VALUES (@CID,@user_uid,GETDATE() + 30) IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END COMMIT TRAN RETURN END END ELSE IF @user_pos = 2 BEGIN IF @Div = 0 BEGIN BEGIN TRAN UPDATE UserInfo_1 SET Char3 = 0 WHERE UID = @user_uid IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END INSERT INTO TblCharDelHistory (intCID,intUID,dateDeleteTime) VALUES (@CID,@user_uid,GETDATE() + 30) IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END COMMIT TRAN RETURN END ELSE IF @Div = 1 BEGIN BEGIN TRAN UPDATE UserInfo_2 SET Char3 = 0 WHERE UID = @user_uid IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END INSERT INTO TblCharDelHistory (intCID,intUID,dateDeleteTime) VALUES (@CID,@user_uid,GETDATE() + 30) IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END COMMIT TRAN RETURN END ELSE IF @Div = 2 BEGIN BEGIN TRAN UPDATE UserInfo_3 SET Char3 = 0 WHERE UID = @user_uid IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END INSERT INTO TblCharDelHistory (intCID,intUID,dateDeleteTime) VALUES (@CID,@user_uid,GETDATE() + 30) IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END COMMIT TRAN RETURN END ELSE IF @Div = 3 BEGIN BEGIN TRAN UPDATE UserInfo_4 SET Char3 = 0 WHERE UID = @user_uid IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END INSERT INTO TblCharDelHistory (intCID,intUID,dateDeleteTime) VALUES (@CID,@user_uid,GETDATE() + 30) IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END COMMIT TRAN RETURN END END GO ---------------------------------------------------------------------------------------------------------------------- -- DeleteChar.sql ---------------------------------------------------------------------------------------------------------------------- /* ij¸¯ÅÍ »èÁ¦ ÇÁ·Î½ÃÁ® */ CREATE PROCEDURE dbo.DeleteChar_TEMP_BACKUP @user_uid AS INT, /* À¯Àú °íÀ¯ ¾ÆÀ̵ð */ @user_pos AS INT, /* ij¸¯ÅÍ À§Ä¡ (3°³ÀÇ ½½·Ô) */ @char_uid AS INT /* ij¸¯ÅÍ °íÀ¯ ¾ÆÀ̵ð */ AS SET NOCOUNT ON DECLARE @Div INT DECLARE @CID INT /* °íÀ¯ ¾ÆÀ̵𠼳Á¤ */ SELECT @CID = UID FROM CharInfo WHERE UID = @char_uid IF @CID IS NOT NULL BEGIN /* ij¸¯ÅÍ »èÁ¦ */ EXEC DeleteCharInfo @CID /* À¯Àú Á¤º¸ Å×ÀÌºí ¾÷µ¥ÀÌÆ® */ EXEC UpdateCharUID @user_uid, @user_pos, 0 INSERT INTO CIDStore (UID) VALUES (@CID) END GO ---------------------------------------------------------------------------------------------------------------------- -- DeleteCharEx.sql ---------------------------------------------------------------------------------------------------------------------- /* ij¸¯ÅÍ »èÁ¦ */ CREATE PROCEDURE dbo.DeleteCharEx @Char_uid AS INT /* ij¸¯ÅÍ °íÀ¯ ¾ÆÀ̵ð */ AS DECLARE @UserID INT, @CharSlot INT SELECT @UserID = UID, @CharSlot = Char1 FROM UserInfo WHERE Char1 = @Char_uid IF @UserID IS NOT NULL BEGIN EXEC DeleteChar @UserID, 0, @Char_uid RETURN END SELECT @UserID = UID, @CharSlot = Char2 FROM UserInfo WHERE Char2 = @Char_uid IF @UserID IS NOT NULL BEGIN EXEC DeleteChar @UserID, 1, @Char_uid RETURN END SELECT @UserID = UID, @CharSlot = Char2 FROM UserInfo WHERE Char3 = @Char_uid IF @UserID IS NOT NULL BEGIN EXEC DeleteChar @UserID, 2, @Char_uid RETURN END GO ---------------------------------------------------------------------------------------------------------------------- -- DeleteCharInfo.sql ---------------------------------------------------------------------------------------------------------------------- /* À¯Àú Á¤º¸ »èÁ¦ ÇÁ·Î½ÃÁ® */ CREATE PROCEDURE dbo.DeleteCharInfo @char_uid AS INT /* ij¸¯ÅÍ °íÀ¯ ¾ÆÀ̵ð */ AS SET NOCOUNT ON DECLARE @Div INT /* ij¸¯ÅÍ »èÁ¦ */ SET @Div = @char_uid % 4 IF @Div = 0 BEGIN --INSERT BEFORE CHARINFO DELETED INSERT INTO CharDelHistory.dbo.DelCharInfo_1 SELECT * FROM CharInfo_1 WHERE UID = @char_uid INSERT INTO CharDelHistory.dbo.DelCharSkill_1 SELECT * FROM CharSkill_1 WHERE UID = @char_uid 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 --INSERT BEFORE CHARINFO DELETED INSERT INTO CharDelHistory.dbo.DelCharInfo_2 SELECT * FROM CharInfo_2 WHERE UID = @char_uid INSERT INTO CharDelHistory.dbo.DelCharSkill_2 SELECT * FROM CharSkill_2 WHERE UID = @char_uid 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 --INSERT BEFORE CHARINFO DELETED INSERT INTO CharDelHistory.dbo.DelCharInfo_3 SELECT * FROM CharInfo_3 WHERE UID = @char_uid INSERT INTO CharDelHistory.dbo.DelCharSkill_3 SELECT * FROM CharSkill_3 WHERE UID = @char_uid 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 --INSERT BEFORE CHARINFO DELETED INSERT INTO CharDelHistory.dbo.DelCharInfo_4 SELECT * FROM CharInfo_4 WHERE UID = @char_uid INSERT INTO CharDelHistory.dbo.DelCharSkill_4 SELECT * FROM CharSkill_4 WHERE UID = @char_uid 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 --INSERT BEFORE CHARINFO DELETED INSERT INTO CharDelHistory.dbo.DelCharItem SELECT * FROM CharItem WHERE UID = @char_uid INSERT INTO CharDelHistory.dbo.DelCharItemEx SELECT * FROM CharItemEx 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 -- ½Ã°£±â·Ï»èÁ¦ INSERT INTO CharDelHistory.dbo.DelCharInfo_Time VALUES (@char_uid,GETDATE(),GETDATE()) DELETE FROM CharInfo_Time WHERE CID = @char_uid GO ---------------------------------------------------------------------------------------------------------------------- -- DeleteParty.sql ---------------------------------------------------------------------------------------------------------------------- /* ÆÄƼ Á¦°Å ÇÁ·Î½ÃÁ® */ CREATE PROCEDURE dbo.DeleteParty @Party_uid AS INT /* ÆÄƼ ¾ÆÀ̵ð */ AS SET NOCOUNT ON DECLARE @Div INT /* ÆÄƼ Ãß°¡ */ SET @Div = @Party_uid % 4 IF @Div = 0 BEGIN DELETE FROM PartyInfo_1 WHERE UID = @Party_uid END ELSE IF @Div = 1 BEGIN DELETE FROM PartyInfo_2 WHERE UID = @Party_uid END ELSE IF @Div = 2 BEGIN DELETE FROM PartyInfo_3 WHERE UID = @Party_uid END ELSE IF @Div = 3 BEGIN DELETE FROM PartyInfo_4 WHERE UID = @Party_uid END INSERT INTO PIDStore (UID) VALUES (@Party_uid) GO ---------------------------------------------------------------------------------------------------------------------- -- DeleteUser.sql ---------------------------------------------------------------------------------------------------------------------- /* À¯Àú »èÁ¦ ÇÁ·Î½ÃÁ® ( DeleteCharInfo Á¤ÀÇ µÇ¾î ÀÖ¾î¾ß ÇÔ. ) */ CREATE PROCEDURE dbo.DeleteUser @UID INT /* »ç¿ëÀÚ ¾ÆÀ̵ð */ AS SET NOCOUNT ON DECLARE @Div INT DECLARE @Char1 AS INT, @Char2 AS INT, @Char3 AS INT BEGIN TRAN /* ij¸¯ÅÍ »èÁ¦ */ SELECT @Char1 = Char1, @Char2 = Char2, @Char3 = Char3 FROM UserInfo WHERE UID = @UID IF(@Char1 <> 0) BEGIN EXEC DeleteCharInfo @Char1 END IF(@Char2 <> 0) BEGIN EXEC DeleteCharInfo @Char2 END IF(@Char3 <> 0) BEGIN EXEC DeleteCharInfo @Char3 END /* À¯Àú »èÁ¦ */ SET @Div = @UID % 4 IF @Div = 0 DELETE FROM UserInfo_1 WHERE UID = @UID ELSE IF @Div = 1 DELETE FROM UserInfo_2 WHERE UID = @UID ELSE IF @Div = 2 DELETE FROM UserInfo_3 WHERE UID = @UID ELSE IF @Div = 3 DELETE FROM UserInfo_4 WHERE UID = @UID DELETE FROM ItemStore1 WHERE UID = @UID DELETE FROM ItemStore2 WHERE UID = @UID COMMIT TRAN GO ---------------------------------------------------------------------------------------------------------------------- -- FoundSlot.sql ---------------------------------------------------------------------------------------------------------------------- /* ½½·Ô ã±â */ CREATE PROCEDURE dbo.FoundSlot @Char_uid AS INT /* ij¸¯ÅÍ °íÀ¯ ¾ÆÀ̵ð */ AS DECLARE @UserID INT, @CharSlot INT SELECT @UserID = UID, @CharSlot = Char1 FROM UserInfo WHERE Char1 = @Char_uid IF @UserID IS NOT NULL BEGIN SELECT @UserID, 0 RETURN END SELECT @UserID = UID, @CharSlot = Char2 FROM UserInfo WHERE Char2 = @Char_uid IF @UserID IS NOT NULL BEGIN SELECT @UserID, 1 RETURN END SELECT @UserID = UID, @CharSlot = Char2 FROM UserInfo WHERE Char3 = @Char_uid IF @UserID IS NOT NULL BEGIN SELECT @UserID, 2 RETURN END GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO /* ij¸¯ÅÍ Á¤º¸ ¾ò±â ÇÁ·Î½ÃÁ® Àç »ý¼º */ CREATE PROCEDURE dbo.GetCharInfo @UID AS INT /* ij¸¯ÅÍ °íÀ¯ ¾ÆÀ̵ð */ 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 FROM CharInfo WHERE UID = @UID GO ---------------------------------------------------------------------------------------------------------------------- -- GetCharInfoEx.sql ---------------------------------------------------------------------------------------------------------------------- /* ij¸¯ÅÍ Á¤º¸ ¾ò±â ÇÁ·Î½ÃÁ® */ CREATE PROCEDURE dbo.GetCharInfoEx @UID AS INT /* ij¸¯ÅÍ °íÀ¯ ¾ÆÀ̵ð */ AS SET NOCOUNT ON SELECT Total, ServerID FROM CharInfoEx WHERE UID = @UID GO ---------------------------------------------------------------------------------------------------------------------- -- GetCharItem.sql ---------------------------------------------------------------------------------------------------------------------- /* ij¸¯ÅÍ ¾ÆÀÌÅÛ Á¤º¸ ¾ò±â ÇÁ·Î½ÃÁ® */ CREATE PROCEDURE dbo.GetCharItem @UID AS INT /* ij¸¯ÅÍ °íÀ¯ ¾ÆÀ̵ð */ AS SET NOCOUNT ON SELECT Quick, Equip, Inventory FROM CharItem WHERE UID = @UID GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO ---------------------------------------------------------------------------------------------------------------------- -- GetCharPos.sql ---------------------------------------------------------------------------------------------------------------------- /* ij¸¯ÅÍ À§Ä¡ Á¤º¸ ¾ò±â ÇÁ·Î½ÃÁ® */ CREATE PROCEDURE dbo.GetCharPos @UID AS INT /* ij¸¯ÅÍ °íÀ¯ ¾ÆÀ̵ð */ AS SET NOCOUNT ON SELECT LastPointX, LastPointY, LastPointZ, SavePointX, SavePointY, SavePointZ FROM CharPos WHERE UID = @UID GO ---------------------------------------------------------------------------------------------------------------------- -- GetCharSkill.sql ---------------------------------------------------------------------------------------------------------------------- /* ½ºÅ³ Á¤º¸ º¸±â ÇÁ·Î½ÃÁ® */ CREATE PROCEDURE dbo.GetCharSkill @UID AS INT /* ij¸¯ÅÍ ¾ÆÀ̵ð */ AS SET NOCOUNT ON SELECT Skill FROM CharSkill WHERE UID = @UID GO /* ij¸¯ÅÍ º¸±â ¾ò±â ÇÁ·Î½ÃÁ® º¯°æ */ CREATE PROCEDURE dbo.GetCharView @UID AS INT /* ij¸¯ÅÍ °íÀ¯ ¾ÆÀ̵ð */ AS SET NOCOUNT ON SELECT UID, Name, Sex, Hair, Face, Nationality, Class, Fame, Mileage, Guild, Party, Level, Equip FROM CharInfo WHERE UID = @UID 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 UID = @Party_uid GO CREATE Proc GetUIDCIDFromName @Name varchar(16) as Declare @CID int set @CID = 0 Declare @UID int set @UID = 0 Select @CID = UID 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 if @UID = 0 Begin Select 0, @CID Return End select @UID, @CID GO ---------------------------------------------------------------------------------------------------------------------- -- GetUserInfo.sql ---------------------------------------------------------------------------------------------------------------------- /* À¯Àú Á¤º¸ ¾ò±â ÇÁ·Î½ÃÁ® */ CREATE PROCEDURE dbo.GetUserInfo @UID AS INT /* À¯Àú °íÀ¯ ¾ÆÀ̵ð */ AS SET NOCOUNT ON SELECT Char1, Char2, Char3 FROM UserInfo WHERE UID = @UID GO ---------------------------------------------------------------------------------------------------------------------- -- InsertAdmin.sql ---------------------------------------------------------------------------------------------------------------------- /* ¾îµå¹Î Ãß°¡ ÇÁ·Î½ÃÁ® */ CREATE PROCEDURE dbo.InsertAdmin @UID INT /* »ç¿ëÀÚ ¾ÆÀ̵ð */ AS SET NOCOUNT ON DECLARE @Div INT INSERT INTO AdminList (UID) VALUES (@UID) GO ---------------------------------------------------------------------------------------------------------------------- -- InsertChar.sql ---------------------------------------------------------------------------------------------------------------------- /* ij¸¯ÅÍ Ãß°¡ ÇÁ·Î½ÃÁ® */ 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 BINARY(30) /* Àåºñ (2 * 15 = 30) */ AS SET NOCOUNT ON DECLARE @UID INT, @Div INT DECLARE @C_HP INT, @C_MP INT /* ij¸¯ÅÍ À̸§ È®ÀÎ */ SELECT @UID = UID FROM CharInfo WHERE Name = @user_name IF @UID <> 0 BEGIN SELECT -1 /* µ¿ÀÏ À̸§ Á¸Àç */ RETURN END /* ½½·Ô È®ÀÎ */ DECLARE @CharSlot INT IF @user_pos = 0 BEGIN SELECT @CharSlot = Char1 FROM UserInfo WHERE UID = @user_uid END ELSE IF @user_pos = 1 BEGIN SELECT @CharSlot = Char2 FROM UserInfo WHERE UID = @user_uid END ELSE IF @user_pos = 2 BEGIN SELECT @CharSlot = Char3 FROM UserInfo WHERE UID = @user_uid END IF @CharSlot <> 0 BEGIN SELECT -2 /* ½½·ÔÀÌ Â÷ÀÖÀ½ */ RETURN END /* °íÀ¯ ¾ÆÀ̵𠼳Á¤ */ SELECT @UID = MIN(UID) FROM CIDStore IF @UID IS NULL BEGIN SELECT @UID = MAX(UID) + 1 FROM CharInfo IF @UID IS NULL BEGIN SET @UID = 1 END SELECT @UID END ELSE BEGIN SELECT @UID DELETE FROM CIDStore WHERE UID = @UID 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 /* ij¸¯ÅÍ Ãß°¡ */ SET @Div = @UID % 4 IF @Div = 0 BEGIN INSERT INTO CharInfo_1 (UID, Name, Sex, Hair, Face, Nationality, Class, Equip, Gold, STR, DEX, CON, Intell, WIS, HP, MP) VALUES (@UID, @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) INSERT INTO CharPos_1 (UID, LastPointX, LastPointY, LastPointZ, SavePointX, SavePointY, SavePointZ) VALUES (@UID, @PointX, @PointY, @PointZ, @PointX, @PointY, @PointZ) END ELSE IF @Div = 1 BEGIN INSERT INTO CharInfo_2 (UID, Name, Sex, Hair, Face, Nationality, Class, Equip, Gold, STR, DEX, CON, Intell, WIS, HP, MP) VALUES (@UID, @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) INSERT INTO CharPos_2 (UID, LastPointX, LastPointY, LastPointZ, SavePointX, SavePointY, SavePointZ) VALUES (@UID, @PointX, @PointY, @PointZ, @PointX, @PointY, @PointZ) END ELSE IF @Div = 2 BEGIN INSERT INTO CharInfo_3 (UID, Name, Sex, Hair, Face, Nationality, Class, Equip, Gold, STR, DEX, CON, Intell, WIS, HP, MP) VALUES (@UID, @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) INSERT INTO CharPos_3 (UID, LastPointX, LastPointY, LastPointZ, SavePointX, SavePointY, SavePointZ) VALUES (@UID, @PointX, @PointY, @PointZ, @PointX, @PointY, @PointZ) END ELSE IF @Div = 3 BEGIN INSERT INTO CharInfo_4 (UID, Name, Sex, Hair, Face, Nationality, Class, Equip, Gold, STR, DEX, CON, Intell, WIS, HP, MP) VALUES (@UID, @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) INSERT INTO CharPos_4 (UID, LastPointX, LastPointY, LastPointZ, SavePointX, SavePointY, SavePointZ) VALUES (@UID, @PointX, @PointY, @PointZ, @PointX, @PointY, @PointZ) END INSERT INTO CharInfoEx (UID) VALUES (@UID) INSERT INTO CharItem (UID) VALUES (@UID) INSERT INTO CharItemEx (UID) VALUES (@UID) INSERT INTO Friend (UID) VALUES (@UID) INSERT INTO Quest (UID) VALUES (@UID) -- ij¸¯ÅÍ »ý¼º½Ã°£ÀÔ·Â INSERT INTO CharInfo_Time(CID,CreateTime,UpdateTime) VALUES (@UID,GETDATE(),GETDATE()) /* À¯Àú Á¤º¸ Å×ÀÌºí ¾÷µ¥ÀÌÆ® */ EXEC UpdateCharUID @user_uid, @user_pos, @UID GO ---------------------------------------------------------------------------------------------------------------------- -- InsertCharSkill.sql ---------------------------------------------------------------------------------------------------------------------- /* ½ºÅ³ Ãß°¡ ÇÁ·Î½ÃÁ® */ CREATE PROCEDURE dbo.InsertCharSkill @UID AS INT, /* »ç¿ëÀÚ ¾ÆÀ̵ð */ @Skill AS BINARY(84) /* ½ºÅ³ ½½·Ô */ AS SET NOCOUNT ON DECLARE @Div INT BEGIN TRAN /* À¯Àú Ãß°¡ */ SET @Div = @UID % 4 IF @Div = 0 INSERT INTO CharSkill_1 (UID, Skill) VALUES (@UID, @Skill) ELSE IF @Div = 1 INSERT INTO CharSkill_2 (UID, Skill) VALUES (@UID, @Skill) ELSE IF @Div = 2 INSERT INTO CharSkill_3 (UID, Skill) VALUES (@UID, @Skill) ELSE IF @Div = 3 INSERT INTO CharSkill_4 (UID, Skill) VALUES (@UID, @Skill) COMMIT TRAN GO ---------------------------------------------------------------------------------------------------------------------- -- InsertParty.sql ---------------------------------------------------------------------------------------------------------------------- /* ÆÄƼ Ãß°¡ ÇÁ·Î½ÃÁ® */ CREATE PROCEDURE dbo.InsertParty @Party AS BINARY(202) /* Ä£±¸ ¸®½ºÆ® */ AS SET NOCOUNT ON DECLARE @UID INT DECLARE @Div INT /* °íÀ¯ ¾ÆÀ̵𠼳Á¤ */ SELECT @UID = MIN(UID) FROM PIDStore IF @UID IS NULL BEGIN SELECT @UID = MAX(UID) + 1 FROM PartyInfo IF @UID IS NULL BEGIN SET @UID = 1 END SELECT @UID END ELSE BEGIN SELECT @UID DELETE FROM PIDStore WHERE UID = @UID END /* ÆÄƼ Ãß°¡ */ SET @Div = @UID % 4 IF @Div = 0 BEGIN INSERT INTO PartyInfo_1 (UID, Party) VALUES (@UID, @Party) END ELSE IF @Div = 1 BEGIN INSERT INTO PartyInfo_2 (UID, Party) VALUES (@UID, @Party) END ELSE IF @Div = 2 BEGIN INSERT INTO PartyInfo_3 (UID, Party) VALUES (@UID, @Party) END ELSE IF @Div = 3 BEGIN INSERT INTO PartyInfo_4 (UID, Party) VALUES (@UID, @Party) END /* °íÀ¯ ¾ÆÀ̵𠵹·ÁÁÜ */ SELECT @UID GO ---------------------------------------------------------------------------------------------------------------------- -- InsertUser.sql ---------------------------------------------------------------------------------------------------------------------- /* À¯Àú Ãß°¡ ÇÁ·Î½ÃÁ® */ CREATE PROCEDURE dbo.InsertUser @UID INT /* »ç¿ëÀÚ ¾ÆÀ̵ð */ AS SET NOCOUNT ON DECLARE @Div INT BEGIN TRAN /* À¯Àú Ãß°¡ */ SET @Div = @UID % 4 IF @Div = 0 INSERT INTO UserInfo_1 (UID) VALUES (@UID) ELSE IF @Div = 1 INSERT INTO UserInfo_2 (UID) VALUES (@UID) ELSE IF @Div = 2 INSERT INTO UserInfo_3 (UID) VALUES (@UID) ELSE IF @Div = 3 INSERT INTO UserInfo_4 (UID) VALUES (@UID) INSERT ItemStore1 (UID) VALUES (@UID) INSERT ItemStore2 (UID) VALUES (@UID) COMMIT TRAN GO -- º¹¿øÇÁ·Î½ÃÁ® CREATE PROC RestoreCharInfo @user_uid INT,@CID INT,@user_name VARCHAR(20) AS SET NOCOUNT ON DECLARE @UID INT, @Div INT DECLARE @C_HP INT, @C_MP INT /* ij¸¯ÅÍ À̸§ È®ÀÎ */ SELECT @UID = UID FROM CharInfo WHERE Name = @user_name IF @UID <> 0 BEGIN SELECT -1 /* µ¿ÀÏ À̸§ Á¸Àç */ RETURN END IF EXISTS(SELECT * FROM CharInfo WHERE UID = @CID) BEGIN SELECT -2 RETURN END /* ½½·Ô È®ÀÎ */ DECLARE @user_pos INT DECLARE @CharSlot1 INT SET @CharSlot1 = 0 DECLARE @CharSlot2 INT SET @CharSlot2 = 0 DECLARE @CharSlot3 INT SET @CharSlot3 = 0 SELECT @CharSlot1 = Char1,@CharSlot2=Char2,@CharSlot3=Char3 FROM UserInfo WHERE UID = @user_uid IF @CharSlot1 = 0 SET @user_pos = 0 ELSE IF @CharSlot2 = 0 SET @user_pos = 1 ELSE IF @CharSlot3 = 0 SET @user_pos = 2 ELSE BEGIN SELECT -2 /* ½½·ÔÀÌ Â÷ÀÖÀ½ */ RETURN END /* ij¸¯ÅÍ Ãß°¡ */ SET @Div = @CID % 4 IF @Div = 0 BEGIN INSERT INTO CharInfo_1 SELECT * FROM CharDelHistory.dbo.DelCharInfo_1 WHERE UID = @CID DELETE CharDelHistory.dbo.DelCharInfo_1 WHERE UID = @CID INSERT INTO CharSkill_1 (UID, Skill) SELECT * FROM CharDelHistory.dbo.DelCharSkill_1 WHERE UID = @CID DELETE CharDelHistory.dbo.DelCharSkill_1 WHERE UID = @CID INSERT INTO CharPos_1 (UID, LastPointX, LastPointY, LastPointZ, SavePointX, SavePointY, SavePointZ) VALUES (@CID, 0, 0, 0, 0, 0, 0) END ELSE IF @Div = 1 BEGIN INSERT INTO CharInfo_2 SELECT * FROM CharDelHistory.dbo.DelCharInfo_2 WHERE UID = @CID DELETE CharDelHistory.dbo.DelCharInfo_2 WHERE UID = @CID INSERT INTO CharSkill_2 (UID, Skill) SELECT * FROM CharDelHistory.dbo.DelCharSkill_2 WHERE UID = @CID DELETE CharDelHistory.dbo.DelCharSkill_2 WHERE UID = @CID INSERT INTO CharPos_2 (UID, LastPointX, LastPointY, LastPointZ, SavePointX, SavePointY, SavePointZ) VALUES (@CID, 0, 0, 0, 0, 0, 0) END ELSE IF @Div = 2 BEGIN INSERT INTO CharInfo_3 SELECT * FROM CharDelHistory.dbo.DelCharInfo_3 WHERE UID = @CID DELETE CharDelHistory.dbo.DelCharInfo_3 WHERE UID = @CID INSERT INTO CharSkill_3 (UID, Skill) SELECT * FROM CharDelHistory.dbo.DelCharSkill_3 WHERE UID = @CID DELETE CharDelHistory.dbo.DelCharSkill_3 WHERE UID = @CID INSERT INTO CharPos_3 (UID, LastPointX, LastPointY, LastPointZ, SavePointX, SavePointY, SavePointZ) VALUES (@CID, 0, 0, 0, 0, 0, 0) END ELSE IF @Div = 3 BEGIN INSERT INTO CharInfo_4 SELECT * FROM CharDelHistory.dbo.DelCharInfo_4 WHERE UID = @CID DELETE CharDelHistory.dbo.DelCharInfo_4 WHERE UID = @CID INSERT INTO CharSkill_4 (UID, Skill) SELECT * FROM CharDelHistory.dbo.DelCharSkill_4 WHERE UID = @CID DELETE CharDelHistory.dbo.DelCharSkill_4 WHERE UID = @CID INSERT INTO CharPos_4 (UID, LastPointX, LastPointY, LastPointZ, SavePointX, SavePointY, SavePointZ) VALUES (@CID, 0, 0, 0, 0, 0, 0) END INSERT INTO CharInfoEx (UID) VALUES (@CID) INSERT INTO CharItem SELECT * FROM CharDelHistory.dbo.DelCharItem WHERE UID = @CID DELETE CharDelHistory.dbo.DelCharItem WHERE UID = @CID INSERT INTO CharItemEx SELECT * FROM CharDelHistory.dbo.DelCharItemEx WHERE UID = @CID DELETE CharDelHistory.dbo.DelCharItemEx WHERE UID = @CID INSERT INTO Friend (UID) VALUES (@CID) INSERT INTO Quest (UID) VALUES (@CID) -- ij¸¯ÅÍ »ý¼º½Ã°£ÀÔ·Â DELETE CharDelHistory.dbo.DelCharInfo_Time WHERE CID = @CID INSERT INTO CharInfo_Time(CID,CreateTime,UpdateTime) VALUES (@CID,GETDATE(),GETDATE()) /* À¯Àú Á¤º¸ Å×ÀÌºí ¾÷µ¥ÀÌÆ® */ EXEC UpdateCharUID @user_uid, @user_pos, @CID SELECT 0 AS SUCCESS GO ---------------------------------------------------------------------------------------------------------------------- -- UpdateCharEquip.sql ---------------------------------------------------------------------------------------------------------------------- /* ij¸¯ÅÍ Á¤º¸ º¯°æ ÇÁ·Î½ÃÁ® */ CREATE PROCEDURE dbo.UpdateCharEquip @char_uid AS INT, /* ij¸¯ÅÍ °íÀ¯ ¾ÆÀ̵ð */ @C_Equip AS BINARY(30) /* Àåºñ (2 * 15 = 30) */ AS SET NOCOUNT ON DECLARE @Div INT BEGIN TRAN SET @Div = @char_uid % 4 IF @Div = 0 UPDATE CharInfo_1 SET Equip = @C_Equip WHERE UID = @char_uid ELSE IF @Div = 1 UPDATE CharInfo_2 SET Equip = @C_Equip WHERE UID = @char_uid ELSE IF @Div = 2 UPDATE CharInfo_3 SET Equip = @C_Equip WHERE UID = @char_uid ELSE UPDATE CharInfo_4 SET Equip = @C_Equip WHERE UID = @char_uid COMMIT TRAN 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 BINARY(30) /* Àåºñ (2 * 15 = 30) */ AS SET NOCOUNT ON DECLARE @Div INT BEGIN TRAN SET @Div = @char_uid % 4 IF @Div = 0 UPDATE CharInfo_1 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 UID = @char_uid ELSE IF @Div = 1 UPDATE CharInfo_2 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 UID = @char_uid ELSE IF @Div = 2 UPDATE CharInfo_3 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 UID = @char_uid ELSE UPDATE CharInfo_4 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 UID = @char_uid COMMIT TRAN 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,'2003.06.25',GETDATE()) END GO /* À¯Àú Á¤º¸ º¯°æ ÇÁ·Î½ÃÁ® */ ---------------------------------------------------------------------------------------------------------------------- -- UpdateCharInfoEx.sql ---------------------------------------------------------------------------------------------------------------------- CREATE PROCEDURE dbo.UpdateCharInfoEx @CharID AS INT, /* ij¸¯ÅÍ ¾ÆÀ̵ð */ @Total AS INT, /* Àüü ½Ã°£ */ @ServerID AS INT /* Á¸ */ AS SET NOCOUNT ON DECLARE @Div INT BEGIN TRAN UPDATE CharInfoEx SET Total = @Total, ServerID = @ServerID WHERE UID = @CharID COMMIT TRAN GO ---------------------------------------------------------------------------------------------------------------------- -- UpdateCharItemQuick.sql ---------------------------------------------------------------------------------------------------------------------- /* ij¸¯ÅÍ Á¤º¸ º¯°æ ÇÁ·Î½ÃÁ® */ CREATE PROCEDURE dbo.UpdateCharItemQuick @char_uid AS INT, /* ij¸¯ÅÍ °íÀ¯ ¾ÆÀ̵ð */ @C_Quick AS BINARY(40) /* Àåºñ (2 * 15 = 30) */ AS SET NOCOUNT ON DECLARE @Div INT BEGIN TRAN UPDATE CharItem SET Quick = @C_Quick WHERE UID = @char_uid COMMIT TRAN GO ---------------------------------------------------------------------------------------------------------------------- -- UpdateCharParty.sql ---------------------------------------------------------------------------------------------------------------------- /* ij¸¯ÅÍ ÆÄƼ °ü°è ¾÷µ¥ÀÌÆ® */ CREATE PROCEDURE dbo.UpdateCharParty @UID AS INT, /* ij¸¯ÅÍ °íÀ¯ ¾ÆÀ̵ð */ @Party AS INT /* ÆÄƼ */ AS SET NOCOUNT ON DECLARE @Div INT SET @Div = @UID % 4 IF @Div = 0 UPDATE CharInfo_1 SET Party = @Party WHERE UID = @UID ELSE IF @Div = 1 UPDATE CharInfo_2 SET Party = @Party WHERE UID = @UID ELSE IF @Div = 2 UPDATE CharInfo_3 SET Party = @Party WHERE UID = @UID ELSE IF @Div = 3 UPDATE CharInfo_4 SET Party = @Party WHERE UID = @UID GO ---------------------------------------------------------------------------------------------------------------------- -- UpdateCharPos.sql ---------------------------------------------------------------------------------------------------------------------- /* ij¸¯ÅÍ À§Ä¡ Á¤º¸ ¾÷µ¥ÀÌÆ® ÇÁ·Î½ÃÁ® */ CREATE PROCEDURE dbo.UpdateCharPos @UID 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 DECLARE @Div INT SET @Div = @UID % 4 IF @Div = 0 UPDATE CharPos_1 SET LastPointX = @LastPointX, LastPointY = @LastPointY, LastPointZ = @LastPointZ, SavePointX = @SavePointX, SavePointY = @SavePointY, SavePointZ = @SavePointZ WHERE UID = @UID ELSE IF @Div = 1 UPDATE CharPos_2 SET LastPointX = @LastPointX, LastPointY = @LastPointY, LastPointZ = @LastPointZ, SavePointX = @SavePointX, SavePointY = @SavePointY, SavePointZ = @SavePointZ WHERE UID = @UID ELSE IF @Div = 2 UPDATE CharPos_3 SET LastPointX = @LastPointX, LastPointY = @LastPointY, LastPointZ = @LastPointZ, SavePointX = @SavePointX, SavePointY = @SavePointY, SavePointZ = @SavePointZ WHERE UID = @UID ELSE IF @Div = 3 UPDATE CharPos_4 SET LastPointX = @LastPointX, LastPointY = @LastPointY, LastPointZ = @LastPointZ, SavePointX = @SavePointX, SavePointY = @SavePointY, SavePointZ = @SavePointZ WHERE UID = @UID GO ---------------------------------------------------------------------------------------------------------------------- -- UpdateCharSkill.sql ---------------------------------------------------------------------------------------------------------------------- /* ½ºÅ³ ¾÷µ¥ÀÌÆ® */ CREATE PROCEDURE dbo.UpdateCharSkill @UID AS INT, /* »ç¿ëÀÚ ¾ÆÀ̵ð */ @Skill AS BINARY(84) /* ½ºÅ³ ½½·Ô */ AS SET NOCOUNT ON DECLARE @Div INT SET @Div = @UID % 4 IF @Div = 0 UPDATE CharSkill_1 SET Skill = @Skill WHERE UID = @UID ELSE IF @Div = 1 UPDATE CharSkill_2 SET Skill = @Skill WHERE UID = @UID ELSE IF @Div = 2 UPDATE CharSkill_3 SET Skill = @Skill WHERE UID = @UID ELSE IF @Div = 3 UPDATE CharSkill_4 SET Skill = @Skill WHERE UID = @UID GO ---------------------------------------------------------------------------------------------------------------------- -- UpdateCharUID.sql ---------------------------------------------------------------------------------------------------------------------- /* À¯Àú Á¤º¸ Å×À̺í ij¸¯ÅÍ ¾ÆÀ̵ð ¾÷µ¥ÀÌÆ® ÇÁ·Î½ÃÁ® */ CREATE PROCEDURE dbo.UpdateCharUID @user_uid AS INT, /* À¯Àú °íÀ¯ ¾ÆÀ̵ð */ @user_pos AS INT, /* ij¸¯ÅÍ À§Ä¡ (3°³ÀÇ ½½·Ô) */ @char_uid AS INT /* ij¸¯ÅÍ °íÀ¯ ¾ÆÀ̵ð */ AS SET NOCOUNT ON DECLARE @Div INT BEGIN TRAN /* À¯Àú Á¤º¸ Å×ÀÌºí ¾÷µ¥ÀÌÆ® */ SET @Div = @user_uid % 4 IF @user_pos = 0 BEGIN IF @Div = 0 BEGIN UPDATE UserInfo_1 SET Char1 = @char_uid WHERE UID = @user_uid END ELSE IF @Div = 1 BEGIN UPDATE UserInfo_2 SET Char1 = @char_uid WHERE UID = @user_uid END ELSE IF @Div = 2 BEGIN UPDATE UserInfo_3 SET Char1 = @char_uid WHERE UID = @user_uid END ELSE IF @Div = 3 BEGIN UPDATE UserInfo_4 SET Char1 = @char_uid WHERE UID = @user_uid END END ELSE IF @user_pos = 1 BEGIN IF @Div = 0 BEGIN UPDATE UserInfo_1 SET Char2 = @char_uid WHERE UID = @user_uid END ELSE IF @Div = 1 BEGIN UPDATE UserInfo_2 SET Char2 = @char_uid WHERE UID = @user_uid END ELSE IF @Div = 2 BEGIN UPDATE UserInfo_3 SET Char2 = @char_uid WHERE UID = @user_uid END ELSE IF @Div = 3 BEGIN UPDATE UserInfo_4 SET Char2 = @char_uid WHERE UID = @user_uid END END ELSE IF @user_pos = 2 BEGIN IF @Div = 0 BEGIN UPDATE UserInfo_1 SET Char3 = @char_uid WHERE UID = @user_uid END ELSE IF @Div = 1 BEGIN UPDATE UserInfo_2 SET Char3 = @char_uid WHERE UID = @user_uid END ELSE IF @Div = 2 BEGIN UPDATE UserInfo_3 SET Char3 = @char_uid WHERE UID = @user_uid END ELSE IF @Div = 3 BEGIN UPDATE UserInfo_4 SET Char3 = @char_uid WHERE UID = @user_uid END END COMMIT TRAN GO CREATE PROCEDURE dbo.UpdateItemStore @user_uid AS INT, /* À¯Àú °íÀ¯ ¾ÆÀ̵ð */ @Password AS CHAR(5), /* ÆÐ½º ¿öµå */ @Frag AS INT, /* Ç÷¡±× */ @Gold AS INT /* µ· */ AS SET NOCOUNT ON BEGIN TRAN UPDATE ItemStore1 SET Password = @Password, Frag = @Frag, Gold = @Gold WHERE UID = @user_uid COMMIT TRAN GO ---------------------------------------------------------------------------------------------------------------------- -- UpdatePartyInfo.sql ---------------------------------------------------------------------------------------------------------------------- /* ÆÄƼ ¸É¹ö Ãß°¡ ÇÁ·Î½ÃÁ® */ CREATE PROCEDURE dbo.UpdatePartyInfo @Party_uid AS INT, /* ÆÄƼ °íÀ¯ ¾ÆÀ̵ð */ @Party AS BINARY(202) /* Ä£±¸ ¸®½ºÆ® */ AS SET NOCOUNT ON DECLARE @Div INT /* ÆÄƼ Á¤º¸ Å×ÀÌºí ¾÷µ¥ÀÌÆ® */ SET @Div = @Party_uid % 4 IF @Div = 0 BEGIN UPDATE PartyInfo_1 SET Party = @Party WHERE UID = @Party_uid END ELSE IF @Div = 1 BEGIN UPDATE PartyInfo_2 SET Party = @Party WHERE UID = @Party_uid END ELSE IF @Div = 2 BEGIN UPDATE PartyInfo_3 SET Party = @Party WHERE UID = @Party_uid END ELSE IF @Div = 3 BEGIN UPDATE PartyInfo_4 SET Party = @Party WHERE UID = @Party_uid END GO ---------------------------------------------------------------------------------------------------------------------- -- UpdateUserInfo.sql ---------------------------------------------------------------------------------------------------------------------- /* À¯Àú Á¤º¸ º¯°æ ÇÁ·Î½ÃÁ® */ CREATE PROCEDURE dbo.UpdateUserInfo @user_uid AS INT, /* À¯Àú °íÀ¯ ¾ÆÀ̵ð */ @user_char1 AS INT, /* ij¸¯ÅÍ °íÀ¯ ¾ÆÀ̵ð (ù¹øÂ°) */ @user_char2 AS INT, /* ij¸¯ÅÍ °íÀ¯ ¾ÆÀ̵ð (µÎ¹øÂ°) */ @user_char3 AS INT /* ij¸¯ÅÍ °íÀ¯ ¾ÆÀ̵ð (¼¼¹øÂ°) */ AS SET NOCOUNT ON DECLARE @Div INT BEGIN TRAN SET @Div = @user_uid % 4 IF @Div = 0 UPDATE UserInfo_1 SET Char1 = @user_char1, Char2 = @user_char2, Char3 = @user_char3 WHERE UID = @user_uid ELSE IF @Div = 1 UPDATE UserInfo_2 SET Char1 = @user_char1, Char2 = @user_char2, Char3 = @user_char3 WHERE UID = @user_uid ELSE IF @Div = 2 UPDATE UserInfo_3 SET Char1 = @user_char1, Char2 = @user_char2, Char3 = @user_char3 WHERE UID = @user_uid ELSE UPDATE UserInfo_4 SET Char1 = @user_char1, Char2 = @user_char2, Char3 = @user_char3 WHERE UID = @user_uid COMMIT TRAN GO CREATE PROC USP_GUILDORDERBY AS SET NOCOUNT ON CREATE TABLE #ROWTABLE ( ROWID INT IDENTITY(1,1) , nGuildID INT ) DECLARE @ROWID INT DECLARE @GUILDID INT INSERT INTO #ROWTABLE (nGuildID) SELECT DISTINCT nGuildID FROM tblguildmember_temp SET @ROWID = @@ROWCOUNT WHILE @ROWID > 0 BEGIN SELECT @GUILDID = nGuildID FROM #ROWTABLE WHERE ROWID=@ROWID CREATE TABLE [#tblguildmember_temp] ( [nGuildID] [int] NOT NULL , [nCID] [int] NOT NULL , [nPosition] [int] NOT NULL , [nPositionInGuild] [int] IDENTITY(0,1) , [tLeaveGuildTime] [smalldatetime] NULL ) INSERT INTO #tblguildmember_temp (nGuildID,nCID,nPosition,tLeaveGuildTime) SELECT nGuildID,nCID,nPosition,tLeaveGuildTime FROM tblguildmember_temp where nGuildID = @GUILDID ORDER BY nPosition INSERT INTO tblguildmember_temp2 SELECT * FROM #tblguildmember_temp DROP TABLE #tblguildmember_temp SET @ROWID = @ROWID - 1 END 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 BINARY(50) 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) VALUES (@GuildName,@GuildLevel,@GuildFame,@bRight,@tnNationType) IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN SET @RETURN = 1 SELECT @RETURN,@GuildID RETURN END -- ÀÌ¹Ì ÀÔ·ÂµÈ ±æµåÀÇ ¾ÆÀ̵𸦠¾ò¾î¿Â´Ù. SELECT @GuildID = nGuildID FROM TblGuildInfo WHERE strGuildName = @GuildName INSERT INTO TblGuildItem VALUES (@GuildID,NULL) IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN SET @RETURN = 3 SET @GuildID = 0 SELECT @RETURN,@GuildID RETURN END INSERT INTO TblGuildItem_EX VALUES (@GuildID,NULL) IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN SET @RETURN = 4 SET @GuildID = 0 SELECT @RETURN,@GuildID RETURN END COMMIT TRAN SELECT @RETURN,@GuildID -- SUCCESS END GO CREATE PROC USPGuildDelete @GuildID INT AS SET NOCOUNT ON INSERT INTO TblGuildRestoreData (nGuildID,strGuildName,nGuildGold,bGuildItem,tDeleteTime) SELECT a.nGuildID,a.strGuildName,a.nGuildGold,b.bGuildItem,Getdate() FROM TblGuildInfo a JOIN TblGuildItem b ON a.nGuildID = b.nGuildID WHERE a.nGuildID = @GuildID INSERT INTO TblGuildRestoreData_EX (nGuildID,bGuildItem_EX) SELECT nGuildID,bGuildItem FROM TblGuildItem_EX WHERE nGuildID = @GuildID 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 IF ((@CID % 4) = 0) BEGIN UPDATE CHARINFO_1 SET Guild = 0 WHERE UID = @CID END ELSE IF ((@CID % 4) = 1) BEGIN UPDATE CHARINFO_2 SET Guild = 0 WHERE UID = @CID END ELSE IF ((@CID % 4) = 2) BEGIN UPDATE CHARINFO_3 SET Guild = 0 WHERE UID = @CID END ELSE IF ((@CID % 4) = 3) BEGIN UPDATE CHARINFO_4 SET Guild = 0 WHERE UID = @CID END 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_1 SET Gold = Gold + @Gold FROM TblGuildMember a,Charinfo_1 b WHERE a.nCID = b.UID AND a.nGuildID = @GuildID AND a.nPosition < 4 UPDATE CharInfo_2 SET Gold = Gold + @Gold FROM TblGuildMember a,Charinfo_2 b WHERE a.nCID = b.UID AND a.nGuildID = @GuildID AND a.nPosition < 4 UPDATE CharInfo_3 SET Gold = Gold + @Gold FROM TblGuildMember a,Charinfo_3 b WHERE a.nCID = b.UID AND a.nGuildID = @GuildID AND a.nPosition < 4 UPDATE CharInfo_4 SET Gold = Gold + @Gold FROM TblGuildMember a,Charinfo_4 b WHERE a.nCID = b.UID AND a.nGuildID = @GuildID AND a.nPosition < 4 GO -- GUILD ITEM ÀÔ·Â CREATE PROC USPGuildItemEXInsert @GuildID INT,@Item BINARY(7300) AS SET NOCOUNT ON DECLARE @RETURN INT SET @RETURN = 0 IF EXISTS (SELECT nGuildID FROM TblGuildItem_EX WHERE nGuildID = @GuildID) BEGIN UPDATE TblGuildItem_EX SET bGuildItem = @Item WHERE nGuildID = @GuildID IF @@ROWCOUNT <> 1 BEGIN SET @RETURN = 1 SELECT @RETURN RETURN END END ELSE BEGIN INSERT TblGuildItem_EX VALUES (@GuildID,@Item) IF @@ROWCOUNT <> 1 BEGIN SET @RETURN = 2 SELECT @RETURN RETURN END END SELECT @RETURN GO -- GUILD ITEM ÀÔ·Â CREATE PROC USPGuildItemInsert @GuildID INT,@Item BINARY(7300) AS SET NOCOUNT ON DECLARE @RETURN INT SET @RETURN = 0 IF EXISTS (SELECT nGuildID FROM TblGuildItem WHERE nGuildID = @GuildID) BEGIN UPDATE TblGuildItem SET bGuildItem = @Item WHERE nGuildID = @GuildID IF @@ROWCOUNT <> 1 BEGIN SET @RETURN = 1 SELECT @RETURN RETURN END END ELSE BEGIN INSERT TblGuildItem VALUES (@GuildID,@Item) IF @@ROWCOUNT <> 1 BEGIN SET @RETURN = 2 SELECT @RETURN RETURN END END SELECT @RETURN 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 IF ((@CID % 4) = 0) BEGIN UPDATE CHARINFO_1 SET Guild = @GuildID WHERE UID = @CID IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN SET @RETURN = 1 SELECT @RETURN RETURN END END ELSE IF ((@CID % 4) = 1) BEGIN UPDATE CHARINFO_2 SET Guild = @GuildID WHERE UID = @CID IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN SET @RETURN = 1 SELECT @RETURN RETURN END END ELSE IF ((@CID % 4) = 2) BEGIN UPDATE CHARINFO_3 SET Guild = @GuildID WHERE UID = @CID IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN SET @RETURN = 1 SELECT @RETURN RETURN END END ELSE IF ((@CID % 4) = 3) BEGIN UPDATE CHARINFO_4 SET Guild = @GuildID WHERE UID = @CID IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN SET @RETURN = 1 SELECT @RETURN RETURN END 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 IF ((@CID % 4) = 0) BEGIN UPDATE CHARINFO_1 SET Guild = 0 WHERE UID = @CID IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN SET @RETURN = 1 SELECT @RETURN RETURN END END ELSE IF ((@CID % 4) = 1) BEGIN UPDATE CHARINFO_2 SET Guild = 0 WHERE UID = @CID IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN SET @RETURN = 1 SELECT @RETURN RETURN END END ELSE IF ((@CID % 4) = 2) BEGIN UPDATE CHARINFO_3 SET Guild = 0 WHERE UID = @CID IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN SET @RETURN = 1 SELECT @RETURN RETURN END END ELSE IF ((@CID % 4) = 3) BEGIN UPDATE CHARINFO_4 SET Guild = 0 WHERE UID = @CID IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN SET @RETURN = 1 SELECT @RETURN RETURN END END COMMIT TRAN SELECT @RETURN RETURN