All pastes #1790777 Raw Edit

gocha

public lua v1 · immutable
#1790777 ·published 2010-02-09 00:04 UTC
rendered paste body
-- NO MOVIE, NO TAS LIFElocal msgmax = 10local darkscreen = not falsedesmume = (stylus ~= nil)if not emu then	error("This script runs under an emulua host.")	returnendlocal fontx, fonty = 4, 7if desmume then	fontx, fonty = 4+2, 8+2elseif FCEU then	fontx, fonty = 6, 8endfunction getscreensize()	if desmume then		return 256, 192	-- elseif FCEU then	-- 	return 256, 224	else		local tempgd = gui.gdscreenshot()		if tempgd ~= nil then			return tempgd:byte(3)*256 + tempgd:byte(4), tempgd:byte(5)*256 + tempgd:byte(6)		else			return nil, nil		end	endendlocal scrx, scry = getscreensize()if scrx == nil then	error("Load a game before you run the script.")	returnendlocal msgpos = {}local msgvx, msgvy = {}, {}local msgmaxspeed = 3local msgdepth = 10for i = 1, msgmax do	repeat		msgvx[i] = math.random(-msgmaxspeed, msgmaxspeed)		msgvy[i] = math.random(-msgmaxspeed, msgmaxspeed)	until msgvx[i] ~= 0 and msgvy[i] ~= 0	msgpos[i] = {}	for j = 1, msgdepth do		msgpos[i][j] = {}	end	msgpos[i][1].x, msgpos[i][1].y = math.random(0, scrx - fontx - 1), math.random(0, scry - fonty - 1)	for j = 2, msgdepth do		msgpos[i][j].x, msgpos[i][j].y = msgpos[i][j-1].x, msgpos[i][j-1].y	endendprint("Note: restart the script if the game screen size has been changed.")gui.register(function()	if darkscreen then		gui.opacity(0.5)		gui.box(0, 0, scrx-1, scry-1, "black", "black")	end	local msg = ""	local mode = movie.mode()	if not movie.active() then		msg = "NO MOVIE"	elseif mode == "finished" then		msg = "FINISHED"	end	if msg == "" then		return	end	local clipx, clipy	clipx = scrx - (fontx * msg:len())	clipy = scry - fonty	for i = 1, msgmax do		msgpos[i][1].x, msgpos[i][1].y = msgpos[i][1].x + msgvx[i], msgpos[i][1].y + msgvy[i]		if msgpos[i][1].x < 0 or msgpos[i][1].x >= clipx then			msgvx[i] = -msgvx[i]			if msgvx[i] < 0 then				msgvx[i] = math.random(-msgmaxspeed, -1)				msgpos[i][1].x = clipx			else				msgvx[i] = math.random(1, msgmaxspeed)				msgpos[i][1].x = 0			end		end		if msgpos[i][1].y < 0 or msgpos[i][1].y >= clipy then			msgvy[i] = -msgvy[i]			if msgvy[i] < 0 then				msgvy[i] = math.random(-msgmaxspeed, -1)				msgpos[i][1].y = clipy			else				msgvy[i] = math.random(1, msgmaxspeed)				msgpos[i][1].y = 0			end		end		for j = msgdepth, 2, -1 do			msgpos[i][j].x, msgpos[i][j].y = msgpos[i][j-1].x, msgpos[i][j-1].y		end		for j = msgdepth, 1, -1 do			if j == 1 then				gui.opacity(1.0)			else				gui.opacity(0.5 * ((msgdepth-j)/msgdepth))			end			gui.text(msgpos[i][j].x, msgpos[i][j].y, msg)		end	end	gui.opacity(1.0)end)-- while true do emu.frameadvance() end