本文整理汇总了C++中CClient::GetPrivLevel方法的典型用法代码示例。如果您正苦于以下问题:C++ CClient::GetPrivLevel方法的具体用法?C++ CClient::GetPrivLevel怎么用?C++ CClient::GetPrivLevel使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CClient
的用法示例。
在下文中一共展示了CClient::GetPrivLevel方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Announce
void CClient::Announce(bool fArrive) const
{
ADDTOCALLSTACK("CClient::Announce");
if ( !m_pAccount || !m_pChar || !m_pChar->m_pPlayer )
return;
// We have logged in or disconnected.
// Annouce my arrival or departure.
TCHAR *pszMsg = Str_GetTemp();
if ( (g_Cfg.m_iArriveDepartMsg == 2) && (GetPrivLevel() > PLEVEL_Player) ) // notify of GMs
{
LPCTSTR pszTitle = m_pChar->Noto_GetFameTitle();
sprintf(pszMsg, "@231 STAFF: %s%s logged %s.", pszTitle, m_pChar->GetName(), fArrive ? "in" : "out");
}
else if ( g_Cfg.m_iArriveDepartMsg == 1 ) // notify of players
{
const CRegionBase *pRegion = m_pChar->GetTopPoint().GetRegion(REGION_TYPE_AREA);
sprintf(pszMsg, g_Cfg.GetDefaultMsg(DEFMSG_MSG_ARRDEP_1), m_pChar->GetName(), g_Cfg.GetDefaultMsg(fArrive ? DEFMSG_MSG_ARRDEP_2 : DEFMSG_MSG_ARRDEP_3), pRegion ? pRegion->GetName() : g_Serv.GetName());
}
if ( pszMsg )
{
ClientIterator it;
for ( CClient *pClient = it.next(); pClient != NULL; pClient = it.next() )
{
if ( (pClient == this) || (GetPrivLevel() > pClient->GetPrivLevel()) )
continue;
pClient->SysMessage(pszMsg);
}
}
// Check murder decay timer
CItem *pMurders = m_pChar->LayerFind(LAYER_FLAG_Murders);
if ( pMurders )
{
if ( fArrive )
{
// On client login, set active timer on murder memory
pMurders->SetTimeout(pMurders->m_itEqMurderCount.m_Decay_Balance * TICK_PER_SEC);
}
else
{
// Or make it inactive on logout
pMurders->m_itEqMurderCount.m_Decay_Balance = static_cast<DWORD>(pMurders->GetTimerAdjusted());
pMurders->SetTimeout(-1);
}
}
else if ( fArrive )
{
// If there's no murder memory found, check if we need a new memory
m_pChar->Noto_Murder();
}
}
示例2: r_Verb
bool CWebPageDef::r_Verb( CScript & s, CTextConsole * pSrc ) // some command on this object as a target
{
ADDTOCALLSTACK("CWebPageDef::r_Verb");
EXC_TRY("Verb");
ASSERT(pSrc);
sm_iListIndex = 0;
TCHAR *pszTmp2 = Str_GetTemp();
WV_TYPE iHeadKey = (WV_TYPE) FindTableSorted( s.GetKey(), sm_szVerbKeys, COUNTOF(sm_szVerbKeys)-1 );
switch ( iHeadKey )
{
case WV_WEBPAGE:
{
// serv a web page to the pSrc
CClient *pClient = dynamic_cast<CClient *>(pSrc);
if ( !pClient )
return false;
return ServPage(pClient, s.GetArgStr(), NULL);
}
case WV_CLIENTLIST:
{
ClientIterator it;
for ( CClient *pClient = it.next(); pClient != NULL; pClient = it.next() )
{
CChar *pChar = pClient->GetChar();
if ( !pChar )
continue;
if ( pChar->IsStatFlag(STATF_Insubstantial) && (pClient->GetPrivLevel() > PLEVEL_Player) )
continue;
sm_iListIndex++;
LPCTSTR pszArgs = s.GetArgStr();
if ( pszArgs[0] == '\0' )
pszArgs = "<tr><td>%NAME%</td><td>%REGION.NAME%</td></tr>\n";
strcpy(pszTmp2, pszArgs);
pChar->ParseText(Str_MakeFiltered(pszTmp2), &g_Serv, 1);
pSrc->SysMessage(pszTmp2);
}
break;
}
case WV_GUILDLIST:
case WV_TOWNLIST:
{
if ( !s.HasArgs() )
return false;
IT_TYPE needtype = (iHeadKey == WV_GUILDLIST) ? IT_STONE_GUILD : IT_STONE_TOWN;
for ( size_t i = 0; i < g_World.m_Stones.GetCount(); i++ )
{
CItemStone *pStone = g_World.m_Stones[i];
if ( !pStone || !pStone->IsType(needtype) )
continue;
sm_iListIndex++;
strcpy(pszTmp2, s.GetArgStr());
pStone->ParseText(Str_MakeFiltered(pszTmp2), &g_Serv, 1);
pSrc->SysMessage(pszTmp2);
}
break;
}
case WV_GMPAGELIST:
{
if ( !s.HasArgs() )
return false;
CGMPage *pPage = static_cast<CGMPage *>(g_World.m_GMPages.GetHead());
for ( ; pPage != NULL; pPage = pPage->GetNext() )
{
sm_iListIndex++;
strcpy(pszTmp2, s.GetArgStr());
pPage->ParseText(Str_MakeFiltered(pszTmp2), &g_Serv, 1);
pSrc->SysMessage(pszTmp2);
}
break;
}
default:
return CResourceLink::r_Verb(s, pSrc);
}
return true;
EXC_CATCH;
EXC_DEBUG_START;
EXC_ADD_SCRIPTSRC;
EXC_DEBUG_END;
return false;
}