Jump to content
Sign in to follow this  
Tyrael

Efecto de armas c++

Recommended Posts

Buenas noches a la comunidad hace tiempo esto se encuentra post en metin2 dev pero nadie
se ha animado a traducirlo y explicarlo de la manera correcta
y eso haré a continuación:
 

Locale_inc.cpp
(opcional es para llevar un control de lo que se hace). xd
#define ENABLE_ARMAS_EFFECT_MOVIMIENTO

instancebase.cpp
Buscar:
UINT CInstanceBase::__GetRefinedEffect(CItemData* pItem)
  
  agregar arriba de:

		if (m_swordRefineEffectRight)
			m_swordRefineEffectRight = __AttachEffect(m_swordRefineEffectRight);
		if (m_swordRefineEffectLeft)
			m_swordRefineEffectLeft = __AttachEffect(m_swordRefineEffectLeft);
		break;

#ifdef ENABLE_ARMAS_EFFECT_MOVIMIENTO
		if (pItem->GetSubType() == CItemData::WEAPON_SWORD)
		{
			DWORD vnum = pItem->GetIndex();
			if (vnum >= ID && vnum <= ID) // Cambiar "ID" por el ID (vnum) de tu arma
			{
				__ClearWeaponRefineEffect(); // Clear the previous effect
				m_swordRefineEffectRight = EFFECT_REFINED + EFFECT_SWORD_REFINED_NEW1; //  NEW EFFECT (AQUI CAMBIAS EL NOMBRE SEGUN EL SET)
			}
		}
		if (pItem->GetSubType() == CItemData::WEAPON_SWORD)
		{
			DWORD vnum = pItem->GetIndex();
			if (vnum >= ID && vnum <= ID) // Cambiar "ID" por el ID (vnum) de tu arma
			{
				__ClearWeaponRefineEffect(); // Clear the previous effect
				m_swordRefineEffectRight = EFFECT_REFINED + EFFECT_SWORD_REFINED_NEW2; //  NEW EFFECT (AQUI CAMBIAS EL NOMBRE SEGUN EL SET)
			}
		}
		if (pItem->GetSubType() == CItemData::WEAPON_TWO_HANDED)
		{
			DWORD vnum = pItem->GetIndex();
			if (vnum >= ID && vnum <= ID) // Cambiar "ID" por el ID (vnum) de tu arma
			{
				__ClearWeaponRefineEffect(); // Clear the previous effect
				m_swordRefineEffectRight = EFFECT_REFINED + EFFECT_SWORD_REFINED_NEW3; //  NEW EFFECT (AQUI CAMBIAS EL NOMBRE SEGUN EL SET)
			}
		}
		if (pItem->GetSubType() == CItemData::WEAPON_BOW)
		{
			DWORD vnum = pItem->GetIndex();
			if (vnum >= ID && vnum <= ID) // Change "ID" to your Weapon ID
			{
				__ClearWeaponRefineEffect(); // Cambiar "ID" por el ID (vnum) de tu arma
				m_swordRefineEffectRight = EFFECT_REFINED + EFFECT_SWORD_REFINED_NEW4; //  NEW EFFECT (AQUI CAMBIAS EL NOMBRE SEGUN EL SET)
			}
		}
		if (pItem->GetSubType() == CItemData::WEAPON_FAN)
		{
			DWORD vnum = pItem->GetIndex();
			if (vnum >= ID && vnum <= ID) // Cambiar "ID" por el ID (vnum) de tu arma
			{
				__ClearWeaponRefineEffect(); // Clear the previous effect
				m_swordRefineEffectRight = EFFECT_REFINED + EFFECT_SWORD_REFINED_NEW5; //  NEW EFFECT (AQUI CAMBIAS EL NOMBRE SEGUN EL SET)
			}
		}
		if (pItem->GetSubType() == CItemData::WEAPON_BELL)
		{
			DWORD vnum = pItem->GetIndex();
			if (vnum >= ID && vnum <= ID) //  Cambiar "ID" por el ID (vnum) de tu arma
			{
				__ClearWeaponRefineEffect(); // Clear the previous effect
				m_swordRefineEffectRight = EFFECT_REFINED + EFFECT_SWORD_REFINED_NEW6; //  NEW EFFECT (AQUI CAMBIAS EL NOMBRE SEGUN EL SET)
			}
		}
		if (pItem->GetSubType() == CItemData::WEAPON_DAGGER)
		{
			DWORD vnum = pItem->GetIndex();
			if (vnum >= ID && vnum <= ID) // Cambiar "ID" por el ID (vnum) de tu arma
			{
				__ClearWeaponRefineEffect(); // Clear the previous effect
				m_swordRefineEffectRight = EFFECT_REFINED + EFFECT_SWORD_REFINED_NEW7; //  NEW EFFECT (AQUI CAMBIAS EL NOMBRE SEGUN EL SET)
				m_swordRefineEffectLeft = EFFECT_REFINED + EFFECT_SWORD_REFINED_NEW_LEFT7; //  NEW EFFECT (AQUI CAMBIAS EL NOMBRE SEGUN EL SET)
			}
		}
