Skip to content

discordpy 기반의 discord quizbot, 디스코드 퀴즈봇

License

Notifications You must be signed in to change notification settings

OtterBK/Quizbot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📄 해당 프로젝트는 퀴즈봇3 프로젝트로 이전 되었습니다.
https://github.com/OtterBK/Quizbot3

MainIMG



퀴즈 봇 🔔

🎮 디스코드 서버에서 사용 가능한 퀴즈 봇입니다.

🎧음악을 듣고 노래 제목을 맞추거나 🖼 그림을 보고 인물을 맞추는 등의 다양한 퀴즈가 있습니다.


💻 봇 추가 방법

📄 서버에 봇을 추가하기 위해 아래 버튼을 클릭해주세요.

📌 관리자 권한이 필요합니다.


DISCORD   

☝ 퀴즈봇 추가하기


❔ 버튼을 눌러도 반응이 없다면 아래 링크를 클릭해주세요.

🌐 퀴즈봇 추가 링크


📚 명령어

!퀴즈 - 퀴즈봇을 조작할 수 있는 UI를 생성합니다.
!도움 - 명령어를 확인합니다.

📜 퀴즈봇 사용방법

🕹 기본 사용법 ( 로컬 플레이🌠 )

퀴즈봇의 기본적인 사용법입니다.


채팅채널생성
먼저 새로운 🗨채팅 채널을 생성합니다.
⚠(퀴즈가 진행되는 채널은 채팅청소가 되기 때문에 새로운 채널에서 진행하는 것을 추천드립니다.)

메인
!퀴즈 💻명령어를 입력하여 퀴즈봇을 조작할 수 있는 메세지를 생성합니다.
조작은 메세지와 함께 생성된 ◀ ▶ 페이지 이동, 1️⃣ ~ 5️⃣ 선택, ↩ 뒤로가기 버튼으로 가능합니다.

메인로컬
서버내 인원끼리만 퀴즈를 진행하려면 🌠로컬 플레이 를 선택합니다.

로컬
퀴즈 카테고리를 선택합니다.

퀴즈선택
진행할 퀴즈를 선택합니다.

퀴즈정보
퀴즈를 선택하면 해당 퀴즈에 대한 문제 수, 퀴즈 유형 등의 정보를 볼 수 있습니다.

설명
퀴즈 시작 을 누르면 진행 방법 등의 설명이 나온 뒤 퀴즈가 진행됩니다.

문제제출
문제가 제시되면 해당 문제에 대한 답을 채팅으로 ⌨입력하시면 정답을 맞출 수 있습니다.


멀티플레이🌏 시작 방법


멀티플레이는 자신이 속한 서버의 인원과 👨‍👨‍👧‍👧협력하여 다른 서버와 퀴즈 🥊대전을 펼치는 방식입니다.


멀티메인
메인화면에서 🌏멀티플레이 를 선택합니다. 📌( 초록색 네모에 표시된 숫자는 현재 매칭중인 서버 수입니다.)
멀티카테고리
매칭을 시작할 카테고리를 선택합니다.

멀티 퀴즈설정
설정 및 퀴즈 정보를 확인하고 매칭 시작을 선택해 탐색을 시작합니다.

멀티탐색
탐색 도중 🛰대전 상대를 발견하면 연결이됩니다.

멀티챗
일반적인 퀴즈와 진행방식은 동일하지만 정답을 빠르게 맞추면 추가적인 점수를 획득할 수 있으며 점수는 서버별로 합산됩니다.
!챗 <메세지> 💻명령어를 사용해 대전 서버와 채팅이 가능합니다.


설정⚙

설정은 해당 서버만의 설정을 사용해 퀴즈 진행을 돕습니다.


메인설정
메인화면에서 ⚙설정 을 선택합니다.

설정
설정에서는 💡힌트 방식, ⏩스킵 방식, 🎵노래 길이, 🔁노래 반복 값을 설정할 수 있습니다.

힌트선택
설정하고 싶은 항목을 선택한 뒤 ◀ ▶ 버튼으로 값 변경이 가능합니다.

패치노트📗

봇의 업데이트 내역을 확인합니다.


메인패치노트
메인에서 패치노트를 선택합니다.

패치노트
퀴즈봇의 업데이트 사항(퀴즈 추가, 시스템 변경사항, 버그 픽스)을 확인할 수 있습니다.



🛠 직접 서버 열기

🔩 Config.py

토큰 ,UI 아이콘, 퀴즈 경로 등을 설정할 수 있습니다.

🧰 필수 설정 사항


BOT_PREFIX = "!"  #명령어 prefix

RESOURCE_PATH = "F:/quizbot/"
QUIZ_PATH = RESOURCE_PATH + "gameData/"  # 게임 소스폴더
MULTI_PATH = RESOURCE_PATH + "multiplay/"  # 멀티플레이 소스폴더
BGM_PATH = RESOURCE_PATH + "bgm/"  # 효과음 폴더
SAVE_PATH = RESOURCE_PATH + "download/" #사용x, 예약용
TMP_PATH = RESOURCE_PATH + "tmp/"  #임시폴더
DATA_PATH = RESOURCE_PATH + "savedata/"  #데이터 저장 폴더
OPTION_PATH = DATA_PATH + "option/"  #옵션 데이터 저장 폴더
RANK_PATH = DATA_PATH + "rank/"  #랭크 데이터 저장 폴더
PATCHNOTE_PATH = DATA_PATH + "patchnote/"  #패치노트 폴더

VERSION = "2.08" #버전
LAST_PATCH = "21/02/18" #마지막 패치일
EMAIL_ADDRESS = "otter6975@gmail.com" #연락용 이메일
BOT_LINK = "https://koreanbots.dev/bots/788060831660114012" #봇 공유용 링크

TOKEN = "" #봇의 토큰
KOREA_BOT_TOKEN = "" #한국 봇 서버 토큰, 필수아님

👩‍💻 해당 값을 자신의 환경에 맞게 변경하셔야합니다. 📝


📰 카테고리 작성법

Config 에서 설정한 QUIZ_PATH 값에 카테고리 폴더를 작성할 수 있습니다. 기본값인 gameData 폴더라 가정했을 때 게임 카테고리를 생성한다고 가정하겠습니다.

카테고리의 이름은 게임 이며 퀴즈봇 UI에서 표시될 아이콘은 🕹️ 라고 생성하려한다면

[ 게임&icon=🕹️ ]

폴더를 생성하시면 카테고리 생성이 완료됩니다.

(자세한 내용은 예제로 올린 gameData 폴더를 확인하세요.)


🎲 퀴즈 작성법

현재 퀴즈봇에서 사용할 수 있는 퀴즈 유형은 다음과 같습니다.

  • 음악 퀴즈
  • 그림 퀴즈
  • OX 퀴즈
  • 텍스트 기반 퀴즈

🎧 음악 퀴즈 만드는 법

  • 게임 이라는 음악 퀴즈를 만든다고 가정하고 폴더를 작성한다면 다음과 같습니다.

  • 📁 게임&quiz&icon=🎧

&quiz 퀴즈 폴더를 의미 &icon=🎧 음악 퀴즈 아이콘을 의미

이제 퀴즈 폴더는 완성됐습니다!

  • 퀴즈를 생성하고 싶다면 다음과 같이 퀴즈 폴더안에 또 다른 폴더를 생성해주시면 됩니다.

정답1 &# 정답2 &^ 추가설명

예를 들어 스타크래프트 가 정답일 경우 스타도 정답 인정이 가능합니다. 추가적으로 노래가 테란 종족의 BGM 이라고 설명을 작성하고자 한다면

  • 📁스타크래프트 &# 스타 &^ 테란 테마

이와 같이 작성이 가능합니다.

  • 이렇게 정답 인식을 위한 폴더를 생성한 뒤 음악 💾파일(MP3)를 폴더안에 넣어주시면 됩니다.

