Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Shaiya > Shaiya Private Server > Shaiya PServer Guides & Releases
You last visited: Today at 13:20

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Euphoria Dev Team Release] Illegal Linking Detection

Discussion on [Euphoria Dev Team Release] Illegal Linking Detection within the Shaiya PServer Guides & Releases forum part of the Shaiya Private Server category.

Reply
 
Old   #1
 
nubness's Avatar
 
elite*gold: 10
Join Date: Jan 2012
Posts: 1,698
Received Thanks: 5,455
[Euphoria Dev Team Release] Illegal Linking Detection

Hello everybody,

As we're all well aware of the fact that illegal linking is still possible, I come with a good solution which will help server admins in fighting this issue. It is not the best solution, yet, it is a good one, and it guarantees that the exploiter will get caught, and banned if the admin wants it.

First of all, you need a new table in the PS_GameLog database, which will store all the necessary information about all the illegal linking attempts that take place. The table can be easily created by running the following query:
Code:
USE PS_GameLog

CREATE TABLE Illegal_Lapis_Link_Log (
	
	RowID INT IDENTITY(1,1),
	UserUID INT NOT NULL,
	UserID VARCHAR(20) NOT NULL,
	CharID INT NOT NULL,
	CharName VARCHAR(20) NOT NULL,
	ItemUID BIGINT NOT NULL,
	ItemID INT NOT NULL,
	ItemName VARCHAR(50) NOT NULL,
	ItemLevel INT NOT NULL,
	LapisID INT NOT NULL,
	LapisName VARCHAR(50) NOT NULL,
	LapisLevel INT NOT NULL,
	LinkSucess BIT NOT NULL, 
	ActionTime DATETIME NOT NULL	
)
The next step is modifying usp_Insert_Action_Log_E to make it detect the illegal linking the very second it happens.

Simply add the following lines inside the PS_GameLog.dbo.usp_Insert_Action_Log_E stored procedure:
Code:
IF (@ActionType = 119)
BEGIN
	DECLARE @ItemLevel TINYINT = (SELECT Reqlevel FROM PS_GameDefs.dbo.Items WHERE ItemID = @Value2)
	DECLARE @LapisLevel TINYINT = (SELECT ReqInt FROM PS_GameDefs.dbo.Items WHERE ItemID = @Value3)
	IF (@ItemLevel < @LapisLevel)
	BEGIN
		INSERT INTO Illegal_Lapis_Link_Log VALUES (@UserUID, @UserID, @CharID, @CharName, @Value1, @Value2, @Text1, @ItemLevel, @Value3, @Text2, @LapisLevel, @Value7, @ActionTime)
		--UPDATE PS_UserData.dbo.Users_Master
		--SET Status = -5
		--WHERE UserUID = @UserUID
	END
END
You need to place this code between
Code:
IF(LEN(@dd) = 1)
BEGIN
	SET @dd = '0' + @dd
END
and
Code:
SET @Sql = N'
INSERT INTO PS_GameLog.dbo.ActionLog
As you see, I've commented 3 lines, which ban the account of the player who attempted illegal linking. Uncomment them if you want the player to get banned.

NOTE : This will detect the linking attempt regardless of whether it was successful or not.

Enjoy !
nubness is offline  
Thanks
27 Users
Old 08/17/2013, 17:48   #2
 
[Admin]฿Іί†ž's Avatar
 
elite*gold: 0
Join Date: Dec 2009
Posts: 162
Received Thanks: 481
Thanks for the fix man. This fixes the problem when players do this :

Test that exploit on your server , results may surprise you what players are doing :P

As ever, thanks for another nice release.
[Admin]฿Іί†ž is offline  
Thanks
11 Users
Old 08/17/2013, 19:53   #3
 
elite*gold: 0
Join Date: Oct 2005
Posts: 184
Received Thanks: 85
very nice! would there be a way to auto delete the items if they trade them? cos that's really all they have to bypass this cos it bans the player that links it not the player that use the item.

this will automatically take care o 90% of this problem though
Psycnosis is offline  
Thanks
1 User
Old 08/17/2013, 20:04   #4
 
nubness's Avatar
 
