PDA

View Full Version : |Lançamento| ImperiaMuCMS v2 Full Package & Updates



ADMTec
31/08/2020, 11:53 AM
[Only registered and activated users can see links]
[Only registered and activated users can see links] ac62892c4abc21d91e83c08d.jpg

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


[Only registered and activated users can see links]_Pch6IjhgOs-O7fxkPVqkSTu8LBI






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 [Only registered and activated users can see 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:

[Only registered and activated users can see links]
[Only registered and activated users can see links]



After:
Code:

[Only registered and activated users can see links]
[Only registered and activated users can see links]


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


Me_MuOnline + MuOnline databases:
Python:



[Only registered and activated users can see links]
BEGIN
[Only registered and activated users can see links]
[Only registered and activated users can see links]
ELSE
[Only registered and activated users can see links]
END


[Only registered and activated users can see links]
BEGIN
[Only registered and activated users can see links]
[Only registered and activated users can see links]
ELSE
[Only registered and activated users can see links]
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:

[Only registered and activated users can see links]
[Only registered and activated users can see links]
ELSE
[Only registered and activated users can see links]


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:

USE [Me_MuOnline]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO
ALTER Procedure [dbo].[WZ_DISCONNECT_MEMB]


[Only registered and activated users can see links]
AS
BEGIN


SET NOCOUNT ON
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]


[Only registered and activated users can see links]
BEGIN
[Only registered and activated users can see links]
[Only registered and activated users can see links]


[Only registered and activated users can see links]
[Only registered and activated users can see links]


[Only registered and activated users can see links]
BEGIN
[Only registered and activated users can see links]
[Only registered and activated users can see links]
ELSE
[Only registered and activated users can see links]
END
[Only registered and activated users can see links]
BEGIN
[Only registered and activated users can see links]
[Only registered and activated users can see links]
ELSE
[Only registered and activated users can see links]
END
END
END


Only MuOnline database:
Python:

USE [MuOnline]
GO


SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO
ALTER Procedure [dbo].[WZ_DISCONNECT_MEMB]


[Only registered and activated users can see links]
AS
BEGIN


SET NOCOUNT ON
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]


[Only registered and activated users can see links]
[Only registered and activated users can see links]


[Only registered and activated users can see links]
BEGIN
[Only registered and activated users can see links]
[Only registered and activated users can see links]


[Only registered and activated users can see links]
[Only registered and activated users can see links]

[Only registered and activated users can see links]
[Only registered and activated users can see links]
ELSE
[Only registered and activated users can see links]


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:





[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]


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.





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
[Only registered and activated users can see links]
BEGIN
SET NOCOUNT ON
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]


[Only registered and activated users can see links]
BEGIN
DELETE FROM IMPERIAMUCMS_ARCHITECT
DELETE FROM IMPERIAMUCMS_ARCHITECT_BANK
END
END
[Only registered and activated users can see links]
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
[Only registered and activated users can see links]
BEGIN
SET NOCOUNT ON
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]


BEGIN
[Only registered and activated users can see links]
[Only registered and activated users can see links]
END
END
[Only registered and activated users can see links]
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
[Only registered and activated users can see links]
BEGIN
SET NOCOUNT ON


[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]


[Only registered and activated users can see links]
[Only registered and activated users can see links]


BEGIN
UPDATE Character
SET MaxReached = CAST(GETDATE() AS SMALLDATETIME)
FROM Character c
JOIN inserted i ON c.Name = i.Name
[Only registered and activated users can see links]
[Only registered and activated users can see links]


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
[Only registered and activated users can see links]


-- 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
[Only registered and activated users can see links]


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,
[Only registered and activated users can see links]
FROM inserted i
JOIN deleted d ON d.Name = i.Name
WHERE NOT EXISTS (
SELECT Name FROM IMPERIAMUCMS_TRIGGER_CHARACTER tc
[Only registered and activated users can see links]
)


-- 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,
[Only registered and activated users can see links]
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
[Only registered and activated users can see links]
)
SET NOCOUNT OFF
END
END
[Only registered and activated users can see links]
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
[Only registered and activated users can see links]
BEGIN
SET NOCOUNT ON


[Only registered and activated users can see links]
[Only registered and activated users can see links]


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
[Only registered and activated users can see links]


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),
[Only registered and activated users can see links]
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
[Only registered and activated users can see links]
)
SET NOCOUNT OFF
END
END
[Only registered and activated users can see links]
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
[Only registered and activated users can see links]
BEGIN
SET NOCOUNT ON


[Only registered and activated users can see links]
[Only registered and activated users can see links]


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
[Only registered and activated users can see links]


