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.
