[SQL] Avatar MagicOpt Exploit Fix

03/08/2016 00:55 GhosTly93#16
I have tried but not working.Any code write and succesfully worked. Return or relog not clean up blue from avatars.
03/08/2016 02:57 KingDollar#17
it's an working way
but better to use packet filter
you will disable it while creating xD
03/16/2016 08:53 Anonymous-6723#18
It's not a bad idea, but the flaw here is that once someone realises that the procedure is running let's say every 1 hour.. It will be exploitable all the way :D During the time of last and next execution they can still do whatever they want if there are free avatars.
03/16/2016 21:23 AceSpace#19
Quote:
Originally Posted by Pr0x! View Post
It's not a bad idea, but the flaw here is that once someone realises that the procedure is running let's say every 1 hour.. It will be exploitable all the way :D During the time of last and next execution they can still do whatever they want if there are free avatars.
It would be better to use it only once to fix the problem then use a filter to avoid it on the future. I don't suggest using the procedure all the time
11/20/2016 14:29 YouBoss*#20
already im write query :(
and still work we need remove it from game. and invisible
11/20/2016 21:09 Syloxx#21
1st:

Looks like you don't even know how to remove items the correct way. The table _ItemPool is there for a reason (it is used to mark unused items so the gameserver can overwrite them without creating "dead entries")

2nd:

You execute the same sub query like 100 times just changing the column name by +1.

challange for today:
try to reduce the select and update statement to the joymax tables (_Items & _Inventory) to only 1 of each. (TIP: PIVOT)

this shows once again why i can ask for higher prices then random egypts...

Quote:
Originally Posted by Pr0x! View Post
It's not a bad idea, but the flaw here is that once someone realises that the procedure is running let's say every 1 hour.. It will be exploitable all the way :D During the time of last and next execution they can still do whatever they want if there are free avatars.
adding automatic ban should fix that problem. (this exploit cant be used by accident so why not ban them?)
11/21/2016 01:07 AceSpace#22
Quote:
Originally Posted by Syloxx View Post
1st:

Looks like you don't even know how to remove items the correct way. The table _ItemPool is there for a reason (it is used to mark unused items so the gameserver can overwrite them without creating "dead entries")

2nd:

You execute the same sub query like 100 times just changing the column name by +1.

challange for today:
try to reduce the select and update statement to the joymax tables (_Items & _Inventory) to only 1 of each. (TIP: PIVOT)

this shows once again why i can ask for higher prices then random egypts...



adding automatic ban should fix that problem. (this exploit cant be used by accident so why not ban them?)
I released this a long time ago, I know I could have used loop so please be my guest and release one and i wouldn't mind thanking you.

@OP Updated
11/21/2016 16:54 Syloxx#23
Quote:
Originally Posted by Locklyon View Post
I released this a long time ago, I know I could have used loop so please be my guest and release one and i wouldn't mind thanking you.

@OP Updated
1st a loop is basically the same slow shit just with less code (i even gave you a TIP, please try to use it)

Anyway, to be even more clear this time: IN THIS CASE YOU HAVE TO USE UNPIVOT

Code:
IF MagParams IS NOT IN LIST OF MAGPARAMS
    INSERT ItemIDs INTO VARIABLE TABLE

LOOP ON VARIABLE TABLE
    SET ItemID = 0 IN INVENTORY ItemID ON ID = @COUNTER
    DISABLE ITEM WITH ItemID IN _ItemPool
END LOOP ON VARIABLE TABLE
now i did all the hard work for you... cmon you can atlease convert this into a working sql query right...?

2nd why should I release a better version if i could give the challange to you to atlease improvoe the average knowledge in this community a little bit.
11/21/2016 21:09 AceSpace#24
Quote:
Originally Posted by Syloxx View Post
1st a loop is basically the same slow shit just with less code (i even gave you a TIP, please try to use it)

Anyway, to be even more clear this time: IN THIS CASE YOU HAVE TO USE UNPIVOT

Code:
IF MagParams IS NOT IN LIST OF MAGPARAMS
    INSERT ItemIDs INTO VARIABLE TABLE

LOOP ON VARIABLE TABLE
    SET ItemID = 0 IN INVENTORY ItemID ON ID = @COUNTER
    DISABLE ITEM WITH ItemID IN _ItemPool
END LOOP ON VARIABLE TABLE
now i did all the hard work for you... cmon you can atlease convert this into a working sql query right...?

2nd why should I release a better version if i could give the challange to you to atlease improvoe the average knowledge in this community a little bit.
Are we here to talk about the performance of a single query which is going to be executed only once? Man speak of logic please.

You're trying way too hard to prove something that's even if proved, will be always useless unless it was used to create something that's worthy of mentioning.

Thank you for the challenge but I'm good the way I am. One challenge for you, is improving your english and good luck with that.
11/21/2016 23:09 Syloxx#25
Quote:
Originally Posted by Locklyon View Post
Are we here to talk about the performance of a single query which is going to be executed only once? Man speak of logic please.

You're trying way too hard to prove something that's even if proved, will be always useless unless it was used to create something that's worthy of mentioning.

Thank you for the challenge but I'm good the way I am. One challenge for you, is improving your english and good luck with that.
"will be executed only once" > you aren't sure if the guy who read it will execute the Query, going to is only used if you are 100% sure.

"Man speak of logic please" > completely senseless sentence maybe you mean "think logical"?

"One challenge for you, improve your english and good luck with that." > you never use is, if there is a comma and in this case you use the native and not the ing form because I am not doing that right now.

And I should improve my englisch?

If I would care I could write nearly perfect english, but it is waaaaay to time consuming and useless.

By increasing a performance of a query you will collect knowledge you could use for future projects. If you can write and speak proper english when required why waste time check all the grammar rules if it is clear to understand.

AND BTW:

if kwery fyll ged exekuted onze! whey yu crate brozedure and not doing execute kwery?!?

Oh zorry jusd notizet yu ubdeted brozedure tu kwery.