rendered paste bodyvoid ServerPackets::UserInfo(CUserSocket *s, va_list pck){ // C4: cdddddSdddddddddddddddddddddddddddddddddddddddddddddddddddddd dddddddddddddddddffffddddSdddddcccdd [h][b] cdcbhhdhddd dccdcccdddd // C6: cdddddSddddQdddddddddddddddddddddddddddddddddddddddddddddddddhhhhhhhhhhhhhhdhhhhhhhhhhhhdhhhhddddddddddddddddddddffffddddSdddddcccdd [h][h] cdcdhhdhddd dccdcccddddcdddd PacketReaderV pki(pck); PacketWriter pko(pki.ReadC(), 2048); // opcode 0x04 pki.Read<u32>(); pki.Read<u32>(); pki.Read<u32>(); pko.WriteD(0); // x pko.WriteD(0); // y pko.WriteD(0); // z pko.WriteD(pki.Read<u32>()); // heading pko.WriteD(pki.Read<u32>()); // object id pko.WriteS(pki.Read<WCHAR*>()); // name pko.WriteD(pki.Read<u32>()); // race (base?) (?) pko.WriteD(pki.Read<u32>()); // sex pko.WriteD(pki.Read<u32>()); // class id pko.WriteD(pki.Read<u32>()); // lvl pko.WriteQ(pki.Read<u32>()); // exp pko.WriteD(pki.Read<u32>()); // str pko.WriteD(pki.Read<u32>()); // dex pko.WriteD(pki.Read<u32>()); // con pko.WriteD(pki.Read<u32>()); // int pko.WriteD(pki.Read<u32>()); // wit pko.WriteD(pki.Read<u32>()); // men pko.WriteD(pki.Read<u32>()); // max hp pko.WriteD(pki.Read<u32>()); // curr hp pko.WriteD(pki.Read<u32>()); // max mp pko.WriteD(pki.Read<u32>()); // curr mp pko.WriteD(pki.Read<u32>()); // sp pko.WriteD(pki.Read<u32>()); // load pko.WriteD(pki.Read<u32>()); // max load pko.WriteD(pki.Read<u32>()); // unknown pko.WriteD(pki.Read<u32>()); // DHAIR obj id pko.WriteD(pki.Read<u32>()); // REAR obj id pko.WriteD(pki.Read<u32>()); // LEAR obj id pko.WriteD(pki.Read<u32>()); // NECK obj id pko.WriteD(pki.Read<u32>()); // RFINGER obj id pko.WriteD(pki.Read<u32>()); // LFINGER obj id pko.WriteD(pki.Read<u32>()); // HEAD obj id pko.WriteD(pki.Read<u32>()); // RHAND obj id pko.WriteD(pki.Read<u32>()); // LHAND obj id pko.WriteD(pki.Read<u32>()); // GLOVES obj id pko.WriteD(pki.Read<u32>()); // CHEST obj id pko.WriteD(pki.Read<u32>()); // LEGS obj id pko.WriteD(pki.Read<u32>()); // FEET obj id pko.WriteD(pki.Read<u32>()); // BACK obj id pko.WriteD(pki.Read<u32>()); // LRHAND obj id pko.WriteD(pki.Read<u32>()); // HAIR obj id pko.WriteD(0x00); // FACE obj id pko.WriteD(pki.Read<u32>()); // DHAIR item id pko.WriteD(pki.Read<u32>()); // REAR item id pko.WriteD(pki.Read<u32>()); // LEAR item id pko.WriteD(pki.Read<u32>()); // NECK item id pko.WriteD(pki.Read<u32>()); // RFINGER item id pko.WriteD(pki.Read<u32>()); // LFINGER item id pko.WriteD(pki.Read<u32>()); // HEAD item id pko.WriteD(pki.Read<u32>()); // RHAND item id pko.WriteD(pki.Read<u32>()); // LHAND item id pko.WriteD(pki.Read<u32>()); // GLOVES item id pko.WriteD(pki.Read<u32>()); // CHEST item id pko.WriteD(pki.Read<u32>()); // LEGS item id pko.WriteD(pki.Read<u32>()); // FEET item id pko.WriteD(pki.Read<u32>()); // BACK item id pko.WriteD(pki.Read<u32>()); // LRHAND item id pko.WriteD(pki.Read<u32>()); // HAIR item id pko.WriteD(0x00); // FACE item id // c6 new h's pko.WriteH(0x00); // unk pko.WriteH(0x00); // unk pko.WriteH(0x00); // unk pko.WriteH(0x00); // unk pko.WriteH(0x00); // unk pko.WriteH(0x00); // unk pko.WriteH(0x00); // unk pko.WriteH(0x00); // unk pko.WriteH(0x00); // unk pko.WriteH(0x00); // unk pko.WriteH(0x00); // unk pko.WriteH(0x00); // unk pko.WriteH(0x00); // unk pko.WriteH(0x00); // unk pko.WriteD(0x00); // augment id pko.WriteH(0x00); // unk pko.WriteH(0x00); // unk pko.WriteH(0x00); // unk pko.WriteH(0x00); // unk pko.WriteH(0x00); // unk pko.WriteH(0x00); // unk pko.WriteH(0x00); // unk pko.WriteH(0x00); // unk pko.WriteH(0x00); // unk pko.WriteH(0x00); // unk pko.WriteH(0x00); // unk pko.WriteH(0x00); // unk pko.WriteD(0x00); // augment id pko.WriteH(0x00); // unk pko.WriteH(0x00); // unk pko.WriteH(0x00); // unk pko.WriteH(0x00); // unk // end of c6 new h's pko.WriteD(pki.Read<u32>()); // p.atk pko.WriteD(pki.Read<u32>()); // p.atk spd pko.WriteD(pki.Read<u32>()); // p.def pko.WriteD(pki.Read<u32>()); // evasion pko.WriteD(pki.Read<u32>()); // accuracy pko.WriteD(pki.Read<u32>()); // crit hit pko.WriteD(pki.Read<u32>()); // m.atk pko.WriteD(pki.Read<u32>()); // m.atk spd pko.WriteD(pki.Read<u32>()); // p.atk spd pko.WriteD(pki.Read<u32>()); // m.def pko.WriteD(pki.Read<u32>()); // 0-non-pvp 1-pvp = violett name pko.WriteD(pki.Read<u32>()); // karma pko.WriteD(pki.Read<u32>()); // run spd pko.WriteD(pki.Read<u32>()); // walk spd pko.WriteD(pki.Read<u32>()); // run swimspeed pko.WriteD(pki.Read<u32>()); // walk swimspeed pko.WriteD(pki.Read<u32>()); // _flRunSpd pko.WriteD(pki.Read<u32>()); // _flWalkSpd pko.WriteD(pki.Read<u32>()); // _flyRunSpd pko.WriteD(pki.Read<u32>()); // _flyWalkSpd pko.WriteF(pki.Read<d64>()); // _moveMultiplier pko.WriteF(pki.Read<d64>()); // atk spd multiplier pko.WriteF(pki.Read<d64>()); // collision radius pko.WriteF(pki.Read<d64>()); // collision height pko.WriteD(pki.Read<u32>()); // hair style pko.WriteD(pki.Read<u32>()); // hair color pko.WriteD(pki.Read<u32>()); // face pko.WriteD(pki.Read<u32>()); // builder level pko.WriteS(pki.Read<WCHAR*>()); // title pko.WriteD(pki.Read<u32>()); // clan id pko.WriteD(pki.Read<u32>()); // clan crest id pko.WriteD(pki.Read<u32>()); // ally id pko.WriteD(pki.Read<u32>()); // ally crest id // 0x40 leader rights // siege flags: attacker - 0x180 sword over name, defender - 0x80 shield, 0xC0 crown (|leader), 0x1C0 flag (|leader) pko.WriteD(pki.Read<u32>()); // _relation, is clan leader pko.WriteC(pki.Read<u8>()); // mount type pko.WriteC(pki.Read<u8>()); // private store type pko.WriteC(pki.Read<u8>()); // has dwarven craft pko.WriteD(pki.Read<u32>()); // pk kills pko.WriteD(pki.Read<u32>()); // pvp kills // C4: cdddddSdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddffffddddSdddddcccdd[h][b]cdc[b]hhdhddddccdcccdddd u16 cubsCnt = pki.Read<u16>(); pko.WriteH(cubsCnt); // cubics count u16 *cubsBuff; if(cubsCnt > 0) cubsBuff = pki.Read<u16*>(); for(u16 i = 0; i < cubsCnt; i++) pko.WriteH(cubsBuff[i]);// cubic id (buffer) pko.WriteC(pki.Read<u8>()); // 1-find party members pko.WriteD(*pki.Read<u32*>()); // abnormal effect (ptr) pko.WriteC(pki.Read<u8>()); // unk pko.WriteD(pki.Read<u32>()); // clan privileges (buffer) pki.ReadD(); // junk data, adjusting _pos pki.ReadD(); // junk data, adjusting _pos pki.ReadD(); // junk data, adjusting _pos pki.ReadD(); // junk data, adjusting _pos pki.ReadD(); // junk data, adjusting _pos pki.ReadD(); // junk data, adjusting _pos pki.ReadD(); // junk data, adjusting _pos pko.WriteH(pki.Read<u16>()); // c2 recommendations remaining pko.WriteH(pki.Read<u16>()); // c2 recommendations received pko.WriteD(pki.Read<u32>()); // unk pko.WriteH(pki.Read<u16>()); // inv limit pko.WriteD(pki.Read<u32>()); // class id pko.WriteD(pki.Read<u32>()); // special effects? circles around player... pko.WriteD(pki.Read<u32>()); // max cp pko.WriteD(pki.Read<u32>()); // current cp pko.WriteC(pki.Read<u8>()); // enchant effect pko.WriteC(pki.Read<u8>()); //team circle around feet 1= Blue, 2 = red, 0 = none pko.WriteD(pki.Read<u32>()); // large crest id (insignia?) pko.WriteC(pki.Read<u8>()); // 0x01: symbol on char menu ctrl+I, is nobless pko.WriteC(pki.Read<u8>()); // 0x01: Hero Aura, is hero pko.WriteC(pki.Read<u8>()); // Fishing Mode pko.WriteD(pki.Read<u32>()); // fishing x pko.WriteD(pki.Read<u32>()); // fishing y pko.WriteD(pki.Read<u32>()); // fishing z pko.WriteD(pki.Read<u32>()); // name color //new c5 pko.WriteC(s->GetUser()->GetSharedData()->nIsRunning); // changes the Speed display on Status Window (1 = is running, 2 = isnt running) pko.WriteD(0x00); // pledge class, changes the text above CP on Status Window pko.WriteD(0x00); // unk pko.WriteD(0x00); // title color pko.WriteD(0x00); // cursed wpn id, 0 if none s->Send(&pko);}