本文整理汇总了C++中CServerDE::RemoveObject方法的典型用法代码示例。如果您正苦于以下问题:C++ CServerDE::RemoveObject方法的具体用法?C++ CServerDE::RemoveObject怎么用?C++ CServerDE::RemoveObject使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CServerDE
的用法示例。
在下文中一共展示了CServerDE::RemoveObject方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: EngineMessageFn
DDWORD ParticleSystem::EngineMessageFn(DDWORD messageID, void *pData, DFLOAT fData)
{
switch(messageID)
{
case MID_PRECREATE:
{
if (fData == 1.0f || fData == 2.0f)
{
ReadProp((ObjectCreateStruct *)pData);
}
break;
}
case MID_INITIALUPDATE:
{
InitialUpdate((DVector *)pData);
break;
}
case MID_UPDATE:
{
CServerDE* pServerDE = GetServerDE();
if (pServerDE)
{
pServerDE->RemoveObject(m_hObject);
}
break;
}
default : break;
}
return CClientSFX::EngineMessageFn(messageID, pData, fData);
}
示例2:
CProjectile::~CProjectile()
{
CServerDE* pServerDE = BaseClass::GetServerDE();
if (!pServerDE) return;
if (m_hLight)
pServerDE->RemoveObject(m_hLight);
if (m_hSmokeTrail)
pServerDE->RemoveObject(m_hSmokeTrail);
if (m_hstrShockwaveFilename)
pServerDE->FreeString(m_hstrShockwaveFilename);
if (m_hSound)
{ pServerDE->KillSound(m_hSound); m_hSound = DNULL; }
}
示例3: GetServerDE
Trigger::~Trigger()
{
CServerDE* pServerDE = GetServerDE();
if (!pServerDE) return;
for (int i=0; i < MAX_NUM_MESSAGES; i++)
{
if (m_hstrTargetName[i])
{
pServerDE->FreeString(m_hstrTargetName[i]);
}
if (m_hstrMessageName[i])
{
pServerDE->FreeString(m_hstrMessageName[i]);
}
}
if (m_hstrMessageTouch)
{
pServerDE->FreeString(m_hstrMessageTouch);
}
if (m_hstrActivationSound)
{
pServerDE->FreeString(m_hstrActivationSound);
}
if (m_hstrAttachToObject)
{
pServerDE->FreeString(m_hstrAttachToObject);
}
if (m_hstrUnlockKey)
{
pServerDE->FreeString(m_hstrUnlockKey);
}
if (m_hstrAccessDeniedSound)
{
pServerDE->FreeString(m_hstrAccessDeniedSound);
}
if (m_hstrAccessGrantedSound)
{
pServerDE->FreeString(m_hstrAccessGrantedSound);
}
if (m_hstrAIName)
{
pServerDE->FreeString(m_hstrAIName);
}
if (m_hBoundingBox)
{
pServerDE->RemoveObject(m_hBoundingBox);
}
}
示例4: EngineMessageFn
DDWORD ClientLightFX::EngineMessageFn(DDWORD messageID, void *pData, DFLOAT fData)
{
switch(messageID)
{
case MID_PRECREATE:
{
DDWORD dwRet = B2BaseClass::EngineMessageFn(messageID, pData, fData);
if (fData == PRECREATE_WORLDFILE || fData == PRECREATE_STRINGPROP)
{
m_bDynamic = DFALSE;
ReadProp((ObjectCreateStruct*)pData);
}
PostPropRead((ObjectCreateStruct*)pData);
return dwRet;
}
break;
case MID_INITIALUPDATE:
{
if (fData != INITIALUPDATE_SAVEGAME)
{
InitialUpdate((DVector *)pData);
}
CacheFiles();
break;
}
case MID_UPDATE:
{
if (!Update())
{
CServerDE* pServerDE = BaseClass::GetServerDE();
if (pServerDE) 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 B2BaseClass::EngineMessageFn(messageID, pData, fData);
}
示例5: ObjectMessageFn
DDWORD Cat::ObjectMessageFn(HOBJECT hSender, DDWORD messageID, HMESSAGEREAD hRead)
{
switch(messageID)
{
case MID_DAMAGE:
{
CServerDE* pServerDE = GetServerDE();
if (!pServerDE) break;
DVector vDir;
pServerDE->ReadFromMessageVector(hRead, &vDir);
DFLOAT fDamage = pServerDE->ReadFromMessageFloat(hRead);
DamageType eType = (DamageType)pServerDE->ReadFromMessageByte(hRead);
HOBJECT hHeHitMe = pServerDE->ReadFromMessageObject(hRead);
if (eType == DT_SQUEAKY)
{
if (m_hstrSqueakedAtSound)
{
char* pSound = pServerDE->GetStringData(m_hstrSqueakedAtSound);
if (pSound) PlaySoundFromObject(m_hObject, pSound, m_fSoundRadius, SOUNDPRIORITY_MISC_MEDIUM );
}
// If we're supposed to trigger something, trigger it here
if (m_hstrSqueakyTarget && m_hstrSqueakyMessage)
{
SendTriggerMsgToObjects(this, m_hstrSqueakyTarget, m_hstrSqueakyMessage);
}
}
else
{
if (m_hstrDeathSound)
{
DVector vPos;
pServerDE->GetObjectPos(m_hObject, &vPos);
char* pSound = pServerDE->GetStringData(m_hstrDeathSound);
if (pSound) PlaySoundFromPos(&vPos, pSound, m_fSoundRadius, SOUNDPRIORITY_MISC_MEDIUM );
}
if (m_hstrDeathTriggerTarget && m_hstrDeathTriggerMessage)
{
SendTriggerMsgToObjects(this, m_hstrDeathTriggerTarget, m_hstrDeathTriggerMessage);
}
pServerDE->RemoveObject(m_hObject);
}
break;
}
default : break;
}
return InventoryItem::ObjectMessageFn(hSender, messageID, hRead);
}
示例6: EngineMessageFn
DDWORD CHandWeaponModel::EngineMessageFn(DDWORD messageID, void *pData, DFLOAT lData)
{
CServerDE* pServerDE = GetServerDE();
if (!pServerDE) return 0;
switch(messageID)
{
case MID_PRECREATE:
{
ObjectCreateStruct *ocs = (ObjectCreateStruct*)pData;
m_dwClientID = ocs->m_UserData;
if(ocs->m_NextUpdate == 0.02f)
m_bLeftHand = DTRUE;
ocs = DNULL;
}
case MID_UPDATE:
{
if (!Update())
pServerDE->RemoveObject(m_hObject);
break;
}
case MID_INITIALUPDATE:
{
pServerDE->SetNextUpdate(m_hObject, 0.01f);
DVector vDims;
VEC_SET(vDims, 0.1f, 0.1f, 0.1f);
pServerDE->SetObjectDims(m_hObject, &vDims);
if(m_dwClientID)
{
HMESSAGEWRITE hMsg = pServerDE->StartSpecialEffectMessage(this);
pServerDE->WriteToMessageByte(hMsg, SFX_WEAPONHANDMODEL_ID);
pServerDE->WriteToMessageDWord(hMsg, m_dwClientID);
pServerDE->WriteToMessageByte(hMsg, (m_bLeftHand << 1) | DFALSE);
pServerDE->EndMessage2(hMsg, MESSAGE_GUARANTEED);
}
break;
}
default:
break;
}
return BaseClass::EngineMessageFn(messageID, pData, lData);
}
示例7: ToggleBoundingBoxes
void Trigger::ToggleBoundingBoxes()
{
CServerDE* pServerDE = GetServerDE();
if (!pServerDE) return;
if (m_hBoundingBox)
{
pServerDE->RemoveObject(m_hBoundingBox);
m_hBoundingBox = DNULL;
}
else
{
CreateBoundingBox();
}
}
示例8: Trigger
void ObjectiveTrigger::Trigger()
{
CServerDE* pServerDE = GetServerDE();
if (!pServerDE) return;
m_bTriggered = DTRUE;
HMESSAGEWRITE hMessage = pServerDE->StartMessage(DNULL, MID_COMMAND_OBJECTIVE);
pServerDE->WriteToMessageHString (hMessage, m_hAddObjectives);
pServerDE->WriteToMessageHString (hMessage, m_hRemoveObjectives);
pServerDE->WriteToMessageHString (hMessage, m_hCompletedObjectives);
pServerDE->EndMessage (hMessage);
pServerDE->RemoveObject(m_hObject);
}
示例9: EngineMessageFn
DDWORD DefenseGlobeLegs::EngineMessageFn(DDWORD messageID, void *pData, DFLOAT fData)
{
switch(messageID)
{
case MID_UPDATE:
{
if (!Update((DVector *)pData) )
{
CServerDE* pServerDE = GetServerDE();
if (!pServerDE) break;
pServerDE->RemoveObject(m_hObject);
}
}
break;
case MID_TOUCHNOTIFY:
{
ObjectTouch((HOBJECT)pData);
}
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);
PostPropRead((ObjectCreateStruct*)pData);
return dwRet;
}
case MID_INITIALUPDATE:
{
InitialUpdate((DVector *)pData);
}
break;
default : break;
}
return B2BaseClass::EngineMessageFn(messageID, pData, fData);
}
示例10: CreateShield
void Gabriel::CreateShield()
{
CServerDE* pServerDE = GetServerDE();
if (!pServerDE || m_hShield) return;
ObjectCreateStruct theStruct;
INIT_OBJECTCREATESTRUCT(theStruct);
DVector vPos;
pServerDE->GetObjectPos(m_hObject, &vPos);
VEC_COPY(theStruct.m_Pos, vPos);
SAFE_STRCPY(theStruct.m_Filename, "Models\\PV_Weapons\\SpiderExplosionCore.abc");
SAFE_STRCPY(theStruct.m_SkinName, "SpecialFX\\Explosions\\SpiderCore.dtx");
theStruct.m_ObjectType = OT_MODEL;
theStruct.m_Flags = FLAG_VISIBLE | FLAG_GOTHRUWORLD;
HCLASS hClass = pServerDE->GetClass("BaseClass");
LPBASECLASS pModel = pServerDE->CreateObject(hClass, &theStruct);
if (!pModel) return;
m_hShield = pModel->m_hObject;
DVector vScale;
VEC_SET(vScale, 150.0f, 300.0f, 150.0f);
pServerDE->ScaleObject(m_hShield, &vScale);
pServerDE->SetObjectColor(m_hShield, 1.0f, 0.5f, 0.0f, 0.5f);
// Attach the sheild model to Gabriel...
DVector vOffset;
VEC_INIT(vOffset);
DRotation rOffset;
ROT_INIT(rOffset);
HATTACHMENT hAttachment;
DRESULT dRes = pServerDE->CreateAttachment(m_hObject, m_hShield, DNULL,
&vOffset, &rOffset, &hAttachment);
if (dRes != DE_OK)
{
pServerDE->RemoveObject(m_hShield);
m_hShield = DNULL;
}
}
示例11: EngineMessageFn
DDWORD FireFX::EngineMessageFn(DDWORD messageID, void *pData, DFLOAT fData)
{
switch(messageID)
{
case MID_UPDATE:
{
if (!Update((DVector *)pData))
{
CServerDE* pServerDE = BaseClass::GetServerDE();
if (!pServerDE) return 0;
pServerDE->RemoveObject(m_hObject);
}
break;
}
case MID_PRECREATE:
{
if (fData == 1.0f)
{
ReadProp((ObjectCreateStruct*)pData);
}
break;
}
case MID_INITIALUPDATE:
{
InitialUpdate((DVector *)pData);
break;
}
// If we created a link to the target, this will tell us that it no longer exists
case MID_LINKBROKEN:
{
HOBJECT hObj = (HOBJECT)pData;
if (m_hLinkObject == hObj)
{
m_hLinkObject = DNULL;
}
}
break;
default : break;
}
return B2BaseClass::EngineMessageFn(messageID, pData, fData);
}
示例12: GetServerDE
Gabriel::~Gabriel()
{
CServerDE* pServerDE = GetServerDE();
if (!pServerDE) return;
if (m_hShield)
{
HATTACHMENT hAttachment;
if (pServerDE->FindAttachment(m_hObject, m_hShield, &hAttachment) == DE_OK)
{
pServerDE->RemoveAttachment(hAttachment);
}
pServerDE->RemoveObject(m_hShield);
m_hShield = DNULL;
}
StopShieldSound();
}
示例13: 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);
}
示例14: EngineMessageFn
DDWORD LightFX::EngineMessageFn(DDWORD messageID, void *pData, DFLOAT fData)
{
switch(messageID)
{
case MID_PRECREATE:
{
DDWORD dwRet = BaseClass::EngineMessageFn(messageID, pData, fData);
if (fData == 1.0f || fData == 2.0f)
{
m_bDynamic = DFALSE;
ReadProp((ObjectCreateStruct*)pData);
}
PostPropRead((ObjectCreateStruct*)pData);
return dwRet;
}
break;
case MID_INITIALUPDATE:
{
InitialUpdate((DVector *)pData);
break;
}
case MID_UPDATE:
{
if (!Update())
{
CServerDE* pServerDE = BaseClass::GetServerDE();
if (pServerDE) pServerDE->RemoveObject(m_hObject);
}
}
break;
default : break;
}
return BaseClass::EngineMessageFn(messageID, pData, fData);
}
示例15: HandleTouch
void CProjectile::HandleTouch(HOBJECT hObj)
{
CServerDE* pServerDE = BaseClass::GetServerDE();
if (!pServerDE) return;
if (hObj == m_hFiredFrom) return; // Let it get out of our bounding box...
// return if it hit a non solid object
if (hObj != pServerDE->GetWorldObject() && !(pServerDE->GetObjectFlags(hObj) & FLAG_SOLID)) // Ignore non-solid objects
return;
// return if it hit another of this same class
if (pServerDE->GetObjectClass(hObj) == pServerDE->GetObjectClass(m_hObject))
return;
// See if we hit the sky...
HCLASS hClassObj = pServerDE->GetObjectClass(hObj);
HCLASS hClassWorld = pServerDE->GetObjectClass(pServerDE->GetWorldObject());
if (pServerDE->IsKindOf(hClassObj, hClassWorld))
{
CollisionInfo info;
pServerDE->GetLastCollision(&info);
SurfaceType eType = GetSurfaceType(info.m_hObject, info.m_hPoly);
if (eType == SURFTYPE_SKY)
{
pServerDE->RemoveObject(m_hObject);
return;
}
}
m_bExplode = DTRUE;
m_hHitObject = hObj;
// GK 8/4/98
// Keep a link to this object in case it blows up for some reason (so m_hHitObject is never invalid)
pServerDE->CreateInterObjectLink(m_hObject, hObj);
}