mirror of
https://github.com/EQEmu/Server.git
synced 2026-05-16 18:52:22 +00:00
[Quest API] Add EVENT_DROP_ITEM_CLIENT to Perl/Lua (#2869)
* [Quest API] Add EVENT_DROP_ITEM_CLIENT to Perl/Lua - Add `EVENT_DROP_ITEM_CLIENT`, exports `$quantity,` $item_name`, `$item_id`, `$spell_id`, `$slot_id`, and `$item`. - Add `event_drop_item_client`, exports `e.quantity`, `e.item_name`, `e.item_id`, `e.spell_id`, `e.slot_id`, and `e.item`. * Update inventory.cpp * Update inventory.cpp * Update lua_general.cpp * Update inventory.cpp
This commit is contained in:
+19
-4
@@ -903,6 +903,9 @@ void Client::DropItem(int16 slot_id, bool recurse)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int i = 0;
|
||||
|
||||
if (player_event_logs.IsEventEnabled(PlayerEvent::DROPPED_ITEM)) {
|
||||
auto e = PlayerEvent::DroppedItemEvent{
|
||||
.item_id = inst->GetID(),
|
||||
@@ -913,10 +916,22 @@ void Client::DropItem(int16 slot_id, bool recurse)
|
||||
RecordPlayerEventLog(PlayerEvent::DROPPED_ITEM, e);
|
||||
}
|
||||
|
||||
int i = parse->EventItem(EVENT_DROP_ITEM, this, inst, nullptr, "", slot_id);
|
||||
if (i != 0) {
|
||||
LogInventory("Item drop handled by [EVENT_DROP_ITEM]");
|
||||
safe_delete(inst);
|
||||
if (parse->ItemHasQuestSub(inst, EVENT_DROP_ITEM)) {
|
||||
parse->EventItem(EVENT_DROP_ITEM, this, inst, nullptr, "", slot_id);
|
||||
if (i != 0) {
|
||||
LogInventory("Item drop handled by [EVENT_DROP_ITEM]");
|
||||
safe_delete(inst);
|
||||
}
|
||||
}
|
||||
|
||||
if (parse->PlayerHasQuestSub(EVENT_DROP_ITEM_CLIENT)) {
|
||||
std::vector<std::any> args = { inst };
|
||||
|
||||
i = parse->EventPlayer(EVENT_DROP_ITEM_CLIENT, this, "", slot_id, &args);
|
||||
if (i != 0) {
|
||||
LogInventory("Item drop handled by [EVENT_DROP_ITEM_CLIENT]");
|
||||
safe_delete(inst);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// Item doesn't exist in inventory!
|
||||
|
||||
Reference in New Issue
Block a user