Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- USE [GunzDB]
- GO
- /****** Object: StoredProcedure [dbo].[spInsertChar] Script Date: 07/13/2011 15:36:39 ******/
- SET ANSI_NULLS ON
- GO
- SET QUOTED_IDENTIFIER ON
- GO
- /* ??? ?? */
- ALTER PROC [dbo].[spInsertChar]
- @AID INT,
- @CharNum SMALLINT,
- @Name VARCHAR(24),
- @Sex tinyint,
- @Hair INT,
- @Face INT,
- @Costume INT
- AS
- SET NOCOUNT ON
- BEGIN TRAN
- DECLARE @Block VARCHAR(100)
- DECLARE @V_Position INT
- DECLARE @V_RetValue INT
- SET @Block = ''
- SET @V_Position = 1
- SET @V_RetValue = 0
- WHILE @V_Position <= DATALENGTH(@Name) AND @V_RetValue = 0
- BEGIN
- SET @Block = @Block + SUBSTRING(@Name,@V_Position,1)
- IF @V_Position = 4
- IF @Block = '[GM]' OR @Block = '[AM]' OR @Block = '[GA]'
- SET @V_RetValue = 1
- IF @V_Position = 5
- IF @Block = '[ADM]' OR @Block = '[MOD]'
- SET @V_RetValue = 1
- SET @V_Position = @V_Position + 1
- END
- IF EXISTS (SELECT CID FROM CHARACTER WHERE (AID=@AID AND CharNum=@CharNum) OR (Name=@Name) OR @V_RetValue = 1)
- BEGIN
- ROLLBACK TRAN
- RETURN(-1)
- END
- DECLARE @CharIdent INT
- DECLARE @ChestCIID INT
- DECLARE @LegsCIID INT
- DECLARE @MeleeCIID INT
- DECLARE @PrimaryCIID INT
- DECLARE @SecondaryCIID INT
- DECLARE @Custom1CIID INT
- DECLARE @Custom2CIID INT
- DECLARE @ChestItemID INT
- DECLARE @LegsItemID INT
- DECLARE @MeleeItemID INT
- DECLARE @PrimaryItemID INT
- DECLARE @SecondaryItemID INT
- DECLARE @Custom1ItemID INT
- DECLARE @Custom2ItemID INT
- SET @SecondaryCIID = NULL
- SET @SecondaryItemID = NULL
- SET @Custom1CIID = NULL
- SET @Custom1ItemID = NULL
- SET @Custom2CIID = NULL
- SET @Custom2ItemID = NULL
- INSERT INTO CHARACTER (AID, Name, CharNum, Level, Sex, Hair, Face, XP, BP, FR, CR, ER, WR,
- GameCount, KillCount, DeathCount, RegDate, PlayTime, DeleteFlag)
- VALUES (@AID, @Name, @CharNum, 1, @Sex, @Hair, @Face, 0, 0, 0, 0, 0, 0, 0, 0, 0, GETDATE(), 0, 0)
- IF 0 <> @@ERROR BEGIN
- ROLLBACK TRAN
- RETURN (-1)
- END
- SET @CharIdent = @@IDENTITY
- /* Melee */
- SET @MeleeItemID =
- CASE @Costume
- WHEN 0 THEN 1
- WHEN 1 THEN 2
- WHEN 2 THEN 1
- WHEN 3 THEN 2
- WHEN 4 THEN 2
- WHEN 5 THEN 1
- END
- INSERT INTO CharacterItem (CID, ItemID) VALUES (@CharIdent, @MeleeItemID)
- IF 0 <> @@ERROR BEGIN
- ROLLBACK TRAN
- RETURN (-1)
- END
- SET @MeleeCIID = @@IDENTITY
- /* Primary */
- SET @PrimaryItemID =
- CASE @Costume
- WHEN 0 THEN 5001
- WHEN 1 THEN 5002
- WHEN 2 THEN 4005
- WHEN 3 THEN 4001
- WHEN 4 THEN 4002
- WHEN 5 THEN 4006
- END
- INSERT INTO CharacterItem (CID, ItemID) VALUES (@CharIdent, @PrimaryItemID)
- IF 0 <> @@ERROR BEGIN
- ROLLBACK TRAN
- RETURN (-1)
- END
- SET @PrimaryCIID = @@IDENTITY
- /* Secondary */
- IF @Costume = 0 OR @Costume = 2 BEGIN
- SET @SecondaryItemID =
- CASE @Costume
- WHEN 0 THEN 4001
- WHEN 1 THEN 0
- WHEN 2 THEN 5001
- WHEN 3 THEN 4006
- WHEN 4 THEN 0
- WHEN 5 THEN 4006
- END
- IF @SecondaryItemID <> 0 BEGIN
- INSERT INTO CharacterItem (CID, ItemID) VALUES (@CharIdent, @SecondaryItemID)
- IF 0 <> @@ERROR BEGIN
- ROLLBACK TRAN
- RETURN (-1)
- END
- SET @SecondaryCIID = @@IDENTITY
- END
- END
- SET @Custom1ItemID =
- CASE @Costume
- WHEN 0 THEN 30301
- WHEN 1 THEN 30301
- WHEN 2 THEN 30401
- WHEN 3 THEN 30401
- WHEN 4 THEN 30401
- WHEN 5 THEN 30101
- END
- /* Custom1 */
- INSERT INTO CharacterItem (CID, ItemID) VALUES (@CharIdent, @Custom1ItemID)
- IF 0 <> @@ERROR BEGIN
- ROLLBACK TRAN
- RETURN (-1)
- END
- SET @Custom1CIID = @@IDENTITY
- /* Custom2 */
- IF @Costume = 4 OR @Costume = 5
- BEGIN
- SET @Custom2ItemID =
- CASE @Costume
- WHEN 0 THEN 0
- WHEN 1 THEN 0
- WHEN 2 THEN 0
- WHEN 3 THEN 0
- WHEN 4 THEN 30001
- WHEN 5 THEN 30001
- END
- IF @Custom2ItemID <> 0
- BEGIN
- INSERT INTO CharacterItem (CID, ItemID) VALUES (@CharIdent, @Custom2ItemID)
- IF 0 <> @@ERROR BEGIN
- ROLLBACK TRAN
- RETURN (-1)
- END
- SET @Custom2CIID = @@IDENTITY
- END
- END
- IF @Sex = 0 /* ??? ?? */
- BEGIN
- /* Chest */
- SET @ChestItemID =
- CASE @Costume
- WHEN 0 THEN 21001
- WHEN 1 THEN 21001
- WHEN 2 THEN 21001
- WHEN 3 THEN 21001
- WHEN 4 THEN 21001
- WHEN 5 THEN 21001
- END
- INSERT INTO CharacterItem (CID, ItemID) VALUES (@CharIdent, @ChestItemID)
- IF 0 <> @@ERROR BEGIN
- ROLLBACK TRAN
- RETURN (-1)
- END
- SET @ChestCIID = @@IDENTITY
- /* Legs */
- SET @LegsItemID =
- CASE @Costume
- WHEN 0 THEN 23001
- WHEN 1 THEN 23001
- WHEN 2 THEN 23001
- WHEN 3 THEN 23001
- WHEN 4 THEN 23001
- WHEN 5 THEN 23001
- END
- INSERT INTO CharacterItem (CID, ItemID) VALUES (@CharIdent, @LegsItemID)
- IF 0 <> @@ERROR BEGIN
- ROLLBACK TRAN
- RETURN (-1)
- END
- SET @LegsCIID = @@IDENTITY
- END
- ELSE
- BEGIN /* ??? ?? */
- /* Chest */
- SET @ChestItemID =
- CASE @Costume
- WHEN 0 THEN 21501
- WHEN 1 THEN 21501
- WHEN 2 THEN 21501
- WHEN 3 THEN 21501
- WHEN 4 THEN 21501
- WHEN 5 THEN 21501
- END
- INSERT INTO CharacterItem (CID, ItemID) VALUES (@CharIdent, @ChestItemID)
- IF 0 <> @@ERROR BEGIN
- ROLLBACK TRAN
- RETURN (-1)
- END
- SET @ChestCIID = @@IDENTITY
- /* Legs */
- SET @LegsItemID =
- CASE @Costume
- WHEN 0 THEN 23501
- WHEN 1 THEN 23501
- WHEN 2 THEN 23501
- WHEN 3 THEN 23501
- WHEN 4 THEN 23501
- WHEN 5 THEN 23501
- END
- INSERT INTO CharacterItem (CID, ItemID) VALUES (@CharIdent, @LegsItemID)
- IF 0 <> @@ERROR BEGIN
- ROLLBACK TRAN
- RETURN (-1)
- END
- SET @LegsCIID = @@IDENTITY
- END
- UPDATE CHARACTER
- SET chest_slot = @ChestCIID, legs_slot = @LegsCIID, melee_slot = @MeleeCIID,
- primary_slot = @PrimaryCIID, secondary_slot = @SecondaryCIID, custom1_slot = @Custom1CIID,
- custom2_slot = @Custom2CIID,
- chest_itemid = @ChestItemID, legs_itemid = @LegsItemID, melee_itemid = @MeleeItemID,
- primary_itemid = @PrimaryItemID, secondary_itemid = @SecondaryItemID, custom1_itemid = @Custom1ItemID,
- custom2_itemid = @Custom2ItemID
- WHERE CID=@CharIdent
- IF 0 = @@ROWCOUNT BEGIN
- ROLLBACK TRAN
- RETURN (-1)
- END
- COMMIT TRAN
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement