- SETWORD( pak, 0x07e, thisclient->CharInfo->stamina ); // Stamina
- for(short i=0x080; i<0x1c0; i++)
- SETBYTE( pak, i, 0x00 );
- for (char i=0; i<30; i++)
- SETWORD( pak, 0x1c0+(i*2), thisclient->bskills[i] );//Basic skills
- for (char i=0; i<30; i++)
- SETWORD( pak, 0x1fc+(i*2), thisclient->askill[i]+thisclient->askilllvl[i] );//Active skills
- for (char i=0; i<30; i++)
- SETWORD( pak, 0x238+(i*2), thisclient->pskill[i]+thisclient->pskilllvl[i] );//Passive skills
- for(short i=0x274; i<0x2b0; i++)//unused ????
- SETBYTE( pak, i, 0 );
- for (char i=0; i<32; i++)
- SETWORD( pak, 0x2b0+(i*2), thisclient->quickbar[i] ); // QUICKBAR ROW 1 STARTS
- SETWORD( pak, 0x2f0, thisclient->CharInfo->charid );
- SETWORD( pak, 0x2f2, 0x00 );
- cbyte = 0x2f4;
Now I see all my skills when i log in.
in Worldpackets.cpp pakPlayer
find
this code is the way it was prior to applying drakia's patch
replace with
- SETWORD( pak, 0x07e, 0x00 );
- SETWORD( pak, 0x080, 0x00 );
- SETWORD( pak, 0x082, 0x00 );
- SETWORD( pak, 0x084, thisclient->CharInfo->stamina ); // Stamina
- for(short i=0x086; i<0x1c0; i++)
- SETBYTE( pak, i, 0x00 );
- for (char i=0; i<30; i++)
- SETWORD( pak, 0x1c6 + (i*2), thisclient->bskills[i] );//Basic skills
- for (char i=0; i<30; i++)
- SETWORD( pak, 0x202 + (i*2), thisclient->askill[i]+thisclient->askilllvl[i] );//Active skills
- for (char i=0; i<30; i++)
- SETWORD( pak, 0x23e + (i*2), thisclient->pskill[i]+thisclient->pskilllvl[i] );//Passive skills
- for(short i=0x274; i<0x2b6; i++)//unused ????
- SETBYTE( pak, i, 0 );
- for (char i=0; i<32; i++)
- SETWORD( pak, 0x2b6+(i*2), thisclient->quickbar[i] ); // QUICKBAR ROW 1 STARTS
- SETWORD( pak, 0x2f6, thisclient->CharInfo->charid );
- SETWORD( pak, 0x2f8, 0x00 );
- cbyte = 0x2fa;
I just shifted the 6 byte offset way back up the code to just before the stamina is sent.
I'm not 1005 sure this is a complete fix yet but it did allow me to get my skills and quickbar data correct.
Code currently running on my server.