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

56 lines
1.7 KiB
C++

#include "stdafx.h"
#include "Logger.h"
#include "L2Client.h"
/**
writeC(0x24);
writeD(_targetObjId);
writeD(_x);
writeD(_y);
writeD(_z);
writeD(0x00); **/
void L2Client::ph_TargetUnselected( class L2Client *pcls, L2GamePacket *p )
{
int party_idx = 0;
p->getPacketType();
unsigned int oid = p->readUInt();
/*int x = */p->readInt();
/*int y = */p->readInt();
/*int z = */p->readInt();
//
if( oid == pcls->usr.objectID ) // update self target
{
pcls->usr.targetObjectID = 0;
pcls->usr.targetCurHp = 0.0;
pcls->usr.targetMaxHp = 0.0;
//log_error( LOG_OK, "User TargetUnselected\n" );
pcls->addChatToTab( CHAT_DMG, L"You unselect target" );
pcls->postUpdateUI( UPDATE_USER_TARGET );
}
else if( pcls->party.isInParty( oid, &party_idx ) ) // update target in party
{
//L2Player *partyMember = pcls->party.getPartyPlayer( party_idx );
pcls->party.setPlayerTarget( oid, 0 );
//log_error( LOG_OK, "Party member [%S] cancelled target\n", partyMember->charName );
//wchar_t wmes[256] = {0};
//swprintf( wmes, 255, L"Party member [%s] unselected target", partyMember->charName );
//pcls->addChatToTab( CHAT_DMG, wmes );
}
// someone in the world cancelled target, update target of object in the world
WorldObjectTreeNode wotNode;
if( pcls->world_tree.GetInfoByObjectID( oid, &wotNode ) )
{
int idx = wotNode.getArrayIdx();
switch( wotNode.getObjectType() )
{
case L2OT_PC:
{
pcls->world_chars.chars_array[idx]->targetObjectID = 0;
//wchar_t wmes[256] = {0};
//swprintf( wmes, 255, L"Character [%s] unselected target", pcls->world_chars.chars_array[idx]->charName );
//pcls->addChatToTab( CHAT_DMG, wmes );
} break;
}
}
}