Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

[Help] Negative gold and gold bug in Juver source code

Newbie Spellweaver
Joined
Oct 16, 2021
Messages
12
Reaction score
1
Hello everyone,

I successfully built the bin file from juver source (from the link: https://forum.ragezone.com/threads/...game-functionalities-no-more-selling.1198375/) and use Merge client (from: https://forum.ragezone.com/threads/release-client-compatible-to-juver-source.1198280/). Thank god!
But when I deploy the game, some players have negative gold in inventory, another can earn 999 Billion gold after half day open server (while in-game items are only worth a few tens to several hundred thousand golds)
I know that is bug, but I can't find it.
So help me, please!

attach file is capture screen from GM Tool
 

Attachments

You must be registered for see attachments list
Computers are fast; programmers keep it slow.
[VIP] Member
Joined
Feb 15, 2016
Messages
509
Reaction score
350
Have you checked the GM Commands permission? --Some juver based src didn't have proper dwUserLvl verification along with the /get_item password which is another thing.
 
Upvote 0
Newbie Spellweaver
Joined
Oct 16, 2021
Messages
12
Reaction score
1
Have you checked the GM Commands permission? --Some juver based src didn't have proper dwUserLvl verification along with the /get_item password which is another thing.
Thanks for your reply. I already view the source code, it checked permission before executing the command.

Code:
//    Note : GM 명령.
DWORD dwUSERLVL = GLGaeaClient::GetInstance().GetCharacter()->m_dwUserLvl;
if ( dwUSERLVL < USER_GM3 )                        return true;

So, when I check more information in Database RanLog, table LogExchangeFlag, the player can trade with negative gold in inventory (attach file). I think they used another client to connect to my server.
What do you think???
 

Attachments

You must be registered for see attachments list
Upvote 0
Computers are fast; programmers keep it slow.
[VIP] Member
Joined
Feb 15, 2016
Messages
509
Reaction score
350
Thanks for your reply. I already view the source code, it checked permission before executing the command.

Code:
//    Note : GM 명령.
DWORD dwUSERLVL = GLGaeaClient::GetInstance().GetCharacter()->m_dwUserLvl;
if ( dwUSERLVL < USER_GM3 )                        return true;

So, when I check more information in Database RanLog, table LogExchangeFlag, the player can trade with negative gold in inventory (attach file). I think they used another client to connect to my server.
What do you think???
Could be, you can try to change your szKey prior to this. So you can prevent other clients/old clients from connecting.

Otherwise the gold is still there.
 
Upvote 0
Newbie Spellweaver
Joined
Oct 16, 2021
Messages
12
Reaction score
1
Without the key authentication between the client and server, do you think of other possibilities?
 
Upvote 0
Banned
Banned
Joined
Jun 11, 2021
Messages
42
Reaction score
9
it doesn't matter about the get_item commands.
for the UserLevel , just add in in every gm commands Request code and the server process code. and its should be fine to use.
for this negative gold issue, if you cannot fix on your own, you can contact me via discord. i can fix it.
ssodomain#3366
 
Upvote 0
Junior Spellweaver
Joined
Feb 24, 2010
Messages
164
Reaction score
38
Open GLPrivateMarker.cpp
Look for
if ( sSALEPOS==SNATIVEID(false) )
{
BOOL bOK = m_invenSALE.FindInsrtable ( pITEM->sBasicOp.wInvenSizeX, pITEM->sBasicOp.wInvenSizeY, sSALEPOS.wMainID, sSALEPOS.wSubID );
if ( !bOK ) return false;
}
Add this code below

// price validation
if ( llPRICE < 0 )
{
return false;
}
 
Upvote 0
Junior Spellweaver
Joined
Jun 25, 2023
Messages
145
Reaction score
25
Open GLPrivateMarker.cpp
Look for
if ( sSALEPOS==SNATIVEID(false) )
{
BOOL bOK = m_invenSALE.FindInsrtable ( pITEM->sBasicOp.wInvenSizeX, pITEM->sBasicOp.wInvenSizeY, sSALEPOS.wMainID, sSALEPOS.wSubID );
if ( !bOK ) return false;
}
Add this code below

// price validation
if ( llPRICE < 0 )
{
return false;
}
is this really actual permanent solution?? :unsure::unsure::unsure:
 
Upvote 0
Back
Top