❗ 음악 퀴즈는 아이콘을 🎧 로 설정해야합니다. 그렇지 않으면 봇에서 퀴즈 타입을 읽을 수 없습니다. 만약 아이콘을 변경하고 싶다면 Config.py 파일에 있는 ICON_TYPE_SONG 의 값을 변경해주세요.

🖼 그림 퀴즈 만드는 법

  • 리그오브레전드 그림 이라는 그림 퀴즈를 만든다고 가정하고 폴더를 작성한다면 다음과 같습니다.

  • 📁 리그오브레전드 그림&quiz&icon=🖼

&quiz 퀴즈 폴더를 의미 &icon=🖼 그림 퀴즈 아이콘을 의미

이제 퀴즈 폴더는 완성됐습니다!

  • 퀴즈를 생성하고 싶다면 다음과 같이 퀴즈 폴더안에 또 다른 폴더를 생성해주시면 됩니다. (음악 퀴즈와 동일합니다.)

정답1 &# 정답2 &^ 추가설명

예를 들어 가고일 돌갑옷 가 정답일 경우

  • 📁가고일 돌갑옷

이와 같이 작성이 가능합니다.

  • 이렇게 정답 인식을 위한 폴더를 생성한 뒤 그림 💾파일(jpg, png, webm)를 폴더안에 넣어주시면 됩니다.

❗ 그림 퀴즈는 아이콘을 🖼 로 설정해야합니다. 그렇지 않으면 봇에서 퀴즈 타입을 읽을 수 없습니다. 만약 아이콘을 변경하고 싶다면 Config.py 파일에 있는 ICON_TYPE_PICTURE 의 값을 변경해주세요.

⭕ OX 퀴즈 만드는 법

  • 상식OX 라는 OX 퀴즈를 만든다고 가정하고 폴더를 작성한다면 다음과 같습니다.

  • 📁 상식OX&quiz&icon=⭕

&quiz 퀴즈 폴더를 의미 &icon=⭕ OX 퀴즈 아이콘을 의미

이제 퀴즈 폴더는 완성됐습니다!

  • 퀴즈를 생성하고 싶다면 다음과 같이 퀴즈 폴더안에 quiz.txt 파일을 생성하고 퀴즈를 작성해야합니다.

작성 요령

  • quiz_answer: O 또는 X
  • 문제
  • desc: 정답 공개시 표시될 설명
  • 개행 퀴즈간 구분자

만약 정답은 X, 문제는 꿀벌은 꽃에서 꿀을 채취한다. 그러므로 꽃의 꿀과 꿀벌의 꿀은 똑같다. 정답 공개시 함께 표시될 설명은 꽃의 꿀에는 자당, 포도당, 과당의 성분만이 들어있으나 벌의 꿀에는 해당 성분을 포함하여 아미노산, 비타민 등도 들어있다. 인 퀴즈를 작성하고자하면

quiz_answer: X
꿀벌은 꽃에서 꿀을 채취한다. 그러므로 꽃의 꿀과 꿀벌의 꿀은 똑같다.
desc: 꽃의 꿀에는 자당, 포도당, 과당의 성분만이 들어있으나 벌의 꿀에는 해당 성분을 포함하여 아미노산, 비타민 등도 들어있다.

이와 같이 작성이 가능합니다.

❗ 그림 퀴즈는 아이콘을 ⭕ 로 설정해야합니다. 그렇지 않으면 봇에서 퀴즈 타입을 읽을 수 없습니다. 만약 아이콘을 변경하고 싶다면 Config.py 파일에 있는 ICON_TYPE_OX 의 값을 변경해주세요.

👨‍🎓 텍스트 기반 퀴즈 만드는 법

  • 역사상식 이라는 텍스트 기반 퀴즈를 만든다고 가정하고 폴더를 작성한다면 다음과 같습니다.

  • 📁 역사상식&quiz&icon=👨‍🎓

