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