elite*gold: 10
Join Date: Jan 2012
Posts: 1,698
Received Thanks: 5,455
Yes, it's possible, edit it to look like this:
Code:
IF (@ActionType = 119)
BEGIN
	DECLARE @ItemLevel TINYINT = (SELECT Reqlevel FROM PS_GameDefs.dbo.Items WHERE ItemID = @Value2)
	DECLARE @LapisLevel TINYINT = (SELECT ReqInt FROM PS_GameDefs.dbo.Items WHERE ItemID = @Value3)
	IF (@ItemLevel < @LapisLevel)
	BEGIN
		INSERT INTO Illegal_Lapis_Link_Log VALUES (@UserUID, @UserID, @CharID, @CharName, @Value1, @Value2, @Text1, @ItemLevel, @Value3, @Text2, @LapisLevel, @Value7, @ActionTime)
		--UPDATE PS_UserData.dbo.Users_Master
		--SET Status = -5
		--WHERE UserUID = @UserUID
		DELETE FROM PS_GameData.dbo.CharItems WHERE ItemUID = @Value1
	END
END
nubness is offline  
Thanks
8 Users
Old 08/17/2013, 20:27   #5
 
abrasive's Avatar
 
elite*gold: 0
Join Date: Oct 2009
Posts: 262
Received Thanks: 812
Nice! I feel like this may also be an appropriate time to automatically kick the user our of the game so they never have a change to trade it, or drop it on the ground or whatever.
abrasive is offline  
Thanks
1 User
Old 08/17/2013, 20:33   #6
 
elite*gold: 0
Join Date: Oct 2005
Posts: 184
Received Thanks: 85
how would you do that Abrasive? cant kick a user with sql need to send a command to the console..
Psycnosis is offline  
Old 08/17/2013, 20:39   #7
 
abrasive's Avatar
 
elite*gold: 0
Join Date: Oct 2009
Posts: 262
Received Thanks: 812
Quote:
Originally Posted by Psycnosis View Post
how would you do that Abrasive? cant kick a user with sql need to send a command to the console..


