Çözüldü Py dosyasında job kontrolü nasıl yapabilirim

  • Konuyu açan Konuyu açan Happy Way
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 14
  • Gösterim Gösterim 115
Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

Happy Way

Üye
Üye
Mesaj
149
Çözümler
14
Beğeni
59
Puan
749
Ticaret Puanı
0
sa inventorywindows.py dosyasında bir if koşulu oluşturup bu koşula da karakterin tip kontrolünü yapmam gerekiyor bunu bu dosyada nasıl yapabilir örnek

Savaşçı karaktere ait bir if bloğu bunu oyundaki karakterin ne olduğuna göre değişkenlik göstericek

if(savaşçı==oyundakisavaşçıya)
elseif(ninja==oyundakininjaya)
gibi bi kontrol yapmam gerekiyor bunu nasıl yapabilirim


inventorywindow.py:
Genişlet Daralt Kopyala
                    if(job == "1" ):
                        "default_image" : "d:/ymir work/ui/inventory_buttons/invtabclosed.png",
                        "over_image" : "d:/ymir work/ui/inventory_buttons/invtabclosed.png",
                        "down_image" : "d:/ymir work/ui/inventory_buttons/invtabopen.png",
                    else:
                        "default_image" : "d:/ymir work/ui/inventory_buttons/eqtabclosed.png",
                        "over_image" : "d:/ymir work/ui/inventory_buttons/eqtabclosed.png",
                        "down_image" : "d:/ymir work/ui/inventory_buttons/eqtabopen.png",
örnek şekil yukarıda bunu çalışır vaziyete getirmem gerekiyor
 
Çözüm
evet haklısınız
Kod:
Genişlet Daralt Kopyala
self.costumeTab.append(self.GetChild("Costume_Tab_01"))
şu şekilde işlem yapılıyor bunu
Altaki gibi denedim
Kod:
Genişlet Daralt Kopyala
self.costumeTab.append(self.GetChild("Costume_Tab_01")).SetUpVisual("d:/ymir work/ui/inventory_buttons/invtabclosed.png")
Şu Şekilde de denedim olmadı
Kod:
Genişlet Daralt Kopyala
self.costumeTab..SetUpVisual("d:/ymir work/ui/inventory_buttons/invtabclosed.png")
Kod:
Genişlet Daralt Kopyala
            if(job == 0 and sex == 0):
                #default image
                self.costumeTab.append(self.GetChild("Costume_Tab_01")).SetUpVisual("d:/ymir work/ui/inventory_buttons/invtabclosed.png")
                self.costumeTab.append(self.GetChild("Costume_Tab_01")).SetOverVisual("d:/ymir work/ui/inventory_buttons/invtabclosed.png")...
c ekranında karaktere göre resimler değişiyor ya oradan bakarak yapabilirsin
 
Python:
Genişlet Daralt Kopyala
""""
JOB:
0 = JOB_WARRIOR
1 = JOB_ASSASSIN
2 = JOB_SURA
3 = JOB_SHAMAN
""""
import chr
import player
race = player.GetRace()
job = chr.RaceToJob(race)
sex = chr.RaceToSex(race) ## cinsiyet kullanmak istersen

    if(job == 0 and sex == 0): ## kadın savaşçı ise
        ...
    elif(job == 0 and sex == 1): ## erkek savaşçı ise
        ...
    elif(job == 1 and sex == 1): ## erkek ninja ise
        ...
        ...
        ........
    else:
        "default_image" : "d:/ymir work/ui/inventory_buttons/eqtabclosed.png",
        "over_image" : "d:/ymir work/ui/inventory_buttons/eqtabclosed.png",
        "down_image" : "d:/ymir work/ui/inventory_buttons/eqtabopen.png",
 
