Çözülemedi Moblara Hp-Bar eklerken hata alıyorum

  • Konuyu açan Konuyu açan uncons
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 16
  • Gösterim Gösterim 727
Ne yazık ki bu konuda sorulara çözüm bulunmuyor. Eğer konuda yorumlar varsa hepsini inceleyebilirsiniz. Belki sizlerin sorununuzu çözmek için için ipuçları bulabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

uncons

Üye
Üye
Mesaj
63
Çözümler
4
Beğeni
10
Puan
59
Ticaret Puanı
0
Arkadaşlar oyuna hp barı eklemek istedim moblar için metin için ama hata alıyorum aslında hatanın ne olduğu da belli ama ben anlamadığım için bozmayayım daha fazla dedim zaten bozduk galiba bozacağımız kadar ama inşallah çok büyük hata yapmamışımdır ya konuda yazan son satırları anlamadım biriniz bakabilir mi acaba hem bilmeyen yapamayan da yapmış olur biraz karışık çünkü bu size konuyu direk link atayım zaten altına yorum attım orada da hatamı görürsünüz şimdiden teşekkür ederim.

konu linki:

Linkleri görebilmek için giriş yap veya kayıt ol.


aldığım hata:

log.png


ui.py:
Genişlet Daralt Kopyala
class Gauge(Window):

    SLOT_WIDTH = 16
    SLOT_HEIGHT = 7

    GAUGE_TEMPORARY_PLACE = 12
    GAUGE_WIDTH = 16

    def __init__(self):
        Window.__init__(self)
        self.__oldValue = 0
        self.__newValue = 0
        self.width = 0

    def __del__(self):
        Window.__del__(self)

    def MakeGauge(self, width, color):

        self.width = max(48, width)

        imgSlotLeft = ImageBox()
        imgSlotLeft.SetParent(self)
        imgSlotLeft.LoadImage("d:/ymir work/ui/pattern/gauge_slot_left.tga")
        imgSlotLeft.Show()

        imgSlotRight = ImageBox()
        imgSlotRight.SetParent(self)
        imgSlotRight.LoadImage("d:/ymir work/ui/pattern/gauge_slot_right.tga")
        imgSlotRight.Show()
        imgSlotRight.SetPosition(width - self.SLOT_WIDTH, 0)

        imgSlotCenter = ExpandedImageBox()
        imgSlotCenter.SetParent(self)
        imgSlotCenter.LoadImage("d:/ymir work/ui/pattern/gauge_slot_center.tga")
        imgSlotCenter.Show()
        imgSlotCenter.SetRenderingRect(0.0, 0.0, float((width - self.SLOT_WIDTH*2) - self.SLOT_WIDTH) / self.SLOT_WIDTH, 0.0)
        imgSlotCenter.SetPosition(self.SLOT_WIDTH, 0)

        imgGaugeBack = ExpandedImageBox()
        imgGaugeBack.SetParent(self)
        imgGaugeBack.LoadImage("d:/ymir work/ui/pattern/gauge_yellow.tga")
        imgGaugeBack.Hide()
        imgGaugeBack.SetRenderingRect(0.0, 0.0, 0.0, 0.0)
        imgGaugeBack.SetPosition(self.GAUGE_TEMPORARY_PLACE, 0)

        imgGauge = ExpandedImageBox()
        imgGauge.SetParent(self)
        imgGauge.LoadImage("d:/ymir work/ui/pattern/gauge_yellow.tga")
        imgGauge.Show()
        imgGauge.SetRenderingRect(0.0, 0.0, 0.0, 0.0)
        imgGauge.SetPosition(self.GAUGE_TEMPORARY_PLACE, 0)

        imgSlotLeft.AddFlag("attach")
        imgSlotCenter.AddFlag("attach")
        imgGaugeBack.AddFlag("attach")
        imgSlotRight.AddFlag("attach")

    if app.BL_PARTY_UPDATE:
        def GaugeImgBoxAddFlag(self, flag):
            self.imgLeft.AddFlag(flag)
            self.imgCenter.AddFlag(flag)
            self.imgRight.AddFlag(flag)
            self.imgGauge.AddFlag(flag)

    if app.ENABLE_POISON_GAUGE_EFFECT:
        def SetGaugeColor(self, color):
            if self.imgGauge:
                self.imgGauge.LoadImage("d:/ymir work/ui/pattern/gauge_yellow.tga")

        self.imgLeft = imgSlotLeft
        self.imgCenter = imgSlotCenter
        self.imgRight = imgSlotRight
        self.imgGauge = imgGauge
        self.imgGaugeBack = imgGaugeBack

        self.SetSize(width, self.SLOT_HEIGHT)

    def SetPercentage(self, curValue, maxValue):

        # PERCENTAGE_MAX_VALUE_ZERO_DIVISION_ERROR
        if maxValue > 0.0:
            percentage = min(1.0, float(curValue)/float(maxValue))
        else:
            percentage = 0.0
        # END_OF_PERCENTAGE_MAX_VALUE_ZERO_DIVISION_ERROR

        self.__oldValue = self.__newValue
        self.__newValue = percentage

        gaugeSize = -1.0 + float(self.width - self.GAUGE_TEMPORARY_PLACE*2) * percentage / self.GAUGE_WIDTH
        self.imgGauge.SetRenderingRect(0.0, 0.0, gaugeSize, 0.0)

        self.SetPercentageBack(self.__oldValue, 1.0)

    def SetPercentageBack(self, curValue, maxValue):
        if not self.imgGaugeBack.IsShow():
            self.imgGaugeBack.Show()

        if maxValue > 0.0:
            percentage = min(1.0, float(curValue) / float(maxValue))
        else:
            percentage = 0.0

        gaugeSize = -1.0 + float(self.width - self.GAUGE_TEMPORARY_PLACE * 2) * percentage / self.GAUGE_WIDTH
        self.imgGaugeBack.SetRenderingRect(0.0, 0.0, gaugeSize, 0.0)

    def OnUpdate(self):
        if self.IsShow() and self.__oldValue > self.__newValue:
            self.__oldValue = self.__oldValue - 0.005
            self.SetPercentageBack(self.__oldValue, 1.0)


