Jump to content
WorldArd

[C++]Target and Select Color

Recommended Posts

Esto ya lo habia hecho pero diferente manera

 

Consiste en el color que le aparece  a cada personaje cuando se selecciona o le das click , este color se cambia dependiendo el reino el cual esta el pj , esto mismo sucede con los npc .

 

Los mobs aparecen con un efecto diferente al comun ya es cuestion de cada uno cambia el color del efecto dependiendo el gusto de cada uno 

 

pues vamos a la implementacion:

 

[source Binario]

 

1. abrir InstanceBase.cpp en UserInterface

 

 

 

 

1.Buscar CInstanceBase::OnSelected y remplazar todo por :

void CInstanceBase::OnSelected()
{
#ifdef __MOVIE_MODE__
	if (!__IsExistMainInstance())
		return;
#endif

	if (IsStoneDoor())
		return;

	if (IsDead())
		return;

	if (IsEnemy())
	{
		__AttachSelectEffectMonster();
	}

	if (IsPC() || IsNPC())
	{
		if (m_dwEmpireID == 1) // Shinshoo
		{
			__AttachSelectEffectShinsoo();
		}
		else if (m_dwEmpireID == 2) // chunjo
		{
			__AttachSelectEffectChunjo(); 
		}
		else if (m_dwEmpireID == 3)//Jinnos
		{
			__AttachSelectEffectJinnos();
		}
	}
}

2.Buscar CInstanceBase::OnUnselected() y remplazar todo por:

void CInstanceBase::OnUnselected()
{
	//__DetachSelectEffect();


	if (IsPC() || IsNPC())
	{
		if (m_dwEmpireID == 1) //Shinsoo
		{
			__DetachSelectEffectShinsoo();
		}
		else if (m_dwEmpireID == 2)//Chunjo
		{
			__DetachSelectEffectChunjo();
		}
		else if (m_dwEmpireID == 3)//Jinnnos
		{
			__DetachSelectEffectJinnos();
		}
	}
	if (IsEnemy())
	{
		__DetachSelectEffectMonster();
	}
}

3.Buscar CInstanceBase::OnTargeted()  y remplazar todo por:

void CInstanceBase::OnTargeted()
{
#ifdef __MOVIE_MODE__
	if (!__IsExistMainInstance())
		return;
#endif

	if (IsStoneDoor())
		return;

	if (IsDead())
		return;

	if (IsEnemy())
	{
		__AttachTargetEffectMonster();
	}

	if (IsPC() || IsNPC())
	{
		if (m_dwEmpireID == 1) //Shinsoo
		{
			__AttachTargetEffectShinsoo();
		}
		else if (m_dwEmpireID == 2)//Chunjo
		{
			__AttachTargetEffectChunjo();
		}
		else if (m_dwEmpireID == 3)//Jinnnos
		{
			__AttachTargetEffectJinnos();
		}
	}


}

4.Buscar CInstanceBase::OnUntargeted() y remplazar todo por:

void CInstanceBase::OnUntargeted()
{

	if (IsPC() || IsNPC())
	{
		if (m_dwEmpireID == 1) //Shinsoo
		{
			__DetachTargetEffectShinsoo();
		}
		else if (m_dwEmpireID == 2)//Chunjo
		{
			__DetachTargetEffectChunjo();
		}
		else if (m_dwEmpireID == 3)//Jinnnos
		{
			__DetachTargetEffectJinnos();
		}
	}
	if (IsEnemy())
	{
		__DetachTargetEffectMonster();
	}
}

 

 

 

2.abrir InstanceBase.h en UserInterface

 

 

 

 

1.Buscar EFFECT_EMOTICON_END = EFFECT_EMOTICON + EMOTICON_NUM, y abajo colocamos :

EFFECT_MONSTER,
EFFECT_SHINSOO,
EFFECT_CHUNJO,
EFFECT_JINNOS,
EFFECT_TARGET_SHINSOO,
EFFECT_TARGET_JINNOS,
EFFECT_TARGET_CHUNJO,
EFFECT_TARGET_MONSTER,

2.Buscar __DetachTargetEffect y abajo de eso colocamos :

void __AttachTargetEffectMonster();
void __DetachTargetEffectMonster();
void __AttachSelectEffectMonster();
void __DetachSelectEffectMonster();

void __AttachTargetEffectShinsoo();
void __DetachTargetEffectShinsoo();
void __AttachSelectEffectShinsoo();
void __DetachSelectEffectShinsoo();

void __AttachTargetEffectJinnos();
void __DetachTargetEffectJinnos();
void __AttachSelectEffectJinnos();
void __DetachSelectEffectJinnos();

void __AttachTargetEffectChunjo();
void __DetachTargetEffectChunjo();
void __AttachSelectEffectChunjo();
void __DetachSelectEffectChunjo();

 

 

 

3.Abrir InstanceBaseEffect.cpp en UserInterface

 

 

 

1.Buscar CInstanceBase::__StoneSmoke_Inialize y arriba colocamos 

///////////////////////////////////////////////////////////////////////

void CInstanceBase::__AttachSelectEffectMonster()
{
	__EffectContainer_AttachEffect(EFFECT_MONSTER);
}
void CInstanceBase::__DetachSelectEffectMonster()
{
	__EffectContainer_DetachEffect(EFFECT_MONSTER);
}
void CInstanceBase::__AttachTargetEffectMonster()
{
	__EffectContainer_AttachEffect(EFFECT_TARGET_MONSTER);
}
void CInstanceBase::__DetachTargetEffectMonster()
{
	__EffectContainer_DetachEffect(EFFECT_TARGET_MONSTER);
}

