Add configuration options: FixedXP, FixedXPRate (#38)

* Add SoloLFG.FixedXP to encourage group play

* Add option: SoloLFG.FixedXPRate

* Correct a comment

* Match existing styling a little better

* Respecting convections, nothing serious

* fix build. Adding missing parameter

---------

Co-authored-by: Pagani Walter <paganiwalter@gmail.com>
This commit is contained in:
DrReaganRidley
2024-03-11 09:53:46 -04:00
committed by GitHub
parent 9b0ad73b9b
commit 97bf90202a
2 changed files with 27 additions and 1 deletions

View File

@@ -19,4 +19,17 @@ SoloLFG.Enable = 1
SoloLFG.Announce = 1
# SoloLFG.FixedXP
# Description: Set the XP rate in dungeons to FixedXPRate
# Default: 1 - (Enabled)
# 0 - (Disabled)
SoloLFG.FixedXP = 1
# SoloLFG.FixedXPRate
# Description: Set the fixed XP rate used in dungeons
# Default: 0.2 (The same XP gained in a full party of 5)
SoloLFG.FixedXPRate = 0.2
###################################################################################################

View File

@@ -18,7 +18,7 @@ class lfg_solo_announce : public PlayerScript
public:
lfg_solo_announce() : PlayerScript("lfg_solo_announce") {}
void OnLogin(Player* player)
void OnLogin(Player* player) override
{
// Announce Module
if (sConfigMgr->GetOption<bool>("SoloLFG.Announce", true))
@@ -26,6 +26,19 @@ public:
ChatHandler(player->GetSession()).SendSysMessage("This server is running the |cff4CFF00Solo Dungeon Finder |rmodule.");
}
}
void OnRewardKillRewarder(Player* /*player*/, KillRewarder* /*rewarder*/, bool isDungeon, float& rate) override
{
if (!isDungeon
|| !sConfigMgr->GetOption<bool>("SoloLFG.Enable", true)
|| !sConfigMgr->GetOption<bool>("SoloLFG.FixedXP", true))
{
return;
}
// Force the rate to FixedXPRate regardless of group size, to encourage group play
rate = sConfigMgr->GetOption<float>("SoloLFG.FixedXPRate", 0.2);
}
};
class lfg_solo : public WorldScript