本文整理汇总了C++中CServerDE::Random方法的典型用法代码示例。如果您正苦于以下问题:C++ CServerDE::Random方法的具体用法?C++ CServerDE::Random怎么用?C++ CServerDE::Random使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CServerDE
的用法示例。
在下文中一共展示了CServerDE::Random方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: InitialUpdate
DBOOL BugAI::InitialUpdate(DVector *pMovement)
{
CServerDE* pServerDE = GetServerDE();
if (!pServerDE) return DFALSE;
//Load up animation indexes if first model instance
if(m_bLoadAnims)
{
m_Anim_Sound.SetAnimationIndexes(m_hObject);
m_Anim_Sound.GenerateHitSpheres(m_hObject);
m_Anim_Sound.SetSoundRoot("sounds\\enemies\\bug");
m_bLoadAnims = DFALSE;
}
//randomize the size/weight
DFLOAT fScale = pServerDE->Random(-0.05f, 0.1f);
VEC_SET(m_vScale,1.0f + fScale, 1.0f, 1.0f + fScale);
// Init the objects
m_InventoryMgr.Init(m_hObject);
//Set hit points
m_damage.Init(m_hObject);
m_damage.SetHitPoints(m_fAIHitPoints + pServerDE->Random(1,m_fAIRandomHP));
m_damage.SetMaxHitPoints(m_damage.GetHitPoints());
//Set armor point
m_damage.SetArmorPoints(m_fAIArmorPoints);
m_damage.SetMaxArmorPoints(200.0f);
m_damage.SetMass(m_fAIMass);
AI_Mgr::InitStatics(&m_Anim_Sound);
return DTRUE;
}
示例2: InitialUpdate
DBOOL ClientLightFX::InitialUpdate(DVector *pMovement)
{
CServerDE* pServerDE = GetServerDE();
if (!pServerDE) return DFALSE;
m_damage.Init(m_hObject);
m_damage.SetMaxHitPoints(m_fHitPts);
m_damage.SetHitPoints(m_fHitPts);
// Set Next update (randomize it if this object was loaded from the
// level - so we don't have all the lights updating on the same frame)...
DFLOAT fOffset = 0.0f;
if (!m_bDynamic) fOffset = pServerDE->Random(0.01f, 0.5f);
if (m_bOn)
{
pServerDE->SetNextUpdate(m_hObject, UPDATE_DELTA + fOffset);
}
Init();
SendEffectMessage();
return DTRUE;
}
示例3: Update
//.........这里部分代码省略.........
{
// Remove everything if we're done.
if (fTime > m_fStartTime[x] + m_fDuration[x])
{
m_fStartTime[x] = pServerDE->GetTime();
if (m_hSprite[x])
{
g_pServerDE->RemoveObject(m_hSprite[x]);
m_hSprite[x] = DNULL;
}
if (m_hSmokeTrail[x])
{
g_pServerDE->RemoveObject(m_hSmokeTrail[x]);
m_hSmokeTrail[x] = DNULL;
}
// Add Flame
VEC_INIT(m_vUp);
VEC_INIT(m_vRight);
VEC_INIT(m_vForward);
if (!m_hLinkObject) return DFALSE;
pServerDE->GetObjectRotation(m_hLinkObject, &rRot);
pServerDE->GetRotationVectors(&rRot, &m_vUp, &m_vRight, &m_vForward);
if (!m_hLinkObject) return DFALSE;
pServerDE->GetObjectDims(m_hLinkObject, &vDims);
pServerDE->GetObjectPos(m_hLinkObject, &vPos);
// Need to use the Dims of the Object to set these!!!
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);
示例4: 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);
}
}
}
}
}