마인크래프트/플러그인 개발

Quest - 범용 퀘스트 플러그인

KUDONG12 2020. 3. 29. 21:10

2021/7/19 추가

예전에 잠깐 만들어본 퀘스트 관련 플러그인 

지금 생각하면 구조도 개판이고 스파게티코드에 스레드 관리도 비효율적으로 짠거 투성이다.

이젠뭐 과거의 유물이라 생각하고 남겨두기로 했다.

Quest

마인크래프트 1.15.1 퀘스트 플러그인입니다

Features

  1. 절차에따라 진행되는 퀘스트 방식
  2. 플레이어를 위한 퀘스트 GUI 지원
  3. 퀘스트 공개시간에 대한 타이머 설정가능 (비동기 스레드 작동)
  4. 게임도중에 종료시 해당지점의 체크포인트까지 세이브 & 서버 리로드시 세이브
  5. GUI를 통한 퀘스트 통계 및 퀘스트 로그 확인기능 추가
  6. 퀘스트 완료시 보상시스템 & 퀘스트 정산소 구역 설정 기능 추가
  7. 원하는 크기로 리사이징을 통한 이미지 OR URL이미지 생성기능(JPG만 지원)
  8. 여러 퀘스트 플래그 지원
  9. 백업기능추가(1시간간격)
  10. Citizens2 연동 지원

Quest

퀘스트를 만들기위해서는 우선 plugins/AldarQuest/images 폴더에 해당 퀘스트 이미지를 넣습니다.

이미지명은 <알파벳>_<숫자> 로 저장해야합니다. 예시: a_1 또는 b_3 또는 c_11 .....

(128X128 사이즈의 이미지를 권장합니다.(Support JPG only))

이미지를 넣으신후 재부팅을 하시면 생성된 Quest.yml에 다음과 같은 섹션이 생깁니다.

<이미지 파일명>:
  name: ' '
  description: ' '
  goal: ' '
  reward: ' '
  address: ' '
  time: 2
  path: <이미지 파일명>.jpg
  step:
  - ' '
  - ' '
  - ' '

이곳에서 직접 커스텀마이징을 통해서 퀘스트를 만드실수 있습니다.

  • name - 퀘스트의 이름 (필수)
  • description - 해당 퀘스트의 설명 (필수)
  • goal - 퀘스트 목표 (필수)
  • reward - 보상 아이템 목록 (필수)
  • address - 퀘스트 URL
  • time - 퀘스트 공개 시간 (필수) (단위:분)
  • path - 파일명 (자동생성)
  • step - 퀘스트 진행 순서 (필수)

예시

a_1:
  name: '좀비1마리잡기'
  description: '좀비를 1마리 잡아주세요'
  goal: 좀비1마리를 잡는것이 목표입니다.
  reward: test 10
  address: ' '
  time: 200
  path: a_1.jpg
  step:
  - HUNT 1 ZOMBIE @ 좀비를 1마리 잡으세요
  - CHAT1 3 &6[앙기모띠] 좀비 1마리를 잡아주셔서 감사합니다!
  - CHAT1 3 &6[앙기모띠] 앙기모띠 npc를 클릭해주세요
  - CLICK_NPC 앙기모띠 @ 해당 npc를 클릭하세요

퀘스트 플래그 목록(진행순서)

HUNT

 - HUNT <수량> <몹이름>  .... @ <설명>
 - HUNT 1 skeleton king @ 스켈레톤 킹 1마리를 사냥하세요.
 - HUNT 3 pig / 1 zombie @ 돼지3마리와 좀비 1마리를 사냥하세요

일정수의 몹을 잡아야 완료되는 플래그입니다.

  • 복수의 몹을 설정할려면 / 을 추가하여 늘릴수 있습니다.

LOCATE

 - LOCATE <Location1> <location2> @ <설명> 
 - LOCATE -241,64,-101,world -245,66,-98,world @ 해당 지역으로 이동하세요

특정 장소에 도달하면 완료되는 플래그입니다.

  • location1 좌표와 location2 좌표 사이의 공간으로 설정됩니다.
  • location 양식은 <X좌표,Y좌표,Z좌표,월드> 입니다

