added saving missions

This commit is contained in:
kamilprzyb
2020-09-13 20:45:51 +02:00
committed by dongresource
parent de15e2004b
commit c7189a5cef
6 changed files with 71 additions and 8 deletions

View File

@@ -100,6 +100,13 @@ void MissionManager::taskEnd(CNSocket* sock, CNPacketData* data) {
std::cout << "[WARN] Player completed non-active mission!?" << std::endl;
}
// if it's the last task
if (task["m_iSUOutgoingTask"] == 0)
{
//save completed mission on player
saveMission(plr, (int)(task["m_iHMissionID"])-1);
}
sock->sendPacket((void*)&response, P_FE2CL_REP_PC_TASK_END_SUCC, sizeof(sP_FE2CL_REP_PC_TASK_END_SUCC));
}
@@ -323,3 +330,10 @@ void MissionManager::mobKilled(CNSocket *sock, int mobid) {
sock->sendPacket((void*)&kill, P_FE2CL_REP_PC_KILL_QUEST_NPCs_SUCC, sizeof(sP_FE2CL_REP_PC_KILL_QUEST_NPCs_SUCC));
}
}
void MissionManager::saveMission(Player* player, int missionId) {
//Missions are stored in int_64t array
int row = missionId / 64;
int collumn = missionId % 64;
player->aQuestFlag[row] |= (1LL << collumn);
}