INSERT INTO IMPERIAMUCMS_TRIGGER_MONSTER (AccountID, Name, MonsterID, Count, LastKilled, Date)
SELECT (SELECT Id FROM AccountCharacter WITH (READUNCOMMITTED) WHERE GameIDC = i.Name),
[Only registered and activated users can see links]
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)
[Only registered and activated users can see links]
)
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
[Only registered and activated users can see links]


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),
[Only registered and activated users can see links]
FROM inserted i
WHERE NOT EXISTS (
SELECT Name FROM IMPERIAMUCMS_TRIGGER_MONSTER tm WITH (READUNCOMMITTED)
[Only registered and activated users can see links]
)
END
SET NOCOUNT OFF
END
END
[Only registered and activated users can see links]
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
[Only registered and activated users can see links]
BEGIN
SET NOCOUNT ON


[Only registered and activated users can see links]
[Only registered and activated users can see links]


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
[Only registered and activated users can see links]


INSERT INTO IMPERIAMUCMS_TRIGGER_CHARACTER (AccountID, Name, Gens_Points, Gens_Kills, Date)
SELECT (SELECT Id FROM AccountCharacter WITH (READUNCOMMITTED) WHERE GameIDC = i.Name),
[Only registered and activated users can see links]
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)
[Only registered and activated users can see links]
)
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
[Only registered and activated users can see links]


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,
[Only registered and activated users can see links]
FROM inserted i
WHERE NOT EXISTS (
SELECT Name FROM IMPERIAMUCMS_TRIGGER_CHARACTER tc WITH (READUNCOMMITTED)
[Only registered and activated users can see links]
)
END
SET NOCOUNT OFF
END
END
[Only registered and activated users can see links]
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
[Only registered and activated users can see links]
BEGIN
SET NOCOUNT ON


[Only registered and activated users can see links]
[Only registered and activated users can see links]


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
[Only registered and activated users can see links]


INSERT INTO IMPERIAMUCMS_TRIGGER_CHARACTER (AccountID, Name, Gens_Points, Gens_Kills, Date)
SELECT (SELECT Id FROM AccountCharacter WITH (READUNCOMMITTED) WHERE GameIDC = i.Name),
[Only registered and activated users can see links]
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)
[Only registered and activated users can see links]
)
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
[Only registered and activated users can see links]


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,
[Only registered and activated users can see links]
FROM inserted i
WHERE NOT EXISTS (
SELECT Name FROM IMPERIAMUCMS_TRIGGER_CHARACTER tc WITH (READUNCOMMITTED)
[Only registered and activated users can see links]
)
END
SET NOCOUNT OFF
END
END
[Only registered and activated users can see links]
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
[Only registered and activated users can see links]
BEGIN
SET NOCOUNT ON


[Only registered and activated users can see links]
[Only registered and activated users can see links]


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
[Only registered and activated users can see links]


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,
[Only registered and activated users can see links]
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)
[Only registered and activated users can see links]
)
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
[Only registered and activated users can see links]


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,
[Only registered and activated users can see links]
FROM inserted i
WHERE NOT EXISTS (
SELECT AccountID FROM IMPERIAMUCMS_TRIGGER_INGAME_SHOP_POINTS tp WITH (READUNCOMMITTED)
[Only registered and activated users can see links]
)
END
SET NOCOUNT OFF
END
END
[Only registered and activated users can see links]
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:

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
[Only registered and activated users can see links]
BEGIN
SET NOCOUNT ON


[Only registered and activated users can see links]
[Only registered and activated users can see links]


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
[Only registered and activated users can see links]


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),
[Only registered and activated users can see links]
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)
[Only registered and activated users can see links]
)
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
[Only registered and activated users can see links]


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,
[Only registered and activated users can see links]
FROM inserted i
WHERE NOT EXISTS (
SELECT Name FROM [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] te WITH (READUNCOMMITTED)
[Only registered and activated users can see links]
)
END
SET NOCOUNT OFF
END
END
[Only registered and activated users can see links]
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
[Only registered and activated users can see links]
BEGIN
SET NOCOUNT ON


[Only registered and activated users can see links]
[Only registered and activated users can see links]


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
[Only registered and activated users can see links]


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),
[Only registered and activated users can see links]
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)
[Only registered and activated users can see links]
)
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
[Only registered and activated users can see links]


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,
[Only registered and activated users can see links]
FROM inserted i
WHERE NOT EXISTS (
SELECT Name FROM [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] te WITH (READUNCOMMITTED)
[Only registered and activated users can see links]
)
END
SET NOCOUNT OFF
END
END
[Only registered and activated users can see links]
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
[Only registered and activated users can see links]
BEGIN
SET NOCOUNT ON


