Hikayeler

Reklam vermek için turkmmo@gmail.com

[C++ / Python] %50 İndirim İle Satın Aldın

Okan Çakın

Level 4
Uzman
Katılım
30 May 2023
Konular
38
Mesajlar
455
Online süresi
1ay 15g
Reaksiyon Skoru
354
Altın Konu
0
Başarım Puanı
98
TM Yaşı
2 Yıl 10 Ay 25 Gün
MmoLira
11,547
DevLira
90

Metin2 EP, Valorant VP dahil tüm oyun ürünlerini en uygun fiyatlarla bulabilir, Item ve Karakterlerinizi hızlıca satabilirsiniz. HEMEN TIKLA!

Herkese Merhaba

Sistemin Çalışma Prensibi Şu Şekilde;


Not:

Matematiksel Hesaplama Anlatımı Metin2'ye Göredir.

Bölüm 1:

1: Eğer "shop_price_cutting" EventFlagı Eşit İse 1'e
2: Mersenne İle Random Sayı Üret (1 , 100)

3: Eğer Random Sayıdan Çıkan Sonuç Küçük ve Eşit İse 50'ye
4: İnt(Tam) Tipi Float(Ondalık) Tipine Dönüştür
5: Nesnenin Ürünü Büyük İse 1'den(1 Bölünemeyeceği İçin)
6: Nesne Satın Alındığında Satış Fiyatı'nın Yarısını Negatifle
7: Python Tarafına Bir Mesaj İlet "%50 İndirim ile satın aldın."

7: Eğer 1'den Büyük Değil İse Normal Satış Fiyatı İle Al.

Bölüm 2:


1: Eğer "shop_price_cutting" EventFlagı Eşit Değil İse 1'e
2: Tüm Satış Fiyatlarını Normal Fiyatı Karşılığında Satın Al.


Bölüm 3:

1: Eğer Random Sayıdan Çıkan Sonuç 50'den Büyük İse
2: Tüm Satış Fiyatlarını Normal Fiyatı Karşılığında Satın Al.



Not:

Won Oyunda Değerli Para Birimi Olduğu İçin Buna Dahil Etmedim. Sistemi Dilediğiniz Gibi Değiştirebilirsiniz.


İşte Kodlarımız:


Shop.cpp Aç ve Arat:

Kod:
ch->PointChange(POINT_GOLD, -dwPrice, true);

Değiştir:

Kod:
    if (quest::CQuestManager::instance().GetEventFlag("shop_price_cutting") == 1)
    {
        std::random_device rd;
        std::mt19937 gen(rd());
        std::uniform_int_distribution<int> distribution(1, 100);
        int shop_buy_random = distribution(gen);

        if (r_item.price > 1 && shop_buy_random <= 50)
        {
            float v0 = static_cast<float>(dwPrice);

            ch->PointChange(POINT_GOLD, -v0 / 2, true);
            ch->ChatPacket(CHAT_TYPE_COMMAND, "PriceCuttingInfo");
        }
        else
        {
            ch->PointChange(POINT_GOLD, -dwPrice, true);
        }

#ifdef __ENABLE_CHEQUE_SYSTEM__
        if (r_item.cheque > 0)
            ch->PointChange(POINT_CHEQUE, -dwCheque, true);
#endif
    }
    else
    {
        if (r_item.price > 0)
            ch->PointChange(POINT_GOLD, -dwPrice, true);

#ifdef __ENABLE_CHEQUE_SYSTEM__
        if (r_item.cheque > 0)
            ch->PointChange(POINT_CHEQUE, -dwCheque, true);
#endif
    }

Root/Game.py Aç ve Arat:

Kod:
        self.serverCommander=stringCommander.Analyzer()
        for serverCommandItem in serverCommandList.items():
            self.serverCommander.SAFE_RegisterCallBack(
                serverCommandItem[0], serverCommandItem[1])

Üstüne Ekle:

Kod:
serverCommandList["PriceCuttingInfo"]                 = self.PriceCuttingInfo

Bunu Game.py En Alta Ekle:

Kod:
    def PriceCuttingInfo(self):
        self.PopupMessage(localeInfo.PRICE_CUTTING_INFORMATION)


Locale_Game.txt Ekle:

Kod:
PRICE_CUTTING_INFORMATION    %50 İndirim ile satın aldın.


KANIT:

1: Resim

Hatırlatma:

Soldaki Yarı Fiyatına Alıyor.

Sağdakine İse Tam Fiyat Yatıyor.

Örneğin:

Ahmet, Kılıç +9'u
1K'ya Satıyor.
Mehmet, Kılıç +9'u
500 Yang Hesabından Kesilerek Alıyor(%50 İndirim İle Satın Aldı).
Ahmetin Hesabına 1K Yatırılıyor.

1: Resim


cutting_test.png



2: GIF

giphy.gif


3: PopupMessage

indirim_popup.png
 
Son düzenleme:

En Çok Reaksiyon Alan Mesajlar

Teşekkürler
 
  • Beğeni
Reactions: Wcn
  • Beğeni
Reactions: Wcn
paylaşım için teşekkürler geliştirilebilir nesne markete buy fonksiyonuna üründen 3 üzeri alışta örneğin .
 
Paylaşım için teşekkürler
 

Şu an konuyu görüntüleyenler (Toplam : 1, Üye: 0, Misafir: 1)

Geri
Üst