本文整理汇总了C++中CServerDE::CreateObject方法的典型用法代码示例。如果您正苦于以下问题:C++ CServerDE::CreateObject方法的具体用法?C++ CServerDE::CreateObject怎么用?C++ CServerDE::CreateObject使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CServerDE
的用法示例。
在下文中一共展示了CServerDE::CreateObject方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: CreateBoundingBox
void Trigger::CreateBoundingBox()
{
CServerDE* pServerDE = GetServerDE();
if (!pServerDE) 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\\Props\\1x1_square.abc");
// strcpy(theStruct.m_SkinName, "SpecialFX\\smoke.dtx");
theStruct.m_Flags = FLAG_VISIBLE;
HCLASS hClass = pServerDE->GetClass("Model");
LPBASECLASS pModel = pServerDE->CreateObject(hClass, &theStruct);
if (pModel)
{
m_hBoundingBox = pModel->m_hObject;
DVector vDims;
pServerDE->GetObjectDims(m_hObject, &vDims);
DVector vScale;
VEC_DIVSCALAR(vScale, vDims, 0.5f);
pServerDE->ScaleObject(m_hBoundingBox, &vScale);
}
pServerDE->SetObjectColor(m_hBoundingBox, GetRandom(0.5f, 1.0f),
GetRandom(0.5f, 1.0f), GetRandom(0.5f, 1.0f), 1.0f);
}
示例2: DebugDrawPath
void CMovement::DebugDrawPath()
{
CServerDE* pServerDE = BaseClass::GetServerDE();
if (!pServerDE) return;
HCLASS hClass = pServerDE->GetClass( "CClientDebugLine" );
if( !hClass ) return;
ObjectCreateStruct ocStruct;
INIT_OBJECTCREATESTRUCT(ocStruct);
VEC_COPY(ocStruct.m_Pos, m_vPos);
ROT_COPY(ocStruct.m_Rotation, m_rRot);
DLink* pLink1 = m_PathList.m_Head.m_pNext;
DLink* pLink2 = pLink1->m_pNext;
while(pLink1->m_pData && pLink2->m_pData)
{
CClientDebugLine* pDebugline = (CClientDebugLine*)pServerDE->CreateObject(hClass, &ocStruct);
pDebugline->Setup((DVector*)pLink1->m_pData, (DVector*)pLink2->m_pData);
pLink1 = pLink1->m_pNext;
pLink2 = pLink2->m_pNext;
}
return;
}
示例3: AddLight
void CProjectile::AddLight(DFLOAT fRadius, DFLOAT fRed, DFLOAT fGreen, DFLOAT fBlue)
{
CServerDE* pServerDE = BaseClass::GetServerDE();
if (!pServerDE) return;
m_vLightColor.x = fRed;
m_vLightColor.y = fGreen;
m_vLightColor.z = fBlue;
if (fRadius)
{
ObjectCreateStruct ocStruct;
INIT_OBJECTCREATESTRUCT(ocStruct);
ocStruct.m_Flags = FLAG_VISIBLE;
ocStruct.m_ObjectType = OT_LIGHT;
HCLASS hClass = pServerDE->GetClass("BaseClass");
LPBASECLASS pFlash = pServerDE->CreateObject(hClass, &ocStruct);
if (pFlash)
{
m_hLight = pFlash->m_hObject;
pServerDE->SetLightRadius(m_hLight, fRadius);
pServerDE->SetLightColor(m_hLight, m_vLightColor.x, m_vLightColor.y, m_vLightColor.z);
}
}
}
示例4: AddSmokeTrail
void CProjectile::AddSmokeTrail(DVector vVel)
{
CServerDE* pServerDE = BaseClass::GetServerDE();
if (!pServerDE) return;
ObjectCreateStruct theStruct;
INIT_OBJECTCREATESTRUCT(theStruct);
DVector vPos;
pServerDE->GetObjectPos(m_hObject, &vPos);
VEC_COPY(theStruct.m_Pos, vPos);
HCLASS hClass = pServerDE->GetClass("CClientSmokeTrail");
CClientSmokeTrail* pTrail = DNULL;
if (hClass)
{
pTrail = (CClientSmokeTrail*)pServerDE->CreateObject(hClass, &theStruct);
}
if (pTrail)
{
pTrail->Setup(vVel, DTRUE);
m_hSmokeTrail = pTrail->m_hObject;
}
}
示例5: AddSparks
void CProjectile::AddSparks(DVector vPos, DVector vNormal, DFLOAT fDamage, HOBJECT hObject)
{
CServerDE* pServerDE = BaseClass::GetServerDE();
if (!pServerDE) return;
ObjectCreateStruct ocStruct;
INIT_OBJECTCREATESTRUCT(ocStruct);
VEC_COPY(ocStruct.m_Pos, vPos);
HCLASS hClass = pServerDE->GetClass("CClientSparksSFX");
CClientSparksSFX *pSpark = DNULL;
if (hClass)
{
pSpark = (CClientSparksSFX *)pServerDE->CreateObject(hClass, &ocStruct);
}
if (pSpark)
{
DVector vColor1, vColor2;
char* pFile;
DBYTE nSparks = (DBYTE)fDamage;
SurfaceType eType = GetSurfaceType(hObject, DNULL);
switch(eType)
{
case SURFTYPE_FLESH:
{
VEC_SET(vColor1, 200.0f, 0.0f, 0.0f);
VEC_SET(vColor2, 255.0f, 0.0f, 0.0f);
pFile = "spritetextures\\particle1.dtx";
pSpark->Setup(&vNormal, &vColor1, &vColor2, pFile, nSparks, 0.6f, 2.0f, 500.0f);
break;
}
default:
{
VEC_SET(vColor1, 200.0f, 200.0, 200.0f);
VEC_SET(vColor2, 200.0f, 200.0f, 0.0f);
pFile = "spritetextures\\particle1.dtx";
pSpark->Setup(&vNormal, &vColor1, &vColor2, pFile, nSparks, 0.4f, 2.0f, 500.0f);
break;
}
}
}
return;
}
示例6: CreateSurface
void VolumeBrush::CreateSurface()
{
CServerDE* pServerDE = GetServerDE();
if (!pServerDE) return;
ObjectCreateStruct theStruct;
INIT_OBJECTCREATESTRUCT(theStruct);
DVector vPos, vDims, vScale;
VEC_INIT(vScale);
pServerDE->GetObjectDims(m_hObject, &vDims);
pServerDE->GetObjectPos(m_hObject, &vPos);
DRotation rRot;
pServerDE->GetObjectRotation(m_hObject, &rRot);
VEC_COPY(m_vLastPos, vPos);
vPos.y += vDims.y - (m_fSurfaceHeight/2.0f);
VEC_COPY(theStruct.m_Pos, vPos);
ROT_COPY(theStruct.m_Rotation, rRot);
HCLASS hClass = pServerDE->GetClass("PolyGrid");
PolyGrid* pSurface = DNULL;
if (hClass)
{
pSurface = (PolyGrid *)pServerDE->CreateObject(hClass, &theStruct);
}
if (pSurface)
{
m_hSurfaceObj = pSurface->m_hObject;
vDims.y = m_fSurfaceHeight;
DFLOAT fXPan = 1.0f + (m_vCurrent.x * 0.01f);
DFLOAT fYPan = 1.0f + (m_vCurrent.y * 0.01f);
pSurface->Setup(&vDims, &m_vSurfaceColor1, &m_vSurfaceColor2,
m_hstrSurfaceSprite, m_fXScaleMin, m_fXScaleMax,
m_fYScaleMin, m_fYScaleMax, m_fXScaleDuration,
m_fYScaleDuration, fXPan, fYPan, m_fSurfaceAlpha,
m_dwNumSurfacePolies);
// pServerDE->SetObjectColor(m_hSurfaceObj,1.0f,0,0,0.1f);
}
}
示例7: 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;
}
}
示例8: Update
//.........这里部分代码省略.........
VEC_MULSCALAR(vDims, vDims, 0.8f);
DFLOAT m_fForwardOffset = pServerDE->Random(-vDims.x, vDims.x);
DFLOAT m_fUpOffset = pServerDE->Random(-vDims.y, vDims.y/2.0f);
DFLOAT m_fRightOffset = pServerDE->Random(-vDims.z, vDims.z);
VEC_MULSCALAR(vTemp, m_vForward, m_fForwardOffset);
VEC_ADD(vPos, vPos, vTemp);
// vPos is a point in front of you.
// vDir is a point in front of you, but down
VEC_COPY(vDir, vPos);
vDir.y = vDir.y - m_fUpOffset;
vDir.x = vDir.x - m_fRightOffset;
vDir.z = vDir.z - m_fForwardOffset;
VEC_COPY(vPos, vDir);
ObjectCreateStruct theStruct;
INIT_OBJECTCREATESTRUCT(theStruct);
theStruct.m_Flags = FLAG_VISIBLE;
theStruct.m_ObjectType = OT_SPRITE;
VEC_COPY(theStruct.m_Pos, vPos);
theStruct.m_SkinName[0] = '\0';
theStruct.m_NextUpdate = 0.0f;
_mbscpy((unsigned char*)theStruct.m_Filename, (const unsigned char*)"Sprites\\gibflame.spr");
VEC_COPY(theStruct.m_Scale, m_vScale)
HCLASS hClass = pServerDE->GetClass("BaseClass");
if (hClass)
{
LPBASECLASS pSprite = pServerDE->CreateObject(hClass, &theStruct);
m_hSprite[x] = pSprite->m_hObject;
if (!m_hLinkObject) return DFALSE;
DVector vVel;
pServerDE->GetVelocity(m_hLinkObject, &vVel);
pServerDE->SetVelocity(pSprite->m_hObject, &vVel);
}
// Add Smoke
/* {
ObjectCreateStruct theStruct;
INIT_OBJECTCREATESTRUCT(theStruct);
pServerDE->GetObjectPos(m_hSprite[x], &vPos);
vPos.y = vPos.y + 5;
VEC_COPY(theStruct.m_Pos, vPos);
HCLASS hClass = pServerDE->GetClass("CClientSmokeTrail");
CClientSmokeTrail* pTrail = DNULL;
if (hClass)
{
pTrail = (CClientSmokeTrail*)pServerDE->CreateObject(hClass, &theStruct);
}
if (pTrail)
{
DVector vVel;
示例9: FirstUpdate
void FireFX::FirstUpdate()
{
CServerDE* pServerDE = BaseClass::GetServerDE();
if (!pServerDE) return;
// Can Create Up to 5 Fire Object at a Time....
// Create Random durations for each Flame
for (int x=0; x<MAXFIRES; x++)
{
m_fDuration[x] = pServerDE->Random(0.25f, 0.50f);
m_fStartTime[x] = pServerDE->GetTime();
}
// If FireFx was created from something else then They would set the LinkObject
if (m_hLinkObject == DNULL)
{
DVector vPos;
pServerDE->GetObjectPos(m_hObject, &vPos);
//
// Need to get this name from the Props...
//
ObjectList* pTargets = pServerDE->FindNamedObjects(pServerDE->GetStringData(m_hstrAttachTo));
if (!pTargets || pTargets->m_nInList <= 0) return;
// Found all the Objects
ObjectLink *pLink = pTargets->m_pFirstLink;
while(pLink && pLink->m_hObject)
{
HCLASS hType = pServerDE->GetObjectClass(pLink->m_hObject);
HCLASS hObjectTest = pServerDE->GetClass("CBaseCharacter");
if( (pServerDE->IsKindOf(hType, hObjectTest)) )
{
m_hLinkObject = pLink->m_hObject;
break;
}
// Next object
pLink = pLink->m_pNext;
}
// clean up
pServerDE->RelinquishList(pTargets);
}
if (m_hLinkObject)
{
m_bFirstUpdate = DFALSE;
// Create a Link to the Object on Fire
pServerDE->CreateInterObjectLink(m_hObject, m_hLinkObject);
if (m_hLight == DNULL)
{
// Add Light
ObjectCreateStruct theStruct;
INIT_OBJECTCREATESTRUCT(theStruct);
theStruct.m_Flags = FLAG_VISIBLE;
theStruct.m_ObjectType = OT_LIGHT;
// VEC_COPY(theStruct.m_Pos, *pvPos);
pServerDE->GetObjectPos(m_hObject, &theStruct.m_Pos);
HCLASS hClass = pServerDE->GetClass("BaseClass");
if (hClass)
{
LPBASECLASS pLight = pServerDE->CreateObject(hClass, &theStruct);
if (pLight)
{
m_hLight = pLight->m_hObject;
pServerDE->SetLightRadius(m_hLight, 250.0f);
pServerDE->SetLightColor(m_hLight, 0.7f, 0.5f, 0.5f);
}
}
}
}
}