[Only registered and activated users can see links]
[Only registered and activated users can see links]


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
[Only registered and activated users can see links]


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,
[Only registered and activated users can see links]
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)
[Only registered and activated users can see links]
)
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
[Only registered and activated users can see links]


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,
[Only registered and activated users can see links]
FROM inserted i
WHERE NOT EXISTS (
SELECT Name FROM [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] te WITH (READUNCOMMITTED)
[Only registered and activated users can see links]
)
END
SET NOCOUNT OFF
END
END
[Only registered and activated users can see links]
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
[Only registered and activated users can see links]
BEGIN
SET NOCOUNT ON


[Only registered and activated users can see links]
[Only registered and activated users can see links]


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
[Only registered and activated users can see links]


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,
[Only registered and activated users can see links]
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)
[Only registered and activated users can see links]
)
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
[Only registered and activated users can see links]


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,
[Only registered and activated users can see links]
FROM inserted i
WHERE NOT EXISTS (
SELECT Name FROM [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] te WITH (READUNCOMMITTED)
[Only registered and activated users can see links]
)
END
SET NOCOUNT OFF
END
END
[Only registered and activated users can see links]
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:





[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]


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.





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
[Only registered and activated users can see links]
BEGIN
SET NOCOUNT ON
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]


[Only registered and activated users can see links]
BEGIN
DELETE FROM IMPERIAMUCMS_ARCHITECT
DELETE FROM IMPERIAMUCMS_ARCHITECT_BANK
END
END
[Only registered and activated users can see links]
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
[Only registered and activated users can see links]
BEGIN
SET NOCOUNT ON
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]


BEGIN
[Only registered and activated users can see links]
[Only registered and activated users can see links]
END
END
[Only registered and activated users can see links]
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
[Only registered and activated users can see links]
BEGIN
SET NOCOUNT ON


[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]


[Only registered and activated users can see links]
[Only registered and activated users can see links]


BEGIN
UPDATE Character
SET MaxReached = CAST(GETDATE() AS SMALLDATETIME)
FROM Character c
JOIN inserted i ON c.Name = i.Name
[Only registered and activated users can see links]
[Only registered and activated users can see links]


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
[Only registered and activated users can see links]


-- 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
[Only registered and activated users can see links]


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,
[Only registered and activated users can see links]
FROM inserted i
JOIN deleted d ON d.Name = i.Name
WHERE NOT EXISTS (
SELECT Name FROM IMPERIAMUCMS_TRIGGER_CHARACTER tc
[Only registered and activated users can see links]
)


-- 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,
[Only registered and activated users can see links]
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
[Only registered and activated users can see links]
)
SET NOCOUNT OFF
END
END
[Only registered and activated users can see links]
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
[Only registered and activated users can see links]
BEGIN
SET NOCOUNT ON


[Only registered and activated users can see links]
[Only registered and activated users can see links]


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
[Only registered and activated users can see links]


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),
[Only registered and activated users can see links]
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
[Only registered and activated users can see links]
)
SET NOCOUNT OFF
END
END
[Only registered and activated users can see links]
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
[Only registered and activated users can see links]
BEGIN
SET NOCOUNT ON


[Only registered and activated users can see links]
[Only registered and activated users can see links]


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
[Only registered and activated users can see links]


INSERT INTO IMPERIAMUCMS_TRIGGER_MONSTER (AccountID, Name, MonsterID, Count, LastKilled, Date)
SELECT (SELECT Id FROM AccountCharacter WITH (READUNCOMMITTED) WHERE GameIDC = i.Name),
[Only registered and activated users can see links]
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)
[Only registered and activated users can see links]
)
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
[Only registered and activated users can see links]


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),
[Only registered and activated users can see links]
FROM inserted i
WHERE NOT EXISTS (
SELECT Name FROM IMPERIAMUCMS_TRIGGER_MONSTER tm WITH (READUNCOMMITTED)
[Only registered and activated users can see links]
)
END
SET NOCOUNT OFF
END
END
[Only registered and activated users can see links]
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
[Only registered and activated users can see links]
BEGIN
SET NOCOUNT ON


[Only registered and activated users can see links]
[Only registered and activated users can see links]


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
[Only registered and activated users can see links]


INSERT INTO IMPERIAMUCMS_TRIGGER_CHARACTER (AccountID, Name, Gens_Points, Gens_Kills, Date)
SELECT (SELECT Id FROM AccountCharacter WITH (READUNCOMMITTED) WHERE GameIDC = i.Name),
[Only registered and activated users can see links]
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)
[Only registered and activated users can see links]
)
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
[Only registered and activated users can see links]


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,
[Only registered and activated users can see links]
FROM inserted i
WHERE NOT EXISTS (
SELECT Name FROM IMPERIAMUCMS_TRIGGER_CHARACTER tc WITH (READUNCOMMITTED)
[Only registered and activated users can see links]
)
END
SET NOCOUNT OFF
END
END
[Only registered and activated users can see links]
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
[Only registered and activated users can see links]
BEGIN
SET NOCOUNT ON


