팁과 노하우 게시판

내글

모바일 상단 메뉴

본문 페이지

[일반] 모코코 생일 케이크 자동화 스크립트 매크로

Duckin
댓글: 2 개
조회: 3225
추천: 1
2026-04-28 01:37:45
이거 그냥 콘솔에 붙여 넣으시면 적당히 됩니다.  AI로 대충 만든거라 성능은 그냥저냥이에요.
 멈추는거는 걍 새로고침 ㄱㄱ

(async function stableMokokoCake() {
    console.log("%c[최종 보완 모드 시작]", "color: #00ff00; font-weight: bold;");

    const delay = (ms) => new Promise(resolve => setTimeout(resolve, ms));

    async function safeConfirm() {
        // 팝업 확인 버튼이 나타날 때까지 대기 (최대 3초)
        for (let i = 0; i < 12; i++) { 
            const confirmBtn = document.querySelector('button.lui-modal__confirm');
            if (confirmBtn && confirmBtn.offsetParent !== null) {
                await delay(300); // 팝업 애니메이션 안정화 대기
                confirmBtn.click();
                return true;
            }
            await delay(250); 
        }
        return false;
    }

    while (true) {
        // 1. 클릭 가능한 상자만 필터링
        // - .button--open-gift 클래스 보유
        // - .is-complete 클래스 미보유 (이미 연 상자 제외)
        // - disabled 속성이 false인 것
        // - 실제로 화면에 보이는 것 (display: none 제외)
        let boxes = Array.from(document.querySelectorAll('.button--open-gift')).filter(btn => 
            !btn.classList.contains('is-complete') && 
            !btn.disabled && 
            btn.offsetParent !== null
        );

        if (boxes.length > 0) {
            for (let box of boxes) {
                // 한 번 더 상태 체크 (루프 도중 변했을 가능성 대비)
                if (box.classList.contains('is-complete')) continue;

                console.log("🎁 상자 클릭 시도...");
                box.click();
                
                // 팝업 두 번 돌파 (획득 확인 -> 완료 확인)
                await safeConfirm();
                await delay(500); 
                await safeConfirm();
                
                await delay(800); // 서버 반영 시간 확보
            }
        } else {
            // 2. 남은 상자가 없을 때 '다음 회차' 버튼 확인
            const nextBtn = document.querySelector('.button--next-cake, .btn-next-cake, [class*="next-cake"]');
            if (nextBtn && nextBtn.offsetParent !== null) {
                console.log("✨ 현재 케이크 완료! 다음 단계로 이동합니다.");
                nextBtn.click();
                await safeConfirm(); 
                await delay(2500); // 새 케이크 판 로딩 대기
                continue; 
            } else {
                console.log("✅ 열 수 있는 상자가 더 이상 없거나 포인트가 부족합니다.");
                break;
            }
        }

        // 3. 포인트 소진 체크
        const pointText = document.querySelector('.txt--point')?.innerText || "0";
        const currentPoint = parseInt(pointText.replace(/[^0-9]/g, ""));
        if (currentPoint < 2) { // 상자 하나당 최소 2포인트 가정 (이벤트 규정에 맞게 조절 가능)
            console.log("❌ 포인트 부족으로 종료합니다.");
            break;
        }
        
        await delay(1000); 
    }
    console.log("%c[작업 종료]", "color: #ff0000; font-weight: bold;");
})();

모바일 게시판 하단버튼

댓글

새로고침
새로고침

모바일 게시판 하단버튼

지금 뜨는 인벤

더보기+

모바일 게시판 리스트

모바일 게시판 하단버튼

글쓰기

모바일 게시판 페이징

최근 HOT한 콘텐츠

  • 로아
  • 게임
  • IT
  • 유머
  • 연예
AD