/////////////////////////////////////////////////////////////

void CInstanceBase::__AttachSelectEffectShinsoo()
{
	__EffectContainer_AttachEffect(EFFECT_SHINSOO);
}
void CInstanceBase::__DetachSelectEffectShinsoo()
{
	__EffectContainer_DetachEffect(EFFECT_SHINSOO);
}
void CInstanceBase::__AttachTargetEffectShinsoo()
{
	__EffectContainer_AttachEffect(EFFECT_TARGET_SHINSOO);
}
void CInstanceBase::__DetachTargetEffectShinsoo()
{
	__EffectContainer_DetachEffect(EFFECT_TARGET_SHINSOO);
}

/////////////////////////////////////////////////////////////

void CInstanceBase::__AttachSelectEffectChunjo()
{
	__EffectContainer_AttachEffect(EFFECT_CHUNJO);
}
void CInstanceBase::__DetachSelectEffectChunjo()
{
	__EffectContainer_DetachEffect(EFFECT_CHUNJO);
}
void CInstanceBase::__AttachTargetEffectChunjo()
{
	__EffectContainer_AttachEffect(EFFECT_TARGET_CHUNJO);
}
void CInstanceBase::__DetachTargetEffectChunjo()
{
	__EffectContainer_DetachEffect(EFFECT_TARGET_CHUNJO);
}

/////////////////////////////////////////////////////////////

void CInstanceBase::__AttachSelectEffectJinnos()
{
	__EffectContainer_AttachEffect(EFFECT_JINNOS);
}
void CInstanceBase::__DetachSelectEffectJinnos()
{
	__EffectContainer_DetachEffect(EFFECT_JINNOS);
}
void CInstanceBase::__AttachTargetEffectJinnos()
{
	__EffectContainer_AttachEffect(EFFECT_TARGET_JINNOS);
}
void CInstanceBase::__DetachTargetEffectJinnos()
{
	__EffectContainer_DetachEffect(EFFECT_TARGET_JINNOS);
}

/////////////////////////////////////////////////////////////

 

 

 

4.Abrir PythonCharacterManagerModule.cpp en UserInterface

 

 

1.Buscamos EFFECT_CRITICAL y debajo colocamos 

PyModule_AddIntConstant(poModule, "EFFECT_MONSTER",			CInstanceBase::EFFECT_MONSTER);
PyModule_AddIntConstant(poModule, "EFFECT_TARGET_MONSTER",	CInstanceBase::EFFECT_TARGET_MONSTER);
PyModule_AddIntConstant(poModule, "EFFECT_SHINSOO",			CInstanceBase::EFFECT_SHINSOO);
PyModule_AddIntConstant(poModule, "EFFECT_TARGET_SHINSOO",	CInstanceBase::EFFECT_TARGET_SHINSOO);
PyModule_AddIntConstant(poModule, "EFFECT_CHUNJO",			CInstanceBase::EFFECT_CHUNJO);
PyModule_AddIntConstant(poModule, "EFFECT_TARGET_CHUNJO",	CInstanceBase::EFFECT_TARGET_CHUNJO);
PyModule_AddIntConstant(poModule, "EFFECT_JINNOS",			CInstanceBase::EFFECT_JINNOS);
PyModule_AddIntConstant(poModule, "EFFECT_TARGET_JINNOS",	CInstanceBase::EFFECT_TARGET_JINNOS);

 

 

 

Con eso ya hemos terminado con el source, ahora vamos con el cliente

 

[Python Cliente]

 

1.Abrimos playersettingmodule.py en root

 

 

 

 

1. Buscamos chrmgr.EFFECT_STUN y arriba colocamos

chrmgr.RegisterCacheEffect(chrmgr.EFFECT_SHINSOO, "", "d:/ymir work/effect/world/shinsoo_select.mse")
chrmgr.RegisterCacheEffect(chrmgr.EFFECT_TARGET_SHINSOO, "", "d:/ymir work/effect/world/shinsoo_glow_select.mse")
chrmgr.RegisterCacheEffect(chrmgr.EFFECT_CHUNJO, "", "d:/ymir work/effect/world/chunjo_select.mse")
chrmgr.RegisterCacheEffect(chrmgr.EFFECT_TARGET_CHUNJO, "", "d:/ymir work/effect/world/chunjo_glow_select.mse")
chrmgr.RegisterCacheEffect(chrmgr.EFFECT_JINNOS, "", "d:/ymir work/effect/world/jinnos_select.mse")
chrmgr.RegisterCacheEffect(chrmgr.EFFECT_TARGET_JINNOS, "", "d:/ymir work/effect/world/jinnos_glow_select.mse")
chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MONSTER, "", "d:/ymir work/effect/world/mob_select.mse")
chrmgr.RegisterCacheEffect(chrmgr.EFFECT_TARGET_MONSTER, "", "d:/ymir work/effect/world/mob_glow_select.mse")

 

 

 

por ultimo agregamos el epk y eix que dejare en adjunto el cual lo colocas en tu cliente y lo agregas en el index el cual contiene los efectos nuevos 

 

Con eso seria todo 

 

img

 

 

90a2fbb9e9.png

 

 

 

pd: cualquier error o problemas avisar y se tratara de resolver 

pd1: primer trabajo en source  :D

 

Creditos: Dragonslayer por la idea de los reinos , pai por aconsejarme colores para los mobs

 

 

Saludos!

Debes iniciar sesión para ver el contenido del enlace en esta publicación.

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.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...