Fixed creature hak name, added more quest persistence

Fixed creature hak name, added more quest persistence.

Co-Authored-By: Awetizmo <107700980+Awetizmo@users.noreply.github.com>
This commit is contained in:
Jaysyn904
2022-06-19 23:39:17 -04:00
parent 9e1780d1bc
commit 2105778d4c
1104 changed files with 72080 additions and 144506 deletions

View File

@@ -9,7 +9,7 @@
void main()
{
// Give the speaker some gold
RewardPartyGP(50000, GetPCSpeaker());
// Give the speaker some gold
RewardPartyGP(50000, GetPCSpeaker());
}

View File

@@ -8,6 +8,6 @@
void main()
{
// Remove some gold from the player
TakeGoldFromCreature(200, GetPCSpeaker(), FALSE);
// Remove some gold from the player
TakeGoldFromCreature(200, GetPCSpeaker(), FALSE);
}

View File

@@ -10,7 +10,7 @@
void main()
{
// Set the faction to hate the player, then attack the player
AdjustReputation(GetPCSpeaker(), OBJECT_SELF, -100);
DetermineCombatRound(GetPCSpeaker());
// Set the faction to hate the player, then attack the player
AdjustReputation(GetPCSpeaker(), OBJECT_SELF, -100);
DetermineCombatRound(GetPCSpeaker());
}

View File

@@ -9,10 +9,10 @@
void main()
{
// Give the speaker some gold
GiveGoldToCreature(GetPCSpeaker(), 1000);
// Give the speaker some gold
GiveGoldToCreature(GetPCSpeaker(), 1000);
// Give the speaker some XP
RewardPartyXP(500, GetPCSpeaker());
// Give the speaker some XP
RewardPartyXP(500, GetPCSpeaker());
}

View File

@@ -9,7 +9,7 @@
void main()
{
// Give the speaker some XP
RewardPartyXP(5000, GetPCSpeaker());
// Give the speaker some XP
RewardPartyXP(5000, GetPCSpeaker());
}

View File

@@ -18,6 +18,6 @@ void main()
RewardPartyXP(3000, GetPCSpeaker());
//:: Finish he quest, update the DB
AddJournalQuestEntry("NW_JOURNAL_ENTRYkupra", 2, GetPCSpeaker());
AddPersistentJournalQuestEntry("kupra", 2, GetPCSpeaker());
}

View File

@@ -7,7 +7,7 @@
//:://////////////////////////////////////////////
void main()
{
// Give the speaker the items
CreateItemOnObject("essencepuller", GetPCSpeaker(), 1);
// Give the speaker the items
CreateItemOnObject("essencepuller", GetPCSpeaker(), 1);
}

View File

@@ -10,8 +10,8 @@
void main()
{
//:: Set the Quest state
AddJournalQuestEntry("NW_JOURNAL_ENTRYkupra", 1, GetPCSpeaker());
//:: Set the Quest state & update the DB
AddPersistentJournalQuestEntry("kupra", 1, GetPCSpeaker());
//:: Give the speaker the items
CreateItemOnObject("scrollofteleport", GetPCSpeaker(), 1);

View File

@@ -7,7 +7,7 @@
//:://////////////////////////////////////////////
void main()
{
// Give the speaker the items
CreateItemOnObject("item072", GetPCSpeaker(), 1);
//:: Give Scroll of Mind-Healing
CreateItemOnObject("item072", GetPCSpeaker(), 1);
}

View File

@@ -0,0 +1,24 @@
//::///////////////////////////////////////////////
//:: buy_ess_puller.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Trades 50k GP for an Essence Puller
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220617
//:://////////////////////////////////////////////
void main()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
//:: Take 50k GP from PC
TakeGoldFromCreature(50000, oPC, TRUE);
//:: Give the speaker the Essence Puller
CreateItemOnObject("essencepuller", oPC, 1);
}

View File

@@ -0,0 +1,34 @@
//:://////////////////////////////////////////////
//:: cv_destselfnofx.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Removes NPCs after rescue or quest completion
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220618
//:://////////////////////////////////////////////
void main()
{
//: Declare major variables
object oPC = GetPCSpeaker();
object oNPC = OBJECT_SELF;
//:: Set destroyable.
SetIsDestroyable(TRUE, FALSE, FALSE);
//:: Remove plot/immoral/lootable flags JUST in case.
SetPlotFlag(oNPC, FALSE);
SetImmortal(oNPC, FALSE);
SetLootable(oNPC, FALSE);
//:: Clear Actions & run away
ClearAllActions();
ActionMoveAwayFromObject(oPC, 1);
//:: Destroy ourselves after fleeing the scene
DelayCommand(6.0f, DestroyObject(oNPC));
}

View File

@@ -0,0 +1,19 @@
//::///////////////////////////////////////////////
//:: cv_evil_plus10.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Moves PC's alignment 10 points towards evil.
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220619
//:://////////////////////////////////////////////
void main()
{
object oPC = GetPCSpeaker();
AdjustAlignment(oPC, ALIGNMENT_EVIL, 10);
}

View File

@@ -0,0 +1,21 @@
//::///////////////////////////////////////////////
//:: cv_evil_plus4.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Moves PC's alignment 4 points towards evil.
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220619
//:://////////////////////////////////////////////
void main()
{
object oPC = GetPCSpeaker();
AdjustAlignment(oPC, ALIGNMENT_EVIL, 4);
}

View File

