From 29fdf7e2ae918e4579d370357e721a6616599c02 Mon Sep 17 00:00:00 2001 From: Alex King <89047260+Kinglykrab@users.noreply.github.com> Date: Mon, 22 Jul 2024 21:45:32 -0400 Subject: [PATCH] [Bug Fix] Fix EVENT_USE_SKILL with Sense Heading (#4424) --- zone/client_packet.cpp | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/zone/client_packet.cpp b/zone/client_packet.cpp index 9d71d62ed..ec9b14a35 100644 --- a/zone/client_packet.cpp +++ b/zone/client_packet.cpp @@ -368,13 +368,7 @@ void MapOpcodes() ConnectedOpcodes[OP_Save] = &Client::Handle_OP_Save; ConnectedOpcodes[OP_SaveOnZoneReq] = &Client::Handle_OP_SaveOnZoneReq; ConnectedOpcodes[OP_SelectTribute] = &Client::Handle_OP_SelectTribute; - - // Use or Ignore sense heading based on rule. - bool train = RuleB(Skills, TrainSenseHeading); - - ConnectedOpcodes[OP_SenseHeading] = - (train) ? &Client::Handle_OP_SenseHeading : &Client::Handle_OP_Ignore; - + ConnectedOpcodes[OP_SenseHeading] = &Client::Handle_OP_SenseHeading; ConnectedOpcodes[OP_SenseTraps] = &Client::Handle_OP_SenseTraps; ConnectedOpcodes[OP_SetGuildMOTD] = &Client::Handle_OP_SetGuildMOTD; ConnectedOpcodes[OP_SetRunMode] = &Client::Handle_OP_SetRunMode; @@ -13610,14 +13604,24 @@ void Client::Handle_OP_SelectTribute(const EQApplicationPacket *app) void Client::Handle_OP_SenseHeading(const EQApplicationPacket *app) { - if (!HasSkill(EQ::skills::SkillSenseHeading)) + if (!HasSkill(EQ::skills::SkillSenseHeading)) { return; + } - int chancemod = 0; + if (RuleB(Skills, TrainSenseHeading)) { + CheckIncreaseSkill(EQ::skills::SkillSenseHeading, nullptr, 0); + return; + } - CheckIncreaseSkill(EQ::skills::SkillSenseHeading, nullptr, chancemod); + if (parse->PlayerHasQuestSub(EVENT_USE_SKILL)) { + const auto& export_string = fmt::format( + "{} {}", + EQ::skills::SkillSenseHeading, + GetRawSkill(EQ::skills::SkillSenseHeading) + ); - return; + parse->EventPlayer(EVENT_USE_SKILL, this, export_string, 0); + } } void Client::Handle_OP_SenseTraps(const EQApplicationPacket *app)