&quiz 퀴즈 폴더를 의미 &icon=👨‍🎓 텍스트 기반 퀴즈 아이콘을 의미

이제 퀴즈 폴더는 완성됐습니다!

  • 퀴즈를 생성하고 싶다면 다음과 같이 퀴즈 폴더안에 quiz.txt 파일을 생성하고 퀴즈를 작성해야합니다.

작성 요령

  • quiz_answer: 퀴즈 정답
  • 문제

만약 정답은 고인돌, 문제는 청동기 시대에 커다란 돌을 쌓아 만든 족장의 무덤을 무엇이라고 하는가? 인 퀴즈를 작성하고자하면

quiz_answer: 고인돌
청동기 시대에 커다란 돌을 쌓아 만든 족장의 무덤을 무엇이라고 하는가?

이와 같이 작성이 가능합니다.

❗ 텍스트 기반 퀴즈는 아이콘을 👨‍🎓 로 설정해야합니다. 그렇지 않으면 봇에서 퀴즈 타입을 읽을 수 없습니다. 만약 아이콘을 변경하고 싶다면 Config.py 파일에 있는 ICON_TYPE_QNA 의 값을 변경해주세요.

💎 공통 설정 사항

각 퀴즈폴더 안에는 info.txt 를 작성하셔야합니다.

  • &topNickname: 1등에게 수여할 칭호
  • &quizCount: 퀴즈 개수, OX 및 텍스트 기반 퀴즈만 해당
  • &typeName: 퀴즈 종류에 관한 한줄 설명
  • 퀴즈에 대한 자세한 설명

예를 들어 역사상식 퀴즈 폴더안에 있는 info.txt 는 다음과 같습니다.

&topNickname: 역사가
&quizCount: 50
&typeName: 단답형 역사 문제 맞추기
한국사의 문제를 보고 정답을 맞추셔야합니다.
quizCount 는 음악 퀴즈와 그림퀴즈에서는 자동으로 문제 수를 불러오나 OX 퀴즈와 텍스트 기반 퀴즈는 따로 작성하셔야합니다.

🔰 퀴즈 작성에 대한 예시는 첨부한 gameData 를 참고하세요.


🛰 멀티플레이 퀴즈 작성

Config.py 에서 설정한 MULTI_PATH 폴더를 사용합니다.

  • MULTI_PATH 로 지정한 폴더안에 카테고리를 생성합니다.
  • 카테고리의 아이콘을 🛰 로 설정합니다. (ICON_TYPE_MULTIPLAY)
  • 생성한 폴더안에 info.txt 를 생성합니다.

info.txt는 다음과 같이 작성하셔야합니다.

  • &topNickname: 승리한 서버 칭호
  • &typeName: 퀴즈 유형 한줄 설명
  • &pathList 불러올 퀴즈들의 경로 설정
  • &endPathList 경로 설정 끝내기
  • 문제 설명

예시

&topNickname: 겜돌이 서버
&typeName: 게임 제목 맞추기(주관식)
&pathList
게임&icon=🕹️\게임1&quiz&icon=🎧
&endPathList

게임 퀴즈 중, 무작위로 50개가 선정돼 퀴즈가 진행됩니다.

🔔 힌트 : 사용불가
⏩ 스킵 : 사용불가
🔈 문제별 노래길이 : 30초

🔩 Quizbot.py

퀴즈봇을 실행합니다.

🔩 QuizUI.py

퀴즈 선택 등의 UI를 제공합니다.


❗ 퀴즈 자료 설정 예시는 함께 첨부된 gameData 📁 폴더를 확인하세요.


📷 스냅샷

quizbot

😀 해당 소스코드를 이용하여 새로운 봇을 제작하거나 직접 서버를 열 때 원본 소스가 있는 이 깃허브 링크를 꼭 남겨주시길 바랍니다!

About

discordpy 기반의 discord quizbot, 디스코드 퀴즈봇

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages