Aller au contenu
Top-Metin2.org - Vous êtes à la recherche d'un serveur Metin 2 ? ×
×
×
  • Créer...

C++/Py OnRunMouseWheel


Messages recommandés

Centre de Téléchargement

Hidden Content

    Give reaction to this post to see the hidden content.
( Interne )

Bonjour, je vous partage le MouseWheel qui fonctionne avec la molette de votre souris.

Aperçu :

Hidden Content

    Give reaction to this post to see the hidden content.

Hidden Content

    Give reaction to this post to see the hidden content.

Hidden Content

    Give reaction to this post to see the hidden content.

Voici les 3 aperçu ( Peut importe la fenêtre temps que y'a un ScrollBar cela marchera avec tout )

Commençons le tutoriel

 

Côté source client :

EterPythonLib/PythonWindow.cpp

Chercher :

	BOOL CWindow::OnMouseMiddleButtonUp()
	{
		long lValue;
		if (PyCallClassMemberFunc(m_poHandler, "OnMouseMiddleButtonUp", BuildEmptyTuple(), &lValue))
		if (0 != lValue)
			return TRUE;

		return FALSE;
	}

Ajouté en dessous :

	BOOL CWindow::RunMouseWheelEvent(long nLen)
	{
		bool bValue = false;
		if (PyCallClassMemberFunc(m_poHandler, "OnRunMouseWheel", Py_BuildValue("(l)", nLen), &bValue))
			return bValue;
		return bValue;
	}

EterPythonLib/PythonWindow.h

Chercher :

virtual BOOL	OnMouseMiddleButtonUp();

Ajouté en dessous :

virtual BOOL	RunMouseWheelEvent(long nLen);

EterPythonLib/PythonWindowManager.cpp

Chercher :

	// IME
	void CWindowManager::RunIMEUpdate()
	{
		if (m_pLockWindow)
		{
			m_pLockWindow->OnIMEUpdate();
			return;
		}

		if (!m_pActiveWindow)
			return;
		if (!m_pActiveWindow->IsRendering())
			return;

		m_pActiveWindow->OnIMEUpdate();
	}

Ajouté au dessus :

	bool CWindowManager::RunMouseWheelEvent(long nLen)
	{
		CWindow* pWin;
		if (pWin = GetPointWindow())
		{
			if (pWin->IsRendering() || pWin->IsShow())
			{
				if (pWin->RunMouseWheelEvent(nLen))
					return true;
				else if (pWin->GetRoot()->RunMouseWheelEvent(nLen))
					return true;
			}
		}
		return false;
	}

EterPythonLib/PythonWindowManager.h

Chercher :

void RunMouseMiddleButtonUp(long x, long y);

Ajouté en dessous :

bool RunMouseWheelEvent(long nLen);

UserInterface/PythonApplicationEvent.cpp

Chercher :

void CPythonApplication::OnMouseMiddleButtonUp(int x, int y)
{
	CCameraManager& rkCmrMgr=CCameraManager::Instance();
	CCamera* pkCmrCur=rkCmrMgr.GetCurrentCamera();
	if (pkCmrCur)
		pkCmrCur->EndDrag();

	if ( !m_pyBackground.IsMapReady() )
		return;

	SetCursorNum(NORMAL);
	if ( CURSOR_MODE_HARDWARE == GetCursorMode())
		SetCursorVisible(TRUE);
}

Ajouté en dessous :

Attention ! Certaine personne peuvent avoir la fonction à ajouté, regarder bien avant d'ajouter la fonction void CPythonApplication::OnMouseWheel(int nLen) si vous ne la posséder pas déjà, si c'est le cas remplacer là complètement.
void CPythonApplication::OnMouseWheel(int nLen)
{
	if (!(UI::CWindowManager::Instance().RunMouseWheelEvent(nLen)))
	{
		CCameraManager& rkCmrMgr = CCameraManager::Instance();
		CCamera* pkCmrCur = rkCmrMgr.GetCurrentCamera();
		if (pkCmrCur)
			pkCmrCur->Wheel(nLen);
	}
}
Succès ! Terminer pour le côté source client.

 

Côté client :

root/ui.py

Chercher dans la classe Window :

self.onMouseLeftButtonUpEvent = None

Ajouté en dessous :

self.onRunMouseWheelEvent = None

Ajouté tout en bas de la class Window :

	def SetOnRunMouseWheelEvent(self, event):
		self.onRunMouseWheelEvent = event

	def OnRunMouseWheel(self, nLen):
		if self.onRunMouseWheelEvent:
			apply(self.onRunMouseWheelEvent, (bool(nLen < 0), ))
			return True

		return False

Pour les personnes ayant ce système 

Hidden Content

    Give reaction to this post to see the hidden content.
 :

 

root/uiTarget.py :

Chercher :

			def AppendWindow(self, wnd, x = 0, width = 0, height = 0):
				if width == 0:
					width = wnd.GetWidth()
				if height == 0:
					height = wnd.GetHeight()

				wnd.SetParent(self)
				if x == 0:
					wnd.SetPosition((self.GetWidth() - width) / 2, self.yPos)
				else:
					wnd.SetPosition(x, self.yPos)
				wnd.Show()

				self.children.append(wnd)
				self.yPos += height + 5

Ajouté en dessous :

			def OnRunMouseWheel(self, nLen):
				if self.itemScrollBar.IsShow():
					if nLen > 0:
						self.itemScrollBar.OnUp()
					else:
						self.itemScrollBar.OnDown()

 

root/uiCharacter.py :

Chercher :

def __UpdateQuestClock(self):

Ajouté au dessus de cette fonction :

	def OnRunMouseWheel(self, nLen):
		if self.questScrollBar.IsShow():
			if nLen > 0:
				self.questScrollBar.OnUp()
			else:
				self.questScrollBar.OnDown()

 

Pour les personnes ayant ce système 

Hidden Content

    Give reaction to this post to see the hidden content.
 :

root/uiCharacterDetails.py :

Chercher :

	def OnScroll(self):
		self.RefreshLabel()

Ajouté en dessous :

	def OnRunMouseWheel(self, nLen):
		if self.ScrollBar.IsShow():
			if nLen > 0:
				self.ScrollBar.OnUp()
			else:
				self.ScrollBar.OnDown()

 

root/uiChat.py :

Chercher :

	def OnScroll(self):
		self.scrollBarPos = self.scrollBar.GetPos()

		lineCount = chat.GetLineCount(self.chatID)
		visibleLineCount = chat.GetVisibleLineCount(self.chatID)
		endLine = visibleLineCount + int(float(lineCount - visibleLineCount) * self.scrollBarPos)

		chat.SetEndPos(self.chatID, self.scrollBarPos)

Ajouté en dessous :

	def OnRunMouseWheel(self, nLen):
		if self.scrollBar.IsShow():
			if nLen > 0:
				self.scrollBar.OnUp()
			else:
				self.scrollBar.OnDown()

 

root/uiCube.py :

Chercher :

	def OnScrollResultList(self):
		count = self.GetResultCount()
		scrollLineCount = max(0, count - self.RESULT_SLOT_COUNT)
		startIndex = int(scrollLineCount * self.contentScrollbar.GetPos())

		if startIndex != self.firstSlotIndex:
			self.firstSlotIndex = startIndex
			self.Refresh()

Ajouté en dessous :

	def OnRunMouseWheel(self, nLen):
		if self.contentScrollbar.IsShow():
			if nLen > 0:
				self.contentScrollbar.OnUp()
			else:
				self.contentScrollbar.OnDown()

 

root/uiMessenger.py :

Chercher :

	def OnScroll(self):
		scrollLineCount = len(self.showingItemList) - (self.showingPageSize/20)
		startLine = int(scrollLineCount * self.scrollBar.GetPos())

		if startLine != self.startLine:
			self.startLine = startLine
			self.__LocateMember()

Ajouté en dessous :

	def OnRunMouseWheel(self, nLen):
		if self.scrollBar.IsShow():
			if nLen > 0:
				self.scrollBar.OnUp()
			else:
				self.scrollBar.OnDown()

 

root/uiWhisper.py :

Chercher :

	def OnScroll(self):
		chat.SetWhisperPosition(self.targetName, self.scrollBar.GetPos())

Ajouté en dessous :

	def OnRunMouseWheel(self, nLen):
		if self.scrollBar.IsShow():
			if nLen > 0:
				self.scrollBar.OnUp()
			else:
				self.scrollBar.OnDown()
Succès ! Le tutoriel prend fin ici, n'oubliez pas de recompiler vos source client & de tout repack côté client, Enjoy.

 

Certaine fonction on était récupérer des source d'owsap, la parti client j'ai du la retaper pour qu'elle fonctionne, bonne utilisation.

Modifié par Funky Emulation
Core X - External 2 Internal
  • Metin2 Dev 40
  • Good 3
  • Love 22
Lien vers le commentaire
Partager sur d’autres sites

  • Réponses 0
  • Créé
  • Dernière réponse

Meilleurs contributeurs dans ce sujet

Jours populaires



  • brilliantdiscord_widget
  • Flux d'Activité

    1. 0

      OldEraMT2 | Classique 2009 Oldschool | Niveau 99 | 7 langues | Sans pay2win | Bêta fermée

    2. 6

      problème de connexion à mon serveur local (je suis débutant dans ce genre d'entreprise )

    3. 2

      problème de lancement serveur

    4. 9
    5. 0

      [PVM/PVP] ATLAX2 - EASY PLAY

    6. 2

      problème de lancement serveur

Information importante

Conditions d’utilisation / Politique de confidentialité / Règles / Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.