Jump to content

Little Fix Autoattack


Helia01

Recommended Posts

  • Active Member

 

Hey M2DEV!
Today I will show you how to fix one unpleasant error related to the auto attack.
When you attack a monster automatically and for example want to move away from the monster, what do you do?
Probably you will turn off the auto attack and try to move away from the monster using the WASD keys?
Yes, but it won't work because the target doesn't reset when you try to disable the auto-attack.

Before fix:
https://metin2.download/picture/7dt9c1gmBnBzM9l6EUhms0I1WQj8m1zh/.gif

After fix:

https://metin2.download/picture/D63EBDENh0gk26hbM8m41fCA136k5Ar6/.gif


Open file: UserInterface\PythonPlayer.h
Make
"__ClearAutoAttackTargetActorID();" public!
UWWtCn2.png


Open file: UserInterface\PythonPlayerModulec.cpp
We need to create a new method

 

PyObject * playerClearAutoAttackTargetActorID(PyObject* poSelf, PyObject* poArgs)
{
	CPythonPlayer::Instance().__ClearAutoAttackTargetActorID();
	return Py_BuildNone();
}

 

add method to s_methods[]
 

{ "ClearAutoAttackTargetActorID", playerClearAutoAttackTargetActorID, METH_VARARGS },

 

 

PU73MuY.png

 


Compile bin!

Open file: root/uitaskbar.py
search

 

elif self.EVENT_MOVE_AND_ATTACK == event:

 

replace this part:

elif self.EVENT_MOVE_AND_ATTACK == event:
	btn = self.mouseModeButtonList[dir].GetChild("button_move_and_attack")
	func = player.MBF_SMART
	player.ClearAutoAttackTargetActorID()
	tooltip_text = localeInfo.TASKBAR_ATTACK


pack root file!


P.S Please forgive me for my English, I use a GoogleTranslate

Edited by Metin2 Dev
Core X - External 2 Internal
  • Metin2 Dev 9
  • Good 4
  • Love 17
Link to comment
Share on other sites

  • 2 years later...

Idk if it's ok, but for me this way is more convenient:

PythonPlayer.h
under
DWORD					m_dwAutoAttackTargetVID;
add
bool					m_bIsAutoAttack;

PythonPlayerInput.cpp
Modify if (rkInstMain.IsAttackableInstance(rkInstVictim)) from __OnPressActor like:
if (rkInstMain.IsAttackableInstance(rkInstVictim))
{
  __SetAutoAttackTargetActorID(rkInstVictim.GetVirtualID());
  m_bIsAutoAttack = true;
}

PythonPlayerInputKeyboard.cpp
add
if (m_bIsAutoAttack)
{
  __ClearAutoAttackTargetActorID();
  m_bIsAutoAttack = false;
}

under
void CPythonPlayer::NEW_SetMultiDirKeyState(bool isLeft, bool isRight, bool isUp, bool isDown)
{

This way you can cancel your auto attacks using keyboard w a s d keys

Edited by [TiTAN]
  • Metin2 Dev 1
  • Good 1
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.