Updated the thunderbolt packet. Lightning and rain can be tested with a workbench and a chest. >:)
git-svn-id: http://mc-server.googlecode.com/svn/trunk@48 0a769ca7-a7f5-676a-18bf-c427514a06d6
This commit is contained in:
parent
a5af50c293
commit
39fd1697e4
@ -57,6 +57,7 @@
|
|||||||
#include "packets/cPacket_EntityEquipment.h"
|
#include "packets/cPacket_EntityEquipment.h"
|
||||||
#include "packets/cPacket_CreateInventoryAction.h"
|
#include "packets/cPacket_CreateInventoryAction.h"
|
||||||
#include "packets/cPacket_NewInvalidState.h"
|
#include "packets/cPacket_NewInvalidState.h"
|
||||||
|
#include "packets/cPacket_Thunderbolt.h" //for testing.
|
||||||
#include "packets/cPacket_UseEntity.h"
|
#include "packets/cPacket_UseEntity.h"
|
||||||
#include "packets/cPacket_WindowClose.h"
|
#include "packets/cPacket_WindowClose.h"
|
||||||
#include "packets/cPacket_13.h"
|
#include "packets/cPacket_13.h"
|
||||||
@ -485,8 +486,9 @@ void cClientHandle::HandlePacket( cPacket* a_Packet )
|
|||||||
break;
|
break;
|
||||||
case E_BLOCK_DIG:
|
case E_BLOCK_DIG:
|
||||||
{
|
{
|
||||||
LOG("TimeP: %f", m_Player->GetLastBlockActionTime() );
|
|
||||||
LOG("TimeN: %f", cRoot::Get()->GetWorld()->GetTime() );
|
//LOG("TimeP: %f", m_Player->GetLastBlockActionTime() );
|
||||||
|
//LOG("TimeN: %f", cRoot::Get()->GetWorld()->GetTime() );
|
||||||
if ( cRoot::Get()->GetWorld()->GetTime() - m_Player->GetLastBlockActionTime() < 0.1 ) { //only allow block interactions every 0.1 seconds
|
if ( cRoot::Get()->GetWorld()->GetTime() - m_Player->GetLastBlockActionTime() < 0.1 ) { //only allow block interactions every 0.1 seconds
|
||||||
LOGWARN("Player %s tried to interact with a block too quickly! (could indicate bot)", GetUsername() );
|
LOGWARN("Player %s tried to interact with a block too quickly! (could indicate bot)", GetUsername() );
|
||||||
m_Player->SetLastBlockActionTime(); //Player tried to interact with a block. Reset last block interation time.
|
m_Player->SetLastBlockActionTime(); //Player tried to interact with a block. Reset last block interation time.
|
||||||
@ -603,8 +605,8 @@ void cClientHandle::HandlePacket( cPacket* a_Packet )
|
|||||||
break;
|
break;
|
||||||
case E_BLOCK_PLACE:
|
case E_BLOCK_PLACE:
|
||||||
{
|
{
|
||||||
LOG("TimeP: %f", m_Player->GetLastBlockActionTime() );
|
//LOG("TimeP: %f", m_Player->GetLastBlockActionTime() );
|
||||||
LOG("TimeN: %f", cRoot::Get()->GetWorld()->GetTime() );
|
//LOG("TimeN: %f", cRoot::Get()->GetWorld()->GetTime() );
|
||||||
if ( cRoot::Get()->GetWorld()->GetTime() - m_Player->GetLastBlockActionTime() < 0.1 ) { //only allow block interactions every 0.1 seconds
|
if ( cRoot::Get()->GetWorld()->GetTime() - m_Player->GetLastBlockActionTime() < 0.1 ) { //only allow block interactions every 0.1 seconds
|
||||||
LOGWARN("Player %s tried to interact with a block too quickly! (could indicate bot)", GetUsername() );
|
LOGWARN("Player %s tried to interact with a block too quickly! (could indicate bot)", GetUsername() );
|
||||||
m_Player->SetLastBlockActionTime(); //Player tried to interact with a block. Reset last block interation time.
|
m_Player->SetLastBlockActionTime(); //Player tried to interact with a block. Reset last block interation time.
|
||||||
@ -642,10 +644,17 @@ void cClientHandle::HandlePacket( cPacket* a_Packet )
|
|||||||
{
|
{
|
||||||
case E_BLOCK_WORKBENCH:
|
case E_BLOCK_WORKBENCH:
|
||||||
{
|
{
|
||||||
LOG("WorkBench");
|
////////////// For testing V
|
||||||
cPacket_NewInvalidState RainPacket;
|
cPacket_NewInvalidState RainPacket;
|
||||||
RainPacket.m_Reason = 1; //begin rain
|
RainPacket.m_Reason = 1; //begin rain
|
||||||
Send( RainPacket );
|
Send( RainPacket );
|
||||||
|
//also strike table with lightning for test purposes
|
||||||
|
cPacket_Thunderbolt ThunderboltPacket;
|
||||||
|
ThunderboltPacket.m_xLBPos = PacketData->m_PosX;
|
||||||
|
ThunderboltPacket.m_yLBPos = PacketData->m_PosY;
|
||||||
|
ThunderboltPacket.m_zLBPos = PacketData->m_PosZ;
|
||||||
|
Send( ThunderboltPacket );
|
||||||
|
////////////// For testing ^
|
||||||
bPlaceBlock = false;
|
bPlaceBlock = false;
|
||||||
cWindow* Window = new cCraftingWindow( 0, true );
|
cWindow* Window = new cCraftingWindow( 0, true );
|
||||||
m_Player->OpenWindow( Window );
|
m_Player->OpenWindow( Window );
|
||||||
@ -654,10 +663,11 @@ void cClientHandle::HandlePacket( cPacket* a_Packet )
|
|||||||
case E_BLOCK_FURNACE:
|
case E_BLOCK_FURNACE:
|
||||||
case E_BLOCK_CHEST:
|
case E_BLOCK_CHEST:
|
||||||
{
|
{
|
||||||
LOG("Chest");
|
////////////// For testing V
|
||||||
cPacket_NewInvalidState RainPacket;
|
cPacket_NewInvalidState RainPacket;
|
||||||
RainPacket.m_Reason = 2; //end rain
|
RainPacket.m_Reason = 2; //end rain
|
||||||
Send( RainPacket );
|
Send( RainPacket );
|
||||||
|
////////////// For testing ^
|
||||||
bPlaceBlock = false;
|
bPlaceBlock = false;
|
||||||
cBlockEntity* BlockEntity = m_Player->GetWorld()->GetBlockEntity( PacketData->m_PosX, PacketData->m_PosY, PacketData->m_PosZ );
|
cBlockEntity* BlockEntity = m_Player->GetWorld()->GetBlockEntity( PacketData->m_PosX, PacketData->m_PosY, PacketData->m_PosZ );
|
||||||
if( BlockEntity )
|
if( BlockEntity )
|
||||||
|
@ -1,5 +1,20 @@
|
|||||||
#include "cPacket_Thunderbolt.h"
|
#include "cPacket_Thunderbolt.h"
|
||||||
|
|
||||||
|
cPacket_Thunderbolt::cPacket_Thunderbolt( const cPacket_Thunderbolt & a_Copy )
|
||||||
|
{
|
||||||
|
m_PacketID = E_THUNDERBOLT;
|
||||||
|
m_UniqueID = 237183; //just a random Ent ID. I don't think this matters at all.
|
||||||
|
m_Unknown = true;
|
||||||
|
m_xLBPos = a_Copy.m_xLBPos;
|
||||||
|
m_yLBPos = a_Copy.m_yLBPos;
|
||||||
|
m_zLBPos = a_Copy.m_zLBPos;
|
||||||
|
printf("blot-packet %i %i %i\n", m_xLBPos,m_yLBPos,m_zLBPos);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool cPacket_Thunderbolt::Send(cSocket & a_Socket)
|
bool cPacket_Thunderbolt::Send(cSocket & a_Socket)
|
||||||
{
|
{
|
||||||
unsigned int TotalSize = c_Size;
|
unsigned int TotalSize = c_Size;
|
||||||
@ -9,9 +24,14 @@ bool cPacket_Thunderbolt::Send(cSocket & a_Socket)
|
|||||||
AppendByte ( (char)m_PacketID, Message, i );
|
AppendByte ( (char)m_PacketID, Message, i );
|
||||||
AppendInteger ( m_UniqueID, Message, i );
|
AppendInteger ( m_UniqueID, Message, i );
|
||||||
AppendBool ( m_Unknown, Message, i );
|
AppendBool ( m_Unknown, Message, i );
|
||||||
AppendInteger ( m_xLBPos, Message, i );
|
AppendInteger ( m_xLBPos*32, Message, i );
|
||||||
AppendInteger ( m_yLBPos, Message, i );
|
AppendInteger ( m_yLBPos*32, Message, i );
|
||||||
AppendInteger ( m_zLBPos, Message, i );
|
AppendInteger ( m_zLBPos*32, Message, i );
|
||||||
|
|
||||||
|
for( unsigned int iii = 1; iii < TotalSize; ++iii ){
|
||||||
|
|
||||||
|
printf("packetdata %i\n", (int)Message[iii]);
|
||||||
|
}
|
||||||
|
|
||||||
bool RetVal = !cSocket::IsSocketError( SendData( a_Socket, Message, TotalSize, 0 ) );
|
bool RetVal = !cSocket::IsSocketError( SendData( a_Socket, Message, TotalSize, 0 ) );
|
||||||
delete [] Message;
|
delete [] Message;
|
||||||
|
@ -12,7 +12,8 @@ public:
|
|||||||
, m_xLBPos( 0 )
|
, m_xLBPos( 0 )
|
||||||
, m_yLBPos( 0 )
|
, m_yLBPos( 0 )
|
||||||
, m_zLBPos( 0 )
|
, m_zLBPos( 0 )
|
||||||
{ m_PacketID = E_THUNDERBOLT;}
|
{ m_PacketID = E_THUNDERBOLT; m_Unknown = true; }
|
||||||
|
cPacket_Thunderbolt( const cPacket_Thunderbolt & a_Copy );
|
||||||
virtual cPacket* Clone() const { return new cPacket_Thunderbolt(*this); }
|
virtual cPacket* Clone() const { return new cPacket_Thunderbolt(*this); }
|
||||||
|
|
||||||
bool Send(cSocket & a_Socket);
|
bool Send(cSocket & a_Socket);
|
||||||
|
Loading…
Reference in New Issue
Block a user