From 6b19f4a0ab1f77ea969a080a6eea0379baf9f8df Mon Sep 17 00:00:00 2001 From: Michael Date: Sat, 28 Dec 2019 16:58:18 -0500 Subject: additional output for additem command (#24006) * additional output for additem command when removing items with additem: if the user provides an amount too large of a negative amount, the command will now output the amount of items that could not be destroyed. * renamed sql file to hopefully avoid conflicts * added clarification to failure string * changed unneeded else if condition to else * code style; braces * Update and rename 9999_99_99_99_world.sql to 2019_12_28_01_world.sql --- src/server/scripts/Commands/cs_misc.cpp | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) (limited to 'src/server/scripts/Commands') diff --git a/src/server/scripts/Commands/cs_misc.cpp b/src/server/scripts/Commands/cs_misc.cpp index 81f01513035..af30a25abef 100644 --- a/src/server/scripts/Commands/cs_misc.cpp +++ b/src/server/scripts/Commands/cs_misc.cpp @@ -1263,8 +1263,27 @@ public: // Subtract if (count < 0) { - playerTarget->DestroyItemCount(itemId, -count, true, false); - handler->PSendSysMessage(LANG_REMOVEITEM, itemId, -count, handler->GetNameLink(playerTarget).c_str()); + uint32 destroyedItemCount = playerTarget->DestroyItemCount(itemId, -count, true, false); + + if (destroyedItemCount > 0) + { + // output the amount of items successfully destroyed + handler->PSendSysMessage(LANG_REMOVEITEM, itemId, destroyedItemCount, handler->GetNameLink(playerTarget).c_str()); + + // check to see if we were unable to destroy all of the amount requested. + uint32 unableToDestroyItemCount = -count - destroyedItemCount; + if (unableToDestroyItemCount > 0) + { + // output message for the amount of items we couldn't destroy + handler->PSendSysMessage(LANG_REMOVEITEM_FAILURE, itemId, unableToDestroyItemCount, handler->GetNameLink(playerTarget).c_str()); + } + } + else + { + // failed to destroy items of the amount requested + handler->PSendSysMessage(LANG_REMOVEITEM_FAILURE, itemId, -count, handler->GetNameLink(playerTarget).c_str()); + } + return true; } -- cgit v1.2.3