개인 자료란 (JE)

  서버 커뮤니티

Profile drthyt 대표칭호 없음

Drthyt f6ecf600040a42a6976ca6ce857e25f4

Profile

질문하기 플러그인

마크 서버 퀘스트 어떻게 해결하나요?

2021.08.23 조회 수 433 추천 수 0

지금 마크 플러그인/커맨드를 이용한 반야생 rpg 서버를 만드는 중인데 원래 사용하던 커맨드로 퀘스트를 지급하던 방식에 차질이 생겨 질문을 남깁니다.


지금까지 쓰고 있던 방식은 tellraw 커맨드를 이용하여 entity 앞에 버튼을 설치해 버튼이 눌렸을 경우 tellraw로 커맨드를 지급, 클릭했을시 [Tag를 주는 형식]으로 퀘스트 지급을 했었는데,


어제 op를 빼고 테스트를 하니 tellraw로는 tag를 할당하지 못하게 막아 뒀더라고요...


그래서 지금 quest 시스템을 다시 찾아보고 있는 중인데

보통 북미권에서 많이 쓰이는 quests 플러그인은 너무 긴 설명을 넣지 못하고, 그 외의 플러그인들을 찾아보니 마땅한 quest 플러그인이 없어서 고민중입니다.


1.12.2의 커스텀 npc를 사용하면 정말 쉽게 해결될 일이긴 한데...몇 주동안 1.17 버젼에서 작업을 하다보니 지금까지 해온 것들을 전부 버리기도 아깝더라고요...


추천하는 이 상황에서 퀘스트에 쓸만한 커맨드/스크립트/플러그인이 있을까요?


4개의 댓글

허두
2021.08.23

어... 퀘스트용 커맨드 등은 잘 모르지만

/trigger 라는 커맨드가 있습니다. trigger 형식의 스코어보드의 값을 바꿀 수 있는 명령어인데, 관리자 권한이 없어도 사용할 수 있습니다.


/scoreboard objectives add 이름 trigger 로 트리거 스코어보드를 추가한 후

tellraw 텍스트를 클릭했을 때 /trigger 이름 set 값 명령어가 실행되게 하시면 됩니다.

그러면 커맨드라면 /execute as @a if score @s matches 값 run 이런식으로 짜시면 되고

플러그인이라면 Bukkit.getScoreboardManager().getScoreboardManager().getObjective("이름").getScore(플레이어.getName).getScore() == 값 으로 감지하시면 됩니다.

대신 유저가 맘대로 채팅창에 쳐서 설정할 수 있으니, 값 부분을 함부로 시도하지 못할 숫자로 정해두시는게 좋아요. 스코어보드의 범위는 -21억부터 21억까지이니, 잘 정해보시는 것을 추천드립니다. (자세한 내용은 'int 범위'를 검색해보세용)


...근데 그냥 플러그인으로 커맨드 하나 만들고, 퍼미션 플러그인으로 해당 커맨드 사용권한 설정하면 되지 않나요?

drthyt
2021.08.23
@허두

전문적으로 서버를 만드는 게 아니라 아는 사람들이랑 소규모로 같이하려고 간단하게 만드는 서버다 보니 시스템 대부분을 그냥 커맨드를 이용해 만들려고 했죠. 플러그인 직접 제작하는 것도 시간이 오래 걸리니, 현재 존재하는 시스템에서 사용할 수 있을만한 방법을 찾아보려고 하다보니 그렇습니다. 퍼미션 플러그인은 처음 들어보는 거라 잘 몰랐구요.

 

암튼 한번 trigger를 사용해 보는 게 좋겠네요. 감사합니다.

허두
2021.08.23
@drthyt

아하, 공개 서버가 아니라 지인분들과만 하는 서버였군요. 그럼 커맨드같이 간편한게 최고죠 bb

옙! 관련해서 또 막히는 부분 있으시면 답글 남겨주세요 :)

drthyt
2021.08.23
@허두

예, 도움 주셔서 감사합니다. ^^7