매크로 커뮤니티

조회 수 984 추천 0 댓글 2

제가 완전 아무것도 몰라서 파일 구하면 복사 불어넣기로 변형해서 쓰고 있는데
이거만큼은 못 구해서 좀 알고 싶습니다ㅠㅠ


  • profile
    버슴커 2024.11.07 16:20

    오잉 gui에 대한 사용방법이 내장함수나 

    사용 팁에 많이 있던데요.
    혹시 윈도우 시간이 보이는쪽 트레이아이콘으로 이미지맥스 보이시면 

    거기에 마우스 오른쪽 누르면 

    스크립트에 prescript 편집 하고 
    그곳에 gui를 그려넣으시면되요.

    카페에 팁에 jp님이 남겨주신 자료들 보시고 하나씩 그려 넣으셔야해요.
    rgmjRn9.gif


  • profile
    버슴커 2024.11.07 16:23
    -- 프로그램 실행시 전처리 스크립트-- 메인 GUI 생성

    -- 메인 GUI 생성
    gui1 = '매크로 설정'
    GUIAddTab(gui1)
    GUISetCurTab(gui1)


    --매크로 기능 선택
    x, y, w, h = 8, 10, 345, 20
    GUIAddGroup(x, y, w, h, '매크로 선택')
    item_table = {}
    item_enable_table = {}
    stage_table = {}

    GUIAddRadio(x+2, y+5, -1, -1, '아이템계 ', 'SelectMacroFunc', 'mMacroFunc')
    GUIAddRadio(x+87, y+5, 150, -1, '스테이지 자동주회 ', 'SelectMacroFunc')
    GUIAddRadio(x+220, y+5, 130, -1, '레이드 자동반복 ', 'SelectMacroFunc')
    function SelectMacroFunc()
    if mMacroFunc == 0 then -- 아이템계
    for i = 1, #item_table do
    GUIItemShow(item_table[i],true)
    end
    for i = 1, #item_enable_table do
    GUIItemShow(item_enable_table[i],true)
    end
    for i = 1, #stage_table do
    GUIItemShow(stage_table[i],false)
    end
    elseif mMacroFunc == 1 then --스테이지 자동주회
    for i = 1, #stage_table do
    GUIItemShow(stage_table[i],true)
    end
    for i = 1, #item_enable_table do
    GUIItemShow(item_enable_table[i],false)
    end
    for i = 1, #item_table do
    GUIItemShow(item_table[i],false)
    end
    elseif mMacroFunc == 2 then --레이드
    for i = 1, #item_enable_table do
    GUIItemShow(item_enable_table[i],false)
    end
    for i = 1, #item_table do
    GUIItemShow(item_table[i],false)
    end
    for i = 1, #stage_table do
    GUIItemShow(stage_table[i],false)
    end
    else --그 외
    for i = 1, #stage_table do
    GUIItemShow(stage_table[i],false)
    end
    for i = 1, #item_enable_table do
    GUIItemShow(item_enable_table[i],false)
    end
    for i = 1, #item_table do
    GUIItemShow(item_table[i],false)
    end
    end


    end


    --아이템계
    function ItemMenu()
    x, y, w, h = 8, 60, 345, 208
    table.insert(item_table,
    GUIAddGroup(x, y, w, h, '아이템계 설정')
    )
    table.insert(item_table,
    GUIAddCheck(x+2, y+5, -1, -1, '레전드 획득 시 알림음 재생',nil, 'mLegendAlarm')
    )
    id0 = GUIAddCheck(x+252, y+5, -1, -1, '단순비교모드','CompareMode', 'mCompare')
    table.insert(item_table,
    id0
    )
    table.insert(item_table,
    GUIAddText(x+2, y+30, -1, -1, '획득할 상자 등급 선택:')
    )
    table.insert(item_table,
    GUIAddCombo(x+132, y+30, 80, -1, {'커먼이상','레어이상','레전드','미획득'}, nil, 'mDropBox')
    )
    table.insert(item_table,
    GUIAddCheck(x+224, y+30, -1, -1, '100층 강제 레전드 ',nil, 'mForceLegendPick')
    )

    table.insert(item_enable_table,
    GUIAddText(x+2, y+55, -1, -1, '입장할 장비 등급 선택:')
    )

    table.insert(item_table,
    GUIAddText(x+195, y+55, -1, -1, '우선순위:')
    )
    table.insert(item_table,
    GUIAddRadio(x+250, y+55, -1, -1, '무기',nil, 'mSelectEquip')
    )

    table.insert(item_table,
    GUIAddRadio(x+295, y+55, 55, -1, '방어구',nil)
    )

    table.insert(item_enable_table,
    GUIAddCombo(x+132, y+55, -1, -1, {'커먼','레어','레전드'}, nil, 'mEquipGrade')
    )
    id1 = GUIAddText(x+2, y+80, 210, -1, '입장할 장비 레벨 또는 랭크 입력: 최소')
    table.insert(item_enable_table,
    id1
    )
    id2 = GUIAddEdit(x+212, y+80, 35, -1, '', nil, 'mEquipLowLv')
    table.insert(item_enable_table,
    id2
    )

    id3 = GUIAddText(x+245, y+80, -1, -1, '부터 최대')
    table.insert(item_enable_table,
    id3
    )
    id4 = GUIAddEdit(x+300, y+80, 35, -1, '', nil, 'mEquipHighLv')
    table.insert(item_enable_table,
    id4
    )
    id5 = GUIAddCheck(x+2, y+105, 130, -1, '장비 상세 체크: 레벨', 'InfoDialog', 'mAddCheck')
    table.insert(item_enable_table,
    id5
    )
    win = GUIAddDialog('안내', 'info', 720, 160)
    GUIAddText(win, 0, 20, 650, -1, '유사도를 낮게 잡을 경우 동일 장비를 2~3번 클릭하나 높게 잡으면 놓치는 장비가 생기므로 2~3번 클릭하는건 정상으로 생각하여도 됩니다.')
    GUIAddText(win, 0, 55, 650, -1, '클릭이 아예 이상할 경우 아이템계 폴더의 (커먼장비), (레어장비), (레전드장비) 설정 필요')
    GUIAddText(win, 0, 75, -1, -1, '*이미지 유사도 조절, 이미지 재편집')

    id6 = GUIAddEdit(x+130, y+105, 35, -1, '', nil, 'mAddLowLv')
    id7 = GUIAddText(x+165, y+105, -1, -1, '~')
    id8 = GUIAddEdit(x+175, y+105, 35, -1, '', nil, 'mAddHighLv')
    id9 = GUIAddText(x+215, y+105, -1, -1, ', 랭크')
    id10 = GUIAddEdit(x+250, y+105, 35, -1, '', nil, 'mAddLowRank')
    id11 = GUIAddText(x+285, y+105, -1, -1, '~')
    id12 = GUIAddEdit(x+300, y+105, 35, -1, '', nil, 'mAddHighRank')

    table.insert(item_enable_table,
    id6
    )
    table.insert(item_enable_table,
    id7
    )
    table.insert(item_enable_table,
    id8
    )
    table.insert(item_enable_table,
    id9
    )
    table.insert(item_enable_table,
    id10
    )
    table.insert(item_enable_table,
    id11
    )
    table.insert(item_enable_table,
    id12
    )

    table.insert(item_table,
    GUIAddText(x+2, y+130, -1, -1, '상자 획득 시:')
    )
    table.insert(item_table,
    GUIAddRadio(x+80, y+130, -1, -1, '나가기 ', nil, 'mBoxRadio')
    )
    table.insert(item_table,
    GUIAddRadio(x+140, y+130, -1, -1, '계속 진행 ', nil)
    )

    table.insert(item_enable_table,
    GUIAddText(x+227, y+135, -1, 15, '스크롤 시도 횟수:')
    )
    table.insert(item_enable_table,
    GUIAddEdit(x+322, y+130, 30, -1, '', nil, 'mScrollMax')
    )

    table.insert(item_table,GUIAddGroup(x+6, y+162, 100, 40, ''))

    table.insert(item_table,
    GUIAddCheck(x+6, y+152, -1, 15, '스킬 사용',nil, 'skill_used')
    )
    table.insert(item_table,
    GUIAddRadio(x+6, y+170, -1, 15, '스킬1', nil, 'skill')
    )
    table.insert(item_table,
    GUIAddRadio(x+56, y+170, -1, 15, '스킬2', nil)
    )
    table.insert(item_table,
    GUIAddRadio(x+6, y+192, -1, 15, '스킬3', nil)
    )
    table.insert(item_table,
    GUIAddRadio(x+56, y+192, -1, 15, '스킬4', nil)
    )

    table.insert(item_table,GUIAddGroup(x+126, y+162, 150, 20, ''))

    table.insert(item_table,
    GUIAddCheck(x+126, y+152, -1, 15, '아군 선택',nil, 'char_select_used')
    )
    table.insert(item_table,
    GUIAddRadio(x+126, y+170, -1, 15, '1', nil, 'chara_select')
    )
    table.insert(item_table,
    GUIAddRadio(x+156, y+170, -1, 15, '2', nil)
    )
    table.insert(item_table,
    GUIAddRadio(x+186, y+170, -1, 15, '3', nil)
    )
    table.insert(item_table,
    GUIAddRadio(x+216, y+170, -1, 15, '4', nil)
    )
    table.insert(item_table,
    GUIAddRadio(x+246, y+170, -1, 15, '5', nil)
    )


    table.insert(item_table,
    GUIAddText(x, y+220, -1, -1, '획득한 장비 갯수:')
    )
    get_equip1 = GUIAddEdit(x+100, y+220, 30, -1, '0', nil, 'mGetCommon')
    get_equip2 = GUIAddEdit(x+130, y+220, 30, -1, '0', nil, 'mGetRare')
    get_equip3 = GUIAddEdit(x+160, y+220, 30, -1, '0', nil, 'mGetLegend')
    table.insert(item_table,get_equip1)
    table.insert(item_table,get_equip2)
    table.insert(item_table,get_equip3)


    table.insert(item_table,
    GUIAddCheck(x+175, y+193, -1, -1, '40랭크만 선택(OCR 미사용)', 'InfoDialog', 'mNoOCR')
    )

    end

    function CompareMode(arg)
    if mCompare == 1 then
    for i = 1, #item_enable_table do
    GUIItemEnable(item_enable_table[i],false)
    end
    else
    for i = 1, #item_enable_table do
    GUIItemEnable(item_enable_table[i],true)
    end
    InfoDialog()
    end
    end

    function InfoDialog(arg)
    --print(mAddCheck)
    if mNoOCR == 1 then
    GUIItemEnable(id0,false)
    GUIItemEnable(id1,false)
    GUIItemEnable(id2,false)
    GUIItemEnable(id3,false)
    GUIItemEnable(id4,false)
    GUIItemEnable(id5,false)
    GUIItemEnable(id6,false)
    GUIItemEnable(id7,false)
    GUIItemEnable(id8,false)
    GUIItemEnable(id9,false)
    GUIItemEnable(id10,false)
    GUIItemEnable(id11,false)
    GUIItemEnable(id12,false)
    elseif mAddCheck == 1 then
    GUIItemShow(win, true)
    GUIItemEnable(id0,true)
    GUIItemEnable(id1,false)
    GUIItemEnable(id2,false)
    GUIItemEnable(id3,false)
    GUIItemEnable(id4,false)
    GUIItemEnable(id5,true)
    GUIItemEnable(id6,true)
    GUIItemEnable(id7,true)
    GUIItemEnable(id8,true)
    GUIItemEnable(id9,true)
    GUIItemEnable(id10,true)
    GUIItemEnable(id11,true)
    GUIItemEnable(id12,true)
    else
    GUIItemEnable(id0,true)
    GUIItemEnable(id1,true)
    GUIItemEnable(id2,true)
    GUIItemEnable(id3,true)
    GUIItemEnable(id4,true)
    GUIItemEnable(id5,true)
    GUIItemEnable(id6,true)
    GUIItemEnable(id7,true)
    GUIItemEnable(id8,true)
    GUIItemEnable(id9,true)
    GUIItemEnable(id10,true)
    GUIItemEnable(id11,true)
    GUIItemEnable(id12,true)
    end
    end

    ItemMenu()
    -- 아이템계 끝


    --자동 스테이지
    function StageMenu()
    x, y, w, h = 8, 60, 345, 40
    table.insert(stage_table,
    GUIAddGroup(x, y, w, h, '자동 스테이지 설정')
    )
    table.insert(stage_table,
    GUIAddCheck(x+2, y+5, -1, -1, '행동력 물약 자동 사용',nil, 'potion')
    )
    table.insert(stage_table,
    GUIAddCheck(x+2, y+25, 170, -1, '스테이지 반복하기 좌표 x:',nil, 'stage_repeat')
    )
    table.insert(stage_table,
    GUIAddEdit(x+178, y+25, 35, -1, '', nil, 'stage_coord_x')
    )
    table.insert(stage_table,
    GUIAddText(x+223, y+25, -1, -1, 'y:')
    )
    table.insert(stage_table,
    GUIAddEdit(x+237, y+25, 35, -1, '', nil, 'stage_coord_y')
    )
    end
    StageMenu()
    -- 자동 스테이지 끝

    --레이드
    function RaidMenu()

    end
    RaidMenu()
    -- 레이드 끝

    x, y, w, h = 8, 280, 345, 20
    GUIAddText(x+240, y, -1, -1, '해상도: 1080x1920 ')
    GUIAddText(x+0, y+20, -1, -1, '커먼상자~레전드상자 재편집 必')
    --버전
    GUIAddText(x+320, y+20, -1, -1, 'v1.0')


    -- 윈도우 앱 실행
    function runApp(_string_path)
    --os.execute('start "" "'.._string_path..'""')
    os.execute('start "" '.._string_path)
    --print('실행: '..tostring(_string_path))
    end

    -- ## 앱플레이어 GUI
    appplayer_gui = '앱플레이어 설정'
    GUIAddTab(appplayer_gui)
    GUISetCurTab(appplayer_gui)

    -- # 앱플레이어 선택 그룹
    x, y, w, h = 5, 10, 350, 25
    GUIAddGroup(x, y, w, h, '앱플레이어 선택')
    GUIAddRadio(x + 0, y + 6, -1, -1, 'Nox ', nil, 'mPlayerRadio')
    GUIAddRadio(x + 60, y + 6, -1, -1, 'LD ', nil)
    GUIAddRadio(x + 120, y + 6, -1, -1, '그 외(미지원)', nil)

    -- # 앱플레이어 경로 그룹
    x, y, w, h = 5, 60, 350, 25
    GUIAddGroup(x, y, w, h, '앱플레이어 경로 *\\는 두번 입력 必 ex)c:\\\\folder\\\\')
    ld_path_edit_id = GUIAddEdit(x + 0, y + 8, 340, -1, 'c:\\\\folder\\\\', 'mPlayerPath', 'ld_path_edit')
    function mPlayerPath()
    if mPlayerRadio == 0 then
    mPlayerConsole = 'NoxConsole.exe'
    elseif mPlayerRadio == 1 then
    mPlayerConsole = 'ldconsole.exe'
    else
    mPlayerConsole = '모름'
    end
    --print(mPlayerConsole)
    ld_path_edit = '"'..ld_path_edit..mPlayerConsole..'"'
    print(ld_path_edit)
    end


    -- # 앱플레이어 기본 설정 그룹
    x, y, w, h = 5, 110, 350, 25
    GUIAddGroup(x, y, w, h, '앱플레이어 설정')
    ld_index_text_id = GUIAddText(x + 0, y + 8, -1, -1, '번호')
    ld_index_combo_table = {
    '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
    '10', '11', '12', '13', '14', '15', '16', '17', '18', '19',
    '20', '21', '22', '23', '24', '25', '26', '27', '28', '29',
    '30', '31', '32', '33', '34', '35', '36', '37', '38', '39',
    '40', '41', '42', '43', '44', '45', '46', '47', '48', '49'
    }
    ld_index_combo_id = GUIAddCombo(x + 35, y + 8, -1, -1, ld_index_combo_table, nil, 'ld_index_combo')

    ld_app_text_id = GUIAddText(x + 110, y + 8, -1, -1, '앱패키지')
    ld_app_edit_id = GUIAddEdit(x + 165, y + 8, 180, -1, 'com.amazingcat.srotd.kr', nil, 'ld_app_edit')

    -- # 앱플레이어 제어 기능 그룹
    x, y, w, h = 5, 160, 180, 30
    GUIAddGroup(x, y, w, h, '앱플레이어 제어 테스트')

    -- 앱플레이어 종료 함수
    function ld_quit()
    if mPlayerRadio == 0 then
    runApp(ld_path_edit..' quit -index:'..ld_index_combo)
    elseif mPlayerRadio == 1 then
    runApp(ld_path_edit..' quit --index '..ld_index_combo)
    else
    end
    -- print(ld_path_edit..' quit --index '..ld_index_combo)
    end

    -- 앱플레이어 실행+앱실행 함수
    function ld_launchex()
    if mPlayerRadio == 0 then
    --runApp(ld_path_edit..' reboot -index:'..ld_index_combo)
    runApp(ld_path_edit..' action -index:'..ld_index_combo..' -key:call.reboot -value:'..ld_app_edit)
    --runApp(ld_path_edit..' runapp -index:'..ld_index_combo..' -packagename:'..ld_app_edit)
    elseif mPlayerRadio == 1 then
    ld_quit()
    sleep_ms(5000)
    runApp(ld_path_edit..' launchex --index '..ld_index_combo..' --packagename '..ld_app_edit)
    else
    end
    sleep_ms(60000)
    -- print(ld_path_edit..' launchex --index '..ld_index_combo..' --packagename '..ld_app_edit)
    end

    -- 앱플레이어 앱실행 함수
    function ld_runapp()
    ld_killapp()
    sleep_ms(1000)
    if mPlayerRadio == 0 then
    runApp(ld_path_edit..' runapp -index:'..ld_index_combo..' -packagename:'..ld_app_edit)
    elseif mPlayerRadio == 1 then
    runApp(ld_path_edit..' runapp --index '..ld_index_combo..' --packagename '..ld_app_edit)
    else
    end
    -- print(ld_path_edit..' runapp --index '..ld_index_combo..' --packagename '..ld_app_edit)
    end

    -- 앱플레이어 앱종료 함수
    function ld_killapp()
    --print(ld_path_edit)
    if mPlayerRadio == 0 then
    runApp(ld_path_edit..' killapp -index:'..ld_index_combo..' -packagename:'..ld_app_edit)
    elseif mPlayerRadio == 1 then
    runApp(ld_path_edit..' killapp --index '..ld_index_combo..' --packagename '..ld_app_edit)
    else
    end
    -- print(ld_path_edit..' killapp --index '..ld_index_combo..' --packagename '..ld_app_edit)
    end

    --ld_launch_btn_id = GUIAddButton(x - 5, y + 8, 90, -1, '앱플 시작', 'ld_launch')
    --ld_quit_btn_id = GUIAddButton(x + 85, y + 8, 90, -1, '앱플 종료', 'ld_quit')
    --ld_reboot_btn_id = GUIAddButton(x + 175, y + 8, 90, -1, '앱플 재시작', 'ld_reboot')
    ld_launchex_btn_id = GUIAddButton(x - 5, y + 8, 90, -1, '앱플+앱재실행', 'ld_launchex')
    ld_runapp_btn_id = GUIAddButton(x + 90, y + 8, 90, -1, '앱재실행', 'ld_runapp')
    --ld_runapp_btn_id = GUIAddButton(x - 5, y + 34, 90, -1, '앱실행', 'ld_runapp')
    --ld_killapp_btn_id = GUIAddButton(x + 85, y + 34, 90, -1, '앱종료', 'ld_killapp')


    --[[# 앱플레이어 자동실행 옵션 그룹
    function 초기설정으로 옮기기()
    if ld_autorun_check == 1 then
    --ld_launchex()
    end
    end
    ]]--

    x, y, w, h = 5, 220, 230, 55
    GUIAddGroup(x, y, w, h, '재실행 설정')
    --ld_autorun_check_id = GUIAddCheck(x + 0, y + 8, -1, -1, '앱플+앱', 'mPlayerReset', 'ld_autorun_check')
    --GUIAddEdit(x + 70, y + 8, 40, -1, '120', nil, 'mPlayerResetTime')
    --GUIAddText(x + 100, y + 8, -1, -1, '분마다 재실행하기')
    ld_autorun_check_id = GUIAddCheck(x + 0, y + 8, -1, -1, '2분간 멈춰있을 경우 앱플+앱 재실행', 'mPlayerReset', 'ld_autorun_check')
    --GUIAddEdit(x + 70, y + 8, 40, -1, '120', nil, 'mPlayerResetTime')
    --GUIAddText(x + 100, y + 8, -1, -1, '분마다 재실행하기')

    --ld_autoapp_check_id = GUIAddCheck(x + 0, y + 30, -1, -1, '앱', 'mPlayerReset', 'ld_autoapp_check')
    --GUIAddEdit(x + 35, y + 30, 40, -1, '120', nil, 'mAppResetTime')
    --GUIAddText(x + 65, y +30, -1, -1, '분마다 재실행하기')
    ld_autoapp_check_id = GUIAddCheck(x + 0, y + 30, -1, -1, '2분간 멈춰있을 경우 앱 재실행', 'mPlayerReset', 'ld_autoapp_check')
    --GUIAddEdit(x + 35, y + 30, 40, -1, '120', nil, 'mAppResetTime')
    --GUIAddText(x + 65, y +30, -1, -1, '분마다 재실행하기')

    function mPlayerReset()
    --print(ld_autorun_check)
    if ld_autorun_check == 1 then
    GUIItemEnable(ld_autorun_check_id, true)
    GUIItemEnable(ld_autoapp_check_id, false)
    EnableImage(true, '멈춤체크')
    elseif ld_autoapp_check == 1 then
    GUIItemEnable(ld_autorun_check_id, false)
    GUIItemEnable(ld_autoapp_check_id, true)
    EnableImage(true, '멈춤체크')
    else
    GUIItemEnable(ld_autorun_check_id, true)
    GUIItemEnable(ld_autoapp_check_id, true)
    EnableImage(false, '멈춤체크')
    end

    end


    function sleep_ms(ms)
    local start_sleep = os.clock()
    local ms = ms / 1000
    while os.clock() - start_sleep <= ms do
    end
    end



    ----
    GUIShow()
    GUIItemEnable(get_equip1, false)
    GUIItemEnable(get_equip2, false)
    GUIItemEnable(get_equip3, false)
    GUIItemEnable(ld_app_edit_id, false)
    CompareMode(arg)
    mPlayerReset()
    mPlayerPath()
    SelectMacroFunc()

