114 lines
3.4 KiB
Plaintext
114 lines
3.4 KiB
Plaintext
|
//::///////////////////////////////////////////////
|
||
|
//:: Name: x2_onrest
|
||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||
|
//:://////////////////////////////////////////////
|
||
|
/*
|
||
|
The generic wandering monster system
|
||
|
*/
|
||
|
//:://////////////////////////////////////////////
|
||
|
//:: Created By: Georg Zoeller
|
||
|
//:: Created On: June 9/03
|
||
|
//:://////////////////////////////////////////////
|
||
|
|
||
|
#include "x0_i0_henchman"
|
||
|
#include "x2_inc_restsys"
|
||
|
#include "x2_inc_banter"
|
||
|
|
||
|
|
||
|
// * returns true if its time to say another romance line
|
||
|
int GetPlotProgress();
|
||
|
|
||
|
void main()
|
||
|
{
|
||
|
object oPC = GetLastPCRested();
|
||
|
/* Georg, August 11, 2003
|
||
|
Added this code to allow the designer to specify a variable on the module
|
||
|
Instead of using a OnAreaEnter script. Nice new toolset feature!
|
||
|
|
||
|
Basically, the first time a player rests, the area is scanned for the
|
||
|
encounter table string and will set it up.
|
||
|
*/
|
||
|
object oArea = GetArea (oPC);
|
||
|
|
||
|
// Vampire Rest Code
|
||
|
//ExecuteScript("vamp_rest", OBJECT_SELF);
|
||
|
|
||
|
// Do not allow to rest during the seige
|
||
|
if(GetLocalInt(GetModule(), "X2_StartSeerSiegeSpeech") == 2)
|
||
|
{
|
||
|
FloatingTextStrRefOnCreature(84142 ,oPC);
|
||
|
AssignCommand(oPC, ClearAllActions());
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
|
||
|
string sTable = GetLocalString(oArea,"X2_WM_ENCOUNTERTABLE") ;
|
||
|
if (sTable != "" )
|
||
|
{
|
||
|
int nDoors = GetLocalInt(oArea,"X2_WM_AREA_USEDOORS");
|
||
|
int nDC = GetLocalInt(oArea,"X2_WM_AREA_LISTENCHECK");
|
||
|
WMSetAreaTable(oArea,sTable,nDoors,nDC);
|
||
|
|
||
|
//remove string to indicate we are set up
|
||
|
DeleteLocalString(oArea,"X2_WM_ENCOUNTERTABLE");
|
||
|
}
|
||
|
|
||
|
|
||
|
/* Brent, July 2 2003
|
||
|
- If you rest and are a low level character at the beginning of the module.
|
||
|
You will trigger the first dream cutscene
|
||
|
*/
|
||
|
if (GetLocalInt(GetModule(), "X2_G_LOWLEVELSTART") == 10)
|
||
|
{
|
||
|
AssignCommand(oPC, ClearAllActions());
|
||
|
if (GetHitDice(oPC) >= 12)
|
||
|
{
|
||
|
ExecuteScript("bk_sleep", oPC);
|
||
|
return;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
FloatingTextStrRefOnCreature(84141 , oPC);
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (GetLastRestEventType()==REST_EVENTTYPE_REST_STARTED)
|
||
|
{
|
||
|
if (!WMStartPlayerRest(oPC))
|
||
|
{
|
||
|
// The resting system has objections against resting here and now
|
||
|
// Probably because there is an ambush already in progress
|
||
|
FloatingTextStrRefOnCreature(84142 ,oPC);
|
||
|
AssignCommand(oPC,ClearAllActions());
|
||
|
}
|
||
|
if (WMCheckForWanderingMonster(oPC))
|
||
|
{
|
||
|
//This script MUST be run or the player won't be able to rest again ...
|
||
|
ExecuteScript("x2_restsys_ambus",oPC);
|
||
|
}
|
||
|
|
||
|
}
|
||
|
else if (GetLastRestEventType()==REST_EVENTTYPE_REST_CANCELLED)
|
||
|
{
|
||
|
// No longer used but left in for the community
|
||
|
// WMFinishPlayerRest(oPC,TRUE); // removes sleep effect, etc
|
||
|
}
|
||
|
else if (GetLastRestEventType()==REST_EVENTTYPE_REST_FINISHED)
|
||
|
{
|
||
|
// No longer used but left in for the community
|
||
|
// WMFinishPlayerRest(oPC); // removes sleep effect, etc
|
||
|
// * Brent October 15
|
||
|
// * In Chapter 2, your henchmen will progress the romance dialog
|
||
|
|
||
|
if (GetPlotProgress() == TRUE && GetTag(GetModule()) == "x0_module2")
|
||
|
{
|
||
|
AttemptRomanceDialog(oPC, 3); // * can only go up to 4th stage this way
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
|