mirror of
https://github.com/EQEmu/Server.git
synced 2026-03-29 20:52:39 +00:00
[Quest API] (Performance) Check event exists before export and execute EVENT_CLICK_DOOR and EVENT_CLICK_OBJECT (#2880)
* [Quest API] Add optional parsing to EVENT_CLICK_DOOR. # Notes - Optional parses this event instead of always doing so. * Update client_packet.cpp
This commit is contained in:
parent
d9f545a5ec
commit
9644f14746
@ -4449,11 +4449,11 @@ void Client::Handle_OP_ClickDoor(const EQApplicationPacket *app)
|
|||||||
|
|
||||||
// don't spam scripts with client controlled doors if not within distance
|
// don't spam scripts with client controlled doors if not within distance
|
||||||
if (within_distance) {
|
if (within_distance) {
|
||||||
std::string export_string = fmt::format("{}", cd->doorid);
|
if (parse->PlayerHasQuestSub(EVENT_CLICK_DOOR)) {
|
||||||
std::vector<std::any> args;
|
std::vector<std::any> args = { currentdoor };
|
||||||
args.push_back(currentdoor);
|
if (parse->EventPlayer(EVENT_CLICK_DOOR, this, std::to_string(cd->doorid), 0, &args) == 0) {
|
||||||
if (parse->EventPlayer(EVENT_CLICK_DOOR, this, export_string, 0, &args) == 0) {
|
currentdoor->HandleClick(this, 0);
|
||||||
currentdoor->HandleClick(this, 0);
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -4472,18 +4472,17 @@ void Client::Handle_OP_ClickObject(const EQApplicationPacket *app)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ClickObject_Struct* click_object = (ClickObject_Struct*)app->pBuffer;
|
auto* click_object = (ClickObject_Struct*) app->pBuffer;
|
||||||
Entity* entity = entity_list.GetID(click_object->drop_id);
|
auto* entity = entity_list.GetID(click_object->drop_id);
|
||||||
if (entity && entity->IsObject()) {
|
if (entity && entity->IsObject()) {
|
||||||
Object* object = entity->CastToObject();
|
auto* object = entity->CastToObject();
|
||||||
|
|
||||||
object->HandleClick(this, click_object);
|
object->HandleClick(this, click_object);
|
||||||
|
|
||||||
std::vector<std::any> args;
|
if (parse->PlayerHasQuestSub(EVENT_CLICK_OBJECT)) {
|
||||||
args.push_back(object);
|
std::vector<std::any> args = { object };
|
||||||
|
parse->EventPlayer(EVENT_CLICK_OBJECT, this, std::to_string(click_object->drop_id), GetID(), &args);
|
||||||
std::string export_string = fmt::format("{}", click_object->drop_id);
|
}
|
||||||
parse->EventPlayer(EVENT_CLICK_OBJECT, this, export_string, GetID(), &args);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Observed in RoF after OP_ClickObjectAction:
|
// Observed in RoF after OP_ClickObjectAction:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user