@@ -0,0 +1,21 @@
//::///////////////////////////////////////////////
//:: cv_good_plus2.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Moves PC's alignment 2 points towards good.
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220619
//:://////////////////////////////////////////////
void main()
{
object oPC = GetPCSpeaker();
AdjustAlignment(oPC, ALIGNMENT_GOOD, 2);
}

View File

@@ -0,0 +1,21 @@
//::///////////////////////////////////////////////
//:: cv_good_plus4.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Moves PC's alignment 4 points towards good.
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220619
//:://////////////////////////////////////////////
void main()
{
object oPC = GetPCSpeaker();
AdjustAlignment(oPC, ALIGNMENT_GOOD, 4);
}

View File

@@ -1,39 +1,36 @@
/* Script generated by
Lilac Soul's NWN Script Generator, v. 2.1
//::///////////////////////////////////////////////
//:: drowgone.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Removes lost drow afer quest completion
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220618
//:://////////////////////////////////////////////
For download info, please visit:
http://nwvault.ign.com/View.php?view=Other.Detail&id=4683&id=625 */
//Put this on action taken in the conversation editor
void main()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
object oTarget;
object oPC = GetPCSpeaker();
//:: Remove Drow
oTarget = GetObjectByTag("NPC_VERTEK");
SetIsDestroyable( TRUE, FALSE, FALSE );
DestroyObject(oTarget, 0.0);
object oTarget;
oTarget = GetObjectByTag("NPC_TERAN");
SetIsDestroyable( TRUE, FALSE, FALSE );
DestroyObject(oTarget, 0.0);
oTarget = GetObjectByTag("Vertek");
oTarget = GetObjectByTag("NPC_FILTAU");
SetIsDestroyable( TRUE, FALSE, FALSE );
DestroyObject(oTarget, 0.0);
SetIsDestroyable( TRUE, FALSE, FALSE );
DestroyObject(oTarget, 0.0);
oTarget = GetObjectByTag("Teran");
SetIsDestroyable( TRUE, FALSE, FALSE );
DestroyObject(oTarget, 0.0);
oTarget = GetObjectByTag("Filtau");
SetIsDestroyable( TRUE, FALSE, FALSE );
DestroyObject(oTarget, 0.0);
oTarget = GetObjectByTag("Zerna");
SetIsDestroyable( TRUE, FALSE, FALSE );
DestroyObject(oTarget, 0.0);
oTarget = GetObjectByTag("NPC_ZERNA");
SetIsDestroyable( TRUE, FALSE, FALSE );
DestroyObject(oTarget, 0.0);
}

View File

