Jump to content

Recommended Posts

Hello

Once I was bored and it occurred to me to create a feature to kiss your own shaman.

This feature was tested in Aslan's shaman system.

 

Now you can feel a little more... accompanied. ?


GIF: https://metin2.download/picture/xi0bvz0b58BySGFx2G19o462XJgd1l3g/.gif

spacer.png

 

CommonDefines.h / service.h

#define ENABLE_ASLAN_BUFF_NPC_SYSTEM
#ifdef ENABLE_ASLAN_BUFF_NPC_SYSTEM
	[...]
	#define ENABLE_ASLAN_BUFF_EMOTION //add new
#endif

 

char.cpp
 

LPCHARACTER CHARACTER::FindCharacterInView(const char * c_pszName, bool bFindPCOnly)
{
	ENTITY_MAP::iterator it = m_map_view.begin();

	for (; it != m_map_view.end(); ++it)
	{
		if (!it->first->IsType(ENTITY_CHARACTER))
			continue;

		LPCHARACTER tch = (LPCHARACTER) it->first;

		if (bFindPCOnly && tch->IsNPC()
#if defined(ENABLE_ASLAN_BUFF_NPC_SYSTEM) && defined(ENABLE_ASLAN_BUFF_EMOTION)
			&& !tch->IsBuffNPC()
#endif
		)
			continue;

		if (!strcasecmp(tch->GetName(), c_pszName)
#if defined(ENABLE_ASLAN_BUFF_NPC_SYSTEM) && defined(ENABLE_ASLAN_BUFF_EMOTION)
			&& GetBuffNPCSystem()->GetOwner() == this
#endif
		)
			return (tch);
	}

	return NULL;
}

 

cmd_emotion.cpp

#if defined(ENABLE_ASLAN_BUFF_NPC_SYSTEM) && defined(ENABLE_ASLAN_BUFF_EMOTION)
#include "buff_npc_system.h"
#endif


In ACMD(do_emotion):

1. Find:

		if (!victim->IsPC() || victim == ch)
			return;

Replace for:

		if ((!victim->IsPC()
#if defined(ENABLE_ASLAN_BUFF_NPC_SYSTEM) && defined(ENABLE_ASLAN_BUFF_EMOTION)
			&& !victim->IsBuffNPC())
#endif
		|| victim == ch
		)
			return;

2. Find: (if your serverfile are old, likely you have this: s_emotion_set.insert(std::make_pair(ch->GetVID(), victim->GetVID()));)

				else
				{
					ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("이 행동은 상호동의 하에 가능 합니다."));
					return;
				}
			}

			s_emotion_set.emplace(ch->GetVID(), victim->GetVID());

Replace for:

				else
				{
#if defined(ENABLE_ASLAN_BUFF_NPC_SYSTEM) && defined(ENABLE_ASLAN_BUFF_EMOTION)
					if (!(victim->IsBuffNPC() && ch->GetBuffNPCSystem() && victim ==  ch->GetBuffNPCSystem()->GetCharacter()))
					{
						ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("이 행동은 상호동의 하에 가능 합니다."));
						return;
					}
					if (victim->IsBuffNPC() && ch->GetBuffNPCSystem() && victim ==  ch->GetBuffNPCSystem()->GetCharacter())
					{
						if (ch->GetBuffNPCSystem()->GetSex() == GET_SEX(ch))
						{
							ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("이성간에만 할 수 있습니다."));
							return;
						}
					}
#else
					ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("이 행동은 상호동의 하에 가능 합니다."));
					return;
#endif
				}
			}

			s_emotion_set.emplace(ch->GetVID(), victim->GetVID());

 

Edited by Metin2 Dev International
Core X - External 2 Internal
  • kekw 7
  • Lmao 10
  • Love 2
Link to comment
https://metin2.dev/topic/31402-kiss-your-shamana-%3F/
Share on other sites

  • 1 year later...

As a main shaman player this post triggered me, it's 1 year old I am aware of that, but leveraging those easter vibes of resurrection here I am:
What system is that exactly? looks neat at first sight; I mean the personal shaman npc system that you are showcasing

Main purpose of resurrecting this dead post is that by seing this I got inspired and I am dreaming in modding that system so that if your main pc is shaman, you get  your personal warrior girl to do the dishes for you while you just watch and buff

I will start my research but if someone gets to hand me some references, I will thank

Cheers

Link to comment
https://metin2.dev/topic/31402-kiss-your-shamana-%3F/#findComment-170528
Share on other sites

Don't use any images from : imgur, turkmmop, freakgamers, inforge, hizliresim... Or your content will be deleted without notice...
Use : https://metin2.download/media/add/

Please use https://metin2.download/ when uploading files smaller than 100MB, otherwise the approval will take longer due to manual upload.

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • 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.