FushigiBot Posted August 9, 2022 Share Posted August 9, 2022 (edited) Background SF has a Is Interacting and Is Not Interacting checks. However, these are general checks and only come true if an (any) npc is interacting with the player. It doesn't take into account whether the distance you're trying to check comes from that interacting npc or whether the action you want to perform will be performed on the interacting npc. Having the following would be extremely useful for making more advanced scripts. Methods: If Player Distance to Entity <-- Add isInteracting filter Interact with NPC <-- Add isInteracting filter If NPC Overhead Prayer is <-- Add isInteracting filter If NPC Overhead Prayer is not <-- Add isInteracting filter If NPC Health percent is <-- Ad isInteracting filter isInteracting(Character<?> character) Returns whether this character is facing/interacting with the specified character. Why is this useful? There are certain actions in osrs that require for you to take an action based on the interacting npc rather that any npc. This includes trying to keep a safe distance from an npc in a room full of other, similar npcs (Undead Druids, Brutal Dragons, etc.). Switching to correct attack style (Demonic Gorillas). Also, when creating a slayer script so that the slayer items such as bag of salt, ice, etc. are used in the interacting npc rather than any npc in the room. How can it be used? Moving away from melee range in Undead Druids: [0, Variables, getBoolean, 1:shouldMoveAway, 3:false] [0, MyPlayer, getDistanceTo, 1:Undead Druid, 1:NPC, 1:<=, 2:1, 3:true] (isInteracting Filter) [0, Variables, editBoolean, 1:shouldMoveAway, 3:true] Changing to the correct weapon in Demonic Gorillas [1, NPC, getPrayerIcon, {true}, 1:Demonic Gorilla, 1:PROTECT_FROM_MELEE] (isInteracting Filter) [1, Variables, editString, 1:Weapon Type, 1:enableRangeWeapon] Interacting with the correct NPC during slayer: [2, Variables, getBoolean, 1:shouldUseSlayerItem, 3:false] [2, NPC, getCurrentHealthPercent, 1:Rock Slug, 2:10, 1:<=] (isInteracting Filter) [2, Variables, editBoolean, 1:shouldUseSlayerItem, 3:true] [3, Variables, getBoolean, 1:shouldUseSlayerItem, 3:true] [3, NPC, getCurrentHealthPercent, 1:Rock slug, 2:11, 1:>=] (isInteracting Filter) [3, Variables, addOr] [3, Variables, getBoolean, 1:shouldUseSlayerItem, 3:true] [3, MyPlayer, myPlayerIsInteracting, {false}] [3, Variables, editBoolean, 1:shouldUseSlayerItem, 3:false] [4, Variables, getBoolean, 1:shouldUseSlayerItem, 3:true] [4, Inventory, interactWith, 1:Bag of salt, 1:Use] [4, NPC, interactWith, 1:Rock slug, 1:Use, 3:true, 3:false, 3:true, 3:false, 3:false] (isInteracting Filter) Edited August 9, 2022 by FushigiBot 2 Quote Link to comment Share on other sites More sharing options...