73 lines
2.4 KiB
C++
73 lines
2.4 KiB
C++
#include "stdafx.h"
|
|
#include "Logger.h"
|
|
#include "L2Client.h"
|
|
|
|
/**
|
|
writeC(0x23);
|
|
writeD(_objectId);
|
|
writeD(_targetObjId);
|
|
writeD(_x);
|
|
writeD(_y);
|
|
writeD(_z);
|
|
writeD(0x00); **/
|
|
void L2Client::ph_TargetSelected( class L2Client *pcls, L2GamePacket *p )
|
|
{
|
|
int party_idx = 0;
|
|
p->getPacketType();
|
|
unsigned int oid = p->readUInt();
|
|
unsigned int toid = p->readUInt();
|
|
/*int x = */p->readInt();
|
|
/*int y = */p->readInt();
|
|
/*int z = */p->readInt();
|
|
//
|
|
if( oid == pcls->usr.objectID )
|
|
{
|
|
pcls->usr.targetObjectID = toid;
|
|
//log_error( LOG_OK, "User TargetSelected\n" );
|
|
wchar_t wmes[32] = {0};
|
|
swprintf( wmes, 31, L"You target %u", toid );
|
|
pcls->addChatToTab( CHAT_DMG, wmes );
|
|
pcls->postUpdateUI( UPDATE_USER_TARGET );
|
|
}
|
|
else if( pcls->party.isInParty( oid, &party_idx ) )
|
|
{
|
|
//L2Player *partyMember = pcls->party.getPartyPlayer( party_idx );
|
|
//log_error( LOG_OK, "Party member [%S] target to %u\n", partyMember->charName, toid );
|
|
pcls->party.setPlayerTarget( oid, toid );
|
|
//wchar_t wmes[64] = {0};
|
|
//swprintf( wmes, 63, L"Party member [%s] changed target to %u", partyMember->charName, toid );
|
|
//pcls->addChatToTab( CHAT_DMG, wmes );
|
|
}
|
|
// update target in the world alse
|
|
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 = toid;
|
|
//wchar_t wmes[256] = {0};
|
|
//swprintf( wmes, 255, L"Character [%s] selected target %u", pcls->world_chars.chars_array[idx]->charName, toid );
|
|
//pcls->addChatToTab( CHAT_DMG, wmes );
|
|
if( toid == pcls->usr.objectID )
|
|
{
|
|
//log_error( LOG_USERAI, "You are targeted by [%S]\n", pcls->world_chars.chars_array[idx]->charName );
|
|
wchar_t wmessage[256] = {0};
|
|
swprintf( wmessage, 255, L"You are targeted by [%s]", pcls->world_chars.chars_array[idx]->charName );
|
|
pcls->addChatToTab( CHAT_DMG, wmessage, NULL );
|
|
}
|
|
else if( pcls->party.isInParty( toid, &party_idx ) )
|
|
{
|
|
L2Player *partyMember = pcls->party.getPartyPlayer( party_idx );
|
|
wchar_t wmes[64] = {0};
|
|
swprintf( wmes, 63, L"Party member [%s] is on target of [%s]",
|
|
partyMember->charName, pcls->world_chars.chars_array[idx]->charName );
|
|
pcls->addChatToTab( CHAT_DMG, wmes );
|
|
}
|
|
} break;
|
|
}
|
|
}
|
|
}
|