Want Help About PROCEDURE Sox Random item sos , moon , sun
have item dg1 to dg 9 want when click on item drop on chest
have item dg1 to dg 9 want when click on item drop on chest
USE SHARD
GO
/****** Object: StoredProcedure [dbo].[_BoxesRare] Script Date: 5/28/2026 3:41:29 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[_BoxesRare]
@CharID INT,
@RefItemID INT
AS
BEGIN TRY
SET NOCOUNT ON;
IF @RefItemID != 45264
RETURN
DECLARE @LuckyRate INT = 35
DECLARE @RandomLucky INT
DECLARE @SelectedGroup VARCHAR(20)
DECLARE @SelectedItemCode VARCHAR(128)
DECLARE @FinalItemID INT
DECLARE @ItemName VARCHAR(128)
DECLARE @Message VARCHAR(MAX)
SET @RandomLucky = ROUND((98 * RAND()) + 1.0)
IF @RandomLucky <= @LuckyRate
BEGIN
DECLARE @GroupRandom INT
SET @GroupRandom = ROUND((100 * RAND()),0)
IF @GroupRandom <= 50
SET @SelectedGroup = 'A_RARE'
ELSE IF @GroupRandom <= 80
SET @SelectedGroup = 'B_RARE'
ELSE
SET @SelectedGroup = 'C_RARE'
SELECT TOP 1
@SelectedItemCode = CodeName128
FROM Vengard_SHARD.._RefObjCommon WITH(NOLOCK)
WHERE CodeName128 LIKE '%' + @SelectedGroup
ORDER BY NEWID()
SELECT
@FinalItemID = ID
FROM Vengard_SHARD.._RefObjCommon WITH(NOLOCK)
WHERE CodeName128 = @SelectedItemCode
IF @FinalItemID IS NOT NULL
BEGIN
SELECT TOP 1
@ItemName = Param8
FROM Vengard_SHARD.._RefObjCommon ROC WITH(NOLOCK)
INNER JOIN _ItemNames I WITH(NOLOCK)
ON I.NameCode = ROC.NameStrID128
WHERE ROC.ID = @FinalItemID
IF @ItemName IS NULL
SET @ItemName = 'Unknown Item'
SET @Message = 'Congratulations! You received ['
+ @ItemName +
'] from the box.'
EXEC _AddNotificationByCharID
@CharID,
@Message,
1
EXEC _AddItemToChest
@CharID,
@FinalItemID,
1,
'Box Reward'
INSERT INTO _ChestsLog
SELECT
@CharID,
@FinalItemID,
GETDATE()
END
ELSE
BEGIN
EXEC _AddNotificationByCharID
@CharID,
'No item found in selected group.',
1
END
END
ELSE
BEGIN
EXEC _AddNotificationByCharID
@CharID,
'The box failed. Better luck next time!',
1
END
END TRY
BEGIN CATCH
INSERT INTO _ErrorLog
SELECT
1,
ERROR_MESSAGE() + ' | ' + ERROR_PROCEDURE(),
GETDATE()
END CATCH
thanks
Ekli dosyalar
