daily pastebin goal
21%
SHARE
TWEET

WINGS SCRIPT [ROBLOX, YT CHANNEL]

iiAdqm Sep 13th, 2017 98 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --[[                                              
  2. Script shared by Adam Zakayev                                              ]]
  3.  
  4. --Press Space twice to fly
  5. --Press Q to go down
  6. --Press A twice for a Wings spin
  7. --Press D twice for a Wings spin
  8.  
  9. script.Parent = nil
  10.  
  11. function fly()
  12.  
  13. for i,v in pairs(script:GetChildren()) do
  14.  
  15.         pcall(function() v.Value = "" end)
  16.  
  17.         game:GetService("Debris"):AddItem(v,.1)
  18.  
  19. end
  20.  
  21. function weld(p0,p1,c0,c1,par)
  22.  
  23.         local w = Instance.new("Weld",p0 or par)
  24.  
  25.         w.Part0 = p0
  26.  
  27.         w.Part1 = p1
  28.  
  29.         w.C0 = c0 or CFrame.new()
  30.  
  31.         w.C1 = c1 or CFrame.new()
  32.  
  33.         return w
  34.  
  35. end
  36.  
  37. local motors = {}
  38.  
  39. function motor(p0,p1,c0,c1,des,vel,par)
  40.  
  41.         local w = Instance.new("Motor6D",p0 or par)
  42.  
  43.         w.Part0 = p0
  44.  
  45.         w.Part1 = p1
  46.  
  47.         w.C0 = c0 or CFrame.new()
  48.  
  49.         w.C1 = c1 or CFrame.new()
  50.  
  51.         w.MaxVelocity = tonumber(vel) or .05
  52.  
  53.         w.DesiredAngle = tonumber(des) or 0
  54.  
  55.         return w
  56.  
  57. end
  58.  
  59. function lerp(a,b,c)
  60.  
  61.     return a+(b-a)*c
  62.  
  63. end
  64.  
  65. function clerp(c1,c2,al)
  66.  
  67.         local com1 = {c1.X,c1.Y,c1.Z,c1:toEulerAnglesXYZ()}
  68.  
  69.         local com2 = {c2.X,c2.Y,c2.Z,c2:toEulerAnglesXYZ()}
  70.  
  71.         for i,v in pairs(com1) do
  72.  
  73.                 com1[i] = lerp(v,com2[i],al)
  74.  
  75.         end
  76.  
  77.         return CFrame.new(com1[1],com1[2],com1[3]) * CFrame.Angles(select(4,unpack(com1)))
  78.  
  79. end
  80.  
  81. function ccomplerp(c1,c2,al)
  82.  
  83.         local com1 = {c1:components()}
  84.  
  85.         local com2 = {c2:components()}
  86.  
  87.         for i,v in pairs(com1) do
  88.  
  89.                 com1[i] = lerp(v,com2[i],al)
  90.  
  91.         end
  92.  
  93.         return CFrame.new(unpack(com1))
  94.  
  95. end
  96.  
  97. function tickwave(time,length,offset)
  98.  
  99.         return (math.abs((tick()+(offset or 0))%time-time/2)*2-time/2)/time/2*length
  100.  
  101. end
  102.  
  103. function invcol(c)
  104.  
  105.         c = c.Color
  106.  
  107.         return BrickColor.new(Color3.new(1-c.b,1-c.g,1-c.r))
  108.  
  109. end
  110.  
  111. local oc = oc or function(...) return ... end
  112.  
  113. local plr = game.Players.LocalPlayer
  114.  
  115. local char = plr.Character
  116.  
  117. local tor = char.Torso
  118.  
  119. local hum = char.Humanoid
  120.  
  121. hum.PlatformStand = false
  122.  
  123. pcall(function()
  124.  
  125.         char.Wings:Destroy()
  126.  
  127. end)
  128.  
  129. pcall(function()
  130.  
  131.         char.Angel:Destroy() -- hat
  132.  
  133. end)
  134.  
  135. local mod = Instance.new("Model",char)
  136.  
  137. mod.Name = "Wings"
  138.  
  139. local special = {
  140.  
  141.         --antiboomz0r = {"Really black","Institutional white",0,0,false,Color3.new(1,1,.95),Color3.new(1,1,.6)},
  142.  
  143.         antiboomz0r = {"New Yeller",nil,0.4,0.7,true,Color3.new(1,1,.95),Color3.new(1,1,.6)},
  144.  
  145.         --antiboomz0r = {"Cyan","Toothpaste",0,0,false,Color3.new(1,0,0),Color3.new(0,0,0)},
  146.  
  147.         taart = {"Royal purple",nil,.4,.4,true},
  148.  
  149.         mitta = {"Black",nil,0,0,false},
  150.  
  151.         penjuin3 = {"White",nil,0,0,false},
  152.  
  153.         thepc8110 = {"Black","Bright red",.5,0,false,Color3.new(1,0,0),Color3.new(0,0,0)},
  154.  
  155.         nonspeaker = {"Cyan","Toothpaste",0,0,false,Color3.new(1,0,0),Color3.new(0,0,0)},
  156.  
  157.         littleau999 = {"Reddish brown",1030,0,0,false},
  158.  
  159.         unscripter = {"Really black","Really black",.2,0,true,Color3.new(0,0,0),Color3.new(0,0,0)},
  160.  
  161.         oxcool1 = {"Really black","White",.2,0,false,Color3.new(0,0,0),Color3.new(0,0,0)},
  162.  
  163.         krodmiss = {"Really black",nil,0,0,false},
  164.  
  165. }
  166.  
  167. local topcolor = invcol(char.Torso.BrickColor)
  168.  
  169. local feacolor = char.Torso.BrickColor
  170.  
  171. local ptrans = 0
  172.  
  173. local pref = 0
  174.  
  175. local fire = false
  176.  
  177. local fmcol = Color3.new()
  178.  
  179. local fscol = Color3.new()
  180.  
  181. local spec = special[plr.Name:lower()]
  182.  
  183. if spec then
  184.  
  185.         topcolor,feacolor,ptrans,pref,fire,fmcol,fscol = spec[1] and BrickColor.new(spec[1]) or topcolor,spec[2] and BrickColor.new(spec[2]) or feacolor,spec[3],spec[4],spec[5],spec[6],spec[7]
  186.  
  187. end
  188.  
  189. local part = Instance.new("Part")
  190.  
  191. part.FormFactor = "Custom"
  192.  
  193. part.Size = Vector3.new(.2,.2,.2)
  194.  
  195. part.TopSurface,part.BottomSurface = 0,0
  196.  
  197. part.CanCollide = false
  198.  
  199. part.BrickColor = topcolor
  200.  
  201. part.Transparency = ptrans
  202.  
  203. part.Reflectance = pref
  204.  
  205. local ef = Instance.new("Fire",fire and part or nil)
  206.  
  207. ef.Size = .15
  208.  
  209. ef.Color = fmcol or Color3.new()
  210.  
  211. ef.SecondaryColor = fscol or Color3.new()
  212.  
  213. part:BreakJoints()
  214.  
  215.  
  216. function newpart()
  217.  
  218.         local clone = part:Clone()
  219.  
  220.         clone.Parent = mod
  221.  
  222.         clone:BreakJoints()
  223.  
  224.         return clone
  225.  
  226. end
  227.  
  228. local feath = newpart()
  229.  
  230. feath.BrickColor = feacolor
  231.  
  232. feath.Transparency = 0
  233.  
  234. Instance.new("SpecialMesh",feath).MeshType = "Sphere"
  235.  
  236. function newfeather()
  237.  
  238.         local clone = feath:Clone()
  239.  
  240.         clone.Parent = mod
  241.  
  242.         clone:BreakJoints()
  243.  
  244.         return clone
  245.  
  246. end
  247.  
  248.  
  249. ---------- RIGHT WING
  250.  
  251. local r1 = newpart()
  252.  
  253. r1.Size = Vector3.new(.3,1.5,.3)*1.2
  254.  
  255. local rm1 = motor(tor,r1,CFrame.new(.35,.6,.4) * CFrame.Angles(0,0,math.rad(-60)) * CFrame.Angles(math.rad(30),math.rad(-25),0),CFrame.new(0,-.8,0),.1)
  256.  
  257. local r2 = newpart()
  258.  
  259. r2.Size = Vector3.new(.4,1.8,.4)*1.2
  260.  
  261. local rm2 = motor(r1,r2,CFrame.new(0,.75,0) * CFrame.Angles(0,0,math.rad(50)) * CFrame.Angles(math.rad(-30),math.rad(15),0),CFrame.new(0,-.9,0),.1)
  262.  
  263. local r3 = newpart()
  264.  
  265. r3.Size = Vector3.new(.3,2.2,.3)*1.2
  266.  
  267. local rm3 = motor(r2,r3,CFrame.new(.1,.9,0) * CFrame.Angles(0,0,math.rad(-140)) * CFrame.Angles(math.rad(-3),0,0),CFrame.new(0,-1.1,0),.1)
  268.  
  269. local r4 = newpart()
  270.  
  271. r4.Size = Vector3.new(.25,1.2,.25)*1.2
  272.  
  273. local rm4 = motor(r3,r4,CFrame.new(0,1.1,0) * CFrame.Angles(0,0,math.rad(-10)) * CFrame.Angles(math.rad(-3),0,0),CFrame.new(0,-.6,0),.1)
  274.  
  275. local feather = newfeather()
  276.  
  277. feather.Mesh.Scale = Vector3.new(1,1,1)
  278.  
  279. feather.Size = Vector3.new(.4,3,.3)
  280.  
  281. weld(r4,feather,CFrame.new(-.1,-.3,0),CFrame.new(0,-1.5,0))
  282.  
  283. feather = newfeather()
  284.  
  285. feather.Mesh.Scale = Vector3.new(1,1,1)
  286.  
  287. feather.Size = Vector3.new(.4,2.3,.3)
  288.  
  289. weld(r4,feather,CFrame.new(.1,-.1,0) * CFrame.Angles(0,math.random()*.1,0),CFrame.new(0,-1.1,0))
  290.  
  291. feather = newfeather()
  292.  
  293. feather.Mesh.Scale = Vector3.new(1,1,1)
  294.  
  295. feather.Size = Vector3.new(.35,2.2,.25)
  296.  
  297. weld(r4,feather,CFrame.new(.1,-.3,0) * CFrame.Angles(0,math.random()*.1,math.rad(-10)),CFrame.new(0,-1.1,0))
  298.  
  299. local rf3 = {}
  300.  
  301. for i=0,7 do
  302.  
  303.         feather = newfeather()
  304.  
  305.         feather.Mesh.Scale = Vector3.new(1,1,1)
  306.  
  307.         feather.Size = Vector3.new(.45,2.2,.35)
  308.  
  309.         table.insert(rf3,motor(r3,feather,CFrame.new(.05,1-i*.285,0) * CFrame.Angles(0,math.random()*.1,math.rad(-25-i*2)),CFrame.new(0,-feather.Size.Y/2,0)))
  310.  
  311. end
  312.  
  313. local rf2 = {}
  314.  
  315. for i=0,6 do
  316.  
  317.         feather = newfeather()
  318.  
  319.         feather.Mesh.Scale = Vector3.new(1,1,1)
  320.  
  321.         feather.Size = Vector3.new(.45,2.2-i*.08,.3)
  322.  
  323.         table.insert(rf2,motor(r2,feather,CFrame.new(.05,.75-i*.26,0) * CFrame.Angles(0,math.random()*.1,math.rad(-75-i*4)),CFrame.new(0,-feather.Size.Y/2,0)))
  324.  
  325. end
  326.  
  327. local rf1 = {}
  328.  
  329. for i=0,6 do
  330.  
  331.         feather = newfeather()
  332.  
  333.         feather.Mesh.Scale = Vector3.new(1,1,1)
  334.  
  335.         feather.Size = Vector3.new(.37,1.65-i*.06,.25)
  336.  
  337.         table.insert(rf1,motor(r1,feather,CFrame.new(.05,.63-i*.21,0) * CFrame.Angles(0,math.random()*.05,math.rad(-75)),CFrame.new(0,-feather.Size.Y/2,0)))
  338.  
  339. end
  340.  
  341. ---------- LEFT WING
  342.  
  343. local l1 = newpart()
  344.  
  345. l1.Size = Vector3.new(.3,1.5,.3)*1.2
  346.  
  347. local lm1 = motor(tor,l1,CFrame.new(-.35,.6,.4) * CFrame.Angles(0,0,math.rad(60)) * CFrame.Angles(math.rad(30),math.rad(25),0) * CFrame.Angles(0,-math.pi,0),CFrame.new(0,-.8,0) ,.1)
  348.  
  349. local l2 = newpart()
  350.  
  351. l2.Size = Vector3.new(.4,1.8,.4)*1.2
  352.  
  353. local lm2 = motor(l1,l2,CFrame.new(0,.75,0) * CFrame.Angles(0,0,math.rad(50)) * CFrame.Angles(math.rad(30),math.rad(-15),0),CFrame.new(0,-.9,0),.1)
  354.  
  355. local l3 = newpart()
  356.  
  357. l3.Size = Vector3.new(.3,2.2,.3)*1.2
  358.  
  359. local lm3 = motor(l2,l3,CFrame.new(.1,.9,0) * CFrame.Angles(0,0,math.rad(-140)) * CFrame.Angles(math.rad(3),0,0),CFrame.new(0,-1.1,0),.1)
  360.  
  361. local l4 = newpart()
  362.  
  363. l4.Size = Vector3.new(.25,1.2,.25)*1.2
  364.  
  365. local lm4 = motor(l3,l4,CFrame.new(0,1.1,0) * CFrame.Angles(0,0,math.rad(-10)) * CFrame.Angles(math.rad(3),0,0),CFrame.new(0,-.6,0),.1)
  366.  
  367. local feather = newfeather()
  368.  
  369. feather.Mesh.Scale = Vector3.new(1,1,1)
  370.  
  371. feather.Size = Vector3.new(.4,3,.3)
  372.  
  373. weld(l4,feather,CFrame.new(-.1,-.3,0),CFrame.new(0,-1.5,0))
  374.  
  375. feather = newfeather()
  376.  
  377. feather.Mesh.Scale = Vector3.new(1,1,1)
  378.  
  379. feather.Size = Vector3.new(.4,2.3,.3)
  380.  
  381. weld(l4,feather,CFrame.new(.1,-.1,0) * CFrame.Angles(0,math.random()*.1,0),CFrame.new(0,-1.1,0))
  382.  
  383. feather = newfeather()
  384.  
  385. feather.Mesh.Scale = Vector3.new(1,1,1)
  386.  
  387. feather.Size = Vector3.new(.35,2.2,.25)
  388.  
  389. weld(l4,feather,CFrame.new(.1,-.3,0) * CFrame.Angles(0,math.random()*.1,math.rad(-10)),CFrame.new(0,-1.1,0))
  390.  
  391. local lf3 = {}
  392.  
  393. for i=0,7 do
  394.  
  395.         feather = newfeather()
  396.  
  397.         feather.Mesh.Scale = Vector3.new(1,1,1)
  398.  
  399.         feather.Size = Vector3.new(.45,2.2,.35)
  400.  
  401.         table.insert(lf3,motor(l3,feather,CFrame.new(.05,1-i*.285,0) * CFrame.Angles(0,math.random()*.1,math.rad(-25-i*2)),CFrame.new(0,-feather.Size.Y/2,0)))
  402.  
  403. end
  404.  
  405. local lf2 = {}
  406.  
  407. for i=0,6 do
  408.  
  409.         feather = newfeather()
  410.  
  411.         feather.Mesh.Scale = Vector3.new(1,1,1)
  412.  
  413.         feather.Size = Vector3.new(.45,2.2-i*.08,.3)
  414.  
  415.         table.insert(lf2,motor(l2,feather,CFrame.new(.05,.75-i*.26,0) * CFrame.Angles(0,math.random()*.1,math.rad(-75-i*4)),CFrame.new(0,-feather.Size.Y/2,0)))
  416.  
  417. end
  418.  
  419. local lf1 = {}
  420.  
  421. for i=0,6 do
  422.  
  423.         feather = newfeather()
  424.  
  425.         feather.Mesh.Scale = Vector3.new(1,1,1)
  426.  
  427.         feather.Size = Vector3.new(.37,1.65-i*.06,.25)
  428.  
  429.         table.insert(lf1,motor(l1,feather,CFrame.new(.05,.63-i*.21,0) * CFrame.Angles(0,math.random()*.05,math.rad(-75)),CFrame.new(0,-feather.Size.Y/2,0)))
  430.  
  431. end
  432.  
  433. local rwing = {rm1,rm2,rm3,rm4}
  434.  
  435. local lwing = {lm1,lm2,lm3,lm4}
  436.  
  437. local oc0 = {}
  438.  
  439. for i,v in pairs(rwing) do
  440.  
  441.         oc0[v] = v.C0
  442.  
  443. end
  444.  
  445. for i,v in pairs(lwing) do
  446.  
  447.         oc0[v] = v.C0
  448.  
  449. end
  450.  
  451. function gotResized()
  452.  
  453.         if lastsize then
  454.  
  455.                 if tor.Size == lastsize then return end -- This shouldn't happen?
  456.  
  457.                 local scaleVec = tor.Size/lastsize
  458.  
  459.                 for i,v in pairs(oc0) do
  460.  
  461.                         oc0[i] = v-v.p+scaleVec*v.p
  462.  
  463.                 end
  464.  
  465.                 lastsize = tor.Size
  466.  
  467.         end
  468.  
  469.         lastsize = tor.Size
  470.  
  471. end
  472.  
  473. tor.Changed:connect(function(p)
  474.  
  475.         if p == "Size" then
  476.  
  477.                 gotResized()
  478.  
  479.         end
  480.  
  481. end)
  482.  
  483. gotResized()
  484.  
  485. local idle = {0,0.5,-.2,0; .05,.05,.1,.05; -.6,-1.5,.1,0;}--0,.3,0,0
  486.  
  487. local outlow = {-.7,-.2,1.8,0; .3,.05,.1,.05; .2,0,0,0}
  488.  
  489. local outhigh = {.5,-.2,1.8,0; .3,.05,.1,.05; .2,0,0,0}
  490.  
  491. local veryhigh = {.9,-.3,1.9,0; .3,.05,.1,.05; .2,0,0,0}
  492.  
  493. local flap1 = {-.3,.3,1.1,-.2; .3,.05,.1,.05; .2,-.6,0,0}
  494.  
  495. local divebomb = {0,.2,.4,-.7; .3,.05,.1,.05; 0,-.5,-.6,0}
  496.  
  497.  
  498. function setwings(tab,time)
  499.  
  500.         time = time or 10
  501.  
  502.         for i=1,4 do
  503.  
  504.                 rwing[i].DesiredAngle = tab[i]
  505.  
  506.                 lwing[i].DesiredAngle = tab[i]
  507.  
  508.                 rwing[i].MaxVelocity = math.abs(tab[i]-rwing[i].CurrentAngle)/time
  509.  
  510.                 lwing[i].MaxVelocity = math.abs(tab[i]-lwing[i].CurrentAngle)/time
  511.  
  512.                 local rcf = oc0[rwing[i]] * (tab[12+i] or CFrame.new())
  513.  
  514.                 local lcf = oc0[lwing[i]] * (tab[12+i] or CFrame.new())
  515.  
  516.         end
  517.  
  518.         for i,v in pairs(rf1) do
  519.  
  520.                 v.DesiredAngle = tab[9]
  521.  
  522.                 v.MaxVelocity = math.abs(v.DesiredAngle-v.CurrentAngle)/time
  523.  
  524.         end
  525.  
  526.         for i,v in pairs(lf1) do
  527.  
  528.                 v.DesiredAngle = tab[9]
  529.  
  530.                 v.MaxVelocity = math.abs(v.DesiredAngle-v.CurrentAngle)/time
  531.  
  532.         end
  533.  
  534.         for i,v in pairs(rf2) do
  535.  
  536.                 v.DesiredAngle = tab[10]
  537.  
  538.                 v.MaxVelocity = math.abs(v.DesiredAngle-v.CurrentAngle)/time
  539.  
  540.         end
  541.  
  542.         for i,v in pairs(lf2) do
  543.  
  544.                 v.DesiredAngle = tab[10]
  545.  
  546.                 v.MaxVelocity = math.abs(v.DesiredAngle-v.CurrentAngle)/time
  547.  
  548.         end
  549.  
  550.         for i,v in pairs(rf3) do
  551.  
  552.                 v.DesiredAngle = tab[11]
  553.  
  554.                 v.MaxVelocity = math.abs(v.DesiredAngle-v.CurrentAngle)/time
  555.  
  556.         end
  557.  
  558.         for i,v in pairs(lf3) do
  559.  
  560.                 v.DesiredAngle = tab[11]
  561.  
  562.                 v.MaxVelocity = math.abs(v.DesiredAngle-v.CurrentAngle)/time
  563.  
  564.         end
  565.  
  566. end
  567.  
  568. setwings(outhigh,1)
  569.  
  570. flying = false
  571.  
  572. moving = false
  573.  
  574. for i,v in pairs(tor:GetChildren()) do
  575.  
  576.         if v.ClassName:lower():match("body") then
  577.  
  578.                 v:Destroy()
  579.  
  580.         end
  581.  
  582. end
  583.  
  584. local ctor = tor:Clone()
  585.  
  586. ctor:ClearAllChildren()
  587.  
  588. ctor.Name = "cTorso"
  589.  
  590. ctor.Transparency = 1
  591.  
  592. ctor.CanCollide = false
  593.  
  594. ctor.FormFactor = "Custom"
  595.  
  596. ctor.Size = Vector3.new(.2,.2,.2)
  597.  
  598. ctor.Parent = mod
  599.  
  600. weld(tor,ctor)
  601.  
  602. local bg = Instance.new("BodyGyro",ctor)
  603.  
  604. bg.maxTorque = Vector3.new()
  605.  
  606. bg.P = 15000
  607.  
  608. bg.D = 1000
  609.  
  610. local bv = Instance.new("BodyVelocity",ctor)
  611.  
  612. bv.maxForce = Vector3.new()
  613.  
  614. bv.P = 15000
  615.  
  616. vel = Vector3.new()
  617.  
  618. cf = CFrame.new()
  619.  
  620. flspd = 0
  621.  
  622.  
  623. keysdown = {}
  624.  
  625. keypressed = {}
  626.  
  627. ktime = {}
  628.  
  629. descendtimer = 0
  630.  
  631. jumptime = tick()
  632.  
  633. hum.Jumping:connect(function()
  634.  
  635.         jumptime = tick()
  636.  
  637. end)
  638.  
  639. cam = workspace.CurrentCamera
  640.  
  641. kd = plr:GetMouse().KeyDown:connect(oc(function(key)
  642.  
  643.         keysdown[key] = true
  644.  
  645.         keypressed[key] = true
  646.  
  647.         if key == "q" then
  648.  
  649.                 descendtimer = tick()
  650.  
  651.         elseif key == " " and not hum.Jump then
  652.  
  653.                 jumptime = tick()
  654.  
  655.         elseif (key == "a" or key == "d") and ktime[key] and tick()-ktime[key] < .3 and math.abs(reqrotx) < .3 then
  656.  
  657.                 reqrotx = key == "a" and math.pi*2 or -math.pi*2
  658.  
  659.         end
  660.  
  661.         ktime[key] = tick()
  662.  
  663. end))
  664.  
  665. ku = plr:GetMouse().KeyUp:connect(function(key)
  666.  
  667.         keysdown[key] = false
  668.  
  669.         if key == " " then
  670.  
  671.                 descendtimer = tick()
  672.  
  673.         end
  674.  
  675. end)
  676.  
  677. function mid(a,b,c)
  678.  
  679.         return math.max(a,math.min(b,c or -a))
  680.  
  681. end
  682.  
  683. function bn(a)
  684.  
  685.         return a and 1 or 0
  686.  
  687. end
  688.  
  689. function gm(tar)
  690.  
  691.         local m = 0
  692.  
  693.         for i,v in pairs(tar:GetChildren()) do
  694.  
  695.                 if v:IsA("BasePart") then
  696.  
  697.                         m = m + v:GetMass()
  698.  
  699.                 end
  700.  
  701.                         m = m + gm(v)
  702.  
  703.         end
  704.  
  705.         return m
  706.  
  707. end
  708.  
  709. reqrotx = 0
  710.  
  711. local grav = 196.2
  712.  
  713. local con
  714.  
  715. con = game:GetService("RunService").Stepped:connect(oc(function()
  716.  
  717.         --[[if not mod:IsDescendantOf(workspace) then
  718.  
  719.                 pcall(function() kd:disconnect() end)
  720.  
  721.                 pcall(function() ku:disconnect() end)
  722.  
  723.                 bg:Destroy()
  724.  
  725.                 bv:Destroy()
  726.  
  727.                 con:disconnect()
  728.  
  729.                 script:Destroy()
  730.  
  731.                 return
  732.  
  733.         end]]
  734.  
  735.         local obvel = tor.CFrame:vectorToObjectSpace(tor.Velocity)
  736.  
  737.         local sspd, uspd,fspd = obvel.X,obvel.Y,obvel.Z
  738.  
  739.         if flying then
  740.  
  741.                 local lfldir = fldir
  742.  
  743.                 fldir = cam.CoordinateFrame:vectorToWorldSpace(Vector3.new(bn(keysdown.d)-bn(keysdown.a),0,bn(keysdown.s)-bn(keysdown.w))).unit
  744.  
  745.                 local lmoving = moving
  746.  
  747.                 moving = fldir.magnitude > .1
  748.  
  749.                 if lmoving and not moving then
  750.  
  751.                         idledir = lfldir*Vector3.new(1,0,1)
  752.  
  753.                         descendtimer = tick()
  754.  
  755.                 end
  756.  
  757.                 local dbomb = fldir.Y < -.6 or (moving and keysdown["1"])
  758.  
  759.                 if moving and keysdown["0"] and lmoving then
  760.  
  761.                         fldir = (Vector3.new(lfldir.X,math.min(fldir.Y,lfldir.Y+.01)-.1,lfldir.Z)+(fldir*Vector3.new(1,0,1))*.05).unit
  762.  
  763.                 end
  764.  
  765.                 local down = tor.CFrame:vectorToWorldSpace(Vector3.new(0,-1,0))
  766.  
  767.                 local descending = (not moving and keysdown["q"] and not keysdown[" "])
  768.  
  769.                 cf = ccomplerp(cf,CFrame.new(tor.Position,tor.Position+(not moving and idledir or fldir)),keysdown["0"] and .02 or .07)
  770.  
  771.                 local gdown = not dbomb and cf.lookVector.Y < -.2 and tor.Velocity.unit.Y < .05
  772.  
  773.                 hum.PlatformStand = true
  774.  
  775.                 bg.maxTorque = Vector3.new(1,1,1)*9e5
  776.  
  777.                 local rotvel = CFrame.new(Vector3.new(),tor.Velocity):toObjectSpace(CFrame.new(Vector3.new(),fldir)).lookVector
  778.  
  779.                 bg.cframe = cf * CFrame.Angles(not moving and -.1 or -math.pi/2+.2,moving and mid(-2.5,rotvel.X/1.5) + reqrotx or 0,0)
  780.  
  781.                 reqrotx = reqrotx - reqrotx/10
  782.  
  783.                 bv.maxForce = Vector3.new(1,1,1)*9e4*.5
  784.  
  785.                 local anioff =(bn(keysdown[" "])-bn(keysdown["q"]))/2
  786.  
  787.                 local ani = tickwave(1.5-anioff,1)
  788.  
  789.                 bv.velocity = bv.velocity:Lerp(Vector3.new(0,bn(not moving)*-ani*15+(descending and math.min(20,tick()-descendtimer)*-8 or bn(keysdown[" "])-bn(keysdown["q"]))*15,0)+vel,.6)
  790.  
  791.                 vel = moving and cf.lookVector*flspd or Vector3.new()
  792.  
  793.                 flspd = math.min(120,lerp(flspd,moving and (fldir.Y<0 and flspd+(-fldir.Y)*grav/60 or math.max(50,flspd-fldir.Y*grav/300)) or 60,.4))
  794.  
  795.                 setwings(moving and (gdown and outlow or dbomb and divebomb) or (descending and veryhigh or flap1),15)
  796.  
  797.                 for i=1,4 do
  798.  
  799.                         --CFrame.Angles(-.5+bn(i==3)*2.4+bn(i==4)*.5,.1+bn(i==2)*.5-bn(i==3)*1.1,bn(i==3)*.1)
  800.  
  801.                         rwing[i].C0 = clerp(rwing[i].C0,oc0[rwing[i]] * (gdown and CFrame.new() or dbomb and CFrame.Angles(-.5+bn(i==3)*.4+bn(i==4)*.5,.1+bn(i==2)*.5-bn(i==3)*1.1,bn(i==3)*.1) or descending and CFrame.Angles(.3,0,0) or CFrame.Angles((i*.1+1.5)*ani,ani*-.5,1*ani)),descending and .8 or .2)
  802.  
  803.                         lwing[i].C0 = clerp(lwing[i].C0,oc0[lwing[i]] * (gdown and CFrame.new() or dbomb and CFrame.Angles(-(-.5+bn(i==3)*.4+bn(i==4)*.5),-(.1+bn(i==2)*.5-bn(i==3)*1.1),bn(i==3)*.1) or descending and CFrame.Angles(-.3,0,0) or CFrame.Angles(-(i*.1+1.5)*ani,ani*.5,1*ani)),descending and .8 or .2)
  804.  
  805.                 end
  806.  
  807.                 local hit,ray = workspace:FindPartOnRayWithIgnoreList(Ray.new(tor.Position,Vector3.new(0,-3.5+math.min(0,bv.velocity.y)/30,0)),{char})
  808.  
  809.                 if hit and down.Y < -.85 and tick()-flystart > 1 then
  810.  
  811.                         flying = false
  812.  
  813.                         hum.PlatformStand = false
  814.  
  815.                         tor.Velocity = Vector3.new()
  816.  
  817.                 end
  818.  
  819.         else
  820.  
  821.                 bg.maxTorque = Vector3.new()
  822.  
  823.                 bv.maxForce = Vector3.new()
  824.  
  825.                 local ani = tickwave(walking and .8 or 4.5,1)
  826.  
  827.                 setwings(idle,10)
  828.  
  829.                 local x,y,z = fspd/160,uspd/700,sspd/900
  830.  
  831.                 for i=1,4 do
  832.  
  833.                         rwing[i].C0 = clerp(rwing[i].C0,oc0[rwing[i]] * CFrame.Angles(ani*.1 + -mid(-.1,x),0 + -mid(-.1,y) + bn(i==2)*.6,ani*.02 + -mid(-.1,z)),.2)
  834.  
  835.                         lwing[i].C0 = clerp(lwing[i].C0,oc0[lwing[i]] * CFrame.Angles(ani*-.05 + mid(-.1,x),0 + mid(-.1,y) + -bn(i==2)*.6,ani*.02 + mid(-.1,z)),.2)
  836.  
  837.                 end
  838.  
  839.                 if keypressed[" "] and not flying and (tick()-jumptime > .05 and (tick()-jumptime < 3 or hum.Jump)) then
  840.  
  841.                         vel = Vector3.new(0,50,0)
  842.  
  843.                         bv.velocity = vel
  844.  
  845.                         idledir = cam.CoordinateFrame.lookVector*Vector3.new(1,0,1)
  846.  
  847.                         cf = tor.CFrame * CFrame.Angles(-.01,0,0)
  848.  
  849.                         tor.CFrame = cf
  850.  
  851.                         bg.cframe = cf
  852.  
  853.                         flystart = tick()
  854.  
  855.                         flying = true
  856.  
  857.                 end
  858.  
  859.         end
  860.  
  861.         keypressed = {}
  862.  
  863. end))
  864.  
  865.  
  866.  
  867. end fly()
  868.  
  869. --mediafire
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top