//:://///////////////////////////////////////////// //:: Name re_or.nss //:: Copyright (c) 2001 Bioware Corp. //::////////////////////////////////////////////// /* This script is intended to be executed by "re_onrest". It should not be executed alone */ //::////////////////////////////////////////////// //:: Created By: Ray Miller //:: Created On: 1-6-03 //::////////////////////////////////////////////// #include "re_rndenc" void main() { object oPC = OBJECT_SELF; if(GetLocalInt(oPC, "re_resting")) { object oArea = GetArea(oPC); int iMinDistance = 1; int iMaxDistance = 5; struct RndEncProperties strProps = GetRndEncProperties(oArea); if(!strProps.bInitialized) strProps = GetRndEncProperties(GetModule()); if(!strProps.bInitialized) { SetRndEncProperties(GetModule()); strProps = GetRndEncProperties(GetModule()); } //If a friendly creature is awake and within 20 meters, then increase //the distance at which the encounter can spawn. int iCounter1 = 1; object oPlayer = GetNearestCreature(CREATURE_TYPE_IS_ALIVE, TRUE, oPC, iCounter1); while(GetIsObjectValid(oPlayer) && GetDistanceToObject(oPlayer) <= 20.0) { iCounter1++; if(GetIsFriend(oPlayer, oPC)) { iMinDistance = 6; iMaxDistance = 12; } oPlayer = GetNearestCreature(CREATURE_TYPE_IS_ALIVE, TRUE, oPC, iCounter1); } //The purpose of the following local int is to cause the spawns //to be facing the PC who generated the encounter. SetLocalInt(oPC, "re_Facing", TRUE); object oEncounter = RandomEncounter(IntToFloat(strProps.iChanceOnRest), oPC, strProps.sCreatureTable, 0, 0, iMinDistance, iMaxDistance, 360, 0, 0, 0, strProps.iDifficulty); /*if(GetIsObjectValid(oEncounter)) { //DeleteLocalInt(oPC, "re_resting"); effect eEffect = GetFirstEffect(oPC); while(GetIsEffectValid(eEffect)) { if(GetEffectType(eEffect) == EFFECT_TYPE_BLINDNESS && GetEffectCreator(eEffect) == GetModule()) RemoveEffect(oPC, eEffect); eEffect = GetNextEffect(oPC); } }*/ } }