[PY] Sistem Seçeneklerine Yazı Tipi Eklentisi


burakhangunduz

Aktif Üye
Üye
Mesaj
113
Beğeni
117
Puan
354
@H4ZEJ beraber zamanında çok aradık ama ya hepsinin linki bozuktu yada kodlar işlevsiz kalıyordu.
Sistem rohan2 filesinden sökülmüştür.

İlk önce uiscriptten sistem seçeneklerine buton ekliyoruz;
uiscript/systemoptiondialog.py açılır.
Aratılır;
Python:
                {
                    "name" : "tiling_apply",
                    "type" : "button",

                    "x" : 110+100,
                    "y" : 185,

                    "text" : uiScriptLocale.OPTION_TILING_APPLY,

                    "default_image" : ROOT_PATH + "middle_Button_01.sub",
                    "over_image" : ROOT_PATH + "middle_Button_02.sub",
                    "down_image" : ROOT_PATH + "middle_Button_03.sub",
                },

Altına şu şekilde eklenir;
Unutmayın ekledikten sonra koordinatları kendi sistem seçeneklerinize göre ayarlayın.
Python:
                {
                    "name" : "font_type_name",
                    "type" : "text",

                    "x" : 30,
                    "y" : 232,

                    "text" : "Yazı Tipi",
                },
             
                {
                    "name" : "font_type_arial",
                    "type" : "radio_button",

                    "x" : 110,
                    "y" : 232,

                    "text" : "Arial",

                    "default_image" : ROOT_PATH + "Middle_Button_01.sub",
                    "over_image" : ROOT_PATH + "Middle_Button_02.sub",
                    "down_image" : ROOT_PATH + "Middle_Button_03.sub",
                },
             
                {
                    "name" : "font_type_tahoma",
                    "type" : "radio_button",

                    "x" : 110+70,
                    "y" : 232,

                    "text" : "Tahoma",

                    "default_image" : ROOT_PATH + "Middle_Button_01.sub",
                    "over_image" : ROOT_PATH + "Middle_Button_02.sub",
                    "down_image" : ROOT_PATH + "Middle_Button_03.sub",
                },

Uiscript ile işimiz bitti.
Şimdi root/uisystemoption.py açılır.

importların arasına - import os - eklenir.
Ardından;

Kod:
blockMode = 0
Bu kodun altına bu class eklenir;
Python:
class PopupDialog(ui.ScriptWindow):
    def __init__(self, parent):
        print "PopupDialog::PopupDialog()"
        ui.ScriptWindow.__init__(self)

        self.__Load()
        self.__Bind()

    def __del__(self):
        ui.ScriptWindow.__del__(self)
        print "PopupDialog::~PopupDialog()"

    def __Load(self):
        try:
            pyScrLoader = ui.PythonScriptLoader()
            pyScrLoader.LoadScriptFile(self, "UIScript/PopupDialog.py")
        except:
            import exception
            exception.Abort("PopupDialog.__Load")

    def __Bind(self):
        try:
            self.textLine=self.GetChild("message")
            self.okButton=self.GetChild("accept")
        except:
            import exception
            exception.Abort("PopupDialog.__Bind")

        self.okButton.SAFE_SetEvent(self.__OnOK)

    def Open(self, msg):
        self.textLine.SetText(msg)
        self.SetCenterPosition()
        self.Show()
        self.SetTop()

    def __OnOK(self):
        self.Hide()

Ardından bu kod bloğu aratılır.
Python:
        self.SetCenterPosition()
     
        self.titleBar.SetCloseEvent(ui.__mem_func__(self.Close))

Bu şekilde değiştirilir.

Python:
        self.SetCenterPosition()
     
        self.popupDialog = PopupDialog(self)
     
        self.titleBar.SetCloseEvent(ui.__mem_func__(self.Close))

Aratılır;
Python:
        self.tilingModeButtonList = []

Altına eklenir;
Python:
        self.fonttypeButtonList = []

Aratılır;
Python:
            self.tilingApplyButton=GetObject("tiling_apply")

Altına eklenir;
Python:
            self.fonttypeButtonList.append(GetObject("font_type_arial"))
            self.fonttypeButtonList.append(GetObject("font_type_tahoma"))

Aratılır;
Python:
        self.tilingModeButtonList[1].SAFE_SetEvent(self.__OnClickTilingModeGPUButton)

Altına eklenir;
Python:
        self.fonttypeButtonList[0].SAFE_SetEvent(self.__OnClickArialButton)
        self.fonttypeButtonList[1].SAFE_SetEvent(self.__OnClickTahomaButton)

Aratılır;
Python:
        self.__ClickRadioButton(self.cameraModeButtonList, constInfo.GET_CAMERA_MAX_DISTANCE_INDEX())

Altına eklenir;
Python:
        if os.path.exists("gameoption.cfg"):
            fd = open( "gameoption.cfg" , "r")
            fonttype = fd.readline()
            fd.close()
            if fonttype == "0":
                self.__ClickRadioButton(self.fonttypeButtonList, 0)
            elif fonttype == "1":
                self.__ClickRadioButton(self.fonttypeButtonList, 1)
        else:
            self.__ClickRadioButton(self.fonttypeButtonList, 0)

Aratılır;
Python:
    def OnCloseInputDialog(self):
        self.inputDialog.Close()
        self.inputDialog = None
        return True

Bu kod bloğunun üstüne eklenir;
Python:
    def __OnClickArialButton(self):
        if os.path.exists("gameoption.cfg"):
            os.remove("gameoption.cfg")
        f = open( "gameoption.cfg", "w")
        f.write("0")
        f.close()
        self.popupDialog.Open(localeInfo.LANG_RESTART_FOR_CHANGE)
        self.__ClickRadioButton(self.fonttypeButtonList, 0)
     
    def __OnClickTahomaButton(self):
        if os.path.exists("gameoption.cfg"):
            os.remove("gameoption.cfg")
        f = open( "gameoption.cfg", "w")
        f.write("1")
        f.close()
        self.popupDialog.Open(localeInfo.LANG_RESTART_FOR_CHANGE)
        self.__ClickRadioButton(self.fonttypeButtonList, 1)

uisystemoption.py ile işimiz bitti.
gelelim root/prototype.py

importlara - import os - eklenir.


Aratılır;
Python:
def RunApp():
    musicInfo.LoadLastPlayFieldMusic()
 
    app.SetHairColorEnable(constInfo.HAIR_COLOR_ENABLE)
    app.SetArmorSpecularEnable(constInfo.ARMOR_SPECULAR_ENABLE)
    app.SetWeaponSpecularEnable(constInfo.WEAPON_SPECULAR_ENABLE)

    app.SetMouseHandler(mouseModule.mouseController)
    wndMgr.SetMouseHandler(mouseModule.mouseController)
    wndMgr.SetScreenSize(systemSetting.GetWidth(), systemSetting.GetHeight())

Bu kod bloğu tamamen değiştirilir;
Python:
def RunApp():
    musicInfo.LoadLastPlayFieldMusic()
 
    app.SetHairColorEnable(constInfo.HAIR_COLOR_ENABLE)
    app.SetArmorSpecularEnable(constInfo.ARMOR_SPECULAR_ENABLE)
    app.SetWeaponSpecularEnable(constInfo.WEAPON_SPECULAR_ENABLE)

    #Initialize default fonts.
    if os.path.exists("gameoption.cfg"):
        fd = open( "gameoption.cfg" , "r")
        fonttype = fd.readline()
        if fonttype == "0":
            localeInfo.UI_DEF_FONT = "Arial:14"
            localeInfo.UI_DEF_FONT_LARGE = "Arial:16"
        elif fonttype == "1":
            localeInfo.UI_DEF_FONT = "Tahoma:12"
            localeInfo.UI_DEF_FONT_LARGE = "Tahoma:16"
        fd.close()

    app.SetMouseHandler(mouseModule.mouseController)
    wndMgr.SetMouseHandler(mouseModule.mouseController)
    wndMgr.SetScreenSize(systemSetting.GetWidth(), systemSetting.GetHeight())

prototype.py ile işimiz bitti gelelim.
root/uitooltip.py açılır.

importlara eklenir -import os-

Aratılır;
Python:
        self.defFontName = localeInfo.UI_DEF_FONT
        self.ClearToolTip()

Değiştirilir;
Python:
        if os.path.exists("gameoption.cfg"):
            fd = open( "gameoption.cfg" , "r")
            fonttype = fd.readline()
            fd.close()
            if fonttype == "0":
                self.defFontName = "Arial:14"
            elif fonttype == "1":
                self.defFontName = "Tahoma:12"
        else:
            self.defFontName = localeInfo.UI_DEF_FONT
        self.ClearToolTip()

Root ile işimiz bitti.

locale_tr içinden locale_game.txt açın.
ve en sona ekleyin.

Python:
LANG_RESTART_FOR_CHANGE    Değişiklik için oyunu tekrar başlatmalısın.

Son işlem olarak client dosyanızın içine
Linkleri görebilmek için giriş yap veya kayıt ol.
bunu atın.



Güncelleme 1; Arkadaşlar küçük bi sorun vardı şöyle ki; Misal oyunu tahoma yaptıktan sonra karakter ismi,derecesi,npcler ve bazı bölümler değişmiyordu bunun sebebi ui.py'deki ''app.SetDefaultFontName(localeInfo.UI_DEF_FONT)'' bu bölüm default yazı fontunu çektiği için böyle bi problem oluşturuyordu. Yardımından ötürü turkmmo'dan Kaneki'ye teşekkür ediyorum.


ui.py açılır.
İmportlara eklenir ; - import os -

Aratılır.
Python:
app.SetDefaultFontName(localeInfo.UI_DEF_FONT)

Ve değiştirilir;
Python:
if os.path.exists("gameoption.cfg"):
    fd = open( "gameoption.cfg" , "r")
    fonttype = fd.readline()
    if fonttype == "0":
        app.SetDefaultFontName("Arial:14")
    elif fonttype == "1":
        app.SetDefaultFontName("Tahoma:12")
    fd.close()




Kanıt;
 
Son düzenleme:

Üst