If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Splatoon 2/Lua Scripts

From The Cutting Room Floor
Jump to navigation Jump to search

This is a sub-page of Splatoon 2.

Cacti speak Japanese.
...But what does it mean?
This game has text or audio that needs to be translated. If you are fluent with this language, please read our translation guidelines and then submit a translation!

The Global Testfire has a DebugUnderPilot directory with a directory called AgingScript, with four uncompiled Lua scripts that are not used by the game, text in them is always encoded in Shift-JIS.

Sample.lua:

-- この2文字で始まる行はコメント

--[[
まとめてコメントアウト

]]

-- frameだけ待つ処理
function wait_frame(frame)
	while frame > 0 do
		-- luaからゲームに処理を戻す(次フレームに再開)
		coroutine.yield();
		frame = frame - 1;
	end
end

function main()

	-- while文 テスト
	count = 0;
	while true do

		print( "lua count ["..count.."]" );
		-- 60フレーム間隔で処理する
		count = count + 1;
		wait_frame(60);
	end

end


main();
-- 終了



AgingShowDL.lua:


require "DebugUnderPilot/AgingScript/Module/Framework"


function main()

	-- while文 テスト
	count = 0;
	while true do

		if Net.IsError() then
			Ctrl.PressButton( 0, Ctrl_A );
			waitFrame( 10 );
		end

		if Scene.IsSceneFaderSleep() then
			if Scene.IsSceneByName( "Boot" ) then
				-- print( "Scene [Boot]" );
			elseif Scene.IsSceneByName( "TitleForShow" ) then
				-- print( "Scene [TitleForShow]" );
				calcSceneTitleForShow();
			elseif Scene.IsSceneByName( "LobbyForShow" ) then
				-- print( "Scene [LobbyForShow]" );
				calcSceneLobbyForShow();
			elseif Scene.IsSceneByName( "Match/ForShow" ) then
				-- print( "Scene [Match/ForShow]" );
				calcSceneMatchForShow();
			elseif Scene.IsSceneByName( "Versus" ) then
				-- print( "Scene [Versus]" );
				calcSceneVersus();
			end
		end

		-- フレーム間隔で処理する
		waitFrame( 1 );
	end

end

function calcSceneTitleForShow()

	Net.SetEthernetCommunicationEnabledForTest(true);
	Ctrl.PressButton( 0, Ctrl_ZL | Ctrl_ZR );

	waitFrame( 60 );

end


function calcSceneLobbyForShow()

	sceneState = LobbyForShow.GetSceneState();
	if sceneState == LobbyForShowState_Select then
		waitFrame( 20 );
		Ctrl.PressButton( 0, Ctrl_A );
	elseif sceneState == LobbyForShowState_Detail then
		waitFrame( 20 );
		Ctrl.PressButton( 0, Ctrl_Right );
		waitFrame( 20 );
		Ctrl.PressButton( 0, Ctrl_A );
	end

	waitFrame( 60 );

end

function calcSceneMatchForShow()

	r = math.floor( math.random(1000) );
  --print( r );
	if r <= 1 then
		Net.SetEthernetCommunicationEnabledForTest(false);
	end

	Ctrl.PressButton( 0, Ctrl_A );

	waitFrame( 60 );

end

function calcSceneVersus()

	r=math.floor( math.random(10000) );
  --print( r );
	if r <= 1 then
		Net.SetEthernetCommunicationEnabledForTest( false );
	end
	
	c=math.floor( math.random(10) );
	if c <= 1 then
		Ctrl.PressButton( 0, Ctrl_ZL );
	end

	Ctrl.SetStick( 0 , CtrlLR_L , 0 , 0.5 );
	Ctrl.PressButton( 0, Ctrl_ZR );

end


main();
-- 終了



AgingShowDL_2.lua:


require "DebugUnderPilot/AgingScript/Module/Framework"


function main()

	-- while文 テスト
	count = 0;
	while true do

		if Scene.IsSceneFaderSleep() then
			if Scene.IsSceneByName( "Boot" ) then
				-- print( "Scene [Boot]" );
			elseif Scene.IsSceneByName( "TitleForShow" ) then
				-- print( "Scene [TitleForShow]" );
				calcSceneTitleForShow();
			elseif Scene.IsSceneByName( "LobbyForShow" ) then
				-- print( "Scene [LobbyForShow]" );
				calcSceneLobbyForShow();
			elseif Scene.IsSceneByName( "Match/ForShow" ) then
				-- print( "Scene [Match/ForShow]" );
				calcSceneMatchForShow();
			elseif Scene.IsSceneByName( "Versus" ) then
				-- print( "Scene [Versus]" );
				calcSceneVersus();
			end
		end

		-- 60フレーム間隔で処理する
		waitFrame( 60 );
	end

end

function calcSceneTitleForShow()

	Ctrl.PressButton( 0, Ctrl_ZL | Ctrl_ZR );

end


