• Unfortunately, we have experienced significant hard drive damage that requires urgent maintenance and rebuilding. The forum will be a state of read only until we install our new drives and rebuild all the configurations needed. Please follow our Facebook page for updates, we will be back up shortly! (The forum could go offline at any given time due to the nature of the failed drives whilst awaiting the upgrades.) When you see an Incapsula error, you know we are in the process of migration.

[Odin] Enable Gendered Cash Shop

Joined
Apr 12, 2008
Messages
998
Reaction score
612
Allows females to buy female cash items without having to equip them and buy equipped.
This is probably improper but whatever, IT JUST WERKS (for Odin based sources obviously).

PlayerLoggedInHandler.java

Add:
c.announce(MaplePacketCreator.updateGender(player));

Under:
c.setPlayer(player);
c.setAccID(player.getAccountID());

Smash that motherfuckin like button.
 
Last edited:
Junior Spellweaver
Joined
Jun 27, 2015
Messages
125
Reaction score
53
Re: Enable Gendered Cash Shop

How is it improper? That's the setGender packet. This implementation is odinms-specific, no idea why it's in web development. Post the packet instead, if you've actually made it yourself.
 
Joined
Apr 12, 2008
Messages
998
Reaction score
612
Re: Enable Gendered Cash Shop

this is the best release 2016. ily

and ya, it's not improper at all (however, i send it after they enter the field, not at the top like this), this is actually how Nexon handles it themselves upon game migration :)

Gotcha, I figured it had to be somewhat improper with how simple of a fix this was and how Ducking long its gone without being publicly fixed.
 
Custom Title Activated
Loyal Member
Joined
Mar 14, 2010
Messages
5,363
Reaction score
1,343
Re: Enable Gendered Cash Shop

Gotcha, I figured it had to be somewhat improper with how simple of a fix this was and how Ducking long its gone without being publicly fixed.

Code:
/*
     CUser::OnMigrateInSuccess
*/

COutPacket::Encode1(&thisa, v1->m_character.characterStat.nGender);

I see gender being set when you get ingame, but not in CS. o-o
 
Custom Title Activated
Loyal Member
Joined
Jan 18, 2010
Messages
3,109
Reaction score
1,139
Re: Enable Gendered Cash Shop

Code:
/*
     CUser::OnMigrateInSuccess
*/

COutPacket::Encode1(&thisa, v1->m_character.characterStat.nGender);

I see gender being set when you get ingame, but not in CS. o-o

The gender set when you migrate in-game here sets the client's gender to where the cash shop reads it client-sided.
 
Junior Spellweaver
Joined
Mar 21, 2015
Messages
126
Reaction score
13
I honestly had no idea this was an issue. I guess that speaks to the ratio of male/female players.

Played around with this and the SET_GENDER packet for v62 is 0x37. Not sure if that was public knowledge or not, but it wasn't defined in my source (xiuz based).
 
Junior Spellweaver
Joined
Jun 27, 2015
Messages
125
Reaction score
53
I honestly had no idea this was an issue. I guess that speaks to the ratio of male/female players.

Played around with this and the SET_GENDER packet for v62 is 0x37. Not sure if that was public knowledge or not, but it wasn't defined in my source (xiuz based).
Since the packet is implemented in most v83 sources, it's basically common knowledge. But for someone working on older versions, without packet knowledge, this could be useful.
iqdITQH - [Odin] Enable Gendered Cash Shop - RaGEZONE Forums

The subs in the picture are from v.62 (left) and v.95 (right), as you can see they are identical.
v.95 = 58 (0x3A), v.83 = 58 (0x3A), v.62 = 55 (0x37).
Code:
public static MaplePacket setGender(MapleCharacter chr) {
     MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
     mplew.writeShort(SendPacketOpcode.SET_GENDER.getValue());
     mplew.write(chr.getGender()); // 0 = Male, 1 = Female
     return mplew.getPacket();
}
 
Custom Title Activated
Loyal Member
Joined
Jan 18, 2010
Messages
3,109
Reaction score
1,139
Straight Edgy agreed, but fix ur ida symbols :(

PHP:
void __thiscall CWvsContext::OnSetGender(CWvsContext *this, CInPacket *iPacket)
{
  this->m_nGender = (unsigned __int8)CInPacket::Decode1(iPacket);
}
PHP:
enum GENDER
{
  GENDER_MALE = 0x0,
  GENDER_FEMALE = 0x1,
  GENDER_NONE = 0x2,
};

To be honest, I'm kind of surprised people didn't know about this. I first messed with this when trying to make all items transgender so anyone could buy, but it didn't work lolol.. I wonder, do they know about how Nexon handles their Report system? It's another thing I didn't see in many sources and is the exact same thing as gender, enables the functionality sent upon migration.

PHP:
void __thiscall CWvsContext::OnClaimSvrStatusChanged(CWvsContext *this, CInPacket *iPacket)
{
  this->m_bClaimSvrConnected = CInPacket::Decode1(iPacket) != 0;
}
 
Joined
Apr 12, 2008
Messages
998
Reaction score
612
Yeah I didn't know any of this because I don't use IDA since I'm practically brain-dead when it comes to IDA. Somehow I've fixed a lot of issues without looking into it though. ¯\_(ツ)_/¯
 
Legendary Battlemage
Joined
Jun 16, 2011
Messages
610
Reaction score
347
adding this to the repack as we speak thanks raptorjesus
 
Back
Top