mirror of
https://github.com/EQEmu/Server.git
synced 2026-06-10 15:00:25 +00:00
[Quest API] Add EVENT_ITEM_CLICK_CLIENT and EVENT_ITEM_CLICK_CAST_CLIENT to Perl/Lua. (#2810)
* [Quest API] Add EVENT_ITEM_CLICK_CLIENT and EVENT_ITEM_CLICK_CAST_CLIENT to Perl/Lua. # Perl - Add `EVENT_ITEM_CLICK_CLIENT`. - Add `EVENT_ITEM_CLICK_CAST_CLIENT`. - Both events export `$item_id`, `$item_name`, `$slot_id`, and `$spell_id`. # Lua - Add `event_item_click_client`. - Add `event_item_click_cast_client`. - Both events export `e.item_id`, `e.item_name`, `e.slot_id`, `e.spell_id`, and `e.item`. # Notes - Allows operators to handle item clicks in player scripts instead of item-specific scripts. * Update lua_parser_events.cpp * Remove optional bool.
This commit is contained in:
@@ -173,6 +173,8 @@ const char *QuestEventSubroutines[_LargestEventID] = {
|
||||
"EVENT_UNEQUIP_ITEM_BOT",
|
||||
"EVENT_DAMAGE_GIVEN",
|
||||
"EVENT_DAMAGE_TAKEN",
|
||||
"EVENT_ITEM_CLICK_CLIENT",
|
||||
"EVENT_ITEM_CLICK_CAST_CLIENT",
|
||||
// Add new events before these or Lua crashes
|
||||
"EVENT_SPELL_EFFECT_BOT",
|
||||
"EVENT_SPELL_EFFECT_BUFF_TIC_BOT"
|
||||
@@ -1713,6 +1715,20 @@ void PerlembParser::ExportEventVariables(
|
||||
break;
|
||||
}
|
||||
|
||||
case EVENT_ITEM_CLICK_CAST_CLIENT:
|
||||
case EVENT_ITEM_CLICK_CLIENT: {
|
||||
ExportVar(package_name.c_str(), "slot_id", data);
|
||||
if (extra_pointers && extra_pointers->size() == 1) {
|
||||
auto* item = std::any_cast<EQ::ItemInstance*>(extra_pointers->at(0));
|
||||
if (item) {
|
||||
ExportVar(package_name.c_str(), "item_id", item->GetID());
|
||||
ExportVar(package_name.c_str(), "item_name", item->GetItem()->Name);
|
||||
ExportVar(package_name.c_str(), "spell_id", item->GetItem()->Click.Effect);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case EVENT_GROUP_CHANGE: {
|
||||
if (mob && mob->IsClient()) {
|
||||
ExportVar(package_name.c_str(), "grouped", mob->IsGrouped());
|
||||
|
||||
Reference in New Issue
Block a user