개인 자료란 (JE)

  서버 커뮤니티

Profile SeoRong 대표칭호 없음

Seo_Rong 4361ed1b04af4b1c81f46c5e8d1bd3ea

Profile

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

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

2020.07.06 조회 수 2799 추천 수 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/520/751/003/262x150.crop.jpg?20240328020349

레드스톤

마인크래프트 노트블록으로 만든 『 Bling‐Bang‐Bang‐Born 』 1

Sonttukk

2024-03-23

1

/files/thumbnails/467/742/003/262x150.crop.jpg?20240311163123

레드스톤

[노트블럭커버] MILGRAM -ミルグラム(밀그램)- / 아마네 「숙청 행진」 제 2심 2

리비온

2024-03-11

0

/files/thumbnails/846/741/003/262x150.crop.jpg?20240310221214

레드스톤

워든 vs 라마 200마리 1

GlassesFilm

2024-03-10

0

/files/thumbnails/542/739/003/262x150.crop.jpg?20240309070457

레드스톤

[고인의 명복을 빕니다][노트블럭]드래곤볼 GT 오프닝 - 점점 마음이 끌려

리비온

2024-03-09

0

/files/thumbnails/326/738/003/262x150.crop.jpg?20240328020414

레드스톤

마인크래프트 노트블록으로 만든 『 Build Our Machine 』

Sonttukk

2024-03-07

0

/files/thumbnails/952/735/003/262x150.crop.jpg?20240303230423

소식

복잡한 설치 없이 마크 애드온을 즐겨보세요! 새로운 블록, 몹, 조합법 등!

도라

2024-03-03

0

/files/thumbnails/212/735/003/262x150.crop.jpg?20240303113438

레드스톤

성장속도 실험

GlassesFilm

2024-03-03

3