Yardım Offlineshop rShopInfo.dwCount Sorunu

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

MaskesizVEVO

Üye
Üye
Mesaj
312
Çözümler
6
Beğeni
22
Puan
459
Ticaret Puanı
0
Bir Filesten offlineshop'u söktüm offlineshop'u kur diyince kurmuyor ve oyunu donduruyor bende şöyle bir log ekledim fonksiyona

1748783008610.webp


bunu ekledikten sonra

1748783034201.webp


syserr çıktısı şu şekilde yani
1748783056308.webp
bu fonksiyona giriyor niye giriyor bilmiyorum sadece 19 item idli kılıç +9'u ekliyorum shopa yardımcı olursanız sevinirim ya da fikir verebilirseniz(shop ikarus)
 
bunu dene bi



int OfflineshopPacketCreateNewShop(LPCHARACTER ch, const char* data, int iBufferLeft)
{
offlineshop::TSubPacketCGShopCreate* pack = nullptr;
if (!CanDecode(pack, iBufferLeft))
return -1;

int iExtra = 0;
data = Decode(pack, data, &iExtra, &iBufferLeft);

offlineshop::TShopInfo& rShopInfo = pack->shop;

if (rShopInfo.dwCount < 0 || rShopInfo.dwCount > (OFFLINESHOP_MAX_ITEM_COUNT))
{
sys_err("BUG_DENEMESI %s count %d", ch->GetName(), rShopInfo.dwCount);
return -1;
}

std::vector<offlineshop::TShopItemInfo> vec;
vec.reserve(rShopInfo.dwCount);

offlineshop::TShopItemInfo* pItem = nullptr;

for (DWORD i = 0; i < rShopInfo.dwCount; ++i)
{
if (!CanDecode(pItem, iBufferLeft))
return -1;

data = Decode(pItem, data, &iExtra, &iBufferLeft);
vec.push_back(*pItem);
}

offlineshop::CShopManager& rManager = offlineshop::GetManager();
rManager.RecvShopCreateNewClientPacket(ch, rShopInfo, vec);

return iExtra;
}
 
length.h bul

enum EMisc

altına ekle ( eğer burada offsop defınesı varsa defıne ıcıne ekle

OFFLINESHOP_MAX_ITEM_COUNT = 90,

new_offlieshop_manager.cpp varsa aç ve bul

LPITEM pkItem = ch->GetItem(pos);

üstüne ekle varsa ekleme
if (pkShop->GetItems()->size() >= OFFLINESHOP_MAX_ITEM_COUNT)
{
SendPopupPacket(ch, OFFLINESHOP_WINDOW_EDIT, SUBERROR_GC_SHOP_ITEM_LIMIT);
return false;
}

tekrar arat şunu

if (ch->GetLevel() < 15)

üstüne ekle

if (vec.size() > OFFLINESHOP_MAX_ITEM_COUNT)
{
SendPopupPacket(ch, OFFLINESHOP_WINDOW_BUILDER, SUBERROR_GC_SHOP_ITEM_LIMIT);
return false;
}
 
burda ne yaptık mesela ve hatayı neden alıyoruz biz onu da anlatabilir misin senden rica etsem
burda yaptığımız olay dwcounta MAX ITEM COUNT tanımladık . MAX ITEM COUNT u da dıger dosyalarda tanımladık core almaması ve çalışması için . Sonrasında bunu length e işledik ve bir sayı verdik böylelikle kodlar birbirini tamamlamış oldu . 90 adet item koyabiliyorlar offshopa suan . Var mı başka soru ?
 
burda yaptığımız olay dwcounta MAX ITEM COUNT tanımladık . MAX ITEM COUNT u da dıger dosyalarda tanımladık core almaması ve çalışması için . Sonrasında bunu length e işledik ve bir sayı verdik böylelikle kodlar birbirini tamamlamış oldu . 90 adet item koyabiliyorlar offshopa suan . Var mı başka soru ?
yok hocam teşekkür ederim ama ilk başta yazan 500'ü sadece 90 olarak değiştirdik sanırım ama gelen count 1560282175 büyük geliyor yine hata vermez mi
 
if (rShopInfo.dwCount < 0 || rShopInfo.dwCount > (OFFLINESHOP_MAX_ITEM_COUNT))

buradaki farka dikkat etmelisiniz hocam
 
Bu arada popuppacket kısmını kendıne gore guzenle chatpacket kullanıyorsan chatpacket vesaıre yap hangısını kullanıyorsan
 
Geri
Üst