@@ -1,15 +1,24 @@
/* Script generated by
Lilac Soul's NWN Script Generator, v. 2.1
//::///////////////////////////////////////////////
//:: jcbeast.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
For download info, please visit:
http://nwvault.ign.com/View.php?view=Other.Detail&id=4683&id=625 */
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220618
//:://////////////////////////////////////////////
#include "pqj_inc"
int StartingConditional()
{
object oPC = GetPCSpeaker();
int nInt;
nInt=GetLocalInt(oPC, "NW_JOURNAL_ENTRYbeast");
//nInt=GetLocalInt(oPC, "NW_JOURNAL_ENTRYbeast");
nInt = RetrieveQuestState("beast", oPC);
if (nInt >= 1)
return TRUE;

View File

@@ -1,15 +1,24 @@
/* Script generated by
Lilac Soul's NWN Script Generator, v. 2.1
//::///////////////////////////////////////////////
//:: jcbeast1.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
For download info, please visit:
http://nwvault.ign.com/View.php?view=Other.Detail&id=4683&id=625 */
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220618
//:://////////////////////////////////////////////
#include "pqj_inc"
int StartingConditional()
{
object oPC = GetPCSpeaker();
int nInt;
nInt=GetLocalInt(oPC, "NW_JOURNAL_ENTRYbeast");
//nInt=GetLocalInt(oPC, "NW_JOURNAL_ENTRYbeast");
nInt = RetrieveQuestState("beast", oPC);
if (nInt >= 1)
return FALSE;

View File

@@ -1,6 +1,6 @@
//::///////////////////////////////////////////////
//:: jchusb1.nss
//:: Copyright (c) 2022 Rappan Athuk
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*

View File

@@ -1,6 +1,6 @@
//::///////////////////////////////////////////////
//:: jchusb2.nss
//:: Copyright (c) 2022 Rappan Athuk
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
@@ -21,7 +21,7 @@ int nInt;
nInt = RetrieveQuestState("husband", oPC);
if (nInt = 2)
if (nInt == 2)
return TRUE;
return FALSE;

View File

@@ -1,6 +1,6 @@
//::///////////////////////////////////////////////
//:: jchusband.nss
//:: Copyright (c) 2022 Rappan Athuk
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*

View File

@@ -1,6 +1,6 @@
//::///////////////////////////////////////////////
//:: jchusband2.nss
//:: Copyright (c) 2022 Rappan Athuk
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*

View File

@@ -1,6 +1,6 @@
//::///////////////////////////////////////////////
//:: jchusband3.nss
//:: Copyright (c) 2022 Rappan Athuk
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
@@ -14,11 +14,13 @@
int StartingConditional()
{
object oPC = GetPCSpeaker();
//:: Declare major variables
object oPC = GetPCSpeaker();
int nInt;
nInt = RetrieveQuestState("husband", oPC);
// nInt=GetLocalInt(oPC, "NW_JOURNAL_ENTRYhusband");
int nInt;
//nInt=GetLocalInt(oPC, "NW_JOURNAL_ENTRYhusband");
nInt = RetrieveQuestState("husband", oPC);
if (nInt >= 3)
return TRUE;

View File

@@ -1,6 +1,6 @@
//::///////////////////////////////////////////////
//:: jckupra1.nss
//:: Copyright (c) 2022 Rappan Athuk
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
@@ -19,7 +19,7 @@ object oPC = GetPCSpeaker();
int nInt;
// nInt = GetLocalInt(oPC, "NW_JOURNAL_ENTRYkupra");
nInt = RetrieveQuestState("NW_JOURNAL_ENTRYkupra", oPC);
nInt = RetrieveQuestState("kupra", oPC);
if (nInt >= 1)
return FALSE;

View File

@@ -1,15 +1,24 @@
/* Script generated by
Lilac Soul's NWN Script Generator, v. 2.1
//::///////////////////////////////////////////////
//:: jckupra1x.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
For download info, please visit:
http://nwvault.ign.com/View.php?view=Other.Detail&id=4683&id=625 */
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220617
//:://////////////////////////////////////////////
#include "pqj_inc"
int StartingConditional()
{
object oPC = GetPCSpeaker();
int nInt;
nInt=GetLocalInt(oPC, "NW_JOURNAL_ENTRYkupra");
//nInt=GetLocalInt(oPC, "NW_JOURNAL_ENTRYkupra");
nInt = RetrieveQuestState("kupra", oPC);
if (nInt >= 1)
return TRUE;

View File

@@ -1,18 +0,0 @@
/* Script generated by
Lilac Soul's NWN Script Generator, v. 2.1
For download info, please visit:
http://nwvault.ign.com/View.php?view=Other.Detail&id=4683&id=625 */
int StartingConditional()
{
object oPC = GetPCSpeaker();
int nInt;
nInt=GetLocalInt(oPC, "NW_JOURNAL_ENTRYoutcasts");
if (nInt >= 2)
return TRUE;
return FALSE;
}

View File

@@ -1,15 +1,24 @@
/* Script generated by
Lilac Soul's NWN Script Generator, v. 2.1
//::///////////////////////////////////////////////
//:: journalchecktri0.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
For download info, please visit:
http://nwvault.ign.com/View.php?view=Other.Detail&id=4683&id=625 */
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220617
//:://////////////////////////////////////////////
#include "pqj_inc"
int StartingConditional()
{
object oPC = GetPCSpeaker();
int nInt;
nInt=GetLocalInt(oPC, "NW_JOURNAL_ENTRYtribitz");
//nInt=GetLocalInt(oPC, "NW_JOURNAL_ENTRYtribitz");
nInt = RetrieveQuestState("tribitz", oPC);
if (nInt >= 1)
return FALSE;

View File

@@ -1,15 +1,24 @@
/* Script generated by
Lilac Soul's NWN Script Generator, v. 2.1
//::///////////////////////////////////////////////
//:: journalchecktri1.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
For download info, please visit:
http://nwvault.ign.com/View.php?view=Other.Detail&id=4683&id=625 */
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220618
//:://////////////////////////////////////////////
#include "pqj_inc"
int StartingConditional()
{
object oPC = GetPCSpeaker();
int nInt;
nInt=GetLocalInt(oPC, "NW_JOURNAL_ENTRYtribitz");
//nInt=GetLocalInt(oPC, "NW_JOURNAL_ENTRYtribitz");
nInt = RetrieveQuestState("tribitz", oPC);
if (nInt >= 1)
return TRUE;

View File

@@ -1,6 +1,6 @@
//::///////////////////////////////////////////////
//:: npcrecognew.nss
//:: Copyright (c) 2022 Rappan Athuk
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*

View File

@@ -1,6 +1,6 @@
//::///////////////////////////////////////////////
//:: npcrecgnknows.nss
//:: Copyright (c) 2022 Rappan Athuk
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Returns true if this is not the first time

View File

@@ -0,0 +1,27 @@
//::///////////////////////////////////////////////
//:: qst_aragnak_01.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Checks that the "Aragnak the Red" is in
progress.
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220619
//:://////////////////////////////////////////////
#include "pqj_inc"
int StartingConditional()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
int nInt;
nInt=GetLocalInt(oPC, "NW_JOURNAL_ENTRYaragnak");
if (nInt == 1) return TRUE;
return FALSE;
}

View File

@@ -0,0 +1,27 @@
//::///////////////////////////////////////////////
//:: qst_aragnak_chk.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Checks that the "Aragnak the Red" quest hasn't
been started yet.
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220619
//:://////////////////////////////////////////////
#include "pqj_inc"
int StartingConditional()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
int nInt;
nInt=GetLocalInt(oPC, "NW_JOURNAL_ENTRYaragnak");
if (nInt >= 1) return FALSE;
return TRUE;
}

View File

@@ -0,0 +1,27 @@
//::///////////////////////////////////////////////
//:: qst_aragnak_end.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Ends & rewards the "Aragnak the Red" quest.
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220619
//:://////////////////////////////////////////////
#include "pqj_inc"
#include "nw_i0_tool"
void main()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
//:: Give the PC's party some XP
RewardPartyXP(5000, oPC);
//:: Set quest stage & update DB.
AddPersistentJournalQuestEntry("aragnak", 2, oPC);
}

View File

@@ -0,0 +1,26 @@
//::///////////////////////////////////////////////
//:: qst_aragnak_strt.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Starts & tracks the "Aragnak the Red" quest
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220619
//:://////////////////////////////////////////////
#include "pqj_inc"
void main()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
//:: Set quest stage & update DB.
AddPersistentJournalQuestEntry("aragnak", 1, oPC);
}

View File

@@ -0,0 +1,28 @@
//::///////////////////////////////////////////////
//:: qst_chk_outcasts.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Checks for previous refusal of "The Outcasts"
quest.
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220618
//:://////////////////////////////////////////////
#include "pqj_inc"
int StartingConditional()
{
object oPC = GetPCSpeaker();
int nInt;
//nInt=GetLocalInt(oPC, "NW_JOURNAL_ENTRYoutcasts");
nInt = RetrieveQuestState("outcasts", oPC);
if (nInt = 2)
return FALSE;
return TRUE;
}

View File

@@ -0,0 +1,26 @@
//::///////////////////////////////////////////////
//:: qst_chk_outcst03.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Checks for completion of the "Outcasts" quest.
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220618
//:://////////////////////////////////////////////
#include "pqj_inc"
int StartingConditional()
{
object oPC = GetPCSpeaker();
int nInt;
//nInt=GetLocalInt(oPC, "NW_JOURNAL_ENTRYoutcasts");
nInt = RetrieveQuestState("outcasts", oPC);
if (nInt >= 3)
return TRUE;
return FALSE;
}

View File

@@ -0,0 +1,28 @@
//::///////////////////////////////////////////////
//:: qst_gntslave_01.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Checks that the "Giant Slaver" quest hasn't
been finished yet.
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220619
//:://////////////////////////////////////////////
#include "pqj_inc"
int StartingConditional()
{
//: Declare major variables
object oPC = GetPCSpeaker();
int nInt;
nInt = RetrieveQuestState("giantslaver", oPC);
// nInt=GetLocalInt(oPC, "NW_JOURNAL_ENTRYgiantslaver");
if (nInt <= 2) return TRUE;
return FALSE;
}

View File

@@ -0,0 +1,29 @@
//::///////////////////////////////////////////////
//:: qst_gntslave_03.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Checks that the "Giant Slaver" quest has
been finished.
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220619
//:://////////////////////////////////////////////
#include "pqj_inc"
int StartingConditional()
{
//: Declare major variables
object oPC = GetPCSpeaker();
int nInt;
nInt = RetrieveQuestState("giantslaver", oPC);
// nInt=GetLocalInt(oPC, "NW_JOURNAL_ENTRYgiantslaver");
if (nInt >= 3) return TRUE;
return FALSE;
}

View File

@@ -0,0 +1,27 @@
//::///////////////////////////////////////////////
//:: qst_husband_01.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Checks for stage 1 in the "Lost Husband" quest
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220619
//:://////////////////////////////////////////////
#include "pqj_inc"
int StartingConditional()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
int nInt;
nInt = RetrieveQuestState("husband", oPC);
// nInt=GetLocalInt(oPC, "NW_JOURNAL_ENTRYhusband");
if (nInt == 1) return TRUE;
return FALSE;
}

View File

@@ -0,0 +1,27 @@
//::///////////////////////////////////////////////
//:: qst_husband_02.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Checks for stage 2 in the "Lost Husband" quest
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220617
//:://////////////////////////////////////////////
#include "pqj_inc"
int StartingConditional()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
int nInt;
nInt = RetrieveQuestState("husband", oPC);
// nInt=GetLocalInt(oPC, "NW_JOURNAL_ENTRYhusband");
if (nInt == 2) return TRUE;
return FALSE;
}

View File

@@ -0,0 +1,25 @@
//::///////////////////////////////////////////////
//:: qst_husband_bad.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Ends & rewards the "Lost Husband" quest.
This is the poorest ending.
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220619
//:://////////////////////////////////////////////
#include "pqj_inc"
#include "nw_i0_tool"
void main()
{
//:: Give the PC's party some XP
RewardPartyXP(200, GetPCSpeaker());
//:: Set Quest stage & update DB.
AddPersistentJournalQuestEntry("husband", 3, GetPCSpeaker());
}

View File

@@ -0,0 +1,28 @@
//::///////////////////////////////////////////////
//:: qst_huband_end.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Ends & rewards the "Lost Husband" quest.
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220619
//:://////////////////////////////////////////////
#include "pqj_inc"
#include "nw_i0_tool"
void main()
{
//:: Give the PC's party some XP
RewardPartyXP(2000, GetPCSpeaker());
//:: Give the PC a diamond.
CreateItemOnObject("nw_it_gem005", GetPCSpeaker(), 1);
//:: Set Quest stage & update DB.
AddPersistentJournalQuestEntry("husband", 3, GetPCSpeaker());
}

View File

@@ -0,0 +1,26 @@
//::///////////////////////////////////////////////
//:: qst_justicar_4th.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Sets stage 4 for the "Temple of the Justicars"
quest
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220619
//:://////////////////////////////////////////////
#include "pqj_inc"
void main()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
//:: Set quest stage & update DB.
AddPersistentJournalQuestEntry("justicar", 4, oPC);
}

View File

