Hey there,
Just as the title says, there's an exploit/bug whatever you wanna call it that apparently lets you dupe your items. Sadly, I don't know what kind of dupe, is it just desyncing so you can use that item to scam or you get a completely legit item. Information isn't completely available.
Tried injecting buys/registers/settlements with fake/invalid data and errors are working fine (some causing disconnections).
Here're some information that might help you if you decide to help in this investigation^^
004536E2 PUSH SR_GameS.00AE3E00 ASCII "{?=CALL _OpenMarket_Insert(%d,?,%d,%d,%d,%d,%d,%d,%I64d,%I64d,%d,'%d-%d-%d %d:%d:%d','%d-%d-%d %d:%d:%d',%I64d,%I64d,%I64d,%d)}"
004538CA PUSH SR_GameS.00AE3E80 ASCII "{?=CALL _OpenMarket_Receipt(%d,%d,%d)}"
00453ADA PUSH SR_GameS.00AE3EA8 ASCII "{?=CALL _OpenMarket_Cancle(%d,%d,%d,%d,%d,%I64d)}"
00453D1C PUSH SR_GameS.00AE3EE0 ASCII "{?=CALL _OpenMarket_Purchase(%d,%d,?,%d,%d,%d,%I64d,%d,'%d-%d-%d %d:%d:%d')}"
00453F2B PUSH SR_GameS.00AE3F30 ASCII "SELECT TOP 500 * FROM [dbo].[_OpenMarket] WHERE TidGroupID=%d AND ItemClass=%d AND Status=%d AND (0 > DATEDIFF(minute, enddate, '%d-%d-%d %d:%d:%d')) ORDER BY RegDate DESC"
00453F69 PUSH SR_GameS.00AE3FE8 ASCII "SELECT TOP 500 * FROM [dbo].[_OpenMarket] WHERE TidGroupID=%d AND Status=%d AND (0 > DATEDIFF(minute, enddate, '%d-%d-%d %d:%d:%d')) ORDER BY RegDate DESC"
0045434D PUSH SR_GameS.00AE40AC ASCII "{?=CALL _OpenMarket_Update(%d,%d,%d,%d,'%d-%d-%d %d:%d:%d')}"
0045461E PUSH SR_GameS.00AE40F0 ASCII "SELECT IT.* FROM _OpenMarket OM JOIN _ITEMS IT ON OM.ItemID=IT.ID64 WHERE OM.JID=%d AND OM.PersnalID=%d"
00454644 PUSH SR_GameS.00AE4168 ASCII "SELECT BIND.* FROM _OpenMarket OM JOIN _ITEMS IT ON OM.ItemID=IT.ID64 JOIN _BindingOptionWithItem BIND ON IT.ID64=BIND.nItemDBID WHERE OM.JID=%d AND OM.PersnalID=%d"
On data request a function is being called with data found on address 00453F2B to select the items from database [on every call, so nothing is being saved in the gameserver memory as far as I checked, well ofc a dump of the data but each time a request is sent gameserver requests the data from the database].
declare @p1 int set @p1=0 declare @p3 int set @p3=16388 declare @p4 int set @p4=8193 declare @p5 int set @p5=0 exec sp_cursoropen @p1 output,N'SELECT TOP 500 * FROM [dbo].[_OpenMarket] WHERE TidGroupID=1 AND ItemClass=9 AND Status=0 AND (0 > DATEDIFF(minute, enddate, ''2016-4-6 16:32:3'')) ORDER BY RegDate DESC',@p3 output,@p4 output,@p5 output select @p1, @p3, @p4, @p5 SELECT TOP 500 * FROM [dbo].[_OpenMarket] WHERE TidGroupID=1 AND ItemClass=9 AND Status=0 AND (0 > DATEDIFF(minute, enddate, '2016-4-6 16:32:3')) ORDER BY RegDate DESC
Bugs found so far:
On injecting a buy request (a legit one), the item is bought but, not shown at the inventory except after a teleport.
Been trying since yesterday to find that dupe with @ since a lot of people confirmed its existence, but with no success yet.
If you have any question/information/rumors about this issue, your contribution is welcomed. The only solution people seem to have now is completely disabling consignment (that isn't cool). Consignment is a good option to have.
Thank you and happy hacking!
*Item Movement works while item is not registered yet [NPC selected].
It's not with consignment tho, maybe there is one there as well but the DUPE I know about is in exchange and it's only a visual affect until buyer/seller teleported and the item will replace it's "icon" again.
It's not with consignment tho, maybe there is one there as well but the DUPE I know about is in exchange and it's only a visual affect until buyer/seller teleported and the item will replace it's "icon" again.
Well, so far @ , @ , @ confirmed it had something to do with consignment.
Do not believe it unless I see it, the exchange dupe thingy I'm aware of and have known it for 1-2 years already.
Really easy to fix if there is such a thing, just force people to Teleport after using consignment.
The exchange dupe bug works by using F12 in the middle of the exchange, try that in consignment.
By the way, you shouldn't call this an "exploit", it's a visual bug.
-Not sure why 3 individuals would lie about the same topic, the only reasonable lie would be denying its existence so they can keep it a secret but that's not the case here so it makes no sense.
When you buy the item gs get the price from _Inventory table, if it failed it will return false, if its not false, it gets the char gold by the query and then update it with group char gold data = 4
When you buy the item gs get the price from _Inventory table, if it failed it will return false, if its not false, it gets the char gold by the query and then update it with group char gold data = 4
Carp it was late night, i meant the open market system get the price from the owner then do the query for it in _Inventory table to check if the item exist or not
I think, probably its a bug in GS, when you copy item, it is only on the server side, gameserver didnt write it into database, so therefore item disappears. After relog/teleport. character data are loaded from database.
When someone do it, check logs of this item.(especially itemID? same)
If ItemID is same, it'll be problem to fix it in procedures
Exploit/Item Dupes. 08/18/2013 - Dragonica Trading - 0 Replies So is no one willing to share an exploits or dupes anymore. I used to know a couple of dupes but they all got patched last month. Looking for some help peoples.