- Mesaj
- 702
- Çözümler
- 41
- Beğeni
- 167
- Puan
- 609
- Ticaret Puanı
- 0
Merhaba;
Sandık aynası sistemi ekledim. Mesela içi boş bir sandığı açmaya çalıştığımda game.core veriyor. Coreyi açtım;
Hatanın bu kod bloğunda olduğunu söylüyor.
Bide burayı vermiş;
Bu sorunu nasıl çözebiliriz yardımlarınızı bekliyorum.
Sandık aynası sistemi ekledim. Mesela içi boş bir sandığı açmaya çalıştığımda game.core veriyor. Coreyi açtım;
Kod:
For help, type "help".
Type "apropos word" to search for commands related to "word".
(gdb) file game
game: No such file or directory.
(gdb) file ch1
Reading symbols from ch1...
(gdb) core game_r41024.core
[New LWP 100500]
[New LWP 100688]
[New LWP 100689]
[New LWP 100693]
Core was generated by `./ch1'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x080ff300 in DESC::Packet (this=<optimized out>,
c_pvData=<optimized out>, iSize=<optimized out>)
at /usr/local/lib/gcc9/include/c++/bits/basic_string.h:2300
2300 c_str() const _GLIBCXX_NOEXCEPT
[Current thread is 1 (LWP 100500)]
(gdb) bt full
#0 0x080ff300 in DESC::Packet (this=<optimized out>,
c_pvData=<optimized out>, iSize=<optimized out>)
at /usr/local/lib/gcc9/include/c++/bits/basic_string.h:2300
stName = {static npos = 4294967295,
_M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<cha r>> = {<No data fields>}, <No data fields>}, _M_p = 0xbfbfad44 "Ata"},
_M_string_length = 3, {
_M_local_buf = "Ata\000\n\304\000\000\273y\024\b\220\070*b",
_M_allocated_capacity = 6386753}}
#1 0x08138026 in CInputMain::ChestDropInfo (this=0x6232659c, ch=0x62393000,
c_pData=0x623cb700 "\332\034") at input_main.cpp:3058
p = 0x623cb700
pkItem = 0x2af88660
vec_ItemList = {<std::_Vector_base<SChestDropInfoTable, std::allocator<S ChestDropInfoTable> >> = {
_M_impl = {<std::allocator<SChestDropInfoTable>> = {<__gnu_cxx::new_ allocator<SChestDropInfoTable>> = {<No data fields>}, <No data fields>}, <std::_ Vector_base<SChestDropInfoTable, std::allocator<SChestDropInfoTable> >::_Vector_ impl_data> = {_M_start = 0x0, _M_finish = 0x0,
_M_end_of_storage = 0x0}, <No data fields>}}, <No data fields>}
packet = {bHeader = 221 '\335', wSize = 7, dwChestVnum = 50186}
#2 0x0813b8c6 in CInputMain::Analyze (this=0x6232659c, d=0x62326500,
bHeader=218 '\332', c_pData=0x623cb700 "\332\034") at input_main.cpp:3463
--Type <RET> for more, q to quit, c to continue without paging--
Hatanın bu kod bloğunda olduğunu söylüyor.
C++:
#ifdef ENABLE_SHOW_CHEST_DROP
void CInputMain::ChestDropInfo(LPCHARACTER ch, const char* c_pData)
{
TPacketCGChestDropInfo* p = (TPacketCGChestDropInfo*) c_pData;
if(p->wInventoryCell >= INVENTORY_AND_EQUIP_SLOT_MAX)
return;
#ifdef __SPECIAL_INVENTORY_SYSTEM__
LPITEM pkItem = ch->GetGiftBoxInventoryItem(p->wInventoryCell);
#else
LPITEM pkItem = ch->GetInventoryItem(p->wInventoryCell);
#endif
if (!pkItem)
return;
std::vector<TChestDropInfoTable> vec_ItemList;
ITEM_MANAGER::instance().GetChestItemList(pkItem->GetVnum(), vec_ItemList);
TPacketGCChestDropInfo packet;
packet.bHeader = HEADER_GC_CHEST_DROP_INFO;
packet.wSize = sizeof(packet) + sizeof(TChestDropInfoTable) * vec_ItemList.size();
packet.dwChestVnum = pkItem->GetVnum();
ch->GetDesc()->BufferedPacket(&packet, sizeof(packet));
ch->GetDesc()->Packet(&vec_ItemList[0], sizeof(TChestDropInfoTable) * vec_ItemList.size());
}
#endif
Bide burayı vermiş;
C++:
#ifdef ENABLE_SHOW_CHEST_DROP
case HEADER_CG_CHEST_DROP_INFO:
ChestDropInfo(ch, c_pData);
break;
#endif
Bu sorunu nasıl çözebiliriz yardımlarınızı bekliyorum.
Son düzenleme: