MaxiGuard Paylaşımları GM Bulma Eventi

  • Konuyu başlatan Konuyu başlatan Zeus
  • Başlangıç tarihi Başlangıç tarihi
Cevaplar2
Görüntüleme80
Katılım
22 Ocak 2026
Mesajlar
39
Tepkime puanı
29
Puanları
0
Discord
dd
Mevcut Bakiye
0 ₺
Merhaba Gm bulma eventi ile karşınızdayım eğer prosedürde hata vb varsa Üstadlar uyarsınlar ben defalarca test ettim eğer kullanıcak olan varsa test etsin herhangi bir hatada buraya yazmayın:D
Oyuna 1 tane karekter girin o nick, prosedüre yazın event çalışması için karekterin oyunda olması lazım ayrıca maxiguard gerekli triggerler açık olmalıdır.
Önce tabloyu oluşturalım queryler okutup tabloları oluşturun ama yedek alın öncelikle.Etkinlik Çalışma Mantığı Karekter bir bölgeye gidip saklanıyor onu arayan bir player eğer onu görürse all chat kısmına !1 yazarak kazanabilir bug olmaması için sadece çarın yanındaysa çalışır eğer değilse uyarı verir sistem gerekli bölgede değilsin diye komutuda

SQL:
---//Etkinlik başlatma komutu
 EXEC xxx_FindGM @CharID=0, @Charname='System', @Message='', @TYPE=1 --- xxx olan yer sizin dbniz

REPLYANDTHANKS][CODE=sql]
USE [xxx] -- kendi db adın
GO