@@ -0,0 +1,28 @@
//::///////////////////////////////////////////////
//:: qst_justicar_chk.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Checks that the "Justicar" quest has been
started
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220617
//:://////////////////////////////////////////////
#include "pqj_inc"
int StartingConditional()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
int nInt;
nInt = RetrieveQuestState("justicar", oPC);
// nInt=GetLocalInt(oPC, "NW_JOURNAL_ENTRYjusticar");
if (nInt >= 1) return TRUE;
return FALSE;
}

View File

@@ -0,0 +1,33 @@
//::///////////////////////////////////////////////
//::
//:: qst_justicar_off.nss
//::
//:: Copyright (c) 2022 Project RATDOG
//::
//:://////////////////////////////////////////////
/*
Makes sure the "Justicar" quest
hasn't been started.
*/
//:://////////////////////////////////////////////
//::
//:: Created By: Jaysyn
//:: Created On: 20220619
//::
//:://////////////////////////////////////////////
#include "pqj_inc"
int StartingConditional()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
int nInt;
nInt = RetrieveQuestState("justicar", oPC);
// nInt=GetLocalInt(oPC, "NW_JOURNAL_ENTRYjusticar");
if (nInt >= 1) return FALSE;
return TRUE;
}

View File

@@ -0,0 +1,26 @@
//::///////////////////////////////////////////////
//:: qst_justicar_st.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Starts & tracks the "Temple of the Justicars"
questfor Sir Jerry.
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220619
//:://////////////////////////////////////////////
#include "pqj_inc"
void main()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
//:: Set quest stage & update DB.
AddPersistentJournalQuestEntry("justicar", 1, oPC);
}

View File

@@ -0,0 +1,25 @@
//::///////////////////////////////////////////////
//:: qst_kngsly_start.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Start & tracks the "Saving Sir Kingsley" quest
for Sir Jerry.
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220619
//:://////////////////////////////////////////////
#include "pqj_inc"
void main()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
//:: Set quest stage & update DB.
AddPersistentJournalQuestEntry("kingsley", 1, oPC);
}

View File

@@ -1,6 +1,6 @@
//::///////////////////////////////////////////////
//:: qst_losthubby01.nss
//:: Copyright (c) 2022 Rappan Athuk
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Set quest stage 1 for the Lost Husband quest

View File

@@ -1,6 +1,6 @@
//::///////////////////////////////////////////////
//:: qst_losthubby02.nss
//:: Copyright (c) 2022 Rappan Athuk
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Set quest stage 2 for the Lost Husband quest

View File

@@ -0,0 +1,25 @@
//::///////////////////////////////////////////////
//:: qst_marthek_3rd.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Sets stage 3 for the "Marthek the Madman" quest
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220619
//:://////////////////////////////////////////////
#include "pqj_inc"
void main()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
//:: Set quest stage & update DB.
AddPersistentJournalQuestEntry("marthek", 3, oPC);
}

View File

@@ -0,0 +1,31 @@
//:://////////////////////////////////////////////
//:: qst_marthek_bad.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Ends & rewards the "Marthek the Madman" quest.
This is the bad ending.
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220619
//:://////////////////////////////////////////////
#include "nw_i0_tool"
#include "pqj_inc"
void main()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
//:: Set quest stage & update DB.
AddPersistentJournalQuestEntry("marthek", 2, oPC);
//:: Give the PC some gold
GiveGoldToCreature(oPC, 1000);
//:: Give the PC's party some XP
RewardPartyXP(500, oPC);
}

View File

@@ -0,0 +1,33 @@
//::///////////////////////////////////////////////
//::
//:: qst_marthek_chk.nss
//::
//:: Copyright (c) 2022 Project RATDOG
//::
//:://////////////////////////////////////////////
/*
Makes sure the "Marthek the Madman" quest
has been started.
*/
//:://////////////////////////////////////////////
//::
//:: Created By: Jaysyn
//:: Created On: 20220618
//::
//:://////////////////////////////////////////////
#include "pqj_inc"
int StartingConditional()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
int nInt;
nInt = RetrieveQuestState("marthek", oPC);
// nInt = GetLocalInt(oPC, "NW_JOURNAL_ENTRYmarthek");
if (nInt >= 1) return TRUE;
return FALSE;
}

View File

@@ -0,0 +1,31 @@
//:://////////////////////////////////////////////
//:: qst_marthek_end.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Ends & rewards the "Marthek the Madman" quest.
This is the good ending.
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220619
//:://////////////////////////////////////////////
#include "nw_i0_tool"
#include "pqj_inc"
void main()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
//:: Set quest stage & update DB.
AddPersistentJournalQuestEntry("marthek", 4, oPC);
//:: Give the PC some gold
GiveGoldToCreature(oPC, 1500);
//:: Give the PC's party some XP
RewardPartyXP(700, oPC);
}

View File

@@ -0,0 +1,33 @@
//::///////////////////////////////////////////////
//::
//:: qst_marthek_off.nss
//::
//:: Copyright (c) 2022 Project RATDOG
//::
//:://////////////////////////////////////////////
/*
Makes sure the "Marthek the Madman" quest
hasn't been started.
*/
//:://////////////////////////////////////////////
//::
//:: Created By: Jaysyn
//:: Created On: 20220618
//::
//:://////////////////////////////////////////////
#include "pqj_inc"
int StartingConditional()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
int nInt;
nInt = RetrieveQuestState("marthek", oPC);
// nInt = GetLocalInt(oPC, "NW_JOURNAL_ENTRYmarthek");
if (nInt < 1) return TRUE;
return FALSE;
}

