Xayah

 tutoriel C++ - Afficher les Metins sur la Minimap

Recommended Posts

Niveau requis  Intermédiaire

Temps estimé :  15 minutes

 

Ce tutoriel aura pour but d'afficher les Metins sur vos minimaps ! 

 

Pré-requis :

  • Les sources Metin2

 

I. Partie Sources

Révélation

 

A. Fichier InstanceBase.h

Révélation

Cherchez le code suivant :


			NAMECOLOR_WAYPOINT,

Ajoutez ceci en dessous :


			NAMECOLOR_METIN,

 

 

B. Fichier PythonCharacterManagerModule.cpp

Révélation

Cherchez le code suivant :


	PyModule_AddIntConstant(poModule, "NAMECOLOR_MOB", CInstanceBase::NAMECOLOR_NORMAL_MOB);

Ajoutez ceci en dessous :


	PyModule_AddIntConstant(poModule, "NAMECOLOR_METIN", CInstanceBase::NAMECOLOR_METIN);

 

 

C. Fichier InstanceBaseEffect.cpp

Révélation

Cherchez le code suivant :


	else if (IsPoly())
{
	return NAMECOLOR_MOB;
}

Ajoutez ceci en dessous :


	else if (IsStone())
{
	return NAMECOLOR_METIN;
}

 

 

D. Fichier PythonMiniMap.h

Révélation

Cherchez le code suivant :


		TInstanceMarkPositionVector		m_WarpPositionVector;

Ajoutez ceci en dessous :


		TInstanceMarkPositionVector		m_MetinPositionVector;

 

 

E. Fichier PythonMiniMap.cpp

Révélation

Cherchez le code suivant :


	m_NPCPositionVector.clear();

Ajoutez ceci en dessous :


	m_MetinPositionVector.clear();

 

 

Cherchez le code suivant :


		else if (pkInstEach->IsNPC())
	{
		aMarkPosition.m_fX = ( m_fWidth - (float)m_WhiteMark.GetWidth() ) / 2.0f + fDistanceFromCenterX + m_fScreenX;
		aMarkPosition.m_fY = ( m_fHeight - (float)m_WhiteMark.GetHeight() ) / 2.0f + fDistanceFromCenterY + m_fScreenY;

		m_NPCPositionVector.push_back(aMarkPosition);
	}

Ajoutez ceci en dessous :


else if (pkInstEach->IsStone())
	{
		aMarkPosition.m_fX = (m_fWidth - (float)m_WhiteMark.GetWidth()) / 2.0f + fDistanceFromCenterX + m_fScreenX;
		aMarkPosition.m_fY = (m_fHeight - (float)m_WhiteMark.GetHeight()) / 2.0f + fDistanceFromCenterY + m_fScreenY;

		m_MetinPositionVector.push_back(aMarkPosition);
	}

 

 

Et enfin cherchez ce code :


	// NPC
STATEMANAGER.SetRenderState(D3DRS_TEXTUREFACTOR, CInstanceBase::GetIndexedNameColor(CInstanceBase::NAMECOLOR_NPC));
aIterator = m_NPCPositionVector.begin();
while (aIterator != m_NPCPositionVector.end())
{
	TMarkPosition & rPosition = *aIterator;
	m_WhiteMark.SetPosition(rPosition.m_fX, rPosition.m_fY);
	m_WhiteMark.Render();
	++aIterator;
}

Ajoutez ceci en dessous :


	// Metin
STATEMANAGER.SetRenderState(D3DRS_TEXTUREFACTOR, CInstanceBase::GetIndexedNameColor(CInstanceBase::NAMECOLOR_METIN));
aIterator = m_MetinPositionVector.begin();
while (aIterator != m_MetinPositionVector.end())
{
	TMarkPosition & rPosition = *aIterator;
	m_WhiteMark.SetPosition(rPosition.m_fX, rPosition.m_fY);
	m_WhiteMark.Render();
	++aIterator;
}

 

Vous pouvez désormais compiler votre launcher !

 

 

II. Partie Client (Python)

Révélation

 

Veuillez dépack votre fichier root avant d'effectuer les modifications suivantes.

 

A. Fichier colorinfo.py

Révélation

Cherchez le code suivant :


CHR_NAME_RGB_WARP = (136, 218, 241)

Ajoutez ceci en dessous :


CHR_NAME_RGB_METIN = (255, 132, 0)

 

Information  Vous pouvez modifier la couleur du point qui apparaîtra sur la Minimap en changeant les valeurs des couleurs RVB entre parenthèses. Voici un lien utile pour avoir des valeurs : Color HTML copiez uniquement les valeurs présentes dans les cases R G & B

Vous pouvez désormais sauvegarder !

 

B. Fichier introloading.py

Révélation

Cherchez le code suivant :


			chrmgr.NAMECOLOR_WARP : colorInfo.CHR_NAME_RGB_WARP,

Ajoutez ceci en dessous :


			chrmgr.NAMECOLOR_METIN : colorInfo.CHR_NAME_RGB_METIN,

Vous pouvez désormais sauvegarder & repack votre fichier root !

 

Succès ! Vous avez désormais vos Metins qui apparaissent sur vos minimaps !

 

 

 

Pour continuer :

Si vous avez un soucis, n'hésitez pas à poster votre demande d'aide dans l'A/Q/S

Source de base : Metin2dev

 

  • Like 1

Share this post


Link to post
Share on other sites

  • Recently Browsing   0 members

    No registered users viewing this page.