// Place in the OnFailToOpen event for the door #include "prc_class_const" void main() { object oPC = GetClickingObject(); int nPCClass1 = GetClassByPosition(1, oPC); int nPCClass2 = GetClassByPosition(2, oPC); int nPCClass3 = GetClassByPosition(3, oPC); int nPCClass4 = GetClassByPosition(4, oPC); int nPCClass5 = GetClassByPosition(5, oPC); int nPCClass6 = GetClassByPosition(6, oPC); int nPCClass7 = GetClassByPosition(7, oPC); int nPCClass8 = GetClassByPosition(8, oPC); int iRogue = GetLevelByClass(CLASS_TYPE_ROGUE, oPC) + GetLevelByClass(CLASS_TYPE_SCOUT, oPC) + GetLevelByClass(CLASS_TYPE_BEGUILER, oPC) + GetLevelByClass(CLASS_TYPE_NINJA, oPC) + GetLevelByClass(CLASS_TYPE_FACTOTUM, oPC) + GetLevelByClass(CLASS_TYPE_ASSASSIN, oPC) + GetLevelByClass(CLASS_TYPE_ARCTRICK, oPC) + GetLevelByClass(CLASS_TYPE_HANDOTWM, oPC) + GetLevelByClass(CLASS_TYPE_NIGHTSHADE, oPC) + GetLevelByClass(CLASS_TYPE_NINJA_SPY, oPC) + GetLevelByClass(CLASS_TYPE_SHADOWLORD, oPC) + GetLevelByClass(CLASS_TYPE_SHADOW_SUN_NINJA, oPC) + GetLevelByClass(CLASS_TYPE_SHADOW_THIEF_AMN, oPC) + GetLevelByClass(CLASS_TYPE_UNSEEN_SEER, oPC) + GetLevelByClass(CLASS_TYPE_PSYCHIC_ROGUE, oPC); if (!GetIsPC(oPC)) { return; } else if (iRogue > 0) { FloatingTextStringOnCreature("The door unlocks itself and opens.", oPC); SetLocked(OBJECT_SELF, FALSE); ActionOpenDoor(OBJECT_SELF); DelayCommand(6.0f, ActionCloseDoor(OBJECT_SELF)); DelayCommand(6.2f, SetLocked(OBJECT_SELF, TRUE)); } else { FloatingTextStringOnCreature("The door is locked. You must be a rogue to use this door.", oPC); } }