aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts
diff options
context:
space:
mode:
authorMichael <martin.dev.446@gmail.com>2019-12-28 16:58:18 -0500
committerGiacomo Pozzoni <giacomopoz@gmail.com>2019-12-28 22:58:18 +0100
commit6b19f4a0ab1f77ea969a080a6eea0379baf9f8df (patch)
tree29eb01729a985948375d8c02bf6f4d83f08080a7 /src/server/scripts
parent53fe736087341ae056713768562e0cc27de2ac19 (diff)
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
Diffstat (limited to 'src/server/scripts')
-rw-r--r--src/server/scripts/Commands/cs_misc.cpp23
1 files changed, 21 insertions, 2 deletions
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;
}