Aantioch_Infernum/_module/nss/npc_sit_stay.nss
EpicValor 129ffdcf22 Area ambience, dialog, sound changes
Got NPCs sitting in the pub
added hourly bell tolls
Adjusted many sounds in sarum city main
changed fog clip distance in many areas
2023-08-13 18:26:11 -05:00

61 lines
1.8 KiB
Plaintext

//::///////////////////////////////////////////////
//:: npc_sit_stay
//:://////////////////////////////////////////////
/*Goes on the OnSpawn and OnConversation script of the NPC that you want to stay <span class="highlight">seated</span>*/
#include "NW_I0_GENERIC"
void main()
{
int nMatch = GetListenPatternNumber();
object oShouter = GetLastSpeaker();
object oIntruder;
if (nMatch == -1 && GetCommandable(OBJECT_SELF))
{
ClearAllActions();
}
else
if(nMatch != -1 && GetIsObjectValid(oShouter) && !GetIsPC(oShouter) && GetIsFriend(oShouter))
{
if(nMatch == 4)
{
oIntruder = GetLocalObject(oShouter, "NW_BLOCKER_INTRUDER");
}
else if (nMatch == 5)
{
oIntruder = GetLastHostileActor(oShouter);
if(!GetIsObjectValid(oIntruder))
{
oIntruder = GetAttemptedAttackTarget();
if(!GetIsObjectValid(oIntruder))
{
oIntruder = GetAttemptedSpellTarget();
if(!GetIsObjectValid(oIntruder))
{
oIntruder = OBJECT_INVALID;
}
}
}
}
RespondToShout(oShouter, nMatch, oIntruder);
}
if(GetSpawnInCondition(NW_FLAG_ON_DIALOGUE_EVENT))
{
SignalEvent(OBJECT_SELF, EventUserDefined(1004));
}
if(GetCommandable(OBJECT_SELF))
{
//{
//BeginConversation();
//}
ClearAllActions();
int nChair = 1;
string sMyTagName = GetTag(OBJECT_SELF);
string sSittableTagName = "CHAIR_" + sMyTagName;
object oChair = GetNearestObjectByTag(sSittableTagName, OBJECT_SELF, nChair);
ActionSit(oChair);
}
}