• 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.

Help to determine packet in BMS'Leak .Idb

Newbie Spellweaver
Joined
Jan 26, 2017
Messages
19
Reaction score
2
Hi, i'm look into BMS'Leak server files to read and undertand the way nexon handle things in Server side, but there in an packet i cannot undertand in CUSkill::DoActiveSkill_Summon method
Can anyone help me to determine what packet (header: 25 or 0x19) is in this method? Look like it will send after Summoned created successful. I was tried to compare with send headers of GMS v62, but still couldn't found what it is.
Kyber - Help to determine packet in BMS'Leak .Idb - RaGEZONE Forums
Kyber - Help to determine packet in BMS'Leak .Idb - RaGEZONE Forums
 
Last edited:
Skilled Illusionist
Joined
Jul 17, 2010
Messages
333
Reaction score
165
Code:
COutPacket::COutPacket(&oPacket, 25, [B]1[/B]);
The last byte '1' tells it's loopback packet. So most likely it's in ~OnPacket.

CUser::OnPacket
Code:
case 0x19:
        CUser::OnUserEffect(this, iPacket);
        break;
Oh, it was UserEffect packet as Chikn said. (in this case, it's for remote users to show skill effect)
 
Upvote 0
Newbie Spellweaver
Joined
Jan 26, 2017
Messages
19
Reaction score
2
Code:
COutPacket::COutPacket(&oPacket, 25, [B]1[/B]);
The last byte '1' tells it's loopback packet. So most likely it's in ~OnPacket.

CUser::OnPacket
Code:
case 0x19:
        CUser::OnUserEffect(this, iPacket);
        break;
Oh, it was UserEffect packet as Chikn said. (in this case, it's for remote users to show skill effect)
Thank you guys <3
 
Upvote 0
Newbie Spellweaver
Joined
Jan 26, 2017
Messages
19
Reaction score
2
did anyone know what is this packet?? and did it exists in GMS version (v0.62)? @Chikn @Yuuroido
PHP:
COutPacket::COutPacket(&thisa, 24, 1);
LOBYTE(v12) = 2;
COutPacket::Encode4(&thisa, dwFieldID);
v9._m_pStr = 0;
ZXString<char>::operator=(&v9, &sPortal);
COutPacket::EncodeStr(&thisa, v9);
COutPacket::Encode1(&thisa, 0);
COutPacket::Encode1(&thisa, 0);
COutPacket::Encode1(&thisa, 0);
COutPacket::Encode1(&thisa, 0);
CUser::SendPacket(v4, &thisa);
It look like an packet to warp player to another map, but can't found this packet in GMS version. If i'm not wrong, GMS only using CStage::OnSetField to warp player, right?

P/s: nvm, i found it. Thank you guys <3
 
Last edited:
Upvote 0
Custom Title Activated
Loyal Member
Joined
Jan 18, 2010
Messages
3,109
Reaction score
1,139
i'm loving all these nexon names and references <3

just curious, are you making a nexon-replica emulator as well Kyber? or is this just to further better name/fix current packets and functionality of Odin :p

yes OnSetField is the only way you warp players to entirely different maps (for all versions and regions alike). assuming you know this since you found it, just remember if bLoopback is true, go to CUser::OnPacket and scroll to the bottom. at the bottom is an } else { condition with a second switch, this switch is for all the loopback opcodes. you can convert them to decimal if they aren't already (click on a condition and press H to switch between dec/hex) to easily find any loopback packet relating to the user.
 
Upvote 0
Newbie Spellweaver
Joined
Jan 26, 2017
Messages
19
Reaction score
2
just curious, are you making a nexon-replica emulator as well @Kyber? or is this just to further better name/fix current packets and functionality of Odin :p
-Yes, i'm making a nexon-replica emulator but in java with java 8, not C++, and ofcouse i also make all the method and variable naming like as nexon too :D:

yes OnSetField is the only way you warp players to entirely different maps (for all versions and regions alike). assuming you know this since you found it, just remember if bLoopback is true, go to CUser::OnPacket and scroll to the bottom. at the bottom is an } else { condition with a second switch, this switch is for all the loopback opcodes. you can convert them to decimal if they aren't already (click on a condition and press H to switch between dec/hex) to easily find any loopback packet relating to the user
-on the first time, I thought that packet will send to the client, but i has realized that it is a loopback packet (thanks to @Yuuroido), that send back to server and trace throught CUser::OnPacket :D: after that, i was found the packet 0x24 is: CUser::OnTransferFieldRequest, and in this function will sending a packet called CUser::SendSetFieldPacket to warp player :D:
 
Last edited:
Upvote 0
Back
Top