(10-24-2011, 09:29 AM)FakeTruth Wrote: - Moved this thread to a more suitable forum -
nice
Watching these kids talk on the server thinking it's a bukkit server is hilarious.
The health message is definitely causing crashes. I can't see what's causing it though.
The the message "Entity was not in chunk..." comes up there's also a bit of lag the the server stops responding.
I found this in cClientHandle.cpp
Code:
case E_BLOCK_DIG:
{
cPacket_BlockDig* PacketData = reinterpret_cast<cPacket_BlockDig*>(a_Packet);
//LOG("OnBlockDig: %i %i %i Dir: %i Stat: %i", PacketData->m_PosX, PacketData->m_PosY, PacketData->m_PosZ, PacketData->m_Direction, PacketData->m_Status );
if( PacketData->m_Status == 0x04 ) // Drop block
{
m_Player->TossItem( false );
}
else
{
cWorld* World = cRoot::Get()->GetWorld();
char OldBlock = World->GetBlock(PacketData->m_PosX, PacketData->m_PosY, PacketData->m_PosZ);
char MetaData = World->GetBlockMeta(PacketData->m_PosX, PacketData->m_PosY, PacketData->m_PosZ);
bool bBroken = (PacketData->m_Status == 0x02) || g_BlockOneHitDig[(int)OldBlock];
cItem PickupItem;
if( bBroken ) // broken
{
ENUM_ITEM_ID PickupID = cBlockToPickup::ToPickup( (ENUM_BLOCK_ID)OldBlock, m_Player->GetInventory().GetEquippedItem().m_ItemID );
PickupItem.m_ItemID = PickupID;
PickupItem.m_ItemHealth = MetaData;
PickupItem.m_ItemCount = 1;
}
if(!cRoot::Get()->GetPluginManager()->CallHook( cPluginManager::E_PLUGIN_BLOCK_DIG, 2, PacketData, m_Player, &PickupItem ) )
{
if( bBroken ) // Block broken
{
if( cRoot::Get()->GetWorld()->DigBlock( PacketData->m_PosX, PacketData->m_PosY, PacketData->m_PosZ, PickupItem ) )
{
m_Player->GetInventory().GetEquippedItem().m_ItemHealth ++;
LOG("Health: %i", m_Player->GetInventory().GetEquippedItem().m_ItemHealth);
}
}
}
else
{
cRoot::Get()->GetWorld()->SendBlockTo( PacketData->m_PosX, PacketData->m_PosY, PacketData->m_PosZ, m_Player );
}
}
}
break;
I *think* that's cause by using a client nuke with a tool in hand.