Neler yeni

Metin2 PvP Mini Haritada Işınlanma 2019

admin

Yönetici
Yönetici
Admin
Katılım
17 Eki 2018
Mesajlar
161
Beğeniler
7
#1
Merhaba ForumMetin2 ailesi,

Bu konuda Metin2 PvP serverı olan üyelerimizin game master (gm)ler için haritada istediklere yere ışınlanabilecekleri bir sistemi nasıl yapabileceğinizi paylaşacağım.
Görüntüsünü de paylaşayım ve yapıma geçelim.

metin2 ışınlanma.png

uiminimap.py dosyamızı açıyoruz. içinde alttaki kodu buluyoruz.
self.SetPosition(wndMgr.GetScreenWidth() - 136 - 256 - 10, 0)
altına bunu ekliyoruz.
self.board.SetOnMouseLeftButtonUpEvent(ui.__mem_func__(self.OnMouseLeftButtonUpEvent))
yine uiminimap.py dosyasında alttaki kodu buluyoruz.
def SetCenterPositionAdjust(self, x, y):
self.SetPosition((wndMgr.GetScreenWidth() - self.GetWidth()) / 2 + x, (wndMgr.GetScreenHeight() - self.GetHeight()) / 2 + y)
altına bu kodu ekliyoruz.

def OnMouseLeftButtonUpEvent(self):
(mouseX, mouseY) = wndMgr.GetMousePosition()
(bFind, sName, iPosX, iPosY, dwTextColor, dwGuildID) = miniMap.GetAtlasInfo(mouseX, mouseY)
net.SendChatPacket("/go %s %s" % (str(iPosX), str(iPosY)))

son olarak PythonMinimap.cpp içinde alttaki kodu bulun.
bool CPythonMiniMap::GetAtlasInfo(float fScreenX, float fScreenY, std::string & rReturnString, float * pReturnPosX, float * pReturnPosY, DWORD * pdwTextColor, DWORD * pdwGuildID)
{
float fRealX = (fScreenX - m_fAtlasScreenX) * (m_fAtlasMaxX / m_fAtlasImageSizeX);
float fRealY = (fScreenY - m_fAtlasScreenY) * (m_fAtlasMaxY / m_fAtlasImageSizeY);
ve altına bu kodu ekleyin.

*pReturnPosX = fRealX;
*pReturnPosY = fRealY;

Sistem hazırdır , umarım faydalı olmuştur , kolay gelsin.