本文整理汇总了C++中NFCDataList::AddFloat方法的典型用法代码示例。如果您正苦于以下问题:C++ NFCDataList::AddFloat方法的具体用法?C++ NFCDataList::AddFloat怎么用?C++ NFCDataList::AddFloat使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类NFCDataList
的用法示例。
在下文中一共展示了NFCDataList::AddFloat方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: RandomPatrol
bool NFCPatrolState::RandomPatrol(const NFGUID& self)
{
//首先,得看有没路径
//没有的话,随机找个地址走吧(以出生点为中心开始找,种子地址)NPCConfigID
const std::string& strConfigID = m_pKernelModule->GetPropertyString(self, "NPCConfigID");
const std::string& strNPCID = m_pKernelModule->GetPropertyString(self, "ConfigID");
if (!strConfigID.empty())
{
NF_SHARE_PTR<NFIPropertyManager> xPropertyManager = m_pElementInfoModule->GetPropertyManager(strConfigID);
if (xPropertyManager)
{
NF_SHARE_PTR<NFIProperty> xPropertyX = xPropertyManager->GetElement("SeedX");
NF_SHARE_PTR<NFIProperty> xPropertyY = xPropertyManager->GetElement("SeedY");
NF_SHARE_PTR<NFIProperty> xPropertyZ = xPropertyManager->GetElement("SeedZ");
float fCurX = xPropertyX->GetFloat();
float fCurY = xPropertyY->GetFloat();
float fCurZ = xPropertyZ->GetFloat();
float fPosOffestX = (float)(rand() / double(RAND_MAX) - 0.5f);
float fPosOffestZ = (float)(rand() / double(RAND_MAX) - 0.5f);
fPosOffestX *= 10;
fPosOffestZ *= 10;
fCurX += fPosOffestX;
fCurZ += fPosOffestZ;
//if (fCurX > 0.0f && fCurZ > 0.0f)
{
//看能否寻路,不能寻路则重来
NFObjectStateType eStateType = NFObjectStateType::NOST_RUN;
float fRand = (float)(rand() / double(RAND_MAX));
if (fRand < 0.5f)
{
eStateType = NFObjectStateType::NOST_WALK;
}
NFCDataList valueList;
valueList.AddFloat(fCurX);
valueList.AddFloat(fCurY);
valueList.AddFloat(fCurZ);
m_pKernelModule->DoEvent(self, NFED_ON_CLIENT_REQUIRE_MOVE, valueList);
m_pKernelModule->SetPropertyFloat(self, "X", fCurX);
m_pKernelModule->SetPropertyFloat(self, "Y", fCurY);
m_pKernelModule->SetPropertyFloat(self, "Z", fCurZ);
return true;
}
}
}
return false;
}
示例2: ProcessBuffValuePropertyReferAbsoluteValue
int NFCBuffModule::ProcessBuffValuePropertyReferAbsoluteValue( const NFIDENTID& self, NFIBuffConfigModule::NFCBuffConfig* pBuffConfig, const NFIDENTID& releaserIdent )
{
//buff group property
int nBuffGroup = 0;
//RUNTIME_BUFF_INFO
NF_SHARE_PTR<NFIObject> pObject = m_pKernelModule->GetObject( self );
NF_SHARE_PTR<NFIRecord> pBuffRecord = pObject->GetRecordManager()->GetElement( mstrRunTimeEffectTable );
if ( pBuffRecord )
{
NF_SHARE_PTR<NFIRecord> pPropertyGroupRecord = pObject->GetRecordManager()->GetElement( mstrPropertyTable );
std::string strPropertyList;
std::string strPropertyName;
int* pnEffectValue = pBuffConfig->First( strPropertyName );
while ( pnEffectValue )
{
NF_SHARE_PTR<NFIProperty> pProperty = pObject->GetPropertyManager()->GetElement( strPropertyName );
if ( pProperty )
{
char szEffectValue[MAX_PATH] = {0};
printf( szEffectValue, "%d", *pnEffectValue );
strPropertyList.append( strPropertyName );
strPropertyList.append( "," );
strPropertyList.append( szEffectValue );
strPropertyList.append( ";" );
//相继设置属性到buff group,增值
//从属性系统得到属性应该在的col函数
int nPropertyGroupCol = 0;
int nPropertyBuffGroupRow = 0;
TDATA_TYPE eColType = pPropertyGroupRecord->GetColType( nPropertyGroupCol );
if ( NFIBuffConfigModule::BuffReverseType::ERT_NEED_REVERSE == pBuffConfig->NeedReverseType )
{
//需要还原
switch ( eColType )
{
case TDATA_INT:
pPropertyGroupRecord->SetInt( nPropertyBuffGroupRow, nPropertyGroupCol, *pnEffectValue );
break;
case TDATA_FLOAT:
pPropertyGroupRecord->SetFloat( nPropertyBuffGroupRow, nPropertyGroupCol, float( *pnEffectValue ) );
break;
case TDATA_DOUBLE:
pPropertyGroupRecord->SetDouble( nPropertyBuffGroupRow, nPropertyGroupCol, double( *pnEffectValue ) );
break;
default:
break;
}
}
else if ( NFIBuffConfigModule::BuffReverseType::ERT_NO_REVERSE == pBuffConfig->NeedReverseType )
{
//不需要还原
NFIDataList::TData valueEffectValue;
switch ( eColType )
{
case TDATA_INT:
valueEffectValue.nType = TDATA_INT;
valueEffectValue.variantData = NFINT64( *pnEffectValue );
break;
case TDATA_FLOAT:
valueEffectValue.nType = TDATA_FLOAT;
valueEffectValue.variantData = float( *pnEffectValue );
break;
case TDATA_DOUBLE:
valueEffectValue.nType = TDATA_DOUBLE;
valueEffectValue.variantData = double( *pnEffectValue );
break;
default:
break;
}
//const NFIDataList& oldValue = pProperty->GetValue();
pObject->GetPropertyManager()->SetProperty( strPropertyName, valueEffectValue );
}
pnEffectValue = pBuffConfig->Next( strPropertyName );
}
//还原与否,都需要保存在runtimebuff表
NFCDataList valueBuffProperty;
valueBuffProperty.AddString( strPropertyName.c_str() );
valueBuffProperty.AddObject( releaserIdent );
valueBuffProperty.AddFloat( pBuffConfig->EffectTimeInterval );
valueBuffProperty.AddInt( pBuffConfig->EffectTimeValue );
valueBuffProperty.AddString( strPropertyName.c_str() );
pBuffRecord->AddRow( -1, valueBuffProperty );
}
}
return 0;
}