View File

@@ -0,0 +1,26 @@
//::///////////////////////////////////////////////
//:: qst_marthek_strt.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Starts & tracks the "Marthek the Mad" quest
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220619
//:://////////////////////////////////////////////
#include "pqj_inc"
void main()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
//:: Set quest stage & update DB.
AddPersistentJournalQuestEntry("marthek", 1, oPC);
}

View File

@@ -0,0 +1,27 @@
//::///////////////////////////////////////////////
//:: qst_mushroom_end.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Finished & rewards the PC for completing the
"Mushroom of Youth" quest.
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220619
//:://////////////////////////////////////////////
#include "pqj_inc"
#include "nw_i0_tool"
void main()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
//:: Give the speaker some gold
RewardPartyGP(50000, oPC);
//:: Set quest stage & update DB.
AddPersistentJournalQuestEntry("mushroom", 2, oPC);
}

View File

@@ -0,0 +1,25 @@
//::///////////////////////////////////////////////
//:: qst_mushroom_st.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Starts & tracks the "Mushroom of Youth" quest
for the hermit in Horsefly Swamp.
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220619
//:://////////////////////////////////////////////
#include "pqj_inc"
void main()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
//:: Set quest stage & update DB.
AddPersistentJournalQuestEntry("mushroom", 1, oPC);
}

View File

@@ -0,0 +1,29 @@
//::///////////////////////////////////////////////
//:: qst_orcus_end.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Finishes the "Orcus" quest
You win!
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220618
//:://////////////////////////////////////////////
#include "pqj_inc"
#include "nw_i0_tool"
void main()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
//:: Set quest stage & update DB.
AddPersistentJournalQuestEntry("orcus", 2, oPC);
//:: Give the speaker some gold
RewardPartyGP(10000, GetPCSpeaker());
}

View File

@@ -0,0 +1,26 @@
//::///////////////////////////////////////////////
//:: qst_orcus_start.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Starts the "Orcus" quest
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220618
//:://////////////////////////////////////////////
#include "pqj_inc"
void main()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
//:: Set quest stage & update DB.
AddPersistentJournalQuestEntry("orcus", 1, oPC);
}

View File

@@ -0,0 +1,28 @@
//:://////////////////////////////////////////////
//:: qst_outcst_end.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Ends & rewards "The Oucasts" quest
for the vagrants in the woods
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220618
//:://////////////////////////////////////////////
#include "pqj_inc"
void main()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
//:: XP reward
GiveXPToCreature(oPC, 200);
//:: Set quest stage & update DB.
AddPersistentJournalQuestEntry("outcasts", 3, oPC);
}

View File

@@ -0,0 +1,24 @@
//::///////////////////////////////////////////////
//:: qst_outcst_nope.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Refuses & tracks the "Outcasts" quest
for the vagrants in the woods
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220618
//:://////////////////////////////////////////////
#include "pqj_inc"
void main()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
//:: Set quest stage & update DB.
AddPersistentJournalQuestEntry("outcasts", 2, oPC);
}

View File

@@ -0,0 +1,24 @@
//::///////////////////////////////////////////////
//:: qst_outcst_start.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Starts & tracks the "Outcasts" quest
for the vagrants in the woods
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220618
//:://////////////////////////////////////////////
#include "pqj_inc"
void main()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
//:: Set quest stage & update DB.
AddPersistentJournalQuestEntry("outcasts", 1, oPC);
}

View File

@@ -0,0 +1,31 @@
//:://////////////////////////////////////////////
//:: qst_papers_end.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Ends & rewards the "Papers of Office" quest
for the Theives' Guild
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220618
//:://////////////////////////////////////////////
#include "pqj_inc"
void main()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
//:: GP reward
GiveGoldToCreature(oPC, 1000);
//:: XP reward
GiveXPToCreature(oPC, 500);
//:: Set quest stage & update DB.
AddPersistentJournalQuestEntry("papers", 3, oPC);
}

View File

@@ -0,0 +1,24 @@
//:://////////////////////////////////////////////
//:: qst_papers_nope.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Declines the "Papers of Office" quest
for the Theives' Guild
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220618
//:://////////////////////////////////////////////
#include "pqj_inc"
void main()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
//:: Set quest stage & update DB.
AddPersistentJournalQuestEntry("papers", 2, oPC);
}

View File

@@ -0,0 +1,24 @@
//:://////////////////////////////////////////////
//:: qst_papers_start.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Starts & tracks the "Papers of Office" quest
for the Theives' Guild
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220618
//:://////////////////////////////////////////////
#include "pqj_inc"
void main()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
//:: Set quest stage & update DB.
AddPersistentJournalQuestEntry("papers", 1, oPC);
}

View File

@@ -0,0 +1,33 @@
//::///////////////////////////////////////////////
//::
//:: qst_priests_01.nss
//::
//:: Copyright (c) 2022 Project RATDOG
//::
//:://////////////////////////////////////////////
/*
Checks if the "Plotting of Priests" quest has
been started.
*/
//:://////////////////////////////////////////////
//::
//:: Created By: Jaysyn
//:: Created On: 20220618
//::
//:://////////////////////////////////////////////
#include "pqj_inc"
int StartingConditional()
{
//: Declare major variables
object oPC = GetPCSpeaker();
int nInt;
nInt = RetrieveQuestState("priests", oPC);
// nInt=GetLocalInt(oPC, "NW_JOURNAL_ENTRYpriests");
if (nInt >= 1) return FALSE;
return TRUE;
}

