Advertisement
FXDuke

Roblox Button Maker 2.0

Sep 18th, 2022 (edited)
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.38 KB | None | 0 0
  1. -- Credit: FXDuke#9178
  2. -- How to use:
  3. -- local a = button(frame_variable)
  4. -- a.MouseButton1Down:Connect(function() can be mousebutton1/2down or mouseenter/left
  5. --  print("Mouse 1 Got clicked!")
  6. -- end)
  7. function button(p1)
  8.     p1.Name = (p1.Name~=p1.ClassName) and p1.Name or (p1.Name .. math.random());
  9.     local UIS = game:GetService("UserInputService");
  10.     local _M = game.Players.LocalPlayer:GetMouse();
  11.     local p2 = p1.AbsolutePosition;
  12.     local p3 = p1.Size;
  13.     local p4,p5 = p2.X,p2.Y;
  14.     local p6,p7 = p4+p3.Height.Offset,p5+p3.Width.Offset;
  15.     p8 = {
  16.         Entered = false;
  17.         Fired = false;
  18.         MouseButton1Down = {
  19.             __Connected = {};
  20.             Connect = function(...)
  21.                 local p2 = {...};
  22.                 table.insert(p8.MouseButton1Down.__Connected, p2[2]);
  23.             end;
  24.         };
  25.         MouseButton2Down = {
  26.             __Connected = {};
  27.             Connect = function(...)
  28.                 local p2 = {...};
  29.                 table.insert(p8.MouseButton2Down.__Connected, p2[2]);
  30.             end;
  31.         };
  32.         MouseEnter = {
  33.             __Connected = {};
  34.             Connect = function(...)
  35.                 local p2 = {...};
  36.                 table.insert(p8.MouseEnter.__Connected, p2[2]);
  37.             end;
  38.         };
  39.         MouseLeft = {
  40.             __Connected = {};
  41.             Connect = function(...)
  42.                 local p2 = {...};
  43.                 table.insert(p8.MouseLeft.__Connected, p2[2]);
  44.             end;
  45.         };
  46.     };
  47.     task.spawn(function()
  48.         while task.wait() do
  49.             if p1.Parent:FindFirstChild(p1.Name) then
  50.                 if p1.Visible and _M.X>=p4 and _M.Y>=p5 and _M.X<=p6 and _M.Y<=p7 then
  51.                     for _,p9 in pairs(UIS:GetMouseButtonsPressed()) do
  52.                         if p8.Fired == false then
  53.                             if p9.UserInputType == Enum.UserInputType.MouseButton1 then
  54.                                 for _,p10 in pairs(p8.MouseButton1Down.__Connected) do
  55.                                     p8.Fired = true;
  56.                                     p10();
  57.                                 end;
  58.                             end;
  59.                             if p9.UserInputType == Enum.UserInputType.MouseButton2 then
  60.                                 for _,p10 in pairs(p8.MouseButton2Down.__Connected) do
  61.                                     p8.Fired = true;
  62.                                     p10();
  63.                                 end;
  64.                             end;
  65.                         end;
  66.                     end;
  67.                     p8.Fired = if (#UIS:GetMouseButtonsPressed()==0) then false else true;
  68.                     if p8.Entered == false then
  69.                         p8.Entered = true;
  70.                         for _,p9 in pairs(p8.MouseEnter.__Connected) do
  71.                             p9();
  72.                         end;
  73.                     end;
  74.                 else
  75.                     p8.Fired = false;
  76.                     if p8.Entered == true then
  77.                         p8.Entered = false;
  78.                         for _,p9 in pairs(p8.MouseLeft.__Connected) do
  79.                             p9();
  80.                         end;
  81.                     end;
  82.                 end;
  83.             else
  84.                 break;
  85.             end;
  86.         end;
  87.     end);
  88.     return p8;
  89. end;
  90.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement