Advertisement
idkwhatiam

punch boi

May 13th, 2019
344
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 8.57 KB | None | 0 0
  1. if game:GetService("RunService"):IsClient()then error("Please run as a server script. Use h/ instead of hl/.")end;print("FE Compatibility: by WaverlyCole");InternalData = {}
  2. do
  3.     script.Parent = owner.Character
  4.     local Event = Instance.new("RemoteEvent");Event.Name = "UserInput"
  5.     local function NewFakeEvent()
  6.         local Bind = Instance.new("BindableEvent")
  7.         local Fake;Fake = {Connections = {},
  8.         fakeEvent=true;
  9.         Connect=function(self,Func)
  10.             Bind.Event:connect(Func)
  11.             self.Connections[Bind] = true
  12.             return setmetatable({Connected = true},{
  13.             __index = function (self,Index)
  14.                 if Index:lower() == "disconnect" then
  15.                     return function() Fake.Connections[Bind] = false;self.Connected = false end
  16.                 end
  17.                 return Fake[Index]
  18.             end;
  19.             __tostring = function() return "Connection" end;
  20.         })
  21.         end}
  22.         Fake.connect = Fake.Connect;return Fake;
  23.     end
  24.     local Mouse = {Target=nil,Hit=CFrame.new(),KeyUp=NewFakeEvent(),KeyDown=NewFakeEvent(),Button1Up=NewFakeEvent(),Button1Down=NewFakeEvent()}
  25.     local UserInputService = {InputBegan=NewFakeEvent(),InputEnded=NewFakeEvent()}
  26.     local ContextActionService = {Actions={},BindAction = function(self,actionName,Func,touch,...)
  27.         self.Actions[actionName] = Func and {Name=actionName,Function=Func,Keys={...}} or nil
  28.     end};ContextActionService.UnBindAction = ContextActionService.BindAction
  29.     local function TriggerEvent(self,Event,...)
  30.         local Trigger = Mouse[Event]
  31.         if Trigger and Trigger.fakeEvent and Trigger.Connections then
  32.             for Connection,Active in pairs(Trigger.Connections) do if Active then Connection:Fire(...) end end
  33.         end
  34.     end
  35.     Mouse.TrigEvent = TriggerEvent;UserInputService.TrigEvent = TriggerEvent
  36.     Event.OnServerEvent:Connect(function(FiredBy,Input)
  37.         if FiredBy.Name ~= owner.Name then return end
  38.         if Input.MouseEvent then
  39.             Mouse.Target = Input.Target;Mouse.Hit = Input.Hit
  40.         else
  41.             local Begin = Input.UserInputState == Enum.UserInputState.Begin
  42.             if Input.UserInputType == Enum.UserInputType.MouseButton1 then return Mouse:TrigEvent(Begin and "Button1Down" or "Button1Up") end
  43.             for _,Action in pairs(ContextActionService.Actions) do
  44.                 for _,Key in pairs(Action.Keys) do if Key==Input.KeyCode then Action.Function(Action.Name,Input.UserInputState,Input) end end
  45.             end
  46.             Mouse:TrigEvent(Begin and "KeyDown" or "KeyUp",Input.KeyCode.Name:lower())
  47.             UserInputService:TrigEvent(Begin and "InputBegan" or "InputEnded",Input,false)
  48.         end
  49.     end)
  50.     InternalData["Mouse"] = Mouse;InternalData["ContextActionService"] = ContextActionService;InternalData["UserInputService"] = UserInputService
  51.     Event.Parent = NLS([[
  52.         local Player = owner;local Event = script:WaitForChild("UserInput");local UserInputService = game:GetService("UserInputService");local Mouse = Player:GetMouse()
  53.         local Input = function(Input,gameProcessedEvent)
  54.             if gameProcessedEvent then return end
  55.             Event:FireServer({KeyCode=Input.KeyCode,UserInputType=Input.UserInputType,UserInputState=Input.UserInputState})
  56.         end
  57.         UserInputService.InputBegan:Connect(Input);UserInputService.InputEnded:Connect(Input)
  58.         local Hit,Target
  59.         while wait(1/30) do
  60.             if Hit ~= Mouse.Hit or Target ~= Mouse.Target then
  61.                 Hit,Target = Mouse.Hit,Mouse.Target;Event:FireServer({["MouseEvent"]=true,["Target"]=Target,["Hit"]=Hit})
  62.             end
  63.         end
  64.     ]],owner.Character)
  65. end
  66. RealGame = game;game = setmetatable({},{
  67.     __index = function (self,Index)
  68.         local Sandbox = function (Thing)
  69.             if Thing:IsA("Player") then
  70.                 local RealPlayer = Thing
  71.                 return setmetatable({},{
  72.                     __index = function (self,Index)
  73.                         local Type = type(RealPlayer[Index])
  74.                         if Type == "function" then
  75.                             if Index:lower() == "getmouse" or Index:lower() == "mouse" then
  76.                                 return function (self)return InternalData["Mouse"] end
  77.                             end
  78.                             return function (self,...)return RealPlayer[Index](RealPlayer,...) end
  79.                         end
  80.                         return RealPlayer[Index]
  81.                     end;
  82.                     __tostring = function(self) return RealPlayer.Name end
  83.                 })
  84.             end
  85.         end
  86.         if RealGame[Index] then
  87.             local Type = type(RealGame[Index])
  88.             if Type == "function" then
  89.                 if Index:lower() == "getservice" or Index:lower() == "service" then
  90.                     return function (self,Service)
  91.                         local FakeServices = {
  92.                             ["players"] = function()
  93.                                 return setmetatable({},{
  94.                                     __index = function (self2,Index2)
  95.                                         local RealService = RealGame:GetService(Service)
  96.                                         local Type2 = type(Index2)
  97.                                         if Type2 == "function" then
  98.                                             return function (self,...) return RealService[Index2](RealService,...)end
  99.                                         else
  100.                                             if Index2:lower() == "localplayer" then return Sandbox(owner) end
  101.                                             return RealService[Index2]
  102.                                         end
  103.                                     end;
  104.                                     __tostring = function(self) return RealGame:GetService(Service).Name end
  105.                                 })
  106.                             end;
  107.                             ["contextactionservice"] = function() return InternalData["ContextActionService"] end;
  108.                             ["userinputservice"] = function() return InternalData["UserInputService"] end;
  109.                             ["runservice"] = function()
  110.                                 return setmetatable({},{
  111.                                     __index = function(self2,Index2)
  112.                                         local RealService = RealGame:GetService(Service)
  113.                                         local Type2 = type(Index2)
  114.                                         if Type2 == "function" then
  115.                                             return function (self,...) return RealService[Index2](RealService,...) end
  116.                                         else
  117.                                             local RunServices = {
  118.                                                 ["bindtorenderstep"] = function() return function (self,Name,Priority,Function) return RealGame:GetService("RunService").Stepped:Connect(Function) end end;
  119.                                                 ["renderstepped"] = function() return RealService["Stepped"] end
  120.                                             }
  121.                                             if RunServices[Index2:lower()] then return RunServices[Index2:lower()]() end
  122.                                             return RealService[Index2]
  123.                                         end
  124.                                     end
  125.                                 })
  126.                             end
  127.                         }
  128.                         if FakeServices[Service:lower()] then return FakeServices[Service:lower()]() end
  129.                         return RealGame:GetService(Service)
  130.                     end
  131.                 end
  132.                 return function (self,...) return RealGame[Index](RealGame,...) end
  133.             else
  134.                 if game:GetService(Index) then return game:GetService(Index) end
  135.                 return RealGame[Index]
  136.             end
  137.         end
  138.         return nil
  139.     end
  140. });Game = game;owner = game:GetService("Players").LocalPlayer;script = Instance.new("Script");print("Complete! Running...")
  141.  
  142.  
  143. plr = game.Players.LocalPlayer
  144. char = plr.Character
  145. mouse = plr:GetMouse()
  146. punch1 = false
  147. punch2 = false
  148. right = char["Right Arm"]
  149. left = char["Left Arm"]
  150. hum = char.HumanoidRootPart
  151. root = char.Torso
  152.  
  153. meshr = "rbxassetid://2913878791"
  154.  
  155. function PUNCH1(hit)
  156.     punch1 = true
  157.     punch2 = false
  158.    
  159.     local torso = Instance.new("Weld")
  160.     torso.Parent = root
  161.     torso.Part0 = root
  162.     torso.Part1 = hum
  163.     torso.C1 = CFrame.Angles(-0.5, 0, 0)
  164.    
  165.     local arm1 = Instance.new("Weld")
  166.     arm1.Parent = left
  167.     arm1.Part0 = left
  168.     arm1.Part1 = root
  169.     arm1.C0 = CFrame.new(1.5, 0, 0)
  170.     arm1.C1 = CFrame.Angles(90, 0, 0)
  171.    
  172.     local hitbox = Instance.new("Part", right)
  173.     hitbox.Parent = right
  174.     hitbox.Transparency = 1
  175.     hitbox.CanCollide = false
  176.     hitbox.Size = right.Size
  177.     hitbox.Touched:connect(function(hit)
  178.         hit.Parent:Destroy()
  179.     end)
  180.    
  181.     local weldh = Instance.new("Weld", hitbox)
  182.     weldh.Parent = hitbox
  183.     weldh.Part0 = hitbox
  184.     weldh.Part1 = right
  185.     wait(0.05)
  186.     arm1.C0 = CFrame.new(1.5, 0.5, 0)
  187.     wait(0.05)
  188.     wait(0.25)
  189.     wait(0.05)
  190.     arm1.C0 = CFrame.new(1.5, 0, 0)
  191.     wait(0.25)
  192.     arm1:Destroy()
  193.     torso:Destroy()
  194.     weldh:Destroy()
  195.     hitbox:Destroy()
  196. end
  197.  
  198.  
  199. function PUNCH2(hit)
  200.     punch2 = true
  201.     punch1 = false
  202.    
  203.     local torso = Instance.new("Weld")
  204.     torso.Parent = root
  205.     torso.Part0 = root
  206.     torso.Part1 = hum
  207.     torso.C1 = CFrame.Angles(-0.5, 0, 0)
  208.    
  209.     local arm2 = Instance.new("Weld")
  210.     arm2.Parent = right
  211.     arm2.Part0 = right
  212.     arm2.Part1 = root
  213.     arm2.C0 = CFrame.new(-1.5, 0, 0)
  214.     arm2.C1 = CFrame.Angles(90, 0, 0)
  215.    
  216.     local hitbox = Instance.new("Part", left)
  217.     hitbox.Parent = left
  218.     hitbox.Transparency = 1
  219.     hitbox.CanCollide = false
  220.     hitbox.Size = left.Size
  221.     hitbox.Touched:connect(function(hit)
  222.         hit.Parent:Destroy()
  223.     end)
  224.    
  225.     local weldh = Instance.new("Weld", hitbox)
  226.     weldh.Parent = hitbox
  227.     weldh.Part0 = hitbox
  228.     weldh.Part1 = left
  229.     wait(0.05)
  230.     arm2.C0 = CFrame.new(-1.5, 0.5, 0)
  231.     wait(0.05)
  232.     arm2.C0 = CFrame.new(-1.5, 1, 0)
  233.     wait(0.25)
  234.     arm2.C0 = CFrame.new(-1.5, 0.5, 0)
  235.     wait(0.05)
  236.     arm2.C0 = CFrame.new(-1.5, 0, 0)
  237.     wait(0.25)
  238.     arm2:Destroy()
  239.     torso:Destroy()
  240.     weldh:Destroy()
  241.     hitbox:Destroy()
  242. end
  243.  
  244. mouse.Button1Down:connect(function(hit)
  245.     punch1 = true
  246.     if punch1 == true then
  247.         PUNCH2()
  248.         punch2 = true
  249.         punch1 = false
  250.     end
  251.     if punch2 == true then
  252.         PUNCH1()
  253.         punch1 = true
  254.         punch2 = false
  255.     end
  256.  
  257. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement