[19] [Keyboard Settings] Official sistemler serisi

Kaptan Yosun

Moderatör
Moderatör
Geliştirici
Yardımsever Üye
Mesaj
1.258
Çözümler
45
Beğeni
1.798
Puan
1.339
Ticaret Puanı
0
:mmt-hakkinda:
Bu seride doğrudan Metin2'den tersine mühendislik(reverse engineering) ile sökülmüş veya Metin2'ye sağdık kalınarak yazılmış sistemleri paylaşacağım.
Sistemler 2014 yılında sızdırılan kraizy.tgz arşivindeki mainline için yazılmıştır. Siz başka server dosyaları kullanıyorsanız aradığınız bazı kodları bulamayabilir veya birtakım hatalarla karşılaşabilirsiniz.

Sistemi paylaşan kişi metin2.dev'den
Linkleri görebilmek için giriş yap veya kayıt ol.
'dır.
Sistemi aldığım asıl konu:
Linkleri görebilmek için giriş yap veya kayıt ol.


19- Keyboard Settings: Oyuncuların klavye kısayollarını özelleştirmesine imkan sağlayan sistem.


:mmt-resimler:

keyboard_settings.webp


:mmt-indir:
Burayı görüntülemek için üye girişi yapmalı veya kayıt olmalısınız.
 
Bu sistemi benim gibi definesiz ekleyip, detaylı bir temizlik yapmak isterseniz, bunları yapabilirsiniz. Bu python işlemleri artık Client Source içinde yapıldığı için, pack tarafında bu kodları tutmaya gerek yok.

game.py içinde arayın ve silin:

Python:
Genişlet Daralt Kopyala
        self.__SetQuickSlotMode()

Python:
Genişlet Daralt Kopyala
        self.__SetQuickSlotMode()
        self.__SelectQuickPage(self.quickSlotPageIndex)

Python:
Genişlet Daralt Kopyala
        self.onPressKeyDict = None
        self.onClickKeyDict = None

