当前位置: 首页>>代码示例>>C++>>正文


C++ CServerDE::RemoveObject方法代码示例

本文整理汇总了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);
}
开发者ID:Arc0re,项目名称:lithtech,代码行数:34,代码来源:ParticleSystem.cpp

示例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; }
}
开发者ID:Arc0re,项目名称:lithtech,代码行数:17,代码来源:Projectile.cpp

示例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);
	}
}
开发者ID:Arc0re,项目名称:lithtech,代码行数:57,代码来源:Trigger.cpp

示例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);
}
开发者ID:Arc0re,项目名称:lithtech,代码行数:57,代码来源:ClientLightFX.cpp

示例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);
}
开发者ID:Arc0re,项目名称:lithtech,代码行数:55,代码来源:Cat.cpp

示例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);
}
开发者ID:bsmr-games,项目名称:Blood2,代码行数:50,代码来源:HandWeaponModel.cpp

示例7: ToggleBoundingBoxes

void Trigger::ToggleBoundingBoxes()
{
	CServerDE* pServerDE = GetServerDE();
	if (!pServerDE) return;

	if (m_hBoundingBox)
	{
		pServerDE->RemoveObject(m_hBoundingBox);
		m_hBoundingBox = DNULL;
	}
	else
	{
		CreateBoundingBox();
	}
}
开发者ID:Arc0re,项目名称:lithtech,代码行数:15,代码来源:Trigger.cpp

示例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);
}
开发者ID:Arc0re,项目名称:lithtech,代码行数:15,代码来源:ObjectiveTrigger.cpp

示例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);
}
开发者ID:bsmr-games,项目名称:Blood2,代码行数:48,代码来源:DefenseGlobeLegs.cpp

示例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;
	}
}
开发者ID:Arc0re,项目名称:lithtech,代码行数:47,代码来源:Gabriel.cpp

示例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);
}
开发者ID:bsmr-games,项目名称:Blood2,代码行数:47,代码来源:FireFX.cpp

示例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();
}
开发者ID:Arc0re,项目名称:lithtech,代码行数:18,代码来源:Gabriel.cpp

示例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);
}
开发者ID:Arc0re,项目名称:lithtech,代码行数:42,代码来源:ClientExplosionSFX.cpp

示例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);
}
开发者ID:Arc0re,项目名称:lithtech,代码行数:41,代码来源:LightFX.cpp

示例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);
}
开发者ID:Arc0re,项目名称:lithtech,代码行数:39,代码来源:Projectile.cpp


注:本文中的CServerDE::RemoveObject方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。