Metin2 Npc Boyutlandırma

Doğukan Taydaş

Moderatör
Moderatör
Premium Üye
Geliştirici
Yardımsever Üye
Mesaj
736
Çözümler
55
Beğeni
1.544
Puan
1.179
Ticaret Puanı
0
Metin2 itemlere göre npc boyutları

8becfe4deadd4731099973772b297b42.gif

Root/uishop.py:
Genişlet Daralt Kopyala
#Arat
    def Refresh(self):
Root/uishop.py:
Genişlet Daralt Kopyala
# Altına ekle
    def GetEmptyLines(self):
        emptyLines = 8
        for i in xrange(5):
            empty = 8
            for j in xrange(8):
                itemIndex = shop.GetItemID(5*j+i)
                if itemIndex > 0:
                    item.SelectItem(itemIndex)
                    (w, h) = item.GetItemSize()
                    empty -= h
            if empty < emptyLines:
                emptyLines = empty
        return emptyLines

Root/uishop.py:
Genişlet Daralt Kopyala
# Arat
            self.itemSlotWindow = GetObject("ItemSlot")
Root/uishop.py:
Genişlet Daralt Kopyala
# Altına ekle
            self.board = GetObject("board")

Root/uishop.py:
Genişlet Daralt Kopyala
# Arat
        self.itemSlotWindow = 0
Root/uishop.py:
Genişlet Daralt Kopyala
# Altına Ekle
        self.board = 0

Root/uishop.py:
Genişlet Daralt Kopyala
# Arat
    # def Open(self, vid):
Root/uishop.py:
Genişlet Daralt Kopyala
# değiştir
    def Open(self, vid):
        isPrivateShop = FALSE
        isMainPlayerPrivateShop = FALSE

        import chr
        if chr.IsNPC(vid):
            isPrivateShop = FALSE
        else:
            isPrivateShop = TRUE

        self.board.SetSize(184, 348)
        self.itemSlotWindow.ArrangeSlot(0, 5, 8, 32, 32, 0, 0)
        self.itemSlotWindow.RefreshSlot()
        self.itemSlotWindow.SetSlotBaseImage("d:/ymir work/ui/public/Slot_Base.sub", 1.0, 1.0, 1.0, 1.0)
        self.btnBuy.SetPosition(21, 292)
        self.btnSell.SetPosition(104, 292)

        if player.IsMainCharacterIndex(vid):

            isMainPlayerPrivateShop = TRUE

            self.btnBuy.Hide()
            self.btnSell.Hide()
            self.btnClose.Show()

        else:
            if isPrivateShop == FALSE:
                EMPTY_LINES = 32 * self.GetEmptyLines()

                self.board.SetSize(184, 348 - EMPTY_LINES)

                self.itemSlotWindow.ArrangeSlot(0, 5, 8 - EMPTY_LINES / 32, 32, 32, 0, 0)
                self.itemSlotWindow.RefreshSlot()
                self.itemSlotWindow.SetSlotBaseImage("d:/ymir work/ui/public/Slot_Base.sub", 1.0, 1.0, 1.0, 1.0)

                self.btnBuy.SetPosition(21, 292 - EMPTY_LINES)
                self.btnSell.SetPosition(104, 292 - EMPTY_LINES)

            isMainPlayerPrivateShop = FALSE

            self.btnBuy.Show()
            self.btnSell.Show()
            self.btnClose.Hide()

        shop.Open(isPrivateShop, isMainPlayerPrivateShop)
        self.Refresh()
        self.SetTop()
        self.Show()

        (self.xShopStart, self.yShopStart, z) = player.GetMainCharacterPosition()
      
//65 slot icin eklesin

    def Open(self, vid):
        isPrivateShop = FALSE
        isMainPlayerPrivateShop = FALSE

        import chr
        if chr.IsNPC(vid):
            isPrivateShop = FALSE
        else:
            isPrivateShop = TRUE

        self.board.SetSize(283, 320)
        self.itemSlotWindow.ArrangeSlot(0, 8, 8, 32, 32, 0, 0)
        self.itemSlotWindow.RefreshSlot()
        self.itemSlotWindow.SetSlotBaseImage("d:/ymir work/ui/public/Slot_Base.sub", 1.0, 1.0, 1.0, 1.0)
        # self.btnBuy.SetPosition(21, 292)
        # self.btnSell.SetPosition(104, 292)

        if player.IsMainCharacterIndex(vid):

            isMainPlayerPrivateShop = TRUE

            # self.btnBuy.Hide()
            # self.btnSell.Hide()
            self.btnClose.Show()

        else:
            if isPrivateShop == FALSE:
                EMPTY_LINES = 32 * self.GetEmptyLines()

                self.board.SetSize(283, 320 - EMPTY_LINES)

                self.itemSlotWindow.ArrangeSlot(0, 8, 8 - EMPTY_LINES / 32, 32, 32, 0, 0)
                self.itemSlotWindow.RefreshSlot()
                self.itemSlotWindow.SetSlotBaseImage("d:/ymir work/ui/public/Slot_Base.sub", 1.0, 1.0, 1.0, 1.0)

                #self.btnBuy.SetPosition(21, 292 - EMPTY_LINES)
                #self.btnSell.SetPosition(104, 292 - EMPTY_LINES)

            isMainPlayerPrivateShop = FALSE

            #self.btnBuy.Show()
            #self.btnSell.Show()
            self.btnClose.Hide()

        shop.Open(isPrivateShop, isMainPlayerPrivateShop)
        self.Refresh()
        self.SetTop()
        self.Show()

        (self.xShopStart, self.yShopStart, z) = player.GetMainCharacterPosition()
 
