Jump to content
×
×
  • Create New...

How To Make Combo Effect


Recommended Posts

  • Premium

in bin client open: InstanceBaseEffect.cpp

 

find:

void CInstanceBase::__ComboProcess()

replace all function:

 

void CInstanceBase::__ComboProcess()
{
	DWORD dwcurComboIndex = m_GraphicThingInstance.GetComboIndex();
	if (0 != dwcurComboIndex)
	{
		if (m_dwLastComboIndex != m_GraphicThingInstance.GetComboIndex())
		{
			if (!m_GraphicThingInstance.IsHandMode() & IsAffect(AFFECT_HWAYEOM))
			{
				__AttachEffect(EFFECT_FLAME_ATTACK);
			}
		}
	}
	m_dwLastComboIndex = dwcurComboIndex;
}

 

 

 

PS: Only work with Warrior's, if any one know why update post please. Its a very nice effect

 

 

 

Font: EPVP by: KOrí

Link to comment
13 minutes ago, EnKor said:

PS: Only work with Warrior's, if any one know why update post please. Its a very nice effect

It only works on Warrior's with Sword Aura affect.

Link to comment
  • Premium
7 minutes ago, Cyber36 said:

If you want that effect for every normal hit, delete this:

 & IsAffect(AFFECT_HWAYEOM)

noway!! It's NOT the soluction xD

 

because Effect will be Attach in char and not in weapon.

  • Lmao 1
Link to comment
  • Bot
1 hour ago, EnKor said:

noway!! It's NOT the soluction xD

 

because Effect will be Attach in char and not in weapon.

I tested it and it works. Normal hits will do this effect, skills won't. Show me the opposite or a better way, when you know how please.

 

MfG

Cyber

Link to comment
  • Premium
22 minutes ago, Cyber36 said:

I tested it and it works. Normal hits will do this effect, skills won't. Show me the opposite or a better way, when you know how please.

 

MfG

Cyber

in all races ??

 

:

Hidden Content

    Give reaction to this post to see the hidden content.
: :

Hidden Content

    Give reaction to this post to see the hidden content.
: and same for shaman.  efect stay in char body, not in weapon  its to ugly this way.

  • Metin2 Dev 2
Link to comment
  • Bot
4 hours ago, EnKor said:

in all races ??

 

:

Hidden Content

    Give reaction to this post to see the hidden content.
: :

Hidden Content

    Give reaction to this post to see the hidden content.
: and same for shaman.  efect stay in char body, not in weapon  its to ugly this way.

Okay, that I didn't tested, you're right Oo

Le'me check that :)

P.S: Huh, first I thought it's a stupid check like: "if character == "warrior"" or things like that, but it isn't Oo In my source this function was uncommented, is that the reason maybe? xD

MfG

Cyber

Link to comment
  • 1 year later...

playersettingmodule.py

EDIT chrmgr.RegisterEffect(chrmgr.EFFECT_FLAME_ATTACK, "equip_right_hand", "d:/ymir work/effect/hit/blow_flame/flame_3_weapon.mse")

TO

chrmgr.RegisterCacheEffect(chrmgr.EFFECT_FLAME_ATTACK, "Bip01 R Hand", "d:/ymir work/effect/hit/blow_flame/flame_3_weapon.mse")

(equip_right_hand >> Bip01 R Hand) It will work smoothly on every model (shaman, ninja, sura, warrior)

Moreover this way the effect won't be displayed across clients since the combo index used is referred only to played character. To display the effect correctly the function may be modified this way

InstanceBase.cpp

void CInstanceBase::__ComboProcess()
{
	if (isGetComboAttacking())
	{
		if (!m_GraphicThingInstance.IsHandMode())
		{
			__AttachEffect(EFFECT_FLAME_ATTACK2);
		}
	}
}

InstanceBase.h

BOOL					isGetComboAttacking();

InstanceBaseMovement.cpp

BOOL CInstanceBase::isGetComboAttacking()
{
	return m_GraphicThingInstance.isGetComboAttacking();
}

ActorInstanceBattle.cpp

BOOL CActorInstance::isGetComboAttacking()
{
	if (!m_pkCurRaceMotionData)
		return FALSE;

	if (!m_pkCurRaceMotionData->isAttackingMotion())
		return FALSE;

	const NRaceData::TMotionAttackData * c_pData = m_pkCurRaceMotionData->GetMotionAttackDataPointer();
	if (NRaceData::MOTION_TYPE_COMBO != c_pData->iMotionType)
		return FALSE;
	if (m_lastMotionName == m_pkCurRaceMotionData->GetMotionFileName())
		return FALSE;
	m_lastMotionName = m_pkCurRaceMotionData->GetMotionFileName();
	return TRUE;
}
(ActorInstanceBattle.cpp) find "void CActorInstance::__OnEndCombo()", "void CActorInstance::__ClearCombo()" and within those add m_lastMotionName = NULL;

ActorInstance.h

BOOL		isGetComboAttacking();
const char*						m_lastMotionName;

I know its a old question but someone might find this useful (can be applied to other effects like the lighting one in /effect/hit/blow_electric

  • Love 1
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.