Jump to content

Fix Invisibility and Skill Affect Eunhyeong


Recommended Posts

  • Developer
On 7/7/2018 at 11:47 AM, Heathcliff™ said:

Thank you for this release, but it has a small bug. Make your GM character invisible, then zoom in your chatracter. You will se your character all it effects like GM logo, and skill effects. Then use Ninja hiding skill, and make this camera movement again with another character next to the ninja char. You will see the armor effects on the ninja :)

 

 

  • Metin2 Dev 1

My youtube channel  on which you can see my works here

Link to comment
Share on other sites

35 minutes ago, Ikarus_ said:

 

 

You can also put that code in the ::Render (InstanceBase.cpp)

And make the main character to see the effect and for others to be hidden. (I know that is not the perfect way cause the ::Render running without stop but still a ok method to be use.)

			if (pkInstEach->IsAffect(AFFECT_EUNHYEONG) || pkInstEach->IsAffect(AFFECT_INVISIBILITY))
			{
				if (CPythonPlayer::Instance().IsMainCharacterIndex(pkInstEach->GetVirtualID()))
					continue;

#ifdef ENABLE_CAN_SEE_HIDDEN_THING_FOR_GM
				if (__MainCanSeeHiddenThing())
					break;
#endif

				pkInstEach->m_GraphicThingInstance.HideAllAttachingEffect();
			}
			else
				pkInstEach->m_GraphicThingInstance.ShowAllAttachingEffect();

 

If you have a option that Hide Effects you must put a check in the else so you can check if is enable or not before continue to ShowAllAttachingEffect again.

Edited by HITRON
Link to comment
Share on other sites

  • 3 years later...
  • Active Member

Relog bugs fixes (2)

Bugs:

  1. Relog with active AFFECT_EUNHYEONG and the character will be visible again after 2 seconds
  2. Relog with an active effect like poison or bleeding and AFFECT_EUNHYEONG and when you come visible again the debuffs will not be visible.

FIX:

In InstanceBaseEffect.cpp:

Find void CInstanceBase::__SetReviveInvisibilityAffect(bool isVisible) and modify as follows
(or add above void CInstanceBase::__Assassin_SetEunhyeongAffect(bool isVisible) if you don't have it at all)
 

Spoiler
void CInstanceBase::__SetReviveInvisibilityAffect(bool isVisible)
{
	if (isVisible)
	{
		// NOTE : Dress Έ¦ ΐΤ°ν ΐΦΐΈΈι Alpha Έ¦ ³ΦΑφ ΎΚ΄Β΄Ω.
		if (IsWearingDress())
			return;

		if (__IsMainInstance() || __MainCanSeeHiddenThing())
		{
			m_GraphicThingInstance.BlendAlphaValue(0.5f, 1.0f);
		}
		else
		{
			// 2004.10.16.myevan.ΐΊΗόΉύ ΏΟΐό ΕυΈν
			m_GraphicThingInstance.BlendAlphaValue(0.0f, 1.0f);
#if !defined(__BL_GRAPHIC_ON_OFF__)
			m_GraphicThingInstance.HideAllAttachingEffect();
#endif
		}
	}
	else
	{
		if (!IsAffect(AFFECT_EUNHYEONG))
		{
			m_GraphicThingInstance.BlendAlphaValue(1.0f, 1.0f);
			m_GraphicThingInstance.ShowAllAttachingEffect();
		}
	}
}

 

 

In void CInstanceBase::__Assassin_SetEunhyeongAffect(bool isVisible) add the ShowAllAttachingEffects() command in the else statement like this:
 

Spoiler
void CInstanceBase::__Assassin_SetEunhyeongAffect(bool isVisible)
{
	if (isVisible)
	{
		// NOTE : Dress Έ¦ ΐΤ°ν ΐΦΐΈΈι Alpha Έ¦ ³ΦΑφ ΎΚ΄Β΄Ω.
		if (IsWearingDress())
			return;

		if (__IsMainInstance() || __MainCanSeeHiddenThing())
		{
			m_GraphicThingInstance.BlendAlphaValue(0.5f, 1.0f);
		}
		else
		{
			// 2004.10.16.myevan.ΐΊΗόΉύ ΏΟΐό ΕυΈν
			m_GraphicThingInstance.BlendAlphaValue(0.0f, 1.0f);
#if !defined(__BL_GRAPHIC_ON_OFF__)
			m_GraphicThingInstance.HideAllAttachingEffect();
#endif
		}
	}
	else
	{
		m_GraphicThingInstance.BlendAlphaValue(1.0f, 1.0f);
		m_GraphicThingInstance.ShowAllAttachingEffect();
	}
}

 

 

Last but not least go to the switch statement in void CInstanceBase::__SetAffect(UINT eAffect, bool isVisible) and change the AFFECT_REVIVE_INVISIBILITY case like this:
 

Spoiler
...
case AFFECT_REVIVE_INVISIBILITY:
	__SetReviveInvisibilityAffect(isVisible);
	break;
case AFFECT_EUNHYEONG:
	__Assassin_SetEunhyeongAffect(isVisible);
	break;
...

 

 

I believe all that's left is figure out how to show the make effect visible to other players like this:
 

On 12/20/2018 at 11:12 AM, xUniverse said:

This is what you want?

2mu7KQx.gif

(the delay is because I've tested in a online sv and my conection is bad)

 

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.