vSRO Paylaşım vSRO Max Level Query

Admin1

silkroadpvp.com.tr
Yönetici
Katılım
26 Ocak 2022
Mesajlar
511
Tepkime puanı
1
Puanları
0
Konum
KRAL
İlk Olarak AddLogChar'a
[HIDE]
SQL:
IF (@EventID = 22 and @Data2 = 100)  ----  Data2 = 100 olarak ayarlandı istediğiniz seviyeye Göre ayarlayabilirisniz.

BEGIN

    Exec sro_vt_log.._EventMaxLevel @CharID

END


SQL:
USE [SRO_VT_LOG]

GO



/****** Nesne: StoredProcedure [dbo].[_EventMaxLevel] Script Tarihi: 5.09.2023 15:43:55 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO



CREATE PROCEDURE [dbo].[_EventMaxLevel]

    @CharID INT

AS

BEGIN

    DECLARE @Charname16 VARCHAR(16)

    DECLARE @JID INT



    SELECT @Charname16 = C.CharName16, @JID = U.UserJID

    FROM SRO_VT_SHARD.._Char AS C

    INNER JOIN SRO_VT_SHARD.dbo._User AS U ON C.CharID = U.CharID

    WHERE C.CharID = @CharID



    DECLARE @EventLevel INT = 100 --- Seviye Sınırı Bildirim



    IF NOT EXISTS (SELECT CharName FROM _EventMaxLevelChar WHERE CharName = @Charname16)

    BEGIN

        INSERT INTO _EventMaxLevelChar (UserJID, CharID, CharName, '1', '0', GETDATE())

        VALUES (@JID, @CharID, @Charname16, '1', '0', GETDATE())

    END



    DECLARE @Total INT = (SELECT SUM(Total) FROM _EventMaxLevelChar)

    DECLARE @Active INT = (SELECT Active FROM _EventMaxLevelChar WHERE CharName = @Charname16)



    IF @Total <= 100

    BEGIN

        DECLARE @SilkAmount INT

        IF (@Total = 1) SET @SilkAmount = 300

        ELSE IF (@Total BETWEEN 2 AND 10) SET @SilkAmount = 200

        ELSE IF (@Total BETWEEN 11 AND 20) SET @SilkAmount = 140

        ELSE IF (@Total BETWEEN 21 AND 30) SET @SilkAmount = 130

        ELSE IF (@Total BETWEEN 31 AND 40) SET @SilkAmount = 120

        ELSE IF (@Total BETWEEN 41 AND 50) SET @SilkAmount = 110

        ELSE IF (@Total BETWEEN 51 AND 60) SET @SilkAmount = 100

        ELSE IF (@Total BETWEEN 61 AND 70) SET @SilkAmount = 90

        ELSE IF (@Total BETWEEN 71 AND 80) SET @SilkAmount = 80

        ELSE IF (@Total BETWEEN 81 AND 90) SET @SilkAmount = 70

        ELSE IF (@Total BETWEEN 91 AND 100) SET @SilkAmount = 60



        IF (@Active = 0)

        BEGIN

            IF EXISTS (SELECT * FROM SRO_VT_ACCOUNT.dbo.SK_Silk WHERE JID = @JID)

            BEGIN

                UPDATE SRO_VT_ACCOUNT.dbo.SK_Silk SET silk_own = silk_own + @SilkAmount WHERE JID = @JID

            END

            ELSE

            BEGIN

                INSERT INTO SRO_VT_ACCOUNT.dbo.SK_Silk (JID, silk_own, silk_gift, silk_point) VALUES (@JID, @SilkAmount, 0, 0)

            END



            DECLARE @Message NVARCHAR(MAX) = FORMATMESSAGE('[%s]. Karakter Seviye %s : [%s] %s kadar Silk kazandı.', @Total, @EventLevel, @Charname16, @SilkAmount)

            INSERT INTO MaxiGuard_User.._BridgeCommands (CommandID, Executor, Data1, Data2, Data3, Date)

            VALUES (500, 'Sistem', '17', @Message, 'Duyuru', GETDATE())



            UPDATE _EventMaxLevelChar SET Active = 1 WHERE CharID = @CharID



            IF (@Total = 100)

            BEGIN

                INSERT INTO MaxiGuard_User.._BridgeCommands (CommandID, Executor, Data1, Data2, Data3, Date)

                VALUES (500, 'Sistem', '17', 'TOP 100 ('+CAST(@EventLevel AS VARCHAR(20))+') Seviye Etkinliği sona erdi.', 'Duyuru', GETDATE())

            END

        END

    END

END


SQL:
USE [SRO_VT_LOG]

GO



/****** Object:  Table [dbo].[_EventMaxLevelChar]    Script Date: 5.09.2023 16:05:27 ******/

SET ANSI_NULLS ON

GO



SET QUOTED_IDENTIFIER ON

GO



SET ANSI_PADDING ON

GO



CREATE TABLE [dbo].[_EventMaxLevelChar](

    [ID] [int] IDENTITY(1,1) NOT NULL,

    [UserJID] [int] NULL,

    [CharID] [int] NULL,

    [CharName] [varchar](16) NULL,

    [Total] [int] NULL,

    [Active] [int] NULL,

    [Zaman] [datetime] NULL,

 CONSTRAINT [PK__EventMaxLevel] PRIMARY KEY CLUSTERED

(

    [ID] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]



GO



SET ANSI_PADDING OFF

GO
[/HIDE]
 

Konu görüntüleyen kullanıcılar

Benzer konular

Geri
Üst