미디자료

메이플스토리-에레브 수련의 숲

페이지 정보

히어로 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일19.4.17 00:05 1,331   288

첨부파일

※댓글을 남겨야 다운로드 가능합니다!

본문

2010년때 시그너스 한다고 첨에 여기서 훈련받았죠
그때 브금이 감명나게 좋아서 제작해보았습니다.
추억 되새길겸 잘들어주세요 ^^

수련의 숲 브금은 유튜브 링크로 들으시길바랍니다
추천 4 비추천 0

댓글목록

sdfsdf님의 댓글

sdfsdf 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일

settings {
    main {
        설명: "Overwatch MIDI Pianist mode by ScroogeD. Convert MIDI songs to Overwatch piano songs with this converter on GitHub: github.com/ScroogeD2/owmidiconverter"
    }
    lobby {
        대기열에 등록된 플레이어들도 허용: 네
        전장 전환: 일시정지
        경기 음성 대화: 활성화
        개별 전투 최대 인원: 6
        대기실로 돌아가기: 안 함
    }
    modes {
        데스매치 {
            enabled maps {
                파리
            }
        }
        일반 {
            게임 모드 시작: 수동
            영웅 제한: 비활성화
        }
    }
    heroes {
        일반 {
            기술 재사용 대기시간: 0%
            주는 피해: 500%
            받는 피해: 500%
            탄창 제한 없음: 활성화
            궁극기 충전율: 250%
        }
    }
}
variables {
global:
0: notePositions
1: pianoPosition
2: bots
3: speedPercent
4: songPlaying
5: chordArrayIndex
6: defaultFacingDirection
7: playerSpawn
8: i
10: dataArrayIndex
15: banTpLocation
19: songData
20: tempArray
31: currentBotIndex
32: waitTime
player:
1: playNote
2: currentPitch
3: playerToRemove
}
subroutines {
0: destroyBots
}
rule ("Global init") {
    event {
        Ongoing - Global;
    }

    action {
        Set Global Variable(tempArray, Empty Array);
        Set Global Variable(chordArrayIndex, 1);
        Set Global Variable(bots, Empty Array);
        Set Global Variable(speedPercent, 100);
        Set Global Variable(defaultFacingDirection, Vector(162, 60, 0));
        Disable Inspector Recording;
        Create HUD Text(All Players(All Teams), Null, Null, Custom String("Speed: {0}%", Global Variable(speedPercent), Null, Null), Right, 0, White, White, White, Visible To and String, Default Visibility);
        Create HUD Text(All Players(All Teams), Null, Null, Custom String("Host player: Press Interact to start and stop the song, and Crouch+Primary or Crouch+Secondary Fire to change speed", Null, Null, Null), Top, 0, White, White, White, Visible To and String, Default Visibility);
        Create HUD Text(All Players(All Teams), Null, Custom String("By ScroogeD", Null, Null, Null), Null, Left, 0, White, Yellow, White, Visible To and String, Default Visibility);
        Create HUD Text(All Players(All Teams), Null, Custom String("Website: github.com/ScroogeD2/owmidiconverter", Null, Null, Null), Null, Left, 1, White, Yellow, White, Visible To and String, Default Visibility);
        Create HUD Text(Filtered Array(All Players(All Teams), Has Status(Current Array Element, Frozen)), Custom String("The host player has decided to remove you temporarily. Please wait a minute before rejoining.", Null, Null, Null), Null, Null, Top, 1, White, White, White, Visible To and String, Default Visibility);
    }
}

rule ("Player init") {
    event {
        Ongoing - Each Player;
        All;
        All;
    }

    condition {
        Is Dummy Bot(Event Player) != True;
        Has Spawned(Event Player) == True;
        Is Alive(Event Player) == True;
    }

    action {
        Set Status(Event Player, Null, Phased Out, 9999);
        Wait(1, Ignore Condition);
        Teleport(Event Player, Global Variable(playerSpawn));
        Set Damage Received(Event Player, Absolute Value(9999999));
    }
}

rule ("Dummy init") {
    event {
        Ongoing - Each Player;
        All;
        All;
    }

    condition {
        Is Dummy Bot(Event Player) == True;
    }

    action {
        Set Status(Event Player, Null, Phased Out, 9999);
        Set Damage Dealt(Event Player, Absolute Value(9999999));
        Set Invisible(Event Player, All);
        Teleport(Event Player, Global Variable(pianoPosition));
    }
}

rule ("Primary fire: increase speed") {
    event {
        Ongoing - Each Player;
        All;
        All;
    }

    condition {
        Event Player == Host Player;
        Is Button Held(Event Player, Crouch) == True;
        Is Button Held(Event Player, Primary Fire) == True;
    }

    action {
        Modify Global Variable(speedPercent, Add, 5);
    }
}

rule ("Secondary fire: decrease speed") {
    event {
        Ongoing - Each Player;
        All;
        All;
    }

    condition {
        Event Player == Host Player;
        Is Button Held(Event Player, Crouch) == True;
        Is Button Held(Event Player, Secondary Fire) == True;
        Global Variable(speedPercent) > 5;
    }

    action {
        Modify Global Variable(speedPercent, Subtract, 5);
    }
}

