Jump to content

Efecto de armas c++


Tyrael

Mensajes recomendados

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!

Enlace para comentar
Compartir en otros sitios

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.

Enlace para comentar
Compartir en otros sitios

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]

 

Enlace para comentar
Compartir en otros sitios

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.

Enlace para comentar
Compartir en otros sitios

Unirse a la conversación

Puedes publicar ahora y registrarte más tarde. Si tienes una cuenta, regístrate para publicar con su cuenta.

Guest
Responder a este tema...

×   Has pegado contenido con formato .   Eliminar formato

  Only 75 emoji are allowed.

×   Tu enlace se ha incorporado automáticamente.   Mostrar un enlace en su lugar

×   Se ha restaurado el contenido anterior. .   Borrar editor

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

  • Recientemente navegando por este tema   0 miembros

    • No hay usuarios registrados visitando esta página.
×
×
  • Crear nuevo...