From 1de1db66e4e4fce501f8811683c57783623b9a29 Mon Sep 17 00:00:00 2001 From: Flerp Date: Thu, 13 Nov 2025 20:24:50 -0800 Subject: [PATCH] Added Combat check option --- conf/mod-swift-travel-form.conf.dist | 9 +++++++++ src/mod_swift_travel_form.cpp | 6 +++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/conf/mod-swift-travel-form.conf.dist b/conf/mod-swift-travel-form.conf.dist index 18479ff..dd36ff4 100644 --- a/conf/mod-swift-travel-form.conf.dist +++ b/conf/mod-swift-travel-form.conf.dist @@ -37,6 +37,15 @@ SwiftTravelForm.RequiredSpell = 0 # SwiftTravelForm.MinLevel # Description: Sets the minimum level required to activate Swift Travel Form # Default: 60 +# 1-80 # # SwiftTravelForm.MinLevel = 60 +# +# SwiftTravelForm.NotInCombat +# Description: Blocks the speed increase when Travel Form is cast in combat +# Default: 1 +# 1 for True, 0 for False +# +# +SwiftTravelForm.NotInCombat = 1 diff --git a/src/mod_swift_travel_form.cpp b/src/mod_swift_travel_form.cpp index 1784d28..95e6728 100644 --- a/src/mod_swift_travel_form.cpp +++ b/src/mod_swift_travel_form.cpp @@ -14,6 +14,7 @@ namespace uint32 sRequiredEquipId = 0; uint32 sRequiredSpellId = 0; uint32 sMinLevel = 60; + bool sNotInCombat = true; bool HasEquippedItem(Player* player, uint32 entry) { @@ -45,6 +46,8 @@ namespace return false; if (sRequiredSpellId && !player->HasSpell(sRequiredSpellId)) return false; + if (sNotInCombat && player->IsInCombat()) + return false; return true; } @@ -77,6 +80,7 @@ public: sRequiredEquipId = sConfigMgr->GetOption("SwiftTravelForm.RequiredEquipment", 0u); sRequiredSpellId = sConfigMgr->GetOption("SwiftTravelForm.RequiredSpell", 0u); sMinLevel = sConfigMgr->GetOption("SwiftTravelForm.MinLevel", 60u); + sNotInCombat = sConfigMgr->GetOption("SwiftTravelForm.NotInCombat", true); } }; @@ -101,7 +105,7 @@ public: if (!RequirementsMet(player)) return; - player->m_Events.AddEvent(new SwiftTravelEvent(player, form), player->m_Events.CalculateTime(100)); + player->m_Events.AddEvent(new SwiftTravelEvent(player, form), player->m_Events.CalculateTime(500)); } };