From be567af70d7161136320921a1a00775012230e0a Mon Sep 17 00:00:00 2001 From: cybernine186 <91032199+cybernine186@users.noreply.github.com> Date: Sat, 4 Mar 2023 17:45:42 -0500 Subject: [PATCH] [Bug Fix] Cursor Coin Upon Death (#3020) * Update corpse.cpp * Add rule toggle. --------- Co-authored-by: Kinglykrab --- common/ruletypes.h | 1 + zone/corpse.cpp | 20 +++++++++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/common/ruletypes.h b/common/ruletypes.h index ff380d99a..50554fa50 100644 --- a/common/ruletypes.h +++ b/common/ruletypes.h @@ -204,6 +204,7 @@ RULE_REAL(Character, FullGroupEXPModifier, 2.16, "Sets the group experience modi RULE_BOOL(Character, IgnoreLevelBasedHasteCaps, false, "Ignores hard coded level based haste caps.") RULE_BOOL(Character, EnableRaidEXPModifier, true, "Enable or disable the raid experience modifier, default is true") RULE_BOOL(Character, EnableRaidMemberEXPModifier, true, "Enable or disable the raid experience modifier based on members in raid, default is true") +RULE_BOOL(Character, LeaveCursorMoneyOnCorpse, false, "Enable or disable leaving cursor money on player corpses") RULE_CATEGORY_END() RULE_CATEGORY(Mercs) diff --git a/zone/corpse.cpp b/zone/corpse.cpp index de7c2e6d2..3c1076c3b 100644 --- a/zone/corpse.cpp +++ b/zone/corpse.cpp @@ -395,11 +395,29 @@ Corpse::Corpse(Client* client, int32 in_rezexp) : Mob ( !RuleB(Character, RespawnFromHover) || client->ClientVersion() < EQ::versions::ClientVersion::SoF ) { - SetCash(pp->copper, pp->silver, pp->gold, pp->platinum); + auto corpse_copper = pp->copper; + auto corpse_silver = pp->silver; + auto corpse_gold = pp->gold; + auto corpse_platinum = pp->platinum; + pp->copper = 0; pp->silver = 0; pp->gold = 0; pp->platinum = 0; + + if (RuleB(Character, LeaveCursorMoneyOnCorpse)) { + corpse_copper += pp->copper_cursor; + corpse_silver += pp->silver_cursor; + corpse_gold += pp->gold_cursor; + corpse_platinum += pp->platinum_cursor; + + pp->copper_cursor = 0; + pp->silver_cursor = 0; + pp->gold_cursor = 0; + pp->platinum_cursor = 0; + } + + SetCash(corpse_copper, corpse_silver, corpse_gold, corpse_platinum); } // get their tints