Fixed CCOH, Fixed starting GP, Fixed DMFI languages, Fix cep weapon appearances, Fixed new player start up system. Added PC deleter. Added ACP 4.1. Full compile. Updated release archive.
76 lines
2.3 KiB
Plaintext
76 lines
2.3 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: Associate: On Dialogue
|
|
//:: NW_CH_AC4
|
|
//:: Copyright (c) 2001 Bioware Corp.
|
|
//:://////////////////////////////////////////////
|
|
/*
|
|
Determines the course of action to be taken
|
|
by the generic script after dialogue or a
|
|
shout is initiated.
|
|
*/
|
|
//:://////////////////////////////////////////////
|
|
//:: Created By: Preston Watamaniuk
|
|
//:: Created On: Oct 24, 2001
|
|
//:://////////////////////////////////////////////
|
|
#include "prc_inc_spells"
|
|
#include "x0_inc_henai"
|
|
|
|
// * This function checks to make sure no
|
|
// * dehibilating effects are on the player that should
|
|
// * Don't use getcommandable for this since the dying system
|
|
// * will sometimes leave a player in a noncommandable state
|
|
int AbleToTalk(object oSelf)
|
|
{
|
|
if (GetCommandable(oSelf) == FALSE)
|
|
{
|
|
if (PRCGetHasEffect(EFFECT_TYPE_CONFUSED, oSelf) || PRCGetHasEffect(EFFECT_TYPE_DOMINATED, oSelf) ||
|
|
PRCGetHasEffect(EFFECT_TYPE_PETRIFY, oSelf) || PRCGetHasEffect(EFFECT_TYPE_PARALYZE, oSelf) ||
|
|
PRCGetHasEffect(EFFECT_TYPE_STUNNED, oSelf) || PRCGetHasEffect(EFFECT_TYPE_FRIGHTENED, oSelf)
|
|
)
|
|
{
|
|
return FALSE;
|
|
}
|
|
}
|
|
return TRUE;
|
|
}
|
|
void main()
|
|
{
|
|
object oMaster = GetMaster();
|
|
int nMatch = GetListenPatternNumber();
|
|
object oShouter = GetLastSpeaker();
|
|
object oIntruder;
|
|
|
|
//DMFI CODE ADDITIONS BEGIN HERE
|
|
if (!GetIsInCombat(OBJECT_SELF))
|
|
ExecuteScript("dmfi_voice_exe", OBJECT_SELF);
|
|
//DMFI CODE ADDITIONS END HERE
|
|
|
|
if (nMatch == -1) {
|
|
if(AbleToTalk(OBJECT_SELF) || GetCurrentAction() != ACTION_OPENLOCK)
|
|
{
|
|
ClearActions(CLEAR_NW_CH_AC4_28);
|
|
|
|
// * if in XP2, use an alternative dialog file
|
|
string sDialog = "";
|
|
if (GetLocalInt(GetModule(), "X2_L_XP2") == 1)
|
|
{
|
|
sDialog = "x2_associate";
|
|
}
|
|
BeginConversation(sDialog);
|
|
}
|
|
} else {
|
|
// listening pattern matched
|
|
if (GetIsObjectValid(oShouter) && oMaster == oShouter)
|
|
{
|
|
SetCommandable(TRUE);
|
|
bkRespondToHenchmenShout(oShouter, nMatch, oIntruder, TRUE);
|
|
}
|
|
}
|
|
|
|
// Signal user-defined event
|
|
if(GetSpawnInCondition(NW_FLAG_ON_DIALOGUE_EVENT)) {
|
|
SignalEvent(OBJECT_SELF, EventUserDefined(EVENT_DIALOGUE));
|
|
}
|
|
}
|
|
|