fix(Core/Command): additem checks (#2898)
* Add check if the player has 0 items to be destroyed * Add check if the player has less than items trying to be destroyed
This commit is contained in:
@@ -0,0 +1,8 @@
|
|||||||
|
INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1587062218041221300');
|
||||||
|
|
||||||
|
DELETE FROM `acore_string` WHERE `entry` IN (30081,30082);
|
||||||
|
INSERT INTO `acore_string` (`entry`, `content_default`) VALUES
|
||||||
|
(30081, "%s does not have itemID = %i, thus cannot be removed."),
|
||||||
|
(30082, "%s does not have that many of itemID = %i, thus none were removed.");
|
||||||
|
|
||||||
|
UPDATE `command` SET `help` = "Syntax: .additem #itemID/[#itemName]/#itemLink #itemCount\r\nAdds the specified item to you or the selected character.\nIf #itemCount is negative, you will remove #itemID." WHERE `name` = "additem";
|
||||||
@@ -1314,6 +1314,9 @@ enum AcoreStrings
|
|||||||
LANG_INSTANT_FLIGHT_ON = 30078,
|
LANG_INSTANT_FLIGHT_ON = 30078,
|
||||||
LANG_INSTANT_FLIGHT_OFF = 30079,
|
LANG_INSTANT_FLIGHT_OFF = 30079,
|
||||||
|
|
||||||
LANG_DEBUG_OPCODE_FILE_MISSING = 30080
|
LANG_DEBUG_OPCODE_FILE_MISSING = 30080,
|
||||||
|
|
||||||
|
LANG_REMOVEITEM_FAILURE = 30081,
|
||||||
|
LANG_REMOVEITEM_ERROR = 30082
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -1466,8 +1466,23 @@ public:
|
|||||||
// Subtract
|
// Subtract
|
||||||
if (count < 0)
|
if (count < 0)
|
||||||
{
|
{
|
||||||
|
if (!playerTarget->HasItemCount(itemId, 0))
|
||||||
|
{
|
||||||
|
// output that player don't have any items to destroy
|
||||||
|
handler->PSendSysMessage(LANG_REMOVEITEM_FAILURE, handler->GetNameLink(playerTarget).c_str(), itemId);
|
||||||
|
}
|
||||||
|
else if (!playerTarget->HasItemCount(itemId, -count))
|
||||||
|
{
|
||||||
|
// output that player don't have as many items that you want to destroy
|
||||||
|
handler->PSendSysMessage(LANG_REMOVEITEM_ERROR, handler->GetNameLink(playerTarget).c_str(), itemId);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// output successful amount of destroyed items
|
||||||
playerTarget->DestroyItemCount(itemId, -count, true, false);
|
playerTarget->DestroyItemCount(itemId, -count, true, false);
|
||||||
handler->PSendSysMessage(LANG_REMOVEITEM, itemId, -count, handler->GetNameLink(playerTarget).c_str());
|
handler->PSendSysMessage(LANG_REMOVEITEM, itemId, -count, handler->GetNameLink(playerTarget).c_str());
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user