커뮤니티 퀘스트팩 2026-06-11 업데이트
- 필드 확장팩이 없는 환경에서 퀘스트의 등급 제한과 진영 제한이 적용되지 않던 문제를 수정했습니다.
"의뢰판이 있는 자캐 커뮤니티를 만들고 싶어!"
"NPC가 부탁하는 의뢰, 분기 선택지, 일일·주간 반복 퀘스트가 필요해."
"수락 / 제출 / 보상 흐름을 자동으로 굴리고 싶은데."의뢰 / 퀘스트로 콘텐츠 흐름을 만들고 싶은 분!
의뢰판 · 수락 · 제출 · 분기 의뢰 · 자동 보상
캐릭터별 퀘스트 흐름, 한 팩에.
퀘스트 등록부터 그룹 · 배타 세트 설정까지 관리자 페이지에서 클릭만으로 끝나요.
코드를 열 필요 없이 의뢰판 한 장으로 콘텐츠 흐름이 만들어집니다.
community/quest.php 한 장이 의뢰판이 돼요.
로그인한 캐릭터에게 지금 수락 가능한 퀘스트, 진행 중인 퀘스트, 완료한 퀘스트가 한 화면에 정리됩니다.
한 계정에 캐릭터가 여러 명이어도 각자 따로 진행돼요. 메인 캐릭터를 바꾸면 의뢰판도 그 캐릭터 기준으로 갱신됩니다.
등급 · 진영 · 공개 기간 · 수락 한도 · 그룹 배타성을 모두 반영해서, 지금 그 캐릭터가 받을 수 있는 의뢰만 의뢰판에 띄웁니다.
퀘스트마다 NPC 이름과 이미지를 지정할 수 있어요. 의뢰판이 단순한 목록이 아니라 NPC가 부탁하는 게시판처럼 보입니다.
오늘 수락한 횟수, 이번 주 수락한 횟수가 헤더에 핀처럼 붙어요. 남은 의뢰 수를 한눈에 확인합니다.

진행 중 · 완료 · 현황 / 수락 가능 패널이 양쪽으로 분리된 보드 레이아웃
캐릭터가 의뢰판에서 수락하면 진행 중 패널로 이동하고, 조건이 만족되면 제출하는 단순한 흐름이에요.
제출 시점에 락이 걸려서, 동시에 클릭해도 보상이 중복 지급되지 않아요.

가장 직관적인 방식. "토끼 가죽 5개를 가져오세요" 같은 의뢰에 사용해요.
"약초 종류 아무거나 3개" 처럼 타입이 같은 아이템을 묶어서 받을 수 있어요. 유저가 인벤토리에서 어떤 약초로 낼지 직접 선택합니다.
"장신구 카테고리 아이템 2개" 처럼 카테고리 단위로도 가능. 자유도 높은 의뢰 설계에 좋아요.
한 퀘스트에 여러 줄을 걸 수 있어요. "토끼 가죽 5개 + 약초 3개 + 장신구 1개"도 한 번의 제출로 처리됩니다.
귀속 우선 차감!
제출 시 귀속 아이템부터 우선 소모됩니다. 거래 가능한 아이템은 보존되도록 자동 처리돼요.
여러 퀘스트를 그룹으로 묶을 수 있어요.
시즌별, 챕터별, 진영별로 그룹을 나누면 운영이 훨씬 깔끔합니다.
"1챕터 의뢰", "겨울 시즌 의뢰", "도적 길드 의뢰" 같이 묶음 단위로 관리할 수 있어요. 관리자 페이지에서 그룹 생성 → 퀘스트에 그룹 지정만 하면 끝!
그룹 단위로 사용 여부를 토글할 수 있어요. 시즌 종료 시 그룹 하나만 비활성화하면 그 안의 퀘스트 전체가 의뢰판에서 빠집니다.
같은 배타 세트에 묶인 그룹들 중 한 그룹만 선택할 수 있게 만드는 시스템.
"이번 주는 도적 길드 의뢰만 받을지, 기사단 의뢰만 받을지 골라!" 같은 진영 분기에 딱이에요.
한 그룹의 퀘스트가 진행 중일 때, 다른 그룹의 퀘스트는 수락할 수 없어요. 한쪽을 완료(또는 포기)하면 다른 그룹으로 넘어갈 수 있습니다.
이번 주기(일일/주간) 동안 한 그룹만 받을 수 있어요. 다음 주기가 오면 다시 자유롭게 선택 가능. 주간 분기 의뢰에 적합합니다.
한번 선택한 그룹의 퀘스트를 완료하면 다른 그룹은 영영 받을 수 없어요. 진영 선택 같은 돌이킬 수 없는 분기에 사용합니다.

완료 시 상대 그룹 자동 정리
once 타입 세트에서 한 그룹 퀘스트를 완료하면, 같은 캐릭터가 상대 그룹에서 진행 중이던 active 퀘스트를 자동으로 정리하고 로그에 기록합니다. (enforce_quest_group_exclusivity())
일일 / 주간 외에 상시(permanent) 주기가 있어요.
상시 + 반복 모드로 설정하면 매 제출마다 완료 처리되어 완료 기록에 남고, 즉시 다시 수락할 수 있어요. 무제한 반복 의뢰가 깔끔하게 굴러갑니다.
매 수락마다 perm_타임스탬프 키로 새 진행 레코드가 생겨요. 같은 퀘스트라도 매번 다른 사이클로 기록되어 완료 이력이 그대로 누적됩니다.
0이면 무제한 반복, 양수를 넣으면 누적 제출 횟수가 그 한도까지만 가능해요. 운영자가 원하는 만큼만 풀 수 있습니다.
일일 / 주간 한도 자동 계산
일일 초기화 시간은 00시, 주간 시작 요일은 월요일 입니다.


