//:://///////////////////////////////////////////// //:: npc_sit_stay //::////////////////////////////////////////////// /*Goes on the OnSpawn and OnConversation script of the NPC that you want to stay seated*/ //#include "nw_i0_spells" #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(); string sWay = "NW_STOP"; object oWay = GetRandomObjectByTag(sWay, 110.0); ActionMoveToObject (oWay, FALSE); } int nTime = Random(180) + 120; float fTime = IntToFloat(nTime); DelayCommand(fTime, ExecuteScript("npc_sit_chair", OBJECT_SELF)); }