Files
DarkflameServer/dScripts/ai/NS/NsGetFactionMissionServer.cpp
David Markowitz a156a8fcba fix: security vulnerabilities (#1980)
* fix: security vulnerabilities

Tested that all functions related to the touched files work

will test sqlite on a CI build

* fix failing test

* ai feedback

* add buffer size checking

* use c_str

* dont log session key

* Try this for a mac definition

* be quiet apple
2026-06-07 20:59:11 -07:00

60 lines
1.5 KiB
C++

#include "NsGetFactionMissionServer.h"
#include "GameMessages.h"
#include "MissionComponent.h"
#include "Character.h"
#include "eReplicaComponentType.h"
#include "ePlayerFlag.h"
void NsGetFactionMissionServer::OnRespondToMission(Entity* self, int missionID, Entity* player, int reward) {
if (missionID != 474) return;
if (reward != LOT_NULL) {
std::vector<int> factionMissions;
int celebrationID = -1;
int32_t flagID = -1;
if (reward == 6980) {
// Venture League
factionMissions = { 555, 556 };
celebrationID = 14;
flagID = 46;
} else if (reward == 6979) {
// Assembly
factionMissions = { 544, 545 };
celebrationID = 15;
flagID = 47;
} else if (reward == 6981) {
// Paradox
factionMissions = { 577, 578 };
celebrationID = 16;
flagID = 48;
} else if (reward == 6978) {
// Sentinel
factionMissions = { 566, 567 };
celebrationID = 17;
flagID = 49;
}
factionMissions.push_back(778);
if (celebrationID != -1) {
GameMessages::SendStartCelebrationEffect(player, player->GetSystemAddress(), celebrationID);
}
if (flagID != -1) {
auto* const character = player->GetCharacter();
if (character) {
character->SetPlayerFlag(ePlayerFlag::JOINED_A_FACTION, true);
character->SetPlayerFlag(flagID, true);
}
}
MissionComponent* mis = static_cast<MissionComponent*>(player->GetComponent(eReplicaComponentType::MISSION));
for (int mission : factionMissions) {
mis->AcceptMission(mission);
mis->CompleteMission(mission);
}
}
}