the cutting room mirror

Lua Scripts

This is a sub-page of Splatoon 2.

'...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

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