本文整理汇总了C++中CChar::Char_GetDef方法的典型用法代码示例。如果您正苦于以下问题:C++ CChar::Char_GetDef方法的具体用法?C++ CChar::Char_GetDef怎么用?C++ CChar::Char_GetDef使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CChar
的用法示例。
在下文中一共展示了CChar::Char_GetDef方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Cmd_Skill_Tracking
//.........这里部分代码省略.........
static const NPCBRAIN_TYPE sm_Track_Brain[] =
{
NPCBRAIN_QTY, // not used here
NPCBRAIN_ANIMAL,
NPCBRAIN_MONSTER,
NPCBRAIN_HUMAN,
NPCBRAIN_NONE // players
};
if ( track_sel >= COUNTOF(sm_Track_Brain) )
track_sel = COUNTOF(sm_Track_Brain) - 1;
NPCBRAIN_TYPE track_type = sm_Track_Brain[track_sel];
CMenuItem item[minimum(MAX_MENU_ITEMS, COUNTOF(m_tmMenu.m_Item))];
size_t count = 0;
item[0].m_sText = g_Cfg.GetDefaultMsg(DEFMSG_TRACKING_SKILLMENU_TITLE);
m_tmMenu.m_Item[0] = track_sel;
CWorldSearch AreaChars(m_pChar->GetTopPoint(), m_pChar->Skill_GetBase(SKILL_TRACKING) / 10 + 10);
for (;;)
{
CChar *pChar = AreaChars.GetChar();
if ( !pChar )
break;
if ( pChar == m_pChar )
continue;
if ( pChar->GetNPCBrain() != track_type )
continue;
if ( pChar->IsStatFlag(STATF_DEAD) ) // can't track ghosts
continue;
if ( pChar->m_pPlayer )
{
// Prevent track hidden GMs
if ( pChar->IsStatFlag(STATF_Insubstantial) && (pChar->GetPrivLevel() > GetPrivLevel()) )
continue;
// Check action difficulty when trying to track players
int tracking = m_pChar->Skill_GetBase(SKILL_TRACKING);
int detectHidden = m_pChar->Skill_GetBase(SKILL_DETECTINGHIDDEN);
if ( (g_Cfg.m_iRacialFlags & RACIALF_ELF_DIFFTRACK) && pChar->IsElf() )
tracking /= 2; // elves are more difficult to track (Difficult to Track racial trait)
int hiding = pChar->Skill_GetBase(SKILL_HIDING);
int stealth = pChar->Skill_GetBase(SKILL_STEALTH);
int divisor = maximum(hiding + stealth, 1);
int chance;
if ( g_Cfg.m_iFeatureSE & FEATURE_SE_UPDATE )
chance = 50 * (tracking * 2 + detectHidden) / divisor;
else
chance = 50 * (tracking + detectHidden + 10 * Calc_GetRandVal(20)) / divisor;
if ( Calc_GetRandVal(100) > chance )
continue;
}
CCharBase *pCharDef = pChar->Char_GetDef();
if ( !pCharDef )
continue;
count++;
item[count].m_id = static_cast<WORD>(pCharDef->m_trackID);
item[count].m_color = 0;
item[count].m_sText = pChar->GetName();
m_tmMenu.m_Item[count] = pChar->GetUID();
if ( count >= COUNTOF(item) - 1 )
break;
}
// Some credit for trying
if ( count > 0 )
{
m_pChar->Skill_UseQuick(SKILL_TRACKING, 20 + Calc_GetRandLLVal(30));
ASSERT(count < COUNTOF(item));
addItemMenu(CLIMODE_MENU_SKILL_TRACK, item, count);
return true;
}
else
{
// Tracking failed or cancelled
m_pChar->Skill_UseQuick(SKILL_TRACKING, 10 + Calc_GetRandLLVal(30));
static LPCTSTR const sm_Track_FailMsg[] =
{
g_Cfg.GetDefaultMsg(DEFMSG_TRACKING_FAIL_ANIMAL),
g_Cfg.GetDefaultMsg(DEFMSG_TRACKING_FAIL_MONSTER),
g_Cfg.GetDefaultMsg(DEFMSG_TRACKING_FAIL_PEOPLE),
g_Cfg.GetDefaultMsg(DEFMSG_TRACKING_FAIL_PEOPLE)
};
if ( sm_Track_FailMsg[track_sel - 1] )
SysMessage(sm_Track_FailMsg[track_sel - 1]);
}
}
return false;
}
示例2: r_WriteVal
//.........这里部分代码省略.........
return true;
case STC_WEBPAGE: // "WEBPAGE"
sVal = GetWebPageURL();
return true;
case STC_AbbreviationToggle:
{
CStoneMember * pMember = GetMember(pCharSrc);
CVarDefCont * pResult = NULL;
if ( pMember == NULL )
{
pResult = g_Exp.m_VarDefs.GetKey("STONECONFIG_VARIOUSNAME_NONMEMBER");
}
else
{
pResult = pMember->IsAbbrevOn() ? g_Exp.m_VarDefs.GetKey("STONECONFIG_VARIOUSNAME_ABBREVON") :
g_Exp.m_VarDefs.GetKey("STONECONFIG_VARIOUSNAME_ABBREVOFF");
}
sVal = pResult ? pResult->GetValStr() : "";
}
return true;
case STC_AlignType:
sVal = GetAlignName();
return true;
case STC_LoyalTo:
{
CStoneMember * pMember = GetMember(pCharSrc);
CVarDefCont * pResult = NULL;
if ( pMember == NULL )
{
pResult = g_Exp.m_VarDefs.GetKey("STONECONFIG_VARIOUSNAME_NONMEMBER");
}
else
{
CChar * pLoyalTo = pMember->GetLoyalToUID().CharFind();
if ((pLoyalTo == NULL) || (pLoyalTo == pCharSrc ))
{
pResult = g_Exp.m_VarDefs.GetKey("STONECONFIG_VARIOUSNAME_YOURSELF");
}
else
{
sVal = pLoyalTo->GetName();
return true;
}
}
sVal = pResult ? pResult->GetValStr() : "";
}
return( true );
case STC_Master:
{
CChar * pMaster = GetMaster();
sVal = (pMaster) ? pMaster->GetName() : g_Exp.m_VarDefs.GetKeyStr("STONECONFIG_VARIOUSNAME_PENDVOTE");
}
return( true );
case STC_MasterGenderTitle:
{
CChar * pMaster = GetMaster();
if ( pMaster == NULL )
sVal = ""; // If no master (vote pending)
else if ( pMaster->Char_GetDef()->IsFemale())
sVal = g_Exp.m_VarDefs.GetKeyStr("STONECONFIG_VARIOUSNAME_MASTERGENDERFEMALE");
else
sVal = g_Exp.m_VarDefs.GetKeyStr("STONECONFIG_VARIOUSNAME_MASTERGENDERMALE");
}
return( true );
case STC_MasterTitle:
{
CStoneMember * pMember = GetMasterMember();
sVal = (pMember) ? pMember->GetTitle() : "";
}
return( true );
case STC_MasterUid:
{
CChar * pMaster = GetMaster();
if ( pMaster )
sVal.FormatHex( (DWORD) pMaster->GetUID() );
else
sVal.FormatHex( (DWORD) 0 );
}
return( true );
default:
return( CItem::r_WriteVal( pszKey, sVal, pSrc ));
}
EXC_CATCH;
EXC_DEBUG_START;
EXC_ADD_KEYRET(pSrc);
EXC_DEBUG_END;
return false;
}