87 lines
2.6 KiB
C++
87 lines
2.6 KiB
C++
#include "stdafx.h"
|
|
#include "Logger.h"
|
|
#include "L2Client.h"
|
|
|
|
void L2Client::send_UseItem( unsigned int objectID )
|
|
{
|
|
if( this->state != STATE_IN_GAME ) return; // only in game
|
|
L2Game_UseItem *p = new L2Game_UseItem();
|
|
p->create( objectID );
|
|
sendPacket( p, true );
|
|
delete p; p = NULL;
|
|
}
|
|
|
|
/** Client: Len 11 [RequestDestroyItem]
|
|
0B 00
|
|
60
|
|
71 08 00 10 // objectID
|
|
01 00 00 00 // count **/
|
|
void L2Client::send_RequestDestroyItem( unsigned int objectID, long long int count )
|
|
{
|
|
if( this->state != STATE_IN_GAME ) return; // only in game
|
|
L2_VERSION ver = getL2Version();
|
|
L2GamePacket *p = new L2GamePacket();
|
|
p->setPacketType( 0x60 ); // RequestDestroyItem
|
|
p->writeUInt( objectID );
|
|
if( ver < L2_VERSION_T23 ) p->writeD( (int)count ); else p->writeQ( count );
|
|
sendPacket( p, true );
|
|
delete p; p = NULL;
|
|
}
|
|
|
|
/** Client: Len 23 [RequestDropItem]
|
|
17 00
|
|
17
|
|
E4 09 00 10 // objectID
|
|
01 00 00 00 // count
|
|
F4 AA 00 00 // x
|
|
2F A4 00 00 // y
|
|
43 F2 FF FF // z **/
|
|
void L2Client::send_RequestDropItem( unsigned int objectID, long long int count, int x, int y, int z )
|
|
{
|
|
if( this->state != STATE_IN_GAME ) return; // only in game
|
|
L2_VERSION ver = getL2Version();
|
|
if( x == 0 ) x = usr.x;
|
|
if( y == 0 ) y = usr.y;
|
|
if( z == 0 ) z = usr.z;
|
|
L2GamePacket *p = new L2GamePacket();
|
|
p->setPacketType( 0x17 ); // RequestDropItem
|
|
p->writeUInt( objectID );
|
|
if( ver < L2_VERSION_T23 ) p->writeD( (int)count ); else p->writeQ( count );
|
|
p->writeInt( x );
|
|
p->writeInt( y );
|
|
p->writeInt( z );
|
|
sendPacket( p, true );
|
|
delete p; p = NULL;
|
|
}
|
|
|
|
// Format: dd (objectID,count)
|
|
/** Client: Len 11
|
|
0B 00
|
|
2F
|
|
13 14 04 10 // objectID 268702739
|
|
01 00 00 00 // count 1 **/
|
|
void L2Client::send_RequestCrystallizeItem( unsigned int objectID, long long int count )
|
|
{
|
|
if( this->state != STATE_IN_GAME ) return; // only in game
|
|
L2_VERSION ver = getL2Version();
|
|
L2GamePacket *p = new L2GamePacket();
|
|
p->setPacketType( 0x2F ); // RequestCrystallizeItem
|
|
p->writeUInt( objectID );
|
|
if( ver < L2_VERSION_T23 ) p->writeD( (int)count ); else p->writeQ( count );
|
|
sendPacket( p, true );
|
|
delete p; p = NULL;
|
|
}
|
|
|
|
// Format: dd (objectID,count)
|
|
void L2Client::send_RequestGiveItemToPet( unsigned int objectID, long long int count )
|
|
{
|
|
if( this->state != STATE_IN_GAME ) return; // only in game
|
|
L2_VERSION ver = getL2Version();
|
|
L2GamePacket *p = new L2GamePacket();
|
|
p->setPacketType( 0x95 ); // RequestGiveItemToPet
|
|
p->writeUInt( objectID );
|
|
if( ver < L2_VERSION_T23 ) p->writeD( (int)count ); else p->writeQ( count );
|
|
sendPacket( p, true );
|
|
delete p; p = NULL;
|
|
}
|