Metin2 Ticaret Camı Sistemi

Darklovers

Bayrakları bayrak yapan üstündeki kandır.
MT Üye
Mesaj
234
Çözümler
14
Beğeni
632
Puan
839
Ticaret Puanı
0
Normal Pazarda Ve Great Offline Pazarda Kullanılır won uyumludur Linkteki Sistemle Sorunsuz Çalışır

Metin2 Official won sistemi Sorunsuz Max 999

0321_122721.jpg
0321_122802.jpg
0321_122816.jpg
0321_122841.jpg
0321_122934.jpg


Linkleri görebilmek için giriş yap veya kayıt ol.


Linkleri görebilmek için giriş yap veya kayıt ol.
 

Dosya Eklentileri

Diğer sistemlere göre sorunsuz görünüyor bu sistem. Sadece great uyarlamasını aldım diğer kodları orijinal sistemi yazan kişinin konusundan ekledim. Teşekkürler.
 
Diğer paylaşılan "Great Uyumlu Won Sistemi" ile uyumlu mu acaba? Herhangi bir sorun yaratıyor mu?
 
@Darklovers hocam bu off shop içinde uyarlama hakkınızda bilginiz varmı acaba ?

TR Tipi Offline Shop (Premium Private Shop)

eğer bilginiz var ise bence konu sahibi ile bir iletişime geçin oda arıyor çünkü. Bence 2 niz yapabilirsiniz foruma fixli o shop + ticaret camı kazandırmış olursunuz.
Yok gerek kalmadı dostum. Başka hatalar çıktı valla uğraşmaya değmez o offline shop tamam iyi güzel hoş ama çok sorun çıkarıyor daha tam test dahi edemedim bu haliyle bir sürü sorun çıkarıyor yok itemleri geri vermiyor item gözükmüyor vs hiç uğraşılacak gibi değil bankası zaten sıkıntılı sorgulamaları eksik falan hiç gerek yok uğraşmaya.
 
hocam bi tic cam da iteme sıklıyorsun pazarı gösteriyor sonra satın al diyorsun önizleme çıkıyor. bunda öyle değil sanırım
Ne demek istediğinizi anladım iteme tıklayınca ayrı bir pencerede itemi gösteriyor bu öyle deil o şekilde yapmak istiyorsan uyarlama yapabilirsin
 
Daha yeni ekleme ve deneme şansım oldu. Tek seferde sorunsuz eklendi ve çalışıyor.
Bendeki won sistemi farklıydı, ona uyarladım ve temel olarak herhangi bir sorun yok şu an.
Paylaşım için teşekkürler.
 
Great'da çalışması için [tabii bunun için 20 kere src derledim sonuca öyle ulaştım] diğer türlü pazardan item aldığınızda oyundan atar. Yada ıoyundan atmasının sebebi great kuararken buy fonksyionunu ben kompe değiştir dediği için değiştirmedim oraya bakarak kendime uyarladım. Bende fazlalıklar kaldı bu nedenle o fazlalıklar item satın alırken clienti kapatıyordu (arama camı için demiyorum normal item alırken pazardan) sonra fazlalıkları sildim düzeldi. Neleri silmenizi gerektiğini aşağıda yazdım.

Her yere ChatPacket yerleştirerek çözdüm.

Burası Böyle olacak


Kod:
Genişlet Daralt Kopyala
    if (!bIsShopSearch)
    {
        if (it == m_map_guest.end())
            return SHOP_SUBHEADER_GC_END;
    }


Geri kalan herşeyi buy fonksiyonu içinden silin.(Arama camı için sadece üstteki dediğim yeri öyle yapın yeter geri kalan arama camı ile ilgili bir yer eklemeyin buy fonksiyonuna %3 vergi yaptıracaksanız vergi yerini ekleyin) ayrıca Dali OfflineShop konusunda bir arkadaş dali'de veya great uyarlaması mevzusu olmuştu bu ticaret camı için orada bir düzenleme verdiler. (Orası benim öyle kaldı eski hali ile yani orjinal hali ile denemedim ama siz yinede öyle yapın] Shop_Manager.cpp için

arayın ve burayı böyle yapın:

pack2.item.count = ShopIter->count;
#if defined(ENABLE_CHEQUE_SYSTEM)
pack2.item.cheque = ShopIter->cheque;
#endif
pack2.item.display_pos = static_cast<BYTE>(std::distance(vItemVec.begin(), ShopIter));
if (item->GetOwner()) //burası
pack2.dwShopPID = item->GetOwner()->GetVID();//burası
else//burası
pack2.dwShopPID = 0;//burası
std::memcpy(&pack2.szSellerName, GetOwner->GetName(), sizeof(pack2.szSellerName));


sonra burayı böyle yapın

void CShopManager::ShopSearchBuy(LPCHARACTER ch, const TPacketCGPrivateShopSearchBuyItem* p)
{
if (ch == NULL || ch->GetDesc() == NULL || p == NULL)
return;

int32_t shopVid = p->dwShopPID; //bunu ekleyin


pencere engelleri altındaki burayı böyle yapın:

LPCHARACTER ShopCH = CHARACTER_MANAGER::instance().Find(shopVid);

artık derleyip sorunsuzca kullanabilirsiniz.

KANIT:

giphy.gif
 
Son düzenleme:
ayrıca buy fonksyionuzun içinde bu varsa silin :


Kod:
Genişlet Daralt Kopyala
    if (IsPCShop())
    {
        if (!pkSelectedItem)
        {
            sys_log(0, "Shop::Buy : Critical: This user seems to be a hacker : invalid pcshop item : BuyerPID:%d SellerPID:%d",
                ch->GetPlayerID(),
                m_pkPC->GetPlayerID());

            return SHOP_SUBHEADER_GC_SOLD_OUT; // @fixme132 false to SHOP_SUBHEADER_GC_SOLD_OUT
        }

        if ((pkSelectedItem->GetOwner() != m_pkPC))
        {
            sys_log(0, "Shop::Buy : Critical: This user seems to be a hacker : invalid pcshop item : BuyerPID:%d SellerPID:%d",
                ch->GetPlayerID(),
                m_pkPC->GetPlayerID());

            return SHOP_SUBHEADER_GC_SOLD_OUT; // @fixme132 false to SHOP_SUBHEADER_GC_SOLD_OUT
        }
    }

Sonra bunuda silin:

Kod:
Genişlet Daralt Kopyala
    LPITEM pkSelectedItem = ITEM_MANAGER::instance().Find(r_item.itemid);
 
Geri
Üst