![]()
안녕하세요! 게임 공략 깎는 블로거입니다. 로아인 여러분, 이번 겨울 이벤트 다들 참여하고 계신가요? 보상은 달달한데 매일매일 웹 페이지 들어가서 로스트아크 눈사람 구출 작전 클릭질 하는 거, 솔직히 숙제처럼 느껴지시죠?
저도 처음엔 “와 귀엽다!” 하면서 수동으로 했는데, 스테이지 올라갈수록 문 개수 늘어나고 층수 높아지니까 “아, 이건 사람이 할 짓이 아니다” 싶더라고요. 특히 9단계 넘어가면 문이 5개로 늘어나는데 여기서 멘탈 나갈 뻔했습니다.
그래서 오늘은 인벤의 ‘킹암살’님이 제작하고 유튜버 ‘갓냥이’님이 소개해주신, 현존하는 가장 완벽한 자동화 스크립트를 가져왔습니다. 제가 직접 돌려보니 12월 17일 패치로 오답 눌러도 1층으로 안 쫓겨나게 수정되어서 속도가 미쳤습니다.
핵심 요약 3줄:
1. 크롬이나 엣지 브라우저에서 F12(개발자 도구)를 켠다.
2. 공유해 드리는 코드를 복붙하고 실행(Run)한다.
3. 커피 한 모금 마시면 9단계까지 프리패스 완료.
왜 이 스크립트를 써야 하나요? (직접 써본 후기)
기존에 돌아다니던 구버전 스크립트들은 5스테이지나 9스테이지에서 문 개수가 바뀌거나 층수가 늘어나면 먹통이 되는 경우가 많았습니다. 하지만 이번 버전은 다릅니다.
- 자동 층수 감지: 4층, 5층 늘어나도 알아서 인식합니다.
- 9단계 5문 기믹 대응: 12월 15일 업데이트로 문이 5개가 되어도 문제없이 뚫습니다.
- 오답 리셋 방지: 12월 17일 최신 로직 적용으로, 틀려도 1층으로 리셋되지 않고 그 자리에서 다시 풉니다. (이게 진짜 꿀입니다!)
제가 직접 돌려봤는데, 페이지 새로고침 문제만 아니면 거의 완전 자동에 가깝습니다. 손목 아프게 클릭하지 마세요.
로스트아크 눈사람 구출 작전 스크립트 적용법
컴맹이어도 1분이면 따라 할 수 있게 아주 쉽게 설명해 드릴게요. 마이크로소프트 엣지(Edge)나 크롬(Chrome) 기준입니다.
1. 이벤트 페이지 접속 및 개발자 도구 실행
먼저 아래 공식 이벤트 페이지에 접속해 주세요. 로그인은 필수인 거 아시죠?
그다음 키보드의 [F12] 키를 누르면 화면 오른쪽에 뭔가 복잡한 창이 뜰 겁니다. 당황하지 마세요. 해킹하는 거 아닙니다.
2. Snippet(스니펫) 생성
개발자 도구 상단 탭 메뉴에서 [Sources]를 찾으세요. (안 보이면 >> 화살표 누르면 나옵니다).
왼쪽 메뉴에서 [Snippets] 탭을 클릭한 뒤, 빈 공간에 우클릭하고 [New snippet]을 누르세요. 이름은 아무거나(예: snowman) 지으셔도 됩니다.
3. 코드 복사 및 실행
이제 아래 코드를 싹 긁어서 복사(Ctrl+C) 한 뒤, 방금 만든 스니펫 창에 붙여넣기(Ctrl+V) 하세요.
(function () {
'use strict';
if (window.__snowmanAutoLight) return;
window.__snowmanAutoLight = true;
const sleep = ms => new Promise(r => setTimeout(r, ms));
function getCurrentFloor() {
const floors = document.querySelectorAll('[class^="floor"]');
for (const el of floors) {
if (el.querySelector('.obj_character')) {
const name = el.className;
const num = Number(name.slice(5));
if (!isNaN(num)) return num;
return null;
function getDoors(floor) {
const el = document.querySelector('.floor' + floor);
if (!el) return [];
return Array.from(el.querySelectorAll('button.door'));
const nextDoorIndex = {};
let lastClicked = null;
let stopFlag = false;
function clickNextDoor(floor) {
const doors = getDoors(floor);
if (!doors.length) return;
if (nextDoorIndex[floor] == null) {
nextDoorIndex[floor] = 0;
const idx = nextDoorIndex[floor];
const btn = doors[idx];
if (!btn || btn.disabled) return;
lastClicked = { floor, idx };
btn.click();
(function hookXHR() {
if (window.__snowmanXHRHooked) return;
window.__snowmanXHRHooked = true;
const OriginalXHR = window.XMLHttpRequest;
function WrappedXHR() {
const xhr = new OriginalXHR();
let url = null;
const open = xhr.open;
xhr.open = function (m, u) {
url = u;
return open.apply(xhr, arguments);
};
const send = xhr.send;
xhr.send = function () {
xhr.addEventListener('load', () => {
try {
if (!url || url.indexOf('SetDoor') === -1) return;
if (!lastClicked) return;
const res = JSON.parse(xhr.responseText);
const { floor } = lastClicked;
if (res.isCorrect) {
nextDoorIndex[floor + 1] = 0;
} else {
nextDoorIndex[floor]++;
} catch {}
});
return send.apply(xhr, arguments);
};
return xhr;
WrappedXHR.prototype = OriginalXHR.prototype;
window.XMLHttpRequest = WrappedXHR;
})();
async function loop() {
while (!stopFlag) {
const floor = getCurrentFloor();
if (floor != null) {
clickNextDoor(floor);
await sleep(150);
window.addEventListener('keydown', e => {
if (e.key === 'Escape') stopFlag = true;
});
loop();
})();
붙여넣고 Ctrl + S로 저장 한번 해주시고, 게임 시작 버튼을 눌러 문이 보이는 상태에서 [오른쪽 클릭 -> Run] 하시면 됩니다. 캐릭터가 알아서 문을 따고 올라가는 기적을 보실 수 있습니다.
주의사항 및 팁
이 코드는 12월 17일 기준으로 최적화된 버전입니다. 개발자 ‘킹암살’님의 코멘트에 따르면 요청 딜레이로 인한 버그를 막기 위해 일부러 딜레이를 조금 주었다고 합니다. 너무 빠르면 서버에서 인식을 못 하니, “왜 이렇게 느려?” 하지 마시고 천천히 구경해 주세요.
혹시라도 멈추거나 이상하게 작동하면 ESC 키를 눌러서 스크립트를 멈출 수 있습니다. 새로고침(F5) 한번 하고 다시 실행하면 대부분 해결됩니다.
자주 묻는 질문 (FAQ)
Q1. 정지를 먹을 수도 있나요?
A. 웹 이벤트 자동화는 클라이언트 변조나 인게임 재화 복사가 아니기 때문에 제재 사례는 거의 없습니다. 하지만 모든 서드파티 스크립트 사용의 책임은 본인에게 있으니 참고해 주세요.
Q2. 모바일에서는 안 되나요?
A. 네, 이 방법은 PC 브라우저 개발자 도구를 활용하는 방식이라 PC에서만 가능합니다.
Q3. 9단계 이후에도 작동하나요?
A. 네, 현재 로직상 문 개수와 층수를 자동으로 인식하기 때문에 이후 스테이지에서도 작동할 것으로 보입니다.
오늘 공유해 드린 로스트아크 눈사람 구출 작전 공략이 도움 되셨다면, 숙제 빨리 끝내시고 카던 도러 가시죠! 득템하세요!











