rendered paste body void SendCharacterData(){
CPacket pakout(0x715);
pakout.Add<byte>(stats_base[sGender]);
pakout.Add<word>(basic.map);
pakout.Add<CVector2F>(basic.pos);
pakout.Add<word>(0);//Respawn ZONE
pakout.Add<dword>(stats_base[sFace]);
pakout.Add<dword>(stats_base[sHair]);
pakout.Add<dword>(inv.items[2].GetVis());
pakout.Add<dword>(inv.items[3].GetVis());
pakout.Add<dword>(inv.items[5].GetVis());
pakout.Add<dword>(inv.items[6].GetVis());
pakout.Add<dword>(inv.items[1].GetVis());
pakout.Add<dword>(inv.items[4].GetVis());
pakout.Add<dword>(inv.items[7].GetVis());
pakout.Add<dword>(inv.items[8].GetVis());
//STRUCT tagBasicINFO
pakout.Add<byte>(0);//Birth Stone
pakout.Add<byte>(0);//m_cFaceIDX
pakout.Add<byte>(0);//m_cHairIDX
pakout.Add<word>(stats_base[sJob]);//m_nClass
pakout.Add<byte>(0);//m_cUnion
pakout.Add<byte>(0);//m_cRank
pakout.Add<byte>(0);//m_cFame
//End Struct
//STRUCT tagBasicAbility
pakout.Add<word>(stats_base[sStrength]);
pakout.Add<word>(stats_base[sDexterity]);
pakout.Add<word>(stats_base[sIntelligence]);
pakout.Add<word>(stats_base[sConcentration]);
pakout.Add<word>(stats_base[sCharm]);
pakout.Add<word>(stats_base[sSensibility]);
//End Struct
//STRUCT tagGrowAbility
pakout.Add<word>(stats_base[sHP]);//m_nHP
pakout.Add<word>(stats_base[sMP]);//m_nMP
pakout.Add<dword>(basic.exp);//m_lEXP
pakout.Add<word>(stats_base[sLevel]);//m_nLevel
pakout.Add<word>(stats_base[sStatPoints]);//m_nBonusPoint
pakout.Add<word>(stats_base[sSkillPoints]);//m_nSkillPoint
pakout.Add<byte>(100);//m_btBodySIZE
pakout.Add<byte>(100);//m_btHeadSIZE
pakout.Add<dword>(0);//m_lPenalEXP
pakout.Add<word>(0);//m_nFameG
pakout.Add<word>(0);//m_nFameB
for(dword i = 0; i < 10; i++) pakout.Add<word>(0); //m_nJoHapPOINT
pakout.Add<dword>(0);//m_iNULL1
pakout.Add<word>(0);//m_nNULL2
pakout.Add<byte>(0);//m_btNULL3
pakout.Add<word>(0);//m_nPKFlag
pakout.Add<word>(stats_base[sStamina]);
//tagMaintainSTATUS[40] m_STATUS
for(dword i = 0; i < 40; i++){
pakout.Add<dword>(0);//m_dwExpiredSEC
pakout.Add<word>(0); //m_nValue
pakout.Add<word>(0); //m_nDummy
}
//End Struct
//STRUCT tagSkillAbility
/*UNION 0x0: short[0x78], m_nSkillINDEX
UNION 0x0: short[0x1e][0x4], m_nPageIndex*/
for(dword i = 0; i < 90; i++) pakout.Add<word>(skill.Skills[i]);
for(dword i = 0; i < 30; i++) pakout.Add<word>(0);//this is 4th "page" of skills..?
//End Struct
//STRUCT CHotICONS
/*UNION 0x0: tagHotICON[0x20], m_IconLIST
UNION 0x0: tagHotICON[0x8][0x4], m_IconPAGE
tagHotICON
Data : this(bf)+0x0:0x0 len(0x5), Member, Type: unsigned short, m_cType
Data : this(bf)+0x0:0x5 len(0xb), Member, Type: unsigned short, m_nSlotNo
Data : this+0x0, Member, Type: unsigned short, m_wHotICON*/
for(dword i = 0; i < 32; i++) pakout.Add<word>(skill.QuickBar[i]);
//End Struct
pakout.Add<dword>(_CharId);
pakout.Add<string>(_CharName);
ParentServer->SendPacket(this, &pakout);
}