mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2024-12-24 14:33:34 +00:00
c1e8546d48
add final missing scripts for nt also fix the turnin for the breadcrumb missions not showing the completion window. Fix another missing script Add another script fix include guards Fix dirt clouds not appearing on mission accept
42 lines
1.6 KiB
C++
42 lines
1.6 KiB
C++
#include "NtDukeServer.h"
|
|
#include "InventoryComponent.h"
|
|
#include "MissionComponent.h"
|
|
#include "eMissionState.h"
|
|
#include "ePlayerFlag.h"
|
|
|
|
void NtDukeServer::SetVariables(Entity* self) {
|
|
self->SetVar<float_t>(m_SpyProximityVariable, 35.0f);
|
|
|
|
self->SetVar<SpyData>(m_SpyDataVariable, {
|
|
ePlayerFlag::NT_FACTION_SPY_DUKE, 13548, 1319
|
|
});
|
|
|
|
self->SetVar<std::vector<SpyDialogue>>(m_SpyDialogueTableVariable, {
|
|
{ "DUKE_NT_CONVO_1", 0 },
|
|
{ "DUKE_NT_CONVO_2", 0 },
|
|
{ "DUKE_NT_CONVO_3", 0 },
|
|
});
|
|
|
|
// If there's an alternating conversation, indices should be provided using the conversationID variables
|
|
self->SetVar<std::vector<LWOOBJID>>(m_SpyCinematicObjectsVariable, { self->GetObjectID() });
|
|
}
|
|
|
|
void NtDukeServer::OnMissionDialogueOK(Entity* self, Entity* target, int missionID, eMissionState missionState) {
|
|
|
|
// Handles adding and removing the sword for the Crux Prime Sword mission
|
|
auto* missionComponent = target->GetComponent<MissionComponent>();
|
|
auto* inventoryComponent = target->GetComponent<InventoryComponent>();
|
|
|
|
if (missionComponent != nullptr && inventoryComponent != nullptr) {
|
|
auto state = missionComponent->GetMissionState(m_SwordMissionID);
|
|
auto lotCount = inventoryComponent->GetLotCount(m_SwordLot);
|
|
|
|
if ((state == eMissionState::AVAILABLE || state == eMissionState::ACTIVE) && lotCount < 1) {
|
|
inventoryComponent->AddItem(m_SwordLot, 1, eLootSourceType::NONE);
|
|
} else if (state == eMissionState::READY_TO_COMPLETE) {
|
|
inventoryComponent->RemoveItem(m_SwordLot, lotCount);
|
|
}
|
|
}
|
|
NtBcSubmitServer::OnMissionDialogueOK(self, target, missionID, missionState);
|
|
}
|