상시 의뢰와 주간 정량 의뢰

의뢰 추가/수정 시 설정 화면
진행 중 / 완료 패널에서 캐릭터별 진행 상황을 한눈에 볼 수 있어요.
각 요구 아이템마다 "보유 X개 / 필요 Y개"가 표시돼요. 타입·카테고리 모드에선 인벤토리 합산값으로 자동 계산됩니다.
반복 모드 퀘스트는 누적 제출 횟수와 진행률(%)이 함께 표시돼요. "5/10회 (50%)" 처럼 직관적으로 확인됩니다.
공개 종료일이 지난 퀘스트는 진행 중 목록에서 자동으로 빠져나가요. 만료된 의뢰가 인벤토리를 갉아먹는 일이 없습니다.

같은 퀘스트의 완료 기록은 한 줄로 묶이고, 총 완료 횟수와 총 제출 횟수, 최근 완료일이 함께 표시돼요. 100번 반복한 의뢰가 100줄로 도배되지 않습니다.
의뢰판 완료 탭에는 최근 30개 퀘스트가 노출돼요. 더 자세한 이력은 관리자 로그에서 전부 볼 수 있습니다.

제출이 완료되는 순간 보상이 자동으로 들어가요. 관리자가 따로 지급할 필요 없습니다.
기본팩의 give_point_direct()로 즉시 지급. 그누보드 포인트 시스템과 그대로 연동됩니다.
여러 아이템을 한번에 줄 수 있어요. 반복 모드에선 제출 횟수에 비례해서 자동으로 곱해집니다.
전투 확장팩이 설치되어 있으면 give_character_exp()로 EXP가 자동 지급돼요. 없으면 자동으로 건너뜁니다.
제출 처리에 트랜잭션 + FOR UPDATE 락이 걸려 있어서, 동시에 두 번 클릭해도 보상이 한 번만 지급됩니다.
보상 메시지 자동 조합
제출 완료 시 "보상: 100P, 토끼 가죽 x3, 경험치 50" 같은 문자열이 자동으로 만들어져 캐릭터에게 안내됩니다.
모든 수락 / 제출 / 완료 / 포기 / 강제 정리 내역이 community_quest_log에 기록돼요.
관리자 페이지에서도 확인할 수 있어요.
accept 수락 / submit 제출 / complete 완료 / abandon 포기 — 4가지 액션이 모두 기록됩니다.
제출 수량, 요구/보상 아이템 내역, 보상 포인트/EXP, 완료 여부가 JSON으로 저장돼요. 분쟁이 생겨도 정확히 무엇을 주고받았는지 그대로 확인할 수 있습니다.
접속 IP와 시각이 함께 남아 운영 추적에 도움이 돼요.

관리자 > 커뮤니티 관리 > 퀘스트 탭에서 모든 작업을 합니다.
이름, 설명, 주기 유형, 모드(정량/반복), 요구 아이템(아이템·타입·카테고리 다중), 보상(포인트·아이템·EXP), NPC 이름·이미지, 등급/진영 제한, 공개 기간까지 한 폼에서 설정해요.
그룹명, 설명, 사용 여부를 설정. 등록한 그룹은 퀘스트 폼의 그룹 셀렉트에 자동 노출됩니다.
세트명, 설명, 배타성(active / cycle / once) 3가지 중 선택. 만든 세트에 그룹들을 배치하면 분기 의뢰 구조가 완성돼요.
일일 수락 한도, 주간 수락 한도, 일일 초기화 시간, 주간 시작 요일을 관리자 설정에서 조정할 수 있어요. 퀘스트 기능 전체를 토글하는 사용 여부 옵션도 있습니다.
기본팩이 설치되어 있다는 전제로 설명할게요.
커뮤니티 기본팩이 먼저 설치되어 있어야 해요. 캐릭터 · 포인트 · 아이템 · 인벤토리 시스템 위에서 동작합니다.
전투 확장팩이 있으면 경험치 보상(EXP)이 자동으로 동작해요. 없어도 포인트 · 아이템 보상은 그대로 작동합니다.
라공 에디션이 먼저 설치되어 있어야 해요.
베이직팩
20,000원 절약 · 세 팩을 같이 장바구니에 담으면 자동 적용됩니다.
번들 할인 외에도 시리즈 할인이 적용되어 있어서 같은 가격이 아니더라도 커뮤니티 기본 확장팩의 구매자라면 계열 할인가에 구매할 수 있습니다!
구매 즉시 ZIP 파일을 받아 그대로 설치할 수 있어요. 펀딩이나 일정에 묶이지 않습니다.
제출 처리에 BEGIN / FOR UPDATE / COMMIT 흐름이 들어가 있어, 동시 클릭에도 아이템 차감과 보상 지급이 어긋나지 않게 처리됩니다.
· 커뮤니티 기본팩이 먼저 설치되어 있어야 작동합니다.
· 의뢰판 메뉴는 관리자 메뉴 페이지에서 직접 추가해주세요.
· 스타일 커스텀, 기능 추가 요청은 답변드리기 어렵습니다.
## 포함 파일
adm/
└── community/
├── install/
│ └── quest.sql
├── quest/
│ └── quest.php
└── tabs/
└── quest.php
community/
├── lib/
│ └── quest.lib.php
├── quest.php
└── quest_action.php
extend/
└── quest_config.php
**총 7개 파일**