void main() { object oMachine=OBJECT_SELF; int nStatus=GetLocalInt(oMachine,"nStatus"); if (nStatus<1) { SpeakString("Error - please report to DM"); return; } int nHP=GetCurrentHitPoints(OBJECT_SELF); object oMob; int nMobsexist=0; string sMob="sMob"; string sCheckstring; int nRandom; string sMobtype; int nMobnumber=1; string sWP="jw_machine_sp_wp"; int nIdx; object oBox; // check to see if our mob already exists if (GetIsObjectValid(GetLocalObject(OBJECT_SELF,"oMob"))) { // if one is valid, set nMobsexist to 1 nMobsexist=1; } // if the old mob still exists, return if (nMobsexist==1) { return; } /// ok, we have no mobs in existence and our status is one or more // before we do anything else, check if our status is five for the first time int nDone=GetLocalInt(OBJECT_SELF,"nDone"); if ((nStatus==5)&&(nDone!=1)) { // make the machine killeable SetPlotFlag(oMachine,0); ApplyEffectToObject(DURATION_TYPE_PERMANENT,EffectSpellImmunity(SPELL_ALL_SPELLS),OBJECT_SELF); // create the lights ApplyEffectToObject(DURATION_TYPE_PERMANENT,EffectVisualEffect(VFX_DUR_ANTI_LIGHT_10),oMachine); for(nIdx = 1; nIdx <= 4; nIdx++) { sCheckstring=sWP+IntToString(nIdx); oBox=CreateObject(OBJECT_TYPE_PLACEABLE,"jw_br_dun_box",GetLocation(GetWaypointByTag(sCheckstring))); ApplyEffectToObject(DURATION_TYPE_PERMANENT,EffectVisualEffect(VFX_DUR_ANTI_LIGHT_10),oBox); } SoundObjectPlay(GetObjectByTag("jw_br_dun4_snd")); SetLocalInt(OBJECT_SELF,"nDone",1); } switch (nStatus) { case 1: sMobtype="jw_bandead_lord"; break; case 2: sMobtype="jw_baneguard_lord"; break; case 3: sMobtype="jw_blood_fiend"; break; case 4: sMobtype="nightwalker"; break; case 5: sMobtype="jw_deathbringer2"; break; } /// create our mob // decide which waypoint to put it on nRandom=d4(); sCheckstring=sWP+IntToString(nRandom); oMob=CreateObject(OBJECT_TYPE_CREATURE,sMobtype,GetLocation(GetWaypointByTag(sCheckstring))); //// set the mob as our local mob SetLocalObject(OBJECT_SELF,"oMob",oMob); // increase our status if it is not already 5 if (nStatus<5) { nStatus++; SetLocalInt(oMachine,"nStatus",nStatus); } // apply an effect ApplyEffectToObject(DURATION_TYPE_TEMPORARY,EffectVisualEffect(VFX_BEAM_EVIL),oMob,3.0); }