package script.ai; import script.library.ai_lib; import script.library.attrib; import script.library.utils; import script.obj_id; public class monster extends script.base_script { public monster() { } public static final String ALERT_VOLUME_NAME = "alertTriggerVolume"; private static final boolean AI_TRIGGER_VOLUMES_DISABLED = utils.checkConfigFlag("GameServer", "disableAITriggerVolumes"); public int OnAttach(obj_id self) throws InterruptedException { setAttributeInterested(self, attrib.NPC); if (!AI_TRIGGER_VOLUMES_DISABLED) { createTriggerVolume(ALERT_VOLUME_NAME, ai_lib.aiGetApproachTriggerRange(self), true); } return SCRIPT_CONTINUE; } public int OnTriggerVolumeEntered(obj_id self, String volumeName, obj_id breacher) throws InterruptedException { if (hasObjVar(breacher, "gm")) { return SCRIPT_CONTINUE; } if (!isMob(breacher)) { return SCRIPT_CONTINUE; } if (ai_lib.isInCombat(self)) { return SCRIPT_CONTINUE; } if (breacher == self) { return SCRIPT_CONTINUE; } if (ai_lib.isAiDead(self) || ai_lib.isAiDead(breacher)) { return SCRIPT_CONTINUE; } if (!ai_lib.isNpc(breacher) || !ai_lib.isAndroid(breacher)) { return SCRIPT_CONTINUE; } startCombat(self, breacher); return SCRIPT_CONTINUE; } }