Ayyıldız2 | 2008 TR Yapısı • 1-99 Orta Emek Destan • Oto Avsız • 10 Temmuz 21:00 HEMEN TIKLA!
AutoGiveItem Boş Envanter Kontrolü
[CODE lang="cpp" title="common/service.h"]#define ENABLE_AUTOGIVEITEM_CELL_CHECK // AutoGiveItim Bos Envanter Kontrol[/CODE]
[CODE lang="cpp" title="char_item.cpp"]//Arat
LPITEM CHARACTER::AutoGiveItem(DWORD dwItemVnum, BYTE bCount, int iRarePct, bool bMsg)
{
TItemTable* p = ITEM_MANAGER::instance().GetTable(dwItemVnum);
if (!p)
return NULL;
//Altına Ekle
#ifdef ENABLE_AUTOGIVEITEM_CELL_CHECK
LPITEM itemCheck = ITEM_MANAGER::instance().CreateItem(dwItemVnum, bCount, 0, true, -1, true);
if (itemCheck)
{
int iEmptyCell = -1;
if (p->bType == ITEM_DS)
iEmptyCell = GetEmptyDragonSoulInventory(itemCheck);
#ifdef ENABLE_SPECIAL_STORAGE
else if (IsUpgradeItem(dwItemVnum))
iEmptyCell = GetEmptyUpgradeInventory(itemCheck);
else if (IsStoneSpecial(dwItemVnum, p->bType))
iEmptyCell = GetEmptyStoneInventory(itemCheck);
else if (ITEM_SKILLBOOK == p->bType)
iEmptyCell = GetEmptyBookInventory(itemCheck);
else if (IsFlowerItem(dwItemVnum))
iEmptyCell = GetEmptyFlowerInventory(itemCheck);
else if (IsAttrSpecial(dwItemVnum))
iEmptyCell = GetEmptyAttrInventory(itemCheck);
else if (IsChestItem(dwItemVnum))
iEmptyCell = GetEmptyChestInventory(itemCheck);
#endif
else
iEmptyCell = GetEmptyInventory(p->bSize);
if (iEmptyCell == -1)
{
if (bMsg)
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Envanterinde yer yok autogiveitem!"));
return NULL;
}
}
#endif[/CODE]
[CODE lang="cpp" title="common/service.h"]#define ENABLE_AUTOGIVEITEM_CELL_CHECK // AutoGiveItim Bos Envanter Kontrol[/CODE]
[CODE lang="cpp" title="char_item.cpp"]//Arat
LPITEM CHARACTER::AutoGiveItem(DWORD dwItemVnum, BYTE bCount, int iRarePct, bool bMsg)
{
TItemTable* p = ITEM_MANAGER::instance().GetTable(dwItemVnum);
if (!p)
return NULL;
//Altına Ekle
#ifdef ENABLE_AUTOGIVEITEM_CELL_CHECK
LPITEM itemCheck = ITEM_MANAGER::instance().CreateItem(dwItemVnum, bCount, 0, true, -1, true);
if (itemCheck)
{
int iEmptyCell = -1;
if (p->bType == ITEM_DS)
iEmptyCell = GetEmptyDragonSoulInventory(itemCheck);
#ifdef ENABLE_SPECIAL_STORAGE
else if (IsUpgradeItem(dwItemVnum))
iEmptyCell = GetEmptyUpgradeInventory(itemCheck);
else if (IsStoneSpecial(dwItemVnum, p->bType))
iEmptyCell = GetEmptyStoneInventory(itemCheck);
else if (ITEM_SKILLBOOK == p->bType)
iEmptyCell = GetEmptyBookInventory(itemCheck);
else if (IsFlowerItem(dwItemVnum))
iEmptyCell = GetEmptyFlowerInventory(itemCheck);
else if (IsAttrSpecial(dwItemVnum))
iEmptyCell = GetEmptyAttrInventory(itemCheck);
else if (IsChestItem(dwItemVnum))
iEmptyCell = GetEmptyChestInventory(itemCheck);
#endif
else
iEmptyCell = GetEmptyInventory(p->bSize);
if (iEmptyCell == -1)
{
if (bMsg)
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Envanterinde yer yok autogiveitem!"));
return NULL;
}
}
#endif[/CODE]
En Çok Reaksiyon Alan Mesajlar
Memoryleak var. Envanter dolu hatasından sonra oluşturduğunuz itemi silmenizi gerek. return NULL; bunun üstüne
delete itemCheck;
veya
M2_DESTROY_ITEM(itemCheck);
Eklediğinizde çözülecektir.
Paylaşım için teşekkürler
Paylaşım için teşekkürler.
Bu düzenleme envanteriniz doluyken yere item düşmesini engelleyecek fakat bu şekilde kullanıldığında daha büyük sıkıntılara yol açacaktır.
Örneğin envanter doluyken cube yaptığınızda dönüşüm eşyaları gidecek ama dönüştürdüğünüz eşya envanterinize gelmeyecek.
Biyolog yaptığınızda envanteriniz doluysa biyolog sandığı envanterinize gelmeyecek.
bu ve bunlara benzer hatalarla karşılaşabilirsiniz.
Paylaşım için teşekkürler
Paylaşım için teşekkürler, yorumlarda bazı çıkabilecek olan hataların ön görümleri mevcut. Onları konuya ekleyebilirsiniz.
Paylaşım için teşekkürler.
Bu düzenleme envanteriniz doluyken yere item düşmesini engelleyecek fakat bu şekilde kullanıldığında daha büyük sıkıntılara yol açacaktır.
Örneğin envanter doluyken cube yaptığınızda dönüşüm eşyaları gidecek ama dönüştürdüğünüz eşya envanterinize gelmeyecek.
Biyolog yaptığınızda envanteriniz doluysa biyolog sandığı envanterinize gelmeyecek.
bu ve bunlara benzer hatalarla karşılaşabilirsiniz.
Bu düzenleme envanteriniz doluyken yere item düşmesini engelleyecek fakat bu şekilde kullanıldığında daha büyük sıkıntılara yol açacaktır.
Örneğin envanter doluyken cube yaptığınızda dönüşüm eşyaları gidecek ama dönüştürdüğünüz eşya envanterinize gelmeyecek.
Biyolog yaptığınızda envanteriniz doluysa biyolog sandığı envanterinize gelmeyecek.
bu ve bunlara benzer hatalarla karşılaşabilirsiniz.
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 9
- Görüntüleme
- 406
- Cevaplar
- 13
- Görüntüleme
- 1K
- Cevaplar
- 20
- Görüntüleme
- 861
- Cevaplar
- 0
- Görüntüleme
- 297
