SetsunaElysia

Hobo

Jan 20th, 2017
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.75 KB | None | 0 0
  1. -- Gaster <3
  2. -- Can You Give Me Some Money For A Taxi?
  3.  
  4. --SHIROBAKO made by mugex--
  5.  
  6.  
  7.  
  8.  
  9. Player = game.Players.LocalPlayer
  10.  
  11. Char = Player.Character
  12.  
  13. Torso = Char.Torso
  14.  
  15. Head = Char.Head
  16.  
  17. Arms = {Char:FindFirstChild'Right Arm', Char:FindFirstChild'Left Arm'}
  18.  
  19. Shoulders = {Torso:FindFirstChild'Right Shoulder', Torso:FindFirstChild'Left Shoulder'}
  20.  
  21. Legs = {Char:FindFirstChild'Right Leg', Char:FindFirstChild'Left Leg'}
  22.  
  23. HumRoot = Char:FindFirstChild'HumanoidRootPart'
  24.  
  25. HumRootJ = HumRoot['RootJoint']
  26.  
  27. Humanoid = Char:FindFirstChild'Humanoid'
  28.  
  29.  
  30.  
  31.  
  32. local s = Workspace:FindFirstChild('shirobako_script: '..Player.Name,true)
  33.  
  34. if s then
  35.  
  36. local f = s:FindFirstChild'stop'
  37.  
  38. if f then
  39.  
  40. f:Invoke()
  41.  
  42. end
  43.  
  44. end
  45.  
  46. s=nil
  47.  
  48.  
  49.  
  50.  
  51. Debris = game:service'Debris'
  52.  
  53. RS = game:service'RunService'
  54.  
  55. Chatserv = game:service'Chat'
  56.  
  57. Insertserv = game:service'InsertService'
  58.  
  59.  
  60.  
  61.  
  62. Neck = Torso:FindFirstChild'Neck'
  63.  
  64.  
  65.  
  66.  
  67. pcall(function() Char.Shirobako:Destroy() end)
  68.  
  69. Main = Instance.new("Model",Char)
  70.  
  71. Main.Name = "Shirobako"
  72.  
  73. script.Parent=Main
  74.  
  75.  
  76.  
  77.  
  78. cfn=CFrame.new
  79.  
  80. ang = function(x,y,z) return CFrame.Angles(x or 0,y or 0,z or 0)end
  81.  
  82. m={tau=math.pi*2}
  83.  
  84. v3n=Vector3.new
  85.  
  86. md,mr,PI=math.rad, math.random, math.pi
  87.  
  88. bcol=BrickColor.new
  89.  
  90.  
  91.  
  92.  
  93. function l(a1,x,y,z,rx,ry,rz)
  94.  
  95. local cf
  96.  
  97. if tostring(a1):find(',') == nil then
  98.  
  99. cf=a1.CFrame
  100.  
  101. else cf=a1 end
  102.  
  103. return cf*CFrame.new(x or 0,y or 0,z or 0)*CFrame.Angles(
  104.  
  105. rx or 0,ry or 0,yz or 0)
  106.  
  107. end
  108.  
  109.  
  110.  
  111.  
  112. New = function(what)
  113.  
  114. return function(bar)
  115.  
  116. local obj=Instance.new(what)
  117.  
  118. for arg,val in pairs(bar) do
  119.  
  120. if arg == "_P" then
  121.  
  122. obj.Parent = val
  123.  
  124. else
  125.  
  126. if pcall(function()return obj[arg] end) then
  127.  
  128. obj[arg]=val
  129.  
  130. end
  131.  
  132. end
  133.  
  134. end
  135.  
  136. return obj
  137.  
  138. end
  139.  
  140. end
  141.  
  142.  
  143.  
  144.  
  145. Edit = function(what)
  146.  
  147. return function(args)
  148.  
  149. for _,obj in next,what do
  150.  
  151. for arg,val in next,args do
  152.  
  153. if pcall(function()return obj[arg]end) then
  154.  
  155. obj[arg]=val
  156.  
  157. end
  158.  
  159. end
  160.  
  161. end
  162.  
  163. end
  164.  
  165. end
  166.  
  167.  
  168.  
  169.  
  170. _1=nil
  171.  
  172. set_material = nil
  173.  
  174. set_color = nil
  175.  
  176. set_parent = nil
  177.  
  178. Part = function(x,y,z,col,tr)
  179.  
  180. local p = New"Part"{
  181.  
  182. _P=set_parent or Main;
  183.  
  184. BrickColor = bcol(col or set_color or "White");
  185.  
  186. CanCollide = false;
  187.  
  188. Transparency = tr or 0;
  189.  
  190. Size = Vector3.new(x or 0,y or 0,z or 0);
  191.  
  192. Material = set_material or 'SmoothPlastic';
  193.  
  194. }
  195.  
  196. for _,sur in next,Enum.NormalId:GetEnumItems() do
  197.  
  198. p[sur.Name..'Surface'] = 0
  199.  
  200. end
  201.  
  202. _1 = p
  203.  
  204. return p
  205.  
  206. end
  207.  
  208. Wedge = function(x,y,z,col,tr)
  209.  
  210. local p = New"WedgePart"{
  211.  
  212. _P=Main;
  213.  
  214. BrickColor = bcol(col or "White");
  215.  
  216. CanCollide = false;
  217.  
  218. Transparency = tr or 0;
  219.  
  220. Size = Vector3.new(x or 0,y or 0,z or 0);
  221.  
  222. Material = set_material or 'SmoothPlastic';
  223.  
  224. }
  225.  
  226. for _,sur in next,Enum.NormalId:GetEnumItems() do
  227.  
  228. p[sur.Name..'Surface'] = 0
  229.  
  230. end
  231.  
  232. _1 = p
  233.  
  234. return p
  235.  
  236. end
  237.  
  238. Weld = function(part0,part1,c0,c1,...) --over-engineered welding function which accepts many things
  239.  
  240. local ar = {...}
  241.  
  242. local cframe0,cframe1
  243.  
  244. local function checkf()local res=true
  245.  
  246. for i,v in pairs(ar)do
  247.  
  248. if type(v) ~= 'number' then
  249.  
  250. res=false
  251.  
  252. end
  253.  
  254. end
  255.  
  256. return res
  257.  
  258. end
  259.  
  260. if type(c0) == 'table' then
  261.  
  262. cframe0 = CFrame.new(c0[1] or 0, c0[2] or 0, c0[3] or 0) * CFrame.Angles(
  263.  
  264. c0[4] or 0, c0[5] or 0, c0[6] or 0)
  265.  
  266. elseif type(c0) == 'userdata' then
  267.  
  268. cframe0 = c0
  269.  
  270. elseif type(c0) == 'number' and checkf() then
  271.  
  272. cframe0 = CFrame.new(c0 or 0,c1 or 0,ar[1] or 0) * CFrame.Angles(ar[2] or 0, ar[3] or 0, ar[4] or 0)
  273.  
  274. end
  275.  
  276. if type(c1) == 'table' then
  277.  
  278. cframe1 = CFrame.new(c1[1] or 0, c1[2] or 0, c1[3] or 0) * CFrame.Angles(
  279.  
  280. c1[4] or 0, c1[5] or 0, c1[6] or 0)
  281.  
  282. elseif type(c1) == 'userdata' then
  283.  
  284. cframe1 = c1
  285.  
  286. elseif type(c1) == 'number' and (not c0 or (c0 and type(c0) == 'table')) then
  287.  
  288. cframe1 = CFrame.new(c1 or 0, ar[1] or 0, ar[2] or 0) * CFrame.Angles(ar[3] or 0, ar[4] or 0, ar[5] or 0)
  289.  
  290. end
  291.  
  292. for i,v in pairs(ar)do
  293.  
  294. if type(v) == 'table' then
  295.  
  296. cframe1 = CFrame.new(v[1] or 0, v[2] or 0, v[3] or 0) * CFrame.new(v[4] or 0, v[5] or 0, v[6] or 0)
  297.  
  298. elseif type(v) == 'userdata' then
  299.  
  300. cframe1 = v
  301.  
  302. end
  303.  
  304. end
  305.  
  306.  
  307.  
  308. cframe0,cframe1 = cframe1,cframe0
  309.  
  310. part0.Position=part1.Position
  311.  
  312. local weld = Instance.new("Motor")
  313.  
  314. weld.Part0 = part0
  315.  
  316. weld.Part1 = part1
  317.  
  318. weld.C0 = cframe0 or CFrame.new()
  319.  
  320. weld.C1 = cframe1 or CFrame.new()
  321.  
  322. weld.MaxVelocity = .1
  323.  
  324. weld.Parent = part0
  325.  
  326. return weld
  327.  
  328. end
  329.  
  330.  
  331.  
  332.  
  333. mesh_ids = {spike = "rbxassetid://1033714";
  334.  
  335. ring="rbxassetid://3270017";
  336.  
  337. }
  338.  
  339.  
  340.  
  341.  
  342. Mesh = function(parent,id,sx,sy,sz)
  343.  
  344. local name = ( (id == 'cyl' and 'CylinderMesh') or (id == 'bl' and 'BlockMesh') or 'SpecialMesh')
  345.  
  346. local mesh = Instance.new(name)
  347.  
  348. if id == 's' then
  349.  
  350. mesh.MeshType = Enum.MeshType.Sphere
  351.  
  352. elseif id == 'w' then
  353.  
  354. mesh.MeshType = Enum.MeshType.Wedge
  355.  
  356. elseif string.find(id,"://") ~= nil then
  357.  
  358. mesh.MeshId = id
  359.  
  360. end
  361.  
  362. mesh.Scale = Vector3.new(sx or 1, sy or 1, sz or 1)
  363.  
  364. mesh.Parent = parent
  365.  
  366. return mesh
  367.  
  368. end
  369.  
  370.  
  371.  
  372.  
  373. hdl = Part(1.1,1.5,1.1) hdl.Material='Wood'
  374.  
  375. hw=Weld(hdl,Arms[1],0,-2,0,-PI/2)
  376.  
  377.  
  378.  
  379.  
  380. -- New'Decal'{_P=hdl;face='Front';Texture='rbxassetid://49125250'}
  381.  
  382.  
  383.  
  384.  
  385. dollar = Part(1,1,1,'Bright green')
  386.  
  387. dollar_msh=Mesh(dollar,"rbxassetid://443493147",.015,.015,.015)
  388.  
  389. Weld(dollar,hdl,0,0,-.5,0,PI)
  390.  
  391.  
  392.  
  393.  
  394. top=Part(1,.1,1,'Black')Mesh(top,'bl',.95,.1,.95)
  395.  
  396. Weld(top,hdl,0,.75)
  397.  
  398.  
  399.  
  400.  
  401. ring = Part(1,1,1)
  402.  
  403. Weld(ring,hdl,0,0,.5,0,PI/2)
  404.  
  405. Mesh(ring,mesh_ids.ring,1,1,3)
  406.  
  407.  
  408.  
  409.  
  410. Joints = {}
  411.  
  412. function addJoint(name,weld,c0,c1)
  413.  
  414. local t= {}
  415.  
  416. t.w=weld
  417.  
  418. t.n_c0 = c0 or weld.C0
  419.  
  420. t.n_c1 = c1 or weld.C1
  421.  
  422. t._desired=weld.C0
  423.  
  424. t.speed=.1
  425.  
  426. t.l=0
  427.  
  428.  
  429.  
  430. function t:get()
  431.  
  432. return setmetatable({},{__newindex=function(t,i,v)
  433.  
  434. if i=='d' and self.l == 0 then
  435.  
  436. self.d = v
  437.  
  438. elseif i == 's' then self.speed=v end end})
  439.  
  440. end
  441.  
  442.  
  443.  
  444.  
  445. setmetatable(t,{__newindex=function(ta,i,v)
  446.  
  447. if i=='d' then
  448.  
  449. ta._desired = ta.n_c0 * v
  450.  
  451. end end})
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458. Joints[name]=t
  459.  
  460. end
  461.  
  462.  
  463.  
  464.  
  465. addJoint('rw',New"Weld"{_P = Torso;Part0=Torso;Part1=Arms[1];
  466.  
  467. C0=cfn(1,0.5,0); C1=cfn(-.5,0.5,0)})
  468.  
  469. addJoint('hw',hw)
  470.  
  471. addJoint('tw',HumRootJ)
  472.  
  473.  
  474.  
  475.  
  476. rw=Joints.rw
  477.  
  478. hw=Joints.hw
  479.  
  480. tw=Joints.tw
  481.  
  482.  
  483.  
  484.  
  485. snd=New"Sound"{_P=hdl;SoundId='rbxassetid://359628148'}
  486.  
  487.  
  488.  
  489.  
  490. rw.d=ang(PI/2)
  491.  
  492. script.Name='shirobako_script: '..Player.Name
  493.  
  494.  
  495.  
  496.  
  497. angle=0
  498.  
  499. p_tick=tick()
  500.  
  501.  
  502.  
  503.  
  504. --Clear clothing--
  505.  
  506. for i,v in pairs(Char:children())do
  507.  
  508. if v:IsA'Hat' or v:IsA'Clothing'then
  509.  
  510. v:Destroy()
  511.  
  512. end
  513.  
  514. end
  515.  
  516.  
  517.  
  518.  
  519. function addHat(id)
  520.  
  521. return function()
  522.  
  523. local id=id
  524.  
  525. for i,v in next,Char:children()do
  526.  
  527. if v:IsA'Hat' then v:Destroy() end
  528.  
  529. end
  530.  
  531. local as=Insertserv:LoadAsset(id):children()[1]
  532.  
  533. Player:LoadCharacterAppearance(as)
  534.  
  535. end
  536.  
  537. end
  538.  
  539.  
  540.  
  541.  
  542. MONEY = 0
  543.  
  544. DonatedPlayers = {}
  545.  
  546.  
  547.  
  548.  
  549. function GiveAll()
  550.  
  551. local as=Insertserv:LoadAsset(162067148)
  552.  
  553. for i,v in next,DonatedPlayers do
  554.  
  555. local pl=game:service'Players':FindFirstChild(v)
  556.  
  557. if pl then
  558.  
  559. local cl=as:Clone()
  560.  
  561. pl:LoadCharacterAppearance(cl:children()[1])
  562.  
  563. end
  564.  
  565. end
  566.  
  567.  
  568.  
  569.  
  570. acting = true
  571.  
  572. rw.w.Part1 = nil
  573.  
  574. tw.w.C0 = tw.n_c0
  575.  
  576. Shoulders[1].Part0=Torso
  577.  
  578. Shoulders[1].Part1=Arms[1]
  579.  
  580. Shoulders[1].Parent=Torso
  581.  
  582. Chatserv:Chat(Head,"THANK YOU EVERYONE =D")
  583.  
  584. for i,v in pairs(Connections) do
  585.  
  586. v:disconnect()
  587.  
  588. end
  589.  
  590. Main:Destroy()
  591.  
  592. end
  593.  
  594.  
  595.  
  596.  
  597. suits = {
  598.  
  599. beggar={'rbxassetid://54674221','rbxassetid://54676961',-1};
  600.  
  601. poor={'rbxassetid://398635080','rbxassetid://217385535',10,addHat(68259961)};
  602.  
  603. rich={'rbxassetid://286378066','rbxassetid://198292567',20,addHat(1563352)};
  604.  
  605. uberrich={'rbxassetid://231706573','rbxassetid://239131699',30,addHat(138932314)};
  606.  
  607. FINAL={'rbxassetid://231706573','rbxassetid://239131699',40,GiveAll};
  608.  
  609. }
  610.  
  611.  
  612.  
  613.  
  614. shirt = New"Shirt"{_P=Char;ShirtTemplate=suits.beggar[1]}
  615.  
  616. pants = New"Pants"{_P=Char;PantsTemplate=suits.beggar[2]}
  617.  
  618.  
  619.  
  620.  
  621. function checksuit()
  622.  
  623. for i,v in pairs(suits)do
  624.  
  625. if MONEY == v[3] then
  626.  
  627. cur_choise = i
  628.  
  629. shirt.ShirtTemplate=v[1]
  630.  
  631. pants.PantsTemplate=v[2]
  632.  
  633. if v[4] then
  634.  
  635. v[4]()
  636.  
  637. end
  638.  
  639. end
  640.  
  641. end
  642.  
  643. end
  644.  
  645.  
  646.  
  647.  
  648. cur_choise = "beggar"
  649.  
  650. choises = {
  651.  
  652. beggar = {"Can I have some money?";";_;";"Can ya spare couple bucks?";"I'm so poor..."};
  653.  
  654. poor = {"I need money for studies.", "Can ya lend me some cash?", ";_; Anyone?"};
  655.  
  656. rich = {"Can ya give sum money for taxi?", "Please?"};
  657.  
  658. uberrich={"Wanna get dominus? Gimme money!", "This is not a scam... I swear!", "Does anyone want a dominus?"};
  659.  
  660. FINAL={"THANK YOU EVERYONE WHO DONATED =D"};
  661.  
  662. }
  663.  
  664.  
  665.  
  666.  
  667. text = "_ bucks donated"
  668.  
  669. text2 = "Thank you kind _"
  670.  
  671. surfg = New"SurfaceGui"{_P=hdl,Face='Right'}
  672.  
  673. lab=New"TextLabel"{_P=surfg;Size=UDim2.new(1,0,1,0);Text="0 bucks donated";TextScaled=true;BackgroundTransparency=1}
  674.  
  675. thanking=false
  676.  
  677.  
  678.  
  679.  
  680. anim_con = RS.Stepped:connect(function()
  681.  
  682. for _,j in next,Joints do
  683.  
  684. j.w.C0 = j.w.C0:lerp(j._desired,j.speed)
  685.  
  686. end
  687.  
  688. end)
  689.  
  690. dead_con = Humanoid.Died:connect(function()
  691.  
  692. acting=true
  693.  
  694. Chatserv:Chat(Head,"World is so cruel =(")
  695.  
  696. end)
  697.  
  698.  
  699.  
  700.  
  701. acting=false
  702.  
  703.  
  704.  
  705.  
  706. depmoney=function(a)
  707.  
  708. if not thanking then
  709.  
  710. snd:Play()
  711.  
  712. thanking=true
  713.  
  714. Chatserv:Chat(Head,text2:gsub('_',(a and a.Name or 'human')) )
  715.  
  716. MONEY = MONEY+1
  717.  
  718. if a then
  719.  
  720. local name = a.Name
  721.  
  722. local _in=false
  723.  
  724. for _,v in pairs(DonatedPlayers) do
  725.  
  726. if v == name then
  727.  
  728. _in=true
  729.  
  730. end
  731.  
  732. end
  733.  
  734. if not _in then
  735.  
  736. table.insert(DonatedPlayers,name)
  737.  
  738. end
  739.  
  740. end
  741.  
  742. checksuit()
  743.  
  744. lab.Text=text:gsub('_',MONEY)
  745.  
  746. wait(1.25)
  747.  
  748. thanking=false
  749.  
  750. end
  751.  
  752. end
  753.  
  754.  
  755.  
  756.  
  757. lab.Text=text:gsub('_',MONEY)
  758.  
  759. New"ClickDetector"{_P=dollar}.MouseClick:connect(function(a)depmoney(a)end)
  760.  
  761. cnt=0
  762.  
  763. Connections = {}
  764.  
  765. for i,v in next,getfenv(0) do
  766.  
  767. if i:match("_con") ~= nil then
  768.  
  769. table.insert(Connections,v)
  770.  
  771. end
  772.  
  773. end
  774.  
  775.  
  776.  
  777.  
  778. swoosh_snd = New"Sound"{_P=hdl;SoundId='rbxassetid://134012322'}
  779.  
  780. hit_snd = New"Sound"{_P=hdl;SoundId='rbxassetid://386946017'}
  781.  
  782.  
  783.  
  784.  
  785. function slash()
  786.  
  787. acting=true
  788.  
  789. rw.speed=.3
  790.  
  791. rw.d=ang(PI/2,0,-PI/4)*ang(0,PI/2)
  792.  
  793. swoosh_snd:Play()
  794.  
  795. local con
  796.  
  797. con=hdl.Touched:connect(function(hit)
  798.  
  799. local hum=hit.Parent:FindFirstChild'Humanoid'
  800.  
  801. if hum then
  802.  
  803. Spawn(function()hum.PlatformStand=true wait'.1'hum.PlatformStand=false end)
  804.  
  805. hum.Torso.Velocity=cfn(Torso.Position,hum.Torso.Position).lookVector*70+v3n(0,30,0)
  806.  
  807. hit_snd:Play()
  808.  
  809. con:disconnect()
  810.  
  811. Chatserv:Chat(Head,"Dont come closer!")
  812.  
  813. end
  814.  
  815. end)
  816.  
  817. wait'.15'
  818.  
  819. rw.d=ang(PI/2,0,PI/4)*ang(0,PI/2)
  820.  
  821. wait'.25'
  822.  
  823. acting=false
  824.  
  825. rw.speed=.1
  826.  
  827. con:disconnect()
  828.  
  829. end
  830.  
  831. New"BindableFunction"{_P=script;Name='stop'}.OnInvoke=function()for i,v in pairs(Connections)do v:disconnect()end end
  832.  
  833. -- thanking=true
  834.  
  835. Spawn(function()
  836.  
  837. while wait()do
  838.  
  839. if not acting then
  840.  
  841. if (tick()-p_tick)>(2+(cnt/2*1.75)) and not thanking and cur_choise~='FINAL' then
  842.  
  843. local choise = choises[cur_choise]
  844.  
  845. cnt=cnt+1
  846.  
  847. cnt=(cnt>#choise and 1 or cnt)
  848.  
  849. Chatserv:Chat(Head, choise[cnt])
  850.  
  851. p_tick=tick()
  852.  
  853. end
  854.  
  855. angle=angle%100 + 1/5
  856.  
  857.  
  858.  
  859. if not thanking then
  860.  
  861. rw.d=ang(PI/2+math.sin(angle)*.15)
  862.  
  863. hw.d=ang(0,0,math.sin(angle)*.15)
  864.  
  865. tw.d=cfn()
  866.  
  867. else
  868.  
  869. rw.d=cfn(0,0,.15)*ang(PI/2,0,-PI/4)
  870.  
  871. hw.d=cfn(.15,0,0)*ang(0,md'-35')
  872.  
  873. tw.d=ang(md'15')
  874.  
  875. end end
  876.  
  877. end
  878.  
  879. end)
  880.  
  881.  
  882.  
  883.  
  884. Mouse = Player:GetMouse()
  885.  
  886. Mouse.KeyDown:connect(function(key)
  887.  
  888. if acting then return end
  889.  
  890. if key == 'f' then
  891.  
  892. slash()
  893.  
  894. end
  895.  
  896. end)
  897.  
  898. -- slash()
  899.  
  900. -- for i =1,40 do depmoney(Player)end
  901.  
  902.  
  903.  
  904.  
  905. --type: hl/https://titanpad.com/ep/pad/export/Beggar/latest?format=txt
Add Comment
Please, Sign In to add comment