Yardım Normal Pazar - Offline Pazar Yang Sınırını Ayırma >

  • Konuyu açan Konuyu açan Kaiser
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 5
  • Gösterim Gösterim 805
Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

Kaiser

Admin
Admin
Geliştirici
Yardımsever Üye
Mesaj
3.932
Çözümler
378
Beğeni
3.967
Puan
1.849
Ticaret Puanı
0
Merhaba, offline shop ile normal shop un yang sınırını birbirinden ayırmaya çalışıyorum.
Offline shop pazar kurarken 2T Yang sınırını kaldırdım ve bu engeli bankaya uyguladım, ancak normal pazar kurarken girilen fiyatlar 2T yi aşıyorsa yine uyarı vermesini istiyorum.

Char.cpp de 2 tane OpenMyShop fonksiyonu var, biri offline shop'a ait ve macro içinde. Diğer ise normal shop'a ait tamamen açıkta.
Her iki fonksiyonda da şu engelleme mevcut;

C++:
Genişlet Daralt Kopyala
    if (GOLD_MAX <= nTotalMoney)
    {
        sys_err("[OVERFLOW_GOLD] Overflow (GOLD_MAX) id %u name %s", GetPlayerID(), GetName());
        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("20¾ï ³ÉÀ» ÃÊ°úÇÏ¿© »óÁ¡À» ¿¼ö°¡ ¾ø½À´Ï´Ù"));
        return;
    }

Ancak sadece macro içindeki OpenMyShop fonksiyonundakini görüp işleme alıyor. Diğer halihazırda var olan OpenMyShop fonksiyonu içindekini görmüyor.
Great kullanıyorum.
 
Offlineshop ile normal pazarı kontrole den kodlar var
Eğer pazar normal ise şu işlemi yap offlineshop ise şu işlemi yap diyebilirsiniz
 
Offlineshop ile normal pazarı kontrole den kodlar var
Eğer pazar normal ise şu işlemi yap offlineshop ise şu işlemi yap diyebilirsiniz
Makrolar zaten bu görevi görüyor.
Ama yinede normal OpenMyShop fonksiyonu içindeki kod bloğunu şekilde değiştirdim denemek için, yine de olmadı.

C++:
Genişlet Daralt Kopyala
#ifdef OFFLINE_SHOP
///
#else
//Normal pazar - 2T yang sınırı
    if (GOLD_MAX <= nTotalMoney)
    {
        sys_err("[OVERFLOW_GOLD] Overflow (GOLD_MAX) id %u name %s", GetPlayerID(), GetName());
        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("20¾ï ³ÉÀ» ÃÊ°úÇÏ¿© »óÁ¡À» ¿¼ö°¡ ¾ø½À´Ï´Ù"));
        return;
    }

#ifdef ENABLE_CHEQUE_SYSTEM
    if (CHEQUE_MAX <= nTotalCheque)
    {
        sys_err("[OVERFLOW_CHEQUE] Overflow (CHEQUE_MAX) id %u name %s", GetPlayerID(), GetName());
        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You can't create a shop with more than %d won."), CHEQUE_MAX-1);
        return;
    }
#endif
#endif

Normal pazar da yine engel olmuyor. 2T geçse bile pazarı kuruyor.
 
define offlineshop un olduğu yerde esle'i görmez.
Evet. Ancak asıl sıkıntı da burda işte.
Normal OpenMyShop fonksiyonu, #else içinde değil. Tamamen ayrı.
#ifdef OFFLINE_SHOP içinde hem normal pazar hemde offline pazar için ayrı engel blokları oluşturmam gerek ama nasıl? Sadece normal pazarda çalışacak bu engel.
Her iki fonksiyon da aynı tanımları kullanıyor.
 
Greatte var mı bilmiyorum ama isprivshop diye bir fonksiyon oluşturup b_isPrivShop argümanlı
C:
Genişlet Daralt Kopyala
if (b_isPrivShop)
// yang sınırı yok
else
// yan sınırı var
bu şekilde bir şey olması gerekiyor. Greati kullanmayalı baya oldu tam hatırlamıyorum kodlarını.

Ek bir fikir olarak 2 farklı para tipi oluşturabilirsin. Örnek olarak;
C:
Genişlet Daralt Kopyala
long long price; // offlineshop 
int d_price; // normal shop
gibi. Aklıma başka bir şey gelmedi açıkcası. Son olarak da normal pazar aç butonuna tıkladığında açılan pazar oluşturma classını kopyalayıp farklı bir pencere açtırıp inputprice'i string üzerinden kontrol ettirebilirsin
 
Üst