View File

@@ -0,0 +1,25 @@
//:://////////////////////////////////////////////
//:: qst_priests_2nd.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Starts the 2nd stage of the "Plotting of
Priests" quest
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220618
//:://////////////////////////////////////////////
#include "pqj_inc"
void main()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
//:: Set quest stage & update DB.
AddPersistentJournalQuestEntry("priests", 2, oPC);
}

View File

@@ -0,0 +1,24 @@
//:://////////////////////////////////////////////
//:: qst_priests_end.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Ends the "Plotting of Priests" quest
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220618
//:://////////////////////////////////////////////
#include "pqj_inc"
void main()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
//:: Set quest stage & update DB.
AddPersistentJournalQuestEntry("priests", 3, oPC);
}

View File

@@ -0,0 +1,24 @@
//:://////////////////////////////////////////////
//:: qst_priests_strt.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Starts & tracks the "Plotting of Priests" quest
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220618
//:://////////////////////////////////////////////
#include "pqj_inc"
void main()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
//:: Set quest stage & update DB.
AddPersistentJournalQuestEntry("priests", 1, oPC);
}

View File

@@ -0,0 +1,28 @@
//::///////////////////////////////////////////////
//:: qst_seals_chk.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Checks that the "Seven Seals" quest has been
started
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220619
//:://////////////////////////////////////////////
#include "pqj_inc"
int StartingConditional()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
int nInt;
nInt = RetrieveQuestState("seals", oPC);
// nInt=GetLocalInt(oPC, "NW_JOURNAL_ENTRYseals");
if (nInt >= 1)return TRUE;
return FALSE;
}

View File

@@ -0,0 +1,31 @@
//::///////////////////////////////////////////////
//::
//:: qst_spiders_01.nss
//::
//:: Copyright (c) 2022 Project RATDOG
//::
//:://////////////////////////////////////////////
/*
Check to see if the PC is on stage 1 of the
"Spider's Captive" quest
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220618
//:://////////////////////////////////////////////
#include "pqj_inc"
int StartingConditional()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
int nInt;
nInt = RetrieveQuestState("spiders", oPC);
// nInt=GetLocalInt(oPC, "NW_JOURNAL_ENTRYspiders");
if (nInt == 1) return TRUE;
return FALSE;
}

View File

@@ -0,0 +1,32 @@
//::///////////////////////////////////////////////
//::
//:: qst_spiders_03.nss
//::
//:: Copyright (c) 2022 Project RATDOG
//::
//:://////////////////////////////////////////////
/*
Checks if the "Spiders" quest has been finished.
*/
//:://////////////////////////////////////////////
//::
//:: Created By: Jaysyn
//:: Created On: 20220618
//::
//:://////////////////////////////////////////////
#include "pqj_inc"
int StartingConditional()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
int nInt;
nInt = RetrieveQuestState("spiders", oPC);
// nInt=GetLocalInt(oPC, "NW_JOURNAL_ENTRYspiders");
if (nInt >= 3) return TRUE;
return FALSE;
}

View File

@@ -0,0 +1,33 @@
//::///////////////////////////////////////////////
//::
//:: qst_spiders_chk.nss
//::
//:: Copyright (c) 2022 Project RATDOG
//::
//:://////////////////////////////////////////////
/*
Checks if the "Spiders" quest has been started.
*/
//:://////////////////////////////////////////////
//::
//:: Created By: Jaysyn
//:: Created On: 20220618
//::
//:://////////////////////////////////////////////
#include "pqj_inc"
int StartingConditional()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
int nInt;
nInt = RetrieveQuestState("spiders", oPC);
// nInt=GetLocalInt(oPC, "NW_JOURNAL_ENTRYspiders");
if (nInt >= 1) return FALSE;
return TRUE;
}

View File

@@ -0,0 +1,24 @@
//::///////////////////////////////////////////////
//:: qst_spiders_fail.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Fails & tracks the "Spider's Captive" quest
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220618
//:://////////////////////////////////////////////
#include "pqj_inc"
void main()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
//:: Set quest stage & update DB.
AddPersistentJournalQuestEntry("spiders", 2, oPC);
}

View File

@@ -0,0 +1,24 @@
//:://////////////////////////////////////////////
//:: qst_spiders_strt.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Starts & tracks the "Spiders' Captives" quest
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220618
//:://////////////////////////////////////////////
#include "pqj_inc"
void main()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
//:: Set quest stage & update DB.
AddPersistentJournalQuestEntry("spiders", 1, oPC);
}

View File

@@ -0,0 +1,29 @@
//::///////////////////////////////////////////////
//::
//:: ra_fac_attack_pc.nss
//::
//:: Copyright (c) 2022 Project RATDOG
//::
//:://////////////////////////////////////////////
/*
Turns the speaking NPC's faction against the
PC & attacks.
*/
//:://////////////////////////////////////////////
//::
//:: Created By: Jaysyn
//:: Created On: 20220619
//::
//:://////////////////////////////////////////////
#include "nw_i0_generic"
void main()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
object oNPC = OBJECT_SELF;
//:: Set the faction to hate the player, then attack the player
AdjustReputation(oPC, oNPC, -100);
DetermineCombatRound(oPC);
}

View File

