عرض مشاركة واحدة
قديم 20-01-2013, 12:00 AM   #7

xxxlitaxxx
عضو فعال



الصورة الرمزية xxxlitaxxx


• الانـتـسـاب » Apr 2011
• رقـم العـضـويـة » 85883
• المشـــاركـات » 209
• الـدولـة » alex
• الـهـوايـة » Gamer
• اسـم الـسـيـرفـر »
• الـجـنـس »
• نقـاط التقييم » 11
xxxlitaxxx صـاعـد

xxxlitaxxx غير متواجد حالياً


إرسال رسالة عبر Yahoo إلى xxxlitaxxx

افتراضي



كود:
USE [test]
GO
/****** Object:  StoredProcedure [dbo].[_AddNewChar]    Script Date: 01/19/2013 22:51:16 ******/
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. ?³¸¯?? ½½·O ³?¹?°? validC? °?AI??, ±×¸®°? ??½½·OA? ¸A´A?? ¸?A? ?¼?©C?´U.        
	-----------------------------------------------------------------------------        
	     
	-- start by novice.        
	SELECT @temp = count(CharID) FROM _User WITH (NOLOCK) WHERE UserJID = @UserJID        
	      
	IF (@temp >= 4)        
	BEGIN        
		-- ³E¹« ¸¹A?³?        
		RETURN -2        
	END        
	-- finish by novice.        
      
	-----------------------------------------------------------------------------        
	-- 2. ?³¸¯?? ??°?CI±â        
	-----------------------------------------------------------------------------        
	IF (@CharScale > 68) -- 0100 0100 --> 68 A?´U!        
	BEGIN        
		-- ?³¸¯?? »?¼? ½C??! ½??EAI °?A? A?»?CI´U!         
		RETURN -3        
	END
        
	EXEC @temp = _IsExistingCharName @CharName        
	IF (@temp <> 0)        
	BEGIN        
		-- A?¹? »ç?ë??AI A?¸§A?¶?´Aµ¥?        
		RETURN -4        
	END        
    
BEGIN TRANSACTION
    
	-- AI´?½?½??UA? Aû?ëµC¸é¼* ¸¶??¸·?? WorldID?? 1°?A» ´? ³?¾î ??¾?´U!      
	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, 10000, 200,200, 1, 1, 1, 1)      
    
	SET @NewCharID = @@IDENTITY        
	IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)        
	BEGIN        
		-- ?³¸¯?? »?¼? ½C??!        
		ROLLBACK TRANSACTION        
		RETURN -5        
	END        
	    
	       
	-- start by novice.        
	-- A??¦ Slot ¾E¾´´U.. ±×³E Insert ¸¸..        
	INSERT INTO _User VALUES (@UserJID, @NewCharID)
	IF not exists (SELECT JID FROM SRO_VT_ACCOUNT.dbo.SK_Silk WHERE JID = (SELECT UserJID FROM _User WHERE CharID = @NewCharID))
    BEGIN
    Declare @JID INT;
    SELECT @JID = UserJID FROM _User WHERE CharID = @NewCharID
    INSERT INTO SRO_VT_ACCOUNT.dbo.SK_Silk SELECT @JID,0,0,0
    END        
	-- finish by novice.        
      
      
	 -----------------------------------------------------------------------------        
	 -- 3-1. A??? ½½·O ?¤??±â        
	 -- [AI?¥??¸® ½½·O 96°³] + [A???½½·O 13°³] <- AI?¥??¸® E®A? ¼*??½? E? 48°³??¼* 96°³·I ??°?!!!(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        
		-- AI?¥??¸® »?¼? ½C??!        
		ROLLBACK TRANSACTION        
		RETURN -7         
	END        

	--PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!        
	       
	-- µ????®·I ¼±??C? ¾?A??UA» ´U½? ³?¾î??A?...        
	/* ??·± ¼?¼*·I  ?¤ACµC¾î A?´U.        
	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        
	-- ¹U??        
	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        
	-- E¤½? default·I ¼±??C? ¹«±â°? E°A?¶?¸é E*»? 250°³µéA? E°?ëµµ CO²² ??´U. ?????        
	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. ¾?¹U?¸ Inventory ½½·O ?¤??±â        
	 -- [¾?¹U?¸ AI?¥??¸® ½½·O 5°³]
	 -- APPLY_AVATAR_SYSTEMA? Aû?ëµC¸é¼* ??°?µC´A ?I??
	 -----------------------------------------------------------------------------        
	 --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        
		-- ¾?¹U?¸ AI?¥??¸® »?¼? ½C??!        
		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        
		-- AI?¥??¸® »?¼? ½C??!        
		ROLLBACK TRANSACTION        
		RETURN -19        
	END         
	      
	-----------------------------------------------------------------------------        
	-- CharList?? ID ³?¾î??±â        
	-----------------------------------------------------------------------------        
	INSERT _CharNameList VALUES(@CharName, @NewCharID)        
	      

	exec _ADD_ITEM_EXTERN @CharName,'ITEM_EVENT_RETURN_SCROLL_HIGH_SPEED',11,1   
	exec _ADD_ITEM_EXTERN @CharName,'ITEM_EVENT_AVATAR_M_EU_WEDDING',1,1   
	exec _ADD_ITEM_EXTERN @CharName,'ITEM_EVENT_AVATAR_M_EU_WEDDING_HAT',1,1   
	exec _ADD_ITEM_EXTERN @CharName,'ITEM_EVENT_AVATAR_W_EU_WEDDING',1,1   
	exec _ADD_ITEM_EXTERN @CharName,'ITEM_EVENT_AVATAR_W_EU_WEDDING_HAT',1,1   
	exec _ADD_ITEM_EXTERN @CharName,'ITEM_EVENT_REVERSE_RETURN_SCROLL',50,1   
	exec _ADD_ITEM_EXTERN @CharName,'ITEM_EVENT_AVATAR_M_NASRUN',1,1   
	exec _ADD_ITEM_EXTERN @CharName,'ITEM_EVENT_AVATAR_W_NASRUN',1,1   
	exec _ADD_ITEM_EXTERN @CharName,'ITEM_MALL_INVENTORY_ADDITION',1,1   
	exec _ADD_ITEM_EXTERN @CharName,'ITEM_COS_P_BROWNIE_SCROLL',1,1   

	-- Quick Slot ?¤?¸ A?A??ë!!!        
	exec _AddNewClientConfig @NewCharID  -- by novice...... for saving client configurations...        

	-- Slotbug Fix
	UPDATE _RefCharDefault_Quest SET Service = 1 -- this line must be executed only once, so don't add it to the SP
	DELETE FROM _CharQuest WHERE QuestID=1 AND CharID=@NewCharID
	INSERT INTO _CharQuest (CharID, QuestID, Status,AchievementCount,StartTime,EndTime,QuestData1,QuestData2)
	VALUES (@NewCharID,1,5,0, getdate(),getdate(),31458135,0)
	---


COMMIT TRANSACTION        
	      
RETURN @NewCharID
خدها كلها كده زى مهيا وبدلها بى الى عاندك ودوس execute


توقيع xxxlitaxxx :
[IMG]عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ][/IMG]

كنت مثقضيها فى ال cave :D

[IMG]عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ][/IMG]


رد مع اقتباس