الموضوع: ارجو الحل
عرض مشاركة واحدة
قديم 09-10-2018, 11:22 AM   #15

#3mr
عضو مميز



الصورة الرمزية #3mr


• الانـتـسـاب » Aug 2009
• رقـم العـضـويـة » 63477
• المشـــاركـات » 684
• الـدولـة » أم الدنيــــا
• الـهـوايـة » Silkroad
• اسـم الـسـيـرفـر » Private Server
• الـجـنـس » Male
• نقـاط التقييم » 17
#3mr صـاعـد

#3mr غير متواجد حالياً



افتراضي رد: ارجو الحل



أعمل واحد من دول على حسب البلص عندك وأشتغل بفيلتر وحدد الماكس بلص بعد كده بADV

أعمل ده الاول لو منفعشى اعمل التانى

[Procedure: [SRO_VT_LOG].[dbo].[_AddLogItem

كود:
/* Item upgrading */
IF (@Operation = 90 OR @Operation = 160)
BEGIN
	/* Start: Max Plus */
	DECLARE @strDescStrip VARCHAR(128)
	DECLARE @ItemID INT

	DECLARE @MaxOptLevel TINYINT
	SET @MaxOptLevel = 12

	/* Get current fused plus */
	SET @len_desc1 = CHARINDEX (']', @strDesc)
	IF (@len_desc1 = 9)
	BEGIN
		SET @strDesc = SUBSTRING(@strDesc, 0, 9)
		SET @strDescStrip = SUBSTRING(@strDesc, 8, 1)
	END
	ELSE IF (@len_desc1 = 10)
	BEGIN
		SET @strDesc = SUBSTRING(@strDesc, 0, 10)
		SET @strDescStrip = SUBSTRING(@strDesc, 8, 2)
	END
	/* Check if OptLevel above @MaxOptLevel */
	IF (@strDescStrip >= @MaxOptLevel)
	BEGIN
		/* Get ItemID */
		SELECT @ItemID = ID64 from [SRO_VT_SHARD].[dbo].[_Items] WHERE Serial64 = @ItemSerial
		/* Update items if has more than @MaxOptLevel without Adv elixir*/
		UPDATE [SRO_VT_SHARD].[dbo].[_Items] SET OptLevel = @MaxOptLevel WHERE OptLevel > @MaxOptLevel AND Serial64 = @ItemSerial
		/* Delete Adv elixir effect for item if has more than @MaxOptLevel with Adv elixir */
		DELETE FROM [SRO_VT_SHARD].[dbo].[_BindingOptionWithItem] WHERE nItemDBID IN (
			SELECT a.ID64 FROM [SRO_VT_SHARD].[dbo].[_Items] a WITH (NOLOCK)
			INNER JOIN [SRO_VT_SHARD].[dbo].[_BindingOptionWithItem] b ON a.ID64 = b.nItemDBID
			WHERE a.ID64 = @ItemID AND (a.OptLevel + b.nOptValue) > @MaxOptLevel
			AND b.bOptType = 2
		)
	END
	RETURN -1
	/* End: Max Plus */
END

[Procedure: [SRO_VT_LOG].[dbo].[_AddLogChar


كود:
/* Login/Logout sequence (4 = Login, 6 = Logout) */
IF (@EventID = 4 OR @EventID = 6)
BEGIN
	/*
	 * Begin: Item Plus check
	 */
	DECLARE @UserJID INT, @GuildID INT, @MaxOptLevel TINYINT
	SET @MaxOptLevel = 12	-- Set Max Plus value (change this)
	/*
	 * Get JID and GuildID info
	 */
	SELECT @UserJID = a.UserJID, @GuildID = b.GuildID FROM [SRO_VT_SHARD].[dbo].[_User] a WITH (NOLOCK)
		INNER JOIN [SRO_VT_SHARD].[dbo].[_Char] b ON a.CharID = b.CharID WHERE a.CharID = @CharID
	/*
	 * 1. INVENTORY: Update items in inventory if has more than +12 without Adv elixir
	 */
	UPDATE [SRO_VT_SHARD].[dbo].[_Items] SET OptLevel = @MaxOptLevel WHERE OptLevel > @MaxOptLevel AND ID64 IN (
		SELECT ItemID FROM [SRO_VT_SHARD].[dbo].[_Inventory] WITH (NOLOCK)
		WHERE CharID = @CharID AND ItemID > 0
	)
	/*
	 * 2. INVENTORY: Remove Adv elixir effect for items in inventory if has more than +12 with Adv elixir
	 */
	DELETE FROM [SRO_VT_SHARD].[dbo].[_BindingOptionWithItem] WHERE nItemDBID IN (
		SELECT a.ItemID FROM [SRO_VT_SHARD].[dbo].[_Inventory] a WITH (NOLOCK) 
		INNER JOIN [SRO_VT_SHARD].[dbo].[_Items] b ON a.ItemID = b.ID64 
		INNER JOIN [SRO_VT_SHARD].[dbo].[_BindingOptionWithItem] c ON a.ItemID = c.nItemDBID
		WHERE a.CharID = @CharID AND a.ItemID > 0 AND (b.OptLevel + c.nOptValue) > @MaxOptLevel
		AND c.bOptType = 2
	)
	/*
	 * 3. PERSONAL STORAGE: Update items in personal storage if has more than +12 without Adv elixir
	 */
	UPDATE [SRO_VT_SHARD].[dbo].[_Items] SET OptLevel = @MaxOptLevel WHERE OptLevel > @MaxOptLevel AND ID64 IN (
		SELECT ItemID FROM [SRO_VT_SHARD].[dbo].[_Chest] WITH (NOLOCK)
		WHERE UserJID = @UserJID AND ItemID > 0
	)
	/*
	 * 4. PERSONAL STORAGE: Remove Adv elixir effect for items in personal storage if has more than +12 with Adv elixir
	 */
	DELETE FROM [SRO_VT_SHARD].[dbo].[_BindingOptionWithItem] WHERE nItemDBID IN (
		SELECT a.ItemID FROM [SRO_VT_SHARD].[dbo].[_Chest] a WITH (NOLOCK) 
		INNER JOIN [SRO_VT_SHARD].[dbo].[_Items] b ON a.ItemID = b.ID64 
		INNER JOIN [SRO_VT_SHARD].[dbo].[_BindingOptionWithItem] c ON a.ItemID = c.nItemDBID
		WHERE a.UserJID = @UserJID AND a.ItemID > 0 AND (b.OptLevel + c.nOptValue) > @MaxOptLevel
		AND c.bOptType = 2
	)
	/*
	 * 5. GUILD: If character is guild member, check Item Plus in Guild Inventory
	 */
	IF (@GuildID <> 0)
	BEGIN
		/*
		 * 5.1. Update items in guild storage if has more than +12 without Adv elixir
		 */
		UPDATE [SRO_VT_SHARD].[dbo].[_Items] SET OptLevel = @MaxOptLevel WHERE OptLevel > @MaxOptLevel AND ID64 IN (
			SELECT ItemID FROM [SRO_VT_SHARD].[dbo].[_GuildChest] WITH (NOLOCK)
			WHERE GuildID = @GuildID AND ItemID > 0
		)
		/*
		 * 5.2. Remove Adv elixir effect for items in guild storage if has more than +12 with Adv elixir
		 */
		DELETE FROM [SRO_VT_SHARD].[dbo].[_BindingOptionWithItem] WHERE nItemDBID IN (
			SELECT a.ItemID FROM [SRO_VT_SHARD].[dbo].[_GuildChest] a WITH (NOLOCK) 
			INNER JOIN [SRO_VT_SHARD].[dbo].[_Items] b ON a.ItemID = b.ID64 
			INNER JOIN [SRO_VT_SHARD].[dbo].[_BindingOptionWithItem] c ON a.ItemID = c.nItemDBID
			WHERE a.GuildID = @GuildID AND a.ItemID > 0 AND (b.OptLevel + c.nOptValue) > @MaxOptLevel
			AND c.bOptType = 2
		)
	END
	/*
	 * END: Item Plus check
	 */
END


من غير فيلتر ده او ده هيعمل معاك الواجب


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

التعديل الأخير تم بواسطة #3mr ; 09-10-2018 الساعة 11:32 AM