@@ -0,0 +1,22 @@
//::///////////////////////////////////////////////
//:: ra_has50kgp.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Checks to see if the player has 50k GP to
purchase the Essence Puller.
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220619
//:://////////////////////////////////////////////
int StartingConditional()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
if (GetGold(oPC) < 50000) return FALSE;
return TRUE;
}

View File

@@ -0,0 +1,33 @@
//::///////////////////////////////////////////////
//::
//:: ra_npc_attack_pc.nss
//::
//:: Copyright (c) 2022 Project RATDOG
//::
//:://////////////////////////////////////////////
/*
Makes speaking NPC attack the PC speaker
*/
//:://////////////////////////////////////////////
//::
//:: Created By: Jaysyn
//:: Created On: 20220618
//::
//:://////////////////////////////////////////////
#include "nw_i0_generic"
void main()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
object oTarget = OBJECT_SELF;
//:: Set PC to enemy
SetIsTemporaryEnemy(oPC, oTarget);
//:: Attack PC
ActionAttack(oPC);
DetermineCombatRound(oPC);
}

View File

@@ -0,0 +1,29 @@
//:://////////////////////////////////////////////
//:: ra_npc_knowspc.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Returns true if this is not the first time
the PC has spoken to this NPC
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220618
//:://////////////////////////////////////////////
int StartingConditional()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
object oNPC = OBJECT_SELF;
string sTag = GetTag(oNPC);
//:: Check if this is the first time spoken to
if (GetLocalInt(oPC,"Spoke2"+sTag) > 0)
{
return TRUE;
}
return FALSE;
}

View File

@@ -0,0 +1,33 @@
//::///////////////////////////////////////////////
//::
//:: ra_npc_talkcheck.nss
//::
//:: Copyright (c) 2022 Project RATDOG
//::
//::
//:://////////////////////////////////////////////
//::
//:: Checks that a PC has spoken with a given NPC.
//::
//:://////////////////////////////////////////////
//::
//:: Created By: Jaysyn
//:: Created On: 20220618
//::
//:://////////////////////////////////////////////
int StartingConditional()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
object oNPC = OBJECT_SELF;
string sTag = GetTag(oNPC);
//:: Check if this is the first time spoken to
if (GetLocalInt(oPC,"Spoke2"+sTag) == 0)
{
return TRUE;
}
return FALSE;
}

View File

@@ -0,0 +1,29 @@
//::///////////////////////////////////////////////
//::
//:: ra_npc_talktimes.nss
//::
//:: Copyright (c) 2022 Project RATDOG
//::
//:://////////////////////////////////////////////
/*
Tracks the number of times a PC has spoken
to a given NPC.
*/
//:://////////////////////////////////////////////
//::
//:: Created By: Jaysyn
//:: Created On: 20220618
//::
//:://////////////////////////////////////////////
void main()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
object oNPC = OBJECT_SELF;
string sTag = GetTag(oNPC);
//SetLocalInt(OBJECT_SELF,"NW_L_TALKTIMES",GetLocalInt(OBJECT_SELF,"NW_L_TALKTIMES") + 1);
SetLocalInt(oPC,"Spoke2"+sTag,GetLocalInt(oPC,"Spoke2"+sTag) + 1);
}

View File

@@ -0,0 +1,17 @@
//::///////////////////////////////////////////////
//:: ra_take100gp.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Remove 100 GP from the PC
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220618
//:://////////////////////////////////////////////
void main()
{
//:: Remove gold from the player
TakeGoldFromCreature(100, GetPCSpeaker(), FALSE);
}

View File

@@ -0,0 +1,17 @@
//::///////////////////////////////////////////////
//:: ra_take200gp.nss
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Remove 200 GP from the PC
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220618
//:://////////////////////////////////////////////
void main()
{
//:: Remove gold from the player
TakeGoldFromCreature(200, GetPCSpeaker(), FALSE);
}

View File

@@ -8,7 +8,7 @@
int StartingConditional()
{
// Restrict based on the player's class
// 10th lvl+ Paladin's only
int iPassed = 0;
if(GetLevelByClass(CLASS_TYPE_PALADIN, GetPCSpeaker()) >= 10)
iPassed = 1;

View File

@@ -0,0 +1,43 @@
//::///////////////////////////////////////////////
//:: talk2pc_onpercp.nss
//:: Copyright (c) 2022 Project RATDOG
//::///////////////////////////////////////////////
/*
Makes the NPC speak to the PC upon seeing them
the first time.
*/
//::///////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20220618
//::///////////////////////////////////////////////
void main()
{
//:: Declare major variables
object oPC = GetLastPerceived();
object oNPC = OBJECT_SELF;
string sUUID = GetObjectUUID(oPC);
string sTag = GetTag(oNPC);
//:: Only looks out for players
if (!GetIsPC(oPC)) return;
//:: Must be seen & not just heard
if (!GetLastPerceptionSeen()) return;
//:: If NPC has seen PC before stop
int DoOnce = GetLocalInt(oPC,"SeenBy"+sTag);
if (DoOnce==TRUE) return;
//:: Mark that NPC has seen the PC before
SetLocalInt(oPC,"SeenBy"+sTag,GetLocalInt(oPC,"SeenBy"+sTag) + 1);
//SetLocalInt(OBJECT_SELF, GetTag(OBJECT_SELF), TRUE);
//:: Start conversation
ActionStartConversation(oPC, "");
//:: Run default onPerception AI
ExecuteScript("nw_c2_default2", OBJECT_SELF);
}