diff options
author | Michael <martin.dev.446@gmail.com> | 2019-12-28 16:58:18 -0500 |
---|---|---|
committer | Giacomo Pozzoni <giacomopoz@gmail.com> | 2019-12-28 22:58:18 +0100 |
commit | 6b19f4a0ab1f77ea969a080a6eea0379baf9f8df (patch) | |
tree | 29eb01729a985948375d8c02bf6f4d83f08080a7 /src/server/scripts | |
parent | 53fe736087341ae056713768562e0cc27de2ac19 (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.cpp | 23 |
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; } |