mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-14 03:11:28 +00:00
Fix for crash when dropping items (c != python)
This commit is contained in:
parent
55c0cc02a1
commit
953bee6c21
@ -610,15 +610,15 @@ void Client::DropItem(int16 slot_id, bool recurse)
|
|||||||
if (LogSys.log_settings[Logs::Inventory].is_category_enabled) {
|
if (LogSys.log_settings[Logs::Inventory].is_category_enabled) {
|
||||||
Log(Logs::General, Logs::Inventory, "DropItem() Hack detected - full item parse:");
|
Log(Logs::General, Logs::Inventory, "DropItem() Hack detected - full item parse:");
|
||||||
Log(Logs::General, Logs::Inventory, "depth: 0, Item: '%s' (id: %u), IsDroppable: %s",
|
Log(Logs::General, Logs::Inventory, "depth: 0, Item: '%s' (id: %u), IsDroppable: %s",
|
||||||
(invalid_drop->GetItem() ? invalid_drop->GetItem()->Name : "null data"), invalid_drop->GetID(), invalid_drop->IsDroppable(false));
|
(invalid_drop->GetItem() ? invalid_drop->GetItem()->Name : "null data"), invalid_drop->GetID(), (invalid_drop->IsDroppable(false) ? "true" : "false"));
|
||||||
|
|
||||||
for (auto iter1 : *invalid_drop->GetContents()) { // depth 1
|
for (auto iter1 : *invalid_drop->GetContents()) { // depth 1
|
||||||
Log(Logs::General, Logs::Inventory, "-depth: 1, Item: '%s' (id: %u), IsDroppable: %s",
|
Log(Logs::General, Logs::Inventory, "-depth: 1, Item: '%s' (id: %u), IsDroppable: %s",
|
||||||
(iter1.second->GetItem() ? iter1.second->GetItem()->Name : "null data"), iter1.second->GetID(), iter1.second->IsDroppable(false));
|
(iter1.second->GetItem() ? iter1.second->GetItem()->Name : "null data"), iter1.second->GetID(), (iter1.second->IsDroppable(false) ? "true" : "false"));
|
||||||
|
|
||||||
for (auto iter2 : *iter1.second->GetContents()) { // depth 2
|
for (auto iter2 : *iter1.second->GetContents()) { // depth 2
|
||||||
Log(Logs::General, Logs::Inventory, "--depth: 2, Item: '%s' (id: %u), IsDroppable: %s",
|
Log(Logs::General, Logs::Inventory, "--depth: 2, Item: '%s' (id: %u), IsDroppable: %s",
|
||||||
(iter2.second->GetItem() ? iter2.second->GetItem()->Name : "null data"), iter2.second->GetID(), iter2.second->IsDroppable(false));
|
(iter2.second->GetItem() ? iter2.second->GetItem()->Name : "null data"), iter2.second->GetID(), (iter2.second->IsDroppable(false) ? "true" : "false"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -636,21 +636,21 @@ void Client::DropItem(int16 slot_id, bool recurse)
|
|||||||
if (LogSys.log_settings[Logs::Inventory].is_category_enabled) {
|
if (LogSys.log_settings[Logs::Inventory].is_category_enabled) {
|
||||||
Log(Logs::General, Logs::Inventory, "DropItem() Processing - full item parse:");
|
Log(Logs::General, Logs::Inventory, "DropItem() Processing - full item parse:");
|
||||||
Log(Logs::General, Logs::Inventory, "depth: 0, Item: '%s' (id: %u), IsDroppable: %s",
|
Log(Logs::General, Logs::Inventory, "depth: 0, Item: '%s' (id: %u), IsDroppable: %s",
|
||||||
(inst->GetItem() ? inst->GetItem()->Name : "null data"), inst->GetID(), inst->IsDroppable(false));
|
(inst->GetItem() ? inst->GetItem()->Name : "null data"), inst->GetID(), (inst->IsDroppable(false) ? "true" : "false"));
|
||||||
|
|
||||||
if (!inst->IsDroppable(false))
|
if (!inst->IsDroppable(false))
|
||||||
Log(Logs::General, Logs::Error, "Non-droppable item being processed for drop by '%s'", GetCleanName());
|
Log(Logs::General, Logs::Error, "Non-droppable item being processed for drop by '%s'", GetCleanName());
|
||||||
|
|
||||||
for (auto iter1 : *inst->GetContents()) { // depth 1
|
for (auto iter1 : *inst->GetContents()) { // depth 1
|
||||||
Log(Logs::General, Logs::Inventory, "-depth: 1, Item: '%s' (id: %u), IsDroppable: %s",
|
Log(Logs::General, Logs::Inventory, "-depth: 1, Item: '%s' (id: %u), IsDroppable: %s",
|
||||||
(iter1.second->GetItem() ? iter1.second->GetItem()->Name : "null data"), iter1.second->GetID(), iter1.second->IsDroppable(false));
|
(iter1.second->GetItem() ? iter1.second->GetItem()->Name : "null data"), iter1.second->GetID(), (iter1.second->IsDroppable(false) ? "true" : "false"));
|
||||||
|
|
||||||
if (!iter1.second->IsDroppable(false))
|
if (!iter1.second->IsDroppable(false))
|
||||||
Log(Logs::General, Logs::Error, "Non-droppable item being processed for drop by '%s'", GetCleanName());
|
Log(Logs::General, Logs::Error, "Non-droppable item being processed for drop by '%s'", GetCleanName());
|
||||||
|
|
||||||
for (auto iter2 : *iter1.second->GetContents()) { // depth 2
|
for (auto iter2 : *iter1.second->GetContents()) { // depth 2
|
||||||
Log(Logs::General, Logs::Inventory, "--depth: 2, Item: '%s' (id: %u), IsDroppable: %s",
|
Log(Logs::General, Logs::Inventory, "--depth: 2, Item: '%s' (id: %u), IsDroppable: %s",
|
||||||
(iter2.second->GetItem() ? iter2.second->GetItem()->Name : "null data"), iter2.second->GetID(), iter2.second->IsDroppable(false));
|
(iter2.second->GetItem() ? iter2.second->GetItem()->Name : "null data"), iter2.second->GetID(), (iter2.second->IsDroppable(false) ? "true" : "false"));
|
||||||
|
|
||||||
if (!iter2.second->IsDroppable(false))
|
if (!iter2.second->IsDroppable(false))
|
||||||
Log(Logs::General, Logs::Error, "Non-droppable item being processed for drop by '%s'", GetCleanName());
|
Log(Logs::General, Logs::Error, "Non-droppable item being processed for drop by '%s'", GetCleanName());
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user