Python:
Genişlet Daralt Kopyala
    def __BuildKeyDict(self):
        onPressKeyDict = {}

        ##PressKey �� ������ �ִ� ���� ��� ����Ǵ� Ű�̴�.
        
        ## ���� ����Ű �����Կ� �̿�ȴ�.(���� ���ڵ鵵 �� ���Կ� ����)
        ## F12 �� Ŭ�� ����׿� Ű�̹Ƿ� ���� �ʴ� �� ����.
        onPressKeyDict[app.DIK_1]    = lambda : self.__PressNumKey(1)
        onPressKeyDict[app.DIK_2]    = lambda : self.__PressNumKey(2)
        onPressKeyDict[app.DIK_3]    = lambda : self.__PressNumKey(3)
        onPressKeyDict[app.DIK_4]    = lambda : self.__PressNumKey(4)
        onPressKeyDict[app.DIK_5]    = lambda : self.__PressNumKey(5)
        onPressKeyDict[app.DIK_6]    = lambda : self.__PressNumKey(6)
        onPressKeyDict[app.DIK_7]    = lambda : self.__PressNumKey(7)
        onPressKeyDict[app.DIK_8]    = lambda : self.__PressNumKey(8)
        onPressKeyDict[app.DIK_9]    = lambda : self.__PressNumKey(9)
        onPressKeyDict[app.DIK_F1]    = lambda : self.__PressQuickSlot(4)
        onPressKeyDict[app.DIK_F2]    = lambda : self.__PressQuickSlot(5)
        onPressKeyDict[app.DIK_F3]    = lambda : self.__PressQuickSlot(6)
        onPressKeyDict[app.DIK_F4]    = lambda : self.__PressQuickSlot(7)

        onPressKeyDict[app.DIK_LALT]        = lambda : self.ShowName()
        onPressKeyDict[app.DIK_LCONTROL]    = lambda : self.ShowMouseImage()
        onPressKeyDict[app.DIK_SYSRQ]        = lambda : self.SaveScreen()
        onPressKeyDict[app.DIK_SPACE]        = lambda : self.StartAttack()

        #ij���� �̵�Ű
        onPressKeyDict[app.DIK_UP]            = lambda : self.MoveUp()
        onPressKeyDict[app.DIK_DOWN]        = lambda : self.MoveDown()
        onPressKeyDict[app.DIK_LEFT]        = lambda : self.MoveLeft()
        onPressKeyDict[app.DIK_RIGHT]        = lambda : self.MoveRight()
        onPressKeyDict[app.DIK_W]            = lambda : self.MoveUp()
        onPressKeyDict[app.DIK_S]            = lambda : self.MoveDown()
        onPressKeyDict[app.DIK_A]            = lambda : self.MoveLeft()
        onPressKeyDict[app.DIK_D]            = lambda : self.MoveRight()

        onPressKeyDict[app.DIK_E]            = lambda: app.RotateCamera(app.CAMERA_TO_POSITIVE)
        onPressKeyDict[app.DIK_R]            = lambda: app.ZoomCamera(app.CAMERA_TO_NEGATIVE)
        #onPressKeyDict[app.DIK_F]            = lambda: app.ZoomCamera(app.CAMERA_TO_POSITIVE)
        onPressKeyDict[app.DIK_T]            = lambda: app.PitchCamera(app.CAMERA_TO_NEGATIVE)
        onPressKeyDict[app.DIK_G]            = self.__PressGKey
        onPressKeyDict[app.DIK_Q]            = self.__PressQKey

        onPressKeyDict[app.DIK_NUMPAD9]        = lambda: app.MovieResetCamera()
        onPressKeyDict[app.DIK_NUMPAD4]        = lambda: app.MovieRotateCamera(app.CAMERA_TO_NEGATIVE)
        onPressKeyDict[app.DIK_NUMPAD6]        = lambda: app.MovieRotateCamera(app.CAMERA_TO_POSITIVE)
        onPressKeyDict[app.DIK_PGUP]        = lambda: app.MovieZoomCamera(app.CAMERA_TO_NEGATIVE)
        onPressKeyDict[app.DIK_PGDN]        = lambda: app.MovieZoomCamera(app.CAMERA_TO_POSITIVE)
        onPressKeyDict[app.DIK_NUMPAD8]        = lambda: app.MoviePitchCamera(app.CAMERA_TO_NEGATIVE)
        onPressKeyDict[app.DIK_NUMPAD2]        = lambda: app.MoviePitchCamera(app.CAMERA_TO_POSITIVE)
        onPressKeyDict[app.DIK_GRAVE]        = lambda : self.PickUpItem()
        onPressKeyDict[app.DIK_Z]            = lambda : self.PickUpItem()
        onPressKeyDict[app.DIK_C]            = lambda state = "STATUS": self.interface.ToggleCharacterWindow(state)
        onPressKeyDict[app.DIK_V]            = lambda state = "SKILL": self.interface.ToggleCharacterWindow(state)
        #onPressKeyDict[app.DIK_B]            = lambda state = "EMOTICON": self.interface.ToggleCharacterWindow(state)
        onPressKeyDict[app.DIK_N]            = lambda state = "QUEST": self.interface.ToggleCharacterWindow(state)
        onPressKeyDict[app.DIK_I]            = lambda : self.interface.ToggleInventoryWindow()
        onPressKeyDict[app.DIK_O]            = lambda : self.interface.ToggleDragonSoulWindowWithNoInfo()
        onPressKeyDict[app.DIK_M]            = lambda : self.interface.PressMKey()
        #onPressKeyDict[app.DIK_H]            = lambda : self.interface.OpenHelpWindow()
        onPressKeyDict[app.DIK_ADD]            = lambda : self.interface.MiniMapScaleUp()
        onPressKeyDict[app.DIK_SUBTRACT]    = lambda : self.interface.MiniMapScaleDown()
        onPressKeyDict[app.DIK_L]            = lambda : self.interface.ToggleChatLogWindow()
        onPressKeyDict[app.DIK_COMMA]        = lambda : self.ShowConsole()        # "`" key
        onPressKeyDict[app.DIK_LSHIFT]        = lambda : self.__SetQuickPageMode()

        onPressKeyDict[app.DIK_J]            = lambda : self.__PressJKey()
        onPressKeyDict[app.DIK_H]            = lambda : self.__PressHKey()
        onPressKeyDict[app.DIK_B]            = lambda : self.__PressBKey()
        onPressKeyDict[app.DIK_F]            = lambda : self.__PressFKey()

        # CUBE_TEST
        #onPressKeyDict[app.DIK_K]            = lambda : self.interface.OpenCubeWindow()
        # CUBE_TEST_END

        self.onPressKeyDict = onPressKeyDict

        onClickKeyDict = {}
        onClickKeyDict[app.DIK_UP] = lambda : self.StopUp()
        onClickKeyDict[app.DIK_DOWN] = lambda : self.StopDown()
        onClickKeyDict[app.DIK_LEFT] = lambda : self.StopLeft()
        onClickKeyDict[app.DIK_RIGHT] = lambda : self.StopRight()
        onClickKeyDict[app.DIK_SPACE] = lambda : self.EndAttack()

        onClickKeyDict[app.DIK_W] = lambda : self.StopUp()
        onClickKeyDict[app.DIK_S] = lambda : self.StopDown()
        onClickKeyDict[app.DIK_A] = lambda : self.StopLeft()
        onClickKeyDict[app.DIK_D] = lambda : self.StopRight()
        onClickKeyDict[app.DIK_Q] = lambda: app.RotateCamera(app.CAMERA_STOP)
        onClickKeyDict[app.DIK_E] = lambda: app.RotateCamera(app.CAMERA_STOP)
        onClickKeyDict[app.DIK_R] = lambda: app.ZoomCamera(app.CAMERA_STOP)
        onClickKeyDict[app.DIK_F] = lambda: app.ZoomCamera(app.CAMERA_STOP)
        onClickKeyDict[app.DIK_T] = lambda: app.PitchCamera(app.CAMERA_STOP)
        onClickKeyDict[app.DIK_G] = lambda: self.__ReleaseGKey()
        onClickKeyDict[app.DIK_NUMPAD4] = lambda: app.MovieRotateCamera(app.CAMERA_STOP)
        onClickKeyDict[app.DIK_NUMPAD6] = lambda: app.MovieRotateCamera(app.CAMERA_STOP)
        onClickKeyDict[app.DIK_PGUP] = lambda: app.MovieZoomCamera(app.CAMERA_STOP)
        onClickKeyDict[app.DIK_PGDN] = lambda: app.MovieZoomCamera(app.CAMERA_STOP)
        onClickKeyDict[app.DIK_NUMPAD8] = lambda: app.MoviePitchCamera(app.CAMERA_STOP)
        onClickKeyDict[app.DIK_NUMPAD2] = lambda: app.MoviePitchCamera(app.CAMERA_STOP)
        onClickKeyDict[app.DIK_LALT] = lambda: self.HideName()
        onClickKeyDict[app.DIK_LCONTROL] = lambda: self.HideMouseImage()
        onClickKeyDict[app.DIK_LSHIFT] = lambda: self.__SetQuickSlotMode()

        #if constInfo.PVPMODE_ACCELKEY_ENABLE:
        #    onClickKeyDict[app.DIK_B] = lambda: self.ChangePKMode()

        self.onClickKeyDict=onClickKeyDict

    def __PressNumKey(self,num):
        if app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
            
            if num >= 1 and num <= 9:
                if(chrmgr.IsPossibleEmoticon(-1)):               
                    chrmgr.SetEmoticon(-1,int(num)-1)
                    net.SendEmoticon(int(num)-1)
        else:
            if num >= 1 and num <= 4:
                self.pressNumber(num-1)

    def __ClickBKey(self):
        if app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
            return
        else:
            if constInfo.PVPMODE_ACCELKEY_ENABLE:
                self.ChangePKMode()


    def    __PressJKey(self):
        if app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
            if player.IsMountingHorse():
                net.SendChatPacket("/unmount")
            else:
                #net.SendChatPacket("/user_horse_ride")
                if not uiPrivateShopBuilder.IsBuildingPrivateShop():
                    for i in xrange(player.INVENTORY_PAGE_SIZE):
                        if player.GetItemIndex(i) in (71114, 71116, 71118, 71120):
                            net.SendItemUsePacket(i)
                            break
    def    __PressHKey(self):
        if app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
            net.SendChatPacket("/user_horse_ride")
        else:
            self.interface.OpenHelpWindow()

    def    __PressBKey(self):
        if app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
            net.SendChatPacket("/user_horse_back")
        else:
            state = "EMOTICON"
            self.interface.ToggleCharacterWindow(state)

    def    __PressFKey(self):
        if app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
            net.SendChatPacket("/user_horse_feed")   
        else:
            app.ZoomCamera(app.CAMERA_TO_POSITIVE)

    def __PressGKey(self):
        if app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
            net.SendChatPacket("/ride")   
        else:
            if self.ShowNameFlag:
                self.interface.ToggleGuildWindow()
            else:
                app.PitchCamera(app.CAMERA_TO_POSITIVE)

    def    __ReleaseGKey(self):
        app.PitchCamera(app.CAMERA_STOP)

    def __PressQKey(self):
        if app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
            if 0==interfaceModule.IsQBHide:
                interfaceModule.IsQBHide = 1
                self.interface.HideAllQuestButton()
            else:
                interfaceModule.IsQBHide = 0
                self.interface.ShowAllQuestButton()
        else:
            app.RotateCamera(app.CAMERA_TO_NEGATIVE)

    def __SetQuickSlotMode(self):
        self.pressNumber=ui.__mem_func__(self.__PressQuickSlot)

    def __SetQuickPageMode(self):
        self.pressNumber=ui.__mem_func__(self.__SelectQuickPage)

    def __PressQuickSlot(self, localSlotIndex):
        player.RequestUseLocalQuickSlot(localSlotIndex)

Python:
Genişlet Daralt Kopyala
    def __SelectQuickPage(self, pageIndex):
        self.quickSlotPageIndex = pageIndex
        player.SetQuickPage(pageIndex)
 
Geri
Üst