Jump to content

Metin2 Fall Immune


Recommended Posts

First time thank you very much for p3ng3r.

 

1.0* InstanceBase.h added.

Userinterface/Instancebase.cpp

Search this:

 

SetVirtualID(c_rkCreateData.m_dwVID);

Add under this
 

SetInstanceFallState(CPythonNonPlayer::Instance().IsImmuneFlagByVnum(c_rkCreateData.m_dwRace, CPythonNonPlayer::IMMUNE_FALL));

search this:

 

void CInstanceBase::SetInstanceType(int iInstanceType)

 

add under this function:

 

void CInstanceBase::SetInstanceFallState(bool bIsFall)
{
	m_GraphicThingInstance.SetActorFallState(bIsFall);
}

 

Userinterface / Instancebase .h

Search this:

 

		void					SetVirtualNumber(DWORD dwVirtualNumber);

 

Add under this:

 

		void					SetInstanceFallState(bool bIsFall);

Userinterface/PythonNonPlayer.cpp

 

search this funcion:

 

void CPythonNonPlayer::Clear()

 

Add above this:

 

bool CPythonNonPlayer::IsImmuneFlagByVnum(DWORD dwVnum, DWORD dwImmuneFlag)
{
	const CPythonNonPlayer::TMobTable * c_pTable = GetTable(dwVnum);
	if (!c_pTable)
		return false;

	return IS_SET(c_pTable->dwImmuneFlag, dwImmuneFlag) != 0;
}

 

Userinterface/PythonNonPlayer.h

 

search this:

 

		#define MOB_ATTRIBUTE_MAX_NUM	12

 

add above this:

 

		enum EMobImmuneFlags
		{
			IMMUNE_FALL = 4,
		};

 

search this:

 

		const char*			GetMonsterName(DWORD dwVnum);

 

add under this:

 

		bool				IsImmuneFlagByVnum(DWORD dwVnum, DWORD dwImmuneFlag);

GameLib/ActorInstance.cpp

search this:

 

void CActorInstance::SetOwner(DWORD dwOwnerVID)

add under this funcions:

 

bool CActorInstance::GetActorFallState()
{
	return m_bIsFall;
}

void CActorInstance::SetActorFallState(bool bIsFall)
{
	m_bIsFall = bIsFall;
}

search this:

 

	m_eActorType = TYPE_PC;

add under this:
 

	m_bIsFall = false;

GameLib/ActorInstance.h

 

search this:

 

		void		SetOwner(DWORD dwOwnerVID);

 

Add under this:

 

		void		SetActorFallState(bool bIsFall);
		bool		GetActorFallState();

 

search this:

 

		DWORD						m_eActorType;

add under this:

 

		DWORD						m_bIsFall;

GameLib/ActorInstanceBattle.cpp

 

search this:

 

	if (IS_HUGE_RACE(rkActorDst.GetRace()))


change with this:

 

	if (IS_HUGE_RACE(rkActorDst.GetRace()) || rkActorDst.GetActorFallState())

 

Mob_proto.txt don't forge write immuneflag 'FALL'
 

Regards, Samurai

  • Love 2
Link to comment
Share on other sites

Announcements



×
×
  • Create New...

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.