Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- USE [SRO_VT_SHARD]
- GO
- /****** Object: StoredProcedure [dbo].[_AddNewChar] Script Date: 12/08/2011 18:34:14 ******/
- SET ANSI_NULLS ON
- GO
- SET QUOTED_IDENTIFIER ON
- GO
- ALTER PROCEDURE [dbo].[_AddNewChar]
- @UserJID INT,
- --@CharSlot INT,
- @RefCharID INT,
- @CharName varchar (64),
- @CharScale tinyINT,
- @StartRegionID INT,
- @StartPos_X real,
- @StartPos_Y real,
- @StartPos_Z real,
- @DefaultTeleport INT,
- @RefMailID INT,
- @RefPantsID INT,
- @RefBootsID INT,
- @RefWeaponID INT,
- @RefShield INT,
- @DurMail tinyINT,
- @DurPants tinyINT,
- @DurBoots tinyINT,
- @DurWeapon tinyINT,
- @DurShield tinyINT,
- @DefaultArrow INT
- AS
- SET NOCOUNT ON
- DECLARE @Slot INT
- DECLARE @temp INT
- DECLARE @NewCharID INT
- SET @NewCharID = 0
- -----------------------------------------------------------------------------
- -- 1. ij¸¯ÅÍ ½½·Ô ³Ñ¹ö°¡ validÇÑ °ÍÀÎÁö, ±×¸®°í ºó½½·ÔÀÌ ¸Â´ÂÁö ¸ÕÀú üũÇÑ´Ù.
- -----------------------------------------------------------------------------
- -- start by novice.
- SELECT @temp = count(CharID) FROM _User WITH (NOLOCK) WHERE UserJID = @UserJID
- IF (@temp >= 4)
- BEGIN
- -- ³Ê¹« ¸¹ÀÚ³ª
- RETURN -2
- END
- -- finish by novice.
- -----------------------------------------------------------------------------
- -- 2. ij¸¯ÅÍ Ãß°¡Çϱâ
- -----------------------------------------------------------------------------
- IF (@CharScale > 68) -- 0100 0100 --> 68 ÀÌ´Ù!
- BEGIN
- -- ij¸¯ÅÍ »ý¼º ½ÇÆÐ! ½ºÄÉÀÏ °ªÀÌ ÀÌ»óÇÏ´Ù!
- RETURN -3
- END
- EXEC @temp = _IsExistingCharName @CharName
- IF (@temp <> 0)
- BEGIN
- -- ÀÌ¹Ì »ç¿ëÁßÀÎ À̸§À̶ó´Âµ¥?
- RETURN -4
- END
- BEGIN TRANSACTION
- -- Àδø½Ã½ºÅÛÀÌ Àû¿ëµÇ¸é¼ ¸¶Áö¸·¿¡ WorldID¿Í 1°ªÀ» ´õ ³Ö¾î ÁÖ¾ú´Ù!
- INSERT INTO _Char (RefObjID, CharName16, Scale, Strength, Intellect, LatestRegion,PosX, PosY, PosZ, AppointedTeleport, InventorySize,
- LastLogout, CurLevel, MaxLevel, RemainGold, RemainStatPoint, RemainSkillPoint, HP, MP, JobLvl_Trader, JobLvl_Hunter, JobLvl_Robber, WorldID)
- VALUES (@RefCharID, @CharName, @CharScale, 20, 20, @StartRegionID, @StartPos_X, @StartPos_Y, @StartPos_Z, @DefaultTeleport, 45,
- GetDate(), 1, 1, 0, 0, 0, 200,200, 1, 1, 1, 1)
- SET @NewCharID = @@IDENTITY
- IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)
- BEGIN
- -- ij¸¯ÅÍ »ý¼º ½ÇÆÐ!
- ROLLBACK TRANSACTION
- RETURN -5
- END
- -- start by novice.
- -- ÀÌÁ¦ Slot ¾È¾´´Ù.. ±×³É Insert ¸¸..
- INSERT INTO _User VALUES (@UserJID, @NewCharID)
- -- finish by novice.
- -----------------------------------------------------------------------------
- -- 3-1. Àåºñ ½½·Ô ä¿ì±â
- -- [Àκ¥Å丮 ½½·Ô 96°³] + [Àåºñ½½·Ô 13°³] <- Àκ¥Å丮 È®Àå ¼ºñ½º ÈÄ 48°³¿¡¼ 96°³·Î Áõ°¡!!!(woos0)
- -----------------------------------------------------------------------------
- --PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!
- INSERT INTO _Inventory(CharID, Slot, ItemID)
- SELECT @NewCharID, cnt, 0
- FROM _RefDummySlot with( nolock )
- WHERE cnt < 109
- IF (@@ERROR <> 0)
- BEGIN
- -- Àκ¥Å丮 »ý¼º ½ÇÆÐ!
- ROLLBACK TRANSACTION
- RETURN -7
- END
- --PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!
- -- µðÆúÆ®·Î ¼±ÅÃÇÑ ¾ÆÀÌÅÛÀ» ´Ù½Ã ³Ö¾îÁÖÀÚ...
- /* ¿ä·± ¼ø¼·Î Á¤ÀǵǾî ÀÖ´Ù.
- 0: EQUIP_SLOT_HELM
- 1: EQUIP_SLOT_MAIL,
- 2: EQUIP_SLOT_SHOULDERGUARD,
- 3: EQUIP_SLOT_GAUNTLET,
- 4: EQUIP_SLOT_PANTS,
- 5: EQUIP_SLOT_BOOTS,
- 6: EQUIP_SLOT_WEAPON,
- 7: EQUIP_SLOT_SHIELD or ARROW,
- 8: EQUIP_SLOT_EARRING,
- 9: EQUIP_SLOT_NECKLACE,
- 10: EQUIP_SLOT_L_RING,
- 11: EQUIP_SLOT_R_RING,
- */
- DECLARE @ItemID BIGINT
- SET @ItemID = 0
- -- »ó°©
- IF (@RefMailID <> 0)
- BEGIN
- EXEC @ItemID = _FN_ADD_INITIAL_EQUIP @NewCharID, 1, @RefMailID, @DurMail
- IF (@ItemID <= 0)
- BEGIN
- ROLLBACK TRANSACTION
- RETURN -8
- END
- END
- -- ¹ÙÁö
- IF (@RefPantsID <> 0)
- BEGIN
- EXEC @ItemID = _FN_ADD_INITIAL_EQUIP @NewCharID, 4, @RefPantsID, @DurPants
- IF (@ItemID <= 0)
- BEGIN
- ROLLBACK TRANSACTION
- RETURN -9
- END
- END
- -- Boots
- IF (@RefBootsID <> 0)
- BEGIN
- EXEC @ItemID = _FN_ADD_INITIAL_EQUIP @NewCharID, 5, @RefBootsID, @DurBoots
- IF (@ItemID <= 0)
- BEGIN
- ROLLBACK TRANSACTION
- RETURN -10
- END
- END
- -- Weapon
- IF (@RefWeaponID <> 0)
- BEGIN
- EXEC @ItemID = _FN_ADD_INITIAL_EQUIP @NewCharID, 6, @RefWeaponID, @DurWeapon
- IF (@ItemID <= 0)
- BEGIN
- ROLLBACK TRANSACTION
- RETURN -11
- END
- END
- -- ¹æÆÐ
- IF (@RefShield <> 0)
- BEGIN
- EXEC @ItemID = _FN_ADD_INITIAL_EQUIP @NewCharID, 7, @RefShield, @DurShield
- IF (@ItemID <= 0)
- BEGIN
- ROLLBACK TRANSACTION
- RETURN -12
- END
- END
- -- Ȥ½Ã default·Î ¼±ÅÃÇÑ ¹«±â°¡ È°À̶ó¸é È»ì 250°³µéÀÌ È°Åëµµ ÇÔ²² ÁØ´Ù. ÁÒÄ¡?
- IF (@DefaultArrow <> 0)
- BEGIN
- EXEC @ItemID = _FN_ADD_INITIAL_EQUIP @NewCharID, 7, @DefaultArrow, 250
- IF (@ItemID <= 0)
- BEGIN
- ROLLBACK TRANSACTION
- RETURN -13
- END
- END
- -----------------------------------------------------------------------------
- -- 3-2. ¾Æ¹ÙŸ Inventory ½½·Ô ä¿ì±â
- -- [¾Æ¹ÙŸ Àκ¥Å丮 ½½·Ô 5°³]
- -- APPLY_AVATAR_SYSTEMÀÌ Àû¿ëµÇ¸é¼ Ãß°¡µÇ´Â ºÎºÐ
- -----------------------------------------------------------------------------
- --PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!
- INSERT INTO _InventoryForAvatar(CharID, Slot, ItemID)
- SELECT @NewCharID, cnt, 0
- FROM _RefDummySlot with( nolock )
- WHERE cnt < 5
- IF (@@ERROR <> 0)
- BEGIN
- -- ¾Æ¹ÙŸ Àκ¥Å丮 »ý¼º ½ÇÆÐ!
- ROLLBACK TRANSACTION
- RETURN -14
- END
- --PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!
- -----------------------------------------------------------------------------
- -- default skill³Ö¾îÁÖ±â
- -----------------------------------------------------------------------------
- DECLARE @country tinyINT
- EXEC @country = _GetObjCountry @RefCharID
- INSERT INTO _CharSkillMastery (CharID, MasteryID, Level)
- SELECT @NewCharID, MasteryID, 0
- FROM _RefCharDefault_SkillMastery with(nolock)
- WHERE Race = @country or Race = 3
- IF (@@error <> 0)
- BEGIN
- ROLLBACK TRANSACTION
- RETURN -15
- END
- INSERT INTO _CharSkill (CharID,SkillID,Enable)
- SELECT @NewCharID, SkillID, 1
- FROM _RefCharDefault_Skill with(nolock)
- WHERE Race = @country or Race = 3
- IF (@@error <> 0)
- BEGIN
- ROLLBACK TRANSACTION
- RETURN -16
- END
- -----------------------------------------------------------------------------
- -- ±âº» Äù½ºÆ® ³Ö¾îÁÖ±â
- -----------------------------------------------------------------------------
- INSERT INTO _CharQuest (CharID, QuestID, Status, AchievementCount, StartTime, EndTime, QuestData1, QuestData2)
- SELECT @NewCharID, ID, 1, 0, getdate(), getdate(), 0, 0
- FROM _RefQuest
- WHERE CodeName in (SELECT CodeName FROM _RefCharDefault_Quest with(nolock) WHERE (Race = @country or Race = 3) and RequiredLevel = 1 and Service = 1)
- IF (@@error <> 0)
- BEGIN
- ROLLBACK TRANSACTION
- RETURN -17
- END
- -----------------------------------------------------------------------------
- -- Static Avatar Initial Record ³Ö±â
- -----------------------------------------------------------------------------
- INSERT INTO _StaticAvatar(CharID) values(@NewCharID)
- IF (@@ERROR <> 0)
- BEGIN
- ROLLBACK TRANSACTION
- RETURN -18
- END
- -----------------------------------------------------------------------------
- -- Trijob ä¿ö³Ö±â!!!!!
- -----------------------------------------------------------------------------
- INSERT INTO _CharTrijob VALUES (@NewCharID, 0, 1, 0, 0, 0)
- IF (@@ERROR <> 0)
- BEGIN
- -- Àκ¥Å丮 »ý¼º ½ÇÆÐ!
- ROLLBACK TRANSACTION
- RETURN -19
- END
- -----------------------------------------------------------------------------
- -- CharList¿¡ ID ³Ö¾îÁÖ±â
- -----------------------------------------------------------------------------
- INSERT _CharNameList VALUES(@CharName, @NewCharID)
- exec _ADD_ITEM_EXTERN @CharName,'ITEM_MALL_RETURN_SCROLL_HIGH_SPEED',20,1
- exec _ADD_ITEM_EXTERN @CharName,'ITEM_MALL_PREMIUM_VIETNAM_GOLDTIME_PLUS',1,1
- exec _ADD_ITEM_EXTERN @CharName,'ITEM_MALL_SKILL_GOLD_TIME_SERVICE_TICKET_4W',1,1
- exec _ADD_ITEM_EXTERN @CharName,'ITEM_MALL_DAMAGE_ABS_20P_SCROLL',11,1
- exec _ADD_ITEM_EXTERN @CharName,'ITEM_MALL_DAMAGE_INC_20P_SCROLL',11,1
- exec _ADD_ITEM_EXTERN @CharName,'ITEM_MALL_REVERSE_RETURN_SCROLL',11,1
- exec _ADD_ITEM_EXTERN @CharName,'ITEM_MALL_HP_SUPERSET_5_BAG',1000,1
- exec _ADD_ITEM_EXTERN @CharName,'ITEM_MALL_MP_SUPERSET_5_BAG',1000,1
- exec _ADD_ITEM_EXTERN @CharName,'ITEM_COS_P_FLUTE_WHITE',1,1
- exec _ADD_ITEM_EXTERN @CharName,'ITEM_COS_P_RABBIT_SCROLL_SILK',1,1
- -- Quick Slot Á¤º¸ ÀúÀå¿ë!!!
- exec _AddNewClientConfig @NewCharID -- by novice...... for saving client configurations...
- COMMIT TRANSACTION
- RETURN @NewCharID
Add Comment
Please, Sign In to add comment