⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 player.cpp

📁 墨香最新私服
💻 CPP
📖 第 1 页 / 共 2 页
字号:
}

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 + -