uitarget.py:
Genişlet Daralt Kopyala
    def SetHP(self, hpNow, hpMax):
        if not self.hpGauge.IsShow():

            self.SetSize(200 + 7 * self.nameLength, self.GetHeight())
            self.name.SetPosition(23, 13)
            self.name.SetWindowHorizontalAlignLeft()
            self.name.SetHorizontalAlignLeft()

            self.hpGauge.Show()
            self.hpText.Show()
            self.UpdatePosition()

        if app.ENABLE_POISON_GAUGE_EFFECT:
            if chrmgr.HasAffectByVID(self.GetTargetVID(), chr.AFFECT_POISON):
                self.hpGauge.SetGaugeColor("lime")
            else:
                self.hpGauge.SetGaugeColor("red")

        self.hpGauge.SetPercentage(hpNow, hpMax)

        self.hpText.SetText("%s/%s (%.2f%%)"
                            % (localeInfo.NumberToMoneyString(hpNow)[:-5],
                               localeInfo.NumberToMoneyString(hpMax)[:-5],
                               max(0, (float(hpNow) / max(1, float(hpMax)) * 100))))


Editledim buraya da yazayım bu son eklediğim kod bölümleri konu sahibinin paylaştığı rardaki son satırlar yani bütün kodlar bunlar değil öbür kodları eksiksiz girdim de bu son bölümlerini anlamadım düzenledim anladığım kadarıyla ama olmadı ya
 
Güncel olarak biraz uğraştıktan sonra bişeyler yapabildim,oyunu sorunsuz açtım sorunsuz da eklemişim hp barı ama sarı efekt kısmını ekleyemedim sanırım ui.py tamamen efekt ile ilgili zaten isteğe bağlı yazmışlar ama ui target içerisindeki sarı kod bloğunu sildikten sonra ekleyebildim yani o sarı blok da galiba ui.py ile bağlantılı o sarı kısmı da ekleyebilsem aslında güzel olurdu o konuda yardımcı olabilecek varsa sevinirim yani sistem eklendi ama sadece efekt kısmı kaldı o da çok güzel duruyor umarım ekleyebilirsiniz arkadaşlar yorumlarınızı bekliyorumm

ss :
foto111.png


ve bu arada şunu da eklemeyi unuttum uitarget içindeki o sarı kısımı ekleyince metinin canı az görünüyordu tamamen görüntü sorunu oluşturuyordu yani neyse umarım birisi yardımcı olabilir efekt kısmını eklemek isterdim ekleyemedim :D
 
İlk atmış olduğun hatada BL_PARTY_UPDATE Sistemi sende client tarafında ekli olmadığı için bulamadım demiş yani şu kod satırında

ui.py:
Genişlet Daralt Kopyala
        if app.BL_PARTY_UPDATE:
            imgSlotLeft.AddFlag("not_pick")
            imgSlotCenter.AddFlag("not_pick")
            imgSlotRight.AddFlag("not_pick")
            imgGauge.AddFlag("not_pick")

