📄 player.cpp
字号:
}
BYTE CPlayer::GetShieldPercent()
{
return (BYTE)((m_CharacterInfo.Shield*100) / GetMaxShield());
}
//////////////////////////////////////////////////////////////////////////
// ObjectStateManager俊辑 State狼 矫累苞 场俊辑 龋免秦林绰 窃荐甸
void CPlayer::OnStartObjectState(BYTE State)
{
switch(State)
{
case eObjectState_Move:
{
}
break;
case eObjectState_Ungijosik:
{
APPEARANCEMGR->HideWeapon(this);
OBJECTEFFECTDESC desc(eEffect_Ungijosik);
AddObjectEffect(STATE_EFFECT_ID,&desc,1);
}
break;
case eObjectState_Tactic:
{
}
break;
case eObjectState_StreetStall_Owner:
{
APPEARANCEMGR->HideWeapon(this);
}
break;
}
}
void CPlayer::OnEndObjectState(BYTE State)
{
switch(State)
{
case eObjectState_StreetStall_Owner:
case eObjectState_Ungijosik:
case eObjectState_Society:
{
if(GetWeaponEquipType() == WP_AMGI)
{
if(PEACEWARMGR->IsPeaceMode(this) == FALSE)
APPEARANCEMGR->ShowWeapon(this);
}
else if(GetWeaponEquipType() != WP_GWUN)
{
APPEARANCEMGR->ShowWeapon(this);
}
}
break;
case eObjectState_Move:
{
}
break;
case eObjectState_Die:
{
if(GetID() != HEROID)
GetEngineObject()->EnablePick();
}
break;
case eObjectState_Tactic:
{
}
break;
}
RemoveObjectEffect(STATE_EFFECT_ID); //????
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
// 青悼 窃荐甸..
void CPlayer::Die(CObject* pAttacker,BOOL bFatalDamage,BOOL bCritical)
{
if(pAttacker)
{
MOVEMGR->SetLookatPos(this,&pAttacker->GetCurPosition(),0,gCurTime);
if( HERO )
if( pAttacker == HERO && HERO->IsPKMode() )
{
PKMGR->AddPKContinueTime( 60000 );
CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(698), 60 );
//msg 厩青栏肺 混扁 瘤加矫埃捞 眠啊肺 60檬父怒 疵绢车嚼聪促.
}
}
int DieEffect;
if(bFatalDamage)
DieEffect = eEffect_Die2; // 朝扼啊辑 磷扁
else
DieEffect = eEffect_Die1; // 弊成 磷扁
TARGETSET set;
set.pTarget = this;
set.ResultInfo.bCritical = bCritical;
EFFECTMGR->StartEffectProcess(DieEffect,pAttacker,&set,1,GetID(),
EFFECT_FLAG_DIE|EFFECT_FLAG_GENDERBASISTARGET);
CObject::Die(pAttacker,bFatalDamage,bCritical);
}
void CPlayer::Damage(CObject* pAttacker,BYTE DamageKind,DWORD Damage,DWORD ShieldDamage,BOOL bCritical)
{
if(Damage != 0)
{
if( GetState() == eObjectState_None )
{
if(pAttacker)
MOVEMGR->SetLookatPos(this,&pAttacker->GetCurPosition(),0,gCurTime);
}
if( GetState() == eObjectState_Ungijosik && m_ObjectState.bEndState == FALSE &&
GetEngineObject()->GetCurMotion() != eMotion_Ungijosik_Start)
{ // 款扁炼侥捞搁 款扁炼侥吝 单固瘤 悼累
ChangeMotion(1,FALSE);
ChangeMotion(eMotion_Ungijosik_Damage,FALSE);
}
else if(GetState() == eObjectState_None)
{ // 老馆 单固瘤 悼累
ChangeMotion(1,FALSE);
switch(DamageKind) {
case eDamageKind_Front:
ChangeMotion(eMotion_Damage_Front,FALSE);
break;
case eDamageKind_Left:
ChangeMotion(eMotion_Damage_Left,FALSE);
break;
case eDamageKind_Right:
ChangeMotion(eMotion_Damage_Right,FALSE);
break;
}
}
int DamageEffect = -1;
switch(DamageKind) {
case eDamageKind_Front:
case eDamageKind_Counter:
case eDamageKind_ContinueDamage:
DamageEffect = eEffect_Damage1;
break;
case eDamageKind_Left:
DamageEffect = eEffect_Damage2;
break;
case eDamageKind_Right:
DamageEffect = eEffect_Damage3;
break;
}
if(DamageEffect != -1)
{
TARGETSET set;
set.pTarget = this;
set.ResultInfo.bCritical = bCritical;
EFFECTMGR->StartEffectProcess(DamageEffect,pAttacker,&set,1,GetID(),
EFFECT_FLAG_GENDERBASISTARGET);
}
}
if( pAttacker == HERO || this == HERO ) //磊脚狼 单固瘤 锅龋父 钎矫 //KES 040801
EFFECTMGR->AddDamageNumber(Damage,pAttacker,this,DamageKind,bCritical);
// Life 悸泼
DWORD life = GetLife();
if(life < Damage)
life = 0;
else
life = life - Damage;
SetLife(life);
// Shield 悸泼
DWORD Shield = GetShield();
if(Shield < ShieldDamage)
Shield = 0;
else
Shield = Shield - ShieldDamage;
SetShield(Shield,FALSE);
}
void CPlayer::SetLife(DWORD life, BYTE type)
{
m_CharacterInfo.Life = life;
if(GetState() == eObjectState_Die)
life = 0;
if( GAMEIN->GetMonsterGuageDlg())
{
if( GAMEIN->GetMonsterGuageDlg()->GetCurMonster() == (CObject*)this )
{
GAMEIN->GetMonsterGuageDlg()->SetMonsterLife( life, GetMaxLife() );
}
}
}
void CPlayer::SetShield(DWORD Shield, BYTE type)
{
m_CharacterInfo.Shield = Shield;
if(GetState() == eObjectState_Die)
Shield = 0;
if( GAMEIN->GetMonsterGuageDlg() )
{
if( GAMEIN->GetMonsterGuageDlg()->GetCurMonster() == (CObject*)this )
{
GAMEIN->GetMonsterGuageDlg()->SetMonsterShield( Shield, GetMaxShield());
}
}
}
void CPlayer::Heal(CObject* pHealer,BYTE HealKind,DWORD HealVal)
{
DWORD life = GetLife() + HealVal;
SetLife(life);
}
void CPlayer::Recharge(CObject* pHealer,BYTE RechargeKind,DWORD RechargeVal)
{
DWORD mana = GetNaeRyuk() + RechargeVal;
SetNaeRyuk(mana);
}
void CPlayer::ShowStreetStallTitle( BOOL bShow, char* strTitle, DWORD dwColor )
{
if( !m_pObjectBalloon ) return;
if( !(m_bObjectBalloonBits & ObjectBalloon_Title ) ) return;
m_pObjectBalloon->ShowStreeStallTitle( bShow, strTitle, dwColor );
}
void CPlayer::SetStreetStallTitle( char* strTitle )
{
if( m_pObjectBalloon )
if( m_pObjectBalloon->GetSSTitleTip() )
m_pObjectBalloon->GetSSTitleTip()->SetTitle( strTitle );
}
float CPlayer::DoGetMoveSpeed()
{
float Speed;
if(m_MoveInfo.KyungGongIdx)
{
Speed = MOVEMGR->GetKyungGongSpeed(m_MoveInfo.KyungGongIdx);
}
else
{
if(m_MoveInfo.MoveMode == eMoveMode_Run)
Speed = RUNSPEED;
else
Speed = WALKSPEED;
}
return Speed;
}
void CPlayer::SetPKMode( BOOL bPKMode )
{
m_CharacterInfo.bPKMode = bPKMode ? true : false;
}
DWORD CPlayer::DoGetMaxLife()
{
return m_CharacterInfo.MaxLife;
}
DWORD CPlayer::DoGetMaxShield()
{
return m_CharacterInfo.MaxShield;
}
void CPlayer::SetBadFame(FAMETYPE val)
{
m_CharacterInfo.BadFame = val;
}
void CPlayer::SetGuildIdxRank(DWORD GuildIdx, BYTE Rank)
{
m_CharacterInfo.MunpaID = GuildIdx;
m_CharacterInfo.PositionInMunpa = Rank;
}
void CPlayer::SetGuildMarkName(MARKNAMETYPE MarkName)
{
m_CharacterInfo.MarkName = MarkName;
}
MARKNAMETYPE CPlayer::GetGuildMarkName()
{
return m_CharacterInfo.MarkName;
}
void CPlayer::SetGuildIdx(DWORD GuildIdx)
{
m_CharacterInfo.MunpaID = GuildIdx;
}
void CPlayer::ClearGuildInfo()
{
m_CharacterInfo.MunpaID = 0;
m_CharacterInfo.PositionInMunpa = GUILD_NOTMEMBER;
m_CharacterInfo.MarkName = 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -