본캐1 배럭5 이다 보니까, 이거 챙겼는지 저거 챙겼는지 구분이 어려워서 만들어서 모니터 한쪽에 넣고 그냥 쓰고있음

참고할 사람은 참고하셔요 

현재 내가 쓰고 있는거는 캐릭별로 숙제 끝내는 소요시간까지 있는데, 너무 복잡스러워질것 같아 이것만 공유

사용방법은 아래 참고

AION 2 체크리스트

초기화: 매일/매주 수요일 오전 05:00

📅 일일 숙제 (Daily)

  • 필수사명: 임무 5회
    ★ '어포,오드에너지' 1순위
  • 필수원정/초월 소진
    05시/13시/21시 충전 / 우선 순위 1위(원정↔초월)
  • 권장이벤트 아이템 변환하기
    일일 제한 횟수 확인 및 변환 (까먹지 말기)
  • 권장악몽 던전
    입장권 소모 그냥 후순위(아리엘/지켈석상)
  • 권장보급 의뢰: 긴급 1회
    제작/파밍 재료 납품 (어비스 포인트)
  • 권장시공의 균열 참여
    3시간 간격(2시/5시/8시/11시) (펫작/데바니온/허리띠)
  • 선택검은 구름 무역단 확인
    키나 상품(펫/외형) 확인
  • 선택일일 100만 키나
    쥰내 시간 남을때만 가자

🗓️ 주간 숙제 (Weekly)

  • 필수각성전 / 토벌전
    ★ 마석, 돌파석, 아리엘, 실렌(용돈) 파밍
  • 필수일일 던전 7회
    강화석/펫작 (한번에 몰아서 가능(왠만하면 그냥 몰아서))
  • 권장오드 에너지 변환 및 구매
    시간없어도 만들어두기(얘는 월요일 초기화)
  • 권장보급 의뢰: 주간 1회
    대량 어비스 포인트 획득
  • 선택사명: 지령 12회
    귀찮으면 패스
  • 선택어비스(하층) 7시간
    시간 없으면 패스
만든이 네몬: 백세인생


사용방법 

1. 아래 코드 복사

2. 메모장 키고 붙여넣기

3. 메모장 파일을 html로 변환

4. 게임 접속할때 키기

끝.

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>아이온2 숙제 체크리스트 (Light)</title>
    <style>
        :root {
            --bg-color: #f8f9fa;
            --card-bg: #ffffff;
            --text-main: #212529;
            --text-sub: #868e96;
            --border-color: #e9ecef;
            --accent-color: #6741d9;
           
            /* 중요도별 색상 */
            --prio-high-bg: #fff5f5;
            --prio-high-border: #ffc9c9;
            --prio-high-text: #fa5252;
           
            --prio-low-opacity: 0.7;
        }

        body {
            font-family: 'Pretendard', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
            background-color: var(--bg-color);
            color: var(--text-main);
            margin: 0;
            padding: 20px;
            line-height: 1.5;
        }

        .container {
            max-width: 600px;
            margin: 0 auto;
        }

        header {
            text-align: center;
            margin-bottom: 30px;
        }

        h1 {
            color: var(--accent-color);
            margin-bottom: 5px;
            font-weight: 800;
        }

        .reset-info {
            font-size: 0.9rem;
            color: var(--text-sub);
        }

        .section {
            background-color: var(--card-bg);
            border-radius: 16px;
            padding: 20px;
            margin-bottom: 24px;
            box-shadow: 0 2px 12px rgba(0,0,0,0.05);
            border: 1px solid rgba(0,0,0,0.03);
        }

        .section-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 15px;
            padding-bottom: 10px;
            border-bottom: 2px solid var(--border-color);
        }

        h2 {
            margin: 0;
            font-size: 1.25rem;
            font-weight: 700;
        }

        .btn-reset {
            background-color: #f1f3f5;
            color: #495057;
            border: none;
            padding: 6px 14px;
            border-radius: 8px;
            cursor: pointer;
            font-weight: 600;
            font-size: 0.85rem;
            transition: all 0.2s;
        }

        .btn-reset:hover {
            background-color: #e9ecef;
            color: #212529;
        }

        ul {
            list-style: none;
            padding: 0;
            margin: 0;
        }

        li {
            display: flex;
            align-items: center;
            padding: 14px 10px;
            border-bottom: 1px solid var(--border-color);
            cursor: pointer;
            border-radius: 8px;
            transition: background-color 0.2s;
            margin-bottom: 4px;
        }

        li:last-child {
            border-bottom: none;
            margin-bottom: 0;
        }

        li:hover {
            background-color: #f8f9fa;
        }

       
        li.priority-high {
            background-color: var(--prio-high-bg);
            border: 1px solid var(--prio-high-border);
        }
       
        li.priority-high .badge {
            background-color: var(--prio-high-text);
            color: white;
        }

       
        li.priority-low {
            opacity: var(--prio-low-opacity);
            background-color: #fdfdfd;
        }
       
        li.priority-low .badge {
            background-color: #dee2e6;
            color: #495057;
        }

       
        .badge {
            font-size: 0.7rem;
            font-weight: 700;
            padding: 2px 6px;
            border-radius: 4px;
            margin-right: 8px;
            background-color: #4c6ef5;
            color: white;
            display: inline-block;
            min-width: 30px;
            text-align: center;
        }

       
        input[type="checkbox"] {
            appearance: none;
            width: 22px;
            height: 22px;
            border: 2px solid #adb5bd;
            border-radius: 6px;
            margin-right: 16px;
            cursor: pointer;
            position: relative;
            flex-shrink: 0;
            background-color: white;
            transition: all 0.2s;
        }

        input[type="checkbox"]:checked {
            background-color: var(--accent-color);
            border-color: var(--accent-color);
        }

        input[type="checkbox"]:checked::after {
            content: '✔';
            position: absolute;
            color: white;
            font-size: 14px;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
        }

        .task-content {
            flex-grow: 1;
        }

        .task-title {
            font-weight: 600;
            font-size: 1rem;
            display: flex;
            align-items: center;
        }

        .sub-text {
            display: block;
            font-size: 0.85rem;
            color: var(--text-sub);
            margin-top: 4px;
        }

       
        input[type="checkbox"]:checked + .task-content {
            opacity: 0.5;
            text-decoration: line-through;
        }

       
        @media (max-width: 480px) {
            body { padding: 15px; }
            li { padding: 12px 8px; }
        }

    </style>
</head>
<body>

<div class="container">
    <header>
        <h1>AION 2 체크리스트</h1>
        <p class="reset-info">초기화: 매일/매주 수요일 오전 05:00</p>
    </header>

    <div class="section">
        <div class="section-header">
            <h2>일일 숙제 (Daily)</h2>
            <button class="btn-reset" onclick="resetChecklist('daily')">초기화</button>
        </div>
        <ul id="daily-list">
            <li class="priority-high">
                <input type="checkbox" id="d1">
                <div class="task-content">
                    <div class="task-title"><span class="badge">필수</span>사명: 임무 5회</div>
                    <span class="sub-text">★ '어포,오드에너지' 1순위</span>
                </div>
            </li>
            <li class="priority-high">
                <input type="checkbox" id="d3">
                <div class="task-content">
                    <div class="task-title"><span class="badge">필수</span>원정/초월 소진</div>
                    <span class="sub-text">05시/13시/21시 충전 / 우선 순위 1위(원정↔초월)</span>
                </div>
            </li>
           
            <li>
                <input type="checkbox" id="d7">
                <div class="task-content">
                    <div class="task-title"><span class="badge">권장</span>이벤트 아이템 변환하기</div>
                    <span class="sub-text">일일 제한 횟수 확인 및 변환 (까먹지 말기)</span>
                </div>
            </li>
            <li>
                <input type="checkbox" id="d4">
                <div class="task-content">
                    <div class="task-title"><span class="badge">권장</span>악몽 던전</div>
                    <span class="sub-text">입장권 소모 그냥 후순위(아리엘/지켈석상)</span>
                </div>
            </li>
            <li>
                <input type="checkbox" id="d2">
                <div class="task-content">
                    <div class="task-title"><span class="badge">권장</span>보급 의뢰: 긴급 1회</div>
                    <span class="sub-text">제작/파밍 재료 납품 (어비스 포인트)</span>
                </div>
            </li>
            <li>
                <input type="checkbox" id="d6">
                <div class="task-content">
                    <div class="task-title"><span class="badge">권장</span>시공의 균열 참여</div>
                    <span class="sub-text">3시간 간격(2시/5시/8시/11시) (펫작/데바니온/허리띠)</span>
                </div>
            </li>

            <li class="priority-low">
                <input type="checkbox" id="d5">
                <div class="task-content">
                    <div class="task-title"><span class="badge">선택</span>검은 구름 무역단 확인</div>
                    <span class="sub-text">키나 상품(펫/외형) 확인</span>
                </div>
            </li>

            <li class="priority-low">
                <input type="checkbox" id="d5">
                <div class="task-content">
                    <div class="task-title"><span class="badge">선택</span>일일 100만 키나</div>
                    <span class="sub-text">쥰내 시간 남을때만 가자</span>
                </div>
            </li>
        </ul>
    </div>

    <div class="section">
        <div class="section-header">
            <h2> 주간 숙제 (Weekly)</h2>
            <button class="btn-reset" onclick="resetChecklist('weekly')">초기화</button>
        </div>
        <ul id="weekly-list">
            <li class="priority-high">
                <input type="checkbox" id="w3">
                <div class="task-content">
                    <div class="task-title"><span class="badge">필수</span>각성전 / 토벌전</div>
                    <span class="sub-text">★ 마석, 돌파석, 아리엘, 실렌(용돈) 파밍</span>
                </div>
            </li>
            <li class="priority-high">
                <input type="checkbox" id="w1">
                <div class="task-content">
                    <div class="task-title"><span class="badge">필수</span>일일 던전 7회</div>
                    <span class="sub-text">강화석/펫작 (한번에 몰아서 가능(왠만하면 그냥 몰아서))</span>
                </div>
            </li>

            <li>
                <input type="checkbox" id="w6">
                <div class="task-content">
                    <div class="task-title"><span class="badge">권장</span>오드 에너지 변환 및 구매</div>
                    <span class="sub-text">시간없어도 만들어두기(얘는 월요일 초기화)</span>
                </div>
            </li>
            <li>
                <input type="checkbox" id="w4">
                <div class="task-content">
                    <div class="task-title"><span class="badge">권장</span>보급 의뢰: 주간 1회</div>
                    <span class="sub-text">대량 어비스 포인트 획득</span>
                </div>
            </li>

            <li class="priority-low">
                <input type="checkbox" id="w2">
                <div class="task-content">
                    <div class="task-title"><span class="badge">선택</span>사명: 지령 12회</div>
                    <span class="sub-text">귀찮으면 패스</span>
                </div>
            </li>
            <li class="priority-low">
                <input type="checkbox" id="w5">
                <div class="task-content">
                    <div class="task-title"><span class="badge">선택</span>어비스(하층) 7시간</div>
                    <span class="sub-text">시간 없으면 패스</span>
                </div>
            </li>
        </ul>
    </div>
</div>

<footer>
    만든이 <span class="credit">네몬: 백세인생</span>
</footer>
</div>


<script>
    document.addEventListener('DOMContentLoaded', () => {
        const checkboxes = document.querySelectorAll('input[type="checkbox"]');
       
        checkboxes.forEach(box => {
            // 부르는거
            const savedState = localStorage.getItem(box.id);
            if (savedState === 'true') {
                box.checked = true;
            }
           
            // 상태변경 저장
            box.addEventListener('change', () => {
                localStorage.setItem(box.id, box.checked);
            });
        });

       
        document.querySelectorAll('li').forEach(item => {
            item.addEventListener('click', (e) => {
               
                if (e.target.tagName !== 'INPUT' && !e.target.closest('label')) {
                    const checkbox = item.querySelector('input[type="checkbox"]');
                    checkbox.checked = !checkbox.checked;
                    checkbox.dispatchEvent(new Event('change'));
                }
            });
        });
    });

    function resetChecklist(type) {
        const msg = type === 'daily' ? '일일 숙제를 초기화하시겠습니까?' : '주간 숙제를 초기화하시겠습니까?';
        if (!confirm(msg)) return;

        const selector = type === 'daily' ? '#daily-list input[type="checkbox"]' : '#weekly-list input[type="checkbox"]';
        document.querySelectorAll(selector).forEach(box => {
            box.checked = false;
            localStorage.setItem(box.id, 'false');
        });
    }
</script>

</body>
</html>