diff --git a/zone/task_client_state.cpp b/zone/task_client_state.cpp index 35cd666ad..8198e3e68 100644 --- a/zone/task_client_state.cpp +++ b/zone/task_client_state.cpp @@ -979,13 +979,15 @@ void ClientTaskState::RewardTask(Client *client, const TaskInformation *task_inf const EQ::ItemData *item_data; std::vector reward_list; - for (auto &i: Strings::Split("|", task_information->reward_id_list)) { - auto item_id = std::stoi(i); - int16_t slot = client->GetInv().FindFreeSlot(false, true); - client->SummonItem(item_id, -1, 0, 0, 0, 0, 0, 0, false, slot); - item_data = database.GetItem(item_id); - if (item_data) { - client->MessageString(Chat::Yellow, YOU_HAVE_BEEN_GIVEN, item_data->Name); + for (auto &i: Strings::Split(task_information->reward_id_list, "|")) { + auto item_id = Strings::IsNumber(i) ? std::stoi(i) : 0; + if (item_id > 0) { + int16_t slot = client->GetInv().FindFreeSlot(false, true); + client->SummonItem(item_id, -1, 0, 0, 0, 0, 0, 0, false, slot); + item_data = database.GetItem(item_id); + if (item_data) { + client->MessageString(Chat::Yellow, YOU_HAVE_BEEN_GIVEN, item_data->Name); + } } } diff --git a/zone/task_manager.cpp b/zone/task_manager.cpp index 4e4dc3102..e7694ad79 100644 --- a/zone/task_manager.cpp +++ b/zone/task_manager.cpp @@ -1127,9 +1127,9 @@ void TaskManager::SendActiveTaskDescription( // is specified). I have been unable to get multiple item links to work. // if (!t->reward_id_list.empty() && t->item_link.empty()) { - auto items = Strings::Split("|", t->reward_id_list); + auto items = Strings::Split(t->reward_id_list, "|"); auto item = items.front(); - int item_id = std::stoi(items.front()); + int item_id = Strings::IsNumber(items.front()) ? std::stoi(items.front()) : 0; if (item_id) { const EQ::ItemData *reward_item = database.GetItem(item_id);