From dfc8ea0ad5439cbe395cc4b1df3689f3f3928d2e Mon Sep 17 00:00:00 2001 From: Shauren Date: Mon, 9 Nov 2015 17:57:37 +0100 Subject: Core/Commands: Improved additem and additemset commands. Added optional parameter allowing to specify bonuslist ids for items (you can copy the ids from wowhead urls) --- src/server/scripts/Commands/cs_misc.cpp | 26 ++++++++++++++++++++++++-- 1 file changed, 24 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 9a2cd919f6f..f848cba4c56 100644 --- a/src/server/scripts/Commands/cs_misc.cpp +++ b/src/server/scripts/Commands/cs_misc.cpp @@ -1175,6 +1175,17 @@ public: if (count == 0) count = 1; + std::vector bonusListIDs; + char const* bonuses = strtok(NULL, " "); + + // semicolon separated bonuslist ids (parse them after all arguments are extracted by strtok!) + if (bonuses) + { + Tokenizer tokens(bonuses, ';'); + for (char const* token : tokens) + bonusListIDs.push_back(atoul(token)); + } + Player* player = handler->GetSession()->GetPlayer(); Player* playerTarget = handler->getSelectedPlayer(); if (!playerTarget) @@ -1214,7 +1225,7 @@ public: return false; } - Item* item = playerTarget->StoreNewItem(dest, itemId, true, Item::GenerateItemRandomPropertyId(itemId)); + Item* item = playerTarget->StoreNewItem(dest, itemId, true, Item::GenerateItemRandomPropertyId(itemId), GuidSet(), bonusListIDs); // remove binding (let GM give it to another player later) if (player == playerTarget) @@ -1254,6 +1265,17 @@ public: return false; } + std::vector bonusListIDs; + char const* bonuses = strtok(NULL, " "); + + // semicolon separated bonuslist ids (parse them after all arguments are extracted by strtok!) + if (bonuses) + { + Tokenizer tokens(bonuses, ';'); + for (char const* token : tokens) + bonusListIDs.push_back(atoul(token)); + } + Player* player = handler->GetSession()->GetPlayer(); Player* playerTarget = handler->getSelectedPlayer(); if (!playerTarget) @@ -1272,7 +1294,7 @@ public: InventoryResult msg = playerTarget->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, itr->second.GetId(), 1); if (msg == EQUIP_ERR_OK) { - Item* item = playerTarget->StoreNewItem(dest, itr->second.GetId(), true); + Item* item = playerTarget->StoreNewItem(dest, itr->second.GetId(), true, 0, GuidSet(), bonusListIDs); // remove binding (let GM give it to another player later) if (player == playerTarget) -- cgit v1.2.3