diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Commands/cs_misc.cpp | 26 |
1 files changed, 24 insertions, 2 deletions
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<int32> 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<int32> 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) |