l2-unlegits/l2ooghelper/packet_handlers/ph_PartySmallWindowAll.cpp
2012-02-01 05:25:08 +00:00

78 lines
2.1 KiB
C++

#include "stdafx.h"
#include "Logger.h"
#include "L2Client.h"
/*
6C 08 00 10 // party leader object id
00 00 00 00 // party loot type
01 00 00 00 // number of members (except you)
// for every member
6C 08 00 10 // member oobject id
41 00 65 00 72 00 69 00 6E 00 00 00 // member name
CD 06 00 00 // current cp
CD 06 00 00 // max cp
61 0D 00 00 // current hp
61 0D 00 00 // max hp
7B 0A 00 00 // current mp
7B 0A 00 00 // max mp
50 00 00 00 // level
1E 00 00 00 // class id
00 00 00 00 // constant 00 00 00 00
01 00 00 00 // race
00 00 00 00 // constant 00 00 00 00 */
void L2Client::ph_PartySmallWindowAll( class L2Client *pcls, L2GamePacket *p )
{
unsigned int leaderOid = 0;
unsigned int lootType = 0;
unsigned int nMembers = 0;
unsigned int i = 0;
L2Player pl;
//
pcls->party.clear();
//
p->getPacketType();
leaderOid = p->readUInt();
lootType = p->readUInt();
//
pcls->party.setLeaderObjectId( leaderOid );
pcls->party.setItemDistribution( lootType );
//
nMembers = p->readUInt();
for( i=0; i<nMembers; i++ )
{
pl.setUnused();
pl.objectID = p->readUInt();
pl.setName( p->readUnicodeStringPtr() );
pl.curCp = (double)p->readInt();
pl.maxCp = (double)p->readInt();
pl.curHp = (double)p->readInt();
pl.maxHp = (double)p->readInt();
pl.curMp = (double)p->readInt();
pl.maxMp = (double)p->readInt();
pl.level = p->readInt();
pl.classID = p->readInt();
p->readInt();
pl.race = p->readInt();
p->readInt(); // 0x00
// Gracia Final?
if( pcls->account.serverVersion == (int)L2_VERSION_T23 )
{
p->readInt(); // T2.3 0x00
// pet info
unsigned int petObjectID = p->readUInt(); // or 0x00, if no pet
if( petObjectID != 0 ) // must read pet info
{
p->readInt(); // pet npcId + 1000000
p->readUnicodeStringPtr(); // pet name
p->readInt(); // pet curHp
p->readInt(); // pet maxHp
p->readInt(); // pet curMp
p->readInt(); // pet maxMp
p->readInt(); // pet level
}
}
//
pcls->party.addPlayer( &pl );
}
pcls->postUpdateUI( UPDATE_PARTY );
}