Ticaret Sisteminde Sayıyı Basamaklara Göre Ayırma (1.000.000)

Whistle

Ruhsuz :/
Kurucu
Geliştirici
Yardımsever Üye
Mesaj
12.296
Çözümler
573
Beğeni
15.701
Puan
6.281
Ticaret Puanı
2
root/uiexchange.py açılıp aşağıdaki kod aratılır;

Python:
Genişlet Daralt Kopyala
self.OwnerMoney.SetText(str(exchange.GetElkFromSelf()))
self.TargetMoney.SetText(str(exchange.GetElkFromTarget()))

Aşağıda yazan kodlarla değiştirilir.
Python:
Genişlet Daralt Kopyala
self.OwnerMoney.SetText(localeInfo.NumberToMoneyString(str(exchange.GetElkFromSelf())))
self.TargetMoney.SetText(localeInfo.NumberToMoneyString(str(exchange.GetElkFromTarget())))

Not: Bazı pack dosyalarında localeInfo.py yerine locale.py yazmaktadır. Eğer root içinde localeInfo yerine locale.py varsa kodları şu şekilde uiexchange'ye yazmanız gerek.

Python:
Genişlet Daralt Kopyala
self.OwnerMoney.SetText(locale.NumberToMoneyString(str(exchange.GetElkFromSelf())))
self.TargetMoney.SetText(locale.NumberToMoneyString(str(exchange.GetElkFromTarget())))

Bu işlemleri yaptıktan sonra ticaretteki para miktarı şu şekilde gözükür;
Ticaret Yang Noktalama 1.png


Sayı yazı stilini locale'den çektiğimiz için envanterimizdeki yang miktarı gibi yazmaktadır. Eğer ticaret ekranın Yang yazısını kaldırmak istiyorsanız şu adımları uygulayınız;

1. Yöntem (Direk uiexchance üzerinden düzeltmek için.);
root/uiexchange.py açılıp aşağıdaki kod aratılır;
Python:
Genişlet Daralt Kopyala
self.OwnerMoney.SetText(str(exchange.GetElkFromSelf()))
self.TargetMoney.SetText(str(exchange.GetElkFromTarget()))

Aşağıda yazan kodlarla değiştirilir.
Python:
Genişlet Daralt Kopyala
self.OwnerMoney.SetText(str(('.'.join([ i-3<0 and str(exchange.GetElkFromSelf())[:i] or str(exchange.GetElkFromSelf())[i-3:i] for i in range(len(str(exchange.GetElkFromSelf()))%3, len(str(exchange.GetElkFromSelf()))+1, 3) if i ]))))
self.TargetMoney.SetText(str(('.'.join([ i-3<0 and str(exchange.GetElkFromTarget())[:i] or str(exchange.GetElkFromTarget())[i-3:i] for i in range(len(str(exchange.GetElkFromTarget()))%3, len(str(exchange.GetElkFromTarget()))+1, 3) if i ]))))

2. Yöntem (Locale'den çekmek isteyenler için.)
LocaleInfo.py
açılır. (Root dosyasında LocaleInfo.py olmayanlar Locale.py'yi açmaları gerekmektedir.) Şu kod blogu aratılır.
Python:
Genişlet Daralt Kopyala
def NumberToMoneyString(n) :

        if n <= 0 :
            return "0 %s" % (MONETARY_UNIT0)

        return "%s %s" % ('.'.join([ i-3<0 and str(n)[:i] or str(n)[i-3:i] for i in range(len(str(n))%3, len(str(n))+1, 3) if i ]), MONETARY_UNIT0)

Aşağıda yazan kodlarla değiştirilir.
Python:
Genişlet Daralt Kopyala
def NumberToMoneyString(n,y=0) :
        if n <= 0 :
            if y == 0:
                return "0 %s" % (MONETARY_UNIT0)
            else:
                return "0"
        if y == 0:
            return "%s %s" % ('.'.join([ i-3<0 and str(n)[:i] or str(n)[i-3:i] for i in range(len(str(n))%3, len(str(n))+1, 3) if i ]), MONETARY_UNIT0)
        else:
            return "%s" % ('.'.join([ i-3<0 and str(n)[:i] or str(n)[i-3:i] for i in range(len(str(n))%3, len(str(n))+1, 3) if i ]))


Bu işlemden sonra root/uiexchange.py açılıp aşağıdaki kod aratılır;
Python:
Genişlet Daralt Kopyala
self.OwnerMoney.SetText(str(exchange.GetElkFromSelf()))
self.TargetMoney.SetText(str(exchange.GetElkFromTarget()))


Aşağıda yazan kodlarla değiştirilir.
Python:
Genişlet Daralt Kopyala
self.OwnerMoney.SetText(localeInfo.NumberToMoneyString(exchange.GetElkFromSelf(),1))
self.TargetMoney.SetText(localeInfo.NumberToMoneyString(exchange.GetElkFromTarget(),1))


Not: Bazı pack dosyalarında localeInfo.py yerine locale.py yazmaktadır. Eğer root içinde localeInfo yerine locale.py varsa kodları şu şekilde uiexchange'ye yazmanız gerek.
Python:
Genişlet Daralt Kopyala
self.OwnerMoney.SetText(locale.NumberToMoneyString(exchange.GetElkFromSelf(),1))
self.TargetMoney.SetText(locale.NumberToMoneyString(exchange.GetElkFromTarget(),1))
İşlemler tamamlandığında şu şekilde gözükür;
Ticaret Yang Noktalama 2.png
 
Son düzenleme:
Uyarı: Bu konu açıldığından bu yana baya zaman geçmiş.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.
Geri
Üst