So this shit removes any kind of blue from an item, that you want removed for whatever reason. Currently its designed to remove red stats but it can be changed to anything by changing BETWEEN 1 - 4 if I remember correctly.
Been over 3 years now that I have this shit. Time to get rid of it.
Oh by the way, this shit is slow as hell probably since it was written at the beginning of my so-called sro career.
There's no proper error handling, transactions or anything. Just pure bullshit. I know, I could've done this a lot easier by STUFF-ing or PIVOT-ing, for example. However, 3 yrs old, what do ya expect.
PS: I'm not releasing the table _RefMagicOptNew; Either you make your own or use statics for the blues.
I've released a formula to calculate blues static somewhere on epvp or RZ before. Don't remember where that shit was. However currently its as dynamic as it can be for various blues.
HF.
- The beloved Royalblade
- Shitty mention is annoying. So fuck this shit into pastebin.
Code:
USE [SRO_VT_ROYAL] GO /****** Object: StoredProcedure [dbo].[_RedStatRemover] Script Date: 03/07/2016 10:36:24 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[_RedStatRemover] [MENTION=395373]Chari[/MENTION]D INT AS DECLARE [MENTION=1985011]param[/MENTION]1 BIGINT, [MENTION=1985011]param[/MENTION]2 BIGINT, [MENTION=1985011]param[/MENTION]3 BIGINT, [MENTION=1985011]param[/MENTION]4 BIGINT, [MENTION=1985011]param[/MENTION]5 BIGINT, [MENTION=1985011]param[/MENTION]6 BIGINT, [MENTION=1985011]param[/MENTION]7 BIGINT, [MENTION=1985011]param[/MENTION]8 BIGINT, [MENTION=1985011]param[/MENTION]9 BIGINT, [MENTION=1985011]param[/MENTION]10 BIGINT, [MENTION=1985011]param[/MENTION]Num TINYINT, [MENTION=806297]sql[/MENTION] nvarchar(400), [MENTION=783256]redsta[/MENTION]t TINYINT, @ID64 INT; SELECT [MENTION=1985011]param[/MENTION]1 = magic1.ID , [MENTION=1985011]param[/MENTION]2 = magic2.ID , [MENTION=1985011]param[/MENTION]3 = magic3.ID , [MENTION=1985011]param[/MENTION]4 = magic4.ID , [MENTION=1985011]param[/MENTION]5 = magic5.ID , [MENTION=1985011]param[/MENTION]6 = magic6.ID , [MENTION=1985011]param[/MENTION]7 = magic7.ID , [MENTION=1985011]param[/MENTION]8 = magic8.ID , [MENTION=1985011]param[/MENTION]9 = magic9.ID , [MENTION=1985011]param[/MENTION]10 = magic10.ID, [MENTION=1985011]param[/MENTION]Num = items0.MagParamNum, @ID64 = items0.ID64 FROM SRO_VT_SHARD_INIT.dbo._Inventory as invent0 INNER JOIN SRO_VT_SHARD_INIT.dbo._Items as items0 on invent0.ItemID = items0.ID64 AND (invent0.Slot = 13) INNER JOIN SRO_VT_SHARD_INIT.dbo._RefObjCommon as ref0 on items0.RefItemID = ref0.ID INNER JOIN SRO_VT_SHARD_INIT.dbo._Char as chart on invent0.CharID = chart.CharID LEFT JOIN _RefMagicOptNew as magic1 on (items0.MagParam1 & 2147483647) = magic1.ID LEFT JOIN _RefMagicOptNew as magic2 on (items0.MagParam2 & 2147483647) = magic2.ID LEFT JOIN _RefMagicOptNew as magic3 on (items0.MagParam3 & 2147483647) = magic3.ID LEFT JOIN _RefMagicOptNew as magic4 on (items0.MagParam4 & 2147483647) = magic4.ID LEFT JOIN _RefMagicOptNew as magic5 on (items0.MagParam5 & 2147483647) = magic5.ID LEFT JOIN _RefMagicOptNew as magic6 on (items0.MagParam6 & 2147483647) = magic6.ID LEFT JOIN _RefMagicOptNew as magic7 on (items0.MagParam7 & 2147483647) = magic7.ID LEFT JOIN _RefMagicOptNew as magic8 on (items0.MagParam8 & 2147483647) = magic8.ID LEFT JOIN _RefMagicOptNew as magic9 on (items0.MagParam9 & 2147483647) = magic9.ID LEFT JOIN _RefMagicOptNew as magic10 on (items0.MagParam10 & 2147483647) = magic10.ID LEFT JOIN _RefMagicOptNew as magic11 on (items0.MagParam11 & 2147483647) = magic11.ID LEFT JOIN _RefMagicOptNew as magic12 on (items0.MagParam12 & 2147483647) = magic12.ID WHERE chart.CharID = [MENTION=395373]Chari[/MENTION]D SET [MENTION=783256]redsta[/MENTION]t = (SELECT CASE WHEN [MENTION=1985011]param[/MENTION]1 BETWEEN 1 AND 4 THEN 1 WHEN [MENTION=1985011]param[/MENTION]2 BETWEEN 1 AND 4 THEN 2 WHEN [MENTION=1985011]param[/MENTION]3 BETWEEN 1 AND 4 THEN 3 WHEN [MENTION=1985011]param[/MENTION]4 BETWEEN 1 AND 4 THEN 4 WHEN [MENTION=1985011]param[/MENTION]5 BETWEEN 1 AND 4 THEN 5 WHEN [MENTION=1985011]param[/MENTION]6 BETWEEN 1 AND 4 THEN 6 WHEN [MENTION=1985011]param[/MENTION]7 BETWEEN 1 AND 4 THEN 7 WHEN [MENTION=1985011]param[/MENTION]8 BETWEEN 1 AND 4 THEN 8 WHEN [MENTION=1985011]param[/MENTION]9 BETWEEN 1 AND 4 THEN 9 WHEN [MENTION=1985011]param[/MENTION]10 BETWEEN 1 AND 4 THEN 10 ELSE null END ) IF [MENTION=783256]redsta[/MENTION]t < [MENTION=1985011]param[/MENTION]Num BEGIN SET [MENTION=806297]sql[/MENTION] = ' UPDATE SRO_VT_SHARD_INIT.dbo._Items SET MagParam' + CAST [MENTION=783256]redsta[/MENTION]t as nvarchar(2)) + ' = MagParam' + CAST [MENTION=1985011]param[/MENTION]Num as nvarchar(2)) + ', MagParam' + CAST [MENTION=1985011]param[/MENTION]Num as nvarchar(2)) + ' = MagParam' + CAST [MENTION=783256]redsta[/MENTION]t as nvarchar(2)) + ', MagParamNum -= 1 WHERE ID64 = ' + CAST(@ID64 as nvarchar(10)) EXEC sp_executeSQL [MENTION=806297]sql[/MENTION], N [MENTION=783256]redsta[/MENTION]t TINYINT, [MENTION=1985011]param[/MENTION]Num TINYINT, @ID64 INT', [MENTION=783256]redsta[/MENTION]t, [MENTION=1985011]param[/MENTION]Num, @ID64 Return -3 END ELSE IF [MENTION=783256]redsta[/MENTION]t = [MENTION=1985011]param[/MENTION]Num BEGIN UPDATE SRO_VT_SHARD_INIT.dbo._Items SET MagParamNum -= 1 WHERE ID64 = @ID64 RETURN -1 END ELSE BEGIN DECLARE [MENTION=3898309]charname[/MENTION] varchar(32) = (SELECT Charname16 FROM SRO_VT_SHARD_INIT.dbo._Char WHERE CharID = [MENTION=395373]Chari[/MENTION]D) INSERT INTO _Notification (Type,Target,Content,Executor) VALUES (4 [MENTION=3898309]charname[/MENTION], 'Error | Put the Item into Inventory Slot 1 please.',0) EXEC SRO_VT_SHARD_INIT.dbo._ADD_ITEM_EXTERN [MENTION=3898309]charname[/MENTION],'ITEM_SKALIDOR_ANAL_FUCK_REDSTAT',1,0 Return -2 END