Bu kod satırı ne ile alakalı onu bilmiyorum..


İstersen bu kodu kaldırmadan yapabilirsin aslında

Locale_inc.h Gir

Müsait bir yere Ekle

Locale_inc.h:
Genişlet Daralt Kopyala
#define BL_PARTY_UPDATE

PythonApplicationModule.cpp Aç

Ekle:
Genişlet Daralt Kopyala
//Arat

#ifdef ENABLE_COSTUME_SYSTEM
    PyModule_AddIntConstant(poModule, "ENABLE_COSTUME_SYSTEM",    1);
#else
    PyModule_AddIntConstant(poModule, "ENABLE_COSTUME_SYSTEM",    0);
#endif


//Altına Ekle


#ifdef BL_PARTY_UPDATE
    PyModule_AddIntConstant(poModule, "BL_PARTY_UPDATE", 1);
#else
    PyModule_AddIntConstant(poModule, "BL_PARTY_UPDATE", 0);
#endif
 
Son düzenleme:
İlk atmış olduğun hatada BL_PARTY_UPDATE Sistemi sende client tarafında ekli olmadığı için bulamadım demiş yani şu kod satırında

ui.py:
Genişlet Daralt Kopyala
        if app.BL_PARTY_UPDATE:
            imgSlotLeft.AddFlag("not_pick")
            imgSlotCenter.AddFlag("not_pick")
            imgSlotRight.AddFlag("not_pick")
            imgGauge.AddFlag("not_pick")

Bu kod satırı ne ile alakalı onu bilmiyorum..


İstersen bu kodu kaldırmadan yapabilirsin aslında

Locale_inc.h Gir

Müsait bir yere Ekle

Locale_inc.h:
Genişlet Daralt Kopyala
#define BL_PARTY_UPDATE

PythonApplicationModule.cpp Aç

Ekle:
Genişlet Daralt Kopyala
//Arat

#ifdef ENABLE_COSTUME_SYSTEM
    PyModule_AddIntConstant(poModule, "ENABLE_COSTUME_SYSTEM",    1);
#else
    PyModule_AddIntConstant(poModule, "ENABLE_COSTUME_SYSTEM",    0);
#endif


//Altına Ekle


#ifdef BL_PARTY_UPDATE
    PyModule_AddIntConstant(poModule, "BL_PARTY_UPDATE", 1);
#else
    PyModule_AddIntConstant(poModule, "BL_PARTY_UPDATE", 0);
#endif

bunu ekledikten sonra yeni hata çıktı arkadaşlar görmeyen bilen varsa yazabilirse sevinirim.

log3.png
 
İmageslot tanımlı değil diyor başka bir filestan söküyorsanız ui pyde yada client srcde o kod bloğunu aratın.
 
İmageslot tanımlı değil diyor başka bir filestan söküyorsanız ui pyde yada client srcde o kod bloğunu aratın.
evet hocam tanımlı değil dediğini ben de anladım da başka filesten sökmüyorum dev sitesinde paylaşılmış ama detaylı yazmamış sadece kodları vermiş anladığım kadarıyla nereye tanımlayacağımı bilmiyorum ki sorun orda yani
 
evet hocam tanımlı değil dediğini ben de anladım da başka filesten sökmüyorum dev sitesinde paylaşılmış ama detaylı yazmamış sadece kodları vermiş anladığım kadarıyla nereye tanımlayacağımı bilmiyorum ki sorun orda yani
Özel mesajdan discordunuzu atın bakalım.
 
Kodlara şimdi baktım da, makrosuz olarak paylaşılmış. BL_PARTY_UPDATE kısmını da, o sisteme sahip olanlar için uyarlama amacıyla vermiş. Yani sende BL_PARTY_UPDATE sistemi yoksa o kodları silerek veya yoruma çevirerek eklemen gerekiyor.
 
Kodlara şimdi baktım da, makrosuz olarak paylaşılmış. BL_PARTY_UPDATE kısmını da, o sisteme sahip olanlar için uyarlama amacıyla vermiş. Yani sende BL_PARTY_UPDATE sistemi yoksa o kodları silerek veya yoruma çevirerek eklemen gerekiyor.
teşekkürler cevap için hocam peki bl party kısmını sildim diyelim sonra imgSlotLeft kısmını da mı silmem lazım sonrasında onda da bulmadı diyor ya bulamadıklarını sileyim mi
 
"Bulamadıklarını sileyim" diye düşünmek çok yanlış. Bazen senin filesındaki eksiklikten dolayı da aynı hataları alabilirsin.
Ama bu konu için konuşacak olursak evet if app.BL_PARTY_UPDATE: diye eklenen satırları silebilirsin.
 
"Bulamadıklarını sileyim" diye düşünmek çok yanlış. Bazen senin filesındaki eksiklikten dolayı da aynı hataları alabilirsin.
Ama bu konu için konuşacak olursak evet if app.BL_PARTY_UPDATE: diye eklenen satırları silebilirsin.
hocam ben öyle düşünmedim sordum yani sileyim mi diye + olarak zaten o kısmı kaldırdıktan sonra imgSlotLeft bulunmadı diyor yani orayı nasıl ekleyeceğimi sormuştum yukarıda,ben o kısımları nereye ekleyeceğimi bilmiyorum sorunum bu malesef
 
hocam ben öyle düşünmedim sordum yani sileyim mi diye + olarak zaten o kısmı kaldırdıktan sonra imgSlotLeft bulunmadı diyor yani orayı nasıl ekleyeceğimi sormuştum yukarıda,ben o kısımları nereye ekleyeceğimi bilmiyorum sorunum bu malesef
Anladım zaten, ben sadece genel olarak geliştirme sürecinde tabiri caizse bu düşünceye kapılma diye uyarı niteliğinde öyle söyledim.
Python:
Genişlet Daralt Kopyala
    if app.BL_PARTY_UPDATE:
        def GaugeImgBoxAddFlag(self, flag):
            self.imgLeft.AddFlag(flag)
            self.imgCenter.AddFlag(flag)
            self.imgRight.AddFlag(flag)
            self.imgGauge.AddFlag(flag)

    if app.ENABLE_POISON_GAUGE_EFFECT:
        def SetGaugeColor(self, color):
            if self.imgGauge:
                self.imgGauge.LoadImage("d:/ymir work/ui/pattern/gauge_yellow.tga")

Bu sistemlere sahip değilsen komple sil bu kısımları.
 
Anladım zaten, ben sadece genel olarak geliştirme sürecinde tabiri caizse bu düşünceye kapılma diye uyarı niteliğinde öyle söyledim.
Python:
Genişlet Daralt Kopyala
    if app.BL_PARTY_UPDATE:
        def GaugeImgBoxAddFlag(self, flag):
            self.imgLeft.AddFlag(flag)
            self.imgCenter.AddFlag(flag)
            self.imgRight.AddFlag(flag)
            self.imgGauge.AddFlag(flag)

    if app.ENABLE_POISON_GAUGE_EFFECT:
        def SetGaugeColor(self, color):
            if self.imgGauge:
                self.imgGauge.LoadImage("d:/ymir work/ui/pattern/gauge_yellow.tga")

Bu sistemlere sahip değilsen komple sil bu kısımları.
syserr:
Genişlet Daralt Kopyala
0221 20:29:18445 :: ui:2849: RuntimeWarning: tp_compare didn't return -1 or -2 for exception

0221 20:29:18447 ::
introSelect.py(line:279) __LoadBoardDialog
ui.py(line:2842) LoadScriptFile
ui.py(line:3032) LoadChildren
ui.py(line:3032) LoadChildren
ui.py(line:3032) LoadChildren
ui.py(line:2849) LoadChildren

SelectCharacterWindow.LoadBoardDialog.LoadScript - <type 'exceptions.RuntimeError'>:Failed to load image (filename: d:/ymir work/ui/pattern/gauge_yellow.tga)

0221 20:29:18447 :: ============================================================================================================
0221 20:29:18447 :: Abort!!!!

syserr buyrun hocam
if app.BL_PARTY_UPDATE:
if app.ENABLE_POISON_GAUGE_EFFECT:
bu 2 bloğu silince bu hatayı aldım
 
syserr:
Genişlet Daralt Kopyala
0221 20:29:18445 :: ui:2849: RuntimeWarning: tp_compare didn't return -1 or -2 for exception

0221 20:29:18447 ::
introSelect.py(line:279) __LoadBoardDialog
ui.py(line:2842) LoadScriptFile
ui.py(line:3032) LoadChildren
ui.py(line:3032) LoadChildren
ui.py(line:3032) LoadChildren
ui.py(line:2849) LoadChildren

SelectCharacterWindow.LoadBoardDialog.LoadScript - <type 'exceptions.RuntimeError'>:Failed to load image (filename: d:/ymir work/ui/pattern/gauge_yellow.tga)

0221 20:29:18447 :: ============================================================================================================
0221 20:29:18447 :: Abort!!!!

