From c16d5ec8fcfee3b18599f8999d4f35dc6d78862a Mon Sep 17 00:00:00 2001 From: Flerp Date: Tue, 4 Nov 2025 18:32:04 -0800 Subject: [PATCH] Fuck AI, trying it, myself --- src/Leech.cpp | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/src/Leech.cpp b/src/Leech.cpp index a2cbff4..5b029f2 100644 --- a/src/Leech.cpp +++ b/src/Leech.cpp @@ -7,32 +7,32 @@ class Leech_UnitScript : public UnitScript { public: - Leech_UnitScript() : UnitScript("Leech_UnitScript") {} + Leech_UnitScript() : UnitScript("Leech_UnitScript") { } - void OnDamage(Unit *attacker, Unit *victim, uint32 &damage) override + void OnDamage(Unit* attacker, Unit* victim, uint32& damage) override { if (!sConfigMgr->GetOption("Leech.Enable", true) || !attacker) + { return; + } bool isPet = attacker->GetOwner() && attacker->GetOwner()->GetTypeId() == TYPEID_PLAYER; if (!isPet && attacker->GetTypeId() != TYPEID_PLAYER) - return; - - Player *player = isPet ? attacker->GetOwner()->ToPlayer() : attacker->ToPlayer(); - if (!player) - return; - - if (sConfigMgr->GetOption("Leech.DungeonsOnly", true) && !player->GetMap()->IsDungeon()) - return; - uint32 requiredItem = sConfigMgr->GetOption("Leech.RequiredItemId", 0u); - if (requiredItem != 0) { - if (!player->HasItemCount(requiredItem, 1, false)) - return; - } - - if (damage == 0) return; + } + Player* player = isPet ? attacker->GetOwner()->ToPlayer() : attacker->ToPlayer(); + + if (sConfigMgr->GetOption("Leech.DungeonsOnly", true) && !(player->GetMap()->IsDungeon())) + { + return; + } + + uint32 requiredItem = sConfigMgr->GetOption("Leech.RequiredItemId", 0u); + if (requiredItem != 0) && !(player->HasItemCount(requiredItem, 1, false)) + { + return; + } auto leechAmount = sConfigMgr->GetOption("Leech.Amount", 0.05f); auto bp1 = static_cast(leechAmount * float(damage)); @@ -40,6 +40,7 @@ public: } }; + // Add all scripts in one void AddSC_mod_leech() {