List of Articles
분류 제목 글쓴이 최근변경 추천
자유 운영 방해 목적의 매크로 관련 글 제재 피카부 2019.09.03 0/0
자유 레이븐 아스달 로드나인 다클라 멀티기 new 리취윤 8 분 전 0/0
자유 레이븐 아스달 로드나인 다클라 멀티기 new 리취윤 9 분 전 0/0
자유 로나월드 매크로 판매 [가성비 최강] new 로나Macro 53 분 전 0/0
자유 로나월드 매크로 판매 [가성비 최강] new 로나Macro 54 분 전 0/0
자유 로나월드 매크로 판매 [가성비 최강] new 로나Macro 54 분 전 0/0
자유 바람 클래식 왕퀘 매크로 구해봅니다. new 로휘나 2 시간 전 0/0
자유 거상 매크로 단클가능 조철자동 new dcwqa 5 시간 전 0/0
자유 로드나인 No.1 메크로 new 리취윤 18 시간 전 0/0
자유 바클 매크로 구해봅니다. incool 2024.11.14 0/0
질문 모바일게임 리셋(리세마라) 매크로 만들어보고 싶은데 Noname77 2024.11.13 0/0
자유 린W 이미지맥스 스크립트짜는거좀 알려주실분 계십니까? 무하이1 2024.11.13 0/0
자유 바클 매크 구해요 3 update EnQkd 2024.11.15 0/0
자유 메랜 거탐 알리미 삽니다 kmkmmm 2024.11.11 0/0
자유 바클 매크로삽니다 1 프바도 2024.11.11 0/0
자유 메이플 본메 업장용 판매합니다. (오비, 오토도형) 1 고타베 2024.11.11 0/0
질문 이미지맥스로 린W매크로 만드려는데 2 무하이1 2024.11.13 0/0
자유 바람 바클 바람의나라클래식 메크로삽니다 1 쿠키또 2024.11.11 0/0
자유 본메 메크로 능력자 모십니다 4 은비수 2024.11.10 0/0
질문 바람 매크로문의 3 update 고더리니 23 시간 전 0/0
질문 이미지맥스 상단에 메뉴 2개 이상 어떻게 하는지 아시는분 2 헬퍼좀 2024.11.07 0/0
Board Pagination Prev 1 2345678910 ... 521 Next
/ 521

전체 최신 인기글

전체 주간 인기글