function calcSceneLobbyForShow()
	
	sceneState = LobbyForShow.GetSceneState();
	--print ( sceneState );
	if sceneState == LobbyForShowState_Select then
    r=math.floor( math.random(4) );
		if  r <= 1 then
		waitFrame( 20 );
		Ctrl.PressButton( 0, Ctrl_A );
		elseif r <= 2 then;
		waitFrame( 20 );
		Ctrl.PressButton( 0, Ctrl_Right );
		waitFrame( 20 );
		Ctrl.PressButton( 0, Ctrl_A );
		elseif r <= 3 then;
		waitFrame( 20 );
		Ctrl.PressButton( 0, Ctrl_Down );
		waitFrame( 20 );
		Ctrl.PressButton( 0, Ctrl_A );
		else	
		waitFrame( 20 );
		Ctrl.PressButton( 0, Ctrl_Right );
		waitFrame( 20 );
		Ctrl.PressButton( 0, Ctrl_Down );
		waitFrame( 20 );
		Ctrl.PressButton( 0, Ctrl_A );
		end

	elseif sceneState == LobbyForShowState_Detail then

		waitFrame( 20 );
		Ctrl.PressButton( 0, Ctrl_Right );
		waitFrame( 20 );
		Ctrl.PressButton( 0, Ctrl_A );

	end

end

function calcSceneMatchForShow()

	Ctrl.PressButton( 0, Ctrl_A );

end

function calcSceneVersus()
	r=math.floor( math.random(5) );
  --print(r);
	if r  <= 1 then
  
    Ctrl.PressButton( 0, Ctrl_ZL );
    waitFrame( 5  );
    Ctrl.PressButton( 0, Ctrl_ZL );
    waitFrame( 30  );
  	Ctrl.PressButton( 0, Ctrl_ZR );
	  waitFrame( 10  );
    Ctrl.PressButton( 0, Ctrl_ZR );
	  waitFrame( 10 );
    Ctrl.PressButton( 0, Ctrl_ZR );
	  waitFrame( 10 );
    Ctrl.PressButton( 0, Ctrl_ZR );
	  waitFrame( 10 );
    Ctrl.PressButton( 0, Ctrl_ZR );
	  waitFrame( 10 );
    Ctrl.PressButton( 0, Ctrl_ZR );
	elseif  r <= 2 then
		waitFrame( 120  );
    Ctrl.PressButton( 0, Ctrl_B );
    waitFrame( 5  );
		Ctrl.PressButton( 0, Ctrl_R );
  elseif  r <= 3 then
		-- スティック入力がうまく制御できないのでスパジャンにする
    waitFrame( 3 );
 		Ctrl.PressButton( 0, Ctrl_X  );
 	  waitFrame( 10  );
	  Ctrl.PressButton( 0, Ctrl_Down | Ctrl_A  );
 	  waitFrame( 10  );
  elseif r <= 4 then
    print( "stick1" );
		Ctrl.PressButton( 0, Ctrl_LS_Up );
 	  waitFrame( 10  );
	Ctrl.PressButton( 0, Ctrl_LS_Up );
 	  waitFrame( 10  );
	Ctrl.PressButton( 0, Ctrl_LS_Up );
 	  waitFrame( 10  );
	Ctrl.PressButton( 0, Ctrl_LS_Up );
 	  waitFrame( 10  );
	Ctrl.PressButton( 0, Ctrl_LS_Up );
 	  waitFrame( 10  );
	Ctrl.PressButton( 0, Ctrl_LS_Up );
 	  waitFrame( 10  );
  print( "stick2" );
		-- Ctrl.SetStick( 0 , CtrlLR_L, 0.1 , 0.1 );
    Ctrl.SetStick( 0 , CtrlLR_L , 0 , 0.5 );
    waitFrame( 30 );
	else
    Ctrl.PressButton( 0, Ctrl_ZL );
    waitFrame( 5  );
    Ctrl.PressButton( 0, Ctrl_B );
    waitFrame( 30  );
    Ctrl.PressButton( 0, Ctrl_ZL );
    waitFrame( 5  );
    Ctrl.PressButton( 0, Ctrl_ZL );
    waitFrame( 5  );
    Ctrl.PressButton( 0, Ctrl_ZL );
    waitFrame( 5  );
    Ctrl.PressButton( 0, Ctrl_ZL );
    waitFrame( 5  );
    Ctrl.PressButton( 0, Ctrl_ZL );
    waitFrame( 5  );
    Ctrl.PressButton( 0, Ctrl_ZL );
    waitFrame( 5  );
    Ctrl.PressButton( 0, Ctrl_ZL );
    waitFrame( 5  );
    Ctrl.PressButton( 0, Ctrl_ZL );
		waitFrame( 5  );
    Ctrl.PressButton( 0, Ctrl_ZL );
    waitFrame( 5  );
    Ctrl.PressButton( 0, Ctrl_ZL );
    waitFrame( 5  );
    Ctrl.PressButton( 0, Ctrl_ZL );
    waitFrame( 5  );
    Ctrl.PressButton( 0, Ctrl_ZL );
    waitFrame( 5  );
    Ctrl.PressButton( 0, Ctrl_ZL );
    waitFrame( 5  );
    Ctrl.PressButton( 0, Ctrl_ZL );
    waitFrame( 5  );
    Ctrl.PressButton( 0, Ctrl_ZL );
    waitFrame( 5  );
    Ctrl.PressButton( 0, Ctrl_ZL );
    waitFrame( 5  );
    Ctrl.PressButton( 0, Ctrl_ZL );
	end
	
end


main();
-- 終了



Module/Framework.lua:

-- この2文字で始まる行はコメント

--[[
まとめてコメントアウト

]]

-- frameだけ待つ処理 ----------------------------------------------------------------

function waitFrame(frame)
	while frame > 0 do
		-- luaからゲームに処理を戻す(次フレームに再開)
		coroutine.yield();
		frame = frame - 1;
	end
end

-- ----------------------------------------------------------------------------------