Advertisement
01oalightblueboy8

Untitled

Oct 26th, 2019
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 32.02 KB | None | 0 0
  1. --https://github.com/Mokiros/roblox-FE-compatibility
  2. if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
  3. local Player,game,owner = owner,game
  4. local RealPlayer = Player
  5. do
  6. print("FE Compatibility code V2 by Mokiros")
  7. local RealPlayer = RealPlayer
  8. script.Parent = RealPlayer.Character
  9.  
  10. --Fake event to make stuff like Mouse.KeyDown work
  11. local Disconnect_Function = function(this)
  12. this[1].Functions[this[2]] = nil
  13. end
  14. local Disconnect_Metatable = {__index={disconnect=Disconnect_Function,Disconnect=Disconnect_Function}}
  15. local FakeEvent_Metatable = {__index={
  16. Connect = function(this,f)
  17. local i = tostring(math.random(0,10000))
  18. while this.Functions[i] do
  19. i = tostring(math.random(0,10000))
  20. end
  21. this.Functions[i] = f
  22. return setmetatable({this,i},Disconnect_Metatable)
  23. end
  24. }}
  25. FakeEvent_Metatable.__index.connect = FakeEvent_Metatable.__index.Connect
  26. local function fakeEvent()
  27. return setmetatable({Functions={}},FakeEvent_Metatable)
  28. end
  29.  
  30. --Creating fake input objects with fake variables
  31. local FakeMouse = {Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent(),Button2Up=fakeEvent(),Button2Down=fakeEvent()}
  32. FakeMouse.keyUp = FakeMouse.KeyUp
  33. FakeMouse.keyDown = FakeMouse.KeyDown
  34. local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
  35. local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
  36. CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
  37. end}
  38. --Merged 2 functions into one by checking amount of arguments
  39. CAS.UnbindAction = CAS.BindAction
  40.  
  41. --This function will trigger the events that have been :Connect()'ed
  42. local function TriggerEvent(self,ev,...)
  43. for _,f in pairs(self[ev].Functions) do
  44. f(...)
  45. end
  46. end
  47. FakeMouse.TriggerEvent = TriggerEvent
  48. UIS.TriggerEvent = TriggerEvent
  49.  
  50. --Client communication
  51. local Event = Instance.new("RemoteEvent")
  52. Event.Name = "UserInput_Event"
  53. Event.OnServerEvent:Connect(function(plr,io)
  54. if plr~=RealPlayer then return end
  55. FakeMouse.Target = io.Target
  56. FakeMouse.Hit = io.Hit
  57. if not io.isMouse then
  58. local b = io.UserInputState == Enum.UserInputState.Begin
  59. if io.UserInputType == Enum.UserInputType.MouseButton1 then
  60. return FakeMouse:TriggerEvent(b and "Button1Down" or "Button1Up")
  61. end
  62. if io.UserInputType == Enum.UserInputType.MouseButton2 then
  63. return FakeMouse:TriggerEvent(b and "Button2Down" or "Button2Up")
  64. end
  65. for _,t in pairs(CAS.Actions) do
  66. for _,k in pairs(t.Keys) do
  67. if k==io.KeyCode then
  68. t.Function(t.Name,io.UserInputState,io)
  69. end
  70. end
  71. end
  72. FakeMouse:TriggerEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
  73. UIS:TriggerEvent(b and "InputBegan" or "InputEnded",io,false)
  74. end
  75. end)
  76. Event.Parent = NLS([==[local Event = script:WaitForChild("UserInput_Event")
  77. local Mouse = owner:GetMouse()
  78. local UIS = game:GetService("UserInputService")
  79. local input = function(io,RobloxHandled)
  80. if RobloxHandled then return end
  81. --Since InputObject is a client-side instance, we create and pass table instead
  82. Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
  83. end
  84. UIS.InputBegan:Connect(input)
  85. UIS.InputEnded:Connect(input)
  86.  
  87. local h,t
  88. --Give the server mouse data every second frame, but only if the values changed
  89. --If player is not moving their mouse, client won't fire events
  90. local HB = game:GetService("RunService").Heartbeat
  91. while true do
  92. if h~=Mouse.Hit or t~=Mouse.Target then
  93. h,t=Mouse.Hit,Mouse.Target
  94. Event:FireServer({isMouse=true,Target=t,Hit=h})
  95. end
  96. --Wait 2 frames
  97. for i=1,2 do
  98. HB:Wait()
  99. end
  100. end]==],script)
  101.  
  102. ----Sandboxed game object that allows the usage of client-side methods and services
  103. --Real game object
  104. local RealGame = game
  105.  
  106. --Metatable for fake service
  107. local FakeService_Metatable = {
  108. __index = function(self,k)
  109. local s = rawget(self,"_RealService")
  110. if s then
  111. return typeof(s[k])=="function"
  112. and function(_,...)return s[k](s,...)end or s[k]
  113. end
  114. end,
  115. __newindex = function(self,k,v)
  116. local s = rawget(self,"_RealService")
  117. if s then s[k]=v end
  118. end
  119. }
  120. local function FakeService(t,RealService)
  121. t._RealService = typeof(RealService)=="string" and RealGame:GetService(RealService) or RealService
  122. return setmetatable(t,FakeService_Metatable)
  123. end
  124.  
  125. --Fake game object
  126. local FakeGame = {
  127. GetService = function(self,s)
  128. return rawget(self,s) or RealGame:GetService(s)
  129. end,
  130. Players = FakeService({
  131. LocalPlayer = FakeService({GetMouse=function(self)return FakeMouse end},Player)
  132. },"Players"),
  133. UserInputService = FakeService(UIS,"UserInputService"),
  134. ContextActionService = FakeService(CAS,"ContextActionService"),
  135. RunService = FakeService({
  136. _btrs = {},
  137. RenderStepped = RealGame:GetService("RunService").Heartbeat,
  138. BindToRenderStep = function(self,name,_,fun)
  139. self._btrs[name] = self.Heartbeat:Connect(fun)
  140. end,
  141. UnbindFromRenderStep = function(self,name)
  142. self._btrs[name]:Disconnect()
  143. end,
  144. },"RunService")
  145. }
  146. rawset(FakeGame.Players,"localPlayer",FakeGame.Players.LocalPlayer)
  147. FakeGame.service = FakeGame.GetService
  148. FakeService(FakeGame,game)
  149. --Changing owner to fake player object to support owner:GetMouse()
  150. game,owner = FakeGame,FakeGame.Players.LocalPlayer
  151. end
  152.  
  153. local player = owner
  154. local mouse = owner:GetMouse()
  155. function putTexture(part, frontF, backF, topF, bottomF, leftF, rightF, className)
  156. local faces = {"Front", "Back", "Top", "Bottom", "Left", "Right"}
  157. for i,f in pairs(faces) do
  158. local decal = Instance.new(className, part)
  159. if i == 1 then decal.Texture = frontF decal.Name = f end
  160. if i == 2 then decal.Texture = backF or frontF decal.Name = f end
  161. if i == 3 then decal.Texture = topF or frontF decal.Name = f end
  162. if i == 4 then decal.Texture = bottomF or frontF decal.Name = f end
  163. if i == 5 then decal.Texture = leftF or frontF decal.Name = f end
  164. if i == 6 then decal.Texture = rightF or frontF decal.Name = f end
  165. decal.Face = f
  166. end
  167. return part
  168. end
  169. function makeSquare(position, size, color, transparency, parent)
  170. local label = Instance.new("TextLabel", parent)
  171. label.Text = ""
  172. label.BorderSizePixel = 0
  173. label.BackgroundTransparency = transparency
  174. label.Position = position
  175. label.Size = size
  176. label.BackgroundColor3 = color
  177. end
  178. function putToolBarSlot(position, image)
  179. local playerGui = player:FindFirstChild("PlayerGui")
  180. if playerGui then
  181. local gui = playerGui:FindFirstChild("ToolBar") or Instance.new("ScreenGui", playerGui)
  182. gui.Name = "ToolBar"
  183. local slot = Instance.new("ImageLabel", gui)
  184. slot.Position = position
  185. slot.Size = UDim2.new(0, 32, 0, 32)
  186. slot.BackgroundTransparency = 1
  187. slot.ImageTransparency = 0
  188. slot.Image = image
  189. slot.ZIndex = 2
  190.  
  191. makeSquare(UDim2.new(0, 0, 0, 0), UDim2.new(0, 32, 0, 32),
  192. Color3.new(95/255, 89/255, 76/255), 0, slot)
  193. makeSquare(UDim2.new(0, 0, 0, 0), UDim2.new(0, 2, 0, 32),
  194. Color3.new(0/255, 0/255, 0/255), 0.5, slot)
  195. makeSquare(UDim2.new(0, 2, 0, 0), UDim2.new(0, 30, 0, 2),
  196. Color3.new(0/255, 0/255, 0/255), 0.5, slot)
  197. makeSquare(UDim2.new(0, -2, 0, -2), UDim2.new(0, 36, 0, 2),
  198. Color3.new(106/255, 106/255, 106/255), 0, slot)
  199. makeSquare(UDim2.new(0, -2, 0, -2), UDim2.new(0, 2, 0, 36),
  200. Color3.new(106/255, 106/255, 106/255), 0, slot)
  201. makeSquare(UDim2.new(0, 0, 0, 32), UDim2.new(0, 34, 0, 2),
  202. Color3.new(130/255, 130/255, 130/255), 0, slot)
  203. makeSquare(UDim2.new(0, 32, 0, 0), UDim2.new(0, 2, 0, 34),
  204. Color3.new(130/255, 130/255, 130/255), 0, slot)
  205. makeSquare(UDim2.new(0, -4, 0, -2), UDim2.new(0, 2, 0, 38),
  206. Color3.new(130/255, 130/255, 130/255), 0, slot)
  207. makeSquare(UDim2.new(0, 34, 0, -2), UDim2.new(0, 2, 0, 36),
  208. Color3.new(106/255, 106/255, 106/255), 0, slot)
  209. makeSquare(UDim2.new(0, -2, 0, 34), UDim2.new(0, 38, 0, 2),
  210. Color3.new(106/255, 106/255, 106/255), 0, slot)
  211. makeSquare(UDim2.new(0, -4, 0, -4), UDim2.new(0, 40, 0, 2),
  212. Color3.new(156/255, 156/255, 156/255), 0, slot)
  213. end
  214. end
  215. function divide(x, d)
  216. if x ~= 0 and d ~= 0 then
  217. return x/d
  218. else
  219. return x
  220. end
  221. end -- so it doesn't divide by zero
  222. function getDistance(v1, v2)
  223. return math.abs((Vector3.new(math.abs(v2.X - v1.X), math.abs(v2.Y - v1.Y), math.abs(v2.Z - v1.Z))).Magnitude)
  224. end
  225. function round(x)
  226. if x%2 ~= 0.5 then
  227. return math.floor(x+0.5)
  228. end
  229. return x-0.5
  230. end
  231. function weldTo(part1, part2)
  232. local weld = Instance.new("Weld", part1)
  233. weld.Part0 = part1
  234. weld.Part1 = part2
  235. end
  236. function getMagnitudeXZ(velocity)
  237. return math.abs(velocity.X) + math.abs(velocity.Z)
  238. end
  239. function placeBlock(block, cFPos)
  240. local blockPlaced = Instance.new("Part", workspace)
  241. blockPlaced.Material = "Fabric"
  242. blockPlaced.Anchored = true
  243. blockPlaced.Size = block.size
  244. blockPlaced.CFrame = cFPos
  245. putTexture(blockPlaced, block.frontTex, block.backTex,
  246. block.topTex, block.bottomTex, block.leftTex, block.rightTex, "Texture")
  247. return blockPlaced
  248. end
  249. local toolBar = {
  250. Dirt = {
  251. size = Vector3.new(2.6, 2.6, 2.6),
  252. frontTex = "rbxassetid://179655033",
  253. backTex = "rbxassetid://179655033",
  254. topTex = "rbxassetid://179655033",
  255. bottomTex = "rbxassetid://179655033",
  256. leftTex = "rbxassetid://179655033",
  257. rightTex = "rbxassetid://179655033"
  258. },
  259. Grass = {
  260. size = Vector3.new(2.6, 2.6, 2.6),
  261. frontTex = "rbxassetid://96430337",
  262. backTex = "rbxassetid://96430337",
  263. topTex = "rbxassetid://96430265",
  264. bottomTex = "rbxassetid://179655033",
  265. leftTex = "rbxassetid://96430337",
  266. rightTex = "rbxassetid://96430337"
  267. },
  268. Stone = {
  269. size = Vector3.new(2.6, 2.6, 2.6),
  270. frontTex = "rbxassetid://75880927",
  271. backTex = "rbxassetid://75880927",
  272. topTex = "rbxassetid://75880927",
  273. bottomTex = "rbxassetid://75880927",
  274. leftTex = "rbxassetid://75880927",
  275. rightTex = "rbxassetid://75880927"
  276. },
  277. Diamond_Ore = {
  278. size = Vector3.new(2.6, 2.6, 2.6),
  279. frontTex = "rbxassetid://57928490",
  280. backTex = "rbxassetid://57928490",
  281. topTex = "rbxassetid://57928490",
  282. bottomTex = "rbxassetid://57928490",
  283. leftTex = "rbxassetid://57928490",
  284. rightTex = "rbxassetid://57928490"
  285. },
  286. Diamond_Block = {
  287. size = Vector3.new(2.6, 2.6, 2.6),
  288. frontTex = "rbxassetid://56749955",
  289. backTex = "rbxassetid://56749955",
  290. topTex = "rbxassetid://56749955",
  291. bottomTex = "rbxassetid://56749955",
  292. leftTex = "rbxassetid://56749955",
  293. rightTex = "rbxassetid://56749955"
  294. },
  295. Wood_Planks = {
  296. size = Vector3.new(2.6, 2.6, 2.6),
  297. frontTex = "rbxassetid://346201871",
  298. backTex = "rbxassetid://346201871",
  299. topTex = "rbxassetid://346201871",
  300. bottomTex = "rbxassetid://346201871",
  301. leftTex = "rbxassetid://346201871",
  302. rightTex = "rbxassetid://346201871"
  303. },
  304. Oak_Log = {
  305. size = Vector3.new(2.6, 2.6, 2.6),
  306. frontTex = "rbxassetid://310831812",
  307. backTex = "rbxassetid://310831812",
  308. topTex = "rbxassetid://152538557",
  309. bottomTex = "rbxassetid://152538557",
  310. leftTex = "rbxassetid://310831812",
  311. rightTex = "rbxassetid://310831812"
  312. }
  313. }
  314. if player then
  315. local char = player.Character
  316. if char then
  317. for _,cM in pairs(char:GetChildren()) do
  318. if cM.ClassName == "CharacterMesh" then cM:Destroy() end
  319. end
  320.  
  321. --[]
  322. local gui = player.PlayerGui:FindFirstChild("ToolBar") or Instance.new("ScreenGui", player.PlayerGui)
  323. gui.Name = "ToolBar"
  324.  
  325. makeSquare(UDim2.new(0.5, -166, 1, -111), UDim2.new(0, 364, 0, 44),
  326. Color3.new(0/255, 0/255, 0/255), 0, gui)
  327.  
  328. local blocks = {"Dirt", "Grass", "Stone", "Diamond_Ore", "Diamond_Block", "Wood_Planks", "Oak_Log"}
  329. for i = 1, 9 do
  330. if toolBar[blocks[i]] ~= nil then
  331. putToolBarSlot(UDim2.new(0.5, -160 + ((i-1)*40), 1, -105), toolBar[blocks[i]].frontTex)
  332. else
  333. putToolBarSlot(UDim2.new(0.5, -160 + ((i-1)*40), 1, -105), "")
  334. end
  335. end
  336.  
  337. local humRootPart = char:WaitForChild("HumanoidRootPart")
  338. local head = char:WaitForChild("Head")
  339. local torso = char:WaitForChild("Torso")
  340. local lArm = char:WaitForChild("Left Arm")
  341. local rArm = char:WaitForChild("Right Arm")
  342. local lLeg = char:WaitForChild("Left Leg")
  343. local rLeg = char:WaitForChild("Right Leg")
  344.  
  345. head.Size = Vector3.new(1.3, 1.3, 1.3)
  346. putTexture(head, "rbxassetid://38738031", "rbxassetid://36047330",
  347. "rbxassetid://36047341", "rbxassetid://36047347",
  348. "rbxassetid://36047323", "rbxassetid://36047315", "Decal")
  349. head:WaitForChild("Mesh"):Destroy()
  350. head:WaitForChild("face"):Destroy()
  351.  
  352. torso.Size = Vector3.new(1.3, 1.95, 0.65)
  353. putTexture(torso, "rbxassetid://38934753", "rbxassetid://38934731",
  354. "rbxassetid://38934780", "rbxassetid://38934740",
  355. "rbxassetid://38934762", "rbxassetid://38934762", "Decal")
  356.  
  357. lArm.Size = Vector3.new(0.65, 1.95, 0.65)
  358. putTexture(lArm, "rbxassetid://38934581", "rbxassetid://38934560",
  359. "rbxassetid://38934613", "rbxassetid://38934568",
  360. "rbxassetid://38934601", "rbxassetid://38934591", "Decal")
  361.  
  362. rArm.Size = Vector3.new(0.65, 1.95, 0.65)
  363. putTexture(rArm, "rbxassetid://38934560", "rbxassetid://38934581",
  364. "rbxassetid://38934613", "rbxassetid://38934568",
  365. "rbxassetid://38934601", "rbxassetid://38934591", "Decal")
  366.  
  367. lLeg.Size = Vector3.new(0.65, 1.95, 0.65)
  368. putTexture(lLeg, "rbxassetid://38936226", "rbxassetid://38936209",
  369. "rbxassetid://38934719", "rbxassetid://38934712",
  370. "rbxassetid://38936255", "rbxassetid://38936242", "Decal")
  371.  
  372. rLeg.Size = Vector3.new(0.65, 1.95, 0.65)
  373. putTexture(rLeg, "rbxassetid://38936209", "rbxassetid://38936226",
  374. "rbxassetid://38934719", "rbxassetid://38934712",
  375. "rbxassetid://38936242", "rbxassetid://38936255", "Decal")
  376.  
  377. char.Humanoid:ClearAllChildren()
  378. char.Animate:Remove()
  379.  
  380. -- now for the real stuff
  381. -- |
  382. -- |
  383. -- V
  384. Instance.new("BlockMesh", torso)
  385. Instance.new("BlockMesh", lArm)
  386. Instance.new("BlockMesh", rArm)
  387. Instance.new("BlockMesh", lLeg)
  388. Instance.new("BlockMesh", rLeg)
  389.  
  390. local camera = workspace.Camera
  391. local camPart = Instance.new("Part", camera)
  392. camPart.Size = Vector3.new(0, 0, 0)
  393. camPart.CFrame = camera.CFrame
  394. camPart.Transparency = 1
  395.  
  396. --[[local cameraHand = Instance.new("Part", camera)
  397. cameraHand.Size = Vector3.new(0.65, 1.95, 0.65)
  398. cameraHand.CanCollide = false
  399. cameraHand.Anchored = true
  400. cameraHand.Name = "CameraHand"
  401. putTexture(cameraHand, "rbxassetid://38934560", "rbxassetid://38934581",
  402. "rbxassetid://38934613", "rbxassetid://38934568",
  403. "rbxassetid://38934601", "rbxassetid://38934591", "Decal")
  404.  
  405. local cameraHandWeld = Instance.new("Motor6D", camPart)
  406. cameraHandWeld.Part0 = camPart
  407. cameraHandWeld.Part1 = cameraHand
  408. cameraHandWeld.C0 = CFrame.new(5, 0, 0)
  409. ]]--
  410.  
  411. local humanoid = char:WaitForChild("Humanoid")
  412. humanoid.HipHeight = 0.3
  413.  
  414. local rootJoint = Instance.new("Motor6D", torso)
  415. rootJoint.Name = "RootJoint"
  416. rootJoint.Part0 = humRootPart
  417. rootJoint.Part1 = torso
  418. rootJoint.C1 = CFrame.new(0, 0.05, 0)
  419.  
  420. local neck = Instance.new("Motor6D", torso)
  421. neck.Name = "Neck"
  422. neck.Part0 = head
  423. neck.Part1 = torso
  424.  
  425. local lS = Instance.new("Motor6D", torso)
  426. lS.Name = "Left Shoulder"
  427. lS.Part0 = lArm
  428. lS.Part1 = torso
  429. lS.C0 = CFrame.new(-0.325, 0.975, 0) * CFrame.Angles(0, 0, 0)
  430. lS.C1 = CFrame.new(0.65, 0.975, 0)
  431.  
  432. local rS = Instance.new("Motor6D", torso)
  433. rS.Name = "Right Shoulder"
  434. rS.Part0 = rArm
  435. rS.Part1 = torso
  436. rS.C0 = CFrame.new(-0.325, 0.975, 0) * CFrame.Angles(0, 0, 0)
  437. rS.C1 = CFrame.new(-0.65, 0.975, 0) * CFrame.Angles(0, -math.rad(180), 0)
  438.  
  439. local lH = Instance.new("Motor6D", torso)
  440. lH.Name = "Left Hip"
  441. lH.Part0 = lLeg
  442. lH.Part1 = torso
  443. lH.C0 = CFrame.new(0, 0.975, 0)
  444. lH.C1 = CFrame.new(0.325, -0.975, 0) * CFrame.Angles(0, 0, 0)
  445.  
  446. local rH = Instance.new("Motor6D", torso)
  447. rH.Name = "Right Hip"
  448. rH.Part0 = rLeg
  449. rH.Part1 = torso
  450. rH.C0 = CFrame.new(0, 0.975, 0)
  451. rH.C1 = CFrame.new(-0.325, -0.975, 0) * CFrame.Angles(0, -math.rad(180), 0)
  452.  
  453. for _,p in pairs(char:GetChildren()) do
  454. if p.Name ~= "HumanoidRootPart" and p.ClassName == "Part" then
  455. local hit = Instance.new("Part", char)
  456. hit.Name = "DamagePart"
  457. hit.BrickColor = BrickColor.new("Bright red")
  458. hit.Material = "SmoothPlastic"
  459. hit.Transparency = 1
  460. hit.Size = Vector3.new(p.Size.X + 0.05, p.Size.Y + 0.05, p.Size.Z + 0.05)
  461. hit.CanCollide = false
  462. weldTo(hit, p)
  463. end
  464. end
  465.  
  466. local ticks = 0
  467. local times = 0
  468.  
  469. local walkAnim = 0
  470. local increaseWalkAnim = 1
  471.  
  472. local idleAnimRotX = 0
  473. local idleAnimRotZ = 0
  474. local sneaking = 0
  475.  
  476. local RS = game:GetService("RunService").RenderStepped
  477.  
  478. local oldHP = humanoid.Health
  479. local damageTime = 0
  480.  
  481. local punchRotX = 0
  482. local punchRotY = 0
  483. local punchRotZ = 0
  484. local punchSpeed = 0
  485. local punching = 0
  486. local selectedBlock = 8
  487. local punchEnded = 1
  488. local itemOnHand = nil
  489.  
  490. local handItem = Instance.new("Part", char)
  491. handItem.Name = "HandItem"
  492. handItem.Size = Vector3.new(0.52, 0.52, 0.52)
  493. handItem.Transparency = 1
  494. handItem.CanCollide = false
  495.  
  496. local handItemWeld = Instance.new("Weld", char)
  497. handItemWeld.Part0 = handItem
  498. handItemWeld.Part1 = lArm
  499. handItemWeld.C1 = CFrame.new(0, -0.9, -0.6) * CFrame.Angles(math.rad(-10), math.rad(45), 0)
  500.  
  501. local sound = Instance.new("Sound", char)
  502. sound.Name = "Hurt"
  503. sound.Volume = 10
  504. sound.SoundId = "rbxassetid://535690488"
  505.  
  506. local facesToResize = {"Front", "Back", "Left", "Right", "Bottom", "Top"}
  507. Mouse.Button1Down:connect(function()
  508. if punchEnded == 1 then punching = 1 end
  509. if Mouse.Target then
  510. if getDistance(head.CFrame.p, Mouse.Hit.p) <= 10.4 then
  511. local humanoid = Mouse.Target.Parent:FindFirstChild("Humanoid")
  512. if humanoid then
  513. humanoid.Health = humanoid.Health - 10
  514. local parts = Mouse.Target.Parent:GetChildren()
  515. for _,p in pairs(parts) do
  516. if p.ClassName == "Part" then
  517. p.Velocity = Vector3.new(p.Velocity.X + (head.CFrame.lookVector.X * 18), p.Velocity.Y + (head.CFrame.lookVector.Y * 18) + 8, p.Velocity.Z + (head.CFrame.lookVector.Z * 18))
  518. end
  519. end
  520. return
  521. end
  522. local x = Mouse.Target.CFrame.p.X
  523. local y = Mouse.Target.CFrame.p.Y
  524. local z = Mouse.Target.CFrame.p.Z
  525. if Mouse.TargetSurface.Name == "Right" then x = x + 2.6 end
  526. if Mouse.TargetSurface.Name == "Left" then x = x - 2.6 end
  527. if Mouse.TargetSurface.Name == "Top" then y = y + 2.6 end
  528. if Mouse.TargetSurface.Name == "Bottom" then y = y - 2.6 end
  529. if Mouse.TargetSurface.Name == "Back" then z = z + 2.6 end
  530. if Mouse.TargetSurface.Name == "Front" then z = z - 2.6 end
  531. if Mouse.Target.Size.X > 2.6 or Mouse.Target.Size.Y > 2.6 or Mouse.Target.Size.Z > 2.6 then
  532. x = Mouse.Hit.p.X
  533. y = Mouse.Hit.p.Y
  534. z = Mouse.Hit.p.Z
  535. end
  536. -- local x = round(math.abs(mouseX)/2.6)*2.6
  537. -- local y = round(math.abs(mouseY)/2.6)*2.6
  538. -- local z = round(math.abs(mouseZ)/2.6)*2.6
  539. -- if Mouse.Hit.p.X < 0 then x = x * -1 end
  540. -- if Mouse.Hit.p.Y < 0 then y = y * -1 end
  541. -- if Mouse.Hit.p.Z < 0 then z = z * -1 end
  542. if selectedBlock == 0 then
  543. local blk = placeBlock(toolBar.Dirt, CFrame.new(x, y, z))
  544. for _,f in pairs(facesToResize) do
  545. blk:WaitForChild(f).StudsPerTileU = 2.6
  546. blk:WaitForChild(f).StudsPerTileV = 2.6
  547. end
  548. elseif selectedBlock == 1 then
  549. local blk = placeBlock(toolBar.Grass, CFrame.new(x, y, z))
  550. for _,f in pairs(facesToResize) do
  551. blk:WaitForChild(f).StudsPerTileU = 2.6
  552. blk:WaitForChild(f).StudsPerTileV = 2.6
  553. end
  554. elseif selectedBlock == 2 then
  555. local blk = placeBlock(toolBar.Stone, CFrame.new(x, y, z))
  556. for _,f in pairs(facesToResize) do
  557. blk:WaitForChild(f).StudsPerTileU = 2.6
  558. blk:WaitForChild(f).StudsPerTileV = 2.6
  559. end
  560. elseif selectedBlock == 3 then
  561. local blk = placeBlock(toolBar.Diamond_Ore, CFrame.new(x, y, z))
  562. for _,f in pairs(facesToResize) do
  563. blk:WaitForChild(f).StudsPerTileU = 2.6
  564. blk:WaitForChild(f).StudsPerTileV = 2.6
  565. end
  566. elseif selectedBlock == 4 then
  567. local blk = placeBlock(toolBar.Diamond_Block, CFrame.new(x, y, z))
  568. for _,f in pairs(facesToResize) do
  569. blk:WaitForChild(f).StudsPerTileU = 2.6
  570. blk:WaitForChild(f).StudsPerTileV = 2.6
  571. end
  572. elseif selectedBlock == 5 then
  573. local blk = placeBlock(toolBar.Wood_Planks, CFrame.new(x, y, z))
  574. for _,f in pairs(facesToResize) do
  575. blk:WaitForChild(f).StudsPerTileU = 2.6
  576. blk:WaitForChild(f).StudsPerTileV = 2.6
  577. end
  578. elseif selectedBlock == 6 then
  579. local blk = placeBlock(toolBar.Oak_Log, CFrame.new(x, y, z))
  580. for _,f in pairs(facesToResize) do
  581. blk:WaitForChild(f).StudsPerTileU = 2.6
  582. blk:WaitForChild(f).StudsPerTileV = 2.6
  583. end
  584. elseif selectedBlock == 7 or selectedBlock == 8 then
  585. if Mouse.Target.Size.X <= 10 and Mouse.Target.Size.Y <= 10 and Mouse.Target.Size.Z <= 10 then
  586. Mouse.Target.Parent = nil
  587. end
  588. end
  589. end
  590. end
  591. end)
  592.  
  593. local hasItemOnHand = 0
  594. local hi = 0
  595. -- selection thingy
  596. local selectLabel = Instance.new("TextLabel", gui)
  597. selectLabel.Size = UDim2.new(0, 32, 0, 32)
  598. selectLabel.Position = UDim2.new(0.5, -160 + (selectedBlock*40), 1, -105)
  599. selectLabel.BackgroundTransparency = 0.5
  600. selectLabel.BackgroundColor3 = Color3.new(1, 1, 1)
  601. selectLabel.BorderSizePixel = 0
  602. selectLabel.Text = ""
  603. selectLabel.ZIndex = 3
  604. --
  605. Mouse.KeyDown:connect(function(key)
  606. if key == "q" then
  607. sneaking = 1
  608. humanoid.WalkSpeed = humanoid.WalkSpeed / 2
  609. rootJoint.C1 = CFrame.new(0, 0.325, 0) * CFrame.Angles(math.rad(sneaking*45), 0, 0)
  610. lH.C0 = CFrame.new(0, 0.975, 0) * CFrame.Angles(-math.rad(sneaking*45), 0, 0)
  611. rH.C0 = CFrame.new(0, 0.975, 0) * CFrame.Angles(math.rad(sneaking*45), 0, 0)
  612. --print("Sneaking...")
  613. end
  614. if key == "8" then
  615. selectedBlock = 7
  616. itemOnHand = nil
  617. for _,d in pairs(handItem:GetChildren()) do
  618. d:Destroy()
  619. end
  620. if hasItemOnHand == 1 then hi = 1 end
  621. end
  622. if key == "9" then
  623. selectedBlock = 8
  624. itemOnHand = nil
  625. for _,d in pairs(handItem:GetChildren()) do
  626. d:Destroy()
  627. end
  628. if hasItemOnHand == 1 then hi = 1 end
  629. end
  630. if key == "1" then
  631. selectedBlock = 0
  632. itemOnHand = toolBar.Dirt
  633. for _,d in pairs(handItem:GetChildren()) do
  634. d:Destroy()
  635. end
  636. putTexture(handItem, itemOnHand.frontTex, itemOnHand.backTex,
  637. itemOnHand.topTex, itemOnHand.bottomTex,
  638. itemOnHand.leftTex, itemOnHand.rightTex, "Texture")
  639. for _,f in pairs(facesToResize) do
  640. handItem:WaitForChild(f).StudsPerTileU = 0.52
  641. handItem:WaitForChild(f).StudsPerTileV = 0.52
  642. end
  643. end
  644. if key == "2" then
  645. selectedBlock = 1
  646. itemOnHand = toolBar.Grass
  647. for _,d in pairs(handItem:GetChildren()) do
  648. d:Destroy()
  649. end
  650. putTexture(handItem, itemOnHand.frontTex, itemOnHand.backTex,
  651. itemOnHand.topTex, itemOnHand.bottomTex,
  652. itemOnHand.leftTex, itemOnHand.rightTex, "Texture")
  653. for _,f in pairs(facesToResize) do
  654. handItem:WaitForChild(f).StudsPerTileU = 0.52
  655. handItem:WaitForChild(f).StudsPerTileV = 0.52
  656. end
  657. end
  658. if key == "3" then
  659. selectedBlock = 2
  660. itemOnHand = toolBar.Stone
  661. for _,d in pairs(handItem:GetChildren()) do
  662. d:Destroy()
  663. end
  664. putTexture(handItem, itemOnHand.frontTex, itemOnHand.backTex,
  665. itemOnHand.topTex, itemOnHand.bottomTex,
  666. itemOnHand.leftTex, itemOnHand.rightTex, "Texture")
  667. for _,f in pairs(facesToResize) do
  668. handItem:WaitForChild(f).StudsPerTileU = 0.52
  669. handItem:WaitForChild(f).StudsPerTileV = 0.52
  670. end
  671. end
  672. if key == "4" then
  673. selectedBlock = 3
  674. itemOnHand = toolBar.Diamond_Ore
  675. for _,d in pairs(handItem:GetChildren()) do
  676. d:Destroy()
  677. end
  678. putTexture(handItem, itemOnHand.frontTex, itemOnHand.backTex,
  679. itemOnHand.topTex, itemOnHand.bottomTex,
  680. itemOnHand.leftTex, itemOnHand.rightTex, "Texture")
  681. for _,f in pairs(facesToResize) do
  682. handItem:WaitForChild(f).StudsPerTileU = 0.52
  683. handItem:WaitForChild(f).StudsPerTileV = 0.52
  684. end
  685. end
  686. if key == "5" then
  687. selectedBlock = 4
  688. itemOnHand = toolBar.Diamond_Block
  689. for _,d in pairs(handItem:GetChildren()) do
  690. d:Destroy()
  691. end
  692. putTexture(handItem, itemOnHand.frontTex, itemOnHand.backTex,
  693. itemOnHand.topTex, itemOnHand.bottomTex,
  694. itemOnHand.leftTex, itemOnHand.rightTex, "Texture")
  695. for _,f in pairs(facesToResize) do
  696. handItem:WaitForChild(f).StudsPerTileU = 0.52
  697. handItem:WaitForChild(f).StudsPerTileV = 0.52
  698. end
  699. end
  700. if key == "6" then
  701. selectedBlock = 5
  702. itemOnHand = toolBar.Wood_Planks
  703. for _,d in pairs(handItem:GetChildren()) do
  704. d:Destroy()
  705. end
  706. putTexture(handItem, itemOnHand.frontTex, itemOnHand.backTex,
  707. itemOnHand.topTex, itemOnHand.bottomTex,
  708. itemOnHand.leftTex, itemOnHand.rightTex, "Texture")
  709. for _,f in pairs(facesToResize) do
  710. handItem:WaitForChild(f).StudsPerTileU = 0.52
  711. handItem:WaitForChild(f).StudsPerTileV = 0.52
  712. end
  713. end
  714. if key == "7" then
  715. selectedBlock = 6
  716. itemOnHand = toolBar.Oak_Log
  717. for _,d in pairs(handItem:GetChildren()) do
  718. d:Destroy()
  719. end
  720. putTexture(handItem, itemOnHand.frontTex, itemOnHand.backTex,
  721. itemOnHand.topTex, itemOnHand.bottomTex,
  722. itemOnHand.leftTex, itemOnHand.rightTex, "Texture")
  723. for _,f in pairs(facesToResize) do
  724. handItem:WaitForChild(f).StudsPerTileU = 0.52
  725. handItem:WaitForChild(f).StudsPerTileV = 0.52
  726. end
  727. end
  728. if (key == "0" or key == "1" or key == "2"
  729. or key == "3" or key == "4" or key == "5"
  730. or key == "6" or key == "7") and hasItemOnHand == 0 then hi = 1 end
  731. selectLabel.Position = UDim2.new(0.5, -160 + ((selectedBlock)*40), 1, -105)
  732. end)
  733.  
  734. Mouse.KeyUp:connect(function(key)
  735. if key == "q" then
  736. sneaking = 0
  737. humanoid.WalkSpeed = humanoid.WalkSpeed * 2
  738. rootJoint.C1 = CFrame.new(0, 0.05, 0) * CFrame.Angles(0, 0, 0)
  739. lH.C0 = CFrame.new(0, 0.975, 0) * CFrame.Angles(0, 0, 0)
  740. rH.C0 = CFrame.new(0, 0.975, 0) * CFrame.Angles(0, 0, 0)
  741. --print("Stopped sneaking...")
  742. end
  743. end)
  744.  
  745. while RS:wait() do
  746. if itemOnHand ~= nil then
  747. hasItemOnHand = 1
  748. handItem.Transparency = 0
  749. else
  750. hasItemOnHand = 0
  751. handItem.Transparency = 1
  752. end
  753. if humanoid.Health < oldHP then
  754. damageTime = 60
  755. sound:Play()
  756. end
  757. oldHP = humanoid.Health
  758. if damageTime > 0 and humanoid.Health > 0 then
  759. for _,p in pairs(char:GetChildren()) do
  760. if p.Name ~= "HumanoidRootPart" and p.ClassName == "Part" then
  761. if p.Name == "DamagePart" then
  762. p.Transparency = 0.5
  763. end
  764. end
  765. end
  766. damageTime = damageTime - 2
  767. if damageTime <= 0 then
  768. for _,p in pairs(char:GetChildren()) do
  769. if p.Name ~= "HumanoidRootPart" and p.ClassName == "Part" then
  770. if p.Name == "DamagePart" then
  771. p.Transparency = 1
  772. end
  773. end
  774. end
  775. end
  776. end
  777. camPart.CFrame = camera.CFrame
  778. neck.C1 = CFrame.new(0, 0.975, 0) * CFrame.fromEulerAnglesXYZ(math.rad(sneaking*45), math.rad(camPart.Orientation.Y - torso.Orientation.Y), 0)
  779. neck.C0 = CFrame.new(0, -0.65, 0) * CFrame.Angles(-math.rad(camPart.Orientation.X - torso.Orientation.X - (sneaking*45)), 0, 0)
  780.  
  781. if getMagnitudeXZ(torso.Velocity) > 1 then
  782. if walkAnim >= 1 then
  783. increaseWalkAnim = -1
  784. elseif walkAnim <= -1 then
  785. increaseWalkAnim = 1
  786. end
  787. walkAnim = walkAnim + (increaseWalkAnim/(10+(sneaking*20)))
  788. else
  789. walkAnim = 0
  790. end
  791.  
  792. --lH.C0 = CFrame.new(0, 0.975, 0) * CFrame.Angles(-math.rad(sneaking*45), 0, 0)
  793. --rH.C0 = CFrame.new(0, 0.975, 0) * CFrame.Angles(math.rad(sneaking*45), 0, 0)
  794. lH.C0 = lH.C0:lerp(CFrame.new(0, 0.975, 0) * CFrame.Angles(-math.rad(sneaking*45) + math.rad(damageTime*1.5) + math.rad(walkAnim*getMagnitudeXZ(torso.Velocity)*5/(1+sneaking)), 0, 0), 0.1)
  795. rH.C0 = rH.C0:lerp(CFrame.new(0, 0.975, 0) * CFrame.Angles(math.rad(sneaking*45) + math.rad(damageTime*1.5) + math.rad(walkAnim*getMagnitudeXZ(torso.Velocity)*5/(1+sneaking)), 0, 0), 0.1)
  796. --
  797. --rootJoint.C0 = CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0)
  798. --print(math.abs(head.Orientation.Y) - math.abs(humRootPart.Orientation.Y))
  799. --if (head.Orientation.Y * 2) - (head.Orientation.Y + torso.Orientation.Y) > 45 then
  800. --humRootPart.CFrame = humRootPart.CFrame * CFrame.Angles(0, math.rad(-45 + head.Orientation.Y), 0)
  801. --print("-45")
  802. --end
  803. --if (head.Orientation.Y * 2) - (head.Orientation.Y + torso.Orientation.Y) < -45 then
  804. --humRootPart.CFrame = humRootPart.CFrame * CFrame.Angles(0, math.rad(45 + head.Orientation.Y), 0)
  805. --print("45")
  806. --end
  807.  
  808. --move these arms
  809. rootJoint.C1 = rootJoint.C1:lerp(CFrame.new(0, 0.325, 0) * CFrame.Angles(math.rad(sneaking*45), math.rad(punchRotY), 0), 0.2)
  810.  
  811. lS.C0 = lS.C0:lerp(CFrame.new(-0.325, 0.975, 0) * CFrame.Angles(idleAnimRotX/20 + math.rad(-hasItemOnHand*10) + math.rad(punchRotX) + math.rad(damageTime*1.5) + math.rad(walkAnim*getMagnitudeXZ(torso.Velocity)*5/(1+sneaking)), 0, math.rad(punchRotZ) + idleAnimRotZ/20), 0.025+(math.min(1, getMagnitudeXZ(torso.Velocity))/12) + divide(punchSpeed, 6) + hi)
  812. rS.C0 = rS.C0:lerp(CFrame.new(-0.325, 0.975, 0) * CFrame.Angles(idleAnimRotX/20 + math.rad(damageTime*1.5) + math.rad(walkAnim*getMagnitudeXZ(torso.Velocity)*5/(1+sneaking)), 0, idleAnimRotZ/20), 0.025+(math.min(1, getMagnitudeXZ(torso.Velocity))/12))
  813. if punching == 1 and punchEnded == 1 then
  814. punching = 0
  815. --print("steve uses punch!!")
  816. local coPunch = coroutine.wrap(function()
  817. punchEnded = 0
  818. punchSpeed = 1
  819. punchRotX = -60
  820. punchRotY = -8
  821. punchRotZ = -35
  822. wait(0.075)
  823. punchSpeed = 1
  824. punchRotX = -75
  825. punchRotY = 8
  826. punchRotZ = 40
  827. wait(0.075)
  828. punchSpeed = 1
  829. punchRotX = -20
  830. punchRotZ = 40
  831. wait(0.075)
  832. punchSpeed = 3.5
  833. punchRotX = 0
  834. punchRotY = 0
  835. punchRotZ = 0
  836. punchEnded = 1
  837. wait(0.06)
  838. punchSpeed = 0
  839. end)
  840. coPunch()
  841. end
  842. if ticks > 20 then
  843. ticks = 0
  844. if times == 0 then
  845. times = times + 1
  846. idleAnimRotX = -1
  847. idleAnimRotZ = 0
  848. elseif times == 1 then
  849. times = times + 1
  850. idleAnimRotX = -0.75
  851. idleAnimRotZ = -0.75
  852. elseif times == 2 then
  853. times = times + 1
  854. idleAnimRotX = 0
  855. idleAnimRotZ = -1
  856. elseif times == 3 then
  857. times = times + 1
  858. idleAnimRotX = 0.75
  859. idleAnimRotZ = -0.75
  860. --idleAnimRotX = 0.75
  861. --idleAnimRotZ = -0
  862. elseif times == 4 then
  863. times = times + 1
  864. idleAnimRotX = 1
  865. idleAnimRotZ = 0
  866. --idleAnimRotX = 1
  867. --idleAnimRotZ = 0
  868. elseif times == 5 then
  869. times = times + 1
  870. idleAnimRotX = 0.75
  871. idleAnimRotZ = 0.75
  872. elseif times == 6 then
  873. times = times + 1
  874. idleAnimRotX = 0
  875. idleAnimRotZ = 1
  876. elseif times == 7 then
  877. times = 0
  878. idleAnimRotX = -0.75
  879. idleAnimRotZ = 0.75
  880. end
  881. end
  882. if hi == 1 then hi = 0 end
  883. ticks = ticks + 1
  884. end
  885. end
  886. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement