本文整理汇总了C++中CGameItemPtr::recommended方法的典型用法代码示例。如果您正苦于以下问题:C++ CGameItemPtr::recommended方法的具体用法?C++ CGameItemPtr::recommended怎么用?C++ CGameItemPtr::recommended使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CGameItemPtr
的用法示例。
在下文中一共展示了CGameItemPtr::recommended方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: validate
//-----------------------------------------------
// CFaberPhrase validate
//-----------------------------------------------
bool CFaberPhrase::validate()
{
H_AUTO(CFaberPhrase_validate);
if ( !CraftSystemEnabled )
return false;
CCharacter * c = (CCharacter *) CEntityBaseManager::getEntityBasePtr( _ActorRowId );
if( c == 0 )
{
nlwarning("<CFaberPhrase::validate> Player character not found but his crafting action still running!!!");
return false;
}
// test entity can use action
if (c->canEntityUseAction() == false)
{
return false;
}
// check right hand item is a crafting tool
CGameItemPtr rightHandItem = c->getRightHandItem();
if (rightHandItem == NULL || rightHandItem->getStaticForm() == NULL || rightHandItem->getStaticForm()->Family != ITEMFAMILY::CRAFTING_TOOL)
{
PHRASE_UTILITIES::sendDynamicSystemMessage(_ActorRowId, "CRAFT_NEED_CRAFTING_TOOL");
return false;
}
// check tool is not worned
if( rightHandItem->getItemWornState() == ITEM_WORN_STATE::Worned )
{
PHRASE_UTILITIES::sendDynamicSystemMessage(_ActorRowId, "CRAFT_NEED_CRAFTING_TOOL");
return false;
}
// check quality of right hand item (need be >= Recommended (level of item))
if (rightHandItem->recommended()+49 < _Recommended)
{
PHRASE_UTILITIES::sendDynamicSystemMessage(_ActorRowId, "CRAFT_NEED_RECOMMENDED_CRAFTING_TOOL");
return false;
}
// entities cant craft if in combat
/* commented as test of right hand item is now made...
TDataSetRow entityRowId = CPhraseManager::getInstance().getEntityEngagedMeleeBy( _ActorRowId );
if (TheDataset.isAccessible(entityRowId))
{
PHRASE_UTILITIES::sendDynamicSystemMessage(_ActorRowId, "CANT_CRAFT_ENGAGED_IN_MELEE");
return false;
}
*/
const sint32 focus = c->getScores()._PhysicalScores[ SCORES::focus ].Current;
if ( focus < _FocusCost )
{
PHRASE_UTILITIES::sendDynamicSystemMessage(_ActorRowId, "CANT_CRAFT_NOT_ENOUGHT_FOCUS");
c->unlockFaberRms();
return false;
}
const sint32 hp = c->currentHp();
if (hp <= 0 || c->isDead())
{
PHRASE_UTILITIES::sendDynamicSystemMessage(_ActorRowId, "CANT_CRAFT_WHEN_DEAD");
c->unlockFaberRms();
return false;
}
/// todo alain : test if on mount
// store vector of pointer on raw material item
if( state() == Evaluated )
{
if( c->lockFaberRms() )
{
_Mps.clear();
_MpsFormula.clear();
if( c->getFillFaberRms( _Mps, _MpsFormula, _LowerRmQuality ) == false ) //TODO check exec step
{
c->unlockFaberRms();
PHRASE_UTILITIES::sendDynamicSystemMessage(_ActorRowId, "CANT_FOUND_RM");
return false;
}
}
else
{
c->unlockFaberRms();
PHRASE_UTILITIES::sendDynamicSystemMessage(_ActorRowId, "CANT_LOCK_RM");
return false;
}
}
return true;
}// CFaberPhrase validate