- Katılım
- 6 Kas 2021
- Mesajlar
- 2,825
- Tepkime puanı
- 4,230
- Puanları
- 113
- Yaş
- 31
- Konum
- Türkiye
- Dc
- fatihbulut
Konu Alıntıdır
Herkese merhaba, olayın özeti şu şekildedir;
Oyuncunun nesne market deposuna bir şey gönderirken pozisyon belirlemenize gerek kalmaz, oyuncu nesne marketi açtığınında nesneler dizili olarak gelir. Dizebildiği kadarını dizer. Eğer depoda 2-3 sayfa nesne var ise ilk sayfayı boşaltıp tekrar deposunu açarsa nesneler tekrar sıralanır. Kısa ve yararlı bir eklentidir.
game/char.cpp açılır
includelar arasına eklenir.
Aratılır:
#ifdef DÜTDÜT içindeki kodları kendi fonksiyonunuza eklemeniz yeterli.
Not: GIF'in durdurulma sebebi depo açma arasında 5sn bekleme süresi olmasıdır.
Herkese merhaba, olayın özeti şu şekildedir;
Oyuncunun nesne market deposuna bir şey gönderirken pozisyon belirlemenize gerek kalmaz, oyuncu nesne marketi açtığınında nesneler dizili olarak gelir. Dizebildiği kadarını dizer. Eğer depoda 2-3 sayfa nesne var ise ilk sayfayı boşaltıp tekrar deposunu açarsa nesneler tekrar sıralanır. Kısa ve yararlı bir eklentidir.
game/char.cpp açılır
includelar arasına eklenir.
C++:
#include "../../libgame/include/grid.h"
Aratılır:
C++:
void CHARACTER::LoadMall(int iItemCount, TPlayerItem * pItems)
#ifdef DÜTDÜT içindeki kodları kendi fonksiyonunuza eklemeniz yeterli.
C++:
void CHARACTER::LoadMall(int iItemCount, TPlayerItem * pItems){
bool bLoaded = false;
if (m_pkMall) { bLoaded = true; }
if (!m_pkMall) { m_pkMall = M2_NEW CSafebox(this, 3 * SAFEBOX_PAGE_SIZE, 0, 0); }
else { m_pkMall->ChangeSize(3 * SAFEBOX_PAGE_SIZE); }
m_pkMall->SetWindowMode(MALL);
TPacketCGSafeboxSize p;
p.bHeader = HEADER_GC_MALL_OPEN;
p.bSize = 3 * SAFEBOX_PAGE_SIZE;
GetDesc()->Packet(&p, sizeof(TPacketCGSafeboxSize));
if (!bLoaded){
#ifdef DÜTDÜT
if (IsGM()) { ChatPacket(1, "<GM|MALL> gelenItemSayisi: %d", iItemCount); }
CGrid iGrid = CGrid(5,9);
#endif
for (int i = 0; i < iItemCount; ++i, ++pItems){
if (!m_pkMall->IsValidPosition(pItems->pos)) { continue; }
LPITEM item = ITEM_MANAGER::instance().CreateItem(pItems->vnum, pItems->count, pItems->id);
if (!item){
sys_err("cannot create item vnum %d id %u (name: %s)", pItems->vnum, pItems->id, GetName());
continue;}
item->SetSkipSave(true);
item->SetSockets(pItems->alSockets);
item->SetAttributes(pItems->aAttr);
#ifdef DÜTDÜT
// ChatPacket(1,"itemName:%s",item->GetName());
int iPos=(-1);
iPos = iGrid.FindBlank(1, item->GetSize());
if (iPos >= 0) {
iGrid.Put(iPos, 1, item->GetSize());
if (!m_pkMall->Add(iPos, item)) { M2_DESTROY_ITEM(item); }
else { item->SetSkipSave(false); }
}else{
M2_DESTROY_ITEM(item);
//break;
}
#else
if (!m_pkMall->Add(pItems->pos, item)){M2_DESTROY_ITEM(item);}
else{item->SetSkipSave(false);}
#endif
}
}
}
Not: GIF'in durdurulma sebebi depo açma arasında 5sn bekleme süresi olmasıdır.

VIP
Markanı Öne Çıkar 720 x 90
En stratejik pozisyonlarda maksimum görünürlük
TIKLA