- Mesaj
- 46
- Çözümler
- 1
- Beğeni
- 13
- Puan
- 299
- Ticaret Puanı
- 0
İtem ruha bağlama sisteminde böyle bir core aldım bunun sebebi ve nasıl çözebilirim?
Linkleri görebilmek için
giriş yap veya kayıt ol.
Son düzenleme:
char_item.cpp konuya dahil eder misin?
3092. satırı kod olarak atar mısın buraya aşağı yukarı oralarda bir hata olmalıLinkleri görebilmek için giriş yap veya kayıt ol.
3092. satırı kod olarak atar mısın buraya aşağı yukarı oralarda bir hata olmalı
#ifdef ENABLE_SOULBIND_SYSTEM
case 50263:
{
LPITEM item2;
if (!IsValidItemPosition(DestCell) || !(item2 = GetItem(DestCell)))
return false;
if (item2->IsEquipped() || item2->IsExchanging())
return false;
if (item2->IsSealed()){
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Item already sealed."));
return false;
}
if (item2->GetType() != ITEM_WEAPON && item2->GetType() != ITEM_ARMOR && item2->GetType() != ITEM_COSTUME)
return false;
item2->SetSealBind();
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Item sealbind success."));
{
char buf[21];
snprintf(buf, sizeof(buf), "%u", item2->GetID());
LogManager::instance().ItemLog(this, item, "SET_SEALBIND_SUCCESS", buf);
}
item->SetCount(item->GetCount() - 1);
}
break;
case 50264:
{
LPITEM item2;
if (!IsValidItemPosition(DestCell) || !(item2 = GetItem(DestCell)))
return false;
if(item2->isLocked() || item2->IsEquipped() || item2->GetSealBindTime() >= 0)
return false;
long duration = 72 * 60 * 60;
item2->SetSealBind(time(0) + duration);
item2->StartUnSealBindTimerExpireEvent();
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Item unsealbind success."));
{
char buf[21];
snprintf(buf, sizeof(buf), "%u", item2->GetID());
LogManager::instance().ItemLog(this, item, "REMOVE_SEALBIND_TIME_BEGIN", buf);
}
item->SetCount(item->GetCount() - 1);
}
break;
#endif
char_item.cpp:#ifdef ENABLE_SOULBIND_SYSTEM case 50263: { LPITEM item2; if (!IsValidItemPosition(DestCell) || !(item2 = GetItem(DestCell))) return false; if (item2->IsEquipped() || item2->IsExchanging()) return false; if (item2->IsSealed()){ ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Item already sealed.")); return false; } if (item2->GetType() != ITEM_WEAPON && item2->GetType() != ITEM_ARMOR && item2->GetType() != ITEM_COSTUME) return false; item2->SetSealBind(); ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Item sealbind success.")); { char buf[21]; snprintf(buf, sizeof(buf), "%u", item2->GetID()); LogManager::instance().ItemLog(this, item, "SET_SEALBIND_SUCCESS", buf); } item->SetCount(item->GetCount() - 1); } break; case 50264: { LPITEM item2; if (!IsValidItemPosition(DestCell) || !(item2 = GetItem(DestCell))) return false; if(item2->isLocked() || item2->IsEquipped() || item2->GetSealBindTime() >= 0) return false; long duration = 72 * 60 * 60; item2->SetSealBind(time(0) + duration); item2->StartUnSealBindTimerExpireEvent(); ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Item unsealbind success.")); { char buf[21]; snprintf(buf, sizeof(buf), "%u", item2->GetID()); LogManager::instance().ItemLog(this, item, "REMOVE_SEALBIND_TIME_BEGIN", buf); } item->SetCount(item->GetCount() - 1); } break; #endif
3092:
case 50264:
{
LPITEM item2;
if (!IsValidItemPosition(DestCell) || !(item2 = GetItem(DestCell)))
return false;----->3092.
core de herhangi kanal düşmesi veya oyun düşmesi yaşanmıyor,Linkleri görebilmek için giriş yap veya kayıt ol.
dener misin
zannetmiyorum gptye sordum sistem çalışıyorsa sorun yok dokunmacore de herhangi kanal düşmesi veya oyun düşmesi yaşanmıyor,
//WORD wDestCell = DestCell.cell;
//BYTE bDestInven = DestCell.window_type;
kısmını pasif yapmışsın anladığım kadarıyla bu durum attığım core de zaten DestCell parametresi bozuk / geçersiz bellek adresi içeriyor. DestCell sadece okunmuyor ama hâlâ fonksiyona geçersiz parametre olarak geliyor. İleride başka bir yerde yine DestCell’e dokunulursa core başka satıra taşınmaz mı?
İlgin için teşekkür ederim sağlıklı bir çözüm olduğunu düşünmüyorum.zannetmiyorum gptye sordum sistem çalışıyorsa sorun yok dokunmadaha bilgili olan arkadaşlar varsa yardımcı olsunlar
nasıl çalıştırmam gerekiyoraddress sanitizer çalıştır.
LPITEM item2 = nullptr;