Fix swampfire nano mission by by refactoring Mission.cpp (#322)

This commit is contained in:
Filip Georgiev
2026-07-30 01:12:40 +03:00
committed by GitHub
parent 574d3111bc
commit c7bccd62c6

View File

@@ -595,10 +595,17 @@ void Missions::mobKilled(CNSocket *sock, int mobid, std::map<int, int>& rolls) {
}
// drop quest item
if (task["m_iCSUItemNumNeeded"][j] != 0 && !isQuestItemFull(sock, task["m_iCSUItemID"][j], task["m_iCSUItemNumNeeded"][j]) ) {
if (task["m_iCSUItemNumNeeded"][j] != 0) {
if (!isQuestItemFull(sock, task["m_iCSUItemID"][j], task["m_iCSUItemNumNeeded"][j])) {
bool drop = rolls[plr->tasks[i]] % 100 < task["m_iSTItemDropRate"][j];
if (drop) {
dropQuestItem(sock, plr->tasks[i], 1, task["m_iCSUItemID"][j], mobid);
}
else {
// fail to drop (itemID == 0)
dropQuestItem(sock, plr->tasks[i], 1, 0, mobid);
}
}
/*
* Workaround: The client has a bug where it only sends a TASK_END request
@@ -616,10 +623,6 @@ void Missions::mobKilled(CNSocket *sock, int mobid, std::map<int, int>& rolls) {
sock->sendPacket(end, P_FE2CL_REP_PC_TASK_END_SUCC);
}
} else {
// fail to drop (itemID == 0)
dropQuestItem(sock, plr->tasks[i], 1, 0, mobid);
}
}
}
}