本文整理汇总了C++中CNpc::ChangeAbility方法的典型用法代码示例。如果您正苦于以下问题:C++ CNpc::ChangeAbility方法的具体用法?C++ CNpc::ChangeAbility怎么用?C++ CNpc::ChangeAbility使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CNpc
的用法示例。
在下文中一共展示了CNpc::ChangeAbility方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: RecvBattleEvent
void CGameSocket::RecvBattleEvent(char* pBuf)
{
int index = 0, i=0;
int nType = 0, nEvent = 0;
CNpc* pNpc = NULL;
nType = GetByte(pBuf,index);
nEvent = GetByte(pBuf,index);
if( nEvent == BATTLEZONE_OPEN ) {
m_pMain->m_sKillKarusNpc = 0;
m_pMain->m_sKillElmoNpc = 0;
m_pMain->m_byBattleEvent = BATTLEZONE_OPEN;
TRACE("----> RecvBattleEvent : Battle zone Open \n");
}
else if( nEvent == BATTLEZONE_CLOSE ) {
m_pMain->m_sKillKarusNpc = 0;
m_pMain->m_sKillElmoNpc = 0;
m_pMain->m_byBattleEvent = BATTLEZONE_CLOSE;
TRACE("<---- RecvBattleEvent : Battle zone Close \n");
m_pMain->ResetBattleZone();
}
int nSize = m_pMain->m_arNpc.GetSize();
for( i = 0; i < nSize; i++) {
pNpc = m_pMain->m_arNpc.GetData( i );
if( !pNpc ) continue;
if( pNpc->m_tNpcType > 10 && (pNpc->m_byGroup == KARUS_ZONE || pNpc->m_byGroup == ELMORAD_ZONE) ) { // npc에만 적용되고, 국가에 소속된 npc
if( nEvent == BATTLEZONE_OPEN ) { // 전쟁 이벤트 시작 (npc의 능력치 다운)
pNpc->ChangeAbility( BATTLEZONE_OPEN );
}
else if( nEvent == BATTLEZONE_CLOSE ) { // 전쟁 이벤트 끝 (npc의 능력치 회복)
pNpc->ChangeAbility( BATTLEZONE_CLOSE );
}
}
}
}