rule ("Interact: create dummy bots, start playing") {
    event {
        Ongoing - Each Player;
        All;
        All;
    }

    condition {
        Event Player == Host Player;
        Is Button Held(Event Player, Interact) == True;
        Global Variable(songPlaying) == 0;
    }

    action {
        Set Global Variable(songPlaying, 1);
        Set Global Variable(i, 11);
        While(And(Compare(Count Of(Global Variable(bots)), <, First Of(First Of(Global Variable(songData)))), Compare(Global Variable(i), >, 0)));
        If(Not(Entity Exists(Players In Slot(Global Variable(i), All Teams))));
        Create Dummy Bot(Hero(시메트라), All Teams, Global Variable(i), Global Variable(pianoPosition), Vector(0, 0, 0));
        Modify Global Variable(bots, Append To Array, Last Created Entity);
        End;
        Modify Global Variable(i, Subtract, 1);
        Wait(0.016, Ignore Condition);
        End;
        Set Global Variable(i, 0);
        Wait(2.5, Ignore Condition);
        Set Global Variable(songPlaying, 2);
    }
}

rule ("Interact: stop playing") {
    event {
        Ongoing - Each Player;
        All;
        All;
    }

    condition {
        Event Player == Host Player;
        Is Button Held(Event Player, Interact) == True;
        Global Variable(songPlaying) == 2;
    }

    action {
        Set Global Variable(bots, Empty Array);
        Call Subroutine(destroyBots);
        Set Global Variable(dataArrayIndex, 0);
        Wait(1, Ignore Condition);
        Set Global Variable(songPlaying, 0);
        Set Global Variable(chordArrayIndex, 1);
    }
}

rule ("Play piano") {
    event {
        Ongoing - Global;
    }

    condition {
        Global Variable(songPlaying) == 2;
    }

    action {
        While(And(Compare(Global Variable(dataArrayIndex), <, Count Of(Global Variable(songData))), Global Variable(songPlaying)));
        If(Compare(Add(Global Variable(chordArrayIndex), Value In Array(Value In Array(Global Variable(songData), Global Variable(dataArrayIndex)), Add(Global Variable(chordArrayIndex), 1))), >, Count Of(Value In Array(Global Variable(songData), Global Variable(dataArrayIndex)))));
        Modify Global Variable(dataArrayIndex, Add, 1);
        Set Global Variable(chordArrayIndex, 0);
        End;
        Modify Global Variable(waitTime, Add, Multiply(Value In Array(Value In Array(Global Variable(songData), Global Variable(dataArrayIndex)), Global Variable(chordArrayIndex)), Divide(100, Global Variable(speedPercent))));
        While(Compare(Global Variable(waitTime), >=, 0.016));
        Wait(0.016, Ignore Condition);
        Modify Global Variable(waitTime, Subtract, 0.016);
        End;
        For Global Variable(i, 0, Value In Array(Value In Array(Global Variable(songData), Global Variable(dataArrayIndex)), Add(Global Variable(chordArrayIndex), 1)), 1);
        Set Player Variable(Value In Array(Global Variable(bots), Global Variable(currentBotIndex)), playNote, True);
        Set Player Variable(Value In Array(Global Variable(bots), Global Variable(currentBotIndex)), currentPitch, Value In Array(Value In Array(Global Variable(songData), Global Variable(dataArrayIndex)), Add(Add(Global Variable(chordArrayIndex), 2), Global Variable(i))));
        Set Global Variable(currentBotIndex, Modulo(Add(Global Variable(currentBotIndex), 1), Count Of(Global Variable(bots))));
        End;
        Modify Global Variable(chordArrayIndex, Add, Add(Value In Array(Value In Array(Global Variable(songData), Global Variable(dataArrayIndex)), Add(Global Variable(chordArrayIndex), 1)), 2));
        End;
        Wait(0.25, Ignore Condition);
        Set Global Variable(songPlaying, 0);
        Set Global Variable(chordArrayIndex, 1);
        Set Global Variable(dataArrayIndex, 0);
        Call Subroutine(destroyBots);
        Set Global Variable(bots, Empty Array);
    }
}

rule ("Play note") {
    event {
        Ongoing - Each Player;
        All;
        All;
    }

    condition {
        Player Variable(Event Player, playNote) == True;
    }

    action {
        Set Facing(Event Player, Direction From Angles(Y Component Of(Value In Array(Global Variable(notePositions), Player Variable(Event Player, currentPitch))), Z Component Of(Value In Array(Global Variable(notePositions), Player Variable(Event Player, currentPitch)))), To World);
        Wait(0.048, Ignore Condition);
        Start Holding Button(Event Player, Primary Fire);
        Wait(0.032, Ignore Condition);
        Stop Holding Button(Event Player, Primary Fire);
        Set Player Variable(Event Player, playNote, False);
    }
}

rule ("Race condition workaround for very high playing speeds") {
    event {
        Ongoing - Each Player;
        All;
        All;
    }

    condition {
        Player Variable(Event Player, playNote) == True;
    }

    action {
        Wait(0.2, Abort When False);
        Set Player Variable(Event Player, playNote, False);
        Loop;
    }
}

rule ("Destroy bots (workaround for Destroy All Dummy Bots bug)") {
    event {
        Subroutine;
        destroyBots;
    }

    action {
        Set Global Variable(i, 0);
        For Global Variable(i, 0, 12, 1);
        Destroy Dummy Bot(All Teams, Global Variable(i));
        End;
        Set Global Variable(i, 0);
    }
}

rule ("Note positions array init, Point B") {
    event {
        Ongoing - Global;
    }

    action {
        Set Global Variable(notePositions, Empty Array);
        Modify Global Variable(notePositions, Append To Array, Vector(0, -116.543, 59.952));
        Modify Global Variable(notePositions, Append To Array, Vector(0, -121.295, 60.05