개인 자료란 (JE)

  서버 커뮤니티

Profile SeoRong 대표칭호 없음

Seo_Rong 4361ed1b04af4b1c81f46c5e8d1bd3ea

Profile

강좌 자바 에디션(JE) 플러그인 개발

1. 낚시를 할 때 미니게임을 해보자! (낚시 기본 세팅)

2020.07.06 조회 수 3581 추천 수 0
분야 스크립트 
게임버전 모든버전 

본 소스는 GNU GPL v3 라이선스하에 배포됩니다

제가 올려드리는 강좌들은 기본적인 이해를 돕기위한 최소한의 부분설명만을 적습니다.

응용을 위해 작성된 구문들이므로 상세구문만 가져다 쓰시면 됩니다. 입맛에 맞게 아무렇게나 쓰시면 됩니다.

내용은 크게 두가지로 구성되는 로직 설명 - 구현(어찌 굴러가는지 주석처리 덧붙임) 순서로 이루어집니다.


지금 설명하는 구문은 낚시를 했을 때 미니게임을 실행하기 위한 기본 세팅입니다.

낚시 찌를 물었을 때 물고기가 나오는걸 취소시키고 미니게임이 실행되도록 해야합니다.

미니게임을 할 때 적용되는 인첸트를 몇몇개 확인 후 진행합니다.


on fishing:  #낚시 중 일 때

    if "%fishing state%" = "BITE":  #물고기가 물면

        play sound "block.dispenser.dispense" with volume 0.5 to player #플레이어에게 소리를 냄

    if "%fishing state%" = "CAUGHT_FISH": #물고기를 낚으면

        make player run cmd "/tppos ~ ~ ~" as op #제자리 텔레포트를 함으로서 낚시를 취소시킴

        set {player.fishing.state} to 1  # 플레이어가 낚시중임을 체크시킴, 아이템이 드랍되지 않도록 하기위한 체크구문

        set {luc.%player%} to enchant level of Luck of The Sea of player's tool #바다의 행운을 미니게임의 난이도를 줄이는데에 사용함 이게 아닌 다른 요소를 사용해도 문제없음

        set {물고기등급.%player%} to a random number between -0.49 and 2.75 #등급설정 0 = 하급 1 = 중급 2 = 상급 3 = 특급 (특급이 잘 안뜨도록 설정)

        set {물고기등급.%player%} to round({물고기등급.%player%}) #정수로 바꿈 이건 기본 난이도가 됨

        set {난이도.%player%} to {물고기등급.%player%} - {luc.%player%}  # 바다의 행운에 따른 난이도 설정

        if {난이도.%player%} < 0: #만약 난이도가 음수일경우

            set {난이도.%player%} to 0 # 최하 난이도인 0으로 재 조정

        set {_sel} to a random number between 0 and 30 # 물고기 종류의 확률 정하기

        if {_sel} is between 0 and 3:  

            set {물고기종류.%player%} to 1 

        else if {_sel} is between 3.01 and (6 + {fisher.%player%.level}*0.5): #제 직업세팅으로 정해놓은 어부레벨에 의해 물고기종류가 더 좋게 나올 수 있도록 세팅해뒀습니다. 필요없으신분은 {fisher.%player%.level}*0.5 구문을 지워주시기 바랍니다.

            set {물고기종류.%player%} to 2

        else if {_sel} is between 8.51 and (10.5 + {fisher.%player%.level}*0.5):

            set {물고기종류.%player%} to 3

        else if {_sel} is between 16.01 and (18 + {fisher.%player%.level}*0.5):

            set {물고기종류.%player%} to 4

        else if {_sel} is between 23.51 and (24 + {fisher.%player%.level}*1):

            set {물고기종류.%player%} to 5

        else:

            set {물고기종류.%player%} to 0

        

        set {게임종류} to a random number between -0.49 and 2.49 #동일한 확률로 결정되는 게임종류

        set {게임종류} to round({게임종류}) # 정수화

        if {게임종류} is 0: #제가 보여드릴 게임 3가지입니다.

            make player run cmd "/스타캐치 %{난이도.%player%}% %{물고기등급.%player%}% %{물고기종류.%player%}%" as op

            exit

        if {게임종류} is 1:

            make player run cmd "/클릭 %{난이도.%player%}% %{물고기등급.%player%}% %{물고기종류.%player%}%" as op

            exit

        if {게임종류} is 2:

            make player run cmd "/연타 %{난이도.%player%}% %{물고기등급.%player%}% %{물고기종류.%player%}%" as op

            exit

on item spawn: #아이템드랍시

    if {player.fishing.state} is 1: #플레이어의 낚시상태가 확인될경우

        cancel event #기존물고기드랍취소

        delete {player.fishing.state}  #취소됬으니 초기화




1개의 댓글

qjatlr7469
2022.11.05

3,7 번줄 cant understand this expression: fishing state 라고 뜨네요 ㅜㅜ

뉴스 및 창작물
/files/thumbnails/246/933/003/262x150.crop.jpg?20241204080049

업데이트

[마인크래프트 1.21.4 업데이트]

제작대

2024-12-04

0

/files/thumbnails/477/930/003/262x150.crop.jpg?20241201030912

레드스톤

뉴진스 - Super Shy | 마크 노트블럭 커버

노트블럭전문가

2024-12-01

0

/files/thumbnails/483/916/003/262x150.crop.jpg?20241127115329

레드스톤

[노트블럭 커버] 뉴진스 - ETA 3

노트블럭전문가

2024-11-27

1

/files/thumbnails/150/925/003/262x150.crop.jpg?20241123005717

건축

응답하라 1988 ? 2

팀뉴일리시

2024-11-23

5

/files/thumbnails/761/908/003/262x150.crop.jpg?20241025153749

건축

서울 숭례문(崇禮門) 6

KHC

2024-10-25

2

/files/thumbnails/578/899/003/262x150.crop.jpg?20241010142350

건축

경주 월정교 1

KHC

2024-10-10

2

/files/thumbnails/219/899/003/262x150.crop.jpg?20241009200950

건축

송전탑+도시 2

dbasd12

2024-10-09

2