This repository was archived by the owner on Jun 11, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 12
Look data
Grigorij Eleskin edited this page Sep 1, 2017
·
1 revision
From server
void CCharacter::WriteLookData(WPACKET &WtPk, Char chLookType, Char chSynType)
{
WRITE_CHAR(WtPk, chSynType);
WRITE_SHORT(WtPk, m_SChaPart.sTypeID);
if( m_CChaAttr.GetAttr(ATTR_CHATYPE) == enumCHACTRL_PLAYER && IsBoat() )
{
WRITE_CHAR( WtPk, 1); // �������
WRITE_SHORT( WtPk, m_SChaPart.sPosID );
WRITE_SHORT( WtPk, m_SChaPart.sBoatID );
WRITE_SHORT( WtPk, m_SChaPart.sHeader );
WRITE_SHORT( WtPk, m_SChaPart.sBody );
WRITE_SHORT( WtPk, m_SChaPart.sEngine );
WRITE_SHORT( WtPk, m_SChaPart.sCannon );
WRITE_SHORT( WtPk, m_SChaPart.sEquipment );
//WRITE_LONG( WtPk, m_SChaPart.dwBody );
//WRITE_LONG( WtPk, m_SChaPart.dwHeader );
//WRITE_LONG( WtPk, m_SChaPart.dwEngine );
//WRITE_LONG( WtPk, m_SChaPart.dwFlag );
//for( BYTE i = 0; i < BOAT_MAXNUM_MOTOR; i++ )
//{
// WRITE_LONG( WtPk, m_SChaPart.dwMotor[i] );
//}
}
else
{
WRITE_CHAR( WtPk, 0); // �˽�ɫ�����
WRITE_SHORT(WtPk, m_SChaPart.sHairID);
SItemGrid *pItem;
int nItemCnt = enumEQUIP_NUM;
if(chLookType==LOOK_TEAM) nItemCnt = 3; // ������͵����֪ͨ, ֻ��Ҫ�ϰ�����Ϣ
for (int i = 0; i < nItemCnt; i++)
{
pItem = m_SChaPart.SLink + i;
if (chSynType == enumSYN_LOOK_CHANGE)
{
if (!pItem->IsChange())
{
WRITE_SHORT(WtPk, 0);
continue;
}
}
WRITE_SHORT(WtPk, pItem->sID);
// 2008-8-7 yangyinyu add begin!
WRITE_LONG(WtPk, pItem->dwDBID);
// 2008-8-7 yangyinyu add end!
if (pItem->sID == 0)
continue;
if (chSynType == enumSYN_LOOK_CHANGE)
{
WRITE_SHORT(WtPk, pItem->sEndure[0]);
WRITE_SHORT(WtPk, pItem->sEnergy[0]);
WRITE_CHAR(WtPk, pItem->IsValid() ? 1 : 0);
continue;
}
else
{
WRITE_SHORT(WtPk, pItem->sNum);
WRITE_SHORT(WtPk, pItem->sEndure[0]);
WRITE_SHORT(WtPk, pItem->sEndure[1]);
WRITE_SHORT(WtPk, pItem->sEnergy[0]);
WRITE_SHORT(WtPk, pItem->sEnergy[1]);
WRITE_CHAR(WtPk, pItem->chForgeLv);
WRITE_CHAR(WtPk, pItem->IsValid() ? 1 : 0);
}
if(chLookType!=LOOK_SELF) // ����������֪ͨ, ������Ҫ�������Ϣ
{
WRITE_CHAR(WtPk, 0);
continue;
}
WRITE_CHAR(WtPk, 1);
WRITE_LONG(WtPk, pItem->GetDBParam(enumITEMDBP_FORGE));
WRITE_LONG(WtPk, pItem->GetDBParam(enumITEMDBP_INST_ID));
if (pItem->IsInstAttrValid())
{
WRITE_CHAR(WtPk, 1);
for (int j = 0; j < defITEM_INSTANCE_ATTR_NUM; j++)
{
WRITE_SHORT(WtPk, pItem->sInstAttr[j][0]);
WRITE_SHORT(WtPk, pItem->sInstAttr[j][1]);
}
}
else
WRITE_CHAR(WtPk, 0);
}
}
}