Advertisement
InTesting

The Fighter Dummy Test

Jul 12th, 2019
441
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 14.22 KB | None | 0 0
  1. print'https://pastebin.com/xLM4t2vA'
  2. local players = game:GetService("Players")
  3. local pfs = game:GetService("PathfindingService")
  4.  
  5. local function Make_R6_Rig()
  6.     local runs = game:GetService("RunService")
  7.    
  8.     local dum_number = 1
  9.    
  10.     local is_running = false
  11.     local is_jumpping = false
  12.    
  13.     local dummy_mod = Instance.new("Model",workspace)
  14.     for _,v in pairs(workspace:GetChildren())do
  15.         local vn = v.Name
  16.         if vn:sub(1,6):lower()=='dummy_'then
  17.             local num = tonumber(vn:sub(7))
  18.             if num then
  19.                 if num>dum_number then
  20.                     dum_number = num + 1
  21.                 end
  22.             end
  23.         end
  24.     end
  25.     dummy_mod.Name = 'Dummy_'.. dum_number
  26.    
  27.     local humanoid = Instance.new("Humanoid",dummy_mod)
  28.    
  29.     local head = Instance.new("Part",dummy_mod)
  30.     head.Name = 'Head'
  31.     head.Size = Vector3.new(2, 1, 1)
  32.    
  33.     local sm_1 = Instance.new("SpecialMesh",head)
  34.     sm_1.Scale = Vector3.new(1.25,1.25,1.25)
  35.    
  36.     local face = Instance.new("Decal",head)
  37.     face.Name = 'Face'
  38.     face.Texture = 'rbxassetid://288072938'
  39.    
  40.     local hrp = Instance.new("Part",dummy_mod)
  41.     hrp.Size = Vector3.new(2, 2, 1)
  42.     hrp.Name = 'HumanoidRootPart'
  43.     hrp.Transparency = 1
  44.    
  45.     dummy_mod.PrimaryPart = hrp
  46.    
  47.     local larm = Instance.new("Part",dummy_mod)
  48.     larm.Name = 'Left Arm'
  49.     larm.Size = Vector3.new(1, 2, 1)
  50.    
  51.     local lleg = Instance.new("Part",dummy_mod)
  52.     lleg.Name = 'Left Leg'
  53.     lleg.Size = Vector3.new(1, 2, 1)
  54.    
  55.     local rarm = Instance.new("Part",dummy_mod)
  56.     rarm.Name = 'Right Arm'
  57.     rarm.Size = Vector3.new(1, 2, 1)
  58.    
  59.     local rleg = Instance.new("Part",dummy_mod)
  60.     rleg.Name = 'Right Leg'
  61.     rleg.Size = Vector3.new(1, 2, 1)
  62.    
  63.     local torso = Instance.new("Part",dummy_mod)
  64.     torso.Name = 'Torso'
  65.     torso.Size = Vector3.new(2, 2, 1)
  66.    
  67.     local rh = Instance.new("Motor6D",hrp)
  68.     rh.Name = 'Root Hip'
  69.     rh.C1 = CFrame.new(0, 0, 0)
  70.     rh.MaxVelocity = .1
  71.     rh.Part0 = hrp
  72.     rh.Part1 = torso
  73.    
  74.     local neck = Instance.new("Motor6D",torso)
  75.     neck.Name = 'Neck'
  76.     neck.C0 = CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)
  77.     neck.C1 = CFrame.new(0, -1.5, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)
  78.     neck.MaxVelocity = .1
  79.     neck.Part0 = torso
  80.     neck.Part1 = head
  81.    
  82.     local r_s = Instance.new("Motor6D",torso)
  83.     r_s.Name = 'Right Shoulder'
  84.     r_s.C0 = CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)
  85.     r_s.C1 = CFrame.new(-1.5, 0, -2.98023224e-08, -0.999999881, 0, 0, 0, 1.78813934e-07, 1, 0, 1, -1.78813934e-07)
  86.     r_s.MaxVelocity = .1
  87.     r_s.Part0 = torso
  88.     r_s.Part1 = rarm
  89.    
  90.     local l_s = Instance.new("Motor6D",torso)
  91.     l_s.Name = 'Left Shoulder'
  92.     l_s.C0 = CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)
  93.     l_s.C1 = CFrame.new(1.5, 0, -2.98023224e-08, -0.999999881, 0, 0, 0, 0, 1, 0, 1, 0)
  94.     l_s.MaxVelocity = .1
  95.     l_s.Part0 = torso
  96.     l_s.Part1 = larm
  97.    
  98.     local r_h = Instance.new("Motor6D",torso)
  99.     r_h.Name = 'Right Hip'
  100.     r_h.C0 = CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)
  101.     r_h.C1 = CFrame.new(-0.5, 2, -1.1920929e-07, -0.99999994, 0, 0, 0, 5.56362707e-08, 1, 0, 1, -5.56362707e-08)
  102.     r_h.MaxVelocity = .1
  103.     r_h.Part0 = torso
  104.     r_h.Part1 = rleg
  105.    
  106.     local l_h = Instance.new("Motor6D",torso)
  107.     l_h.Name = 'Left Hip'
  108.     l_h.C0 = CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)
  109.     l_h.C1 = CFrame.new(0.5, 2, -1.1920929e-07, -0.99999994, 0, 0, 0, 5.56362707e-08, 1, 0, 1, -5.56362707e-08)
  110.     l_h.MaxVelocity = .1
  111.     l_h.Part0 = torso
  112.     l_h.Part1 = lleg
  113.    
  114.     local bodycolors = Instance.new("BodyColors",dummy_mod)
  115.    
  116.     local function Noob_Rig()
  117.         if bodycolors then
  118.             bodycolors.HeadColor = BrickColor.new("New Yeller")
  119.             bodycolors.LeftArmColor = BrickColor.new("New Yeller")
  120.             bodycolors.RightArmColor = BrickColor.new("New Yeller")
  121.            
  122.             bodycolors.LeftLegColor = BrickColor.new("Forest green")
  123.             bodycolors.RightLegColor = BrickColor.new("Forest green")
  124.            
  125.             bodycolors.TorsoColor = BrickColor.new("Dark blue")
  126.         end
  127.     end
  128.     Noob_Rig()
  129.    
  130.     local function Anim_Stand()
  131.         rh.C1 = CFrame.new(0, 0, 0)
  132.         local increment = 2.5
  133.  
  134.         for i=1,increment do
  135.             neck.C0 = neck.C0:Lerp( CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0),i/increment )
  136.             neck.C1 = neck.C1:Lerp( CFrame.new(0, -1.5, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0),i/increment )
  137.            
  138.             r_s.C0 = r_s.C0:Lerp(CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0),i/increment )
  139.             r_s.C1 = r_s.C1:Lerp(CFrame.new(-1.5, 0, -2.98023224e-08, -0.999999881, 0, 0, 0, 1.78813934e-07, 1, 0, 1, -1.78813934e-07),i/increment )
  140.            
  141.             r_h.C0 = r_h.C0:Lerp( CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0),i/increment )
  142.             r_h.C1 = r_h.C1:Lerp( CFrame.new(-0.5, 2, -1.1920929e-07, -0.99999994, 0, 0, 0, 5.56362707e-08, 1, 0, 1, -5.56362707e-08),i/increment )
  143.            
  144.             l_s.C0 = l_s.C0:Lerp(CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0),i/increment )
  145.             l_s.C1 = l_s.C1:Lerp(CFrame.new(1.5, 0, -2.98023224e-08, -0.999999881, 0, 0, 0, 0, 1, 0, 1, 0),i/increment )
  146.            
  147.             l_h.C0 = l_h.C0:Lerp(CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0),i/increment )
  148.             l_h.C1 = l_h.C1:Lerp(CFrame.new(0.5, 2, -1.1920929e-07, -0.99999994, 0, 0, 0, 5.56362707e-08, 1, 0, 1, -5.56362707e-08),i/increment )
  149.            
  150.             wait(.0001)
  151.         end
  152.     end
  153.     local function Anim_Sit()
  154.         local rh_end_pos = CFrame.new(0, 0, 0)
  155.         local increment = 2.5
  156.  
  157.         rh.C1 = rh_end_pos
  158.         for i=1,increment  do
  159.             r_s.C0 = r_s.C0:Lerp(CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0),i/increment )
  160.             r_s.C1 = r_s.C1:Lerp(CFrame.new(-1.5, 0.5, 0.5, -0.99999994, 0, 0, 0, 1, -2.2252533e-07, 0, -2.2252533e-07, -1),i/increment )
  161.            
  162.             l_s.C0 = l_s.C0:Lerp(CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0),i/increment )
  163.             l_s.C1 = l_s.C1:Lerp(CFrame.new(1.50000012, 0.49999997, 0.5, -0.999999821, 0, 0, 0, 1, -4.37113883e-08, 0, -4.37113883e-08, -1),i/increment )
  164.            
  165.             neck.C0 = neck.C0:Lerp(CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0),i/increment )
  166.             neck.C1 = neck.C1:Lerp(CFrame.new(0, -1.5, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0),i/increment )
  167.            
  168.             l_h.C0 = l_h.C0:Lerp(CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0),i/increment )
  169.             l_h.C1 = l_h.C1:Lerp(CFrame.new(0.5, 0.999999762, -1, -0.999999881, 0, 0, 0, 1, -9.9347659e-08, 0, -9.9347659e-08, -1),i/increment )
  170.            
  171.             r_h.C0 = r_h.C0:Lerp(CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0),i/increment )
  172.             r_h.C1 = r_h.C1:Lerp(CFrame.new(-0.5, 0.999999881, -0.999999881, -0.99999994, 0, 0, 0, 0.99999994, -5.96046448e-08, 0, -5.96046448e-08, -0.99999994),i/increment )
  173.            
  174.             wait(.01)
  175.         end
  176.     end
  177.     local function Anim_Walkstep_LL_Forward()
  178.         local rh_end_pos = CFrame.new(0, 0, 0)
  179.         local increment = 2.5
  180.  
  181.         rh.C1 = rh_end_pos
  182.         for i=1,increment  do
  183.             neck.C0 = neck.C0:Lerp( CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0),i/increment )
  184.             neck.C1 = neck.C1:Lerp( CFrame.new(0, -1.5, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0),i/increment )
  185.            
  186.             r_s.C0 = r_s.C0:Lerp(CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0),i/increment )
  187.             r_s.C1 = r_s.C1:Lerp(CFrame.new(-1.49999809, 0.0855050758, 0.234923139, -0.999999285, 0, 0, 0, 0.342020124, 0.939692616, 0, 0.939692616, -0.342020124),i/increment )
  188.            
  189.             l_s.C0 = l_s.C0:Lerp(CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0),i/increment )
  190.             l_s.C1 = l_s.C1:Lerp(CFrame.new(1.49997425, 0.0855049267, -0.234923184, -0.999997616, 0, 0, 0, -0.342019886, 0.939692676, 0, 0.939692676, 0.342019886),i/increment )
  191.            
  192.             l_h.C0 = l_h.C0:lerp(CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0),i/increment )
  193.             l_h.C1 = l_h.C1:Lerp(CFrame.new(0.49999547, 1.91449487, -0.234923124, -0.999998331, 0, 0, 0, 0.342019796, 0.939692736, 0, 0.939692736, -0.342019796),i/increment )
  194.            
  195.             r_h.C0 = r_h.C0:Lerp(CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0),i/increment )
  196.             r_h.C1 = r_h.C1:Lerp(CFrame.new(-0.499967217, 1.91449142, 0.234921545, -0.999995232, 0, 0, 0, -0.342019886, 0.939692676, 0, 0.939692676, 0.342019886),i/increment )
  197.             wait(.0001)
  198.         end
  199.     end
  200.     local function Anim_Walkstep_RL_Forward()
  201.         local rh_end_pos = CFrame.new(0, 0, 0)
  202.         local increment = 2.5
  203.  
  204.         rh.C1 = rh_end_pos
  205.         for i=1,increment  do
  206.             neck.C0 = neck.C0:Lerp( CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0),i/increment )
  207.             neck.C1 = neck.C1:Lerp( CFrame.new(0, -1.5, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0),i/increment )
  208.            
  209.             r_s.C0 = r_s.C0:Lerp(CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0),i/increment )
  210.             r_s.C1 = r_s.C1:Lerp(CFrame.new(-1.49997365, 0.0855049565, -0.234923184, -0.999997377, 0, 0, 0, -0.342019975, 0.939692676, 0, 0.939692676, 0.342019975),i/increment )
  211.            
  212.             l_s.C0 = l_s.C0:Lerp(CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0),i/increment )
  213.             l_s.C1 = l_s.C1:Lerp(CFrame.new(1.49999738, 0.0855051354, 0.234923124, -0.999999285, 0, 0, 0, 0.342020363, 0.939692557, 0, 0.939692557, -0.342020363),i/increment )
  214.            
  215.             l_h.C0 = l_h.C0:lerp(CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0),i/increment )
  216.             l_h.C1 = l_h.C1:Lerp(CFrame.new(0.499991179, 1.91449475, 0.234923005, -0.999997616, 0, 0, 0, -0.34202069, 0.939692438, 0, 0.939692438, 0.34202069),i/increment )
  217.            
  218.             r_h.C0 = r_h.C0:Lerp(CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0),i/increment )
  219.             r_h.C1 = r_h.C1:Lerp(CFrame.new(-0.499979973, 1.91449165, -0.234922379, -0.999996424, 0, 0, 0, 0.342020541, 0.939692378, 0, 0.939692378, -0.342020541),i/increment )
  220.            
  221.             wait(.0001)
  222.         end
  223.     end
  224.    
  225.     local function Anim_Walk_Cycle_Run_Once()
  226.         Anim_Walkstep_LL_Forward()
  227.         wait(.01)
  228.         Anim_Stand()
  229.         wait(.01)
  230.         Anim_Walkstep_RL_Forward()
  231.         wait(.01)
  232.         Anim_Stand()
  233.         wait(.01)
  234.     end
  235.    
  236.     local function Anim_Jump_Force_Up()
  237.         local rh_end_pos = CFrame.new(0, 0, 0)
  238.         local increment = 10
  239.  
  240.         rh.C1 = rh_end_pos
  241.         for i=1,increment  do
  242.             neck.C0 = neck.C0:Lerp(CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0),i/increment)
  243.             neck.C1 = neck.C1:Lerp(CFrame.new(0, -1.5, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0),i/increment)
  244.            
  245.             r_s.C0 = r_s.C0:Lerp(CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0),i/increment)
  246.             r_s.C1 = r_s.C1:Lerp(CFrame.new(-1.49998295, 1.73428547, 0.205556601, -0.999998093, 0, 0, 0, 0.342020035, -0.939692676, -0, -0.939692676, -0.342020035),i/increment)
  247.            
  248.             l_s.C0 = l_s.C0:Lerp(CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0),i/increment)
  249.             l_s.C1 = l_s.C1:Lerp(CFrame.new(1.49977911, 1.73428452, 0.205555528, -0.999993086, 0, 0, 0, 0.342019558, -0.939692795, -0, -0.939692795, -0.342019558),i/increment)
  250.            
  251.             l_h.C0 = l_h.C0:Lerp(CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0),i/increment)
  252.             l_h.C1 = l_h.C1:Lerp(CFrame.new(0.499999523, 1.96527028, 0.196961537, -0.999999523, 0, 0, 0, -0.173648179, 0.98480773, 0, 0.98480773, 0.173648179),i/increment)
  253.            
  254.             r_h.C0 = r_h.C0:Lerp(CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0),i/increment)
  255.             r_h.C1 = r_h.C1:Lerp(CFrame.new(-0.499999881, 1.9652704, 0.196961552, -0.999999762, 0, 0, 0, -0.173648179, 0.98480773, 0, 0.98480773, 0.173648179),i/increment)
  256.            
  257.             wait(.0001)
  258.         end
  259.     end
  260.    
  261.     humanoid.StateChanged:Connect(function(s)
  262.         if (s==Enum.HumanoidStateType.Running or
  263.             s==Enum.HumanoidStateType.RunningNoPhysics)and
  264.             is_running==false then
  265.             is_running = true
  266.             while is_running==true do
  267.                 Anim_Walk_Cycle_Run_Once()
  268.                 if humanoid:GetState()~=Enum.HumanoidStateType.Running and
  269.                     humanoid:GetState()~=Enum.HumanoidStateType.RunningNoPhysics then
  270.                     is_running = false
  271.                     break
  272.                 end
  273.                 wait(.1)
  274.             end
  275.         elseif Enum.HumanoidStateType.Jumping==s and is_jumpping==false then
  276.             Anim_Jump_Force_Up()
  277.             is_jumpping = true
  278.         elseif s==Enum.HumanoidStateType.Landed and is_jumpping then
  279.             is_jumpping = false
  280.             Anim_Stand()
  281.         end
  282.     end)   
  283.  
  284.     local tool = Instance.new("Tool")
  285.     tool.Name = 'Sword'
  286.     tool.GripForward = Vector3.new(-1, 0, 0)
  287.     tool.GripPos = Vector3.new(0, 0, -1.5)
  288.     tool.GripRight = Vector3.new(0, 1, 0)
  289.     tool.GripUp = Vector3.new(0, 0, 1)
  290.    
  291.     local handle = Instance.new("Part")
  292.     handle.Reflectance = .4
  293.     handle.Name = 'Handle'
  294.     handle.Parent = tool
  295.     tool.Parent = dummy_mod
  296.    
  297.     local sm = Instance.new("SpecialMesh",handle)
  298.     sm.MeshId = 'rbxasset://fonts/sword.mesh'
  299.     sm.TextureId = 'rbxasset://textures/SwordTexture.png'
  300.    
  301.     dummy_mod.Name = 'The Fighter Dummy'
  302.    
  303.     local deb = true
  304.     handle.Touched:Connect(function(h)
  305.         if h and deb then
  306.             if h.Parent then
  307.                 local hhum = h.Parent:FindFirstChildWhichIsA'Humanoid'
  308.                 if hhum then
  309.                     deb = false
  310.                     if hhum.Health>10000 then
  311.                         hhum.Health = 0
  312.                     else
  313.                         hhum:TakeDamage(25)
  314.                     end
  315.                     wait(.1)
  316.                     deb = true
  317.                 end
  318.             end
  319.         end
  320.     end)
  321.    
  322.     humanoid.Died:Connect(function()
  323.         dummy_mod:Destroy()
  324.     end)
  325.  
  326.     return dummy_mod,{Anim_Stand,
  327.         Anim_Sit,
  328.         Anim_Walkstep_LL_Forward,
  329.         Anim_Walkstep_RL_Forward,
  330.         Anim_Jump_Force_Up},tool
  331. end
  332.  
  333. local dummy,anims,tool = Make_R6_Rig()
  334.  
  335.  
  336. local handle = tool.Handle
  337.  
  338.  
  339.  
  340. while true do
  341.     if workspace:FindFirstChild('The Fighter Dummy')==nil then
  342.         dummy = Make_R6_Rig()
  343.         wait(1)
  344.     end
  345.     local dhead = dummy:FindFirstChild('Head')
  346.     local dhum = dummy:FindFirstChildWhichIsA('Humanoid')
  347.     local han = tool:FindFirstChild'Handle'
  348.     dhead.CFrame = CFrame.new(0,100,0)
  349.     if dhead and dhum and han then
  350.         local target
  351.         while true do
  352.             local pls = players:GetPlayers()
  353.             target = pls[math.random(1,#pls)]
  354.             if target then
  355.                 local tc = target.Character
  356.                 if tc~=nil then
  357.                     local th = tc:FindFirstChild'Head'
  358.                     local t_hum = tc:FindFirstChildWhichIsA'Humanoid'
  359.                     if th and t_hum then
  360.                         local is_D = false
  361.                         while true do
  362.                             wait(.1)
  363.                             if not th or not t_hum or workspace:FindFirstChild('The Fighter Dummy')==nil then
  364.                                 is_D = false
  365.                                 target = nil
  366.                                 break
  367.                             end
  368.                             local path = pfs:FindPathAsync(dhead.Position,th.Position)
  369.                             local wp = path:GetWaypoints()
  370.                            
  371.                             for i,v in pairs(wp)do
  372.                                 if i==#wp then         
  373.                                     dhum:MoveTo(v.Position)
  374.                                     dhum.MoveToFinished:Wait(1)
  375.                                     if v.Action==Enum.PathWaypointAction.Jump then
  376.                                         dhum.Jump = true
  377.                                     end
  378.                                 end
  379.                             end
  380.                            
  381.                             if not th or not t_hum or workspace:FindFirstChild('The Fighter Dummy')==nil then
  382.                                 is_D = false
  383.                                 target = nil
  384.                                 break
  385.                             end
  386.                             t_hum.Died:Connect(function()
  387.                                 is_D = true
  388.                             end)
  389.                             if is_D then
  390.                                 is_D = false
  391.                                 target = nil
  392.                                 break
  393.                             end
  394.                         end
  395.                     end
  396.                 end
  397.             end
  398.             wait(.1)
  399.         end
  400.     else
  401.         dummy:Destroy()
  402.         wait(1)
  403.         dummy,a,tool = Make_R6_Rig()
  404.     end
  405.     wait(1)
  406. end
  407. workspace.ChildRemoved:Connect(function(ch)
  408.     if ch==dummy then
  409.         wait(2)
  410.         dummy = Make_R6_Rig()
  411.     end
  412. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement