[Python] İtem Shop Buy COUNT Sistemi

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Merhaba Arkadaşlar Yararlı olacağını Düşündüm ( ALINTIDIR )

Sistem özelliği NPC den item alırken Kaç Adet Alıncağını belirtmektir. En fazla 200 adet alınabilir.

Ekran Görüntüsü



1MVljN.gif


KURULUM

Öncelikle Vereceğim Dosyayı İndirin.
Root ve uiscript içerisine atın .

Dosya Linki:
Virus Total:

PACK EDİTLEMESİ

root/uishop.py Açın

Aratın:

Kod:
import ui

Üstüne Ekleyin:


Kod:
import uiPickMoney


Resimdeki gibi
Yrq7bj.jpg



Aratın:

Kod:
self.Refresh()


yalnız bu koddan çok olacaktır;
Bendeki kod bloğuna bakarak


Kod:
self.btnClose.SetEvent(ui.__mem_func__(self.AskClosePrivateShop))         self.titleBar.SetCloseEvent(ui.__mem_func__(self.Close))         self.smallRadioButtonGroup = ui.RadioButtonGroup.Create([[smallTab1, lambda : self.OnClickTabButton(0), None], [smallTab2, lambda : self.OnClickTabButton(1), None], [smallTab3, lambda : self.OnClickTabButton(2), None]])         self.middleRadioButtonGroup = ui.RadioButtonGroup.Create([[middleTab1, lambda : self.OnClickTabButton(0), None], [middleTab2, lambda : self.OnClickTabButton(1), None]])         self.__HideMiddleTabs()         self.__HideSmallTabs()         self.tabIdx = 0         self.coinType = shop.SHOP_COIN_TYPE_GOLD



Kod:
self.Refresh()


Kod:
self.Refresh()

bu kodun Üstüne Ekleyin:

Kod:
itemal = uiPickMoney.PickMoneyDialog()         itemal.LoadDialog()         itemal.Hide()         self.itemal = itemal


Örnek resim
rZ6oDa.jpg




Aratın


Kod:
def Destroy(self):         self.Close()         self.ClearDictionary()


Altına Ekleyin;

Kod:
self.itemal.Destroy()         self.itemal = 0

Örnek resim
4b1vvq.jpg



Aratın:

Kod:
def UnselectItemSlot(self, selectedSlotPos):                if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS() == 1:             return         if shop.IsPrivateShop():             self.AskBuyItem(selectedSlotPos)         else:             net.SendShopBuyPacket(self.__GetRealIndex(selectedSlotPos))


Değiştirin;


Kod:
def UnselectItemSlot(self, selectedSlotPos):         if shop.IsPrivateShop():             self.AskBuyItem(selectedSlotPos)         else:             #net.SendShopBuyPacket(selectedSlotPos)             itemIndex = shop.GetItemID(selectedSlotPos)             item.SelectItem(itemIndex)             itemName = item.GetItemName()             curMax = 200             self.itemal.SetTitleName(itemName)             self.itemal.SetAcceptEvent(ui.__mem_func__(self.OnItC))             self.itemal.Open(curMax)             self.itemal.SetMax(3)              self.cek = selectedSlotPos     def OnItC(self, adet):         n = 0         cek = self.cek         while n < adet:             net.SendShopBuyPacket(cek)             n = n + 1


Resim


JnqyPE.jpg

Metin2 özel sunucularında özel sistemler geliştirmek, oyuncu deneyimini artırmak için kritik öneme sahiptir. Bu yazıda Python

dili kullanılarak geliştirilmiş olan Item Shop Buy COUNT Sistemi detaylı olarak ele alınacaktır. Bu sistem, oyuncuların belirli bir ürünün alımında sınırlamalarla karşılaşmasını sağlar. Bu sayede sunucuda item dengesi korunabilir ve bazı özel ödüller sadece sınırlı sayıda satın alımla elde edilebilir.

Sistem Nedir?
Item Shop Buy COUNT Sistemi, oyuncunun bir ürünü satın alma hakkını belirli bir limite bağlayan bir yapıdır. Örneğin, bir özel silah veya premium item sadece 3 kez satın alınabilsin istenebilir. Bu durumda sistem, her satın alma işleminde veritabanında sayaç artırır ve kullanıcıya maksimum alım sayısına ulaşıldığında uyarı mesajı gösterir.

Python ve Uygulama Mantığı
Python tarafında bu sistem genellikle MySQL veya SQLite gibi bir veritabanı ile entegre çalışır. Satın alma işlemi gerçekleştiğinde, oyuncu ID, item ID ve satın alma sayısı veritabanına yazılır. Sayaç, her alımda +1 artırılır. Belirlenen limite ulaşıldığında, satın alma işlemi iptal edilir ve oyuncuya bilgi verilir.

Kullanım Alanları
  • Oyuncuların özel ödülleri sınırlı sayıda alabilmesini sağlamak
  • Sunucudaki item dengesini korumak
  • Premium içeriklerin kontrol edilebilir bir şekilde dağıtımı
  • PVP sistemlerinde avantaj sağlayan itemlerin sınırlanması

Teknik Uygulama
Python'da bu sistem genellikle bir class yapısı ile organize edilir. Örnek bir yapı şu şekildedir:
def check_buy_limit(player_id, item_id):[/BR] # Veritabanında sayaç kontrolü yapılır[/BR] count = get_count_from_db(player_id, item_id)[/BR] if count >= MAX_LIMIT:[/BR] return False[/BR] else:[/BR] increment_counter(player_id, item_id)[/BR] return True[/BR]
Veritabanı Yapısı
Tablo adı: shop_item_counts
Columns: player_id, item_id, count

Özet
Item Shop Buy COUNT Sistemi, Metin2 özel sunucularında güçlü ve esnek bir kontrol mekanizmasıdır. Python ile kolayca entegre edilebilir ve veritabanı ile senkronize çalışarak dinamik limitler sağlar. Bu sistem, hem sunucu operatörlerinin kontrolünü artırır hem de oyuncular için adil bir dağıtım sağlar.

Kaynak Kodlar İçin: Metin2 Lobby


Metin2 private servers require custom systems to enhance the gaming experience. In this article, we will examine the Item Shop Buy COUNT System developed with Python. This system limits how many times a player can purchase a specific item, ensuring balance and preventing abuse of special items.

What Is The System?
The Item Shop Buy COUNT System restricts players from purchasing certain items more than a set number of times. For example, a special weapon or premium item may only be available for purchase up to 3 times per account. Each purchase increases a counter in the database, and once the limit is reached, further purchases are blocked.

Python and Implementation Logic
The system typically works integrated with databases such as MySQL or SQLite. On each purchase, the player ID, item ID, and current purchase count are checked and updated in the database. When the maximum allowed count is reached, the transaction is canceled and the user is notified.

Use Cases
  • Limiting special reward purchases
  • Maintaining item balance on the server
  • Controlling distribution of premium items
  • Restricting PVP advantage items

Technical Implementation
In Python, the system is usually organized into a class. An example structure looks like this:
def check_buy_limit(player_id, item_id):[/BR] # Check the counter in the database[/BR] count = get_count_from_db(player_id, item_id)[/BR] if count >= MAX_LIMIT:[/BR] return False[/BR] else:[/BR] increment_counter(player_id, item_id)[/BR] return True[/BR]
Database Structure
Table name: shop_item_counts
Columns: player_id, item_id, count

Summary
The Item Shop Buy COUNT System provides a robust control mechanism for Metin2 private servers. It integrates easily with Python and syncs with databases to dynamically enforce purchase limits. This ensures fairness and helps maintain server balance.

For Source Codes: Metin2 Lobby
 

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

Benzer konular

Geri
Üst Alt