// Vampire buried heartbeat void main() { object oTarget=GetLocalObject(OBJECT_SELF,"oVampire"); effect eEff; float fDist; object oNearby; int nC=1; int nT; int nR; if (oTarget==OBJECT_INVALID) { oNearby=GetNearestCreature(CREATURE_TYPE_IS_ALIVE,TRUE,OBJECT_SELF,nC,CREATURE_TYPE_PLAYER_CHAR,PLAYER_CHAR_IS_PC); if (GetLocalInt(oNearby,"nIsVampire")==TRUE) { oTarget=oNearby; SetLocalObject(OBJECT_SELF,"oVampire",oNearby); } } if ((GetIsDay()==TRUE||GetIsDawn()==TRUE)&&GetArea(oTarget)==GetArea(OBJECT_SELF)) { // stay buried SetLocalInt(oTarget,"nBuried",TRUE); eEff=EffectCutsceneParalyze(); ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eEff,oTarget,10.0); eEff=EffectInvisibility(INVISIBILITY_TYPE_IMPROVED); ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eEff,oTarget,10.0); oNearby=GetNearestCreature(CREATURE_TYPE_IS_ALIVE,TRUE,OBJECT_SELF,nC,CREATURE_TYPE_PLAYER_CHAR,PLAYER_CHAR_IS_PC); fDist=GetDistanceBetween(oNearby,OBJECT_SELF); while(oNearby!=OBJECT_INVALID&&fDist<15.0) { // cold chills if (GetAlignmentGoodEvil(oNearby)==ALIGNMENT_GOOD) { // good player nR=d20()+GetSkillRank(SKILL_SPOT,oNearby); if (nR>18&&oNearby!=oTarget) { if (GetLevelByClass(CLASS_TYPE_PALADIN,oNearby)>0) SendMessageToPC(oNearby,"You feel the presence of a foul spirit nearby."); else if (GetLevelByClass(CLASS_TYPE_WIZARD,oNearby)>0) SendMessageToPC(oNearby,"You feel the presence of a powerful undead force nearby."); else { SendMessageToPC(oNearby,"You feel cold chills."); } } } // good player nC++; oNearby=GetNearestCreature(CREATURE_TYPE_IS_ALIVE,TRUE,OBJECT_SELF,nC,CREATURE_TYPE_PLAYER_CHAR,PLAYER_CHAR_IS_PC); fDist=GetDistanceBetween(oNearby,OBJECT_SELF); } // cold chills } // stay buried else { // SetLocalInt(oTarget,"nBuried",FALSE); DestroyObject(OBJECT_SELF); } // }