1
0

cPickup doesn't use cPackets.

Also, Lua API change, OnCollectItem -> OnCollectPickup; first param is cPlayer to match other callbacks.

git-svn-id: http://mc-server.googlecode.com/svn/trunk@786 0a769ca7-a7f5-676a-18bf-c427514a06d6
This commit is contained in:
madmaxoft@gmail.com
2012-08-24 09:49:00 +00:00
parent 0c5910c4fb
commit f0fc0edd21
19 changed files with 178 additions and 84 deletions

View File

@@ -17,8 +17,6 @@
#include "cRoot.h"
#include "cTracer.h"
#include "packets/cPacket_CollectItem.h"
#include "Vector3d.h"
#include "Vector3f.h"
@@ -244,18 +242,25 @@ void cPickup::HandlePhysics(float a_Dt)
bool cPickup::CollectedBy( cPlayer* a_Dest )
{
if(m_bCollected) return false; // It's already collected!
// 800 is to long
if(m_Timer < 500.f) return false; // Not old enough
if( cRoot::Get()->GetPluginManager()->CallHook( cPluginManager::E_PLUGIN_COLLECT_ITEM, 2, this, a_Dest ) ) return false;
if( a_Dest->GetInventory().AddItem( *m_Item ) )
if (m_bCollected)
{
cPacket_CollectItem CollectItem;
CollectItem.m_CollectedID = m_UniqueID;
CollectItem.m_CollectorID = a_Dest->GetUniqueID();
cRoot::Get()->GetServer()->Broadcast( CollectItem );
return false; // It's already collected!
}
// 800 is to long
if (m_Timer < 500.f)
{
return false; // Not old enough
}
if (cRoot::Get()->GetPluginManager()->CallHookCollectPickup(a_Dest, *this))
{
return false;
}
if (a_Dest->GetInventory().AddItem(*m_Item))
{
m_World->BroadcastCollectPickup(*this, *a_Dest);
m_bCollected = true;
m_Timer = 0;