初步修复
This commit is contained in:
parent
8fc4357cc6
commit
e4714f3f0e
46705 changed files with 12004901 additions and 0 deletions
92
Server/DNGameServer/DnPropStateTrigger.cpp
Normal file
92
Server/DNGameServer/DnPropStateTrigger.cpp
Normal file
|
|
@ -0,0 +1,92 @@
|
|||
#include "StdAfx.h"
|
||||
#include "DnPropStateTrigger.h"
|
||||
#include "DnWorldActProp.h"
|
||||
#include "DnWorld.h"
|
||||
|
||||
|
||||
CDnPropStateTrigger::CDnPropStateTrigger( DnPropHandle hEntity ) : CDnPropState( hEntity )
|
||||
{
|
||||
m_iType = TRIGGER;
|
||||
}
|
||||
|
||||
CDnPropStateTrigger::~CDnPropStateTrigger(void)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
bool CDnPropStateTrigger::OnEntry( LOCAL_TIME LocalTime, float fDelta )
|
||||
{
|
||||
CDnPropState::OnEntry( LocalTime, fDelta );
|
||||
|
||||
#ifdef ENABLE_PROP_STATE_LOG
|
||||
if( m_strTriggerFuncName.empty() )
|
||||
OutputDebug( "[?? Prop FSM Log] CDnPropStateTrigger::OnEntry FuncName is NULL!\n");
|
||||
else
|
||||
{
|
||||
if( m_bUseLastOperateSetting )
|
||||
OutputDebug( "[Prop(%d) FSM Log] CDnPropStateTrigger::OnEntry FuncName \"%s\", Use last operate setting to world\n", m_hEntity->GetUniqueID(), m_strTriggerFuncName.c_str() );
|
||||
else
|
||||
OutputDebug( "[Prop(%d) FSM Log] CDnPropStateTrigger::OnEntry FuncName \"%s\"\n", m_hEntity->GetUniqueID(), m_strTriggerFuncName.c_str() );
|
||||
}
|
||||
#endif
|
||||
|
||||
if( !m_hEntity )
|
||||
return false;
|
||||
|
||||
CDnWorldActProp* pActProp = static_cast<CDnWorldActProp*>(m_hEntity.GetPointer());
|
||||
if( NULL == pActProp )
|
||||
{
|
||||
#ifdef ENABLE_PROP_CONDITION_LOG
|
||||
OutputDebug( "[?? Prop FSM Condition Log] CDnPropCondiDurability::IsSatisfy - Entity Prop is NULL!\n" );
|
||||
#endif
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
_ASSERT( !m_strTriggerFuncName.empty() );
|
||||
if( m_strTriggerFuncName.empty() )
|
||||
return false;
|
||||
|
||||
CDnWorld& World = CDnWorld::GetInstance( m_hEntity->GetRoom() );
|
||||
|
||||
AddFuncParam( "LastOperationProp", ( m_hEntity->GetMySmartPtr() ) ? m_hEntity->GetMySmartPtr()->GetCreateUniqueID() : -1 );
|
||||
for( DWORD i=0; i<m_VecParamList.size(); i++ ) {
|
||||
World.InsertTriggerEventStore( m_VecParamList[i].szParamName.c_str(), m_VecParamList[i].nValue );
|
||||
}
|
||||
|
||||
World.OnTriggerEventCallback( m_strTriggerFuncName.c_str(), LocalTime, 0.f );
|
||||
|
||||
m_VecParamList.clear();
|
||||
pActProp->ResetOperateState();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool CDnPropStateTrigger::OnProcess( LOCAL_TIME LocalTime, float fDelta )
|
||||
{
|
||||
CDnPropState::OnProcess( LocalTime, fDelta );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool CDnPropStateTrigger::OnLeave( LOCAL_TIME LocalTime, float fDelta )
|
||||
{
|
||||
CDnPropState::OnLeave( LocalTime, fDelta );
|
||||
|
||||
#ifdef ENABLE_PROP_STATE_LOG
|
||||
OutputDebug( "[Prop(%d) FSM Log] CDnPropStateTrigger::OnLeave\n", m_hEntity->GetUniqueID() );
|
||||
#endif
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void CDnPropStateTrigger::AddFuncParam( const char *pParamName, int nValue )
|
||||
{
|
||||
ParamStruct Struct;
|
||||
Struct.szParamName = pParamName;
|
||||
Struct.nValue = nValue;
|
||||
|
||||
m_VecParamList.push_back( Struct );
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue