diff --git a/src/mod_guildfunds_loot.cpp b/src/mod_guildfunds_loot.cpp index 2572d83..c674e48 100644 --- a/src/mod_guildfunds_loot.cpp +++ b/src/mod_guildfunds_loot.cpp @@ -5,9 +5,6 @@ void GuildFunds::OnLootMoney(Player* player, uint32 gold) { - if (LootMultiplier < 1) - return; - if (Group* group = player->GetGroup()) { uint32 membersInRange = 0; @@ -20,10 +17,7 @@ void GuildFunds::OnLootMoney(Player* player, uint32 gold) } } - // Guard the division. In practice the looter counts themselves, but a group whose - // members all fail the distance check would divide by zero and take worldserver - // down with SIGFPE. - if (!membersInRange) + if (LootMultiplier < 1) return; uint32 money = (gold / membersInRange) * LootMultiplier / 100; @@ -55,7 +49,7 @@ void GuildFunds::OnLootMoney(Player* player, uint32 gold) { uint32 money = gold * LootMultiplier / 100; - if (money < 1) + if (money < 1 || LootMultiplier < 1) return; guild->HandleMemberDepositMoney(player->GetSession(), money);