Python:
Genişlet Daralt Kopyala
""""
JOB:
0 = JOB_WARRIOR
1 = JOB_ASSASSIN
2 = JOB_SURA
3 = JOB_SHAMAN
""""
import chr
import player
race = player.GetRace()
job = chr.RaceToJob(race)
sex = chr.RaceToSex(race) ## cinsiyet kullanmak istersen

    if(job == 0 and sex == 0): ## kadın savaşçı ise
        ...
    elif(job == 0 and sex == 1): ## erkek savaşçı ise
        ...
    elif(job == 1 and sex == 1): ## erkek ninja ise
        ...
        ...
        ........
    else:
        "default_image" : "d:/ymir work/ui/inventory_buttons/eqtabclosed.png",
        "over_image" : "d:/ymir work/ui/inventory_buttons/eqtabclosed.png",
        "down_image" : "d:/ymir work/ui/inventory_buttons/eqtabopen.png",
Kod:
Genişlet Daralt Kopyala
1006 12:08:29914 :: Failed to load script file : UIScript/InventoryWindow.py
1006 12:08:29916 ::
ui.py(line:2785) LoadScriptFile
system.py(line:192) execfile
system.py(line:161) Run
system.py(line:177) __LoadTextFile__

LoadScriptFile!!!!!!!!!!!!!! - <type 'exceptions.SyntaxError'>:invalid syntax (UIScript/InventoryWindow.py, line 271)

1006 12:08:29916 :: ============================================================================================================
1006 12:08:29916 :: Abort!!!!


1006 12:08:29916 :: filename=exception.py, name=Abort, line=33
1006 12:08:29916 :: filename=ui.py, name=LoadScriptFile, line=2802
1006 12:08:29916 :: filename=uiInventory.py, name=__LoadWindow, line=319
1006 12:08:29916 :: filename=uiInventory.py, name=__init__, line=286
1006 12:08:29916 :: filename=interfaceModule.py, name=__MakeWindows, line=176
1006 12:08:29916 :: filename=interfaceModule.py, name=MakeInterface, line=308
1006 12:08:29917 :: filename=game.py, name=__init__, line=91
1006 12:08:29917 :: filename=networkModule.py, name=SetGamePhase, line=251
1006 12:08:29917 :: filename=prototype.py, name=RunApp, line=60
1006 12:08:29917 :: filename=prototype.py, name=<module>, line=68
1006 12:08:29917 :: filename=system.py, name=Run, line=163
1006 12:08:29917 :: filename=system.py, name=execfile, line=192
1006 12:08:29917 :: filename=system.py, name=RunMainScript, line=273
1006 12:08:29917 :: filename=system.py, name=<module>, line=295
1006 12:08:29917 :: filename=<string>, name=<module>, line=297
1006 12:08:29918 ::
uiInventory.py(line:319) __LoadWindow
ui.py(line:2802) LoadScriptFile
exception.py(line:36) Abort

InventoryWindow.LoadWindow.LoadObject - <type 'exceptions.SystemExit'>:

1006 12:08:29918 :: ============================================================================================================
1006 12:08:29918 :: Abort!!!!


1006 12:08:29918 :: filename=exception.py, name=Abort, line=33
1006 12:08:29918 :: filename=uiInventory.py, name=__LoadWindow, line=322
1006 12:08:29918 :: filename=uiInventory.py, name=__init__, line=286
1006 12:08:29918 :: filename=interfaceModule.py, name=__MakeWindows, line=176
1006 12:08:29918 :: filename=interfaceModule.py, name=MakeInterface, line=308
1006 12:08:29918 :: filename=game.py, name=__init__, line=91
1006 12:08:29918 :: filename=networkModule.py, name=SetGamePhase, line=251
1006 12:08:29918 :: filename=prototype.py, name=RunApp, line=60
1006 12:08:29918 :: filename=prototype.py, name=<module>, line=68
1006 12:08:29918 :: filename=system.py, name=Run, line=163
1006 12:08:29918 :: filename=system.py, name=execfile, line=192
1006 12:08:29918 :: filename=system.py, name=RunMainScript, line=273
1006 12:08:29918 :: filename=system.py, name=<module>, line=295
1006 12:08:29918 :: filename=<string>, name=<module>, line=297
SATIR 271 : if(job == 0 and sex == 0)::
Genişlet Daralt Kopyala
                {
                    "name" : "Costume_Tab_01",
                    "type" : "radio_button",
                    "x" : 10,
                    "y" : 30,
                    if(job == 0 and sex == 0):
                        "default_image" : "d:/ymir work/ui/inventory_buttons/invtabclosed.png",
                        "over_image" : "d:/ymir work/ui/inventory_buttons/invtabclosed.png",
                        "down_image" : "d:/ymir work/ui/inventory_buttons/invtabopen.png",
                    elif(job == 0 and sex == 1):
                        "default_image" : "d:/ymir work/ui/inventory_buttons/invtabclosed.png",
                        "over_image" : "d:/ymir work/ui/inventory_buttons/invtabclosed.png",
                        "down_image" : "d:/ymir work/ui/inventory_buttons/invtabopen.png",
                    else:
                        "default_image" : "d:/ymir work/ui/inventory_buttons/eqtabclosed.png",
                        "over_image" : "d:/ymir work/ui/inventory_buttons/eqtabclosed.png",
                        "down_image" : "d:/ymir work/ui/inventory_buttons/eqtabopen.png",
 
Kod:
Genişlet Daralt Kopyala
1006 12:08:29914 :: Failed to load script file : UIScript/InventoryWindow.py
1006 12:08:29916 ::
ui.py(line:2785) LoadScriptFile
system.py(line:192) execfile
system.py(line:161) Run
system.py(line:177) __LoadTextFile__

LoadScriptFile!!!!!!!!!!!!!! - <type 'exceptions.SyntaxError'>:invalid syntax (UIScript/InventoryWindow.py, line 271)

1006 12:08:29916 :: ============================================================================================================
1006 12:08:29916 :: Abort!!!!


1006 12:08:29916 :: filename=exception.py, name=Abort, line=33
1006 12:08:29916 :: filename=ui.py, name=LoadScriptFile, line=2802
1006 12:08:29916 :: filename=uiInventory.py, name=__LoadWindow, line=319
1006 12:08:29916 :: filename=uiInventory.py, name=__init__, line=286
1006 12:08:29916 :: filename=interfaceModule.py, name=__MakeWindows, line=176
1006 12:08:29916 :: filename=interfaceModule.py, name=MakeInterface, line=308
1006 12:08:29917 :: filename=game.py, name=__init__, line=91
1006 12:08:29917 :: filename=networkModule.py, name=SetGamePhase, line=251
1006 12:08:29917 :: filename=prototype.py, name=RunApp, line=60
1006 12:08:29917 :: filename=prototype.py, name=<module>, line=68
1006 12:08:29917 :: filename=system.py, name=Run, line=163
1006 12:08:29917 :: filename=system.py, name=execfile, line=192
1006 12:08:29917 :: filename=system.py, name=RunMainScript, line=273
1006 12:08:29917 :: filename=system.py, name=<module>, line=295
1006 12:08:29917 :: filename=<string>, name=<module>, line=297
1006 12:08:29918 ::
uiInventory.py(line:319) __LoadWindow
ui.py(line:2802) LoadScriptFile
exception.py(line:36) Abort

InventoryWindow.LoadWindow.LoadObject - <type 'exceptions.SystemExit'>:

1006 12:08:29918 :: ============================================================================================================
1006 12:08:29918 :: Abort!!!!


1006 12:08:29918 :: filename=exception.py, name=Abort, line=33
1006 12:08:29918 :: filename=uiInventory.py, name=__LoadWindow, line=322
1006 12:08:29918 :: filename=uiInventory.py, name=__init__, line=286
1006 12:08:29918 :: filename=interfaceModule.py, name=__MakeWindows, line=176
1006 12:08:29918 :: filename=interfaceModule.py, name=MakeInterface, line=308
1006 12:08:29918 :: filename=game.py, name=__init__, line=91
1006 12:08:29918 :: filename=networkModule.py, name=SetGamePhase, line=251
1006 12:08:29918 :: filename=prototype.py, name=RunApp, line=60
1006 12:08:29918 :: filename=prototype.py, name=<module>, line=68
1006 12:08:29918 :: filename=system.py, name=Run, line=163
1006 12:08:29918 :: filename=system.py, name=execfile, line=192
1006 12:08:29918 :: filename=system.py, name=RunMainScript, line=273
1006 12:08:29918 :: filename=system.py, name=<module>, line=295
1006 12:08:29918 :: filename=<string>, name=<module>, line=297
SATIR 271 : if(job == 0 and sex == 0)::
Genişlet Daralt Kopyala
                {
                    "name" : "Costume_Tab_01",
                    "type" : "radio_button",
                    "x" : 10,
                    "y" : 30,
                    if(job == 0 and sex == 0):
                        "default_image" : "d:/ymir work/ui/inventory_buttons/invtabclosed.png",
                        "over_image" : "d:/ymir work/ui/inventory_buttons/invtabclosed.png",
                        "down_image" : "d:/ymir work/ui/inventory_buttons/invtabopen.png",
                    elif(job == 0 and sex == 1):
                        "default_image" : "d:/ymir work/ui/inventory_buttons/invtabclosed.png",
                        "over_image" : "d:/ymir work/ui/inventory_buttons/invtabclosed.png",
                        "down_image" : "d:/ymir work/ui/inventory_buttons/invtabopen.png",
                    else:
                        "default_image" : "d:/ymir work/ui/inventory_buttons/eqtabclosed.png",
                        "over_image" : "d:/ymir work/ui/inventory_buttons/eqtabclosed.png",
                        "down_image" : "d:/ymir work/ui/inventory_buttons/eqtabopen.png",
Script dosyasında değil python tarafında düzenleme yapman gerekiyor diye düşünüyorum. Mesela şöyle yapabilirsin:
Verdiğin kodda Costume_Tab_01 nesnesiyle işlem yapıyorsun. Muhtemelen bunun tanımı python dosyalarında da vardır..
Uscriptteki görüntüleri iptal edip python içinden yapmayı deneyebilirsin:

Python:
Genişlet Daralt Kopyala
if(job == 0 and sex == 0):
    #default image
    Costume_Tab_01_Nesnesinin_Pythondaki_Ismi.SetUpVisual("resim_yolu") ## örneğin: self.CostumeButton.SetUpVisual("resim yolu")
elif(job == 0 and sex == 1):
    #over image
    Costume_Tab_01_Nesnesinin_Pythondaki_Ismi.SetOverVisual("resim_yolu") ## örneğin: self.CostumeButton.SetOverVisual("resim yolu")
elif(job == 1 and sex == 1):
    # down image
    Costume_Tab_01_Nesnesinin_Pythondaki_Ismi.SetDownVisual("resim_yolu") ## örneğin: self.CostumeButton.SetDownVisual("resim yolu")

Bu yapıyı sağladıktan sonra uiscript içindeki "down_image" vb. satırları yoruma çevir veya kaldır.
 
Script dosyasında değil python tarafında düzenleme yapman gerekiyor diye düşünüyorum. Mesela şöyle yapabilirsin:
Verdiğin kodda Costume_Tab_01 nesnesiyle işlem yapıyorsun. Muhtemelen bunun tanımı python dosyalarında da vardır..
Uscriptteki görüntüleri iptal edip python içinden yapmayı deneyebilirsin:

Python:
Genişlet Daralt Kopyala
if(job == 0 and sex == 0):
    #default image
    Costume_Tab_01_Nesnesinin_Pythondaki_Ismi.SetUpVisual("resim_yolu") ## örneğin: self.CostumeButton.SetUpVisual("resim yolu")
elif(job == 0 and sex == 1):
    #over image
    Costume_Tab_01_Nesnesinin_Pythondaki_Ismi.SetOverVisual("resim_yolu") ## örneğin: self.CostumeButton.SetOverVisual("resim yolu")
elif(job == 1 and sex == 1):
    # down image
    Costume_Tab_01_Nesnesinin_Pythondaki_Ismi.SetDownVisual("resim_yolu") ## örneğin: self.CostumeButton.SetDownVisual("resim yolu")

Bu yapıyı sağladıktan sonra uiscript içindeki "down_image" vb. satırları yoruma çevir veya kaldır.
hocam valla webzen developerlar mt2 fonksyionlarına sizin kadar hakim değildir, ne zaman yardım konusu açsam ilk yardım edenlerden biri siz oldunuz şimdi arkadaşa da yorumunuzu gördüm maşallah kaç yıldır kodlama ve mt2 kodlaması üzerine çalıştınız samimi soruyorum
 
hocam valla webzen developerlar mt2 fonksyionlarına sizin kadar hakim değildir, ne zaman yardım konusu açsam ilk yardım edenlerden biri siz oldunuz şimdi arkadaşa da yorumunuzu gördüm maşallah kaç yıldır kodlama ve mt2 kodlaması üzerine çalıştınız samimi soruyorum
ekipteki türklerden biriydi. kodları bizzat yazdığı için aklında. öfke sorunu olduğu için (adanalılıktan gelme) ekipten atıldı. o da şimdi kendi oyununu istediği gibi tekrardan yazıyor. telif atamama sebepleri de bu yüzden...
 
Script dosyasında değil python tarafında düzenleme yapman gerekiyor diye düşünüyorum. Mesela şöyle yapabilirsin:
Verdiğin kodda Costume_Tab_01 nesnesiyle işlem yapıyorsun. Muhtemelen bunun tanımı python dosyalarında da vardır..
Uscriptteki görüntüleri iptal edip python içinden yapmayı deneyebilirsin:

Python:
Genişlet Daralt Kopyala
if(job == 0 and sex == 0):
    #default image
    Costume_Tab_01_Nesnesinin_Pythondaki_Ismi.SetUpVisual("resim_yolu") ## örneğin: self.CostumeButton.SetUpVisual("resim yolu")
elif(job == 0 and sex == 1):
    #over image
    Costume_Tab_01_Nesnesinin_Pythondaki_Ismi.SetOverVisual("resim_yolu") ## örneğin: self.CostumeButton.SetOverVisual("resim yolu")
elif(job == 1 and sex == 1):
    # down image
    Costume_Tab_01_Nesnesinin_Pythondaki_Ismi.SetDownVisual("resim_yolu") ## örneğin: self.CostumeButton.SetDownVisual("resim yolu")

Bu yapıyı sağladıktan sonra uiscript içindeki "down_image" vb. satırları yoruma çevir veya kaldır.
evet haklısınız
Kod:
Genişlet Daralt Kopyala
self.costumeTab.append(self.GetChild("Costume_Tab_01"))
şu şekilde işlem yapılıyor bunu
Altaki gibi denedim
Kod:
Genişlet Daralt Kopyala
self.costumeTab.append(self.GetChild("Costume_Tab_01")).SetUpVisual("d:/ymir work/ui/inventory_buttons/invtabclosed.png")
Şu Şekilde de denedim olmadı
Kod:
Genişlet Daralt Kopyala
self.costumeTab..SetUpVisual("d:/ymir work/ui/inventory_buttons/invtabclosed.png")
Kod:
Genişlet Daralt Kopyala
            if(job == 0 and sex == 0):
                #default image
                self.costumeTab.append(self.GetChild("Costume_Tab_01")).SetUpVisual("d:/ymir work/ui/inventory_buttons/invtabclosed.png")
                self.costumeTab.append(self.GetChild("Costume_Tab_01")).SetOverVisual("d:/ymir work/ui/inventory_buttons/invtabclosed.png")
                self.costumeTab.append(self.GetChild("Costume_Tab_01")).SetDownVisual("d:/ymir work/ui/inventory_buttons/invtabopen.png")

InventoryWindow.LoadWindow.BindObject - <type 'exceptions.AttributeError'>:'NoneType' object has no attribute 'SetUpVisual'


Yukarıdaki gibi çalıştıramadım fakat şöyle bir şey yaptım

Aşağıdaki yapıyı karakterlere özel isimlendirerek 4 adet ekledim
Kod:
Genişlet Daralt Kopyala
                {
                    "name" : "Costume_Tab_Warrior",
                    "type" : "radio_button",
                    "x" : 10,
                    "y" : 30,
                    "default_image" : "d:/ymir work/ui/inventory_buttons/invtabclosed.png",
                    "over_image" : "d:/ymir work/ui/inventory_buttons/invtabclosed.png",
                    "down_image" : "d:/ymir work/ui/inventory_buttons/invtabopen.png",
                    "tooltip_text" : uiScriptLocale.INVENTORY_PAGE_BUTTON_TOOLTIP_1,
                    "children" :
                    (
                        {
                            "name" : "Equipment_Tab_01_Print",
                            "type" : "text",
                            "x" : 0,
                            "y" : 0,
                            "all_align" : "center",
                            #"text" : "I",
                        },
                    ),
                },
Daha Sonra aşağıdaki gibi costume_slot_01 buttonunu revize ederek karakter isimlerine çevirdim ve race kontroluyle onayladım sistem çalıştı :D
uiinventory.py:
Genişlet Daralt Kopyala
            race = player.GetRace()
            job = chr.RaceToJob(race)
            sex = chr.RaceToSex(race)
            if(race == 0):
                self.costumeTab.append(self.GetChild("Costume_Tab_Warrior"))
            elif(race == 1):
                self.costumeTab.append(self.GetChild("Costume_Tab_Assasin"))
            elif(race == 2):
                self.costumeTab.append(self.GetChild("Costume_Tab_Sura"))
            elif(race == 3):
                self.costumeTab.append(self.GetChild("Costume_Tab_Shaman"))
            elif(race == 4):
                self.costumeTab.append(self.GetChild("Costume_Tab_Lycan"))
            else:
                self.costumeTab.append(self.GetChild("Costume_Tab_Default"))
 
Son düzenleme:
evet haklısınız
Kod:
Genişlet Daralt Kopyala
self.costumeTab.append(self.GetChild("Costume_Tab_01"))
şu şekilde işlem yapılıyor bunu
Altaki gibi denedim
Kod:
Genişlet Daralt Kopyala
self.costumeTab.append(self.GetChild("Costume_Tab_01")).SetUpVisual("d:/ymir work/ui/inventory_buttons/invtabclosed.png")
Şu Şekilde de denedim olmadı
Kod:
Genişlet Daralt Kopyala
self.costumeTab..SetUpVisual("d:/ymir work/ui/inventory_buttons/invtabclosed.png")
Kod:
Genişlet Daralt Kopyala
            if(job == 0 and sex == 0):
                #default image
                self.costumeTab.append(self.GetChild("Costume_Tab_01")).SetUpVisual("d:/ymir work/ui/inventory_buttons/invtabclosed.png")
                self.costumeTab.append(self.GetChild("Costume_Tab_01")).SetOverVisual("d:/ymir work/ui/inventory_buttons/invtabclosed.png")
                self.costumeTab.append(self.GetChild("Costume_Tab_01")).SetDownVisual("d:/ymir work/ui/inventory_buttons/invtabopen.png")

InventoryWindow.LoadWindow.BindObject - <type 'exceptions.AttributeError'>:'NoneType' object has no attribute 'SetUpVisual'
Uygulama şekli yanlış olduğu için çalışmıyor. Ek olarak verdiğim kodları daha kullanışlı hale getirip Inventory_Button nesnesi üzerinde denedim ve sorunsuz çalıştırdım.

Öncelikle self.costumeTab.append(self.GetChild("Costume_Tab_01")) gibi çağrıların bulunduğu fonksiyonun (sanırım __LoadWindow)
en altına şunu ekle:

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

Daha sonra fonksiyonun altına yeni bir fonksiyon olarak şunu ekle:
Python:
Genişlet Daralt Kopyala
    def RefreshButtonVisual(self):
        race = net.GetMainActorRace()
        # kadın savaşçı
        if race == 4:
            self.inventoryTab[0].SetUpVisual("d:/ymir work/ui/dragonsoul/DragonSoul_Button_02.tga")
        # kadın sura
        elif race == 6:
            self.inventoryTab[0].SetUpVisual("d:/ymir work/ui/itemshop/subbutton.png")

Tanım yaparken dizi elemanını çağırarak yapmalısın. Doğrudan list üzerinden görsel tanımı yapamazsın. Buradaki [0] = envanter sayfa butonlarından ilk butonu temsil eder. [1] ikinci butonu temsil eder. [2] üçüncü butonu temsil eder gibi gibi..

Sonuç:
Kadın savaşçıda envanter 1.butonu:
Ekran görüntüsü 2024-10-06 132557.webp

Kadın surada envanter 1.butonu:
Ekran görüntüsü 2024-10-06 134204.webp


Son olarak varsayılan RACE tanımları.. bunlar src de varsayılan olarak bulunur. Haricen tanımlamaya gerek yok. Sadece yukarıda verdiğim kodu kendine göre özelleştirip genişletirken bunları kullanman gerekecek.
Kod:
Genişlet Daralt Kopyala
RACE_WARRIOR_M     = 0
RACE_ASSASSIN_W = 1
RACE_SURA_M     = 2
RACE_SHAMAN_W     = 3
RACE_WARRIOR_W     = 4
RACE_ASSASSIN_M = 5
RACE_SURA_W     = 6
RACE_SHAMAN_M     = 7


hocam valla webzen developerlar mt2 fonksyionlarına sizin kadar hakim değildir, ne zaman yardım konusu açsam ilk yardım edenlerden biri siz oldunuz şimdi arkadaşa da yorumunuzu gördüm maşallah kaç yıldır kodlama ve mt2 kodlaması üzerine çalıştınız samimi soruyorum
Teşekkür ederim. Bu illete 2018-2019 gibi başladım, açık konuşmak gerekirse kendimi öyle ileri düzeyde görmüyorum ama insan zamanla kurcalayarak, bozarak, sinirlenip klavye kırarak falan öğreniyor bir şeyler :D
 
Çözüm
EDİT: Mesajı düzenlediğini sonradan gördüm. @Happy Way
Uyguladığın yöntem gereksiz bir şekilde kod kalabalığına neden oluyor. Elbette hangi yöntemi kullanacağını kendin tercih edebilirsin ancak yukarıda belirttiğim yöntemle ek bir tanım vb. yapmadan doğrudan düzenleme yapabilirsin.
 
Uygulama şekli yanlış olduğu için çalışmıyor. Ek olarak verdiğim kodları daha kullanışlı hale getirip Inventory_Button nesnesi üzerinde denedim ve sorunsuz çalıştırdım.

Öncelikle self.costumeTab.append(self.GetChild("Costume_Tab_01")) gibi çağrıların bulunduğu fonksiyonun (sanırım __LoadWindow)
en altına şunu ekle:

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

Daha sonra fonksiyonun altına yeni bir fonksiyon olarak şunu ekle:
Python:
Genişlet Daralt Kopyala
    def RefreshButtonVisual(self):
        race = net.GetMainActorRace()
        # kadın savaşçı
        if race == 4:
            self.inventoryTab[0].SetUpVisual("d:/ymir work/ui/dragonsoul/DragonSoul_Button_02.tga")
        # kadın sura
        elif race == 6:
            self.inventoryTab[0].SetUpVisual("d:/ymir work/ui/itemshop/subbutton.png")

Tanım yaparken dizi elemanını çağırarak yapmalısın. Doğrudan list üzerinden görsel tanımı yapamazsın. Buradaki [0] = envanter sayfa butonlarından ilk butonu temsil eder. [1] ikinci butonu temsil eder. [2] üçüncü butonu temsil eder gibi gibi..

Sonuç:
Kadın savaşçıda envanter 1.butonu:
19289 eklentisini görüntüle
Kadın surada envanter 1.butonu:
19290 eklentisini görüntüle

Son olarak varsayılan RACE tanımları.. bunlar src de varsayılan olarak bulunur. Haricen tanımlamaya gerek yok. Sadece yukarıda verdiğim kodu kendine göre özelleştirip genişletirken bunları kullanman gerekecek.
Kod:
Genişlet Daralt Kopyala
RACE_WARRIOR_M     = 0
RACE_ASSASSIN_W = 1
RACE_SURA_M     = 2
RACE_SHAMAN_W     = 3
RACE_WARRIOR_W     = 4
RACE_ASSASSIN_M = 5
RACE_SURA_W     = 6
RACE_SHAMAN_M     = 7



Teşekkür ederim. Bu illete 2018-2019 gibi başladım, açık konuşmak gerekirse kendimi öyle ileri düzeyde görmüyorum ama insan zamanla kurcalayarak, bozarak, sinirlenip klavye kırarak falan öğreniyor bir şeyler :D
Size emeğinizden dolayı çok teşekkürlerimi sunuyorum son yöntem aşırı derecede basit ve kullanışlı sistem sorunsuz çalışıyor çoook teşekkür ederim.
1006_141501.webp
1006_141424.webp
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Üst