本文整理汇总了C++中CServerDE::GetObjectUserFlags方法的典型用法代码示例。如果您正苦于以下问题:C++ CServerDE::GetObjectUserFlags方法的具体用法?C++ CServerDE::GetObjectUserFlags怎么用?C++ CServerDE::GetObjectUserFlags使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CServerDE
的用法示例。
在下文中一共展示了CServerDE::GetObjectUserFlags方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: HandleTrigger
void VolumeBrush::HandleTrigger(HOBJECT hSender, HSTRING hMsg)
{
CServerDE* pServerDE = GetServerDE();
if (!pServerDE) return;
char* pMsg = pServerDE->GetStringData(hMsg);
if (!pMsg || !pMsg[0]) return;
DBOOL bToggle = DFALSE;
if (_mbsicmp((const unsigned char*)pMsg, (const unsigned char*)TRIGGER_MSG_TOGGLE) == 0)
{
bToggle = DTRUE;
}
if ((bToggle && m_bHidden) || _mbsicmp((const unsigned char*)pMsg, (const unsigned char*)TRIGGER_MSG_ON) == 0)
{
DDWORD dwFlags;
pServerDE->SetObjectFlags(m_hObject, m_dwSaveFlags);
dwFlags = pServerDE->GetObjectUserFlags(m_hObject);
pServerDE->SetObjectUserFlags(m_hObject, dwFlags | USRFLG_VISIBLE);
if (m_hSurfaceObj)
{
dwFlags = pServerDE->GetObjectUserFlags(m_hSurfaceObj);
pServerDE->SetObjectUserFlags(m_hSurfaceObj, dwFlags | USRFLG_VISIBLE);
}
m_bHidden = DFALSE;
}
else if ((bToggle && !m_bHidden) || _mbsicmp((const unsigned char*)pMsg, (const unsigned char*)TRIGGER_MSG_OFF) == 0)
{
DDWORD dwFlags;
pServerDE->SetObjectFlags(m_hObject, m_dwSaveFlags & ~FLAG_VISIBLE);
dwFlags = pServerDE->GetObjectUserFlags(m_hObject);
pServerDE->SetObjectUserFlags(m_hObject, dwFlags & ~USRFLG_VISIBLE);
if (m_hSurfaceObj)
{
dwFlags = pServerDE->GetObjectUserFlags(m_hSurfaceObj);
pServerDE->SetObjectUserFlags(m_hSurfaceObj, dwFlags & ~USRFLG_VISIBLE);
}
m_bHidden = DTRUE;
}
}
示例2: InitialUpdate
void Rain::InitialUpdate(DVector *pMovement)
{
CServerDE* pServerDE = GetServerDE();
if (!pServerDE) return;
DVector vPos;
pServerDE->GetObjectPos(m_hObject, &vPos);
// Mark this object as savable
DDWORD dwFlags = pServerDE->GetObjectUserFlags(m_hObject);
dwFlags |= USRFLG_SAVEABLE;
pServerDE->SetObjectUserFlags(m_hObject, dwFlags);
// Tell the clients about the Rain
if (!m_bTriggered)
SendEffectMessage();
}
示例3: EngineMessageFn
DDWORD CClientExplosionSFX::EngineMessageFn(DDWORD messageID, void *pData, DFLOAT fData)
{
CServerDE* pServerDE = GetServerDE();
if (!pServerDE) return 0;
switch(messageID)
{
case MID_PRECREATE:
{
ReadProp((ObjectCreateStruct*)pData);
break;
}
case MID_INITIALUPDATE:
{
pServerDE->SetNextUpdate(m_hObject, 0.1f);
pServerDE->GetObjectPos(m_hObject, &m_vPos);
DDWORD dwUserFlags = pServerDE->GetObjectUserFlags(m_hObject);
pServerDE->SetObjectUserFlags(m_hObject, dwUserFlags | USRFLG_SAVEABLE);
break;
}
case MID_UPDATE:
{
pServerDE->SetNextUpdate(m_hObject, 0.1f);
if(m_bTriggered) pServerDE->RemoveObject(m_hObject);
break;
}
case MID_SAVEOBJECT:
Save((HMESSAGEWRITE)pData, (DDWORD)fData);
break;
case MID_LOADOBJECT:
Load((HMESSAGEREAD)pData, (DDWORD)fData);
break;
default : break;
}
return CClientSFX::EngineMessageFn(messageID, pData, fData);
}
示例4: InitialUpdate
DBOOL CProjectile::InitialUpdate(DVector*)
{
CServerDE* pServerDE = BaseClass::GetServerDE();
if (!pServerDE) return DFALSE;
pServerDE->SetNextUpdate(m_hObject, (DFLOAT)0.001);
m_fStartTime = pServerDE->GetTime();
pServerDE->SetObjectDims(m_hObject, &m_vDims);
pServerDE->SetForceIgnoreLimit(m_hObject, 0.0f);
pServerDE->SetFrictionCoefficient(m_hObject, 18.0);
pServerDE->ScaleObject(m_hObject, &m_vInitScale);
// Initialize damage
m_damage.Init(m_hObject);
m_damage.SetHitPoints(5.0f); // A minor number of hitpoints
m_damage.SetApplyDamagePhysics(DFALSE);
// Mark this object as savable
DDWORD dwFlags = pServerDE->GetObjectUserFlags(m_hObject);
dwFlags |= USRFLG_SAVEABLE | USRFLG_SINGULARITY_ATTRACT;
pServerDE->SetObjectUserFlags(m_hObject, dwFlags);
// Create a particle trail
if(m_dwTrailFXID)
{
HMESSAGEWRITE hMessage = pServerDE->StartSpecialEffectMessage(this);
pServerDE->WriteToMessageByte(hMessage, SFX_OBJECTFX_ID);
pServerDE->WriteToMessageObject(hMessage, m_hObject);
pServerDE->WriteToMessageVector(hMessage, &m_vTrailOffset);
pServerDE->WriteToMessageFloat(hMessage, m_fTrailScale);
pServerDE->WriteToMessageDWord(hMessage, m_dwTrailScaleFlags);
pServerDE->WriteToMessageDWord(hMessage, m_dwTrailFXID);
pServerDE->WriteToMessageDWord(hMessage, m_dwTrailFXFlags);
pServerDE->EndMessage2(hMessage, MESSAGE_GUARANTEED);
}
return DTRUE;
}
示例5: Init
DBOOL ClientLightFX::Init()
{
CServerDE* pServerDE = GetServerDE();
if (!pServerDE) return DFALSE;
VEC_DIVSCALAR(m_vColor, m_vColor, 511.0f);
m_fStartTime = pServerDE->GetTime();
m_fIntensityPhase = DEG2RAD(m_fIntensityPhase);
m_fRadiusPhase = DEG2RAD(m_fRadiusPhase);
if (m_bOn)
{
DDWORD dwUsrFlags = pServerDE->GetObjectUserFlags(m_hObject);
dwUsrFlags |= USRFLG_VISIBLE | USRFLG_SAVEABLE;
pServerDE->SetObjectUserFlags(m_hObject, dwUsrFlags);
}
return DTRUE;
}
示例6: EngineMessageFn
DDWORD CDestructableBrush::EngineMessageFn(DDWORD messageID, void *pData, DFLOAT fData)
{
CServerDE* pServerDE = GetServerDE();
switch(messageID)
{
case MID_UPDATE:
if (m_bDestructable && m_damage.IsDead())
{
DVector vDir;
m_damage.GetLastDamageDirection(&vDir);
m_Debris.Create(vDir, m_damage.GetLastDamageAmount());
CreateWorldModelDebris();
pServerDE->RemoveObject(m_hObject);
}
break;
case MID_PRECREATE:
{
// Need to call base class to have the object name read in before
// we call PostPropRead()
DDWORD dwRet = B2BaseClass::EngineMessageFn(messageID, pData, fData);
if (fData == PRECREATE_WORLDFILE || fData == PRECREATE_STRINGPROP)
{
ReadProp((ObjectCreateStruct*)pData);
}
PostPropRead((ObjectCreateStruct*)pData);
return dwRet;
}
break;
case MID_INITIALUPDATE:
{
if (fData != INITIALUPDATE_SAVEGAME)
{
m_damage.Init(m_hObject);
m_damage.SetHitPoints(m_fInitHitPoints);
m_damage.SetMass(m_fMass);
m_Debris.Init(m_hObject);
pServerDE->SetNextUpdate(m_hObject, 0.000f);
m_damage.SetApplyDamagePhysics(m_bPushable);
if (m_bPushable)
{
pServerDE->SetBlockingPriority(m_hObject, BLOCKPRIORITY_PUSHABLE);
// Mark this object as moveable
DDWORD dwUsrFlags = pServerDE->GetObjectUserFlags(m_hObject);
dwUsrFlags |= USRFLG_MOVEABLE;
pServerDE->SetObjectUserFlags(m_hObject, dwUsrFlags);
}
else
{
pServerDE->SetBlockingPriority(m_hObject, BLOCKPRIORITY_NONPUSHABLE);
}
// Mark this object as savable
DDWORD dwFlags = g_pServerDE->GetObjectUserFlags(m_hObject);
dwFlags |= USRFLG_SAVEABLE;
dwFlags |= (m_eSurfType << 24);
g_pServerDE->SetObjectUserFlags(m_hObject, dwFlags);
}
}
break;
case MID_SAVEOBJECT:
Save((HMESSAGEWRITE)pData, (DDWORD)fData);
break;
case MID_LOADOBJECT:
Load((HMESSAGEREAD)pData, (DDWORD)fData);
break;
default : break;
}
return B2BaseClass::EngineMessageFn(messageID, pData, fData);
}