We have yet to find a way to block the Damage Hack and now, most privater servers are facing new problem. Item Duplication. Yes, they're duplicating items and started to ruin the game.
Anyone has a thought of way to block it?
We have yet to find a way to block the Damage Hack and now, most privater servers are facing new problem. Item Duplication. Yes, they're duplicating items and started to ruin the game.
Anyone has a thought of way to block it?
to block it you need know the way they are duplicateing items.
phiber knows how to block it can you share it sir...
but i dont know about what are you talking.
what method, etc.
you are the owner of elitecabal and you already block the item duplication mr.phiber
In MSSQL you need to delete a trigger called "fixlogin". In mssql 2000 you do this by opening enterprise manager, go into the cabal account db and select tables. Right-click the cabal_auth_table and selec All tasks->manage triggers. Select the fixlogin trigger from the dropdown and delete it.
In 2005 open the account db, into tables, open the cabal_auth_table and you will see the triggers folder.
I dont think they did the duplication by dual login. Its something new.
when i deleted the trigger players now gets the error character already in use..
NO its not about logging in Nor dual login.
Take for example, EliteCabal. They fixed the 1st duplication method by Dual login.
Yet somehow, players now has able to exploit another glitch.
do you have a clue?
I hope no one get angry about what i gonna write, but the best way to stop a problem its knowing the problem.
A guy call "ron" from this forum give me the first dupe method.
1) you login a character and enter the world
2) you click esc and select "go back select screen"
3) the server give you 5 seconds to change to select char windows,until this time you can login a second account.
4) you can enter with bouth players to different worlds and dupe.
Most effective solution:
on PROCEDURE [dbo].[get_cabal_character_ex] (gameserver db), before
@CRAFTEXP3 INT,
@CRAFTEXP4 INT,
@CRAFTFLAGS VARBINARY(16),
@RESERVED1 BIGINT
add:
this gonna check no one its login when the other char try make login./* checkeo de login online */
/*--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
declare @acco int
declare @acc int
declare @i int
declare @AR_ALREADY varchar(15)
set @AR_ALREADY='logueado'
set @acc=(SELECT UserNum FROM account_elite..cabal_auth_table where UserNum=@CHARACTERIDX/8)
set @i=(select top 1 Login from cabal_character_table WHERE characteridx/8=convert(varchar(20), @acc) and Login=1)
IF @i > 0
BEGIN
COMMIT TRAN
declare @chanel int
set @chanel=(SELECT ChannelIdx FROM cabal_character_table WHERE characteridx=@CHARACTERIDX)
--insert into log_cheat (account_id, char_id, ch_log, ch_try_log, fecha) values (@acc, @CHARACTERIDX, @CHANNELIDX, @chanel, getdate())
SELECT @AR_ALREADY
RETURN
END
/*---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
the other dupe method its with delete char, i gonna write the solution more late.
thanks...![]()
Some nice tips there, thanks for sharing phiber. It's nice to see how some of the bigger servers deal with hackers/botters.
Not sure of some of your SQL there though. You have odd ways of doing things xP
ho sorry, my mistake, you need replace my db call, like account_elite..cabal_auth_table becouse i dont use normal db name becouse i have many cabal db in the same sql.
well, when you have a server where you dont have access to the source, need find a way to stop everything before impact where realy matters. In the case of online games, its the DBs. That why i preffer always make a good sql patch who handle the problem.
SHORT CODE:
IF (SELECT COUNT(CHARACTERIDX) FROM GAMEDB..CABAL_CHARACTER_TABLE WHERE LOGIN=1 AND CHARACTERIDX/8=@CHARACTERIDX/8)>0
BEGIN
COMMIT TRAN
END
ALSO INSERT THAT TO THE FIRST LINE OF CABAL_SP_DELCHAR