Resultados 1 a 5 de 5
  1. #1
    Membro VIP ADMTec's Avatar
    Data de Ingresso
    Mar 2015
    Posts
    259
    Thanks Thanks Given 
    7
    Thanks Thanks Received 
    12
    Thanked in
    6 Posts
    Mencionado
    62 Post(s)
    MEU HUMOR
    Bored

    ImperiaMuCMS v2 Full Package & Updates




    CTRL+C CTRL+V
    peguei de outro forum!!!!

    estou postando aqui a ImperiaMuCMS 2.0.7 que esta nulled mas tem varios modulos que nao estao ativos!


    modulos que nao estao ativos:



    Bug Tracker
    Rename Character
    Market
    Web Bank
    Transfer Coins
    My Vault
    Recruit a Friend
    Claim Reward
    Items Inventory
    Activity Reward
    Badges
    Lottery
    Architect
    Auctions
    Achievements
    Cash Shop
    Dual Skill Tree
    Dual Stats
    Starting Kit
    Guild Web Bank
    Wheel of Fortune


    se alguem puder tentar ativar os modulos ou entao decriptar para que possa ser corrigido esses erros!






    Support Season 6 - Season 15






    Features:


    Bug Tracker
    Changelogs
    Donation
    Homepay
    Interkassa
    Mercadopago
    Nganluong
    Pagseguro
    Paygol
    Paymentwall
    Paynl
    Paypal
    Payu
    Superrewards
    Western Union
    Guides
    Profiles
    Guild
    Player
    Rankings
    Achievements
    AFK
    Arka War History
    Blood Castle
    Chaos Castle
    Characters
    Castle Siege History
    Devil Square
    Duels
    Gens
    Grand Resets
    Guilds
    Honor
    Illusion Temple
    Killers
    Level
    Married
    Master Level
    Online Time
    Online Players
    Resets
    Score
    Votes
    Support Ticket
    UserCP
    Achievements
    Add Stats
    Architect
    Auctions
    Account Balance
    Cash Shop
    Change Class
    Change Name
    Claim a Reward
    Clear 4th Skill Tree
    Clear Inventory
    Clear PK
    Clear Skills
    Clear Skill Tree
    Dual Skill Tree
    Dual Stats
    Exchange
    Grand Reset Character
    Items Inventory
    Account Activity
    Lottery
    Market
    Change Email
    Change Password
    Promo Codes
    Recruit a Friend
    Reset Character
    Reset Stats
    Starting Kit
    Transfer Character
    Transfer Coins
    Unstuck Character
    My Vault
    Buy VIP
    Vote
    Web Bank
    Guild Web Bank
    Webshop
    Wheel of Fortune
    About
    Castle Siege
    Downloads
    FAQ
    Lost Password
    News
    Privacy Policy
    Register
    Rules
    Search
    Statistics
    Terms of Service
    DOWNLOAD LINK


    [Somente membros podem ver os links. ]






    Pre-Installation Steps


    Before you will proceed with ImperiaMuCMS installation please check your PHP setting for uploading files.
    Open your php.ini in preferred text editor.
    Search for "upload_max_filesize" setting.
    If value of your config is less then "32M", update it to this value.
    It might look like this:


    ; Maximum allowed size for uploaded files.
    ; PHP: Description of core php.ini directives - Manual [Somente membros podem ver os links. ]
    upload_max_filesize = 32M
    This configuration will prevent errors during ImperiaMuCMS's database structure and data import. Value "32M" is the minimum recommend setting, however, you can put there any other size (e.g. 64M, 128M, 256M, etc.).




    Installation of website


    Download full package of ImperiaMuCMS from HERE.
    Copy files from ImperiaMuCMS folder to your web server.
    Open browser and go to <your_domain>/<relative_path>/install/index.php to start installation process.
    Check system requirements.If everything is green (there can be red PDO drivers, but at least one must be green), continue on next step.
    Enter license key and your email address what you used in registration form here on forums. If you provided correct information, license will be activated and you can continue on next step.
    Generate configuration file. Enter SQL info, setup basic website stuff and write some info about your server. Continue on next step.
    Click on "START INSTALLATION" button and wait until page will loads. After it will be done, you can remove install folder due to security reasons and change chmod of ./includes/config.php back to 664.
    Update all IGCN server files located in ./includes/files/IGCN/ with your files used by Game Server.
    Website is now ready to use. You can open ./includes/config.php to configure another stuff like administration access etc.
    As a last step it's highly recommended to use "Special Tools" functionality in AdminCP to update data stored in database.
    Use function "Add Items into Database" to import missing items into database.
    Use function "Update Items in Database" to update existing items and their attributes based on your ItemList.xml configuration.
    Use function "Add Items into Webshop" to import items into webshop automatically. After this operation review items in webshop and delete those which you don't want to sell.
    Use function "Import Castle Siege Settings" to import your CS configs from server files to automatically setup Siege times in CS module.
    Use function "Generate MonsterKillCount XML" to generate MonsterKillCount.xml data so your server files will keep information about every killed monster.




    Add Online Time logging


    After installation will be done, you will have to edit procedure WZ_DISCONNECT_MEMB.


    1. Open MSSQL Management Studio.
    2. Navigate to Databases -> Programmability -> Stored Procedures.
    3. Find procedure "WZ_DISCONNECT_MEMB" -> right-click on it and select Modify.
    4. Find "UPDATE MEMB_STAT" and add one more parameter into this SQL statement ", OnlineTime = OnlineTime+(DATEDIFF(mi,ConnectTM,getdate()))".


    Before:
    Code:
    Código:
    UPDATE MEMB_STAT set ConnectStat = @ConnectStat, DisConnectTM = getdate()
       WHERE memb___id = @memb___id

    After:
    Code:
    Código:
    UPDATE MEMB_STAT set ConnectStat = @ConnectStat, DisConnectTM = getdate(), OnlineTime = OnlineTime+(DATEDIFF(mi,ConnectTM,getdate()))
       WHERE memb___id = @memb___id

    5. After this line add the code bellow (code is used to track online time by day).


    Me_MuOnline + MuOnline databases:
    Python:


    Código:
    IF (@ServerName IN ('MEDIUM-S1', 'MEDIUM-S2', 'MEDIUM-ARCA', 'MEDIUM-MARKET', 'MEDIUM-SIEGE', 'MEDIUM-BC'))
    BEGIN
        IF NOT EXISTS (SELECT AccountID FROM [MEDIUM_MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_ONLINE] WHERE AccountID = @memb___id AND Date = CAST(GETDATE() AS DATE))
            INSERT INTO [MEDIUM_MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_ONLINE] (AccountID, OnlineTime, Date) VALUES (@memb___id, (DATEDIFF(mi, @ConnectTM, GETDATE())), CAST(GETDATE() AS DATE))
        ELSE
            UPDATE [MEDIUM_MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_ONLINE] SET OnlineTime = OnlineTime + (DATEDIFF(mi, @ConnectTM, GETDATE())) WHERE AccountID = @memb___id AND Date = CAST(GETDATE() AS DATE)
    END
    
    
    IF (@ServerName IN ('FAST-S1', 'FAST-S2', 'FAST-ARCA', 'FAST-MARKET', 'FAST-SIEGE', 'FAST-BC'))
    BEGIN
        IF NOT EXISTS (SELECT AccountID FROM [FAST_MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_ONLINE] WHERE AccountID = @memb___id AND Date = CAST(GETDATE() AS DATE))
            INSERT INTO [FAST_MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_ONLINE] (AccountID, OnlineTime, Date) VALUES (@memb___id, (DATEDIFF(mi, @ConnectTM, GETDATE())), CAST(GETDATE() AS DATE))
        ELSE
            UPDATE [FAST_MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_ONLINE] SET OnlineTime = OnlineTime + (DATEDIFF(mi, @ConnectTM, GETDATE())) WHERE AccountID = @memb___id AND Date = CAST(GETDATE() AS DATE)
    END

    You must create this section for each server what you have. In this example are 2 sections - one for MEDIUM and one for FAST server.In first line are defined server names (from GameServer.ini config files). Database name is 3 times in script, in this example MEDIUM server has database called MEDIUM_MuOnline. In case of any issues with this task, please feel fre to create a topic in general support section.


    Only MuOnline database:
    Python:
    Código:
    IF NOT EXISTS (SELECT AccountID FROM IMPERIAMUCMS_TRIGGER_ONLINE WHERE AccountID = @memb___id AND Date = CAST(GETDATE() AS DATE))
        INSERT INTO IMPERIAMUCMS_TRIGGER_ONLINE (AccountID, OnlineTime, Date) VALUES (@memb___id, (DATEDIFF(mi, @ConnectTM, GETDATE())), CAST(GETDATE() AS DATE))
    ELSE
        UPDATE IMPERIAMUCMS_TRIGGER_ONLINE SET OnlineTime = OnlineTime + (DATEDIFF(mi, @ConnectTM, GETDATE())) WHERE AccountID = @memb___id AND Date = CAST(GETDATE() AS DATE)

    6. Press F5 to save modified procedure.


    Here is an example of edited procedure WZ_DISCONNECT_MEMB with all ImperiaMuCMS modifications.


    Me_MuOnline + MuOnline databases:
    Python:
    Código:
    USE [Me_MuOnline]
    GO
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER OFF
    GO
    ALTER Procedure [dbo].[WZ_DISCONNECT_MEMB]
    
    
        @memb___id     varchar(10)
    AS
    BEGIN
    
    
    SET NOCOUNT ON
        DECLARE @find_id         varchar(10)
        DECLARE @ConnectStat     tinyint
        DECLARE @ConnectTM         smalldatetime
        DECLARE @ServerName         varchar(20)
        SET @ConnectStat = 0
        SET @find_id = 'NOT'
        SELECT @find_id = S.memb___id FROM MEMB_STAT S INNER JOIN MEMB_INFO I ON S.memb___id = I.memb___id
             WHERE I.memb___id = @memb___id
    
    
        IF( @find_id <> 'NOT' )
        BEGIN
            SELECT @ConnectTM = (SELECT ConnectTM FROM MEMB_STAT WHERE memb___id = @memb___id);
            SELECT @ServerName = (SELECT ServerName FROM MEMB_STAT WHERE memb___id = @memb___id);
    
    
            UPDATE MEMB_STAT set ConnectStat = @ConnectStat, DisConnectTM = getdate()
             WHERE memb___id = @memb___id
    
    
            IF (@ServerName IN ('MEDIUM-S1', 'MEDIUM-S2', 'MEDIUM-ARCA', 'MEDIUM-MARKET', 'MEDIUM-SIEGE', 'MEDIUM-BC'))
            BEGIN
                IF NOT EXISTS (SELECT AccountID FROM [S12_MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_ONLINE] WHERE AccountID = @memb___id AND Date = CAST(GETDATE() AS DATE))
                    INSERT INTO [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_ONLINE] (AccountID, OnlineTime, Date) VALUES (@memb___id, (DATEDIFF(mi, @ConnectTM, GETDATE())), CAST(GETDATE() AS DATE))
                ELSE
                    UPDATE [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_ONLINE] SET OnlineTime = OnlineTime + (DATEDIFF(mi, @ConnectTM, GETDATE())) WHERE AccountID = @memb___id AND Date = CAST(GETDATE() AS DATE)
            END
            IF (@ServerName IN ('FAST-S1', 'FAST-S2', 'FAST-ARCA', 'FAST-MARKET', 'FAST-SIEGE', 'FAST-BC'))
            BEGIN
                IF NOT EXISTS (SELECT AccountID FROM [S12_MuOnline_N].[dbo].[IMPERIAMUCMS_TRIGGER_ONLINE] WHERE AccountID = @memb___id AND Date = CAST(GETDATE() AS DATE))
                    INSERT INTO [MuOnline_N].[dbo].[IMPERIAMUCMS_TRIGGER_ONLINE] (AccountID, OnlineTime, Date) VALUES (@memb___id, (DATEDIFF(mi, @ConnectTM, GETDATE())), CAST(GETDATE() AS DATE))
                ELSE
                    UPDATE [S12_MuOnline_N].[dbo].[IMPERIAMUCMS_TRIGGER_ONLINE] SET OnlineTime = OnlineTime + (DATEDIFF(mi, @ConnectTM, GETDATE())) WHERE AccountID = @memb___id AND Date = CAST(GETDATE() AS DATE)
            END
        END
    END

    Only MuOnline database:
    Python:
    Código:
    USE [MuOnline]
    GO
    
    
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER OFF
    GO
    ALTER Procedure [dbo].[WZ_DISCONNECT_MEMB]
    
    
        @memb___id     varchar(10)
    AS
    BEGIN
    
    
    SET NOCOUNT ON
        DECLARE @find_id varchar(10)
        DECLARE @ConnectStat tinyint
        DECLARE @ConnectedChar varchar(10)
        DECLARE @ConnectTM smalldatetime
        SET @ConnectStat = 0
        SET @find_id = 'NOT'
    
    
        SELECT @find_id = S.memb___id FROM MEMB_STAT S INNER JOIN MEMB_INFO I ON S.memb___id = I.memb___id
          WHERE I.memb___id = @memb___id
    
    
        IF( @find_id <> 'NOT' )
        BEGIN
          SELECT @ConnectedChar = (SELECT GameIDC FROM AccountCharacter WHERE Id = @memb___id);
          SELECT @ConnectTM = (SELECT ConnectTM FROM MEMB_STAT WHERE memb___id = @memb___id);
    
    
            UPDATE MEMB_STAT SET ConnectStat = @ConnectStat, DisConnectTM = GETDATE(), OnlineTime = OnlineTime + (DATEDIFF(mi, ConnectTM, GETDATE()))
                WHERE memb___id = @memb___id;
         
            IF NOT EXISTS (SELECT AccountID FROM IMPERIAMUCMS_TRIGGER_ONLINE WHERE AccountID = @memb___id AND Date = CAST(GETDATE() AS DATE))
                INSERT INTO IMPERIAMUCMS_TRIGGER_ONLINE (AccountID, OnlineTime, Date) VALUES (@memb___id, (DATEDIFF(mi, @ConnectTM, GETDATE())), CAST(GETDATE() AS DATE))
            ELSE
                UPDATE IMPERIAMUCMS_TRIGGER_ONLINE SET OnlineTime = OnlineTime + (DATEDIFF(mi, @ConnectTM, GETDATE())) WHERE AccountID = @memb___id AND Date = CAST(GETDATE() AS DATE)
    
    
        END
    END

    Add ImperiaMuCMS Triggers to save players' in-game progress
    Description


    This tutorial explains you how to manually import ImperiaMuCMS triggers into your database.
    Last Updated: 14/04/2020
    Compatible Version: 2.0.6 and newer
    ImperiaMuCMS triggers are used to automatically store historical data of players' progress and monstly they are used for daily/weekly/monthly rankings, but might be used for new features in the future. Triggers are not required, however they are recommended. Without them you won't be able to use daily/weekly/monthly rankings and other features of the website.
    Please note that triggers should be added into database after successfull installation of ImperiaMuCMS.


    Season 10 - Season 15
    Python:
    Triggers for MuOnline database
    Please replace "[MuOnline]" with your MuOnline database name. In the code search for:




    Código:
    SET @cLevel_MAX = 400;
    SET @mLevel_MAX = 520;
    SET @RESETS_MAX = 100;
    SET @Grand_Resets_MAX = 0;

    Replace the values 400, 520, 100 and 0 with your server configuration - maximum allowed level, master level, reset and grand reset. After that execute it in your SQL Server Management Studio. To do that open SQL Server Management Studio, in top navigation panel click on "New Query" and paste trigger code (which is displayed below) into new opened window tab, after that press "F5" or click on button "Execute" in top navigation panel.




    Código:
    USE [MuOnline]
    GO
    
    
    IF OBJECT_ID ('IMPERIAMUCMS_TRIGGER_CHARACTER_TR', 'TR') IS NOT NULL
       DROP TRIGGER IMPERIAMUCMS_TRIGGER_CHARACTER_TR
    GO
    
    
    IF OBJECT_ID ('IMPERIAMUCMS_TRIGGER_CHARACTER_INSERT_TR', 'TR') IS NOT NULL
       DROP TRIGGER IMPERIAMUCMS_TRIGGER_CHARACTER_INSERT_TR
    GO
    
    
    IF OBJECT_ID ('IMPERIAMUCMS_TRIGGER_GUILD_TR', 'TR') IS NOT NULL
       DROP TRIGGER IMPERIAMUCMS_TRIGGER_GUILD_TR
    GO
    
    
    IF OBJECT_ID ('IMPERIAMUCMS_TRIGGER_MONSTER_TR', 'TR') IS NOT NULL
       DROP TRIGGER IMPERIAMUCMS_TRIGGER_MONSTER_TR
    GO
    
    
    IF OBJECT_ID ('IMPERIAMUCMS_TRIGGER_GENS_TR', 'TR') IS NOT NULL
       DROP TRIGGER IMPERIAMUCMS_TRIGGER_GENS_TR
    GO
    
    
    IF OBJECT_ID ('IMPERIAMUCMS_TRIGGER_GENS_ABUSE_TR', 'TR') IS NOT NULL
       DROP TRIGGER IMPERIAMUCMS_TRIGGER_GENS_ABUSE_TR
    GO
    
    
    IF OBJECT_ID ('IMPERIAMUCMS_TRIGGER_INGAME_SHOP_POINTS_TR', 'TR') IS NOT NULL
       DROP TRIGGER IMPERIAMUCMS_TRIGGER_INGAME_SHOP_POINTS_TR
    GO
    
    
    IF OBJECT_ID ('IMPERIAMUCMS_TRIGGER_ARCHITECT_CS', 'TR') IS NOT NULL
       DROP TRIGGER IMPERIAMUCMS_TRIGGER_ARCHITECT_CS
    GO
    
    
    CREATE TRIGGER IMPERIAMUCMS_TRIGGER_ARCHITECT_CS ON [dbo].[MuCastle_DATA]
        AFTER UPDATE
        AS
        SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
        BEGIN TRANSACTION
            IF TRIGGER_NESTLEVEL(@@PROCID) = 1
            BEGIN
                SET NOCOUNT ON
                DECLARE @OWNER_GUILD varchar(8);
                DECLARE @iOWNER_GUILD varchar(8);
                SELECT @OWNER_GUILD = d.OWNER_GUILD FROM deleted d;
                SELECT @iOWNER_GUILD = i.OWNER_GUILD FROM inserted i;
    
    
                IF (UPDATE(OWNER_GUILD) AND @OWNER_GUILD != @iOWNER_GUILD)
                BEGIN
                    DELETE FROM IMPERIAMUCMS_ARCHITECT
                    DELETE FROM IMPERIAMUCMS_ARCHITECT_BANK
                END
            END
        IF (@@Error <> 0)
            ROLLBACK TRANSACTION
        ELSE
            COMMIT TRANSACTION
    GO
    
    
    CREATE TRIGGER IMPERIAMUCMS_TRIGGER_CHARACTER_INSERT_TR ON [dbo].[Character]
        AFTER INSERT
        AS
        SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
        BEGIN TRANSACTION
            IF TRIGGER_NESTLEVEL(@@PROCID) = 1
            BEGIN
                SET NOCOUNT ON
                DECLARE @AccountID varchar(10);
                DECLARE @Name varchar(10);
                SELECT @AccountID = i.AccountID FROM inserted i;
                SELECT @Name = i.Name FROM inserted i;
    
    
                BEGIN
                    INSERT INTO IMPERIAMUCMS_CHARACTER_PROGRESS_LOGS (AccountID, Name, OldValue, NewValue, Type, Date, IP, TotalTime) VALUES (@AccountID, @Name, 0, 0, 1, SYSDATETIME(), '0.0.0.0', NULL)
                    INSERT INTO IMPERIAMUCMS_CHARACTER_PROGRESS_LOGS (AccountID, Name, OldValue, NewValue, Type, Date, IP, TotalTime) VALUES (@AccountID, @Name, 0, 0, 2, SYSDATETIME(), '0.0.0.0', NULL)
                END
            END
        IF (@@Error <> 0)
            ROLLBACK TRANSACTION
        ELSE
            COMMIT TRANSACTION
    GO
    
    
    CREATE TRIGGER IMPERIAMUCMS_TRIGGER_CHARACTER_TR ON [dbo].[Character]
        AFTER UPDATE
        AS
        SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
        BEGIN TRANSACTION
            IF TRIGGER_NESTLEVEL(@@PROCID) = 1
            BEGIN
                SET NOCOUNT ON
    
    
                DECLARE @cLevel_MAX int;
                DECLARE @mLevel_MAX int;
                DECLARE @RESETS_MAX int;
                DECLARE @Grand_Resets_MAX int;
                SET @cLevel_MAX = 400;
                SET @mLevel_MAX = 800;
                SET @RESETS_MAX = 100;
                SET @Grand_Resets_MAX = 0;
    
    
                DECLARE @date date;
                SELECT @date = CAST(GETDATE() AS DATE);
    
    
                BEGIN
                    UPDATE Character
                        SET MaxReached = CAST(GETDATE() AS SMALLDATETIME)
                    FROM Character c
                    JOIN inserted i ON c.Name = i.Name
                    WHERE c.Name = i.Name AND i.cLevel = @cLevel_MAX AND i.mLevel = @mLevel_MAX
                        AND i.RESETS = @RESETS_MAX AND i.Grand_Resets = @Grand_Resets_MAX
    
    
                    UPDATE IMPERIAMUCMS_TRIGGER_CHARACTER
                        SET cLevel = CASE WHEN i.cLevel > d.cLevel THEN tc.cLevel + i.cLevel - d.cLevel ELSE tc.cLevel END,
                            mLevel = CASE WHEN i.mLevel > d.mLevel THEN tc.mLevel + i.mLevel - d.mLevel ELSE tc.mLevel END,
                            RESETS = CASE WHEN i.RESETS > d.RESETS THEN tc.RESETS + i.RESETS - d.RESETS ELSE tc.RESETS END,
                            Grand_Resets = CASE WHEN i.Grand_Resets > d.Grand_Resets THEN tc.Grand_Resets + i.Grand_Resets - d.Grand_Resets ELSE tc.Grand_Resets END,
                            Experience = CASE WHEN i.Experience > d.Experience THEN tc.Experience + i.Experience - d.Experience ELSE tc.Experience END,
                            mlExperience = CASE WHEN i.mlExperience > d.mlExperience THEN tc.mlExperience + i.mlExperience - d.mlExperience ELSE tc.mlExperience END,
                            Money = CASE WHEN i.Money > d.Money THEN tc.Money + i.Money - d.Money ELSE tc.Money END,
                            PkCount = CASE WHEN i.PkCount > d.PkCount THEN tc.PkCount + i.PkCount - d.PkCount ELSE tc.PkCount END,
                            WinDuels = CASE WHEN i.WinDuels > d.WinDuels THEN tc.WinDuels + i.WinDuels - d.WinDuels ELSE tc.WinDuels END,
                            LoseDuels = CASE WHEN i.LoseDuels > d.LoseDuels THEN tc.LoseDuels + i.LoseDuels - d.LoseDuels ELSE tc.LoseDuels END,
                            Ruud = CASE WHEN i.Ruud > d.Ruud THEN tc.Ruud + i.Ruud - d.Ruud ELSE tc.Ruud END
                    FROM IMPERIAMUCMS_TRIGGER_CHARACTER tc
                    JOIN inserted i ON tc.Name = i.Name
                    JOIN deleted d ON tc.Name = d.Name
                    WHERE tc.Name = i.Name AND tc.Date = @date
    
    
                    -- Guild
                    UPDATE IMPERIAMUCMS_TRIGGER_GUILD
                        SET cLevel = CASE WHEN i.cLevel > d.cLevel THEN tg.cLevel + i.cLevel - d.cLevel ELSE tg.cLevel END,
                            mLevel = CASE WHEN i.mLevel > d.mLevel THEN tg.mLevel + i.mLevel - d.mLevel ELSE tg.mLevel END,
                            RESETS = CASE WHEN i.RESETS > d.RESETS THEN tg.RESETS + i.RESETS - d.RESETS ELSE tg.RESETS END,
                            Grand_Resets = CASE WHEN i.Grand_Resets > d.Grand_Resets THEN tg.Grand_Resets + i.Grand_Resets - d.Grand_Resets ELSE tg.Grand_Resets END
                    FROM IMPERIAMUCMS_TRIGGER_GUILD tg
                    JOIN inserted i ON tg.G_Name = (SELECT G_Name FROM GuildMember gm WITH (READUNCOMMITTED) WHERE gm.Name = i.Name)
                    JOIN deleted d ON tg.G_Name = (SELECT G_Name FROM GuildMember gm WITH (READUNCOMMITTED) WHERE gm.Name = d.Name)
                    WHERE EXISTS (
                        SELECT G_Name FROM GuildMember gm WITH (READUNCOMMITTED)
                        WHERE gm.Name = i.Name
                    ) AND tg.G_Name = (
                        SELECT G_Name FROM GuildMember gm WITH (READUNCOMMITTED)
                        WHERE gm.Name = i.Name
                    ) AND tg.Date = @date
    
    
                    INSERT INTO IMPERIAMUCMS_TRIGGER_CHARACTER (AccountID, Name, cLevel, mLevel, RESETS, Grand_Resets,
                        Experience, mlExperience, Money, PkCount, WinDuels, LoseDuels, Ruud, Date)
                    SELECT i.AccountID, i.Name,
                        CASE WHEN i.cLevel > d.cLevel THEN i.cLevel - d.cLevel ELSE 0 END,
                        CASE WHEN i.mLevel > d.mLevel THEN i.mLevel - d.mLevel ELSE 0 END,
                        CASE WHEN i.RESETS > d.RESETS THEN i.RESETS - d.RESETS ELSE 0 END,
                        CASE WHEN i.Grand_Resets > d.Grand_Resets THEN i.Grand_Resets - d.Grand_Resets ELSE 0 END,
                        CASE WHEN i.Experience > d.Experience THEN i.Experience - d.Experience ELSE 0 END,
                        CASE WHEN i.mlExperience > d.mlExperience THEN i.mlExperience - d.mlExperience ELSE 0 END,
                        CASE WHEN i.Money > d.Money THEN i.Money - d.Money ELSE 0 END,
                        CASE WHEN i.PkCount > d.PkCount THEN i.PkCount - d.PkCount ELSE 0 END,
                        CASE WHEN i.WinDuels > d.WinDuels THEN i.WinDuels - d.WinDuels ELSE 0 END,
                        CASE WHEN i.LoseDuels > d.LoseDuels THEN i.LoseDuels - d.LoseDuels ELSE 0 END,
                        CASE WHEN i.Ruud > d.Ruud THEN i.Ruud - d.Ruud ELSE 0 END,
                        @date
                    FROM inserted i
                    JOIN deleted d ON d.Name = i.Name
                    WHERE NOT EXISTS (
                        SELECT Name FROM IMPERIAMUCMS_TRIGGER_CHARACTER tc
                        WHERE tc.Name = i.Name AND tc.Date = @date
                    )
    
    
                    -- Guild
                    INSERT INTO IMPERIAMUCMS_TRIGGER_GUILD (G_Name, G_Master, cLevel, mLevel, RESETS, Grand_Resets, Date)
                    SELECT (SELECT G_Name FROM GuildMember gm WITH (READUNCOMMITTED) WHERE gm.Name = i.Name),
                        (SELECT G_Master FROM Guild g WITH (READUNCOMMITTED) WHERE g.G_Name = (
                            SELECT G_Name FROM GuildMember gm WITH (READUNCOMMITTED) WHERE gm.Name = i.Name
                        )),
                        CASE WHEN i.cLevel > d.cLevel THEN i.cLevel - d.cLevel ELSE 0 END,
                        CASE WHEN i.mLevel > d.mLevel THEN i.mLevel - d.mLevel ELSE 0 END,
                        CASE WHEN i.RESETS > d.RESETS THEN i.RESETS - d.RESETS ELSE 0 END,
                        CASE WHEN i.Grand_Resets > d.Grand_Resets THEN i.Grand_Resets - d.Grand_Resets ELSE 0 END,
                        @date
                    FROM inserted i
                    JOIN deleted d ON d.Name = i.Name
                    WHERE EXISTS (
                        SELECT G_Name FROM GuildMember gm WITH (READUNCOMMITTED)
                        WHERE gm.Name = i.Name
                    ) AND NOT EXISTS (
                        SELECT G_Name FROM IMPERIAMUCMS_TRIGGER_GUILD tg
                        WHERE tg.G_Name =  (
                            SELECT G_Name FROM GuildMember gm WITH (READUNCOMMITTED)
                            WHERE gm.Name = i.Name
                        ) AND tg.Date = @date
                    )
                    SET NOCOUNT OFF
                END
            END
        IF (@@Error <> 0)
            ROLLBACK TRANSACTION
        ELSE
            COMMIT TRANSACTION
    GO
    
    
    CREATE TRIGGER IMPERIAMUCMS_TRIGGER_GUILD_TR ON [dbo].[Guild]
        AFTER UPDATE
        AS
        SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
        BEGIN TRANSACTION
            IF TRIGGER_NESTLEVEL(@@PROCID) = 1
            BEGIN
                SET NOCOUNT ON
    
    
                DECLARE @date date;
                SELECT @date = CAST(GETDATE() AS DATE);
    
    
                BEGIN
                    UPDATE IMPERIAMUCMS_TRIGGER_GUILD SET G_Score = tg.G_Score + (i.G_Score - d.G_Score)
                    FROM IMPERIAMUCMS_TRIGGER_GUILD tg
                    JOIN inserted i ON tg.G_Name = i.G_Name
                    JOIN deleted d ON tg.G_Name = d.G_Name
                    WHERE (i.G_Score > d.G_Score) AND tg.G_Name = i.G_Name AND tg.Date = @date
    
    
                    INSERT INTO IMPERIAMUCMS_TRIGGER_GUILD (G_Name, G_Master, G_Score, Date)
                    SELECT i.G_Name,
                        (SELECT G_Master FROM Guild WITH (READUNCOMMITTED) WHERE G_Name = i.G_Name),
                        (i.G_Score - d.G_Score), @date
                    FROM inserted i
                    JOIN deleted d ON d.G_Name = i.G_Name
                    WHERE (i.G_Score > d.G_Score)
                        AND NOT EXISTS (
                            SELECT G_Name FROM IMPERIAMUCMS_TRIGGER_GUILD tg
                            WHERE tg.G_Name = i.G_Name AND tg.Date = @date
                        )
                    SET NOCOUNT OFF
                END
            END
        IF (@@Error <> 0)
            ROLLBACK TRANSACTION
        ELSE
            COMMIT TRANSACTION
    GO
    
    
    CREATE TRIGGER IMPERIAMUCMS_TRIGGER_MONSTER_TR ON [dbo].[C_Monster_KillCount]
        AFTER UPDATE, INSERT
        AS
        SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
        BEGIN TRANSACTION
            IF TRIGGER_NESTLEVEL(@@PROCID) = 1
            BEGIN
                SET NOCOUNT ON
    
    
                DECLARE @date date;
                SELECT @date = CAST(GETDATE() AS DATE);
    
    
                BEGIN
                    IF EXISTS (SELECT * FROM DELETED)
                        BEGIN
                            UPDATE IMPERIAMUCMS_TRIGGER_MONSTER
                                SET Count = tm.Count + (i.count - d.count),
                                LastKilled = CAST(GETDATE() AS DATETIME)
                            FROM IMPERIAMUCMS_TRIGGER_MONSTER tm
                            JOIN inserted i ON tm.Name = i.Name
                            JOIN deleted d ON tm.Name = d.Name
                            WHERE (i.count > d.count) AND tm.Name = i.Name AND tm.MonsterID = i.MonsterId AND tm.Date = @date
    
    
                            INSERT INTO IMPERIAMUCMS_TRIGGER_MONSTER (AccountID, Name, MonsterID, Count, LastKilled, Date)
                            SELECT (SELECT Id FROM AccountCharacter WITH (READUNCOMMITTED) WHERE GameIDC = i.Name),
                                i.Name, i.MonsterId, (i.count - d.count), CAST(GETDATE() AS DATETIME), @date
                            FROM inserted i
                            JOIN deleted d ON d.Name = i.Name
                            WHERE (i.count > d.count)
                                AND NOT EXISTS (
                                    SELECT Name FROM IMPERIAMUCMS_TRIGGER_MONSTER tm WITH (READUNCOMMITTED)
                                    WHERE tm.Name = i.Name AND tm.MonsterID = i.MonsterId AND tm.Date = @date
                                )
                        END
                    ELSE
                        BEGIN
                            UPDATE IMPERIAMUCMS_TRIGGER_MONSTER
                                SET Count = CASE WHEN i.count > 0 THEN tm.Count + i.count ELSE tm.Count END
                            FROM IMPERIAMUCMS_TRIGGER_MONSTER tm
                            JOIN inserted i ON tm.Name = i.Name
                            WHERE tm.Name = i.Name AND tm.MonsterID = i.MonsterId AND tm.Date = @date
    
    
                            INSERT INTO IMPERIAMUCMS_TRIGGER_MONSTER (AccountID, Name, MonsterID, Count, LastKilled, Date)
                            SELECT (SELECT Id FROM AccountCharacter WITH (READUNCOMMITTED) WHERE GameIDC = i.Name),
                                i.Name, i.MonsterId,
                                CASE WHEN i.count > 0 THEN i.count ELSE 0 END,
                                CAST(GETDATE() AS DATETIME),
                                @date
                            FROM inserted i
                            WHERE NOT EXISTS (
                                SELECT Name FROM IMPERIAMUCMS_TRIGGER_MONSTER tm WITH (READUNCOMMITTED)
                                WHERE tm.Name = i.Name AND tm.MonsterID = i.MonsterId AND tm.Date = @date
                            )
                        END
                    SET NOCOUNT OFF
                END
            END
        IF (@@Error <> 0)
            ROLLBACK TRANSACTION
        ELSE
            COMMIT TRANSACTION
    GO
    
    
    CREATE TRIGGER IMPERIAMUCMS_TRIGGER_GENS_TR ON [dbo].[IGC_Gens]
        AFTER UPDATE, INSERT
        AS
        SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
        BEGIN TRANSACTION
            IF TRIGGER_NESTLEVEL(@@PROCID) = 1
            BEGIN
                SET NOCOUNT ON
    
    
                DECLARE @date date;
                SELECT @date = CAST(GETDATE() AS DATE);
    
    
                BEGIN
                    IF EXISTS (SELECT * FROM DELETED)
                        BEGIN
                            UPDATE IMPERIAMUCMS_TRIGGER_CHARACTER SET Gens_Points = tc.Gens_Points + (i.Points - d.Points)
                            FROM IMPERIAMUCMS_TRIGGER_CHARACTER tc
                            JOIN inserted i ON tc.Name = i.Name
                            JOIN deleted d ON tc.Name = d.Name
                            WHERE (i.Points > d.Points) AND tc.Name = i.Name AND tc.Date = @date
    
    
                            INSERT INTO IMPERIAMUCMS_TRIGGER_CHARACTER (AccountID, Name, Gens_Points, Gens_Kills, Date)
                            SELECT (SELECT Id FROM AccountCharacter WITH (READUNCOMMITTED) WHERE GameIDC = i.Name),
                                i.Name, (i.Points - d.Points), 0, @date
                            FROM inserted i
                            JOIN deleted d ON d.Name = i.Name
                            WHERE (i.Points > d.Points)
                                AND NOT EXISTS (
                                    SELECT Name FROM IMPERIAMUCMS_TRIGGER_CHARACTER tc WITH (READUNCOMMITTED)
                                    WHERE tc.Name = i.Name AND tc.Date = @date
                                )
                        END
                    ELSE
                        BEGIN
                            UPDATE IMPERIAMUCMS_TRIGGER_CHARACTER
                                SET Gens_Points = CASE WHEN i.Points > 0 THEN tc.Gens_Points + i.Points ELSE tc.Gens_Points END
                            FROM IMPERIAMUCMS_TRIGGER_CHARACTER tc
                            JOIN inserted i ON tc.Name = i.Name
                            WHERE tc.Name = i.Name AND tc.Date = @date
    
    
                            INSERT INTO IMPERIAMUCMS_TRIGGER_CHARACTER (AccountID, Name, Gens_Points, Gens_Kills, Date)
                            SELECT (SELECT Id FROM AccountCharacter WITH (READUNCOMMITTED) WHERE GameIDC = i.Name),
                                i.Name,
                                CASE WHEN i.Points > 0 THEN i.Points ELSE 0 END,
                                0,
                                @date
                            FROM inserted i
                            WHERE NOT EXISTS (
                                SELECT Name FROM IMPERIAMUCMS_TRIGGER_CHARACTER tc WITH (READUNCOMMITTED)
                                WHERE tc.Name = i.Name AND tc.Date = @date
                            )
                        END
                    SET NOCOUNT OFF
                END
            END
        IF (@@Error <> 0)
            ROLLBACK TRANSACTION
        ELSE
            COMMIT TRANSACTION
    GO
    
    
    CREATE TRIGGER IMPERIAMUCMS_TRIGGER_GENS_ABUSE_TR ON [dbo].[IGC_GensAbuse]
        AFTER UPDATE, INSERT
        AS
        SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
        BEGIN TRANSACTION
            IF TRIGGER_NESTLEVEL(@@PROCID) = 1
            BEGIN
                SET NOCOUNT ON
    
    
                DECLARE @date date;
                SELECT @date = CAST(GETDATE() AS DATE);
    
    
                BEGIN
                    IF EXISTS (SELECT * FROM DELETED)
                        BEGIN
                            UPDATE IMPERIAMUCMS_TRIGGER_CHARACTER SET Gens_Kills = tc.Gens_Kills + (i.KillCount - d.KillCount)
                            FROM IMPERIAMUCMS_TRIGGER_CHARACTER tc
                            JOIN inserted i ON tc.Name = i.Name
                            JOIN deleted d ON tc.Name = d.Name
                            WHERE (i.KillCount > d.KillCount) AND tc.Name = i.Name AND tc.Date = @date
    
    
                            INSERT INTO IMPERIAMUCMS_TRIGGER_CHARACTER (AccountID, Name, Gens_Points, Gens_Kills, Date)
                            SELECT (SELECT Id FROM AccountCharacter WITH (READUNCOMMITTED) WHERE GameIDC = i.Name),
                                i.Name, 0, (i.KillCount - d.KillCount), @date
                            FROM inserted i
                            JOIN deleted d ON d.Name = i.Name
                            WHERE (i.KillCount > d.KillCount)
                                AND NOT EXISTS (
                                    SELECT Name FROM IMPERIAMUCMS_TRIGGER_CHARACTER tc WITH (READUNCOMMITTED)
                                    WHERE tc.Name = i.Name AND tc.Date = @date
                                )
                        END
                    ELSE
                        BEGIN
                            UPDATE IMPERIAMUCMS_TRIGGER_CHARACTER
                                SET Gens_Kills = CASE WHEN i.KillCount > 0 THEN tc.Gens_Kills + i.KillCount ELSE tc.Gens_Kills END
                            FROM IMPERIAMUCMS_TRIGGER_CHARACTER tc
                            JOIN inserted i ON tc.Name = i.Name
                            WHERE tc.Name = i.Name AND tc.Date = @date
    
    
                            INSERT INTO IMPERIAMUCMS_TRIGGER_CHARACTER (AccountID, Name, Gens_Points, Gens_Kills, Date)
                            SELECT (SELECT Id FROM AccountCharacter WITH (READUNCOMMITTED) WHERE GameIDC = i.Name),
                                i.Name,
                                0,
                                CASE WHEN i.KillCount > 0 THEN i.KillCount ELSE 0 END,
                                @date
                            FROM inserted i
                            WHERE NOT EXISTS (
                                SELECT Name FROM IMPERIAMUCMS_TRIGGER_CHARACTER tc WITH (READUNCOMMITTED)
                                WHERE tc.Name = i.Name AND tc.Date = @date
                            )
                        END
                    SET NOCOUNT OFF
                END
            END
        IF (@@Error <> 0)
            ROLLBACK TRANSACTION
        ELSE
            COMMIT TRANSACTION
    GO
    
    
    CREATE TRIGGER IMPERIAMUCMS_TRIGGER_INGAME_SHOP_POINTS_TR ON [dbo].[T_InGameShop_Point]
        AFTER UPDATE, INSERT
        AS
        SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
        BEGIN TRANSACTION
            IF TRIGGER_NESTLEVEL(@@PROCID) = 1
            BEGIN
                SET NOCOUNT ON
    
    
                DECLARE @date date;
                SELECT @date = CAST(GETDATE() AS DATE);
    
    
                BEGIN
                    IF EXISTS (SELECT * FROM DELETED)
                        BEGIN
                            UPDATE IMPERIAMUCMS_TRIGGER_INGAME_SHOP_POINTS
                                SET WCoin = CASE WHEN i.WCoin > d.WCoin THEN tp.WCoin + i.WCoin - d.WCoin ELSE tp.WCoin END,
                                GoblinPoint = CASE WHEN i.GoblinPoint > d.GoblinPoint THEN tp.GoblinPoint + i.GoblinPoint - d.GoblinPoint ELSE tp.GoblinPoint END
                            FROM IMPERIAMUCMS_TRIGGER_INGAME_SHOP_POINTS tp
                            JOIN inserted i ON tp.AccountID = i.AccountID
                            JOIN deleted d ON tp.AccountID = d.AccountID
                            WHERE tp.AccountID = i.AccountID AND tp.Date = @date
    
    
                            INSERT INTO IMPERIAMUCMS_TRIGGER_INGAME_SHOP_POINTS (AccountID, WCoin, GoblinPoint, Date)
                            SELECT i.AccountID,
                                CASE WHEN i.WCoin > d.WCoin THEN i.WCoin - d.WCoin ELSE 0 END,
                                CASE WHEN i.GoblinPoint > d.GoblinPoint THEN i.GoblinPoint - d.GoblinPoint ELSE 0 END,
                                @date
                            FROM inserted i
                            JOIN deleted d ON d.AccountID = i.AccountID
                            WHERE NOT EXISTS (
                                SELECT AccountID FROM IMPERIAMUCMS_TRIGGER_INGAME_SHOP_POINTS tp WITH (READUNCOMMITTED)
                                WHERE tp.AccountID = i.AccountID AND tp.Date = @date
                            )
                        END
                    ELSE
                        BEGIN
                            UPDATE IMPERIAMUCMS_TRIGGER_INGAME_SHOP_POINTS
                                SET WCoin = CASE WHEN i.WCoin > 0 THEN tp.WCoin + i.WCoin ELSE tp.WCoin END,
                                GoblinPoint = CASE WHEN i.GoblinPoint > 0 THEN tp.GoblinPoint + i.GoblinPoint ELSE tp.GoblinPoint END
                            FROM IMPERIAMUCMS_TRIGGER_INGAME_SHOP_POINTS tp
                            JOIN inserted i ON tp.AccountID = i.AccountID
                            WHERE tp.AccountID = i.AccountID AND tp.Date = @date
    
    
                            INSERT INTO IMPERIAMUCMS_TRIGGER_INGAME_SHOP_POINTS (AccountID, WCoin, GoblinPoint, Date)
                            SELECT i.AccountID,
                                CASE WHEN i.WCoin > 0 THEN i.WCoin ELSE 0 END,
                                CASE WHEN i.GoblinPoint > 0 THEN i.GoblinPoint ELSE 0 END,
                                @date
                            FROM inserted i
                            WHERE NOT EXISTS (
                                SELECT AccountID FROM IMPERIAMUCMS_TRIGGER_INGAME_SHOP_POINTS tp WITH (READUNCOMMITTED)
                                WHERE tp.AccountID = i.AccountID AND tp.Date = @date
                            )
                        END
                    SET NOCOUNT OFF
                END
            END
        IF (@@Error <> 0)
            ROLLBACK TRANSACTION
        ELSE
            COMMIT TRANSACTION
    GO

    Triggers for Ranking database
    Please replace "[Ranking]" with your Ranking database name and "[MuOnline]" with your MuOnline database name. After that execute it in your SQL Server Management Studio. To do that open SQL Server Management Studio, in top navigation panel click on "New Query" and paste trigger code (which is displayed below) into new opened window tab, after that press "F5" or click on button "Execute" in top navigation panel.


    Python:
    Código:
    USE [Ranking]
    GO
    
    
    IF OBJECT_ID ('IMPERIAMUCMS_TRIGGER_EVENT_DS_TR', 'TR') IS NOT NULL
       DROP TRIGGER IMPERIAMUCMS_TRIGGER_EVENT_DS_TR
    GO
    
    
    IF OBJECT_ID ('IMPERIAMUCMS_TRIGGER_EVENT_BC_TR', 'TR') IS NOT NULL
       DROP TRIGGER IMPERIAMUCMS_TRIGGER_EVENT_BC_TR
    GO
    
    
    IF OBJECT_ID ('IMPERIAMUCMS_TRIGGER_EVENT_CC_TR', 'TR') IS NOT NULL
       DROP TRIGGER IMPERIAMUCMS_TRIGGER_EVENT_CC_TR
    GO
    
    
    IF OBJECT_ID ('IMPERIAMUCMS_TRIGGER_EVENT_IT_TR', 'TR') IS NOT NULL
       DROP TRIGGER IMPERIAMUCMS_TRIGGER_EVENT_IT_TR
    GO
    
    
    CREATE TRIGGER IMPERIAMUCMS_TRIGGER_EVENT_DS_TR ON [dbo].[EVENT_INFO]
        AFTER UPDATE, INSERT
        AS
        SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
        BEGIN TRANSACTION
            IF TRIGGER_NESTLEVEL(@@PROCID) = 1
            BEGIN
                SET NOCOUNT ON
    
    
                DECLARE @date date;
                SELECT @date = CAST(GETDATE() AS DATE);
    
    
                BEGIN
                    IF EXISTS (SELECT * FROM DELETED)
                        BEGIN
                            UPDATE [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] SET DS_Points = te.DS_Points + (i.Point - d.Point)
                            FROM [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] te
                            JOIN inserted i ON te.Name = i.CharacterName
                            JOIN deleted d ON te.Name = d.CharacterName
                            WHERE (i.Point > d.Point) AND te.Name = i.CharacterName AND te.Date = @date
    
    
                            INSERT INTO [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] (AccountID, Name, DS_Points, Date)
                            SELECT (SELECT Id FROM [MuOnline].[dbo].[AccountCharacter] WITH (READUNCOMMITTED) WHERE GameIDC = i.CharacterName),
                                i.CharacterName, (i.Point - d.Point), @date
                            FROM inserted i
                            JOIN deleted d ON d.CharacterName = i.CharacterName
                            WHERE (i.Point > d.Point)
                                AND NOT EXISTS (
                                    SELECT Name FROM [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] te WITH (READUNCOMMITTED)
                                    WHERE te.Name = i.CharacterName AND te.Date = @date
                                )
                        END
                    ELSE
                        BEGIN
                            UPDATE [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT]
                                SET DS_Points = CASE WHEN i.Point > 0 THEN te.DS_Points + i.Point ELSE te.DS_Points END
                            FROM [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] te
                            JOIN inserted i ON te.Name = i.CharacterName
                            WHERE te.Name = i.CharacterName AND te.Date = @date
    
    
                            INSERT INTO [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] (AccountID, Name, DS_Points, Date)
                            SELECT (SELECT Id FROM [MuOnline].[dbo].[AccountCharacter] WITH (READUNCOMMITTED) WHERE GameIDC = i.CharacterName),
                                i.CharacterName,
                                CASE WHEN i.Point > 0 THEN i.Point ELSE 0 END,
                                @date
                            FROM inserted i
                            WHERE NOT EXISTS (
                                SELECT Name FROM [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] te WITH (READUNCOMMITTED)
                                WHERE te.Name = i.CharacterName AND te.Date = @date
                            )
                        END
                    SET NOCOUNT OFF
                END
            END
        IF (@@Error <> 0)
            ROLLBACK TRANSACTION
        ELSE
            COMMIT TRANSACTION
    GO
    
    
    CREATE TRIGGER IMPERIAMUCMS_TRIGGER_EVENT_BC_TR ON [dbo].[EVENT_INFO_BC_5TH]
        AFTER UPDATE, INSERT
        AS
        SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
        BEGIN TRANSACTION
            IF TRIGGER_NESTLEVEL(@@PROCID) = 1
            BEGIN
                SET NOCOUNT ON
    
    
                DECLARE @date date;
                SELECT @date = CAST(GETDATE() AS DATE);
    
    
                BEGIN
                    IF EXISTS (SELECT * FROM DELETED)
                        BEGIN
                            UPDATE [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] SET BC_Points = te.BC_Points + (i.Point - d.Point)
                            FROM [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] te
                            JOIN inserted i ON te.Name = i.CharacterName
                            JOIN deleted d ON te.Name = d.CharacterName
                            WHERE (i.Point > d.Point) AND te.Name = i.CharacterName AND te.Date = @date
    
    
                            INSERT INTO [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] (AccountID, Name, BC_Points, Date)
                            SELECT (SELECT Id FROM [MuOnline].[dbo].[AccountCharacter] WITH (READUNCOMMITTED) WHERE GameIDC = i.CharacterName),
                                i.CharacterName, (i.Point - d.Point), @date
                            FROM inserted i
                            JOIN deleted d ON d.CharacterName = i.CharacterName
                            WHERE (i.Point > d.Point)
                                AND NOT EXISTS (
                                    SELECT Name FROM [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] te WITH (READUNCOMMITTED)
                                    WHERE te.Name = i.CharacterName AND te.Date = @date
                                )
                        END
                    ELSE
                        BEGIN
                            UPDATE [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT]
                                SET BC_Points = CASE WHEN i.Point > 0 THEN te.BC_Points + i.Point ELSE te.BC_Points END
                            FROM [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] te
                            JOIN inserted i ON te.Name = i.CharacterName
                            WHERE te.Name = i.CharacterName AND te.Date = @date
    
    
                            INSERT INTO [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] (AccountID, Name, BC_Points, Date)
                            SELECT (SELECT Id FROM [MuOnline].[dbo].[AccountCharacter] WITH (READUNCOMMITTED) WHERE GameIDC = i.CharacterName),
                                i.CharacterName,
                                CASE WHEN i.Point > 0 THEN i.Point ELSE 0 END,
                                @date
                            FROM inserted i
                            WHERE NOT EXISTS (
                                SELECT Name FROM [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] te WITH (READUNCOMMITTED)
                                WHERE te.Name = i.CharacterName AND te.Date = @date
                            )
                        END
                    SET NOCOUNT OFF
                END
            END
        IF (@@Error <> 0)
            ROLLBACK TRANSACTION
        ELSE
            COMMIT TRANSACTION
    GO
    
    
    CREATE TRIGGER IMPERIAMUCMS_TRIGGER_EVENT_CC_TR ON [dbo].[EVENT_INFO_CC]
        AFTER UPDATE, INSERT
        AS
        SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
        BEGIN TRANSACTION
            IF TRIGGER_NESTLEVEL(@@PROCID) = 1
            BEGIN
                SET NOCOUNT ON
    
    
                DECLARE @date date;
                SELECT @date = CAST(GETDATE() AS DATE);
    
    
                BEGIN
                    IF EXISTS (SELECT * FROM DELETED)
                        BEGIN
                            UPDATE [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT]
                                SET CC_Wins = CASE WHEN i.Wins > d.Wins THEN te.CC_Wins + i.Wins - d.Wins ELSE te.CC_Wins END,
                                CC_PKillCount = CASE WHEN i.PKillCount > d.PKillCount THEN te.CC_PKillCount + i.PKillCount - d.PKillCount ELSE te.CC_PKillCount END,
                                CC_MKillCount = CASE WHEN i.MKillCount > d.MKillCount THEN te.CC_MKillCount + i.MKillCount - d.MKillCount ELSE te.CC_MKillCount END
                            FROM [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] te
                            JOIN inserted i ON te.Name = i.Name
                            JOIN deleted d ON te.Name = d.Name
                            WHERE te.Name = i.Name AND te.Date = @date
    
    
                            INSERT INTO [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] (AccountID, Name, CC_Wins, CC_PKillCount, CC_MKillCount, Date)
                            SELECT (SELECT Id FROM [MuOnline].[dbo].[AccountCharacter] WITH (READUNCOMMITTED) WHERE GameIDC = i.Name),
                                i.Name,
                                CASE WHEN i.Wins > d.Wins THEN i.Wins - d.Wins ELSE 0 END,
                                CASE WHEN i.PKillCount > d.PKillCount THEN i.PKillCount - d.PKillCount ELSE 0 END,
                                CASE WHEN i.MKillCount > d.MKillCount THEN i.MKillCount - d.MKillCount ELSE 0 END,
                                @date
                            FROM inserted i
                            JOIN deleted d ON d.Name = i.Name
                            WHERE NOT EXISTS (
                                SELECT Name FROM [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] te WITH (READUNCOMMITTED)
                                WHERE te.Name = i.Name AND te.Date = @date
                            )
                        END
                    ELSE
                        BEGIN
                            UPDATE [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT]
                                SET CC_Wins = CASE WHEN i.Wins > 0 THEN te.CC_Wins + i.Wins ELSE te.CC_Wins END,
                                CC_PKillCount = CASE WHEN i.PKillCount > 0 THEN te.CC_PKillCount + i.PKillCount ELSE te.CC_PKillCount END,
                                CC_MKillCount = CASE WHEN i.MKillCount > 0 THEN te.CC_MKillCount + i.MKillCount ELSE te.CC_MKillCount END
                            FROM [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] te
                            JOIN inserted i ON te.Name = i.Name
                            WHERE te.Name = i.Name AND te.Date = @date
    
    
                            INSERT INTO [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] (AccountID, Name, CC_Wins, CC_PKillCount, CC_MKillCount, Date)
                            SELECT (SELECT Id FROM [MuOnline].[dbo].[AccountCharacter] WITH (READUNCOMMITTED) WHERE GameIDC = i.Name),
                                i.Name,
                                CASE WHEN i.Wins > 0 THEN i.Wins ELSE 0 END,
                                CASE WHEN i.PKillCount > 0 THEN i.PKillCount ELSE 0 END,
                                CASE WHEN i.MKillCount > 0 THEN i.MKillCount ELSE 0 END,
                                @date
                            FROM inserted i
                            WHERE NOT EXISTS (
                                SELECT Name FROM [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] te WITH (READUNCOMMITTED)
                                WHERE te.Name = i.Name AND te.Date = @date
                            )
                        END
                    SET NOCOUNT OFF
                END
            END
        IF (@@Error <> 0)
            ROLLBACK TRANSACTION
        ELSE
            COMMIT TRANSACTION
    GO
    
    
    CREATE TRIGGER IMPERIAMUCMS_TRIGGER_EVENT_IT_TR ON [dbo].[EVENT_INFO_IT]
        AFTER UPDATE, INSERT
        AS
        SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
        BEGIN TRANSACTION
            IF TRIGGER_NESTLEVEL(@@PROCID) = 1
            BEGIN
                SET NOCOUNT ON
    
    
                DECLARE @date date;
                SELECT @date = CAST(GETDATE() AS DATE);
    
    
                BEGIN
                    IF EXISTS (SELECT * FROM DELETED)
                        BEGIN
                            UPDATE [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT]
                                SET IT_TotalScore = CASE WHEN i.TotalScore > d.TotalScore THEN te.IT_TotalScore + i.TotalScore - d.TotalScore ELSE te.IT_TotalScore END,
                                IT_KillCount = CASE WHEN i.KillCount > d.KillCount THEN te.IT_KillCount + i.KillCount - d.KillCount ELSE te.IT_KillCount END,
                                IT_RelicsGivenCount = CASE WHEN i.RelicsGivenCount > d.RelicsGivenCount THEN te.IT_RelicsGivenCount + i.RelicsGivenCount - d.RelicsGivenCount ELSE te.IT_RelicsGivenCount END,
                                IT_Wins = CASE WHEN i.isWinner > d.isWinner THEN te.IT_Wins + i.isWinner - d.isWinner ELSE te.IT_Wins END
                            FROM [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] te
                            JOIN inserted i ON te.Name = i.Name
                            JOIN deleted d ON te.Name = d.Name
                            WHERE te.Name = i.Name AND te.Date = @date
    
    
                            INSERT INTO [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] (AccountID, Name, IT_TotalScore, IT_KillCount, IT_RelicsGivenCount, IT_Wins, Date)
                            SELECT (SELECT Id FROM [MuOnline].[dbo].[AccountCharacter] WITH (READUNCOMMITTED) WHERE GameIDC = i.Name),
                                i.Name,
                                CASE WHEN i.TotalScore > d.TotalScore THEN i.TotalScore - d.TotalScore ELSE 0 END,
                                CASE WHEN i.KillCount > d.KillCount THEN i.KillCount - d.KillCount ELSE 0 END,
                                CASE WHEN i.RelicsGivenCount > d.RelicsGivenCount THEN i.RelicsGivenCount - d.RelicsGivenCount ELSE 0 END,
                                CASE WHEN i.isWinner > d.isWinner THEN i.isWinner - d.isWinner ELSE 0 END,
                                @date
                            FROM inserted i
                            JOIN deleted d ON d.Name = i.Name
                            WHERE NOT EXISTS (
                                SELECT Name FROM [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] te WITH (READUNCOMMITTED)
                                WHERE te.Name = i.Name AND te.Date = @date
                            )
                        END
                    ELSE
                        BEGIN
                            UPDATE [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT]
                                SET IT_TotalScore = CASE WHEN i.TotalScore > 0 THEN te.IT_TotalScore + i.TotalScore ELSE te.IT_TotalScore END,
                                IT_KillCount = CASE WHEN i.KillCount > 0 THEN te.IT_KillCount + i.KillCount ELSE te.IT_KillCount END,
                                IT_RelicsGivenCount = CASE WHEN i.RelicsGivenCount > 0 THEN te.IT_RelicsGivenCount + i.RelicsGivenCount ELSE te.IT_RelicsGivenCount END,
                                IT_Wins = CASE WHEN i.isWinner > 0 THEN te.IT_Wins + i.isWinner ELSE te.IT_Wins END
                            FROM [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] te
                            JOIN inserted i ON te.Name = i.Name
                            WHERE te.Name = i.Name AND te.Date = @date
    
    
                            INSERT INTO [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] (AccountID, Name, IT_TotalScore, IT_KillCount, IT_RelicsGivenCount, IT_Wins, Date)
                            SELECT (SELECT Id FROM [MuOnline].[dbo].[AccountCharacter] WITH (READUNCOMMITTED) WHERE GameIDC = i.Name),
                                i.Name,
                                CASE WHEN i.TotalScore > 0 THEN i.TotalScore ELSE 0 END,
                                CASE WHEN i.KillCount > 0 THEN i.KillCount ELSE 0 END,
                                CASE WHEN i.RelicsGivenCount > 0 THEN i.RelicsGivenCount ELSE 0 END,
                                CASE WHEN i.isWinner > 0 THEN i.isWinner ELSE 0 END,
                                @date
                            FROM inserted i
                            WHERE NOT EXISTS (
                                SELECT Name FROM [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] te WITH (READUNCOMMITTED)
                                WHERE te.Name = i.Name AND te.Date = @date
                            )
                        END
                    SET NOCOUNT OFF
                END
            END
        IF (@@Error <> 0)
            ROLLBACK TRANSACTION
        ELSE
            COMMIT TRANSACTION
    GO

    Season 6 - Season 9
    Python:
    Triggers for MuOnline database
    Please replace "[MuOnline]" with your MuOnline database name. In the code search for:




    Código:
    SET @cLevel_MAX = 400;
    SET @mLevel_MAX = 520;
    SET @RESETS_MAX = 100;
    SET @Grand_Resets_MAX = 0;

    Replace the values 400, 520, 100 and 0 with your server configuration - maximum allowed level, master level, reset and grand reset. After that execute it in your SQL Server Management Studio. To do that open SQL Server Management Studio, in top navigation panel click on "New Query" and paste trigger code (which is displayed below) into new opened window tab, after that press "F5" or click on button "Execute" in top navigation panel.




    Código:
    USE [MuOnline]
    GO
    
    
    IF OBJECT_ID ('IMPERIAMUCMS_TRIGGER_CHARACTER_TR', 'TR') IS NOT NULL
       DROP TRIGGER IMPERIAMUCMS_TRIGGER_CHARACTER_TR
    GO
    
    
    IF OBJECT_ID ('IMPERIAMUCMS_TRIGGER_CHARACTER_INSERT_TR', 'TR') IS NOT NULL
       DROP TRIGGER IMPERIAMUCMS_TRIGGER_CHARACTER_INSERT_TR
    GO
    
    
    IF OBJECT_ID ('IMPERIAMUCMS_TRIGGER_GUILD_TR', 'TR') IS NOT NULL
       DROP TRIGGER IMPERIAMUCMS_TRIGGER_GUILD_TR
    GO
    
    
    IF OBJECT_ID ('IMPERIAMUCMS_TRIGGER_MONSTER_TR', 'TR') IS NOT NULL
       DROP TRIGGER IMPERIAMUCMS_TRIGGER_MONSTER_TR
    GO
    
    
    IF OBJECT_ID ('IMPERIAMUCMS_TRIGGER_GENS_TR', 'TR') IS NOT NULL
       DROP TRIGGER IMPERIAMUCMS_TRIGGER_GENS_TR
    GO
    
    
    IF OBJECT_ID ('IMPERIAMUCMS_TRIGGER_GENS_ABUSE_TR', 'TR') IS NOT NULL
       DROP TRIGGER IMPERIAMUCMS_TRIGGER_GENS_ABUSE_TR
    GO
    
    
    IF OBJECT_ID ('IMPERIAMUCMS_TRIGGER_INGAME_SHOP_POINTS_TR', 'TR') IS NOT NULL
       DROP TRIGGER IMPERIAMUCMS_TRIGGER_INGAME_SHOP_POINTS_TR
    GO
    
    
    IF OBJECT_ID ('IMPERIAMUCMS_TRIGGER_ARCHITECT_CS', 'TR') IS NOT NULL
       DROP TRIGGER IMPERIAMUCMS_TRIGGER_ARCHITECT_CS
    GO
    
    
    CREATE TRIGGER IMPERIAMUCMS_TRIGGER_ARCHITECT_CS ON [dbo].[MuCastle_DATA]
        AFTER UPDATE
        AS
        SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
        BEGIN TRANSACTION
            IF TRIGGER_NESTLEVEL(@@PROCID) = 1
            BEGIN
                SET NOCOUNT ON
                DECLARE @OWNER_GUILD varchar(8);
                DECLARE @iOWNER_GUILD varchar(8);
                SELECT @OWNER_GUILD = d.OWNER_GUILD FROM deleted d;
                SELECT @iOWNER_GUILD = i.OWNER_GUILD FROM inserted i;
    
    
                IF (UPDATE(OWNER_GUILD) AND @OWNER_GUILD != @iOWNER_GUILD)
                BEGIN
                    DELETE FROM IMPERIAMUCMS_ARCHITECT
                    DELETE FROM IMPERIAMUCMS_ARCHITECT_BANK
                END
            END
        IF (@@Error <> 0)
            ROLLBACK TRANSACTION
        ELSE
            COMMIT TRANSACTION
    GO
    
    
    CREATE TRIGGER IMPERIAMUCMS_TRIGGER_CHARACTER_INSERT_TR ON [dbo].[Character]
        AFTER INSERT
        AS
        SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
        BEGIN TRANSACTION
            IF TRIGGER_NESTLEVEL(@@PROCID) = 1
            BEGIN
                SET NOCOUNT ON
                DECLARE @AccountID varchar(10);
                DECLARE @Name varchar(10);
                SELECT @AccountID = i.AccountID FROM inserted i;
                SELECT @Name = i.Name FROM inserted i;
    
    
                BEGIN
                    INSERT INTO IMPERIAMUCMS_CHARACTER_PROGRESS_LOGS (AccountID, Name, OldValue, NewValue, Type, Date, IP, TotalTime) VALUES (@AccountID, @Name, 0, 0, 1, SYSDATETIME(), '0.0.0.0', NULL)
                    INSERT INTO IMPERIAMUCMS_CHARACTER_PROGRESS_LOGS (AccountID, Name, OldValue, NewValue, Type, Date, IP, TotalTime) VALUES (@AccountID, @Name, 0, 0, 2, SYSDATETIME(), '0.0.0.0', NULL)
                END
            END
        IF (@@Error <> 0)
            ROLLBACK TRANSACTION
        ELSE
            COMMIT TRANSACTION
    GO
    
    
    CREATE TRIGGER IMPERIAMUCMS_TRIGGER_CHARACTER_TR ON [dbo].[Character]
        AFTER UPDATE
        AS
        SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
        BEGIN TRANSACTION
            IF TRIGGER_NESTLEVEL(@@PROCID) = 1
            BEGIN
                SET NOCOUNT ON
    
    
                DECLARE @cLevel_MAX int;
                DECLARE @mLevel_MAX int;
                DECLARE @RESETS_MAX int;
                DECLARE @Grand_Resets_MAX int;
                SET @cLevel_MAX = 400;
                SET @mLevel_MAX = 800;
                SET @RESETS_MAX = 100;
                SET @Grand_Resets_MAX = 0;
    
    
                DECLARE @date date;
                SELECT @date = CAST(GETDATE() AS DATE);
    
    
                BEGIN
                    UPDATE Character
                        SET MaxReached = CAST(GETDATE() AS SMALLDATETIME)
                    FROM Character c
                    JOIN inserted i ON c.Name = i.Name
                    WHERE c.Name = i.Name AND i.cLevel = @cLevel_MAX AND i.mLevel = @mLevel_MAX
                        AND i.RESETS = @RESETS_MAX AND i.Grand_Resets = @Grand_Resets_MAX
    
    
                    UPDATE IMPERIAMUCMS_TRIGGER_CHARACTER
                        SET cLevel = CASE WHEN i.cLevel > d.cLevel THEN tc.cLevel + i.cLevel - d.cLevel ELSE tc.cLevel END,
                            mLevel = CASE WHEN i.mLevel > d.mLevel THEN tc.mLevel + i.mLevel - d.mLevel ELSE tc.mLevel END,
                            RESETS = CASE WHEN i.RESETS > d.RESETS THEN tc.RESETS + i.RESETS - d.RESETS ELSE tc.RESETS END,
                            Grand_Resets = CASE WHEN i.Grand_Resets > d.Grand_Resets THEN tc.Grand_Resets + i.Grand_Resets - d.Grand_Resets ELSE tc.Grand_Resets END,
                            Experience = CASE WHEN i.Experience > d.Experience THEN tc.Experience + i.Experience - d.Experience ELSE tc.Experience END,
                            mlExperience = CASE WHEN i.mlExperience > d.mlExperience THEN tc.mlExperience + i.mlExperience - d.mlExperience ELSE tc.mlExperience END,
                            Money = CASE WHEN i.Money > d.Money THEN tc.Money + i.Money - d.Money ELSE tc.Money END,
                            PkCount = CASE WHEN i.PkCount > d.PkCount THEN tc.PkCount + i.PkCount - d.PkCount ELSE tc.PkCount END,
                            WinDuels = CASE WHEN i.WinDuels > d.WinDuels THEN tc.WinDuels + i.WinDuels - d.WinDuels ELSE tc.WinDuels END,
                            LoseDuels = CASE WHEN i.LoseDuels > d.LoseDuels THEN tc.LoseDuels + i.LoseDuels - d.LoseDuels ELSE tc.LoseDuels END
                    FROM IMPERIAMUCMS_TRIGGER_CHARACTER tc
                    JOIN inserted i ON tc.Name = i.Name
                    JOIN deleted d ON tc.Name = d.Name
                    WHERE tc.Name = i.Name AND tc.Date = @date
    
    
                    -- Guild
                    UPDATE IMPERIAMUCMS_TRIGGER_GUILD
                        SET cLevel = CASE WHEN i.cLevel > d.cLevel THEN tg.cLevel + i.cLevel - d.cLevel ELSE tg.cLevel END,
                            mLevel = CASE WHEN i.mLevel > d.mLevel THEN tg.mLevel + i.mLevel - d.mLevel ELSE tg.mLevel END,
                            RESETS = CASE WHEN i.RESETS > d.RESETS THEN tg.RESETS + i.RESETS - d.RESETS ELSE tg.RESETS END,
                            Grand_Resets = CASE WHEN i.Grand_Resets > d.Grand_Resets THEN tg.Grand_Resets + i.Grand_Resets - d.Grand_Resets ELSE tg.Grand_Resets END
                    FROM IMPERIAMUCMS_TRIGGER_GUILD tg
                    JOIN inserted i ON tg.G_Name = (SELECT G_Name FROM GuildMember gm WITH (READUNCOMMITTED) WHERE gm.Name = i.Name)
                    JOIN deleted d ON tg.G_Name = (SELECT G_Name FROM GuildMember gm WITH (READUNCOMMITTED) WHERE gm.Name = d.Name)
                    WHERE EXISTS (
                        SELECT G_Name FROM GuildMember gm WITH (READUNCOMMITTED)
                        WHERE gm.Name = i.Name
                    ) AND tg.G_Name = (
                        SELECT G_Name FROM GuildMember gm WITH (READUNCOMMITTED)
                        WHERE gm.Name = i.Name
                    ) AND tg.Date = @date
    
    
                    INSERT INTO IMPERIAMUCMS_TRIGGER_CHARACTER (AccountID, Name, cLevel, mLevel, RESETS, Grand_Resets,
                        Experience, mlExperience, Money, PkCount, WinDuels, LoseDuels, Date)
                    SELECT i.AccountID, i.Name,
                        CASE WHEN i.cLevel > d.cLevel THEN i.cLevel - d.cLevel ELSE 0 END,
                        CASE WHEN i.mLevel > d.mLevel THEN i.mLevel - d.mLevel ELSE 0 END,
                        CASE WHEN i.RESETS > d.RESETS THEN i.RESETS - d.RESETS ELSE 0 END,
                        CASE WHEN i.Grand_Resets > d.Grand_Resets THEN i.Grand_Resets - d.Grand_Resets ELSE 0 END,
                        CASE WHEN i.Experience > d.Experience THEN i.Experience - d.Experience ELSE 0 END,
                        CASE WHEN i.mlExperience > d.mlExperience THEN i.mlExperience - d.mlExperience ELSE 0 END,
                        CASE WHEN i.Money > d.Money THEN i.Money - d.Money ELSE 0 END,
                        CASE WHEN i.PkCount > d.PkCount THEN i.PkCount - d.PkCount ELSE 0 END,
                        CASE WHEN i.WinDuels > d.WinDuels THEN i.WinDuels - d.WinDuels ELSE 0 END,
                        CASE WHEN i.LoseDuels > d.LoseDuels THEN i.LoseDuels - d.LoseDuels ELSE 0 END,
                        @date
                    FROM inserted i
                    JOIN deleted d ON d.Name = i.Name
                    WHERE NOT EXISTS (
                        SELECT Name FROM IMPERIAMUCMS_TRIGGER_CHARACTER tc
                        WHERE tc.Name = i.Name AND tc.Date = @date
                    )
    
    
                    -- Guild
                    INSERT INTO IMPERIAMUCMS_TRIGGER_GUILD (G_Name, G_Master, cLevel, mLevel, RESETS, Grand_Resets, Date)
                    SELECT (SELECT G_Name FROM GuildMember gm WITH (READUNCOMMITTED) WHERE gm.Name = i.Name),
                        (SELECT G_Master FROM Guild g WITH (READUNCOMMITTED) WHERE g.G_Name = (
                            SELECT G_Name FROM GuildMember gm WITH (READUNCOMMITTED) WHERE gm.Name = i.Name
                        )),
                        CASE WHEN i.cLevel > d.cLevel THEN i.cLevel - d.cLevel ELSE 0 END,
                        CASE WHEN i.mLevel > d.mLevel THEN i.mLevel - d.mLevel ELSE 0 END,
                        CASE WHEN i.RESETS > d.RESETS THEN i.RESETS - d.RESETS ELSE 0 END,
                        CASE WHEN i.Grand_Resets > d.Grand_Resets THEN i.Grand_Resets - d.Grand_Resets ELSE 0 END,
                        @date
                    FROM inserted i
                    JOIN deleted d ON d.Name = i.Name
                    WHERE EXISTS (
                        SELECT G_Name FROM GuildMember gm WITH (READUNCOMMITTED)
                        WHERE gm.Name = i.Name
                    ) AND NOT EXISTS (
                        SELECT G_Name FROM IMPERIAMUCMS_TRIGGER_GUILD tg
                        WHERE tg.G_Name =  (
                            SELECT G_Name FROM GuildMember gm WITH (READUNCOMMITTED)
                            WHERE gm.Name = i.Name
                        ) AND tg.Date = @date
                    )
                    SET NOCOUNT OFF
                END
            END
        IF (@@Error <> 0)
            ROLLBACK TRANSACTION
        ELSE
            COMMIT TRANSACTION
    GO
    
    
    CREATE TRIGGER IMPERIAMUCMS_TRIGGER_GUILD_TR ON [dbo].[Guild]
        AFTER UPDATE
        AS
        SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
        BEGIN TRANSACTION
            IF TRIGGER_NESTLEVEL(@@PROCID) = 1
            BEGIN
                SET NOCOUNT ON
    
    
                DECLARE @date date;
                SELECT @date = CAST(GETDATE() AS DATE);
    
    
                BEGIN
                    UPDATE IMPERIAMUCMS_TRIGGER_GUILD SET G_Score = tg.G_Score + (i.G_Score - d.G_Score)
                    FROM IMPERIAMUCMS_TRIGGER_GUILD tg
                    JOIN inserted i ON tg.G_Name = i.G_Name
                    JOIN deleted d ON tg.G_Name = d.G_Name
                    WHERE (i.G_Score > d.G_Score) AND tg.G_Name = i.G_Name AND tg.Date = @date
    
    
                    INSERT INTO IMPERIAMUCMS_TRIGGER_GUILD (G_Name, G_Master, G_Score, Date)
                    SELECT i.G_Name,
                        (SELECT G_Master FROM Guild WITH (READUNCOMMITTED) WHERE G_Name = i.G_Name),
                        (i.G_Score - d.G_Score), @date
                    FROM inserted i
                    JOIN deleted d ON d.G_Name = i.G_Name
                    WHERE (i.G_Score > d.G_Score)
                        AND NOT EXISTS (
                            SELECT G_Name FROM IMPERIAMUCMS_TRIGGER_GUILD tg
                            WHERE tg.G_Name = i.G_Name AND tg.Date = @date
                        )
                    SET NOCOUNT OFF
                END
            END
        IF (@@Error <> 0)
            ROLLBACK TRANSACTION
        ELSE
            COMMIT TRANSACTION
    GO
    
    
    CREATE TRIGGER IMPERIAMUCMS_TRIGGER_MONSTER_TR ON [dbo].[C_Monster_KillCount]
        AFTER UPDATE, INSERT
        AS
        SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
        BEGIN TRANSACTION
            IF TRIGGER_NESTLEVEL(@@PROCID) = 1
            BEGIN
                SET NOCOUNT ON
    
    
                DECLARE @date date;
                SELECT @date = CAST(GETDATE() AS DATE);
    
    
                BEGIN
                    IF EXISTS (SELECT * FROM DELETED)
                        BEGIN
                            UPDATE IMPERIAMUCMS_TRIGGER_MONSTER
                                SET Count = tm.Count + (i.count - d.count),
                                LastKilled = CAST(GETDATE() AS DATETIME)
                            FROM IMPERIAMUCMS_TRIGGER_MONSTER tm
                            JOIN inserted i ON tm.Name = i.Name
                            JOIN deleted d ON tm.Name = d.Name
                            WHERE (i.count > d.count) AND tm.Name = i.Name AND tm.MonsterID = i.MonsterId AND tm.Date = @date
    
    
                            INSERT INTO IMPERIAMUCMS_TRIGGER_MONSTER (AccountID, Name, MonsterID, Count, LastKilled, Date)
                            SELECT (SELECT Id FROM AccountCharacter WITH (READUNCOMMITTED) WHERE GameIDC = i.Name),
                                i.Name, i.MonsterId, (i.count - d.count), CAST(GETDATE() AS DATETIME), @date
                            FROM inserted i
                            JOIN deleted d ON d.Name = i.Name
                            WHERE (i.count > d.count)
                                AND NOT EXISTS (
                                    SELECT Name FROM IMPERIAMUCMS_TRIGGER_MONSTER tm WITH (READUNCOMMITTED)
                                    WHERE tm.Name = i.Name AND tm.MonsterID = i.MonsterId AND tm.Date = @date
                                )
                        END
                    ELSE
                        BEGIN
                            UPDATE IMPERIAMUCMS_TRIGGER_MONSTER
                                SET Count = CASE WHEN i.count > 0 THEN tm.Count + i.count ELSE tm.Count END
                            FROM IMPERIAMUCMS_TRIGGER_MONSTER tm
                            JOIN inserted i ON tm.Name = i.Name
                            WHERE tm.Name = i.Name AND tm.MonsterID = i.MonsterId AND tm.Date = @date
    
    
                            INSERT INTO IMPERIAMUCMS_TRIGGER_MONSTER (AccountID, Name, MonsterID, Count, LastKilled, Date)
                            SELECT (SELECT Id FROM AccountCharacter WITH (READUNCOMMITTED) WHERE GameIDC = i.Name),
                                i.Name, i.MonsterId,
                                CASE WHEN i.count > 0 THEN i.count ELSE 0 END,
                                CAST(GETDATE() AS DATETIME),
                                @date
                            FROM inserted i
                            WHERE NOT EXISTS (
                                SELECT Name FROM IMPERIAMUCMS_TRIGGER_MONSTER tm WITH (READUNCOMMITTED)
                                WHERE tm.Name = i.Name AND tm.MonsterID = i.MonsterId AND tm.Date = @date
                            )
                        END
                    SET NOCOUNT OFF
                END
            END
        IF (@@Error <> 0)
            ROLLBACK TRANSACTION
        ELSE
            COMMIT TRANSACTION
    GO
    
    
    CREATE TRIGGER IMPERIAMUCMS_TRIGGER_GENS_TR ON [dbo].[IGC_Gens]
        AFTER UPDATE, INSERT
        AS
        SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
        BEGIN TRANSACTION
            IF TRIGGER_NESTLEVEL(@@PROCID) = 1
            BEGIN
                SET NOCOUNT ON
    
    
                DECLARE @date date;
                SELECT @date = CAST(GETDATE() AS DATE);
    
    
                BEGIN
                    IF EXISTS (SELECT * FROM DELETED)
                        BEGIN
                            UPDATE IMPERIAMUCMS_TRIGGER_CHARACTER SET Gens_Points = tc.Gens_Points + (i.Points - d.Points)
                            FROM IMPERIAMUCMS_TRIGGER_CHARACTER tc
                            JOIN inserted i ON tc.Name = i.Name
                            JOIN deleted d ON tc.Name = d.Name
                            WHERE (i.Points > d.Points) AND tc.Name = i.Name AND tc.Date = @date
    
    
                            INSERT INTO IMPERIAMUCMS_TRIGGER_CHARACTER (AccountID, Name, Gens_Points, Gens_Kills, Date)
                            SELECT (SELECT Id FROM AccountCharacter WITH (READUNCOMMITTED) WHERE GameIDC = i.Name),
                                i.Name, (i.Points - d.Points), 0, @date
                            FROM inserted i
                            JOIN deleted d ON d.Name = i.Name
                            WHERE (i.Points > d.Points)
                                AND NOT EXISTS (
                                    SELECT Name FROM IMPERIAMUCMS_TRIGGER_CHARACTER tc WITH (READUNCOMMITTED)
                                    WHERE tc.Name = i.Name AND tc.Date = @date
                                )
                        END
                    ELSE
                        BEGIN
                            UPDATE IMPERIAMUCMS_TRIGGER_CHARACTER
                                SET Gens_Points = CASE WHEN i.Points > 0 THEN tc.Gens_Points + i.Points ELSE tc.Gens_Points END
                            FROM IMPERIAMUCMS_TRIGGER_CHARACTER tc
                            JOIN inserted i ON tc.Name = i.Name
                            WHERE tc.Name = i.Name AND tc.Date = @date
    
    
                            INSERT INTO IMPERIAMUCMS_TRIGGER_CHARACTER (AccountID, Name, Gens_Points, Gens_Kills, Date)
                            SELECT (SELECT Id FROM AccountCharacter WITH (READUNCOMMITTED) WHERE GameIDC = i.Name),
                                i.Name,
                                CASE WHEN i.Points > 0 THEN i.Points ELSE 0 END,
                                0,
                                @date
                            FROM inserted i
                            WHERE NOT EXISTS (
                                SELECT Name FROM IMPERIAMUCMS_TRIGGER_CHARACTER tc WITH (READUNCOMMITTED)
                                WHERE tc.Name = i.Name AND tc.Date = @date
                            )
                        END
                    SET NOCOUNT OFF
                END
            END
        IF (@@Error <> 0)
            ROLLBACK TRANSACTION
        ELSE
            COMMIT TRANSACTION
    GO
    
    
    CREATE TRIGGER IMPERIAMUCMS_TRIGGER_GENS_ABUSE_TR ON [dbo].[IGC_GensAbuse]
        AFTER UPDATE, INSERT
        AS
        SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
        BEGIN TRANSACTION
            IF TRIGGER_NESTLEVEL(@@PROCID) = 1
            BEGIN
                SET NOCOUNT ON
    
    
                DECLARE @date date;
                SELECT @date = CAST(GETDATE() AS DATE);
    
    
                BEGIN
                    IF EXISTS (SELECT * FROM DELETED)
                        BEGIN
                            UPDATE IMPERIAMUCMS_TRIGGER_CHARACTER SET Gens_Kills = tc.Gens_Kills + (i.KillCount - d.KillCount)
                            FROM IMPERIAMUCMS_TRIGGER_CHARACTER tc
                            JOIN inserted i ON tc.Name = i.Name
                            JOIN deleted d ON tc.Name = d.Name
                            WHERE (i.KillCount > d.KillCount) AND tc.Name = i.Name AND tc.Date = @date
    
    
                            INSERT INTO IMPERIAMUCMS_TRIGGER_CHARACTER (AccountID, Name, Gens_Points, Gens_Kills, Date)
                            SELECT (SELECT Id FROM AccountCharacter WITH (READUNCOMMITTED) WHERE GameIDC = i.Name),
                                i.Name, 0, (i.KillCount - d.KillCount), @date
                            FROM inserted i
                            JOIN deleted d ON d.Name = i.Name
                            WHERE (i.KillCount > d.KillCount)
                                AND NOT EXISTS (
                                    SELECT Name FROM IMPERIAMUCMS_TRIGGER_CHARACTER tc WITH (READUNCOMMITTED)
                                    WHERE tc.Name = i.Name AND tc.Date = @date
                                )
                        END
                    ELSE
                        BEGIN
                            UPDATE IMPERIAMUCMS_TRIGGER_CHARACTER
                                SET Gens_Kills = CASE WHEN i.KillCount > 0 THEN tc.Gens_Kills + i.KillCount ELSE tc.Gens_Kills END
                            FROM IMPERIAMUCMS_TRIGGER_CHARACTER tc
                            JOIN inserted i ON tc.Name = i.Name
                            WHERE tc.Name = i.Name AND tc.Date = @date
    
    
                            INSERT INTO IMPERIAMUCMS_TRIGGER_CHARACTER (AccountID, Name, Gens_Points, Gens_Kills, Date)
                            SELECT (SELECT Id FROM AccountCharacter WITH (READUNCOMMITTED) WHERE GameIDC = i.Name),
                                i.Name,
                                0,
                                CASE WHEN i.KillCount > 0 THEN i.KillCount ELSE 0 END,
                                @date
                            FROM inserted i
                            WHERE NOT EXISTS (
                                SELECT Name FROM IMPERIAMUCMS_TRIGGER_CHARACTER tc WITH (READUNCOMMITTED)
                                WHERE tc.Name = i.Name AND tc.Date = @date
                            )
                        END
                    SET NOCOUNT OFF
                END
            END
        IF (@@Error <> 0)
            ROLLBACK TRANSACTION
        ELSE
            COMMIT TRANSACTION
    GO
    
    
    CREATE TRIGGER IMPERIAMUCMS_TRIGGER_INGAME_SHOP_POINTS_TR ON [dbo].[T_InGameShop_Point]
        AFTER UPDATE, INSERT
        AS
        SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
        BEGIN TRANSACTION
            IF TRIGGER_NESTLEVEL(@@PROCID) = 1
            BEGIN
                SET NOCOUNT ON
    
    
                DECLARE @date date;
                SELECT @date = CAST(GETDATE() AS DATE);
    
    
                BEGIN
                    IF EXISTS (SELECT * FROM DELETED)
                        BEGIN
                            UPDATE IMPERIAMUCMS_TRIGGER_INGAME_SHOP_POINTS
                                SET WCoin = CASE WHEN i.WCoinC > d.WCoinC THEN tp.WCoin + i.WCoinC - d.WCoinC ELSE tp.WCoin END,
                                GoblinPoint = CASE WHEN i.GoblinPoint > d.GoblinPoint THEN tp.GoblinPoint + i.GoblinPoint - d.GoblinPoint ELSE tp.GoblinPoint END
                            FROM IMPERIAMUCMS_TRIGGER_INGAME_SHOP_POINTS tp
                            JOIN inserted i ON tp.AccountID = i.AccountID
                            JOIN deleted d ON tp.AccountID = d.AccountID
                            WHERE tp.AccountID = i.AccountID AND tp.Date = @date
    
    
                            INSERT INTO IMPERIAMUCMS_TRIGGER_INGAME_SHOP_POINTS (AccountID, WCoin, GoblinPoint, Date)
                            SELECT i.AccountID,
                                CASE WHEN i.WCoinC > d.WCoinC THEN i.WCoinC - d.WCoinC ELSE 0 END,
                                CASE WHEN i.GoblinPoint > d.GoblinPoint THEN i.GoblinPoint - d.GoblinPoint ELSE 0 END,
                                @date
                            FROM inserted i
                            JOIN deleted d ON d.AccountID = i.AccountID
                            WHERE NOT EXISTS (
                                SELECT AccountID FROM IMPERIAMUCMS_TRIGGER_INGAME_SHOP_POINTS tp WITH (READUNCOMMITTED)
                                WHERE tp.AccountID = i.AccountID AND tp.Date = @date
                            )
                        END
                    ELSE
                        BEGIN
                            UPDATE IMPERIAMUCMS_TRIGGER_INGAME_SHOP_POINTS
                                SET WCoin = CASE WHEN i.WCoinC > 0 THEN tp.WCoin + i.WCoinC ELSE tp.WCoin END,
                                GoblinPoint = CASE WHEN i.GoblinPoint > 0 THEN tp.GoblinPoint + i.GoblinPoint ELSE tp.GoblinPoint END
                            FROM IMPERIAMUCMS_TRIGGER_INGAME_SHOP_POINTS tp
                            JOIN inserted i ON tp.AccountID = i.AccountID
                            WHERE tp.AccountID = i.AccountID AND tp.Date = @date
    
    
                            INSERT INTO IMPERIAMUCMS_TRIGGER_INGAME_SHOP_POINTS (AccountID, WCoin, GoblinPoint, Date)
                            SELECT i.AccountID,
                                CASE WHEN i.WCoinC > 0 THEN i.WCoinC ELSE 0 END,
                                CASE WHEN i.GoblinPoint > 0 THEN i.GoblinPoint ELSE 0 END,
                                @date
                            FROM inserted i
                            WHERE NOT EXISTS (
                                SELECT AccountID FROM IMPERIAMUCMS_TRIGGER_INGAME_SHOP_POINTS tp WITH (READUNCOMMITTED)
                                WHERE tp.AccountID = i.AccountID AND tp.Date = @date
                            )
                        END
                    SET NOCOUNT OFF
                END
            END
        IF (@@Error <> 0)
            ROLLBACK TRANSACTION
        ELSE
            COMMIT TRANSACTION
    GO

    Triggers for Ranking database
    Please replace "[Ranking]" with your Ranking database name and "[MuOnline]" with your MuOnline database name. After that execute it in your SQL Server Management Studio. To do that open SQL Server Management Studio, in top navigation panel click on "New Query" and paste trigger code (which is displayed below) into new opened window tab, after that press "F5" or click on button "Execute" in top navigation panel.


    Python:
    Código:
    USE [Ranking]
    GO
    
    
    IF OBJECT_ID ('IMPERIAMUCMS_TRIGGER_EVENT_DS_TR', 'TR') IS NOT NULL
       DROP TRIGGER IMPERIAMUCMS_TRIGGER_EVENT_DS_TR
    GO
    
    
    IF OBJECT_ID ('IMPERIAMUCMS_TRIGGER_EVENT_BC_TR', 'TR') IS NOT NULL
       DROP TRIGGER IMPERIAMUCMS_TRIGGER_EVENT_BC_TR
    GO
    
    
    IF OBJECT_ID ('IMPERIAMUCMS_TRIGGER_EVENT_CC_TR', 'TR') IS NOT NULL
       DROP TRIGGER IMPERIAMUCMS_TRIGGER_EVENT_CC_TR
    GO
    
    
    IF OBJECT_ID ('IMPERIAMUCMS_TRIGGER_EVENT_IT_TR', 'TR') IS NOT NULL
       DROP TRIGGER IMPERIAMUCMS_TRIGGER_EVENT_IT_TR
    GO
    
    
    CREATE TRIGGER IMPERIAMUCMS_TRIGGER_EVENT_DS_TR ON [dbo].[EVENT_INFO]
        AFTER UPDATE, INSERT
        AS
        SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
        BEGIN TRANSACTION
            IF TRIGGER_NESTLEVEL(@@PROCID) = 1
            BEGIN
                SET NOCOUNT ON
    
    
                DECLARE @date date;
                SELECT @date = CAST(GETDATE() AS DATE);
    
    
                BEGIN
                    IF EXISTS (SELECT * FROM DELETED)
                        BEGIN
                            UPDATE [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] SET DS_Points = te.DS_Points + (i.Point - d.Point)
                            FROM [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] te
                            JOIN inserted i ON te.Name = i.CharacterName
                            JOIN deleted d ON te.Name = d.CharacterName
                            WHERE (i.Point > d.Point) AND te.Name = i.CharacterName AND te.Date = @date
    
    
                            INSERT INTO [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] (AccountID, Name, DS_Points, Date)
                            SELECT (SELECT Id FROM [MuOnline].[dbo].[AccountCharacter] WITH (READUNCOMMITTED) WHERE GameIDC = i.CharacterName),
                                i.CharacterName, (i.Point - d.Point), @date
                            FROM inserted i
                            JOIN deleted d ON d.CharacterName = i.CharacterName
                            WHERE (i.Point > d.Point)
                                AND NOT EXISTS (
                                    SELECT Name FROM [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] te WITH (READUNCOMMITTED)
                                    WHERE te.Name = i.CharacterName AND te.Date = @date
                                )
                        END
                    ELSE
                        BEGIN
                            UPDATE [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT]
                                SET DS_Points = CASE WHEN i.Point > 0 THEN te.DS_Points + i.Point ELSE te.DS_Points END
                            FROM [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] te
                            JOIN inserted i ON te.Name = i.CharacterName
                            WHERE te.Name = i.CharacterName AND te.Date = @date
    
    
                            INSERT INTO [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] (AccountID, Name, DS_Points, Date)
                            SELECT (SELECT Id FROM [MuOnline].[dbo].[AccountCharacter] WITH (READUNCOMMITTED) WHERE GameIDC = i.CharacterName),
                                i.CharacterName,
                                CASE WHEN i.Point > 0 THEN i.Point ELSE 0 END,
                                @date
                            FROM inserted i
                            WHERE NOT EXISTS (
                                SELECT Name FROM [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] te WITH (READUNCOMMITTED)
                                WHERE te.Name = i.CharacterName AND te.Date = @date
                            )
                        END
                    SET NOCOUNT OFF
                END
            END
        IF (@@Error <> 0)
            ROLLBACK TRANSACTION
        ELSE
            COMMIT TRANSACTION
    GO
    
    
    CREATE TRIGGER IMPERIAMUCMS_TRIGGER_EVENT_BC_TR ON [dbo].[EVENT_INFO_BC_5TH]
        AFTER UPDATE, INSERT
        AS
        SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
        BEGIN TRANSACTION
            IF TRIGGER_NESTLEVEL(@@PROCID) = 1
            BEGIN
                SET NOCOUNT ON
    
    
                DECLARE @date date;
                SELECT @date = CAST(GETDATE() AS DATE);
    
    
                BEGIN
                    IF EXISTS (SELECT * FROM DELETED)
                        BEGIN
                            UPDATE [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] SET BC_Points = te.BC_Points + (i.Point - d.Point)
                            FROM [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] te
                            JOIN inserted i ON te.Name = i.CharacterName
                            JOIN deleted d ON te.Name = d.CharacterName
                            WHERE (i.Point > d.Point) AND te.Name = i.CharacterName AND te.Date = @date
    
    
                            INSERT INTO [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] (AccountID, Name, BC_Points, Date)
                            SELECT (SELECT Id FROM [MuOnline].[dbo].[AccountCharacter] WITH (READUNCOMMITTED) WHERE GameIDC = i.CharacterName),
                                i.CharacterName, (i.Point - d.Point), @date
                            FROM inserted i
                            JOIN deleted d ON d.CharacterName = i.CharacterName
                            WHERE (i.Point > d.Point)
                                AND NOT EXISTS (
                                    SELECT Name FROM [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] te WITH (READUNCOMMITTED)
                                    WHERE te.Name = i.CharacterName AND te.Date = @date
                                )
                        END
                    ELSE
                        BEGIN
                            UPDATE [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT]
                                SET BC_Points = CASE WHEN i.Point > 0 THEN te.BC_Points + i.Point ELSE te.BC_Points END
                            FROM [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] te
                            JOIN inserted i ON te.Name = i.CharacterName
                            WHERE te.Name = i.CharacterName AND te.Date = @date
    
    
                            INSERT INTO [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] (AccountID, Name, BC_Points, Date)
                            SELECT (SELECT Id FROM [MuOnline].[dbo].[AccountCharacter] WITH (READUNCOMMITTED) WHERE GameIDC = i.CharacterName),
                                i.CharacterName,
                                CASE WHEN i.Point > 0 THEN i.Point ELSE 0 END,
                                @date
                            FROM inserted i
                            WHERE NOT EXISTS (
                                SELECT Name FROM [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] te WITH (READUNCOMMITTED)
                                WHERE te.Name = i.CharacterName AND te.Date = @date
                            )
                        END
                    SET NOCOUNT OFF
                END
            END
        IF (@@Error <> 0)
            ROLLBACK TRANSACTION
        ELSE
            COMMIT TRANSACTION
    GO
    
    
    CREATE TRIGGER IMPERIAMUCMS_TRIGGER_EVENT_CC_TR ON [dbo].[EVENT_INFO_CC]
        AFTER UPDATE, INSERT
        AS
        SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
        BEGIN TRANSACTION
            IF TRIGGER_NESTLEVEL(@@PROCID) = 1
            BEGIN
                SET NOCOUNT ON
    
    
                DECLARE @date date;
                SELECT @date = CAST(GETDATE() AS DATE);
    
    
                BEGIN
                    IF EXISTS (SELECT * FROM DELETED)
                        BEGIN
                            UPDATE [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT]
                                SET CC_Wins = CASE WHEN i.Wins > d.Wins THEN te.CC_Wins + i.Wins - d.Wins ELSE te.CC_Wins END,
                                CC_PKillCount = CASE WHEN i.PKillCount > d.PKillCount THEN te.CC_PKillCount + i.PKillCount - d.PKillCount ELSE te.CC_PKillCount END,
                                CC_MKillCount = CASE WHEN i.MKillCount > d.MKillCount THEN te.CC_MKillCount + i.MKillCount - d.MKillCount ELSE te.CC_MKillCount END
                            FROM [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] te
                            JOIN inserted i ON te.Name = i.Name
                            JOIN deleted d ON te.Name = d.Name
                            WHERE te.Name = i.Name AND te.Date = @date
    
    
                            INSERT INTO [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] (AccountID, Name, CC_Wins, CC_PKillCount, CC_MKillCount, Date)
                            SELECT (SELECT Id FROM [MuOnline].[dbo].[AccountCharacter] WITH (READUNCOMMITTED) WHERE GameIDC = i.Name),
                                i.Name,
                                CASE WHEN i.Wins > d.Wins THEN i.Wins - d.Wins ELSE 0 END,
                                CASE WHEN i.PKillCount > d.PKillCount THEN i.PKillCount - d.PKillCount ELSE 0 END,
                                CASE WHEN i.MKillCount > d.MKillCount THEN i.MKillCount - d.MKillCount ELSE 0 END,
                                @date
                            FROM inserted i
                            JOIN deleted d ON d.Name = i.Name
                            WHERE NOT EXISTS (
                                SELECT Name FROM [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] te WITH (READUNCOMMITTED)
                                WHERE te.Name = i.Name AND te.Date = @date
                            )
                        END
                    ELSE
                        BEGIN
                            UPDATE [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT]
                                SET CC_Wins = CASE WHEN i.Wins > 0 THEN te.CC_Wins + i.Wins ELSE te.CC_Wins END,
                                CC_PKillCount = CASE WHEN i.PKillCount > 0 THEN te.CC_PKillCount + i.PKillCount ELSE te.CC_PKillCount END,
                                CC_MKillCount = CASE WHEN i.MKillCount > 0 THEN te.CC_MKillCount + i.MKillCount ELSE te.CC_MKillCount END
                            FROM [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] te
                            JOIN inserted i ON te.Name = i.Name
                            WHERE te.Name = i.Name AND te.Date = @date
    
    
                            INSERT INTO [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] (AccountID, Name, CC_Wins, CC_PKillCount, CC_MKillCount, Date)
                            SELECT (SELECT Id FROM [MuOnline].[dbo].[AccountCharacter] WITH (READUNCOMMITTED) WHERE GameIDC = i.Name),
                                i.Name,
                                CASE WHEN i.Wins > 0 THEN i.Wins ELSE 0 END,
                                CASE WHEN i.PKillCount > 0 THEN i.PKillCount ELSE 0 END,
                                CASE WHEN i.MKillCount > 0 THEN i.MKillCount ELSE 0 END,
                                @date
                            FROM inserted i
                            WHERE NOT EXISTS (
                                SELECT Name FROM [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] te WITH (READUNCOMMITTED)
                                WHERE te.Name = i.Name AND te.Date = @date
                            )
                        END
                    SET NOCOUNT OFF
                END
            END
        IF (@@Error <> 0)
            ROLLBACK TRANSACTION
        ELSE
            COMMIT TRANSACTION
    GO
    
    
    CREATE TRIGGER IMPERIAMUCMS_TRIGGER_EVENT_IT_TR ON [dbo].[EVENT_INFO_IT]
        AFTER UPDATE, INSERT
        AS
        SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
        BEGIN TRANSACTION
            IF TRIGGER_NESTLEVEL(@@PROCID) = 1
            BEGIN
                SET NOCOUNT ON
    
    
                DECLARE @date date;
                SELECT @date = CAST(GETDATE() AS DATE);
    
    
                BEGIN
                    IF EXISTS (SELECT * FROM DELETED)
                        BEGIN
                            UPDATE [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT]
                                SET IT_TotalScore = CASE WHEN i.TotalScore > d.TotalScore THEN te.IT_TotalScore + i.TotalScore - d.TotalScore ELSE te.IT_TotalScore END,
                                IT_KillCount = CASE WHEN i.KillCount > d.KillCount THEN te.IT_KillCount + i.KillCount - d.KillCount ELSE te.IT_KillCount END,
                                IT_RelicsGivenCount = CASE WHEN i.RelicsGivenCount > d.RelicsGivenCount THEN te.IT_RelicsGivenCount + i.RelicsGivenCount - d.RelicsGivenCount ELSE te.IT_RelicsGivenCount END,
                                IT_Wins = CASE WHEN i.isWinner > d.isWinner THEN te.IT_Wins + i.isWinner - d.isWinner ELSE te.IT_Wins END
                            FROM [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] te
                            JOIN inserted i ON te.Name = i.Name
                            JOIN deleted d ON te.Name = d.Name
                            WHERE te.Name = i.Name AND te.Date = @date
    
    
                            INSERT INTO [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] (AccountID, Name, IT_TotalScore, IT_KillCount, IT_RelicsGivenCount, IT_Wins, Date)
                            SELECT (SELECT Id FROM [MuOnline].[dbo].[AccountCharacter] WITH (READUNCOMMITTED) WHERE GameIDC = i.Name),
                                i.Name,
                                CASE WHEN i.TotalScore > d.TotalScore THEN i.TotalScore - d.TotalScore ELSE 0 END,
                                CASE WHEN i.KillCount > d.KillCount THEN i.KillCount - d.KillCount ELSE 0 END,
                                CASE WHEN i.RelicsGivenCount > d.RelicsGivenCount THEN i.RelicsGivenCount - d.RelicsGivenCount ELSE 0 END,
                                CASE WHEN i.isWinner > d.isWinner THEN i.isWinner - d.isWinner ELSE 0 END,
                                @date
                            FROM inserted i
                            JOIN deleted d ON d.Name = i.Name
                            WHERE NOT EXISTS (
                                SELECT Name FROM [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] te WITH (READUNCOMMITTED)
                                WHERE te.Name = i.Name AND te.Date = @date
                            )
                        END
                    ELSE
                        BEGIN
                            UPDATE [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT]
                                SET IT_TotalScore = CASE WHEN i.TotalScore > 0 THEN te.IT_TotalScore + i.TotalScore ELSE te.IT_TotalScore END,
                                IT_KillCount = CASE WHEN i.KillCount > 0 THEN te.IT_KillCount + i.KillCount ELSE te.IT_KillCount END,
                                IT_RelicsGivenCount = CASE WHEN i.RelicsGivenCount > 0 THEN te.IT_RelicsGivenCount + i.RelicsGivenCount ELSE te.IT_RelicsGivenCount END,
                                IT_Wins = CASE WHEN i.isWinner > 0 THEN te.IT_Wins + i.isWinner ELSE te.IT_Wins END
                            FROM [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] te
                            JOIN inserted i ON te.Name = i.Name
                            WHERE te.Name = i.Name AND te.Date = @date
    
    
                            INSERT INTO [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] (AccountID, Name, IT_TotalScore, IT_KillCount, IT_RelicsGivenCount, IT_Wins, Date)
                            SELECT (SELECT Id FROM [MuOnline].[dbo].[AccountCharacter] WITH (READUNCOMMITTED) WHERE GameIDC = i.Name),
                                i.Name,
                                CASE WHEN i.TotalScore > 0 THEN i.TotalScore ELSE 0 END,
                                CASE WHEN i.KillCount > 0 THEN i.KillCount ELSE 0 END,
                                CASE WHEN i.RelicsGivenCount > 0 THEN i.RelicsGivenCount ELSE 0 END,
                                CASE WHEN i.isWinner > 0 THEN i.isWinner ELSE 0 END,
                                @date
                            FROM inserted i
                            WHERE NOT EXISTS (
                                SELECT Name FROM [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] te WITH (READUNCOMMITTED)
                                WHERE te.Name = i.Name AND te.Date = @date
                            )
                        END
                    SET NOCOUNT OFF
                END
            END
        IF (@@Error <> 0)
            ROLLBACK TRANSACTION
        ELSE
            COMMIT TRANSACTION
    GO


    Script Boss Timer


    Código:
    USE [MuOnline]
    
    
    GO
    
    
    SET ANSI_NULLS ON
    
    
    GO
    
    
    SET QUOTED_IDENTIFIER ON
    
    
    GO
    
    
    CREATE TABLE [dbo].[IMPERIAMUCMS_BOSS_TIMER](
    
    
        [id] [int] IDENTITY(1,1) NOT NULL,
    
    
        [name] [nvarchar](255) NOT NULL,
    
    
        [monsterId] [int] NOT NULL,
    
    
        [respawn] [int] NOT NULL,
    
    
        [order] [smallint] NULL,
    
    
        [active] [tinyint] NOT NULL
    
    
    ) ON [PRIMARY]
    
    
    GO
    
    
    ALTER TABLE [dbo].[IMPERIAMUCMS_BOSS_TIMER] ADD  DEFAULT ((0)) FOR [respawn]
    
    
    GO
    
    
    ALTER TABLE [dbo].[IMPERIAMUCMS_BOSS_TIMER] ADD  DEFAULT ((1)) FOR [active]
    
    
    GO

    Configuring cron jobs on Windows


    Open AdminCP, go to Scheduled Tasks -> Manage Cron Jobs -> click on the button "RESET ALL CRON JOBS" on the bottom of page.
    Open ./_Extra/cron.bat in any text editor and edit both paths (to cron.php and php.exe files).
    Now double-click on cron.bat to execute it. All cron jobs were now executed.
    Open Windows Task Scheduler and create new action what will execute cron.bat every minute (or every 5 minutes, it's on you) to regularly update all cache files.




    Configuring cron jobs on Linux


    Open AdminCP, go to Scheduled Tasks -> Manage Cron Jobs -> click on the button "RESET ALL CRON JOBS" on the bottom of page.
    In command line execute: crontab -e
    Press INSERT button on your keyboard to enable edit mode and on the bottom of file write (replace paths to PHP and cron.php with your paths):
    */5 * * * * /usr/bin/php /var/www/cron/cron.php
    ^path to PHP ^path to cron.php
    Press ESC, then :wq and ENTER to save file.
    Now execute manually cron.php with command (replace paths to PHP and cron.php with your paths):
    /usr/bin/php -f /var/www/cron/cron.php
    ^path to PHP ^path to cron.php
    If you have problems with permissions on Linux to execute cron.php, follow this steps:


    Open /etc/cron.d/ and create here new file with any name with the following content (replace link with your domain):
    */5 * * * * root wget --delete-after [Somente membros podem ver os links. ]
    Edit .htaccess file in /path/to/website/cron/.htaccess to looks like this (replace YOUR_HOST_IP with your IP):
    Deny from ALL
    Allow from YOUR_HOST_IP









    PS:


    File in attachment is for those, who tried to install ImperiaMuCMS automatically, but some query failed. If this happend, download sql script from attachment andexecute it. It will delete all ImperiaMuCMS tables and also MEMB_CREDITS table (ImperiaMuCMS is using different structure as default table). After all tables will bedeleted, go to /install/SQL/ and execute all scripts in correct order to import ImperiaMuCMS's database.
    [Somente membros podem ver os links. ]
    Last edited by Mentor; 26/09/2020 at 06:49 PM. Razão: Adição de imagens

  2. The Following 2 Users Say Thank You to ADMTec For This Useful Post:


  3. #2
    Developer C++ LorenStudio's Avatar




    Data de Ingresso
    Jul 2020
    Posts
    136
    Thanks Thanks Given 
    172
    Thanks Thanks Received 
    267
    Thanked in
    60 Posts
    Mencionado
    10 Post(s)
    País
    Canada
    Essa web não era a que tinha um problema no registro?


    PROJETOS:
    [Somente membros podem ver os links. ][Somente membros podem ver os links. ]

  4. #3
    Membro VIP ADMTec's Avatar
    Data de Ingresso
    Mar 2015
    Posts
    259
    Thanks Thanks Given 
    7
    Thanks Thanks Received 
    12
    Thanked in
    6 Posts
    Mencionado
    62 Post(s)
    MEU HUMOR
    Bored
    Citação Originally Posted by LuciferLGS Ver Post
    Essa web não era a que tinha um problema no registro?
    velho eu realmente não tenho essa informação, eu cheguei a instalar e vi alguns problemas em módulos desativados!
    vou ver essa questão do registro e do um retorno !



    -------edit

    Fiz o teste e ta registrando normal !
    Last edited by ADMTec; 01/09/2020 at 10:30 AM.

  5. The Following 2 Users Say Thank You to ADMTec For This Useful Post:


  6. 15/01/2021, 01:21 PM

  7. #4
    Fundador PerfectZone Mentor's Avatar


    Data de Ingresso
    Jun 2013
    Posts
    2,850
    Thanks Thanks Given 
    784
    Thanks Thanks Received 
    2,187
    Thanked in
    355 Posts
    Mencionado
    804 Post(s)
    MEU HUMOR
    Twisted
    País
    Brazil
    Citação Originally Posted by SkrillRO Ver Post
    New Version 2.0.12 Full Modules Plugin Free Buy NEW [Somente membros podem ver os links. ] support Season 16 ! [+] [Language] Added strings:
    settings_txt_23 - settings_txt_24, hide_1 - hide_14, market_txt_227 - market_txt_234,
    exc_opt_ice_dragon_0 - exc_opt_ice_dragon_4, exc_opt_ice_dragon_bonus_0 - exc_opt_ice_dragon_bonus_4,
    item_detail_txt_18 - item_detail_txt_29, vault_txt_4 - vault_txt_12, register_txt_37 - register_txt_39,
    transfercoins_txt_19 - transfercoins_txt_20
    [+] [Language] Modified strings:
    transfercoins_txt_2
    [+] [AdminCP] Added new paid module - Hex Code Replace Tool (updates items in Items Inventory and Claim a Reward modules with selected hex code - can be used to fix custom jewels new category and/or just update rewards or items)
    [+] Added new Premium Plus module - Hide Status
    [+] Added My History page in Market module
    [+] Enabled Event Inventory module on S9
    [+] Added support to improve SX items in My Vault module
    [+] Added support to improve 4th wings in My Vault module
    [+] Added support to improve new pendants (exc + socket) in My Vault module
    [+] Added new configs to My Vault module - price & max opts configurations for SX options
    [+] Improved tooltip of Fenrir, Ghost Horse and Ice Dragon mounts
    [+] Added "Confirm Email Address" into register form
    [+] Added javascript checks for password and email confirmations
    [+] Disabled option to paste text into password and email confirmations
    [+] Added support for multi-warehouse system in My Vault module
    [+] Added new config to Transfer Coins module - tax percentage
    [-] Removed support for recaptcha v1
    [!] [AdminCP] Fixed socket edit issues
    [!] Fixed two-fact auth not sending an email
    [!] Fixed incorrect language in recaptcha
    [!] Fixed SQL error in weekly and monthly Guild rankings
    Link download?
    Perfect Zone Brasil



    Inscreva-se no meu canal clicando [Somente membros podem ver os links. ]

  8. 15/01/2021, 10:16 PM
    Razão
    Floods

  9. 16/01/2021, 09:16 AM
    Razão
    Floods

  10. 22/05/2021, 01:09 AM

  11. #5
    Developer C++ SkrillRO's Avatar

    Data de Ingresso
    Nov 2017
    Posts
    5
    Thanks Thanks Given 
    4
    Thanks Thanks Received 
    1
    Thanked in
    1 Post
    Mencionado
    1 Post(s)
    MEU HUMOR
    Aggressive
    País
    Romania
    [26-04-2021] 2.0.15
    [+] Added option to create Webshop packages & mystery boxes only for Gun Crushers
    [+] Added Ruud into Web Bank
    [+] Logs are now divided into smaller files
    [+] Added cron job to delete old log files
    [+] Added browser notifications for Event Timer
    [+] Updated Downloads page - drivers section
    [+] Added serial into item tooltip in AdminCP logs modules
    [+] Added option to use Ruud as a reward in Promo Codes
    [+] Added option to use Ruud as a reward in Activity Rewards
    [+] Added option to use Ruud as a price type in Market
    [+] [Unique] Added Event Winner Rewards module
    [+] [Unique] Added Character Inventory Management module
    [+] Added option to create custom Promo Codes
    [+] Added Start and Expiration date for Promo Codes
    [!] Fixed issue with Adventures cron job
    [!] Fixed issue with email address validation
    [!] Fixed issue with deletion of webshop items
    [!] Fixed issue with deletion of language in Language Manager
    [!] Fixed issue in installation wizard - wrong query
    [!] Fixed issue in Grand Reset module - incorrect information about rewards
    [!] Fixed issue in Activity Rewards module - requirements to use the module
    [!] Fixed not recognizing items with category "20" in Achievements module
    [!] Fixed issue in Guild Profiles related to lower licenses
    [!] Fixed issue in Webshop with Bonus Socket option in some scenarios

    buy now : [Somente membros podem ver os links. ]

    • Skype™ frienz.mu

Permissões de Postagem

  • Você não pode iniciar novos tópicos
  • You may not post Resposta(s)
  • Você não pode enviar anexos
  • Você não pode editar suas mensagens
  •  
Sobre nós
Somos uma comunidade em atividade a 8 anos que aborda assuntos relacionados a games em geral, principalmente games MMORPG. e que busca sempre ajudar os membros através de conteúdos, tutoriais e suporte...
Nossos anunciantes
Hinetworks
VelozHost
InovHost
Rede Sociais