[Only registered and activated users can see links]
[Only registered and activated users can see links]


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
[Only registered and activated users can see links]


INSERT INTO IMPERIAMUCMS_TRIGGER_CHARACTER (AccountID, Name, Gens_Points, Gens_Kills, Date)
SELECT (SELECT Id FROM AccountCharacter WITH (READUNCOMMITTED) WHERE GameIDC = i.Name),
[Only registered and activated users can see links]
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)
[Only registered and activated users can see links]
)
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
[Only registered and activated users can see links]


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,
[Only registered and activated users can see links]
FROM inserted i
WHERE NOT EXISTS (
SELECT Name FROM IMPERIAMUCMS_TRIGGER_CHARACTER tc WITH (READUNCOMMITTED)
[Only registered and activated users can see links]
)
END
SET NOCOUNT OFF
END
END
[Only registered and activated users can see links]
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
[Only registered and activated users can see links]
BEGIN
SET NOCOUNT ON


[Only registered and activated users can see links]
[Only registered and activated users can see links]


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
[Only registered and activated users can see links]


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,
[Only registered and activated users can see links]
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)
[Only registered and activated users can see links]
)
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
[Only registered and activated users can see links]


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,
[Only registered and activated users can see links]
FROM inserted i
WHERE NOT EXISTS (
SELECT AccountID FROM IMPERIAMUCMS_TRIGGER_INGAME_SHOP_POINTS tp WITH (READUNCOMMITTED)
[Only registered and activated users can see links]
)
END
SET NOCOUNT OFF
END
END
[Only registered and activated users can see links]
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:

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
[Only registered and activated users can see links]
BEGIN
SET NOCOUNT ON


[Only registered and activated users can see links]
[Only registered and activated users can see links]


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
[Only registered and activated users can see links]


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),
[Only registered and activated users can see links]
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)
[Only registered and activated users can see links]
)
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
[Only registered and activated users can see links]


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,
[Only registered and activated users can see links]
FROM inserted i
WHERE NOT EXISTS (
SELECT Name FROM [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] te WITH (READUNCOMMITTED)
[Only registered and activated users can see links]
)
END
SET NOCOUNT OFF
END
END
[Only registered and activated users can see links]
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
[Only registered and activated users can see links]
BEGIN
SET NOCOUNT ON


[Only registered and activated users can see links]
[Only registered and activated users can see links]


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
[Only registered and activated users can see links]


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),
[Only registered and activated users can see links]
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)
[Only registered and activated users can see links]
)
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
[Only registered and activated users can see links]


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,
[Only registered and activated users can see links]
FROM inserted i
WHERE NOT EXISTS (
SELECT Name FROM [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] te WITH (READUNCOMMITTED)
[Only registered and activated users can see links]
)
END
SET NOCOUNT OFF
END
END
[Only registered and activated users can see links]
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
[Only registered and activated users can see links]
BEGIN
SET NOCOUNT ON


[Only registered and activated users can see links]
[Only registered and activated users can see links]


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
[Only registered and activated users can see links]


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,
[Only registered and activated users can see links]
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)
[Only registered and activated users can see links]
)
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
[Only registered and activated users can see links]


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,
[Only registered and activated users can see links]
FROM inserted i
WHERE NOT EXISTS (
SELECT Name FROM [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] te WITH (READUNCOMMITTED)
[Only registered and activated users can see links]
)
END
SET NOCOUNT OFF
END
END
[Only registered and activated users can see links]
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
[Only registered and activated users can see links]
BEGIN
SET NOCOUNT ON


[Only registered and activated users can see links]
[Only registered and activated users can see links]


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
[Only registered and activated users can see links]


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,
[Only registered and activated users can see links]
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)
[Only registered and activated users can see links]
)
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
[Only registered and activated users can see links]


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,
[Only registered and activated users can see links]
FROM inserted i
WHERE NOT EXISTS (
SELECT Name FROM [MuOnline].[dbo].[IMPERIAMUCMS_TRIGGER_EVENT] te WITH (READUNCOMMITTED)
[Only registered and activated users can see links]
)
END
SET NOCOUNT OFF
END
END
[Only registered and activated users can see links]
ROLLBACK TRANSACTION
ELSE
COMMIT TRANSACTION
GO




Script Boss Timer



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/[Only registered and activated users can see links]
^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/[Only registered and activated users can see links]
^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 [Only registered and activated users can see 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.
2414

LorenStudio
01/09/2020, 09:19 AM
Essa web não era a que tinha um problema no registro?

ADMTec
01/09/2020, 10:26 AM
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 !

Mentor
15/01/2021, 12:47 PM
New Version 2.0.12 Full Modules Plugin Free Buy NEW WEBITE ([Only registered and activated users can see 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?

SkrillRO
28/05/2021, 06:54 AM
[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 : [Only registered and activated users can see links]