You can do it like this (using nubness's last example):
Code:
IF (@ActionType = 119)
BEGIN
	DECLARE @ItemLevel TINYINT = (SELECT Reqlevel FROM PS_GameDefs.dbo.Items WHERE ItemID = @Value2)
	DECLARE @LapisLevel TINYINT = (SELECT ReqInt FROM PS_GameDefs.dbo.Items WHERE ItemID = @Value3)
	IF (@ItemLevel < @LapisLevel)
	BEGIN
		INSERT INTO Illegal_Lapis_Link_Log VALUES (@UserUID, @UserID, @CharID, @CharName, @Value1, @Value2, @Text1, @ItemLevel, @Value3, @Text2, @LapisLevel, @Value7, @ActionTime)
		--UPDATE PS_UserData.dbo.Users_Master
		--SET Status = -5
		--WHERE UserUID = @UserUID
		DELETE FROM PS_GameData.dbo.CharItems WHERE ItemUID = @Value1
		-- Force user out of the game by causing an SQL error.
		UPDATE Fail SET Fail = 1;
	END
END
abrasive is offline  
Thanks
3 Users
Old 08/17/2013, 20:46   #8
 
nubness's Avatar
 
elite*gold: 10
Join Date: Jan 2012
Posts: 1,698
Received Thanks: 5,455
We've already discussed this, Abrasive, causing an error in the session by executing some unreal SQL instructions is not a good option as it results in a rollback, which may affect some of the things that happened with that particular account.
nubness is offline  
Thanks
2 Users
Old 08/18/2013, 01:16   #9
 
elite*gold: 0
Join Date: Oct 2012
Posts: 145
Received Thanks: 203
Quote:
Originally Posted by [Admin]฿Іί†ž View Post
Thanks for the fix man. This fixes the problem when players do this :

Test that exploit on your server , results may surprise you what players are doing :P

As ever, thanks for another nice release.
That's right, but for ppl that use the so called "ep6 server files", there isen't any problems like this. Linking rate for "illegal lapis" is 0% when they try it.
infinite59 is offline  
Thanks
1 User
Old 08/18/2013, 08:48   #10
 
GM.Triest's Avatar
 
elite*gold: 0
Join Date: Feb 2009
Posts: 192
Received Thanks: 151
****... Blitz discovered how I got linked on Exile...



(jk)
GM.Triest is offline  
Old 08/18/2013, 09:35   #11
 
[ADM]SpyRow's Avatar
 
elite*gold: 0
Join Date: Jun 2013
Posts: 465
Received Thanks: 669
Quote:
Originally Posted by Psycnosis View Post
how would you do that Abrasive? cant kick a user with sql need to send a command to the console..
or also 1 thing
find the charname and setup his loginstatus to 0 he will get out from the game
[ADM]SpyRow is offline  
Old 08/18/2013, 09:37   #12

 
{Skrillex}'s Avatar
 
elite*gold: 0
Join Date: Mar 2013
Posts: 850
Received Thanks: 408
Quote:
Originally Posted by [ADM]SpyRow View Post
or also 1 thing
find the charname and setup his loginstatus to 0 he will get out from the game
lol, this doesnดt work.
{Skrillex} is offline  
Old 08/18/2013, 13:54   #13
 
nubness's Avatar
 
elite*gold: 10
Join Date: Jan 2012
Posts: 1,698
Received Thanks: 5,455
Quote:
Originally Posted by [ADM]SpyRow View Post
or also 1 thing
find the charname and setup his loginstatus to 0 he will get out from the game
I had a good chuckle over that one.

Again : The databases have no influence on the game course itself, it simply stores data, permanently.
nubness is offline  
Thanks
1 User
Old 08/18/2013, 18:08   #14
 
elite*gold: 0
Join Date: Oct 2012
Posts: 145
Received Thanks: 203
Quote:
Originally Posted by nubness View Post
We've already discussed this, Abrasive, causing an error in the session by executing some unreal SQL instructions is not a good option as it results in a rollback, which may affect some of the things that happened with that particular account.
This can cause rollback on the account, +/- 20 minutes rollback to be honnest but meh, if the player tryed to exploit the server he got punished, that's all.
infinite59 is offline  
Old 08/18/2013, 20:17   #15
 
abrasive's Avatar
 
elite*gold: 0
Join Date: Oct 2009
Posts: 262
Received Thanks: 812
Quote:
Originally Posted by [ADM]SpyRow View Post
or also 1 thing
find the charname and setup his loginstatus to 0 he will get out from the game
This would be the equivalent of telling yourself the user is logged out, while they are still logged in.
abrasive is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
[Euphoria Dev Team Release] Starter Gears
02/02/2023 - Shaiya PServer Guides & Releases - 38 Replies
Hello community, I recently saw users asking for a way to let their characters start equipped, since this is not possible by using the existing BaseItemsDefs table. Today I am releasing a way of doing it, which can also replace the BaseItemsDefs table but having more possibilities to realize your ideas. If you are interested in this you might thought about a way of doing this before. The only problem I can imagine you could have had is the ItemUID. Since we want to insert one, or even...
[Euphoria Dev Team Release] Perfect Orange Stats Game Service
05/25/2021 - Shaiya PServer Guides & Releases - 119 Replies
Hello elitepvpers, After multiple requests, I decided to release the Perfect Orange Stats Service that we used on Shaiya Euphoria. Before releasing it, we decided to improve it a little bit, to make it even more powerful and flexible. Some of you might prefer the web based recreation service, we chose to create something different, it's purely game based, you don't have to go on any website to do apply Perfect Orange Stats to your items. The former players of Shaiya Euphoria loved it, it is...
[Euphoria Dev Team Release] Starter Skills
01/21/2020 - Shaiya PServer Guides & Releases - 13 Replies
Hello everybody, this release was created due to me being lazy during other development. I was testing something about skills on my local server and I had to upgrade the skills from 1 up to 9 each time. After some time I thought about avoiding this by adding some lines to the famous usp_Create_Char_R procedure. This release is only important for servers that have the instant leveling feature, and most of all, free or extremely easy servers. Let's say you create a character whose starting...
[Euphoria Dev Team Release] Shaiya Update Downloader
04/16/2017 - Shaiya PServer Guides & Releases - 44 Replies
Hey guys, During the last couple of days, upon somebody's request, I've been working on a program that's meant to help private server developers by saving their time. Shaiya Update Downloader is a program where the user can list multiple servers for constant update check, and have them downloaded automatically if the user requires so. This program can also manually download specific updates upon user's request. Below you can see a few screenshots which will make you understand this program's...
[Euphoria Dev Team Release] Illegal Transaction Detection
02/08/2014 - Shaiya PServer Guides & Releases - 8 Replies
Hello everybody, I am sure that not many people know about this, and I'm more than sure that it is not a problem for private servers, but transacting untradeable items isn't normally allowed, which is why items have the tradeable/untradeable property after all. Detecting such transactions is extremely easy, since the logs store all the information about most things that happen in game, instantly. First of all you need to create a new table, which will contain all the details about...



All times are GMT +1. The time now is 13:22.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.