Create utilhack.lua
This commit is contained in:
parent
74b74b9c58
commit
3b180de32d
|
|
@ -0,0 +1,269 @@
|
|||
--[[
|
||||
The following legacy code is created by blocco.
|
||||
|
||||
It contains many comments for documentation purposes.
|
||||
It is to be used for educational purposes.
|
||||
|
||||
This code is from RBXPri (Blocco Edition).
|
||||
This file is "tools\utilhack.lua".
|
||||
--]]
|
||||
|
||||
local UtilityHack = Instance.new("HopperBin");
|
||||
UtilityHack.Name = "UtilHack";
|
||||
UtilityHack.TextureId = "rbxasset://rpui//images//utilhack.png"
|
||||
local Code = Instance.new("LocalScript");
|
||||
Code.Name = "lua";
|
||||
Code.Source = [===[local hovBox = Instance.new("SelectionBox");
|
||||
hovBox.Name = "UtilityHackBox";
|
||||
hovBox.Color = BrickColor.new("White");
|
||||
hovBox.Visible = false;
|
||||
hovBox.Parent = script.Parent;
|
||||
|
||||
local UtilityHackGui = Instance.new("ScreenGui", script.Parent);
|
||||
UtilityHackGui.Name = "UtilityHackGui";
|
||||
|
||||
local selectedMode="Anchor Toggle";
|
||||
|
||||
local modes={
|
||||
["Anchor Toggle"]=function(mouse)
|
||||
local prt = mouse.Target;
|
||||
prt.Anchored = not prt.Anchored;
|
||||
end;
|
||||
["Random Color"]=function(mouse)
|
||||
local prt = mouse.Target;
|
||||
prt.BrickColor = BrickColor.Random();
|
||||
end;
|
||||
["Spawn Bomb"]=function(mouse)
|
||||
local exploded=false;
|
||||
local prt=Instance.new("Part");
|
||||
local eVal = Instance.new("BoolValue");
|
||||
eVal.Name = "ForceExplode";
|
||||
eVal.Parent = prt;
|
||||
prt.Name = "Bomb";
|
||||
prt.BrickColor = BrickColor.new("Bright red");
|
||||
prt.Reflectance = 0.7;
|
||||
prt.Size = Vector3.new(2, 2, 2);
|
||||
prt.Shape = "Ball";
|
||||
prt.Locked=true;
|
||||
prt.TopSurface = "Smooth";
|
||||
prt.BottomSurface = "Smooth";
|
||||
prt.CFrame = mouse.Hit + Vector3.new(0, 6, 0)
|
||||
prt.Parent = workspace;
|
||||
local explosion = Instance.new("Explosion")
|
||||
explosion.BlastRadius = 10;
|
||||
explosion.BlastPressure = 10e5;
|
||||
local n=0;
|
||||
for i = 2, 12 do n = n + 6/(i^2) end
|
||||
game:service("Debris"):AddItem(prt, n+0.45)
|
||||
for i = 2, 12 do
|
||||
if eVal.Value then exploded = true; game:service("Debris"):AddItem(prt, 0) explosion.Position = prt.Position; explosion.Parent = workspace; break end;
|
||||
prt.Reflectance = 1-prt.Reflectance;
|
||||
wait(6/i^2);
|
||||
end
|
||||
explosion.Position = prt.Position;
|
||||
explosion.Hit:connect(function(p)
|
||||
if p:FindFirstChild("ForceExplode") and p.Name == "Bomb" then
|
||||
p.ForceExplode.Value = true;
|
||||
end
|
||||
end)
|
||||
if prt.Parent and not exploded then explosion.Parent = workspace; prt.CanCollide = false; prt.Transparency = 1 end
|
||||
end;
|
||||
--[==[["Spawn Mega Bomb"]=function(mouse)
|
||||
local exploded=false;
|
||||
local prt=Instance.new("Part");
|
||||
local eVal = Instance.new("BoolValue");
|
||||
eVal.Name = "ForceExplode";
|
||||
eVal.Parent = prt;
|
||||
prt.Name = "Bomb";
|
||||
prt.BrickColor = BrickColor.new("Bright red");
|
||||
prt.Reflectance = 0.7;
|
||||
prt.Size = Vector3.new(12, 12, 12);
|
||||
prt.Shape = "Ball";
|
||||
prt.TopSurface = "Smooth";
|
||||
prt.BottomSurface = "Smooth";
|
||||
prt.CFrame = mouse.Hit + Vector3.new(0, 16, 0)
|
||||
prt.Locked=true;
|
||||
prt.Parent = workspace;
|
||||
local explosion = Instance.new("Explosion")
|
||||
explosion.BlastRadius = 150;
|
||||
explosion.BlastPressure = 10e8;
|
||||
for i = 2, 12 do
|
||||
if eVal.Value then exploded = true; game:service("Debris"):AddItem(prt, 0) explosion.Position = prt.Position; explosion.Parent = workspace; break end;
|
||||
prt.Reflectance = 1-prt.Reflectance;
|
||||
wait(6/i^2);
|
||||
end
|
||||
game:service("Debris"):AddItem(prt, 0)
|
||||
explosion.Position = prt.Position;
|
||||
explosion.Hit:connect(function(p)
|
||||
if p:FindFirstChild("ForceExplode") and p.Name == "Bomb" then
|
||||
p.ForceExplode.Value = true;
|
||||
end
|
||||
end)
|
||||
if prt.Parent and not exploded then explosion.Parent = workspace; end
|
||||
end;]==]--
|
||||
["Collide Toggle"]=function(mouse)
|
||||
mouse.Target.CanCollide = not mouse.Target.CanCollide;
|
||||
end;
|
||||
}
|
||||
|
||||
local function createDropDownUtility(list, sel, onsel)
|
||||
|
||||
sel = sel or 1;
|
||||
local width = 160; -- these can be changed to change the look of it
|
||||
local height = 24;
|
||||
local gapSize = 2;
|
||||
|
||||
local utilityColor = Color3.new(0.85, 0.85, 0.85);
|
||||
local utilityBorderColor = Color3.new(0, 0, 0);
|
||||
local inputColor = Color3.new(1, 1, 1);
|
||||
local fontColor = Color3.new(0, 0, 0);
|
||||
|
||||
local btnColor = Color3.new(0.9, 0.9, 0.9);
|
||||
local btnColorHov = Color3.new(0.95, 0.95, 0.95);
|
||||
local btnColorDn = Color3.new(0.65, 0.65, 0.65);
|
||||
|
||||
local btnColorSel = Color3.new(0.7, 0.7, 1);
|
||||
local btnColorHovSel = Color3.new(0.75, 0.75, 1);
|
||||
local btnColorDnSel = Color3.new(0.45, 0.45, 0.8);
|
||||
|
||||
local function createButton(nam, sel)
|
||||
local btn=Instance.new("TextButton");
|
||||
btn.AutoButtonColor = false;
|
||||
btn.Name = nam;
|
||||
btn.Font = sel and "ArialBold" or "Arial";
|
||||
btn.FontSize = "Size14";
|
||||
btn.TextColor3 = fontColor;
|
||||
btn.BackgroundColor3 = sel and btnColorSel or btnColor;
|
||||
btn.BorderColor3 = utilityBorderColor;
|
||||
|
||||
btn.MouseEnter:connect(function()
|
||||
btn.BackgroundColor3 = sel and btnColorHovSel or btnColorHov;
|
||||
end)
|
||||
btn.MouseLeave:connect(function()
|
||||
btn.BackgroundColor3 = sel and btnColorSel or btnColor;
|
||||
end)
|
||||
btn.MouseButton1Down:connect(function()
|
||||
btn.BackgroundColor3 = sel and btnColorDnSel or btnColorDn;
|
||||
end)
|
||||
btn.MouseButton1Up:connect(function()
|
||||
btn.BackgroundColor3 = sel and btnColorSel or btnColor;
|
||||
end)
|
||||
return btn;
|
||||
end
|
||||
|
||||
local holder = Instance.new("Frame");
|
||||
holder.Name = "DropDownList";
|
||||
holder.Size = UDim2.new(0, width, 0, height);
|
||||
holder.BackgroundColor3 = utilityColor;
|
||||
holder.BorderColor3 = Color3.new(0, 0, 0);
|
||||
|
||||
local frm=Instance.new("Frame");
|
||||
frm.Name = "LabelHolder";
|
||||
frm.Size = UDim2.new(1, -(gapSize*2), 0, height-(gapSize*2))--UDim2.new(0, width-(gapSize*3 + height-(gapSize*2)), 0, height-(gapSize*2));
|
||||
frm.Position = UDim2.new(0, gapSize, 0, gapSize);
|
||||
frm.BackgroundColor3 = inputColor; -- cheating since this isn't an input
|
||||
frm.BorderColor3 = utilityBorderColor;
|
||||
frm.Parent = holder;
|
||||
|
||||
local lbl = Instance.new("TextLabel");
|
||||
lbl.TextXAlignment = "Left";
|
||||
lbl.Name = "Label";
|
||||
lbl.Font = "ArialBold";
|
||||
lbl.FontSize = "Size14";
|
||||
lbl.Size = UDim2.new(1, -height, 1, -(gapSize*2));
|
||||
lbl.Position = UDim2.new(0, gapSize, 0, gapSize);
|
||||
lbl.Text = list[sel] and sel or "Select an item";
|
||||
lbl.TextColor3 = fontColor;
|
||||
lbl.BackgroundColor3 = inputColor; -- cheating since this isn't an input
|
||||
lbl.BorderColor3 = utilityBorderColor;
|
||||
lbl.BorderSizePixel = 0;
|
||||
lbl.BackgroundTransparency = 1;
|
||||
lbl.Parent = frm;
|
||||
|
||||
local btn=Instance.new("ImageButton");
|
||||
btn.Name = "DropDownButton";
|
||||
btn.AutoButtonColor = false;
|
||||
btn.Image = "rbxasset://rpui//images//dropdown_down.png"
|
||||
btn.BorderSizePixel=0;
|
||||
btn.BackgroundTransparency = 1;
|
||||
btn.Size = UDim2.new(0, height-(gapSize*2), 0, height-(gapSize*2));
|
||||
btn.Position = UDim2.new(1, -height+gapSize, 0, 0);
|
||||
btn.Parent = frm;
|
||||
|
||||
local lstObj = Instance.new("Frame");
|
||||
lstObj.BackgroundColor3 = utilityColor;
|
||||
lstObj.BorderColor3 = utilityBorderColor;
|
||||
lstObj.Name = "ListObject";
|
||||
lstObj.Visible=false;
|
||||
lstObj.Position = UDim2.new(0, 0, 0, height+gapSize);
|
||||
lstObj.Parent = holder;
|
||||
|
||||
updateList = function()
|
||||
local objs=0;
|
||||
for i, v in pairs(lstObj:GetChildren()) do
|
||||
v.Parent = nil;
|
||||
end
|
||||
for i, v in pairs(list) do
|
||||
objs=objs+1;
|
||||
local objBtn=createButton("object_" .. i, sel == i);
|
||||
objBtn.Size = UDim2.new(0, width-(gapSize*3 + height-(gapSize*2)), 0, height-(gapSize*2));
|
||||
objBtn.Position = UDim2.new(0, gapSize, 0, (height-gapSize)*(objs-1) + gapSize);
|
||||
objBtn.Text = tostring(i);
|
||||
objBtn.Parent = lstObj;
|
||||
objBtn.MouseButton1Click:connect(function()
|
||||
sel = i;
|
||||
onsel(i);
|
||||
lstObj.Visible=false;
|
||||
btn.Image = "rbxasset://rpui//images//dropdown_down.png"
|
||||
lbl.Text = tostring(i);
|
||||
updateList();
|
||||
end)
|
||||
end
|
||||
lstObj.Size = UDim2.new(0, width-(gapSize + height-(gapSize*2)), 0, (height-gapSize)*objs + gapSize);
|
||||
end
|
||||
|
||||
btn.MouseButton1Click:connect(function()
|
||||
lstObj.Visible = not lstObj.Visible;
|
||||
btn.Image = lstObj.Visible and "rbxasset://rpui//images//dropdown_up.png" or "rbxasset://rpui//images//dropdown_down.png"
|
||||
updateList();
|
||||
end)
|
||||
|
||||
return holder;
|
||||
|
||||
end
|
||||
|
||||
local function onDropDownSelect(obj)
|
||||
selectedMode = obj;
|
||||
end
|
||||
|
||||
local dropDownUtility = createDropDownUtility(modes, "Anchor Toggle", onDropDownSelect);
|
||||
dropDownUtility.Position = UDim2.new(1, -164, 0, 100)
|
||||
dropDownUtility.Parent = UtilityHackGui;
|
||||
|
||||
script.Parent.Selected:connect(function(ms)
|
||||
repeat wait() until game.Players.LocalPlayer:FindFirstChild("PlayerGui");
|
||||
UtilityHackGui.Parent = game.Players.LocalPlayer.PlayerGui;
|
||||
hovBox.Parent = game.Players.LocalPlayer.PlayerGui;
|
||||
hovBox.Visible = true;
|
||||
hovBox.Adornee = nil;
|
||||
ms.Move:connect(function()
|
||||
if ms.Target and ms.Target:IsA("BasePart") and not ms.Target.Locked then
|
||||
hovBox.Adornee = ms.Target;
|
||||
else
|
||||
hovBox.Adornee = nil;
|
||||
end
|
||||
end)
|
||||
ms.Button1Down:connect(function()
|
||||
if ms.Target and ms.Target:IsA("BasePart") and not ms.Target.Locked then coroutine.resume(coroutine.create(function() modes[selectedMode or "Anchor Toggle"](ms) end)); end
|
||||
end)
|
||||
end)
|
||||
|
||||
script.Parent.Deselected:connect(function()
|
||||
hovBox.Adornee = nil;
|
||||
hovBox.Visible = false;
|
||||
hovBox.Parent = script.Parent;
|
||||
UtilityHackGui.Parent = script.Parent;
|
||||
end)]===]
|
||||
Code.Parent = UtilityHack;
|
||||
|
||||
return UtilityHack;
|
||||
Loading…
Reference in New Issue