Jaysyn904 102ba7dab6 Initial Commit
Initial Commit
2023-09-21 19:51:32 -04:00

42 lines
1.7 KiB
Plaintext

#include "quest_inc"
int StartingConditional()
{
object oPC = GetPCSpeaker();
string sDB = CharacterDB(oPC);
string sAreaString = GetLocalString(GetArea(OBJECT_SELF), "AreaString");
if (GetFactionLeader(oPC) != oPC) return FALSE; //Only the party leader should be able to decide if they want to complete the quest
//Lost quest template - we don't want PCs to be able to return there if they have an escorted NPC with them even though the quest is marked as in progress
int i = 1;
object oHench = GetHenchman(oPC, i);
int nEscortBack = FALSE;
while (oHench != OBJECT_INVALID)
{
if (GetLocalInt(oHench, "LostQuest") == TRUE && GetCampaignString(sDB, "QUEST_TEMPLATE") == "lost" && GetIsQuestComplete(oPC) == FALSE && GetIsQuestFailed(oPC) == FALSE)
{
nEscortBack = TRUE;
break;
}
i++;
oHench = GetHenchman(oPC, i);
}
int nMiles;
string sDifficulty = GetLocalString(GetModule(), "mDiffExplo");
if (sDifficulty == "COMMONER") nMiles = 3;
if (sDifficulty == "ADVENTURER") nMiles = 5;
if (sDifficulty == "HERO") nMiles = 7;
if (sDifficulty == "LEGEND") nMiles = 10;
if (sDifficulty == "DEMIGOD") nMiles = 15;
int nTravelled = GetLocalInt(oPC, "Miles");
string sEntry = IntToString(GetCampaignInt(sDB, "QUEST_JOURNAL"));
sEntry = GetStringRight(sEntry, 1);
if (GetCampaignInt(sDB, "QUEST_ACTIVE") == TRUE && nTravelled >= nMiles && sEntry == "1")
{
if (nEscortBack == TRUE) return FALSE;
if (GetCampaignString(sDB, "QUEST_REGION") == "greencoast" && GetStringLeft(sAreaString, 1) == "1") return TRUE;
}
return FALSE;
}