Merhaba, paylaşım için teşekkürler.
Sorunsuz ekledim fakat satın al ve sat butonları biraz yukarda kaldı. Bu butonları ortalamak için ne yapmam gerekir ya da resimdeki kırmızı ile işaretlediğim bölgeyi tamamen kaldırmak için ne yapmalıyım ? Bilgi verirseniz çok sevinirim.

1.webp
 
Kod:
Genişlet Daralt Kopyala
self.board.SetSize(184, 348)
        self.itemSlotWindow.ArrangeSlot(0, 5, 8, 32, 32, 0, 0)
        self.itemSlotWindow.RefreshSlot()
        self.itemSlotWindow.SetSlotBaseImage("d:/ymir work/ui/public/Slot_Base.sub", 1.0, 1.0, 1.0, 1.0)
        self.btnBuy.SetPosition(21, 292)
        self.btnSell.SetPosition(104, 292)
burayı
Root/uishop.py:
Genişlet Daralt Kopyala
self.board.SetSize(184, 326)

self.itemSlotWindow.ArrangeSlot(0, 5, 8, 32, 32, 0, 0)

self.itemSlotWindow.RefreshSlot()

self.itemSlotWindow.SetSlotBaseImage("d:/ymir work/ui/public/Slot_Base.sub", 1.0, 1.0, 1.0, 1.0)

self.btnBuy.SetPosition(21, 294)

self.btnSell.SetPosition(104, 294)
bununla değiştiriniz. Eğer butonların yerini beğenmezseniz, o kodlardan değişiklik yapabilirsiniz.
 
Kod:
Genişlet Daralt Kopyala
self.board.SetSize(184, 348)
        self.itemSlotWindow.ArrangeSlot(0, 5, 8, 32, 32, 0, 0)
        self.itemSlotWindow.RefreshSlot()
        self.itemSlotWindow.SetSlotBaseImage("d:/ymir work/ui/public/Slot_Base.sub", 1.0, 1.0, 1.0, 1.0)
        self.btnBuy.SetPosition(21, 292)
        self.btnSell.SetPosition(104, 292)
burayı
Root/uishop.py:
Genişlet Daralt Kopyala
self.board.SetSize(184, 326)

self.itemSlotWindow.ArrangeSlot(0, 5, 8, 32, 32, 0, 0)

self.itemSlotWindow.RefreshSlot()

self.itemSlotWindow.SetSlotBaseImage("d:/ymir work/ui/public/Slot_Base.sub", 1.0, 1.0, 1.0, 1.0)

self.btnBuy.SetPosition(21, 294)

self.btnSell.SetPosition(104, 294)
bununla değiştiriniz. Eğer butonların yerini beğenmezseniz, o kodlardan değişiklik yapabilirsiniz.
Yardım için çok teşekkür ederim.
Ben direk kaldırmaktan yana olduğum için kendimce şöyle bir çözüm buldum.
uishop.py:
Genişlet Daralt Kopyala
#     def Open(self, vid):    içinde

        else:
            if isPrivateShop == FALSE:
                EMPTY_LINES = 32 * self.GetEmptyLines()

                self.board.SetSize(184, 300 - EMPTY_LINES)#326-->300

                self.itemSlotWindow.ArrangeSlot(0, 5, 8 - EMPTY_LINES / 32, 32, 32, 0, 0)
                self.itemSlotWindow.RefreshSlot()
                self.itemSlotWindow.SetSlotBaseImage("d:/ymir work/ui/public/Slot_Base.sub", 1.0, 1.0, 1.0, 1.0)

                self.btnBuy.SetPosition(21, 294 - EMPTY_LINES)
                self.btnSell.SetPosition(104, 294 - EMPTY_LINES)

            isMainPlayerPrivateShop = FALSE

            self.btnBuy.Hide()#Show -->Hide
            self.btnSell.Hide()#Show -->Hide
            self.btnClose.Hide()
Bu kısımları bu şekilde değiştirdiğimizde butonlar kalkıyor ve aradaki kalan boş mesafe de düzelmiş oluyor. Belki başka arkadaşlar da arıyordur diye paylaşmak istedim.
Tekrardan yardım ve paylaşım için teşekkürler.

2323.png
 
Son düzenleme:
Başka bir forumdan eklediğim zaman bir probleme şahit olmuştum. Pencere boyutuna göre height ve width ayarlamıyordu sadece board güncelleniyordu. küçük olduğunu farz edelim boardın altına tıklayıp basılı tutarak pencereyi sürükleyebiliyordum. Bu problemi var mı ? şuan test edemiyorum.
 
Eline sağlık paylaşım için sağol tiçaret de böyle olsa ne kadar çok item koyulunca genişlese
 
Başka bir forumdan eklediğim zaman bir probleme şahit olmuştum. Pencere boyutuna göre height ve width ayarlamıyordu sadece board güncelleniyordu. küçük olduğunu farz edelim boardın altına tıklayıp basılı tutarak pencereyi sürükleyebiliyordum. Bu problemi var mı ? şuan test edemiyorum.
evet bunda da sürüklüyebiliyorsun. problem devam yani
 
Geri
Üst