syserr buyrun hocam
if app.BL_PARTY_UPDATE:
if app.ENABLE_POISON_GAUGE_EFFECT:
bu 2 bloğu silince bu hatayı aldım
Şimdi vermesi gereken hatayı vermiş.
Hatadaki .tga dosyasını bulamıyor. Sistemin paylaşıldığı klasörde mevcuttur, yol dizini doğru olacak şekilde pack'e eklediğinde sorun çözülmüş olacaktır.
 
Şimdi vermesi gereken hatayı vermiş.
Hatadaki .tga dosyasını bulamıyor. Sistemin paylaşıldığı klasörde mevcuttur, yol dizini doğru olacak şekilde pack'e eklediğinde sorun çözülmüş olacaktır.
aslında onu da eklemiştim yanlış yere mi ekledim acaba size yol dizinini atıyorum buyrun :

foto2.png


ben hatanın if app.ENABLE_POISON_GAUGE_EFFECT:
bu bloktan kaynaklandığını düşünüyorum mantık yürüterek ama bilmiyorum tabi sadece görüntü olarak bu blokta çünkü yellow tga var ve sanki efekt ile alakalı gibi duruyor yani söylemek istediğim bu bloğu aktif hale getirmeyi nasıl yapabilirim o çözer gibi duruyor bu hatayı

ui.py:
Genişlet Daralt Kopyala
    if app.ENABLE_POISON_GAUGE_EFFECT:
        def SetGaugeColor(self, color):
            if self.imgGauge:
                self.imgGauge.LoadImage("d:/ymir work/ui/pattern/gauge_yellow.tga")
 
Son düzenleme:
aslında onu da eklemiştim yanlış yere mi ekledim acaba size yol dizinini atıyorum buyrun :

11780 eklentisini görüntüle

ben hatanın if app.ENABLE_POISON_GAUGE_EFFECT:
bu bloktan kaynaklandığını düşünüyorum mantık yürüterek ama bilmiyorum tabi sadece görüntü olarak bu blokta çünkü yellow tga var ve sanki efekt ile alakalı gibi duruyor yani söylemek istediğim bu bloğu aktif hale getirmeyi nasıl yapabilirim o çözer gibi duruyor bu hatayı

ui.py:
Genişlet Daralt Kopyala
    if app.ENABLE_POISON_GAUGE_EFFECT:
        def SetGaugeColor(self, color):
            if self.imgGauge:
                self.imgGauge.LoadImage("d:/ymir work/ui/pattern/gauge_yellow.tga")
Çok karışık bir şekilde paylaşılmış bu sistem ama sanırım anladım.
Ama her şeyden önce bu blokları silip ekle ve bir kontrol et, eğer eksiklik falan olursa ona göre bıu gibi blokları tekrar aktifleştirirsin.

ENABLE_POISON_GAUGE_EFFECT ise zehir efekti sistemi.
Onu da buradan ekleyebilirsin:
Linkleri görebilmek için giriş yap veya kayıt ol.
 
Çok karışık bir şekilde paylaşılmış bu sistem ama sanırım anladım.
Ama her şeyden önce bu blokları silip ekle ve bir kontrol et, eğer eksiklik falan olursa ona göre bıu gibi blokları tekrar aktifleştirirsin.

ENABLE_POISON_GAUGE_EFFECT ise zehir efekti sistemi.
Onu da buradan ekleyebilirsin:
Linkleri görebilmek için giriş yap veya kayıt ol.
aynen hocam tam söylediğiniz gibi çok karışık paylaşılmış özellikle efekt kısmını hiç anlatmamış,evet zehirlemeden yola çıkarak söyledim zehirleme efektine benziyor sanki yani bunu moblara zehirleme tarzında eklemişler gibi geldi bana yani ben sadece mantık yürütüyorum sakın yanlış anlamayın çok bilmişlik falan yapmak istemiyorum yani sadece hani eklesek ne olur tarzında sormak istedim
O iki bloğu silince o hatayı verdi işte yani bence o kısmı aktifleştirsem sorun çözülür mü diyeceğim de o attığınız konuya baya bir baktım orda da çok fazla bölüme eklemişler onun da oyunun bir kısmını bozacağını düşünüyorum çünkü ben zehirleme efektini istemiyorum sadece metinlerde ve moblarda olsun istemiştim ama sanırım bununla ilgili bir konu veya bilen birisi yok bu yüzden hocam affınıza sığınarak bu efekti eklemekten vazgeçelim hem siz yorulmayın hem de bilen birisi yok zaten gördüğüm kadarıyla bu yüzden teşekkür ederim konuyu kapatabilirsiniz ilgilenmeniz bile benim için büyük bir teşekkür <3
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Üst