Quests

Okay, so I was checking out what we had built so far and I noticed one flaw… the journal progression.

I am using the Vuldrick journal system with persistent j ournal codes. Anyone know how to make journal progression singular and not groupwide?

Its in the script I think

// transparent wrapper to AddJournalQuestEntry
// use this function instead of the original one to store quest/journal data
// persistently using the bio DB. all function parameters work similar to the original function
//
// Add a journal quest entry to oCreature.
// - szPlotID: the plot identifier used in the toolset's Journal Editor
// - nState: the state of the plot as seen in the toolset's Journal Editor
// - oCreature
// - bAllPartyMembers: If this is TRUE, the entry will show up in the journal of
//   everyone in the party
// - bAllPlayers: If this is TRUE, the entry will show up in the journal of
//   everyone in the world
// - bAllowOverrideHigher: If this is TRUE, you can set the state to a lower
//   number than the one it is currently on
void AddPersistentJournalQuestEntry(string szPlotID, int nState, object oCreature, int bAllPartyMembers=TRUE, int bAllPlayers=FALSE, int bAllowOverrideHigher=FALSE)

So you just need to use the switches and such - change the TRUE in the vg_quest_# to FALSE
AddPersistentJournalQuestEntry(szPlotID,nQuestStatus+1,oPC,FALSE,FALSE,FALSE);

For the quests you want to have single player only, save a set of the vg scripts with the edit

Okay so if I get this right, this script you have given me is a wrapper I should add as an include or something or should I simply copy this part over the line in the script?

I believe it is all dependent on this script, the vg_quest_advance script

#include "pqj_inc"
void main()
{
object oMod = GetModule();
object oPC = GetPCSpeaker();
string szPlotID = GetLocalString(OBJECT_SELF,"Quest");
int nQuestStatus = GetLocalInt(oPC,"NW_JOURNAL_ENTRY"+szPlotID);

AddPersistentJournalQuestEntry(szPlotID,nQuestStatus+1,oPC,TRUE,FALSE,FALSE);
SetLocalInt(oMod,"NW_JOURNAL_ENTRY"+szPlotID,nQuestStatus+1);
}

Yep - I would “save as” this script as “vg_quest_adv_pc” or something like that for those particular instances you want and change the TRUE in the AddPErsistentJournalQuestEntry to FALSE. That should do what you are looking for.

Funny enough they do no longer recognize the VG bounty/quest state check…

Just a passing question, but why would you want the progression to be singlular and not party wide?

What i noticed with party wide is that even if the player did not have they quest they would be set to the same state. Which I would like to prevent incase someone wants to do the quest themselves and also noticed that only the one talking to the npc would reap the rewards so that did not feel very fair at all!

That’s what I thought. The second part – the part about xp and gold – is really different from your first issue. In the vg_quest_reward.nss, make sure you have the “X0_I0_PARTYWIDE” include listed, and make sure your commands within the script are for giving xp and gold to all instead of just the pc:

// Reward gold to PC

GiveGoldToAll(oPC,iGPTotal);
// Reward XP to PC
GiveXPToAll(oPC,iXPTotal);

Regarding the quest state for singlular vs party: strange things will happen when you have players in the same party at different quest stages. Things you intend to happen, indeed things you have scripted to happen, may not happen or happen more than they should, when you have those within the same party at different stages. Just a warning.