#endif

InstanceBase.h

Buscas

EFFECT_REFINED_NUM,

agregas arriba de el

#ifdef ENABLE_ARMAS_EFFECT_MOVIMIENTO
			EFFECT_SWORD_REFINED_NEW1,
			EFFECT_SWORD_REFINED_NEW2,
			EFFECT_SWORD_REFINED_NEW3,
			EFFECT_SWORD_REFINED_NEW4,
			EFFECT_SWORD_REFINED_NEW5,
			EFFECT_SWORD_REFINED_NEW6,
			EFFECT_SWORD_REFINED_NEW7,
			EFFECT_SWORD_REFINED_NEW_LEFT7,
#endif


playersettingmodule.py

Buscamos:

chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+20, "Bip01", "D:/ymir work/pc/common/effect/armor/armor-4-2-2.mse")

Agregamos abajo segun el effect

ejemplo: (en el caso de arma)
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+21, "PART_WEAPON", "D:/ymir work/item/weapon/fms.mse")

En espada, lanza, campana, fan

se usa: PART_WEAPON

en el casco de arco se usa :  PART_WEAPON_LEFT

y en el caso de dagas se realizada de esta manera ejemplo


	chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+52, "PART_WEAPON", "D:/ymir work/item/weapon/bezduszne.mse")
	chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+53, "PART_WEAPON_LEFT", "D:/ymir work/item/weapon/bezduszne.mse")
	
Creditos Metin2dev al que lo post	
Creditos tyrael por hacer la guia y explicarlo de una manera mas sencilla en español.

Ojo Esto es para Arma si desea usar costumes ejemplo: (Costume weapon, estolas y atuendos cambia)
con mas tiempo estare anexando para costume
saludos!

Share this post


Link to post
Share on other sites
hace 7 horas, Tyrael dijo:

 

#ifdef ENABLE_ARMAS_EFFECT_MOVIMIENTO
		if (pItem->GetSubType() == CItemData::WEAPON_SWORD)
		{
			DWORD vnum = pItem->GetIndex();
			if (vnum >= ID && vnum <= ID) // Cambiar "ID" por el ID (vnum) de tu arma
			{
				__ClearWeaponRefineEffect(); // Clear the previous effect
				m_swordRefineEffectRight = EFFECT_REFINED + EFFECT_SWORD_REFINED7 + refine - 7; // Normal Weapon Refine-effect
				m_swordRefineEffectRight = EFFECT_REFINED + EFFECT_SWORD_REFINED_NEW1; //  NEW EFFECT (AQUI CAMBIAS EL NOMBRE SEGUN EL SET)
			}
		}
...
#endif

 

?

Por qué le das primero un valor a m_swordRefineEffectRight y luego se lo cambias? Sólo te va a coger el último valor que le definiste, es inútil conservar la primera definición.

Share this post


Link to post
Share on other sites

Te he creado una pequeña modificacion para que el sistema este mas optimizado y funcione mejor:

 

5727858a92.png

Para añadir armas a la lista se modifica en weapons, cada apartado es un tipo de arma

Para modificarlo en el CITEMDATA, se debe modificar el sizeof a:

sizeof(weapons[NUMERODEINDEX][0]

y en vnum == weapons[NUMERODEINDEX]

 

Share this post


Link to post
Share on other sites
hace 1 hora, Akroma dijo:

Te he creado una pequeña modificacion para que el sistema este mas optimizado y funcione mejor:

 

5727858a92.png

Para añadir armas a la lista se modifica en weapons, cada apartado es un tipo de arma

Para modificarlo en el CITEMDATA, se debe modificar el sizeof a:

sizeof(weapons[NUMERODEINDEX][0]

y en vnum == weapons[NUMERODEINDEX]

 

Ese for no funciona, mira la syntax.

PD: Estabas mejor en la cueva, vuelve a ella.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...