本文整理汇总了C++中CServerDE::GetStringData方法的典型用法代码示例。如果您正苦于以下问题:C++ CServerDE::GetStringData方法的具体用法?C++ CServerDE::GetStringData怎么用?C++ CServerDE::GetStringData使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CServerDE
的用法示例。
在下文中一共展示了CServerDE::GetStringData方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: CacheFiles
void Trigger::CacheFiles()
{
CServerDE* pServerDE = GetServerDE();
if (!pServerDE) return;
char* pFile = DNULL;
if (m_hstrAccessDeniedSound)
{
pFile = pServerDE->GetStringData(m_hstrAccessDeniedSound);
if (pFile)
{
pServerDE->CacheFile(FT_SOUND, pFile);
}
}
if (m_hstrAccessGrantedSound)
{
pFile = pServerDE->GetStringData(m_hstrAccessGrantedSound);
if (pFile)
{
pServerDE->CacheFile(FT_SOUND, pFile);
}
}
if (m_hstrActivationSound)
{
pFile = pServerDE->GetStringData(m_hstrActivationSound);
if (pFile)
{
pServerDE->CacheFile(FT_SOUND, pFile);
}
}
}
示例2: PlayRampSound
// ----------------------------------------------------------------------- //
//
// ROUTINE: LightFX::
//
// PURPOSE:
//
// ----------------------------------------------------------------------- //
void LightFX::PlayRampSound(int nDirection)
{
CServerDE* pServerDE = GetServerDE();
if (!pServerDE) return;
char *sound = DNULL;
// Set the char pointer
if (nDirection == 1 && m_hstrRampUpSound)
{
sound = pServerDE->GetStringData(m_hstrRampUpSound);
}
else if (m_hstrRampDownSound)
{
sound = pServerDE->GetStringData(m_hstrRampDownSound);
}
// Play the sound if valid pointer
if (sound && _mbstrlen(sound) > 0)
{
DFLOAT Radius = 1000.0f;
PlaySoundFromObject(m_hObject, sound, Radius, SOUNDPRIORITY_MISC_HIGH);
}
}
示例3: 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);
}
示例4: HandleTrigger
void Rotating::HandleTrigger(HOBJECT hSender, HSTRING hMsg)
{
CServerDE* pServerDE = BaseClass::GetServerDE();
if (!pServerDE) return;
char* pMsg = pServerDE->GetStringData(hMsg);
if (!pMsg || !pMsg[0]) return;
if (m_eState == RWM_OFF && _mbsicmp((const unsigned char*)pMsg, (const unsigned char*)TRIGGER_MSG_ON) == 0)
{
SetSpinUp();
pServerDE->SetNextUpdate(m_hObject, RWM_UPDATE_DELTA);
}
else if (m_eState != RWM_OFF && _mbsicmp((const unsigned char*)pMsg, (const unsigned char*)TRIGGER_MSG_OFF) == 0)
{
SetSpinDown();
pServerDE->SetNextUpdate(m_hObject, RWM_UPDATE_DELTA);
}
else if (_mbsicmp((const unsigned char*)pMsg, (const unsigned char*)TRIGGER_MSG_TOGGLE) == 0)
{
if (m_eState == RWM_OFF)
SetSpinUp();
else
SetSpinDown();
pServerDE->SetNextUpdate(m_hObject, RWM_UPDATE_DELTA);
}
}
示例5: AttachToObject
void Trigger::AttachToObject()
{
CServerDE* pServerDE = GetServerDE();
if (!pServerDE || !m_hstrAttachToObject) return;
char* pObjName = pServerDE->GetStringData(m_hstrAttachToObject);
if (!pObjName) return;
// Find object to attach to...
HOBJECT hObj = DNULL;
ObjectList* pList = pServerDE->FindNamedObjects(pObjName);
if (!pList) return;
if (pList->m_pFirstLink)
{
hObj = pList->m_pFirstLink->m_hObject;
}
if (!hObj) return;
DVector vOffset;
VEC_INIT(vOffset);
DRotation rOffset;
ROT_INIT(rOffset);
HATTACHMENT hAttachment;
pServerDE->CreateAttachment(hObj, m_hObject, DNULL, &vOffset, &rOffset, &hAttachment);
}
示例6: HandleTriggerMsg
void Trigger::HandleTriggerMsg(HOBJECT hSender, HMESSAGEREAD hRead)
{
CServerDE* pServerDE = BaseClass::GetServerDE();
if (!pServerDE) return;
HSTRING hMsg = pServerDE->ReadFromMessageHString(hRead);
char* pMsg = pServerDE->GetStringData(hMsg);
// See if we should trigger the trigger...
if (_stricmp(pMsg, g_szTrigger) == 0)
{
DoTrigger(hSender, DFALSE);
}
else if (_stricmp(pMsg, g_szLock) == 0) // See if we should lock the trigger...
{
m_bLocked = DTRUE;
}
else if (_stricmp(pMsg, g_szUnLock) == 0) // See if we should unlock the trigger...
{
m_bLocked = DFALSE;
}
pServerDE->FreeString(hMsg);
}
示例7: ObjectTouch
void ObjectiveTrigger::ObjectTouch (HOBJECT hObj)
{
CServerDE* pServerDE = GetServerDE();
if (!pServerDE) return;
// ignore everything but characters derived from BaseCharacter
if (!IsBaseCharacter (hObj)) return;
HCLASS hClassObj = pServerDE->GetObjectClass(hObj);
// If we're AI, make sure we can activate this trigger...
if (!m_bAITriggerable)
{
HCLASS hClassAI = pServerDE->GetClass("BaseAI");
if ( pServerDE->IsKindOf(hClassObj, hClassAI) )
{
return;
}
}
else if (m_hstrAIName) // See if only a specific AI can trigger it...
{
char* pAIName = pServerDE->GetStringData(m_hstrAIName);
char* pObjName = pServerDE->GetObjectName(hObj);
if (pAIName && pObjName)
{
if ( stricmp(pAIName, pObjName) != 0)
{
return;
}
}
}
// If we're the player, make sure we can activate this trigger...
if (!m_bPlayerTriggerable)
{
HCLASS hClassPlayer = pServerDE->GetClass("CPlayerObj");
if ( pServerDE->IsKindOf(hClassObj, hClassPlayer) )
{
return;
}
}
// send the mission objective message now
Trigger();
}
示例8: CacheFiles
void PolyGrid::CacheFiles()
{
CServerDE* pServerDE = GetServerDE();
if (!pServerDE) return;
if (m_hstrSurfaceSprite)
{
char* pFile = pServerDE->GetStringData(m_hstrSurfaceSprite);
if (pFile && pFile[0])
{
pServerDE->CacheFile(FT_SPRITE, pFile);
}
}
}
示例9: 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;
}
}
示例10: CacheFiles
void PolyGrid::CacheFiles()
{
CServerDE* pServerDE = GetServerDE();
if (!pServerDE) return;
// {MD 9/23/98}
if(!(pServerDE->GetServerFlags() & SS_CACHING))
return;
if (m_hstrSurfaceSprite)
{
char* pFile = pServerDE->GetStringData(m_hstrSurfaceSprite);
if (pFile && pFile[0])
{
pServerDE->CacheFile(FT_SPRITE, pFile);
}
}
}
示例11: SetupFX
void CClientExplosionSFX::SetupFX()
{
CServerDE* pServerDE = GetServerDE();
if (!pServerDE) return;
HMESSAGEWRITE hMessage = pServerDE->StartInstantSpecialEffectMessage(&m_vPos);
pServerDE->WriteToMessageByte(hMessage, SFX_EXPLOSIONFX_ID);
pServerDE->WriteToMessageVector(hMessage, &m_vPos);
pServerDE->WriteToMessageVector(hMessage, &m_vNormal);
pServerDE->WriteToMessageDWord(hMessage, m_nType);
pServerDE->EndMessage(hMessage);
DamageObjectsInRadius(m_hObject, NULL, m_vPos, m_fDamageRadius, m_fDamage);
if (m_hstrSound)
PlaySoundFromPos(&m_vPos, pServerDE->GetStringData(m_hstrSound), 1000.0f, SOUNDPRIORITY_MISC_HIGH );
}
示例12: HandleTrigger
void CDestructable::HandleTrigger(HOBJECT hSender, HMESSAGEREAD hRead)
{
CServerDE* pServerDE = BaseClass::GetServerDE();
if (!pServerDE) return;
HSTRING hMsg = pServerDE->ReadFromMessageHString(hRead);
char* pMsg = pServerDE->GetStringData(hMsg);
if (!pMsg || !pMsg[0]) return;
if (_mbsicmp((const unsigned char*)pMsg, (const unsigned char*)TRIGGER_MSG_KILL) == 0)
{
DVector vTmp;
VEC_INIT(vTmp);
BaseClass *ffObj = pServerDE->HandleToObject(hSender);
DamageObject(hSender, ffObj, m_hObject, 1, vTmp, vTmp, DAMAGE_TYPE_DEATH);
}
pServerDE->FreeString(hMsg);
}
示例13: CacheFiles
void VolumeBrush::CacheFiles()
{
CServerDE* pServerDE = GetServerDE();
if (!pServerDE) return;
// {MD 9/23/98}
if(!(pServerDE->GetServerFlags() & SS_CACHING))
return;
char* pFile = DNULL;
if (m_hstrSurfaceSprite)
{
pFile = pServerDE->GetStringData(m_hstrSurfaceSprite);
if (pFile)
{
pServerDE->CacheFile(FT_SPRITE, pFile);
}
}
}
示例14: StartSound
void Rotating::StartSound(HSTRING hstrSoundName, DBOOL bLoop)
{
CServerDE* pServerDE = BaseClass::GetServerDE();
if (!pServerDE) return;
// Stop the last sound if there is one...
if (m_sndLastSound)
{
pServerDE->KillSound(m_sndLastSound);
m_sndLastSound = DNULL;
}
if (!hstrSoundName) return;
char *pSoundName = pServerDE->GetStringData(hstrSoundName);
if (!pSoundName) return;
PlaySoundInfo playSoundInfo;
PLAYSOUNDINFO_INIT(playSoundInfo);
playSoundInfo.m_dwFlags = PLAYSOUND_3D | PLAYSOUND_REVERB;
playSoundInfo.m_dwFlags |= PLAYSOUND_ATTACHED;
if (bLoop)
{
playSoundInfo.m_dwFlags |= PLAYSOUND_LOOP | PLAYSOUND_GETHANDLE;
}
_mbsncpy((unsigned char*)playSoundInfo.m_szSoundName, (const unsigned char*)pSoundName, _MAX_PATH);
playSoundInfo.m_hObject = m_hObject;
playSoundInfo.m_fOuterRadius = m_fSoundRadius;
playSoundInfo.m_fInnerRadius = 200;
pServerDE->PlaySound(&playSoundInfo);
// Save the handle of the sound...
m_sndLastSound = playSoundInfo.m_hSound;
}
示例15: HandleDestruction
void CDestructable::HandleDestruction()
{
CServerDE* pServerDE = BaseClass::GetServerDE();
if (!pServerDE) return;
if (m_hstrDeathTriggerTarget)
{
LPBASECLASS pD = pServerDE->HandleToObject(m_hObject);
SendTriggerMsgToObjects(pD, m_hstrDeathTriggerTarget, m_hstrDeathTriggerMessage);
}
// See if we need to spawn anything
if (m_hstrSpawnObject)
{
DVector vPos;
DRotation rRot;
pServerDE->GetObjectPos(m_hObject, &vPos);
pServerDE->GetObjectRotation(m_hObject, &rRot);
SpawnObject(pServerDE->GetStringData(m_hstrSpawnObject), &vPos, &rRot, &m_vSpawnObjectVel);
}
}