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

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;
}