CLICK

 - CLICK <Location> <Clickable Item> @ <설명>
 - CLICK -243,65,-115,world LEVER @ 레버를 클릭하세요

버튼이나 레버를 클릭하면 완료되는 플래그입니다.

  • location 양식은 <X좌표,Y좌표,Z좌표,월드> 입니다

CHAT1

 - CHAT1 <시간(초)> <출력내용>
 - CHAT1 3 &6[앙기모띠] 좀비 1마리를 잡아주셔서 감사합니다!

진행될때 상황에따라 원하는 메세지를 출력합니다.

  • 액션바를 이용한 문구로 출력됩니다.
  • 출력내용은 컬러코드를 지원합니다.

CHAT2

 - CHAT2 <시간(초)> <출력내용(주 제목)> @ <출력내용(부 제목:optional)>
 - CHAT2 3 &6테스트 문구입니다.
 - CHAT2 3 &6[앙기모띠] @ 좀비 1마리를 잡아주셔서 감사합니다!

진행될때 상황에따라 원하는 메세지를 출력합니다.

  • 타이틀 형식으로 출력됩니다.
  • 부제목을 추가할려면 @ 을 추가하여 늘릴수 있습니다.
  • 출력내용은 컬러코드를 지원합니다.

CLICK_NPC (시티즌 연동 필수)

 - CLICK_NPC <Npc이름> @ <설명>
 - CLICK_NPC 앙기모띠 @ 해당 npc를 클릭하세요
  • NPC를 오른쪽 클릭시 완료되는 플래그입니다.

GIVE_NPC (시티즌 연동 필수)

 - GIVE_NPC <Npc이름> <수량> <아이템 이름> @ <설명>
 - GIVE_NPC 앙기모띠 3 테스트용 칼 / 3 테스트용 스틱 @ 테스트용 칼3개와 태스트용 스틱 3개를 앙기모띠에게 전달해주세요

NPC를 오른쪽 클릭시 요구하는 수량의 아이템을 가지고 있으면 NPC에게 아이템을 주는 플래그입니다.

  • 복수의 아이템을 설정할려면 / 을 추가하여 늘릴수 있습니다.

Commands

<일반사용자>

/q 
  • 퀘스트 패널을 엽니다.

<관리자>

/aq open
  • 퀘스트 보상 정산소를 엽니다.
/aq log <퀘스트이름>
/aq log a_1
  • 현재 진행중인 퀘스트의 로그를 확인합니다.
/aq create <이름>
  • 퀘스트 보상 정산소를 생성합니다. (이전에 나무삽을 통한 좌표 설정이 필요합니다.)
/aq remove <이름>
  • 퀘스트 보상 정산소를 삭제합니다.
/aq reload
  • 퀘스트 이미지를 리로드 합니다.
/c <filename(.jpg생략)> <height> <width> 
  • 플레이어가 바라보는 방향의 1칸 앞으로 해당 사이즈의 이미지를 생성합니다.
/cu <url> <height> <width>
  • 플레이어가 바라보는 방향의 1칸 앞으로 해당 사이즈의 URL 이미지를 생성합니다.
/board <@NotNULL 이름> <플래그> 
  • 여러 퀘스트가 담긴 보드를 생성합니다. (반드시 나무삽을 통한 좌표설정이 선행되어야합니다. 또한 명령어 입력시 설치될 방향을 바라보고 있어야합니다.)

Reward

rewards.yml 을 통해서 보상아이템을 만들거나 수정하실수 있습니다.

예시

test:
  item: DIAMOND_SWORD
  dname: 테스트용 칼
  lores:
  - 안녕
  - 하세요
  - ㅋㅋ?
  slot: mainhand
  attr:
  - generic.attackDamage 600
  - generic.maxHealth 200
  • test - 보상 이름 (아무 이름이나 가능합니다 예시로 test란 이름을 사용했습니다.)
  • dname - 아이템의 displayname
  • item - 아이템 이름
  • lores - 아이템 설명
  • slot - 아이템 적용범위 (mainhand,offhand,feet,legs,chest,head)
  • attr - 아이템 속성 https://minecraft.gamepedia.com/Attribute 참조

 

 

OUT OF DATE 더이상 지원하지 않습니다.

https://github.com/aldarQuest