yoinkydoodlewastaken

spear2

Apr 10th, 2020
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- This script has been converted to FE by iPxter
  2.  
  3.  
  4. if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
  5. local Player,Mouse,mouse,UserInputService,ContextActionService = owner
  6. do
  7. print("FE Compatibility code by Mokiros | Translated to FE by iPxter")
  8. script.Parent = Player.Character
  9.  
  10. --RemoteEvent for communicating
  11. local Event = Instance.new("RemoteEvent")
  12. Event.Name = "UserInput_Event"
  13.  
  14. --Fake event to make stuff like Mouse.KeyDown work
  15. local function fakeEvent()
  16. local t = {_fakeEvent=true,Connect=function(self,f)self.Function=f end}
  17. t.connect = t.Connect
  18. return t
  19. end
  20.  
  21. --Creating fake input objects with fake variables
  22. local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()}
  23. local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
  24. local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
  25. CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
  26. end}
  27. --Merged 2 functions into one by checking amount of arguments
  28. CAS.UnbindAction = CAS.BindAction
  29.  
  30. --This function will trigger the events that have been :Connect()'ed
  31. local function te(self,ev,...)
  32. local t = m[ev]
  33. if t and t._fakeEvent and t.Function then
  34. t.Function(...)
  35. end
  36. end
  37. m.TrigEvent = te
  38. UIS.TrigEvent = te
  39.  
  40. Event.OnServerEvent:Connect(function(plr,io)
  41. if plr~=Player then return end
  42. if io.isMouse then
  43. m.Target = io.Target
  44. m.Hit = io.Hit
  45. else
  46. local b = io.UserInputState == Enum.UserInputState.Begin
  47. if io.UserInputType == Enum.UserInputType.MouseButton1 then
  48. return m:TrigEvent(b and "Button1Down" or "Button1Up")
  49. end
  50. for _,t in pairs(CAS.Actions) do
  51. for _,k in pairs(t.Keys) do
  52. if k==io.KeyCode then
  53. t.Function(t.Name,io.UserInputState,io)
  54. end
  55. end
  56. end
  57. m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
  58. UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false)
  59. end
  60. end)
  61. Event.Parent = NLS([==[
  62. local Player = game:GetService("Players").Rohan_Kishiba
  63. local Event = script:WaitForChild("UserInput_Event")
  64.  
  65. local UIS = game:GetService("UserInputService")
  66. local input = function(io,a)
  67. if a then return end
  68. --Since InputObject is a client-side instance, we create and pass table instead
  69. Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState})
  70. end
  71. UIS.InputBegan:Connect(input)
  72. UIS.InputEnded:Connect(input)
  73.  
  74. local Mouse = Player:GetMouse()
  75. local h,t
  76. --Give the server mouse data 30 times every second, but only if the values changed
  77. --If player is not moving their mouse, client won't fire events
  78. while wait(1/30) do
  79. if h~=Mouse.Hit or t~=Mouse.Target then
  80. h,t=Mouse.Hit,Mouse.Target
  81. Event:FireServer({isMouse=true,Target=t,Hit=h})
  82. end
  83. end]==],Player.Character)
  84. Mouse,mouse,UserInputService,ContextActionService = m,m,UIS,CAS
  85. end
  86.  
  87.  
  88. repeat wait() until game:GetService("Players").Rohan_Kishiba.Character;
  89. pcall(function() _G.RMs.Disabled=true end)
  90. _G.RMs=script
  91. _G.RMf=getfenv()
  92. ServiceTable = {"Players","Lighting","Debris","StarterPack","InsertService"}
  93. for i,v in pairs(ServiceTable) do
  94. getfenv()[v]=game:GetService(v)
  95. end
  96.  
  97. INEW=Instance.new
  98. V3=Vector3.new
  99. V3A=function(i) return V3(i,i,i) end
  100. CF=CFrame.new
  101. MRAD=math.rad
  102. MDEG=math.deg
  103. mrnd=math.random
  104. CA=function(a,b,c) return CFrame.Angles(MRAD(a),MRAD(b),MRAD(c)) end
  105. CF0=CF(0,0,0)
  106. v3=V3
  107. v30=v3(0,0,0)
  108. v31=v3(1/0,1/0,1/0)
  109. rotrand = function(a,b)
  110. local a = a and -a or -180
  111. local b = b and -b or 180
  112. return CA(mrnd(a,b),mrnd(a,b),mrnd(a,b))
  113. end
  114.  
  115. as,so2,so={},{'metal','Block','Slash','Slash2','Hit','Kick','Abscond','Cast'},{}
  116. as.corner='11294911'
  117. as.cone='1033714'
  118. as.ring="3270017"
  119. as.Chakram='47260990'
  120. as.ring2='18430887'
  121. as.blast='20329976'
  122. as.missile='10207677'
  123. as.fire='2693346'
  124. as.boom='3264793'
  125. as.slash='10209645'
  126. as.abscond='2767090'
  127. as.firelaser='13775494'
  128. as.diamond='9756362'
  129. as.metal='rbxasset://sounds\\unsheath.wav'
  130. as.Block = 'rbxasset://sounds\\metal.ogg'
  131. as.Slash = '10209645'
  132. as.Slash2 = '46760716'
  133. as.Hit='10209583'
  134. as.Kick='46153268'
  135. as.Cast='2101137'
  136. as.Abscond='2767090'
  137. as.Blood='158555098'
  138. as.Spear1='69891706'
  139. as.Spear1T='69890778'
  140. as.Skull='6552202'
  141. as.Gradient1='185346444'
  142. as.Gradient2='185346448'
  143.  
  144. for i,v in pairs(as) do
  145. if v:sub(1,3)~="htt" and v:sub(1,3)~="rbx" then
  146. as[i]="http://www.roblox.com/asset/?id="..v
  147. end
  148. end
  149.  
  150.  
  151. newPart = function(sizea,sizeb,sizec,parent,cframe,aa,bb,cc,dd,ee,ff)
  152. local Materials = {}
  153. for i,v in pairs{
  154. "Plastic","SmoothPlastic","Wood", "WoodPlanks",
  155. "Marble", "Slate","Concrete", "Granite",
  156. "Brick","Pebble", "Cobblestone","CorrodedMetal",
  157. "DiamondPlate", "Foil", "Metal","Grass",
  158. "Sand","Fabric","Ice"} do
  159. Materials[v]=v
  160. end
  161. local mat,col
  162. local part = Instance.new("Part",parent or Model)
  163. for i,v in pairs{aa,bb,cc,dd,ee,ff} do
  164. if Materials[v] then mat=v end
  165. if BrickColor.new(v).Name==v then col=v end
  166. if v=="CylinderMesh" or v=="BlockMesh" then INEW(v,part).Name="Mesh" end
  167. if v=="Wedge" then part.Parent=nil part=INEW("WedgePart",parent or Model) end
  168. if v=="Corner" then part.Parent=nil part=INEW("CornerWedgePart",parent or Model)
  169. end
  170. end
  171. if part.className~="CornerWedgePart" then part.formFactor="Custom" end
  172. part.TopSurface=0
  173. part.BottomSurface=0
  174. part.Size=V3(sizea,sizeb,sizec) or V3(1,1,1)
  175. part.CFrame=cframe or CF(0,10,0)
  176. part.BrickColor=BrickColor.new(col or '')
  177. part.Material = mat or 'Plastic'
  178. part:BreakJoints()
  179. return part,cframe
  180. end
  181. newWeld = function(parent,P0,P1,C0,C1)
  182. local weld=INEW("Weld",parent or P0)
  183. weld.Part0=P0
  184. weld.Part1=P1
  185. weld.C0=C0 or weld.C0
  186. weld.C1=C1 or weld.C1
  187. return weld
  188. end
  189. -------
  190. ray = function(Pos, Dir,tab,length) -- ray cast
  191. return workspace:FindPartOnRay(Ray.new(Pos, Dir.unit *(length or 999)),tab)
  192. end
  193. ----------------------------------------------------------------------------
  194. WeldLib={}
  195. function GetWeld(weld,CO)
  196. local CO=CO or 0
  197. if not WeldLib[weld] then
  198. local x0,y0,z0=weld.C0:toEulerAnglesXYZ()
  199. local x1,y1,z1=weld.C1:toEulerAnglesXYZ()
  200. WeldLib[weld]={[0]=v3(mdeg(x0),mdeg(y0),mdeg(z0)),[1]=v3(mdeg(x1),mdeg(y1),mdeg(z1))}
  201. end
  202. return weld['C'..CO].p,WeldLib[weld][CO]
  203. end
  204. function ClearWeld(weld)
  205. if WeldLib[weld] then WeldLib[weld]=nil end
  206. end
  207. mabs=math.abs
  208. mdeg = math.deg
  209. v3floor = function(w,dec)
  210. local dec=dec or 1000
  211. return v3(math.floor(w.x*dec)/dec,math.floor(w.y*dec)/dec,math.floor(w.z*dec)/dec)
  212. end
  213. function SetWeld(weld,CO,i, loops, origpos,origangle, nextpos,nextangle,smooth)
  214. local origpos=origpos
  215. local origangle=origangle
  216. loops=math.floor(loops)
  217. if not origpos and not origangle then
  218. origpos,origangle=GetWeld(weld,CO)
  219. end
  220. local perc =(smooth==1 or smooth==nil) and math.sin((math.pi/2)/loops*i) or i/loops
  221. -----------
  222. if not WeldLib[weld] then
  223. local x0,y0,z0=weld.C0:toEulerAnglesXYZ()
  224. local x1,y1,z1=weld.C1:toEulerAnglesXYZ()
  225. WeldLib[weld]={[0]=v3(mdeg(x0),mdeg(y0),mdeg(z0)),[1]=v3(mdeg(x1),mdeg(y1),mdeg(z1))}
  226. end
  227. --if smooth==2 and (origangle-nextangle).magnitude <2.5 then return end -- anti
  228. -----------
  229. origangle=v3floor(origangle)
  230. nextangle=v3floor(nextangle)
  231. local tox,toy,toz = 0,0,0
  232. tox = origangle.x > nextangle.x and -mabs(origangle.x - nextangle.x) *perc or mabs(origangle.x - nextangle.x) *perc
  233. toy = origangle.y > nextangle.y and -mabs(origangle.y - nextangle.y) *perc or mabs(origangle.y - nextangle.y) *perc
  234. toz = origangle.z > nextangle.z and -mabs(origangle.z - nextangle.z) *perc or mabs(origangle.z - nextangle.z) *perc
  235. local tox2,toy2,toz2 = 0,0,0
  236. tox2= origpos.x > nextpos.x and -mabs(origpos.x - nextpos.x) *perc or mabs(origpos.x - nextpos.x) *perc
  237. toy2= origpos.y > nextpos.y and -mabs(origpos.y - nextpos.y) *perc or mabs(origpos.y - nextpos.y) *perc
  238. toz2= origpos.z > nextpos.z and -mabs(origpos.z - nextpos.z) *perc or mabs(origpos.z - nextpos.z) *perc
  239. WeldLib[weld][CO] = v3(origangle.x + tox,origangle.y + toy,origangle.z + toz)
  240. weld['C'..CO] = CF(origpos.x + tox2,origpos.y + toy2,origpos.z + toz2)*CA(origangle.x + tox,origangle.y + toy,origangle.z + toz)
  241. end
  242. ----------------------------------------
  243. function GetTriangleValues(Points)
  244. local G, V = 0
  245. for S = 1, 3 do
  246. local L = (Points[1+(S+1)%3]-Points[1+S%3]).magnitude
  247. G, V = L > G and L or G, L > G and {Points[1+(S-1)%3], Points[1+(S)%3], Points[1+(S+1)%3]} or V
  248. end
  249. local D = V[2]+(V[3]-V[2]).unit*((V[3]-V[2]).unit:Dot(V[1]-V[2]))
  250. local C, B = (D-V[1]).unit, (V[2]-V[3]).unit
  251. local A = B:Cross(C)
  252. S1 = V3(0, (V[2]-D).magnitude, (V[1]-D).magnitude)/1 --0.2
  253. S2 = V3(0, (V[3]-D).magnitude, (V[1]-D).magnitude)/1 --0.2
  254. C1 = CF(0,0,0,A.X,B.X,C.X,A.Y,B.Y,C.Y,A.Z,B.Z,C.Z)+(V[1]+V[2])/2
  255. C2 = CF(0,0,0,-A.X,-B.X,C.X,-A.Y,-B.Y,C.Y,-A.Z,-B.Z,C.Z)+(V[1]+V[3])/2
  256. return C1, C2, S1, S2
  257. end
  258. ------
  259. LoopFunctions={}
  260. function DoLoop(times,func)
  261. LoopFunctions[#LoopFunctions+1]={times,0,func}
  262. end
  263. ----------
  264. MeshPack={}
  265. MeshEffect=function(i,ofs,trans,mesh,ofss,col,sc1,sc2) -- Interval>CFrame>Adj
  266. local sc2=sc2
  267. if sc2 and type(sc2)=="number" then sc2=sc1*sc2 end
  268. local ob=INEW("Part",Model)
  269. ob.Anchored=true
  270. ob.CanCollide=false
  271. ob.TopSurface,ob.BottomSurface=0,0
  272. ob.formFactor="Custom"
  273. ob.Name="Effect"
  274. ob.Size=v3(1,1,1)
  275. ob.CFrame=ofs
  276. ob.BrickColor=BrickColor.new(col or EffectColor)
  277. ob.Transparency=trans or 0.5
  278. local obm
  279. if mesh=="Block" or mesh=="Cylinder" then
  280. obm=INEW(mesh.."Mesh",ob)
  281. elseif mesh:sub(1,3)=="htt" or mesh:sub(1,3)=="rbx" then
  282. obm=INEW("SpecialMesh",ob)
  283. obm.MeshType="FileMesh"
  284. obm.MeshId=mesh
  285. else
  286. obm=INEW("SpecialMesh",ob)
  287. obm.MeshType=mesh
  288. end
  289. obm.Scale=sc1 or v3(1,1,1)
  290. MeshPack[#MeshPack+1]={ob,1,-i,ofss or CF0,obm.Scale,sc2 or v30,ob.Transparency}
  291. end
  292. Effect1 = function(orig,adjj,radius,deg,parts,fade,wide,fadespeed)
  293. local orig = orig
  294. local adjj = adjj or CF(0,0,0)
  295. local radius=radius or 8
  296. local deg=deg or 65
  297. local parts=parts or 6
  298. local fade=fade or 1
  299. local wide = wide or 0.2 --mrnd(500,1500)/1000
  300. local fadespeed=fadespeed or 0.05
  301. local part={}
  302. for x=-deg/2,deg/2,deg/parts do
  303. local function reframe(x,radius,wide,orig)
  304. local xa=x-deg/parts/2
  305. local xb=x+deg/parts/2
  306. local xxa=math.sin(math.rad(xa))*radius*wide
  307. local zza=math.cos(math.rad(xa))*radius
  308. local xxb=math.sin(math.rad(xb))*radius*wide
  309. local zzb=math.cos(math.rad(xb))*radius
  310. local xx=math.sin(math.rad(x))*radius*wide
  311. local zz=math.cos(math.rad(x))*radius
  312. local kek=CF(orig*CF(xxa,0,zza).p,orig*CF(xxb,0,zzb).p)*CF(0,0,-(orig*CF(xxa,0,zzb).p-orig*CF(xx,0,zz).p).magnitude)
  313. local len=(orig*CF(xxa,0,zza).p-orig*CF(xxb,0,zzb).p).magnitude
  314. return kek,len
  315. end
  316. local kek,len = reframe(x,radius,wide,orig)
  317. local new=INEW("Part",Model)
  318. new.Anchored=true new.TopSurface=10 new.BottomSurface=10
  319. new.CanCollide=false new.formFactor="Custom" new.Size=v3(0.2,0.2,0.2)
  320. new.BrickColor=BrickColor.new(EffectColor) new.Transparency=0.6
  321. new.CFrame=kek
  322. newm=INEW("BlockMesh",new)
  323. newm.Scale=v3(0.5,0.1,len)*5
  324. part[#part+1]={new,newm,x,CF(fade*radius/(1/fadespeed),0,0),reframe} --part,mesh,x,adj,func
  325. end
  326. DoLoop(1/fadespeed,function(i)
  327. orig=orig*adjj
  328. for x=1,#part do
  329. local kek,len=part[x][5](part[x][3],radius+fade*radius*i,wide,orig)
  330. part[x][1].CFrame=kek
  331. part[x][2].Scale=v3(0.5,0.1,0.01+len)*5
  332. part[x][1].Transparency=0.6+0.4*i
  333. if i==1 then part[x][1]:Remove() end
  334. end
  335. end)
  336. end
  337. newMesh=function(parent,type,sx,sy,sz)
  338. local filemesh
  339. local mesh
  340. if type=="Block" or type=="Cylinder" then
  341. mesh=INEW(type.."Mesh",parent)
  342. elseif type:sub(1,4)=="http" or type:sub(1,3)=="rbx" then
  343. mesh=INEW("SpecialMesh",parent)
  344. mesh.MeshType="FileMesh"
  345. mesh.MeshId=type
  346. filemesh=true
  347. else
  348. mesh=INEW("SpecialMesh",parent)
  349. mesh.MeshType=type
  350. end
  351. if parent.Size.x<0.2001 then parent.CanCollide=false end
  352. local yes=parent.Size.x<0.2001 and 5 or 1
  353. if filemesh then yes=1 end
  354. mesh.Scale=V3(sx or 1,sy or 1,sz or 1)*yes
  355. return mesh
  356. end
  357. Ca=function(a,b,c,d,e,f)
  358. local x,y,z=(CA(a,b,c)*CA(d,e,f)):toEulerAnglesXYZ()
  359. return v3(mdeg(x),mdeg(y),mdeg(z))
  360. end
  361. -----
  362. Ghost={}
  363. NewGhost=function(cff)
  364. local gho=#Ghost+1
  365. Ghost[gho]={}
  366. Ghost[gho][1]=cff
  367. local ghom=INEW('Model',workspace)
  368. ghom.Name=Player.Name..'Ghost'
  369. Ghost[gho][2]=ghom
  370. Ghost[gho][3]=CF(0,1.5,0)*CA(0,90,0)
  371. Ghost[gho].Torso=INEW("Part",ghom) --
  372. Ghost[gho].Torso.formFactor='Custom'
  373. Ghost[gho].Torso.Size=v3(2,2,1)
  374. Ghost[gho].Torso.Name='Torso'
  375. local kek=Ghost[gho].Torso
  376. Ghost[gho].Handle=kek:Clone() Ghost[gho].Handle.Name='Handle' Ghost[gho].Handle.Touched:connect(BladeFunc)
  377. Ghost[gho].Handle.Size=v3(0.4,pol+4,1)local mesh=INEW("SpecialMesh",Ghost[gho].Handle) mesh.MeshType='FileMesh' mesh.MeshId=as.Spear1 mesh.TextureId=as.Spear1T mesh.Scale=v3(3,3,3)
  378. Ghost[gho].Head=Ghost[gho].Handle:Clone() Ghost[gho].Head.Mesh.MeshId=as.Skull Ghost[gho].Head.Mesh.TextureId=''
  379. Ghost[gho].Head.Mesh.Scale=v3(1,1,1)/0.32 Ghost[gho].Head.Size=v3(1,1,1)
  380. Ghost[gho].Head.Name='Head'
  381. Ghost[gho].LA=kek:Clone() Ghost[gho].LA.Name=LA.Name Ghost[gho].LA.Size=v3(1,2,1) --LA:Clone()
  382. local kek=Ghost[gho].LA
  383. Ghost[gho].RA=kek:Clone() Ghost[gho].RA.Name=RA.Name --RA:Clone()
  384. Ghost[gho].LL=kek:Clone() Ghost[gho].LL.Name=LL.Name --LL:Clone()
  385. Ghost[gho].RL=kek:Clone() Ghost[gho].RL.Name=RL.Name --RL:Clone()
  386. Ghost[gho].Torso.Parent=ghom
  387. Ghost[gho].Head.Parent=ghom
  388. Ghost[gho].LA.Parent,Ghost[gho].RA.Parent,Ghost[gho].LL.Parent,Ghost[gho].RL.Parent,Ghost[gho].Handle.Parent=ghom,ghom,ghom,ghom,ghom
  389. local bp=INEW('BodyPosition',Ghost[gho].Handle)
  390. bp.maxForce=v31
  391. bp.Name='bp'
  392. for i,v in pairs(ghom:children()) do v.CanCollide=false if v.Name~='Handle' then v.Anchored=true
  393. v.BrickColor=BrickColor.new'Really black' v.Transparency=0.1 v.TopSurface=0 v.BottomSurface=0 end end
  394. end
  395. ------
  396. AOEDmg = function(pos,ra,dmg,func) -- range get
  397. local p0,p1=pos-v3(ra/2,ra/2,ra/2),pos+v3(ra/2,ra/2,ra/2)
  398. for i,v in pairs(workspace:FindPartsInRegion3(Region3.new(p0,p1),nil,100)) do
  399. local Hum=v.Parent:findFirstChild'Humanoid'
  400. if Hum and Hum.Health>0 and Hum~=Humanoid and (HitDB[Hum]==nil or (HitDB[Hum] and HitDB[Hum]<time())) then
  401. HitDB[Hum]=time()+0.08
  402. fDamage(dmg,v,Hum)
  403. if func then func(v,Hum) end
  404. elseif not Hum then
  405. ---------
  406. end
  407. end
  408. end
  409. -------
  410. GetX = function(Part,Point)
  411. local x,y,z=Part.CFrame:toObjectSpace(CFrame.new(Part.Position,Point)):toEulerAnglesXYZ()
  412. return math.deg(x)
  413. end
  414. GetY = function(Part,Point)
  415. local x,y,z=Part.CFrame:toObjectSpace(CFrame.new(Part.Position,Point)):toEulerAnglesXYZ()
  416. return math.deg(y)
  417. end
  418. -----
  419. --AddBV=function(str,cfr,par,deb,yy)
  420. --return qi{'BodyVelocity',par,velocity=cfr.lookVector*str,maxForce=v3(1/0,not yy and 1/0 or 0,1/0),Debris=deb,n='LibBV'}
  421. ----
  422.  
  423. Name="weapon"
  424. SkinColor="Pastel brown"
  425. Player=Players.Rohan_Kishiba
  426. Character=Player.Character
  427. Torso,Head,Humanoid=Character.Torso,Character.Head,Character.Humanoid
  428. HRP=Character.HumanoidRootPart.RootJoint
  429. Neck=Torso.Neck
  430. oHRP=Character.HumanoidRootPart
  431.  
  432. pcall(function() Player.Backpack[Name]:Remove() end)
  433. pcall(function() Character[Name]:Remove() end)
  434. for i,v in pairs(workspace:children()) do if v.Name==Player.Name.."Ghost" then v:Remove() end end
  435.  
  436. Tool=INEW("HopperBin",Player.Backpack)
  437. Tool.Name=Name
  438.  
  439. Model=INEW("Model",Character)
  440. Model.Name=Name
  441.  
  442. -----------------------------LimbWelds
  443. LA=Character["Left Arm"]
  444. RA=Character["Right Arm"]
  445. LL=Character["Left Leg"]
  446. RL=Character["Right Leg"]
  447. LS=Torso:findFirstChild("Left Shoulder") or _G.LS
  448. RS=Torso:findFirstChild("Right Shoulder") or _G.RS
  449. LH=Torso:findFirstChild("Left Hip") or _G.LL
  450. RH=Torso:findFirstChild("Right Hip") or _G.RL
  451. _G.LS,_G.RS,_G.LH,_G.RH=LS,RS,LH,RH
  452. LA:BreakJoints() RA:BreakJoints() LL:BreakJoints() LL:BreakJoints()
  453. LS.Parent,RS.Parent,LH.Parent,RH.Parent=Torso,Torso,Torso,Torso
  454. LS.Part0,RS.Part0,LH.Part0,RH.Part0=Torso,Torso,Torso,Torso
  455. LS.Part1,RS.Part1,LH.Part1,RH.Part1=LA,RA,LL,RL
  456. cLA0,cLA1=CF(-1.5,0.5,0),CF(0,0.5,0)
  457. cRA0,cRA1=CF(1.5,0.5,0),CF(0,0.5,0)
  458. cLL0,cLL1=CF(-0.5,-1,0),CF(0,1,0)
  459. cRL0,cRL1=CF(0.5,-1,0),CF(0,1,0)
  460. for i,v in pairs{"LS","RS","LH","RH"} do
  461. local w=getfenv()[v]
  462. getfenv()["a"..v.."0"]=_G["RMo1"..v] or w.C0.p
  463. getfenv()["a"..v.."1"]=_G["RMo2"..v] or w.C1.p
  464. local a,b,c=w.C0:toEulerAnglesXYZ()
  465. local x,y,z=w.C1:toEulerAnglesXYZ()
  466. getfenv()["b"..v.."0"]=_G["RMo3"..v] or v3(mdeg(a),mdeg(b),mdeg(c))
  467. getfenv()["b"..v.."1"]=_G["RMo4"..v] or v3(mdeg(x),mdeg(y),mdeg(z))
  468. _G["RMo1"..v]=getfenv()["a"..v.."0"]
  469. _G["RMo2"..v]=getfenv()["a"..v.."1"]
  470. _G["RMo3"..v]=getfenv()["b"..v.."0"]
  471. _G["RMo4"..v]=getfenv()["b"..v.."1"]
  472. end
  473. ------Sounds
  474. for i,v in pairs(Torso:children()) do
  475. if v:IsA'Sound' then v:Remove() end
  476. end
  477. for i,v in pairs(oHRP:children()) do
  478. if v.Name:sub(1,2)=="RM" then v:Remove() end
  479. end
  480. HRPDist = function(pos,adj) return (oHRP.Position-CF(pos,oHRP.Position)*CF(0,0,adj and -adj or 0).p).magnitude end
  481. oBP=INEW("BodyPosition",oHRP)
  482. oBG=INEW("BodyGyro",oHRP)
  483. oBV=INEW("BodyVelocity",oHRP)
  484. oBP.Name="RMBP"
  485. oBG.Name="RMBG"
  486. oBV.Name="RMBV"
  487. oBP.maxForce=v30
  488. oBP.D=500
  489. oBG.maxTorque=v30
  490. oBG.D=100
  491. oBV.maxForce=v30
  492. DoBP=function(pos,adj)
  493. if not pos then oBP.maxForce=v30 return end
  494. oBP.maxForce=v31 --(1/0,0,1/0)
  495. oBP.position=(CF(pos,oHRP.Position)*CF(0,0,adj and -adj or 0)).p
  496. end
  497. DoBG=function(pos)
  498. if not pos then oBG.maxTorque=v30 return end
  499. oBG.maxTorque=v31
  500. oBG.cframe=CF(oHRP.Position,v3(pos.x,oHRP.Position.y,pos.z))
  501. end
  502. for i,n in pairs(so2) do
  503. so[n]={}
  504. so[n].Pitch=1
  505. so[n].Volume=1
  506. so[n].SoundId=as[n]
  507. so[n].Play=function(table)
  508. local v=INEW("Sound",Torso)
  509. v.Volume=so[n].Volume
  510. v.Pitch=so[n].Pitch
  511. v.Looped=false
  512. v.Name=n
  513. v.SoundId=as[n]
  514. v:Play()
  515. Debris:AddItem(v,5)
  516. end
  517. end
  518. SlashPitch=1.3
  519. so.Slash.Pitch=SlashPitch
  520.  
  521. wLA=newWeld(nil,nil,nil,cLA0,cLA1) wLA.Name="left shoulder"
  522. wRA=newWeld(nil,nil,nil,cRA0,cRA1) wRA.Name="right shoulder"
  523. wLL=newWeld(nil,nil,nil,cLL0,cLL1) wLL.Name="left hip"
  524. wRL=newWeld(nil,nil,nil,cRL0,cRL1) wRL.Name="right hip"
  525. Arms = function(on)
  526. if on then
  527. LS.Parent,RS.Parent=nil,nil
  528. LS.Part0,RS.Part0=nil,nil
  529. LS.Part1,RS.Part1=nil,nil
  530. wLA.Parent,wRA.Parent=Torso,Torso
  531. wLA.Part0,wRA.Part0=Torso,Torso
  532. wLA.Part1,wRA.Part1=LA,RA
  533. else
  534. wLA.Parent,wRA.Parent=nil,nil
  535. wLA.Part0,wRA.Part0=nil,nil
  536. wLA.Part1,wRA.Part1=nil,nil
  537. LS.Parent,RS.Parent=Torso,Torso
  538. LS.Part0,RS.Part0=Torso,Torso
  539. LS.Part1,RS.Part1=LA,RA
  540. end
  541. end
  542. LegUse = false
  543. Legs= function(on)
  544. LegUse=on
  545. if on then
  546. LH.Parent,RH.Parent=nil,nil
  547. LH.Part0,RH.Part0=nil,nil
  548. LH.Part1,RH.Part1=nil,nil
  549. wLL.Parent,wRL.Parent=Torso,Torso
  550. wLL.Part0,wRL.Part0=Torso,Torso
  551. wLL.Part1,wRL.Part1=LL,RL
  552. else
  553. wLL.Parent,wRL.Parent=nil,nil
  554. wLL.Part0,wRL.Part0=nil,nil
  555. wLL.Part1,wRL.Part1=nil,nil
  556. LH.Parent,RH.Parent=Torso,Torso
  557. LH.Part0,RH.Part0=Torso,Torso
  558. LH.Part1,RH.Part1=LL,RL
  559. end
  560. end
  561. Arms()
  562. Legs()
  563. WalkBrick=INEW("Part",Model)
  564. WalkBrick.Anchored=true WalkBrick.Size=Vector3.new(1,1,1)
  565. WalkBrick.Transparency=1 WalkBrick.CanCollide=false
  566. WalkBrick.CFrame=CF(0,-10,0)
  567. -----------------------------------------------------
  568. Color1="Black"
  569. Color2="Bright yellow"
  570. Color3="Pastel brown"
  571. EffectColor="Bright yellow"
  572.  
  573. pol=4
  574. Handle=newPart(0,0,0,nil,nil,Color1)
  575. Handlem=newMesh(Handle,"Cylinder",0.2,pol-0.33,0.2)
  576. wHandle=newWeld(Handle,Torso,Handle,CF(0.8,1.5,0.43)*CA(-25,0,135))
  577. tpol=CF(0,2+(pol+4)/2,0)
  578. HitBox=newPart(0.3,tpol.y,0.8)
  579. HitBox.CanCollide=false
  580. HitBox.Transparency=1
  581. wHitBox=newWeld(HitBox,Handle,HitBox,CF(0,tpol.y/2,0))
  582. oHandle0,oHandle1=GetWeld(wHandle)
  583. ---bottomdesignvv
  584. for x=-1,1,2 do
  585. for xx=-1,1,2 do
  586. part=newPart(0,0,0,nil,nil,'Dark stone grey')
  587. partm=newMesh(part,as.diamond,0.2,0.15,0.4)
  588. partw=newWeld(part,Handle,part,CF(0,x*(pol/2-0.08),0*x)*CA(55*xx,0,0))
  589. end
  590. part=newPart(0,0,0,nil,nil,Color1)
  591. partm=newMesh(part,as.cone,0.06,1,0.06)
  592. partw=newWeld(part,Handle,part,CF(0,-pol/2-1.05,0.1*x)*CA(180,0,0))
  593. local thecf=CF(0,-pol/2-0.7,0.1*x)*CA(90*x+(-90*x/3),0,0)
  594. for i=1,3 do
  595. part=newPart(0,0,0,nil,nil,Color1)
  596. partm=newMesh(part,as.cone,0.09,0.4,0.09)
  597. partw=newWeld(part,Handle,part,thecf)
  598. thecf=thecf*CA(-90*x/3,0,0)*CF(0,0.2,0.035*x)
  599. end
  600. end
  601. ---botomdesign^^^
  602. local xx=37
  603. for x=-1,1,2 do
  604. local thecf=CF(0,pol/2,0)
  605. for lel=0.17,0.31,(0.3-0.17)/2 do
  606. part=newPart(0,0,0,nil,nil,Color1)
  607. partm=newMesh(part,"Block",0.12,lel+0.04,0.06)
  608. thecf=thecf*CA(-xx*x,0,0)*CF(0,lel/2,0)
  609. partw=newWeld(part,Handle,part,thecf)
  610. local outline=part:Clone() outline.Parent=part
  611. newWeld(outline,part,outline) outline.Mesh.Scale=outline.Mesh.Scale+(V3(-0.03,0.025,0.03)*5)
  612. outline.BrickColor=BrickColor.new(Color2)
  613. ----
  614. part=newPart(0,0,0,nil,nil,Color1)
  615. partm=newMesh(part,"Block",0.12,lel+0.04,0.06)
  616. thecf=thecf*CF(0,lel/2,0)*CA(xx*2*x,0,0)*CF(0,lel/2,0)
  617. partw=newWeld(part,Handle,part,thecf)
  618. local outline=part:Clone() outline.Parent=part
  619. newWeld(outline,part,outline) outline.Mesh.Scale=outline.Mesh.Scale+(V3(-0.03,0.025,0.03)*5)
  620. outline.BrickColor=BrickColor.new(Color2)
  621. ------
  622. thecf=thecf*CF(0,lel/2,0)*CA(-xx*x,0,0)
  623. end
  624. end
  625. ----botom
  626. local xx=30
  627. for x=-1,1,2 do
  628. local thecf=CF(0,-pol/2,0)*CA(180,0,0)
  629. for lel=0.14,0.26,(0.25-0.14) do
  630. part=newPart(0,0,0,nil,nil,Color1)
  631. partm=newMesh(part,"Block",0.12,lel+0.04,0.06)
  632. thecf=thecf*CA(-xx*x,0,0)*CF(0,lel/2,0)
  633. partw=newWeld(part,Handle,part,thecf)
  634. local outline=part:Clone() outline.Parent=part
  635. newWeld(outline,part,outline) outline.Mesh.Scale=outline.Mesh.Scale+(V3(-0.03,0.025,0.03)*5)
  636. outline.BrickColor=BrickColor.new(Color2)
  637. ----
  638. part=newPart(0,0,0,nil,nil,Color1)
  639. partm=newMesh(part,"Block",0.12,lel+0.04,0.06)
  640. thecf=thecf*CF(0,lel/2,0)*CA(xx*2*x,0,0)*CF(0,lel/2,0)
  641. partw=newWeld(part,Handle,part,thecf)
  642. local outline=part:Clone() outline.Parent=part
  643. newWeld(outline,part,outline) outline.Mesh.Scale=outline.Mesh.Scale+(V3(-0.03,0.025,0.03)*5)
  644. outline.BrickColor=BrickColor.new(Color2)
  645. ------
  646. thecf=thecf*CF(0,lel/2,0)*CA(-xx*x,0,0)
  647. end
  648. end
  649. part=newPart(0,0,0,nil,nil,"Bright orange")
  650. partm=newMesh(part,"Sphere",0.2,0.35,0.35)
  651. partw=newWeld(part,Handle,part,CF(0,pol/2+1.4,0))
  652. partx=newPart(0,0,0,nil,nil,Color3)
  653. newMesh(partx,"Cylinder",0.4,0.11,0.4)
  654. newWeld(part,Handle,partx,CF(0,pol/2+1.4,0)*CA(0,0,90))
  655. part=newPart(0,0,0,nil,nil,Color1)
  656. partm=newMesh(part,"Cylinder",0.36,0.1,0.36)
  657. partw=newWeld(part,Handle,part,CF(0,pol/2+1.45,0)*CA(0,0,90))
  658. ----right half
  659. local blade1=CF(0,pol/2+1.6,-0.15)
  660. --
  661. local blens={2.4,1.6,0.8,0.2,0.3,0.4}
  662. for i=1,3 do
  663. local len=blens[i]
  664. local wid=blens[i+3]
  665. part=newPart(0,0,0,nil,nil,Color1)
  666. partm=newMesh(part,"Wedge",0.1+(0.01*i),len,wid)
  667. partw=newWeld(part,Handle,part,blade1*CF(0,len/2,-0.17+0.3-wid/2))
  668. part=newPart(0,0,0)
  669. partm=newMesh(part,"Wedge",0.06,len,wid)
  670. partw=newWeld(part,Handle,part,blade1*CF(0,len/2,-0.18+0.3-wid/2))
  671. end
  672. --
  673. function makedia(cur,xx,len,ii,ad,ad2)
  674. local ad = ad or 0
  675. local ad2=ad2 or 0
  676. part=newPart(0,0,0,nil,nil,Color1)
  677. partm=newMesh(part,as.diamond,0.05+ad/10,0.25+len,xx/120)
  678. partw=newWeld(part,Handle,part,cur*CA(ii,0,0)*CF(0,0.1+len,0))
  679. for x=-1,1,2 do
  680. part=newPart(0,0,0,nil,nil,Color3)
  681. partm=newMesh(part,"Block",0.12+ad+(0.01*x),len+0.02,0.05+ad2)
  682. partw=newWeld(part,Handle,part,cur*CA(ii,0,0)*CF(0,0.18,0)*CA(xx*x,0,0)*CF(0,len/2,0))
  683. part=newPart(0,0,0,nil,nil,Color3)
  684. partm=newMesh(part,"Block",0.12+ad+(0.01*x),len+0.02,0.05+ad2)
  685. partw=newWeld(part,Handle,part,cur*CA(ii,0,0)*CF(0,0.18,0)*CA(xx*x,0,0)*CF(0,len,0)*CA(-xx*x*2,0,0)*CF(0,len/2,0))
  686. end
  687. end
  688. makedia(blade1*CF(0,-0.29,-0.03+0.025),20,0.4,90+33,0,0.03)
  689. makedia(blade1*CF(0,0.04,0.25),20,0.35,-90-20)
  690. makedia(blade1*CF(0,0.05,0.1),20,0.35,-90-60,0.01)
  691. --makedia(blade1*CF(0,-0.15,-0.025),15,0.4,-90-90,0.05)
  692. part=newPart(0,0,0,nil,nil,Color1)
  693. partm=newMesh(part,as.cone,0.04,0.5,0.18)
  694. partw=newWeld(part,Handle,part,blade1*CF(0,-0.625,-0.1)*CA(-135,0,0)*CF(0,-0.15,0))
  695. local cur=blade1*CF(0,-0.625,-0.1)*CA(-135,0,0)*CF(0,0,0)
  696. for i=1,3 do
  697. part=newPart(0,0,0,nil,nil,Color1)
  698. partm=newMesh(part,as.cone,0.1,0.5,0.1)
  699. partw=newWeld(part,Handle,part,cur)
  700. cur=cur*CA(-23,0,0)*CF(0,0.25,0.02)
  701. end
  702. for i=1,4 do
  703. part=newPart(0,0,0,nil,nil,Color1)
  704. partm=newMesh(part,as.cone,0.1,0.5,0.1)
  705. partw=newWeld(part,Handle,part,cur)
  706. cur=cur*CA(i==7 and 20 or 30,0,0)*CF(0,0.25,-0.02)
  707. end
  708. ---------------------------------------------
  709. ----left half
  710. local blade1=CF(0,pol/2+1.4,0.05)*CA(0,180,0)
  711. --
  712. part=newPart(0,0,0,nil,nil,Color1)
  713. partm=newMesh(part,"Wedge",0.1,2,0.2)
  714. partw=newWeld(part,Handle,part,blade1*CF(0,1,-0.1))
  715. part=newPart(0,0,0)
  716. partm=newMesh(part,"Wedge",0.06,2,0.2)
  717. partw=newWeld(part,Handle,part,blade1*CF(0,1,-0.11))
  718. part=newPart(0,0,0,nil,nil,Color1)
  719. partm=newMesh(part,"Wedge",0.1,0.4,0.37)
  720. partw=newWeld(part,Handle,part,blade1*CF(0,-0.06,-0.23)*CA(-10,0,0))
  721. part=newPart(0,0,0,nil,nil,'')
  722. partm=newMesh(part,"Wedge",0.06,0.4,0.37)
  723. partw=newWeld(part,Handle,part,blade1*CF(0,-0.06,-0.24)*CA(-10,0,0))
  724. part=newPart(0,0,0,nil,nil,Color1)
  725. partm=newMesh(part,"Wedge",0.06,0.2,0.425)
  726. partw=newWeld(part,Handle,part,blade1*CF(0,-0.7,-0.16)*CA(-90-35,0,0))
  727. -----------------------------------------------------------WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW--stufs
  728. --Basic poses:
  729. Pose={"None","Walking","Running","Jumping","Jumping2","Sitting"}
  730. for i,v in pairs(Pose) do
  731. Pose[v]={ --1=Adj Speed 0=C0xyz 1=C1xyz 2=C0abc 3=C1abc
  732. ["Handle"]={[0]=v3(0,-1.1,0),[1]=v3(0,0,0),[2]=v3(-90,0,0),[3]=v3(-20,20,0)},
  733. ["HRP"]={[-1]=0,[0]=v30,[1]=v30,[2]=v3(0,0,0),[3]=v3(0,0,0)},
  734. ["Neck"]={[0]=v3(0,1,0),[1]=v3(0,-0.5,0),[2]=v3(0,0,0),[3]=v3(0,0,0)},
  735. ["LA"]={[-1]=1,[0]=cLA0,[1]=cLA1,[2]=v3(-20,0,-10)},
  736. ["RA"]={[-1]=0.75,[0]=cRA0,[1]=cRA1,[2]=v3(20,20,15)},
  737. ["LH"]={[-1]=1,[0]=aLH0,[1]=aLH1,[2]=bLH0,[3]=bLH1},
  738. ["RH"]={[-1]=1,[0]=aRH0,[1]=aRH1,[2]=bRH0,[3]=bRH1}
  739. }
  740. end
  741. --Fixes
  742. xHRP=v3(-90,0,-180)
  743. xNeck=v3(-90,0,180)
  744. local xHRP0,xHRP1=Pose.None.HRP[0],Pose.None.HRP[1]
  745. HRP.C0=CF(xHRP0.x,xHRP0.y,xHRP0.z)*CA(xHRP.x,xHRP.y,xHRP.z)
  746. HRP.C1=CF(xHRP1.x,xHRP1.y,xHRP1.z)*CA(xHRP.x,xHRP.y,xHRP.z)
  747. local xNeck0,xNeck1=Pose.None.Neck[0],Pose.None.Neck[1]
  748. Neck.C0=CF(xNeck0.x,xNeck0.y,xNeck0.z)*CA(xNeck.x,xNeck.y,xNeck.z)
  749. Neck.C1=CF(xNeck1.x,xNeck1.y,xNeck1.z)*CA(xNeck.x,xNeck.y,xNeck.z)
  750. ------Set pose:
  751. RunLean=30
  752. JumpLean=50
  753. -----Walking
  754. Pose.Walking.HRP[-1]=0.25
  755. Pose.Walking.Handle[3]=v3(0,0,0)
  756. Pose.Walking.RA[2]=v3(0,15,30)
  757. Pose.Walking.LA[2]=v3(0,-15,-20)
  758. Pose.Walking.LA[-1]=1
  759. --Running
  760. Pose.Running.HRP[-1]=1.4
  761. Pose.Running.HRP[2]=v3(-RunLean,0,0)
  762. Pose.Running.Neck[2]=v3(RunLean,0,0)
  763. Pose.Running.Handle[1]=v3(0,1.2,0)
  764. Pose.Running.Handle[3]=v3(-30,0,0)
  765. Pose.Running.RA[2]=v3(-30,-35,15)
  766. Pose.Running.LA[0]=v3(-1.35,0.5,-0.6)
  767. Pose.Running.LA[2]=v3(100,0,30)
  768. Pose.Running.LA[-1]=1
  769. --Jumping
  770. Pose.Jumping.Handle[1]=v3(0,-1.5,0)
  771. Pose.Jumping.Handle[3]=v3(-45,0,0)
  772. Pose.Jumping.RA[2]=v3(200,20,0)
  773. Pose.Jumping.LA[2]=v3(-45,0,-20)
  774. Pose.Jumping.LH[0]=Pose.Jumping.LH[0]+v3(-0.03,0.3,-1)
  775. Pose.Jumping.LH[2]=Pose.Jumping.LH[2]+v3(-45,0,18)
  776. Pose.Jumping.RH[0]=Pose.Jumping.RH[0]+v3(0.03,0.25,-0.3)
  777. Pose.Jumping.RH[2]=Pose.Jumping.RH[2]+v3(-15,0,-18)
  778. --Jumping2
  779. Pose.Jumping2.HRP[2]=v3(-JumpLean,0,0)
  780. Pose.Jumping2.Neck[2]=v3(JumpLean,0,0)
  781. Pose.Jumping2.Handle[1]=v3(0,-1.5,0)
  782. Pose.Jumping2.Handle[3]=v3(-45,0,0)
  783. Pose.Jumping2.RA[2]=v3(200,20,0)
  784. Pose.Jumping2.LA[0]=v3(-1.4,0.6,-0.1)
  785. Pose.Jumping2.LA[2]=v3(180-JumpLean,0,10)
  786. Pose.Jumping2.LH[0]=Pose.Jumping2.LH[0]+v3(-0.03,0.3,-1)
  787. Pose.Jumping2.LH[2]=Pose.Jumping2.LH[2]+v3(-45,0,18)
  788. Pose.Jumping2.RH[0]=Pose.Jumping2.RH[0]+v3(0.03,0.25,-0.3)
  789. Pose.Jumping2.RH[2]=Pose.Jumping2.RH[2]+v3(-15,0,-18)
  790. ---Sitting
  791. Pose.Sitting.Handle[1]=v3(0,1,0)
  792. Pose.Sitting.Handle[3]=v3(-10,0,0)
  793. Pose.Sitting.RA[2]=v3(-50,0,150)
  794. Pose.Sitting.RA[-1]=0
  795. Pose.Sitting.HRP[0]=v3(0,-1.75,0)
  796. Pose.Sitting.HRP[2]=v3(20,0,0)
  797. Pose.Sitting.LH[0]=Pose.Sitting.LH[0]+v3(0,0.1,-0.1)
  798. Pose.Sitting.LH[2]=Ca(70,-90,0,-10,-5,0)
  799. Pose.Sitting.RH[0]=Pose.Sitting.RH[0]+v3(0,0.1,-0.1)
  800. Pose.Sitting.RH[2]=Ca(70,90,0,-10,5,0)
  801. ----------------
  802. Anim="Deselected"
  803. LegAnim="None"
  804. ArmAnim="None"
  805. WalkSpeed=18
  806. WalkM={1,1,1,1,1,1,1,1,1,1} -- multiplier
  807. aSpd=8
  808. BladeTrail=false
  809. JumpDebounce=time()
  810. Key={}
  811. ----------
  812. GetFrontRay = function(cff,Dist,X,Y,Z,Exclude)
  813. local cff = cff or oHRP.CFrame
  814. local Hit,Pos,Hum,Torso
  815. local Hits={}
  816. for i,v in pairs(workspace:children()) do
  817. if v~=Exclude and v~=Character and v:findFirstChild'Humanoid' and v.Humanoid.Health>0 and v:findFirstChild'Torso' then
  818. local cor=cff:toObjectSpace(v.Torso.CFrame)
  819. if cor.x<X[2] and cor.x>X[1] and cor.y<Y[2] and cor.y>Y[1] and -cor.z<Z[2] and -cor.z>Z[1] and -cor.z<Dist then
  820. if Dist>800 then
  821. local i=#Hits+1
  822. Hits[i]={}
  823. Hits[i][1]=v.Torso
  824. Hits[i][2]=v.Humanoid
  825. Hits[i][3]=CF(v3(v.Torso.Position.x,cff.y,v.Torso.Position.z),cff.p)*CF(0,0,-(v.Torso.Size.x+v.Torso.Size.z)/2).p
  826. else
  827. Hit,Pos=v.Torso,CF(v3(v.Torso.Position.x,cff.y,v.Torso.Position.z),cff.p)*CF(0,0,-(v.Torso.Size.x+v.Torso.Size.z)/2).p
  828. Dist,Hum,Torso=-cor.z,v.Humanoid,v.Torso
  829. end
  830. end
  831. end
  832. end
  833. if Dist>800 then return Hits end
  834. return Hit,(Pos or cff*CF(0,0,-Dist-1).p),Dist,Hum,Torso
  835. end
  836. ---------------------------------------------------
  837. onKeyDown = function(k)
  838. local FrontHit,FrontHitPos,FrontHitDist,FrontHitHum,FrontHitTorso=GetFrontRay(nil,200,{-3,3},{-3,3},{5,300})
  839. -------------------------
  840. local MouseHit,MouseHitPos=Mouse.Target,Mouse.Hit.p
  841. local MouseHitDist=(oHRP.Position-MouseHitPos).magnitude
  842. MouseHit=(MouseHit and MouseHit.Parent:IsA'Hat') and MouseHit.Parent.Parent:findFirstChild'Torso' or MouseHit
  843. local MouseHitHum=MouseHit and MouseHit.Parent:findFirstChild'Humanoid'
  844. local MouseHitTorso=MouseHit and MouseHit.Parent:findFirstChild'Torso'
  845. --------------------------------
  846. if k=="0" and Anim=="Walking" then
  847. Anim="Running"
  848. --Pierce Burst
  849. elseif k=="0" and Anim=="Stance1" then
  850. Anim="Stance1P"
  851. local bSpd=aSpd-2
  852. GetRecent()
  853. for i=1,bSpd do
  854. SetWeld(wHandle,1,i,bSpd,phandle1,phandle3,Pose.None.Handle[1]+v3(0,-1.5,0),v3(90,-15,0))
  855. SetWeld(wRA,0,i,bSpd,pra0,pra2,v3(1.1,0.5,-0.7),Ca(90,0,-60,3,0,0))
  856. SetWeld(wLA,0,i,bSpd,pla0,pla2,v3(-1.2,0.5,-0.5),Ca(90,0,-45,3,0,0))
  857. MeshEffect(0.1,oHRP.CFrame*CF(0,-GroundRange+0.5,0),0.5,as.blast,CA(0,10,0),GroundColor,v3(0.5,0.1,0.5)*5,v3(0.5,0,0.5)*5)
  858. wait()
  859. end
  860. repeat ------ repeatative
  861. if FrontHitDist>12 and FrontHitHum then --hax
  862. so.Slash:Play()
  863. MeshEffect(0.1,CF(oHRP.Position,FrontHitPos)*CF(0,0,2),0.5,as.ring,nil,EffectColor,v3(1.5,1.5,0)*5,v3(1,1,0)*5)
  864. DoBP(FrontHitPos,5)
  865. DoBG(FrontHitPos)
  866. local timee=time()
  867. repeat
  868. BladeTrail=true
  869. MeshEffect(0.1,oHRP.CFrame*CF(0,-GroundRange+0.5,0),0.5,as.blast,CA(0,10,0),GroundColor,v3(0.5,0.1,0.5)*5,v3(0.5,0,0.5)*5)
  870. wait() until timee+2.5<time() or HRPDist(FrontHitPos,5)<2
  871. DoBP()
  872. DoBG()
  873. Torso.Velocity=v30
  874. oHRP.Velocity=v30
  875. BladeTrail=false
  876. if HRPDist(FrontHitPos,5)<2 then
  877. AOEDmg(HitBox.CFrame*CF(0,HitBox.Size.y,0).p,8,Damage/2,function() so.Hit:Play() end)
  878. so.Abscond:Play()
  879. local BoomCF=CF(v3(FrontHitPos.x,oHRP.Position.y-3,FrontHitPos.z),oHRP.Position-v3(0,3,0))*CA(0,180,0)
  880. MeshEffect(0.07,BoomCF,0.05,'Sphere',CA(0,0,0),GroundColor,v3(5,5,5),v3(5,10,5))
  881. MeshEffect(0.07,BoomCF*CF(0,0.5,0),0.05,as.blast,CA(0,15,0),GroundColor,v3(5,0.75,5),1.1)
  882. for i=30,360,30 do
  883. MeshEffect(0.08,HitBox.CFrame*CF(0,HitBox.Size.y/2,0)*CA(0,i,165)*CF(0,i%60==0 and 1 or 0,0),0.2,as.diamond,CF(0,0.5,0),EffectColor,v3(0.6,2.4,0.6),v3(0,2,0))
  884. end --mesh360
  885. else
  886. DoBP()
  887. DoBG()
  888. end --dist
  889. end --hax
  890. wait()
  891. FrontHit,FrontHitPos,FrontHitDist,FrontHitHum,FrontHitTorso=GetFrontRay(nil,200,{-3,3},{-3,3},{12,300},FrontHit and FrontHit.Parent)
  892. until not Key[k]
  893. Anim="Stance1P2"
  894. local xhrp0,xhrp1=GetWeld(HRP)
  895. local xa,xb=GetWeld(Neck)
  896. local xr1,xr2=GetWeld(wRA)
  897. local xl1,xl2=GetWeld(wLA)
  898. local xhh1,xhh2=GetWeld(wHandle,1)
  899. for i=1,aSpd do
  900. if Anim~="Stance1P2" then break end
  901. SetWeld(HRP,0,i,aSpd,xhrp0,xhrp1,phrp0,phrp2)
  902. SetWeld(wHandle,1,i,aSpd,xhh1,xhh2,phandle1,phandle3)
  903. SetWeld(wRA,0,i,aSpd,xr1,xr2,pra0,pra2)
  904. SetWeld(wLA,0,i,aSpd,xl1,xl2,pla0,pla2)
  905. wait()
  906. end
  907. if Anim~="Stance1P2" then return end
  908. Anim="Stance1"
  909. --Spinning Slash
  910. elseif k=="q" and Anim=="Stance1" then
  911. Anim="Stance1Spin"
  912. BladeTrail=true
  913. local bSpd=aSpd+5
  914. GetRecent()
  915. so.Slash:Play()
  916. for i=1,bSpd do
  917. SetWeld(HRP,0,i,bSpd,phrp0,phrp2,Pose.None.HRP[0],Pose.None.HRP[2]+v3(-3,-360-70,0))
  918. SetWeld(wHandle,1,i,bSpd,phandle1,phandle3,Pose.None.Handle[1]+v3(0,-1.5,0),v3(111,0,-105))
  919. SetWeld(wRA,0,i,bSpd,pra0,pra2,v3(1.1,0.5,-0.7),Ca(90,0,-45,0,0,0))
  920. SetWeld(wLA,0,i,bSpd,pla0,pla2,v3(-1.2,0.5,-0.5),Ca(90,0,30,0,0,0))
  921. SetWeld(LH,0,i,bSpd,plh0,plh2,Pose.None.LH[0],Ca(0,-90,0,-10,0,0))
  922. SetWeld(RH,0,i,bSpd,prh0,prh2,Pose.None.RH[0],Ca(0,90,0,-20,0,0))
  923. wait()
  924. end
  925. ClearWeld(HRP)
  926. BladeTrail=false
  927. local xhrp0,xhrp1=GetWeld(HRP)
  928. local xa,xb=GetWeld(Neck)
  929. local xr1,xr2=GetWeld(wRA)
  930. local xl1,xl2=GetWeld(wLA)
  931. local xlh1,xlh2=GetWeld(LH)
  932. local xrh1,xrh2=GetWeld(RH)
  933. local xhh1,xhh2=GetWeld(wHandle,1)
  934. for i=1,aSpd do
  935. SetWeld(HRP,0,i,aSpd,xhrp0,xhrp1,phrp0,phrp2)
  936. SetWeld(wHandle,1,i,aSpd,xhh1,xhh2,phandle1,phandle3)
  937. SetWeld(wRA,0,i,aSpd,xr1,xr2,pra0,pra2)
  938. SetWeld(wLA,0,i,aSpd,xl1,xl2,pla0,pla2)
  939. SetWeld(LH,0,i,aSpd,xlh1,xlh2,plh0,plh2)
  940. SetWeld(RH,0,i,aSpd,xrh1,xrh2,prh0,prh2)
  941. wait()
  942. end
  943. Anim="Stance1"
  944. --Jump Slash
  945. elseif k==" " and Anim=="Jumping" and JumpDebounce<time() then
  946. JumpDebounce=time()+1
  947. MeshEffect(0.1,Torso.CFrame*CF(0,-1,0)*CA(180,0,0),0.5,as.blast,CF(0,0.6,0)*CA(0,10,0),EffectColor,v3(0.75,0.2,0.75)*5,v3(0,0.8,0)*5)
  948. Torso.Velocity=v3(Torso.Velocity.x,100,Torso.Velocity.z)
  949. so.Abscond.Pitch=1.3
  950. so.Abscond:Play()
  951. elseif k==" " and Anim=="Jumping2" and GroundRange>6 and JumpDebounce<time() then
  952. JumpDebounce=time()+1
  953. MeshEffect(0.1,Torso.CFrame*CF(0,-1,0)*CA(180,0,0),0.5,as.blast,CF(0,0.6,0)*CA(0,10,0),EffectColor,v3(2,0.5,2),0.3)
  954. Torso.Velocity=v3(Torso.Velocity.x,95,Torso.Velocity.z)
  955. so.Abscond.Pitch=1.3
  956. so.Abscond:Play()
  957. WalkM[3]=1.4
  958. repeat wait() until not Falling
  959. WalkM[3]=1
  960. --Stance two
  961. elseif k=="q" and (Anim=="None" or Anim=="Walking") then
  962. Anim="Stance2Ready"
  963. WalkM[2]=0.25
  964. local hrp0,hrp1=GetWeld(HRP)
  965. local a,b=GetWeld(Neck)
  966. local r1,r2=GetWeld(wRA)
  967. local l1,l2=GetWeld(wLA)
  968. local lh1,lh2=GetWeld(LH)
  969. local rh1,rh2=GetWeld(RH)
  970. local hh1,hh2=GetWeld(wHandle,1)
  971. for i=1,aSpd do
  972. SetWeld(HRP,0,i,aSpd,hrp0,hrp1,Pose.None.HRP[0]+v3(0,-0.7-0.3,0),Pose.None.HRP[2]+v3(-20,70,0))
  973. SetWeld(Neck,0,i,aSpd,a,b,Pose.None.Neck[0],Pose.None.Neck[2]+v3(0,-70,0))
  974. SetWeld(wHandle,1,i,aSpd,hh1,hh2,Pose.None.Handle[1]+v3(0,-1.5,0.2),v3(40-110+35,0,-90+30))
  975. SetWeld(wRA,0,i,aSpd,r1,r2,v3(1.2,0.55,-0.5),Ca(90,30,60-20,0,0,0))
  976. SetWeld(wLA,0,i,aSpd,l1,l2,v3(-1,0.5,-0.55),Ca(100-20,30-0,75-30,0,0,0))
  977. SetWeld(LH,0,i,aSpd,lh1,lh2,Pose.None.LH[0]+v3(0,0.45+0.3,-0.95),Ca(-22,-90,0, 15,0,0))
  978. SetWeld(RH,0,i,aSpd,rh1,rh2,Pose.None.RH[0]+v3(-0.1,0.4+0.3,0.05),Ca(0,90,0,-85,0,0))
  979. wait()
  980. end
  981. Anim="Stance2"
  982. repeat wait() until not Key[k] and Anim=="Stance2"
  983. WalkM[2]=1
  984. Anim="None"
  985. --Stance one
  986. elseif k=="e" and (Anim=="None" or Anim=="Walking") then
  987. Anim="Stance1Ready"
  988. WalkM[2]=0.25
  989. local hrp0,hrp1=GetWeld(HRP)
  990. local a,b=GetWeld(Neck)
  991. local r1,r2=GetWeld(wRA)
  992. local l1,l2=GetWeld(wLA)
  993. local lh1,lh2=GetWeld(LH)
  994. local rh1,rh2=GetWeld(RH)
  995. local hh1,hh2=GetWeld(wHandle,1)
  996. for i=1,aSpd do
  997. SetWeld(HRP,0,i,aSpd,hrp0,hrp1,Pose.None.HRP[0]+v3(0,-0.7,0),Pose.None.HRP[2]+v3(-20,-70,0))
  998. SetWeld(Neck,0,i,aSpd,a,b,Pose.None.Neck[0],Pose.None.Neck[2]+v3(0,70,0))
  999. SetWeld(wHandle,1,i,aSpd,hh1,hh2,Pose.None.Handle[1]+v3(0,-1.5,0.15),v3(40-110,0,-90))
  1000. SetWeld(wRA,0,i,aSpd,r1,r2,v3(1.1,0.5,-0.7),Ca(90,-20,60,0,0,0))
  1001. SetWeld(wLA,0,i,aSpd,l1,l2,v3(-1,0.75,-0.45),Ca(100,-20,75,0,0,0))
  1002. SetWeld(LH,0,i,aSpd,lh1,lh2,Pose.None.LH[0]+v3(0.6,0.4,-0.05),Ca(0,-90,0,-85,0,0))
  1003. SetWeld(RH,0,i,aSpd,rh1,rh2,Pose.None.RH[0]+v3(-0.3,0.45,-0.93),Ca(-22,90,0,-15,0,0))
  1004. wait()
  1005. end
  1006. Anim="Stance1"
  1007. repeat wait() until not Key[k] and Anim=="Stance1"
  1008. WalkM[2]=1
  1009. Anim="None"
  1010. elseif k=="x" and (Anim=="None" or Anim=="Walking") then
  1011. WalkM[2]=0
  1012. Anim="Sitting"
  1013. elseif (k=="x" or k==" ") and Anim=="Sitting" then
  1014. WalkM[2]=1
  1015. Anim="None"
  1016. elseif k =="p" then
  1017. repeat
  1018. Effect1(Torso.CFrame*CF(0,4,0)*CA(mrnd(-30,30),mrnd(-200,200),mrnd(-200,200)),CF(0,0,1.5),8,mrnd(45,150),10,1,0.85,0.1)--cf,Radius,Deg,Parts,Fade,Wide
  1019. wait(0.3)
  1020. until not Key[k]
  1021. elseif k=="[" then
  1022. if #Ghost==0 then
  1023.  
  1024. NewGhost(CF(0,8,0))
  1025. NewGhost(CF(0,16,0))
  1026. NewGhost(CF(0,24,0))
  1027.  
  1028.  
  1029. else
  1030. for i=1,1 do Ghost[i][1]=nil end end
  1031. end
  1032. end
  1033. --
  1034. ---------------------------------------------------
  1035. onKeyUp = function(k)
  1036. if k=="0" and Anim=="Running" then
  1037. Anim="Walking"
  1038. end
  1039. end
  1040. ---------------------------------------------------------------------------------------------BUTTON -WWWWBUTTON
  1041. onButton1Down= function()
  1042. --Jump Slash
  1043. if Anim=="Jumping" and GroundRange>5 and JumpDebounce<time() then
  1044. Anim=" JumpSlash"
  1045. BladeTrail=true
  1046. local a,b=GetWeld(wRA)
  1047. local c,d=GetWeld(wHandle,1)
  1048. so.Slash:Play()
  1049. for i=1,aSpd do
  1050. SetWeld(wRA,0,i,aSpd,a,b,v3(1.5,0.5,0),v3(-20,0,0))
  1051. SetWeld(wHandle,1,i,aSpd,c,d,v3(0,-1.5,0),v3(20,0,-20))
  1052. wait()
  1053. end
  1054. local timee=time()
  1055. repeat wait() until not Falling or timee+2<time() --if DoubleJump then wait(0.5) end -l---
  1056. BladeTrail=false
  1057. Anim="None"
  1058. --DoubleJump Slash
  1059. elseif Anim=="Jumping" and GroundRange>12 and JumpDebounce>time() then
  1060. Anim=" JumpSlash2"
  1061. BladeTrail=1
  1062. GetRecent()
  1063. local timee=time()
  1064. so.Slash.Pitch=2
  1065. local flipdmg=function()
  1066. local Hits=GetFrontRay(Torso.CFrame,999,{-3,3},{-8,8},{-8,8}) for i,v in pairs(Hits) do local Huma=v[2]
  1067. if HitDB[Huma] and HitDB[Huma]>time() then else
  1068. HitDB[Huma]=time()+0.2 fDamage(mrnd(Damage*70,Damage*130)/100,v[1],Huma) so.Hit:Play() end end end
  1069. local steer=oHRP.CFrame:toObjectSpace(CF(oHRP.Position,Mouse.Hit.p))
  1070. local x,y,z = steer:toEulerAnglesXYZ()
  1071. steer=math.deg(-y)
  1072. steer = steer>90 and 90 or steer
  1073. steer = steer<-90 and -90 or steer
  1074. for i=1,aSpd*30 do
  1075. if i%4==0 then so.Slash:Play() end
  1076. local i2=i>aSpd and aSpd or i
  1077. --steer=steer +(Key['q'] and 6 or (Key['e'] and -6 or 0))
  1078. SetWeld(wLA,0,i2,aSpd,pla0,pla2,v3(-1,0.9,0),v3(180,0,30))
  1079. SetWeld(wRA,0,i2,aSpd,pra0,pra2,v3(1,0.9,0),v3(180,0,-30))
  1080. SetWeld(wHandle,1,i2,aSpd,phandle1,phandle3,v3(0.2,-1.5,0),v3(45,30,0))
  1081. SetWeld(HRP,1,i,aSpd*30,phrp0,phrp1,phrp0,v3(360*2*10,0,0))
  1082. SetWeld(HRP,0,1,1,phrp0,phrp2,phrp0+v3(0,-mabs(steer/45),0),v3(0,0,steer))
  1083. flipdmg()
  1084. if (not Falling and timee+(mabs(steer)>30 and 1 or 0.6)<time()) or timee+4<time() then break end
  1085. wait()
  1086. end
  1087. flipdmg()
  1088. so.Slash.Pitch=SlashPitch
  1089. ClearWeld(HRP)
  1090. BladeTrail=false
  1091. Anim="None"
  1092. --RunningJump Slash
  1093. elseif Anim=="Jumping2" and GroundRange>6 and JumpDebounce<time() then
  1094. Anim=" JumpSlash2"
  1095. WalkM[2]=2.5
  1096. BladeTrail=true
  1097. GetRecent()
  1098. local timee=time()
  1099. so.Slash.Pitch=2
  1100. for i=1,aSpd*30 do
  1101. if i%4==0 then so.Slash:Play() end
  1102. local i2=i>aSpd and aSpd or i
  1103. SetWeld(wLA,0,i2,aSpd,pla0,pla2,v3(-1.5,0.5,0),v3(180,0,0))
  1104. SetWeld(wRA,0,i2,aSpd,pra0,pra2,v3(1.5,0.5,0),v3(0,0,90))
  1105. SetWeld(wHandle,1,i2,aSpd,phandle1,phandle3,v3(0.2,-1.5,0),v3(90,110,0))
  1106. SetWeld(HRP,0,i2,aSpd,phrp0,phrp2,phrp0+v3(0,1,0),v3(-110,0,0))
  1107. SetWeld(HRP,1,i,aSpd*30,phrp1,phrp3,phrp1,v3(0,360*2*15,0))
  1108. if (not Falling and timee+0.5<time()) or timee+4<time() then break end
  1109. wait()
  1110. end
  1111. AOEDmg(HitBox.Position,6.5,Damage,function() so.Hit:Play() end)
  1112. WalkM[2]=1
  1113. so.Slash.Pitch=SlashPitch
  1114. ClearWeld(HRP)
  1115. BladeTrail=false
  1116. Anim="None"
  1117. elseif Anim=="Stance1" then
  1118. Anim="Stance1Stab"
  1119. local r1,r2=GetWeld(wRA)
  1120. local l1,l2=GetWeld(wLA)
  1121. local hh1,hh2=GetWeld(wHandle,1)
  1122. so.Slash.Pitch=2
  1123. repeat
  1124. local raise=mrnd(-4,4)*80/4
  1125. local div=2
  1126. for i=1,div do
  1127. SetWeld(wHandle,1,i,div,hh1,hh2,Pose.None.Handle[1]+v3(0,-1.5,0.1),v3(40,0,-90))
  1128. SetWeld(wRA,0,i,div,r1,r2,v3(0.5,0.5,-0.5),Ca(90+raise,-20,-50,0,0,0))
  1129. SetWeld(wLA,0,i,div,l1,l2,v3(-1.6,0.75,0),Ca(100+raise,-20,-15,0,0,0))
  1130. wait()
  1131. end
  1132. AOEDmg(HitBox.Position,4,Damage/3,function() so.Hit:Play() end)
  1133. so.Slash:Play()
  1134. MeshEffect(0.15,Handle.CFrame*CF(0,tpol.y/4,0),0.5,as.cone,CF(0,0.5,0),EffectColor,v3(0.01,4,0.3),v3(0.1,3,0.1))
  1135. local R1,R2=GetWeld(wRA)
  1136. local L1,L2=GetWeld(wLA)
  1137. local HH1,HH2=GetWeld(wHandle,1)
  1138. for i=1,div do
  1139. SetWeld(wHandle,1,i,div,HH1,HH2,hh1,hh2)
  1140. SetWeld(wRA,0,i,div,R1,R2,r1,r2)
  1141. SetWeld(wLA,0,i,div,L1,L2,l1,l2)
  1142. wait()
  1143. end
  1144. wait() until not Button1 or Anim~="Stance1Stab"
  1145. so.Slash.Pitch=SlashPitch
  1146. Anim="Stance1"
  1147. end
  1148. end
  1149. ---------------------------------------------------
  1150. onButton1Up= function()
  1151. end
  1152. ---------------------------------------------------
  1153. Tool.Selected:connect(function(mouse)
  1154. Mouse=mouse
  1155. if Anim=="Deselected" then
  1156. Anim="Selecting"
  1157. Arms(1)
  1158. for x=1,aSpd do
  1159. SetWeld(wRA,0,x,aSpd,cRA0,v30,cRA0+v3(0,0,-0.2),v3(135,0,15))
  1160. wait()
  1161. end
  1162. local w0,w1=GetWeld(wRA)
  1163. for x=1,aSpd do
  1164. SetWeld(wRA,0,x,aSpd,w0,w1,cRA0,v3(200,0,-15))
  1165. wait()
  1166. end
  1167. local a,b=GetWeld(wRA)
  1168. wHandle.C0=RA.CFrame:toObjectSpace(Handle.CFrame)
  1169. wHandle.Part0=RA
  1170. ClearWeld(wHandle)
  1171. local w0,w1=GetWeld(wHandle)
  1172. w1=v3(-360+w1.x,w1.y,w1.z)
  1173. for x=1,aSpd do
  1174. SetWeld(wHandle,0,x,aSpd,w0,w1,Pose.None.Handle[0],Pose.None.Handle[2])
  1175. SetWeld(wHandle,1,x,aSpd,v30,v30,Pose.None.Handle[1],Pose.None.Handle[3])
  1176. SetWeld(wRA,0,x,aSpd,a,b,cRA0,v3(200,0,20))
  1177. wait()
  1178. end
  1179. local a,b=GetWeld(wRA)
  1180. for x=1,aSpd do
  1181. SetWeld(wRA,0,x,aSpd,a,b,Pose.None.RA[0],Pose.None.RA[2])
  1182. wait()
  1183. end
  1184. SetWeld(Neck,0,1,1,nil,nil,Pose.None.Neck[0],Pose.None.Neck[2])
  1185. SetWeld(Neck,1,1,1,nil,nil,Pose.None.Neck[1],Pose.None.Neck[3])
  1186. SetWeld(HRP,0,1,1,nil,nil,Pose.None.HRP[0],Pose.None.HRP[2])
  1187. SetWeld(HRP,1,1,1,nil,nil,Pose.None.HRP[1],Pose.None.HRP[3])
  1188. pcall(function() Character.Animate.Disabled=true end)
  1189. Anim="None"
  1190. end -- anim
  1191. -------------------
  1192. mouse.KeyDown:connect(function(k)
  1193. Key[k]=true
  1194. onKeyDown(k)
  1195. end)
  1196. -------------------------
  1197. mouse.KeyUp:connect(function(k)
  1198. Key[k]=false
  1199. onKeyUp(k)
  1200. end)
  1201. mouse.Button1Down:connect(function()
  1202. Button1=true
  1203. onButton1Down()
  1204. end)
  1205. mouse.Button1Up:connect(function()
  1206. Button1=false
  1207. onButton1Up()
  1208. end)
  1209. end)
  1210. -------------------------------------------------------
  1211. Tool.Deselected:connect(function()
  1212. Mouse=nil
  1213. if Anim=="None" or Anim=="Walking" then
  1214. Anim="Deselecting"
  1215. local a,b=GetWeld(wRA)
  1216. for x=1,aSpd do
  1217. SetWeld(wRA,0,x,aSpd,a,b,cRA0+v3(0,0,-0.2),v3(135,0,15))
  1218. wait()
  1219. end
  1220. local w0,w1=GetWeld(wRA)
  1221. for x=1,aSpd do
  1222. SetWeld(wRA,0,x,aSpd,w0,w1,cRA0,v3(200,0,-15))
  1223. SetWeld(wHandle,0,x,aSpd,Pose.None.Handle[0],Pose.None.Handle[2],Pose.None.Handle[0],Pose.None.Handle[2]+v3(0,45,45))
  1224. wait()
  1225. end
  1226. wHandle.C0=Torso.CFrame:toObjectSpace(Handle.CFrame)
  1227. wHandle.C1=CF(0,0,0)
  1228. wHandle.Part0=Torso
  1229. ClearWeld(wHandle)
  1230. local w0,w1=GetWeld(wHandle)
  1231. for x=1,aSpd do
  1232. SetWeld(wHandle,0,x,aSpd,w0,w1,oHandle0,oHandle1)
  1233. wait()
  1234. end
  1235. local a,b=GetWeld(wRA)
  1236. for x=1,aSpd do
  1237. SetWeld(wRA,0,x,aSpd,a,b,cRA0,cRA1)
  1238. wait()
  1239. end
  1240. Arms()
  1241. SetWeld(Neck,0,1,1,nil,nil,v3(xNeck0.x,xNeck0.y,xNeck0.z),xNeck)
  1242. SetWeld(Neck,1,1,1,nil,nil,v3(xNeck1.x,xNeck1.y,xNeck1.z),xNeck)
  1243. SetWeld(HRP,0,1,1,nil,nil,v3(xHRP0.x,xHRP0.y,xHRP0.z),xHRP)
  1244. SetWeld(HRP,1,1,1,nil,nil,v3(xHRP1.x,xHRP1.y,xHRP1.z),xHRP)
  1245. pcall(function() Character.Animate.Disabled=false end)
  1246. Anim="Deselected"
  1247. end
  1248. end)
  1249.  
  1250. KillEvade=time()
  1251. Damage=18
  1252. HitDB={}
  1253. BladeFunc=function(Hit)
  1254. if Hit.Parent==Model or Hit.Parent==Character or not BladeTrail then return end
  1255. if BladeTrail==1 then return end
  1256. local Huma=Hit.Parent:findFirstChild'Humanoid'
  1257. if not Huma then return end
  1258. if HitDB[Huma] and HitDB[Huma]>time() then return end
  1259. HitDB[Huma]=time()+0.5
  1260. local Dmg=mrnd(Damage*70,Damage*130)/100
  1261. fDamage(Dmg,Hit,Huma)
  1262. so.Hit.Pitch=mrnd(90,115)/100
  1263. so.Hit:Play()
  1264. end
  1265. fDamage=function(Dmg,Hit,Huma)
  1266. if Huma.Health<=0 then return end
  1267. ----------Damage Bar
  1268. Huma:TakeDamage(Dmg)
  1269. local bdmg=INEW("Model",workspace)
  1270. bdmg.Name=math.floor(Dmg)
  1271. Debris:AddItem(bdmg,1.5)
  1272. local bhead=partx:Clone() --taken from weapon part
  1273. bhead.CanCollide=false
  1274. bhead.Parent=bdmg
  1275. bhead.BrickColor=BrickColor.new'Bright red'
  1276. bhead.Mesh.Scale=v3(0.6,0.2,0.6)*5
  1277. bhead.Name="Head"
  1278. bhead.Anchored=true
  1279. bhead.CFrame=CF(Hit.Position)*CF(mrnd(-100,100)/100*1.5,4.25,mrnd(-100,100)/100*1.5)
  1280. local bhuma=INEW("Humanoid",bdmg)
  1281. bhuma.Name="keks"
  1282. bhuma.MaxHealth=0
  1283. ------------------------Effects
  1284. if Hit then
  1285. local blod
  1286. for i=1,3 do
  1287. local y1=mrnd(300,450)/100
  1288. local z1=mrnd(300,450)/100
  1289. local z2=mrnd(400,600)/100
  1290. local blood=INEW("Part",workspace)
  1291. blood.Transparency=1
  1292. blood.formFactor='Custom'
  1293. blood.Anchored=true
  1294. blood.CanCollide=false
  1295. blood.Size=v3(0.2,0.2,0.2)
  1296. blood.CFrame=CF(Hit.Position,HitBox.Position)*CA(mrnd(-15,15),mrnd(-15,15),mrnd(-180,180))*CF(0,0,-z1/2)*CA(-90,0,0)
  1297. if i==1 then blod=blood:Clone() end
  1298. local bloodm=INEW("BlockMesh",blood)
  1299. Debris:AddItem(blood,1.5)
  1300. bloodm.Scale=v3(0,y1,z1)*5
  1301. for i,v in pairs{'Left','Right'} do local dec=INEW('Decal',blood) dec.Name=v dec.Face=v dec.Texture=as.Blood dec.Transparency=0.1
  1302. DoLoop(10,function(i) blood.CFrame=blood.CFrame*CF(0,z2/2/10,0) bloodm.Scale=v3(0,y1+z2*i,z1-z1/2.1*i)*5 dec.Transparency=0.1+0.9*i if i==1 then blood:Remove() end end) end
  1303. end
  1304. local hit2,pos2=ray(Hit.Position,Hit.Position-Hit.CFrame*CF(0,1,0).p,Hit.Parent,10)
  1305. if hit2 then
  1306. local blad=blod:Clone()
  1307. local bloodmm=INEW("BlockMesh",blad)
  1308. blad.Parent=workspace Debris:AddItem(blad,1.5)
  1309. blad.CFrame=CF(pos2)*CF(mrnd(-250,250)/100,0.08,mrnd(-250,250)/100)*CA(0,mrnd(-180,180),0)
  1310. local decx=INEW('Decal',blad) decx.Face='Top' decx.Texture=as.Blood decx.Transparency=0
  1311. bloodmm.Scale=v3(mrnd(200,400)/100,0,mrnd(300,500)/100)*13
  1312. DoLoop(30,function(i) decx.Transparency=1*i bloodmm.Scale=bloodmm.Scale+v3(1,0,1)*5/30/2 if i==1 then blad:Remove() end end)
  1313. end
  1314. end
  1315. -------Special Evade Move
  1316. if Huma.Health-Dmg<=0 and KillEvade<time() and Key['2'] then
  1317. KillEvade=time()+1
  1318. so.Abscond:Play()
  1319. oHRP.CFrame=oHRP.CFrame*CF(0,0,35)
  1320. for i=1,6 do
  1321. MeshEffect(0.04,oHRP.CFrame*CF(0,0,-i*5+2.5)*CA(90,0,0),0.2,'Cylinder',nil,'',v3(4,6,4)*(i-1)/3,-v3(4,0,4)*(i-1)/3)
  1322. end
  1323. end
  1324. end
  1325. HitBox.Touched:connect(BladeFunc)
  1326.  
  1327. poll=1
  1328.  
  1329.  
  1330. Humanoid.FreeFalling:connect(function(v)
  1331. Falling=v
  1332. end)
  1333. Humanoid.Running:connect(function(v)
  1334. Moving=v>3 and true or false
  1335. end)
  1336. Humanoid.Jumping:connect(function(v)
  1337. --print(v)
  1338. end)
  1339.  
  1340. GetRecent=function()
  1341. pneck0,pneck2=GetWeld(Neck)
  1342. pneck1,pneck3=GetWeld(Neck,1)
  1343. phrp0,phrp2=GetWeld(HRP)
  1344. phrp1,phrp3=GetWeld(HRP,1)
  1345. phandle0,phandle2=GetWeld(wHandle)
  1346. phandle1,phandle3=GetWeld(wHandle,1)
  1347. pla0,pla2=GetWeld(wLA)
  1348. pra0,pra2=GetWeld(wRA)
  1349. plh0,plh2=GetWeld(LH)
  1350. plh1,plh3=GetWeld(LH,1)
  1351. prh0,prh2=GetWeld(RH)
  1352. prh1,prh3=GetWeld(RH,1)
  1353. end
  1354.  
  1355. LastPoints={}
  1356.  
  1357.  
  1358. LS:SetDesiredAngle(0)
  1359. RS:SetDesiredAngle(0)
  1360. LS.CurrentAngle=0
  1361. RS.CurrentAngle=0
  1362. WedgeTrail={}
  1363. -----------------WWWWWWWWWWWW wWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
  1364. game:GetService'RunService'.Stepped:connect(function()
  1365. --------ghost sytem
  1366. for x,v in pairs(Ghost) do
  1367. if v[1] then
  1368. v.Torso.CFrame=oHRP.CFrame*v[1]*(oHRP.CFrame:toObjectSpace(Torso.CFrame))
  1369. v.Handle.CFrame=v.Torso.CFrame*(Torso.CFrame:toObjectSpace(wHandle.Part1.CFrame))*v[3]
  1370. v.Handle.bp.position=v.Handle.Position
  1371. v.Handle.Velocity=v30 v.Handle.RotVelocity=v30
  1372. for ii,vv in pairs(v[2]:children()) do if vv.Name~="Torso" and vv.Name~="Handle" then
  1373. local adh=Torso.CFrame:toObjectSpace(Character[vv.Name].CFrame) vv.CFrame=v.Torso.CFrame*adh end end
  1374. else
  1375. for ii,vv in pairs(v[2]:children()) do if v[1]==nil or (v[1] and vv.Name~='Handle') then vv.Transparency=vv.Transparency+0.1
  1376. if vv.Transparency>=1 then v[2]:Remove() Ghost[x]=nil end end end
  1377. end
  1378. end
  1379. end)
  1380. ------------------------------------------------
  1381. local handles={Handle}
  1382. if Character:findFirstChild'Sound' then Character.Sound.Disabled=true end
  1383. Falling=false
  1384. xAngle,yAngle,XAngle,YAngle=0,0,0,0
  1385. Adj=0
  1386. Adjx=1
  1387. GroundRange=0
  1388. Adjt={["None"]=0.3,["Walking"]=1.4,["Running"]=3,["Jumping"]=0,["Jumping2"]=0}
  1389. LegRaise={["None"]={5,0.003},["Walking"]={37,0.1},["Running"]={80,0.22}} LegNega=1
  1390. WSAnim={["Running"]=2,["Jumping2"]=3}
  1391. --sPose={["Jumping"]=1.5}
  1392. count=0
  1393. _G.hrp=wHRP
  1394. _G.rmail=_G.rmail and _G.rmail+1 or 0
  1395. local rmail=_G.rmail
  1396. while _G.rmail==rmail do
  1397. --[[ Anti Fall System
  1398. local tx,ty,tz=oHRP.CFrame:toEulerAnglesXYZ()
  1399. tx,ty,tz=mdeg(tx)%180,mdeg(ty)%180,mdeg(tz)%180
  1400. print(math.floor(tx))
  1401. if v3(oHRP.Velocity.x,0,oHRP.Velocity.z).magnitude>5 and (mabs(tx)>45) then print'kek'
  1402. oHRP.Velocity=v30 oHRP.RotVelocity=v30
  1403. Torso.Velocity=v30 Torso.Velocity=v30
  1404. oHRP.CFrame=CF(oHRP.Position.x+mrnd(-12,12),oHRP.Position.y+1,oHRP.Position.z+mrnd(-12,12))*CA(0,mrnd(-200,200),0)
  1405. end]]
  1406. DoubleJump=JumpDebounce>time() and true or false
  1407. Adjx = mabs(Adj)>16 and -Adjx or Adjx
  1408. local wss=WalkSpeed
  1409. for i,v in pairs(WalkM) do
  1410. wss=wss*v
  1411. end
  1412. WalkM[1]=WSAnim[Anim] or 1
  1413. Humanoid.WalkSpeed=wss
  1414. torvel=(Torso.Velocity*v3(1,0,1)).magnitude
  1415. --Moving=torvel>2 and true or false
  1416. if Anim=="None" and Moving then Anim="Walking" Adj=0 end
  1417. if (Anim=="Walking" or Anim=="Running") and not Moving then Anim="None" Adj=0 end
  1418. if Falling and (Anim=="None" or Anim=="Walking") then Torso.Velocity=Torso.Velocity+v3(0,16,0) Anim="Jumping" Adj=0 end
  1419. if Falling and Anim=="Running" then Torso.Velocity=Torso.Velocity+v3(0,25,0) Anim="Jumping2" so.Slash2:Play()
  1420. MeshEffect(0.1,oHRP.CFrame*CF(0,-GroundRange+0.5,0),0.5,as.blast,CA(0,10,0),GroundColor,v3(0.5,0.1,0.5)*5,v3(0.5,0,0.5)*5) Adj=0 end
  1421. local hit,pos
  1422. local gg=99999
  1423. for i,x in pairs{0,-0.5,0.5,-1.05,1.05} do
  1424. local HCF=oHRP.CFrame*CF(x,0,0)
  1425. hit2,pos2=ray(HCF.p,HCF.p-HCF*CF(0,1,0).p,Character,200)
  1426. local current= (pos2-oHRP.Position).magnitude
  1427. if current<gg then
  1428. gg=current
  1429. GroundRange=current
  1430. hit=hit2
  1431. pos=pos2
  1432. end
  1433. end
  1434. if not Falling and Anim:sub(1,4)=="Jump" then Anim="None" Adj=0 end
  1435. if hit and GroundRange<40 then GroundColor=hit.BrickColor.Name end
  1436. if Pose[Anim] then
  1437. Adj=Adj+(Adjt[Anim] or 1)*Adjx
  1438. local xx = 1 --PoseAnim
  1439. local PoseSpd=10
  1440. local xxAngle=xAngle<-10 and -10 or xAngle
  1441. SetWeld(Neck,0,xx,PoseSpd,pneck10,pneck20,Pose[Anim].Neck[0],Pose[Anim].Neck[2]-v3(-xxAngle/1.5,Adj*Pose[Anim].HRP[-1]-yAngle,-Adj*Pose[Anim].HRP[-1]))
  1442. SetWeld(Neck,1,xx,PoseSpd,pneck30,pneck40,Pose[Anim].Neck[1],Pose[Anim].Neck[3])
  1443. SetWeld(HRP,0,xx,PoseSpd,phrp10,phrp20,Pose[Anim].HRP[0],Pose[Anim].HRP[2]+v3(0,Adj*Pose[Anim].HRP[-1],0))
  1444. SetWeld(HRP,1,xx,PoseSpd,phrp30,phrp40,Pose[Anim].HRP[1],Pose[Anim].HRP[3])
  1445. SetWeld(wHandle,0,xx,PoseSpd,phandle10,phandle20,Pose[Anim].Handle[0],Pose[Anim].Handle[2])
  1446. SetWeld(wHandle,1,xx,PoseSpd,phandle30,phandle40,Pose[Anim].Handle[1],Pose[Anim].Handle[3])
  1447. SetWeld(wRA,0,xx,PoseSpd,pra10,pra20,Pose[Anim].RA[0],Pose[Anim].RA[2]+v3(Adj*Pose[Anim].RA[-1],yAngle,0))
  1448. SetWeld(wLA,0,xx,PoseSpd,pla10,pla20,Pose[Anim].LA[0],Pose[Anim].LA[2]+v3(-Adj*Pose[Anim].LA[-1],yAngle,0))
  1449. SetWeld(LH,0,xx,PoseSpd,plh10,plh20,Pose[Anim].LH[0],Pose[Anim].LH[2])
  1450. SetWeld(LH,1,xx,PoseSpd,plh30,plh40,Pose[Anim].LH[1],Pose[Anim].LH[3])
  1451. SetWeld(RH,0,xx,PoseSpd,prh10,prh20,Pose[Anim].RH[0],Pose[Anim].RH[2])
  1452. SetWeld(RH,1,xx,PoseSpd,prh30,prh40,Pose[Anim].RH[1],Pose[Anim].RH[3])
  1453. else
  1454. end
  1455. --Leg System
  1456. LegNega=LegNega*(LH.DesiredAngle==LH.CurrentAngle and -1 or 1)
  1457. local LegX=35/WalkSpeed*wss
  1458. LegX=LegX>50 and 50 or LegX
  1459. LegX2= 0.065/WalkSpeed*wss
  1460. LegX2=LegX2>0.2 and 0.2 or LegX2
  1461. LH:SetDesiredAngle(math.rad(LegRaise[Anim] and LegRaise[Anim][1] or ((Moving and not Humanoid.Jump) and LegX or 0))*LegNega)
  1462. RH:SetDesiredAngle(LH.DesiredAngle)
  1463. if math.abs(LH.DesiredAngle)>=math.abs(LH.CurrentAngle) then
  1464. LH.MaxVelocity=LegRaise[Anim] and LegRaise[Anim][2] or LegX2
  1465. RH.MaxVelocity=LH.MaxVelocity
  1466. end
  1467. -----------------------
  1468. if BladeTrail then
  1469. for i,handle in pairs(handles) do
  1470. local C1, C2, S1, S2 = GetTriangleValues({
  1471. handle.CFrame*tpol.p,
  1472. handle.Position,
  1473. LastPoints[handle][1]
  1474. })
  1475. local Triangle1 = Instance.new("WedgePart", Model)
  1476. for i,v in pairs{"Top","Bottom","Left","Right","Front","Back"} do Triangle1[v.."Surface"]=10 end
  1477. Triangle1.Anchored = true
  1478. Triangle1.BrickColor = BrickColor.new(EffectColor)
  1479. Triangle1.FormFactor = 3
  1480. Triangle1.Transparency = 0.6
  1481. Triangle1.Size = V3(1, 1, 1)
  1482. Triangle1.CanCollide=false
  1483. Triangle1.CFrame = C1
  1484. local Triangle1Mesh = Instance.new("SpecialMesh", Triangle1)
  1485. Triangle1Mesh.MeshType = "Wedge"
  1486. Triangle1Mesh.Scale = S1
  1487. Triangle1Mesh.Name="kek"
  1488. local Triangle2 = Triangle1:Clone()
  1489. Triangle2.Parent = Model
  1490. Triangle2.CFrame = C2
  1491. Triangle2.kek.Scale = S2
  1492. local C1, C2, S1, S2 = GetTriangleValues({
  1493. handle.Position,
  1494. LastPoints[handle][1],
  1495. LastPoints[handle][2]
  1496. })
  1497. local Triangle3 = Triangle1:Clone()
  1498. Triangle3.Parent = Model
  1499. Triangle3.CFrame = C1
  1500. Triangle3.kek.Scale = S1
  1501. local Triangle4 = Triangle1:Clone()
  1502. Triangle4.Parent = Model
  1503. Triangle4.CFrame = C2
  1504. Triangle4.kek.Scale = S2
  1505. WedgeTrail[#WedgeTrail+1]=Triangle1
  1506. WedgeTrail[#WedgeTrail+1]=Triangle2
  1507. WedgeTrail[#WedgeTrail+1]=Triangle3
  1508. WedgeTrail[#WedgeTrail+1]=Triangle4
  1509. end
  1510. end
  1511. LastPoints[Handle]={[1]=Handle.CFrame*tpol.p,[2]=Handle.Position}
  1512. for i,v in pairs(Ghost) do handles[v.Handle]=v.Handle LastPoints[v.Handle]={[1]=v.Handle.CFrame*tpol.p,[2]=v.Handle.Position} end
  1513. -----------------------
  1514. for i,v in pairs(WedgeTrail) do
  1515. if v.Transparency>=1 then v:Remove() WedgeTrail[i]=nil
  1516. else
  1517. v.Transparency=v.Transparency+0.1
  1518. end
  1519. end
  1520. for i,v in pairs(MeshPack) do
  1521. v[2]=v[2]+v[3]
  1522. if v[2]<=0 then
  1523. v[1]:Remove()
  1524. MeshPack[i]=nil
  1525. else
  1526. v[1].Transparency=v[7]+((1-v[7])-(1-v[7])*v[2])
  1527. v[1].Mesh.Scale=v[5]+(v[6]*(1-v[2]))
  1528. v[1].CFrame=v[1].CFrame*v[4]
  1529. end
  1530. end
  1531. -------------
  1532. --DoLoop Package
  1533. for i,v in pairs(LoopFunctions) do
  1534. v[2]=v[2]+1
  1535. v[3](v[2]/v[1])
  1536. if v[1]<=v[2] then LoopFunctions[i]=nil end
  1537. end
  1538. ----
  1539. if Mouse then
  1540. XAngle = GetX(oHRP,Mouse.Hit.p)
  1541. YAngle = GetY(oHRP,Mouse.Hit.p)
  1542. else
  1543. XAngle = 0
  1544. YAngle = 0
  1545. end
  1546. xAngle=XAngle
  1547. yAngle=YAngle
  1548. xAngle=xAngle>45 and 45 or xAngle
  1549. xAngle=xAngle<-45 and -45 or xAngle
  1550. yAngle=yAngle>45 and 45 or yAngle
  1551. yAngle=yAngle<-45 and -45 or yAngle
  1552. wait(0.0275)
  1553. count=count+1
  1554. end
Add Comment
Please, Sign In to add comment