#include "rd_spawnmobs" void HouseLevelUp(object oCreature, int iLevel); void main() { object oSpawnPoint; object oCreature; location lLoc; string sWPTag; string sTreasureTag; string sHouseTag; int iLock; int iMod; int iRandom; int iLevel; int iHouse; string sHouse; if (GetLocalInt(OBJECT_SELF,"EN4Entered") == 0) { DelayCommand(10.0f,SetLocalInt(OBJECT_SELF,"EN4Used",1)); SetLocalInt(OBJECT_SELF,"EN4Entered",1); iHouse = Random(3)+1; if (iHouse == 1 && GetLocalInt(GetModule(),"House1InUse") == 1) iHouse = 2; if (iHouse == 2 && GetLocalInt(GetModule(),"House2InUse") == 1) iHouse = 3; if (iHouse == 3 && GetLocalInt(GetModule(),"House3InUse") == 1) iHouse = 3; sHouse = "House" + IntToString(iHouse); if (iHouse == 1) SetLocalInt(GetModule(),"House1InUse",1); if (iHouse == 2) SetLocalInt(GetModule(),"House2InUse",1); if (iHouse == 3) SetLocalInt(GetModule(),"House3InUse",1); sTreasureTag = sHouse + "_Treasure" + IntToString(Random(2)+1); SetLocalInt(GetObjectByTag(sHouse + "_Treasure1"),"Treasure",0); SetLocalInt(GetObjectByTag(sHouse + "_Treasure2"),"Treasure",0); SetLocalInt(GetObjectByTag(sHouse + "_Treasure1"),"TreasureMod",0); SetLocalInt(GetObjectByTag(sHouse + "_Treasure2"),"TreasureMod",0); SetLocalInt(GetObjectByTag(sTreasureTag),"Treasure",1); iLock=GetLockUnlockDC(OBJECT_SELF); iMod = 0; if (iLock > 20 && iLock < 31) iMod = 1; else if (iLock >30 && iLock < 35) iMod = 2; else if (iLock < 40) iMod = 4; else iMod = 6; SetLocalInt(GetObjectByTag(sTreasureTag),"TreasureMod",iMod); sWPTag = sHouse + "_WP" + IntToString(Random(4)+1); lLoc = GetLocation(GetObjectByTag(sWPTag)); iLevel = GetHitDice(GetEnteringObject()); iRandom = Random(8)+1; if (iRandom<3) { oCreature=CreateObject(OBJECT_TYPE_CREATURE,"en4_comhostile1",lLoc,FALSE,"HouseSpawn"); } else if (iRandom == 3) { oCreature=CreateObject(OBJECT_TYPE_CREATURE,"en4_hostilewiz",lLoc,FALSE,"HouseSpawn"); HouseLevelUp(oCreature,iLevel); } else if (iRandom == 4) { oCreature=CreateObject(OBJECT_TYPE_CREATURE,"en4_hostilefig",lLoc,FALSE,"HouseSpawn"); HouseLevelUp(oCreature,iLevel); } else if (iRandom == 5) { oCreature=CreateObject(OBJECT_TYPE_CREATURE,"en4_hostilemonk",lLoc,FALSE,"HouseSpawn"); HouseLevelUp(oCreature,iLevel); } else if (iRandom == 6) { oCreature=CreateObject(OBJECT_TYPE_CREATURE,"en4_hostileclr",lLoc,FALSE,"HouseSpawn"); HouseLevelUp(oCreature,iLevel); } else if (iRandom == 7) { if (Random(2)==0) oCreature=CreateObject(OBJECT_TYPE_CREATURE,"en4_hostilefig",lLoc,FALSE,"HouseSpawn"); else oCreature=CreateObject(OBJECT_TYPE_CREATURE,"en4_hostilemonk",lLoc,FALSE,"HouseSpawn"); HouseLevelUp(oCreature,iLevel); oCreature=CreateObject(OBJECT_TYPE_CREATURE,"en4_hostileclr",lLoc,FALSE,"HouseSpawn"); HouseLevelUp(oCreature,iLevel); } else if (iRandom == 8) { if (Random(2)==0) oCreature=CreateObject(OBJECT_TYPE_CREATURE,"en4_hostilefig",lLoc,FALSE,"HouseSpawn"); else oCreature=CreateObject(OBJECT_TYPE_CREATURE,"en4_hostilemonk",lLoc,FALSE,"HouseSpawn"); HouseLevelUp(oCreature,iLevel); oCreature=CreateObject(OBJECT_TYPE_CREATURE,"en4_hostilewiz",lLoc,FALSE,"HouseSpawn"); HouseLevelUp(oCreature,iLevel); } SetActionMode(oCreature,ACTION_MODE_DETECT,TRUE); SetLocalString(GetEnteringObject(),"EN4Return",GetTag(OBJECT_SELF)); SetLocalInt(GetEnteringObject(),"EN4House",iHouse); sHouseTag = "WP_" + sHouse; SetLocalString(OBJECT_SELF,"SpawnTo",sHouseTag); oSpawnPoint = GetObjectByTag(sHouseTag); AssignCommand(GetEnteringObject(),JumpToLocation(GetLocation(oSpawnPoint))); } else { if (GetLocalInt(OBJECT_SELF,"EN4Used") == 0) { sHouseTag= GetLocalString(OBJECT_SELF,"SpawnTo"); oSpawnPoint = GetObjectByTag(sHouseTag); AssignCommand(GetEnteringObject(),JumpToLocation(GetLocation(oSpawnPoint))); } else { SendMessageToPC(GetEnteringObject(),"This house has already been entered."); } } } void HouseLevelUp(object oCreature, int iLevel) { int iLevelUp; iLevelUp = Random(5)-2; iLevelUp = iLevelUp + iLevel; if (iLevelUp < 1) iLevelUp = 1; LevelMob(oCreature,iLevelUp); EquipMob(oCreature); }