本文整理汇总了C++中CNpc::GetDefense方法的典型用法代码示例。如果您正苦于以下问题:C++ CNpc::GetDefense方法的具体用法?C++ CNpc::GetDefense怎么用?C++ CNpc::GetDefense使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CNpc
的用法示例。
在下文中一共展示了CNpc::GetDefense方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Attack
void CUser::Attack(int sid, int tid)
{
CNpc* pNpc = m_pMain->m_arNpc.GetData(tid-NPC_BAND);
if(pNpc == NULL) return;
if(pNpc->m_NpcState == NPC_DEAD) return;
if(pNpc->m_iHP == 0) return;
/* if(pNpc->m_tNpcType == NPCTYPE_GUARD) // 경비병이면 타겟을 해당 유저로
{
pNpc->m_Target.id = m_iUserId + USER_BAND;
pNpc->m_Target.x = m_curx;
pNpc->m_Target.y = m_cury;
pNpc->m_Target.failCount = 0;
pNpc->Attack(m_pIocport);
// return;
} */
int nDefence = 0, nFinalDamage = 0;
// NPC 방어값
nDefence = pNpc->GetDefense();
// 명중이면 //Damage 처리 ----------------------------------------------------------------//
nFinalDamage = GetDamage(tid);
if( m_pMain->m_byTestMode ) nFinalDamage = 3000; // sungyong test
// Calculate Target HP -------------------------------------------------------//
short sOldNpcHP = pNpc->m_iHP;
if(pNpc->SetDamage(0, nFinalDamage, m_strUserID, m_iUserId + USER_BAND, m_pIocport) == FALSE)
{
// Npc가 죽은 경우,,
pNpc->SendExpToUserList(); // 경험치 분배!!
pNpc->SendDead(m_pIocport);
SendAttackSuccess(tid, ATTACK_TARGET_DEAD, nFinalDamage, pNpc->m_iHP);
// CheckMaxValue(m_dwXP, 1); // 몹이 죽을때만 1 증가!
// SendXP();
}
else
{
// 공격 결과 전송
SendAttackSuccess(tid, ATTACK_SUCCESS, nFinalDamage, pNpc->m_iHP);
}
// m_dwLastAttackTime = GetTickCount();
}
示例2: Attack
void CUser::Attack(int sid, int tid)
{
CNpc* pNpc = g_pMain->m_arNpc.GetData(tid-NPC_BAND);
if(pNpc == nullptr) return;
if(pNpc->m_NpcState == NPC_DEAD) return;
if(pNpc->m_iHP == 0) return;
/* if(pNpc->m_proto->m_tNpcType == NPCTYPE_GUARD) // 경비병이면 타겟을 해당 유저로
{
pNpc->m_Target.id = m_iUserId + USER_BAND;
pNpc->m_Target.x = m_curx;
pNpc->m_Target.y = m_cury;
pNpc->m_Target.failCount = 0;
pNpc->Attack();
// return;
} */
int nDefence = 0, nFinalDamage = 0;
// NPC 방어값
nDefence = pNpc->GetDefense();
// 명중이면 //Damage 처리 ----------------------------------------------------------------//
nFinalDamage = GetDamage(tid);
// Calculate Target HP -------------------------------------------------------//
short sOldNpcHP = pNpc->m_iHP;
if(pNpc->SetDamage(0, nFinalDamage, m_strUserID, m_iUserId + USER_BAND) == false)
{
// Npc가 죽은 경우,,
pNpc->SendExpToUserList(); // 경험치 분배!!
pNpc->SendDead();
SendAttackSuccess(tid, ATTACK_TARGET_DEAD, nFinalDamage, pNpc->m_iHP);
}
else
{
// 공격 결과 전송
SendAttackSuccess(tid, ATTACK_SUCCESS, nFinalDamage, pNpc->m_iHP);
}
}