Got NPCs sitting in the pub added hourly bell tolls Adjusted many sounds in sarum city main changed fog clip distance in many areas
61 lines
1.8 KiB
Plaintext
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);
|
|
}
|
|
}
|
|
|