/****** Object:  Table [dbo].[_EventStatus]    Script Date: 24.03.2026 14:54:44 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[_EventStatus](
    [EventName] [varchar](50) NOT NULL,
    [Registration] [tinyint] NOT NULL,
    [Service] [tinyint] NOT NULL
) ON [PRIMARY]
GO
---/2. Tablo
[CODE=sql]
USE [xxx] Kendi dbn
GO

/****** Object:  Table [dbo].[Settings_Search_N_Destroy]    Script Date: 24.03.2026 14:55:32 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[Settings_Search_N_Destroy](
    [id] [int] NOT NULL,
    [WorldID] [int] NULL,
    [RegionID] [int] NULL,
    [PosX] [float] NULL,
    [PosY] [float] NULL,
    [PosZ] [float] NULL,
    [Location] [varchar](100) NULL,
PRIMARY KEY CLUSTERED
(
    [id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO

//////SETTİNG SEARCH TABLOSUNA ALTAKİ txt indirip içindekileri yapıştırın ordaki verilere göre doldurmaya devam edebilirsiniz//////
 
//////Son Olarak Prosedür Db ismini ve Tablo yollarını düzenlemeyi unutmayın////////
[CODE=sql]
USE [xxx] ---Knedi db adınız
GO

/****** Object:  StoredProcedure [dbo].[_FindGM]    Script Date: 24.03.2026 14:57:29 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO


CREATE   PROCEDURE [dbo].[_FindGM]
    @CharID int,
    @Charname varchar(25),
    @Message varchar(128),
    @TYPE int = 0
AS
BEGIN
    SET NOCOUNT ON;

    DECLARE @TargetGM VARCHAR(25) = 'DD';
    DECLARE @RewardSilk VARCHAR(10) = '100';
    DECLARE @EventNameKey VARCHAR(50) = 'SearchNDestroy';
    DECLARE @FinalCityWarp VARCHAR(100) = '1 32787 952 -134 1033'; -- Bitiş Şehri Koordinatı

    SET @Message = LTRIM(RTRIM(@Message));
    IF (@TYPE = 1)
    BEGIN
        UPDATE [xxx].[dbo].[_Event_Counter] SET CurrentRound = 1, ActiveTargetID = 1 WHERE EventName = @EventNameKey;--- kendi db adını gir updaten sonra

        -- 2. PLANLI DUYURULAR (Geri Sayım)
        -- Anında:
        INSERT INTO MaxiGuard_User.._BridgeCommands (CommandID, Executor, Data1, Data2, Data3, Date)
        VALUES (500, 'ff0000', '17', '[Find GM] Event will start in 10 minutes! Get ready.', 'Notice', GETDATE());

        -- 5. Dakikada (5 Dakika Kaldı):
        INSERT INTO MaxiGuard_User.._BridgeCommands_Planned (CommandID, Executor, Data1, Data2, Data3, DateToExecute)
        VALUES (500, 'ff0000', '17', '[Find GM] 5 Minutes left! Prepare your reverse scrolls.', 'Notice', DATEADD(MINUTE, 5, GETDATE()));

        -- 9. Dakikada (Son 1 Dakika):
        INSERT INTO MaxiGuard_User.._BridgeCommands_Planned (CommandID, Executor, Data1, Data2, Data3, DateToExecute)
        VALUES (500, 'ff0000', '17', '[Find GM] ONLY 1 MINUTE LEFT! GM is preparing to hide!', 'Notice', DATEADD(MINUTE, 9, GETDATE()));

        -- 3. ASIL BAŞLAMA (10. Dakikada)
        DECLARE @W1 INT, @R1 INT, @X1 INT, @Y1 INT, @Z1 INT, @L1 VARCHAR(100);
        SELECT TOP 1 @W1 = WorldID, @R1 = RegionID, @X1 = PosX, @Y1 = PosY, @Z1 = PosZ, @L1 = Location
        FROM [xxx].[dbo].[Settings_Search_N_Destroy] WITH (NOLOCK) WHERE id = 1;

        DECLARE @Coords1 VARCHAR(250) = CAST(@W1 AS VARCHAR) + ' ' + CAST(@R1 AS VARCHAR) + ' ' + CAST(@X1 AS VARCHAR) + ' ' + CAST(@Z1 AS VARCHAR) + ' ' + CAST(@Y1 AS VARCHAR);
        INSERT INTO MaxiGuard_User.._BridgeCommands_Planned (CommandID, Executor, Data1, Data2, Data3, DateToExecute)
        VALUES (68, 'SMC', @TargetGM, @Coords1, 'Teleport', DATEADD(MINUTE, 10, GETDATE()));

        DECLARE @StartMsg VARCHAR(250) = '[Find GM] Event STARTED! Round: 1 | Area: ' + ISNULL(@L1, 'Secret Area');
        INSERT INTO MaxiGuard_User.._BridgeCommands_Planned (CommandID, Executor, Data1, Data2, Data3, DateToExecute)
        VALUES (500, 'ff0000', '17', @StartMsg, 'Notice', DATEADD(MINUTE, 10, GETDATE()));

        RETURN;
    END

    IF (@Message = '!1')
    BEGIN
        DECLARE @ActiveRound INT, @ActiveID INT, @FinderRegion INT, @TargetRegion INT;
        SELECT @ActiveRound = CurrentRound, @ActiveID = ActiveTargetID FROM xxx.dbo._Event_Counter WITH (NOLOCK) WHERE EventName = @EventNameKey;
        IF (ISNULL(@ActiveRound, 0) = 0)
        BEGIN
            INSERT INTO MaxiGuard_User.._BridgeCommands (CommandID, Executor, Data1, Data2, Data3, Date)
            VALUES (500, 'ServerMessage', '3', 'Event is NOT active!', @Charname, GETDATE());
            RETURN;
        END

        SELECT @FinderRegion = LatestRegion FROM SRO_VT_SHARD.dbo._Char WITH (NOLOCK) WHERE CharID = @CharID;
        SELECT @TargetRegion = LatestRegion FROM SRO_VT_SHARD.dbo._Char WITH (NOLOCK) WHERE CharName16 = @TargetGM;

        IF (@FinderRegion <> @TargetRegion)
        BEGIN
            INSERT INTO MaxiGuard_User.._BridgeCommands (CommandID, Executor, Data1, Data2, Data3, Date)
            VALUES (500, 'ServerMessage', '3', 'You are in the WRONG area! Find the GM first.', @Charname, GETDATE());
            RETURN;
        END
        INSERT INTO MaxiGuard_User.._BridgeCommands (CommandID, Executor, Data1, Data2, Data3, Date)
        VALUES (56, 'EventReward', @Charname, '0', @RewardSilk, GETDATE());
        DECLARE @NextW INT, @NextR INT, @NextX INT, @NextY INT, @NextZ INT, @NextLoc VARCHAR(100);
        SELECT TOP 1 @NextW = WorldID, @NextR = RegionID, @NextX = PosX, @NextY = PosY, @NextZ = PosZ, @NextLoc = Location
        FROM xxx.dbo.Settings_Search_N_Destroy WITH (NOLOCK) WHERE id > @ActiveID ORDER BY id ASC;

        IF (@NextR IS NOT NULL)
        BEGIN
            DECLARE @RoundMsg VARCHAR(500) = '[Find GM] Round ' + CAST(@ActiveRound AS VARCHAR) + ' Winner: ' + UPPER(@Charname) + ' | Next Area: ' + ISNULL(@NextLoc, '???');
            INSERT INTO MaxiGuard_User.._BridgeCommands (CommandID, Executor, Data1, Data2, Data3, Date)
            VALUES (500, 'ff0000', '17', @RoundMsg, 'Notice', GETDATE());

            DECLARE @NextCoords VARCHAR(250) = CAST(@NextW AS VARCHAR) + ' ' + CAST(@NextR AS VARCHAR) + ' ' + CAST(@NextX AS VARCHAR) + ' ' + CAST(@NextZ AS VARCHAR) + ' ' + CAST(@NextY AS VARCHAR);
            INSERT INTO MaxiGuard_User.._BridgeCommands (CommandID, Executor, Data1, Data2, Data3, Date)
            VALUES (68, 'SMC', @TargetGM, @NextCoords, 'Teleport', GETDATE());

            UPDATE xxx.dbo._Event_Counter SET CurrentRound = @ActiveRound + 1, ActiveTargetID = @ActiveID + 1 WHERE EventName = @EventNameKey;
        END
        ELSE
        BEGIN
 
            UPDATE xxx.dbo._Event_Counter SET CurrentRound = 0, ActiveTargetID = 0 WHERE EventName = @EventNameKey;

            INSERT INTO MaxiGuard_User.._BridgeCommands (CommandID, Executor, Data1, Data2, Data3, Date)
            VALUES (500, 'ff0000', '17', '[Find GM] Final Winner: ' + UPPER(@Charname) + '! See you next time.', 'Notice', GETDATE());

            INSERT INTO MaxiGuard_User.._BridgeCommands (CommandID, Executor, Data1, Data2, Data3, Date)
            VALUES (68, 'SMC', @TargetGM, @FinalCityWarp, 'Teleport', GETDATE());

        END
    END
END
GO
 

Ekli dosyalar

Son düzenleme:
Good Job
 
Paylaşım için teşekkürler.
 
5,786Konular
7,930Mesajlar
1,005Kullanıcılar
Geri
Üst