(Python) Pazara eklenen itemlerin toplam yang miktarı

  • Konbuyu başlatan Konbuyu başlatan Admin
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 289

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
ynIU63F.png

Mause yang miktarının üstüne getirilirse;
İtem eklenip yada kaldırılırsa yang miktarı anında güncellenir.
Az karakterli kodları tab ayarlı olarak vermiyorum kodları eklerken dikkatli olmanızda fayda var.Ayrıca tekrar aratılır kısımları var aratmanız gereken kodları eklemeyin sonra.. :)
Başlayalım..

Root uiprivateshopbuilder.py importların altına eklenir
Kod:
xc3VectorsYang = 0
Aratılır
Kod:
global g_isBuildingPrivateShop
Altına eklenir
Kod:
global xc3VectorsYang
Aratılır (Hemen altında)
Kod:
g_isBuildingPrivateShop = False
Altına eklenir
Kod:
xc3VectorsYang = 0
Aratılır
Kod:
self.titleBar = GetObject("TitleBar")
Altına eklenir
Kod:
self.xc3VectorsYang = GetObject("Yangxc")
Aratılır
Kod:
def Destroy(self):
Tekrar aratılır
Kod:
self.priceInputBoard = None
Altına eklenir
Kod:
self.xc3VectorsYang = None
Aratılır
Kod:
def Open(self, title):
Tekrar aratılır
Kod:
self.Refresh()
Altına eklenir
Kod:
self.xc3VectorsYang.SetText("0 Yang")
Aratılır
Kod:
g_isBuildingPrivateShop = False
Altına eklenir
Kod:
global xc3VectorsYang xc3VectorsYang = 0
Aratılır
Kod:
def OnSelectItemSlot(self, selectedSlotPos):
Altına eklenir
Kod:
global xc3VectorsYang
Aratılır
Kod:
invenType, invenPos = self.itemStock[selectedSlotPos]
Altına eklenir
Kod:
self.YangYenile("privatePosxxx", "xc3Vectors", invenType, invenPos)

Aratılır
Kod:
attachedInvenType = self.priceInputBoard.sourceWindowType
Altına eklenir
Kod:
self.YangYenile(int(text), "Item_ekledim", 0, 0)
Aratılır
Kod:
shop.DelPrivateShopItemStock(itemWindowType, itemSlotIndex)
Altına eklenir
Kod:
self.YangYenile(privatePos, "xc3Vectors", itemWindowType, itemSlotIndex)
Aratılır
Kod:
shop.BuildPrivateShop(self.title)
Altına eklenir
Kod:
xc3VectorsYang = 0


Kod:
def YangYenile(self, value, type, invenType, invenPos):         global xc3VectorsYang         if str(type) == "Item_ekledim":             xc3VectorsYang += value         else:             #Item sildim.             Yangim = shop.GetPrivateShopItemPrice(invenType, invenPos)             xc3VectorsYang -= Yangim         self.xc3VectorsYang.SetText("%s" % str(locale.NumberToMoneyString(int(xc3VectorsYang))))

#########
uiscript/PrivateShopBuilder.py
Aratılır (Aynı koddan 2 tane var.Kodların ikisinede uygulanacak)
Kod:
"height" : 328 + 26,
Değiştirilir
Kod:
"height" : 328 + 26 + 26,
Aratılır (Aynı koddan 2 tane var.Kodların ikisinede uygulanacak)
Kod:
"y" : 295 + 26,
Değiştirilir
Kod:
"y" : 295 + 26 + 26,

Aratılır
Kod:
"name" : "ItemSlot",

Kod:
{                     "name":"xc3Vectors",                     "type":"button",                     "x" : 0,                     "y" : 57,                     "horizontal_align":"center",                     "vertical_align":"bottom",                     "default_image" : "d:/ymir work/ui/public/parameter_slot_05.sub",                     "over_image" : "d:/ymir work/ui/public/parameter_slot_05.sub",                     "down_image" : "d:/ymir work/ui/public/parameter_slot_05.sub",                     "tooltip_text" : "Itemlerin toplam yang miktari..",                     "children" :                     (                         {                             "name" : "Yangxc",                             "type" : "text",                                                          "x" : 3,                             "y" : 3,                             "horizontal_align" : "right",                             "text_horizontal_align" : "right",                             "text" : "0 Yang",                         },                     ),                 },





Metin2 Lobby
Metin2 özel sunucularında geliştirme yaparken birçok geliştirici, oyuncuların pazara eklediği eşyaların satışından elde edilen Yang miktarını takip etmek ister. Bu işlem, hem ekonomi dengesini analiz etmek hem de sunucu içi ekonomik manipülasyonları önlemek açısından kritik öneme sahiptir. Bu yazıda, Python kullanarak Metin2 sunucusunda pazara eklenen eşyaların toplam Yang miktarını nasıl hesaplayacağımızı detaylı olarak inceleyeceğiz.

Pazar Sistemi Nedir?
Metin2 özel sunucularda pazar sistemi, oyuncuların doğrudan birbirleriyle ticaret yapabilmesini sağlar. Oyuncular eşyalarını belirli bir fiyatla pazara koyar ve diğer oyuncular bu eşyaları satın alabilir. Bu sistemin temel amacı, oyuncular arası ekonomik etkileşimi artırmaktır. Ancak bu sistemin kontrolsüz kullanılması, sunucu ekonomisinde ciddi dengesizliklere neden olabilir.

Python ile Toplam Yang Miktarı Nasıl Hesaplanır?
Python, Metin2 geliştirme sürecinde oldukça yaygın olarak kullanılan bir dildir. Özellikle GUI tabanlı sistemler, veritabanı işlemleri ve otomasyon süreçleri için tercih edilir. Pazara eklenen eşyaların toplam Yang miktarını hesaplamak için, öncelikle veritabanında bulunan pazar verilerine erişim gereklidir. Bu veriler genellikle MySQL veya MSSQL gibi veritabanlarında saklanır.

Örnek Python Kodu
Aşağıda, Python kullanarak bir Metin2 veritabanında bulunan 'market' adlı tablodaki tüm eşya fiyatlarının toplam Yang miktarını hesaplayan örnek bir kod parçası yer almaktadır:

Kod:
import mysql.connector[BR][/BR][BR][/BR]def toplam_yang_hesapla():[BR][/BR]    mydb = mysql.connector.connect([BR][/BR]        host='localhost',[BR][/BR]        user='root',[BR][/BR]        password='password',[BR][/BR]        database='metin2_game'[BR][/BR]    )[BR][/BR]    cursor = mydb.cursor()[BR][/BR]    query = 'SELECT SUM(price) FROM market WHERE status = 'active''[BR][/BR]    cursor.execute(query)[BR][/BR]    result = cursor.fetchone()[BR][/BR]    total_yang = result[0] if result[0] else 0[BR][/BR]    print(f'Toplam Pazar Yang Miktari: {total_yang}')[BR][/BR]    return total_yang

Veritabanı Yapısı ve Güvenlik
Yukarıdaki kodda görüldüğü üzere, 'market' tablosunda 'price' ve 'status' alanları bulunmaktadır. 'Status' alanı, eşyanın halihazırda pazarda olup olmadığını belirtir. Bu sayede, sadece aktif olan eşyalar üzerinden hesaplama yapılır. Veritabanı bağlantılarında mutlaka güvenli yöntemler kullanılmalı ve SQL injection gibi saldırılardan korunulmalıdır. Ayrıca, büyük sunucularda bu işlem zaman alabileceğinden, zamanlanmış görevler (cron job) ile periyodik olarak çalıştırılması önerilir.

Sunucu Ekonomisi Üzerine Tavsiyeler
Pazar sistemi sunucu ekonomisinin önemli bir parçasıdır. Eğer toplam Yang miktarı beklenenden fazlaysa, bu durum enflasyona neden olabilir. Bu nedenle, geliştiricilerin pazar verilerini düzenli olarak izlemesi ve gerekirse bazı sınırlamalar getirmesi önemlidir. Örneğin, pazar komisyon oranları artırılabilir veya eşya satış miktarında sınırlamalar konulabilir.

Sonuç
Python kullanarak Metin2 özel sunucularında pazara eklenen eşyaların toplam Yang miktarını hesaplamak oldukça kolaydır. Ancak bu işlem, sunucu ekonomisinin dengeli bir şekilde yönetilmesi açısından kritik öneme sahiptir. Bu tür verileri düzenli takip etmek, hem oyuncu deneyimini artırır hem de sunucu kararlılığını sağlar. Daha fazla Metin2 geliştirme kaynağı için Metin2 Lobby ziyaret edebilirsiniz.


Metin2 Lobby
When developing on Metin2 private servers, many developers want to track the total amount of Yang earned from items sold in the marketplace. This process is critical for analyzing economic balance and preventing in-game economic manipulations. In this article, we will examine in detail how to calculate the total Yang amount of items added to the marketplace in a Metin2 server using Python.

What Is The Marketplace System?
On Metin2 private servers, the marketplace system allows players to trade directly with each other. Players place their items on the market at a certain price, and other players can purchase these items. The main purpose of this system is to increase economic interaction between players. However, uncontrolled use of this system may cause significant imbalances in the server economy.

How To Calculate Total Yang Amount With Python?
Python is widely used during the Metin2 development process. It is especially preferred for GUI-based systems, database operations, and automation processes. To calculate the total Yang amount of all items placed in the marketplace, access to the marketplace data stored in the database is required. These data are usually stored in databases such as MySQL or MSSQL.

Sample Python Code
Below is a sample code snippet that calculates the total Yang amount of all item prices in a 'market' table located in a Metin2 database using Python:

Kod:
import mysql.connector[BR][/BR][BR][/BR]def calculate_total_yang():[BR][/BR]    mydb = mysql.connector.connect([BR][/BR]        host='localhost',[BR][/BR]        user='root',[BR][/BR]        password='password',[BR][/BR]        database='metin2_game'[BR][/BR]    )[BR][/BR]    cursor = mydb.cursor()[BR][/BR]    query = 'SELECT SUM(price) FROM market WHERE status = 'active''[BR][/BR]    cursor.execute(query)[BR][/BR]    result = cursor.fetchone()[BR][/BR]    total_yang = result[0] if result[0] else 0[BR][/BR]    print(f'Total Market Yang Amount: {total_yang}')[BR][/BR]    return total_yang

Database Structure And Security
As seen in the code above, the 'market' table contains 'price' and 'status' fields. The 'status' field indicates whether the item is currently on the market. Thus, calculations are performed only on active items. Secure methods must be used for database connections, and protection against attacks like SQL injection is essential. Additionally, since this operation may take time on larger servers, it is recommended to run it periodically using scheduled tasks (cron jobs).

Recommendations On Server Economy
The marketplace system is an important part of the server economy. If the total Yang amount is higher than expected, it could lead to inflation. Therefore, it is important for developers to regularly monitor marketplace data and implement restrictions when necessary. For example, marketplace commission rates can be increased or limits on item sales can be set.

Conclusion
Calculating the total Yang amount of items added to the marketplace on Metin2 private servers using Python is quite straightforward. However, this action is critical in maintaining a balanced server economy. Regular monitoring of such data improves player experience and ensures server stability. For more Metin2 development resources visit Metin2 Lobby.
 

Şuan Bu Konuyu Görüntüleyen Kullanıcılar (Toplam : 0, Üye : 0, Misafir : 0)

Benzer konular

Geri
Üst Alt