本文整理汇总了C++中NetBitStreamInterface::WriteString方法的典型用法代码示例。如果您正苦于以下问题:C++ NetBitStreamInterface::WriteString方法的具体用法?C++ NetBitStreamInterface::WriteString怎么用?C++ NetBitStreamInterface::WriteString使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类NetBitStreamInterface
的用法示例。
在下文中一共展示了NetBitStreamInterface::WriteString方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Write
bool CPlayerConnectCompletePacket::Write ( NetBitStreamInterface& BitStream ) const
{
// Send the connection string
SString strConnText ( "%s %s [%s]", MTA_DM_FULL_STRING, MTA_DM_VERSIONSTRING, MTA_OS_STRING );
BitStream.WriteString ( strConnText.Left ( MAX_CONN_TEXT_LEN ) );
// Send the full server version
if ( BitStream.Version () >= 0x29 )
BitStream.WriteString ( CStaticFunctionDefinitions::GetVersionSortable () );
return true;
}
示例2: Write
bool CResourceClientScriptsPacket::Write ( NetBitStreamInterface& BitStream ) const
{
if ( m_vecItems.size() == 0 )
return false;
BitStream.Write ( m_pResource->GetNetID() );
unsigned short usItemCount = m_vecItems.size();
BitStream.Write ( usItemCount );
for ( std::vector<CResourceClientScriptItem*>::const_iterator iter = m_vecItems.begin ();
iter != m_vecItems.end();
++iter )
{
if ( BitStream.Version() >= 0x50 )
BitStream.WriteString( (*iter)->GetName() );
const SString& data = (*iter)->GetSourceCode ();
unsigned int len = data.length ();
BitStream.Write ( len );
BitStream.Write ( data.c_str(), len );
}
return true;
}
示例3: Write
bool CPlayerJoinCompletePacket::Write ( NetBitStreamInterface& BitStream ) const
{
BitStream.Write ( m_PlayerID );
BitStream.Write ( m_ucNumberOfPlayers );
BitStream.Write ( m_RootElementID );
// Transmit server requirement for the client to check settings
BitStream.Write ( m_iEnableClientChecks );
// Transmit whether or not the Voice is enabled
BitStream.WriteBit ( m_bVoiceEnabled );
// Transmit the sample rate for voice
SIntegerSync < unsigned char, 2 > sampleRate ( m_ucSampleRate );
BitStream.Write ( &sampleRate );
// Transmit the quality for voice
SIntegerSync < unsigned char, 4 > voiceQuality ( m_ucQuality );
BitStream.Write ( &voiceQuality );
// Transmit the max bitrate for voice
BitStream.WriteCompressed ( m_uiBitrate );
// Tellclient about maybe throttling back http client requests
BitStream.Write ( m_iHTTPMaxConnectionsPerClient );
BitStream.Write ( static_cast < unsigned char > ( m_ucHTTPDownloadType ) );
switch ( m_ucHTTPDownloadType )
{
case HTTP_DOWNLOAD_ENABLED_PORT:
{
BitStream.Write ( m_usHTTPDownloadPort );
}
break;
case HTTP_DOWNLOAD_ENABLED_URL:
{
// Internal http server port
if ( BitStream.Version() >= 0x48 )
BitStream.Write( m_usHTTPDownloadPort );
// External http server URL
BitStream.WriteString ( m_strHTTPDownloadURL );
}
break;
default:
break;
}
return true;
}
示例4: ToBitStream
void CPositionRotationAnimation::ToBitStream( NetBitStreamInterface& a_rBitStream, bool a_bResumeMode ) const
{
a_rBitStream.WriteBit ( a_bResumeMode );
if ( a_bResumeMode )
{
unsigned long ulNow = _GetTime ();
unsigned long ulElaspedTime = ulNow - m_ulStartTime;
unsigned long ulTimeLeft = 0;
if ( m_ulEndTime > ulNow )
{
ulTimeLeft = m_ulEndTime - ulNow;
}
a_rBitStream.WriteCompressed ( ulElaspedTime );
a_rBitStream.WriteCompressed ( ulTimeLeft );
}
else
{
a_rBitStream.WriteCompressed ( m_ulDuration );
}
SPositionSync positionSync;
positionSync.data.vecPosition = m_SourceValue.m_vecPosition;
a_rBitStream.Write ( &positionSync );
SRotationRadiansSync rotationSync ( true ); //RPC function used floats when join time packet didn't, let's go for float
rotationSync.data.vecRotation = m_SourceValue.m_vecRotation;
a_rBitStream.Write ( &rotationSync );
positionSync.data.vecPosition = m_TargetValue.m_vecPosition;
a_rBitStream.Write ( &positionSync );
a_rBitStream.WriteBit ( m_bDeltaRotationMode );
if ( m_bDeltaRotationMode )
{
rotationSync.data.vecRotation = m_DeltaValue.m_vecRotation; //We serialize DELTA
}
else
{
rotationSync.data.vecRotation = m_TargetValue.m_vecRotation;
}
a_rBitStream.Write ( &rotationSync );
////We write the string directly to allow new types without changing netcode (since integer values of enum might change)
a_rBitStream.WriteString ( CEasingCurve::GetStringFromEasingType( m_easingCurve.GetType() ) );
double fEasingPeriod, fEasingAmplitude, fEasingOvershoot;
m_easingCurve.GetParams ( fEasingPeriod, fEasingAmplitude, fEasingOvershoot );
a_rBitStream.Write ( fEasingPeriod );
a_rBitStream.Write ( fEasingAmplitude );
a_rBitStream.Write ( fEasingOvershoot );
}
示例5: Write
bool CResourceStartPacket::Write(NetBitStreamInterface& BitStream) const
{
if (!m_strResourceName.empty())
{
// Write the resource name
unsigned char sizeResourceName = static_cast<unsigned char>(m_strResourceName.size());
BitStream.Write(sizeResourceName);
if (sizeResourceName > 0)
{
BitStream.Write(m_strResourceName.c_str(), sizeResourceName);
}
// Write the resource id
BitStream.Write(m_pResource->GetNetID());
// Write the resource element id
BitStream.Write(m_pResource->GetResourceRootElement()->GetID());
// Write the resource dynamic element id
BitStream.Write(m_pResource->GetDynamicElementRoot()->GetID());
// Count the amount of 'no client cache' scripts
unsigned short usNoClientCacheScriptCount = 0;
if (m_pResource->IsClientScriptsOn() == true)
{
list<CResourceFile*>::iterator iter = m_pResource->IterBegin();
for (; iter != m_pResource->IterEnd(); ++iter)
{
if ((*iter)->GetType() == CResourceScriptItem::RESOURCE_FILE_TYPE_CLIENT_SCRIPT &&
static_cast<CResourceClientScriptItem*>(*iter)->IsNoClientCache() == true)
{
++usNoClientCacheScriptCount;
}
}
}
BitStream.Write(usNoClientCacheScriptCount);
// Write the declared min client version for this resource
if (BitStream.Version() >= 0x32)
{
BitStream.WriteString(m_pResource->GetMinServerReqFromMetaXml());
BitStream.WriteString(m_pResource->GetMinClientReqFromMetaXml());
}
if (BitStream.Version() >= 0x45)
{
BitStream.WriteBit(m_pResource->IsOOPEnabledInMetaXml());
}
if (BitStream.Version() >= 0x62)
{
BitStream.Write(m_pResource->GetDownloadPriorityGroup());
}
// Send the resource files info
list<CResourceFile*>::iterator iter = m_pResource->IterBegin();
for (; iter != m_pResource->IterEnd(); iter++)
{
if (((*iter)->GetType() == CResourceScriptItem::RESOURCE_FILE_TYPE_CLIENT_CONFIG && m_pResource->IsClientConfigsOn()) ||
((*iter)->GetType() == CResourceScriptItem::RESOURCE_FILE_TYPE_CLIENT_SCRIPT && m_pResource->IsClientScriptsOn() &&
static_cast<CResourceClientScriptItem*>(*iter)->IsNoClientCache() == false) ||
((*iter)->GetType() == CResourceScriptItem::RESOURCE_FILE_TYPE_CLIENT_FILE && m_pResource->IsClientFilesOn()))
{
// Write the Type of chunk to read (F - File, E - Exported Function)
BitStream.Write(static_cast<unsigned char>('F'));
// Write the map name
const char* szFileName = (*iter)->GetWindowsName();
size_t sizeFileName = strlen(szFileName);
// Make sure we don't have any backslashes in the name
char* szCleanedFilename = new char[sizeFileName + 1];
strcpy(szCleanedFilename, szFileName);
for (unsigned int i = 0; i < sizeFileName; i++)
{
if (szCleanedFilename[i] == '\\')
szCleanedFilename[i] = '/';
}
BitStream.Write(static_cast<unsigned char>(sizeFileName));
if (sizeFileName > 0)
{
BitStream.Write(szCleanedFilename, sizeFileName);
}
// ChrML: Don't forget this...
delete[] szCleanedFilename;
BitStream.Write(static_cast<unsigned char>((*iter)->GetType()));
CChecksum checksum = (*iter)->GetLastChecksum();
BitStream.Write(checksum.ulCRC);
BitStream.Write((const char*)checksum.md5.data, sizeof(checksum.md5.data));
BitStream.Write((*iter)->GetApproxSize());
if ((*iter)->GetType() == CResourceScriptItem::RESOURCE_FILE_TYPE_CLIENT_FILE)
{
CResourceClientFileItem* pRCFItem = reinterpret_cast<CResourceClientFileItem*>(*iter);
// write bool whether to download or not
BitStream.WriteBit(pRCFItem->IsAutoDownload());
}
}
}
//.........这里部分代码省略.........