Mmk, so I got this script to work, just not the way I want it to. Basically, when you hover over an NPC, a grey SelectionBox will appear around it, and if you click on it, a red SelectionBox will appear around it. However, when you already have a red SelectionBox around an NPC and you scroll over a second NPC, the grey SelectionBox goes over it fine, however clicking on it does make the red SelectionBox appear. If you see any variables that are not used, that's because I plan to expand this script later on. Anyways, here is all the code involved with it:
Setting Player values:
game.Players.PlayerAdded:connect(function(plr) local character = plr.Character if not character or character.Parent == nil then -- what for character character = plr.CharacterAdded:wait() end local val = Instance.new("BoolValue",character) -- set all variables needed val.Name = "player" local val2 = Instance.new("BoolValue",character) val2.Name = "combat" local val3 = Instance.new("BoolValue",character) val3.Name = "talking" local val4 = Instance.new("BoolValue",character) val4.Name = "reading" end)
mouse script:
local player = game.Players.LocalPlayer local character = player.Character local mouse = player:GetMouse() if not character or character.Parent == nil then character = player.CharacterAdded:wait() end local selection = Instance.new("SelectionBox", player.PlayerGui) selection.Color = BrickColor.new("Medium stone grey") local cmbselection = Instance.new("SelectionBox", player.PlayerGui) cmbselection.Color = BrickColor.new("Bright red") local talkselection = Instance.new("SelectionBox", player.PlayerGui) talkselection.Color = BrickColor.new("Bright green") local bookselection = Instance.new("SelectionBox", player.PlayerGui) bookselection.Color = BrickColor.new("Bright blue") mouse.Move:connect(function() mouse.Icon = "http://www.roblox.com/asset/?id=184642130" local target = mouse.Target local combat = character.combat local plr = character.player local talking = character.talking local reading = character.reading if target and target.Parent:IsA("Model")then local hum = target.Parent:FindFirstChild("Humanoid") local p = target.Parent:FindFirstChild("player") local enemy = target.Parent:FindFirstChild("enemy") local friend = target.Parent:FindFirstChild("friend") local book = target.Parent:FindFirstChild("book") if hum and enemy and p == nil and combat.Value == false then selection.Adornee = target.Parent local targetpos = target.Parent.Torso.Position local distance = player:DistanceFromCharacter(targetpos) mouse.Icon = "http://www.roblox.com/asset/?id=165194824" mouse.Button1Down:connect(function() if distance < 40 and combat.Value == false then combat.Value = true selection.Adornee = nil cmbselection.Adornee = target.Parent end end) elseif hum and enemy and p == nil and combat.Value == true and cmbselection.Adornee ~= target.Parent then local targetpos = target.Parent.Torso.Position local distance = player:DistanceFromCharacter(targetpos) selection.Adornee = target.Parent mouse.Icon = "http://www.roblox.com/asset/?id=165194824" mouse.Button1Down:connect(function() if distance < 40 and combat.Value == true then selection.Adornee = nil cmbselection.Adornee = target.Parent end end) elseif p or hum == nil or enemy == nil or friend == nil or book == nil then mouse.Icon = "http://www.roblox.com/asset/?id=184642130" selection.Adornee = nil elseif p~= nil and hum and enemy and cmbselection.Adornee == target.Parent then mouse.Icon = "http://www.roblox.com/asset/?id=165194824" end else mouse.Icon = "http://www.roblox.com/asset/?id=184642130" selection.Adornee = nil end end)
I apologize if it's sloppy or inefficient, I just can't figure out this problem right now, I'd really appreciate it if you could help.