개인 자료란 (JE)

  서버 커뮤니티

Profile SeoRong 대표칭호 없음

Seo_Rong 4361ed1b04af4b1c81f46c5e8d1bd3ea

Profile

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

1. 3일 밤낮으로 열심히 만들었던 초간단 슬롯머신 만들기

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

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


서버에 적용된 스크립트 애드온:

skellett

skquery-lime

skrayfall

marsk

skutilities

서버를 열심히 만들던 제가  생각했죠. 회로를 사용하지 않는 슬롯머신을 만들 방법이 없을지...

기본 전제는 이렇습니다.

아주 간단한 회로를 사용하여  버튼을 누르면 피스톤이 작동되어 블럭이 들어갔다 나오는 모델을 만듭니다.c31a457188c5717274d38d00eceda57c.png

이제 저 피스톤이 움직였을 때 랜덤 변수를 사용해 블럭들을 바꿔주고 블럭이 변경될 때 누른 플레이어에게 띵똥똥하는 소리가 나도록 하는겁니다!

근데 우리는 저 블럭의 값을 찾을 수가 없어요.

사흘 밤낮을 열심히 서핑하고 찾은 결과가 아래입니다.

그렇게 만든 소스

on rightclick: 

    if event-block is inactive southward stone button://무슨 버튼을 눌렀는지 체크

 // 버튼이 어떤 버튼인지 체크를 할 때엔 send "%event-block%" to player 로 체크가능합니다.

        set {roulette} to player //식별자 변수 선언

        exit

    if event-block is active southward stone button: //눌린 상태에서 누를경우 소리가 씹히는걸 방지

        exit

    else:

        delete {roulette}//다른걸 눌러 작동하게 될 경우 소리가 기존 누른사람에게 들리게 될 수 있으므로 삭제해줍니다.

        exit

on piston extend://피스톤이 작동 될 때

    if {roulette} is set://식별자 변수 체크

        loop moved blocks://움직인 블록 체크

            set {_roulette.1.1} to random number between 0 and 3.5//랜덤 변수 선언

            set {_loc} to loop-value's location

            set {_loc} to {_loc} ~ normalize vector from event-block to loop-value

            add {_loc} to {_blocks::*}//블럭을 체크 합니다.

        wait 2 ticks

        loop {_blocks::*}:

            set {_loc} to loop-value's location//여기서 블럭 좌표를 따옵니다.

            if {_roulette.1.1} is between 0 and 1.2://슬롯머신의 확률과 블럭들을 설정해줍니다. 기본적으로 확률 설정 시 소숫점 0.01로 구분해주어야 나머지가 생기지 않습니다.

                set block at loop-value to iron block

                play sound "block.note.pling" with volume 2 and pitch 0.707107 to {roulette}

        

            if {_roulette.1.1} is between 1.21 and 2.5:

                set block at loop-value to gold block

                play sound "block.note.pling" with volume 2 and pitch 0.890899 to {roulette}

                

            if {_roulette.1.1} is between 2.51 and 3:

                set block at loop-value to diamond block

                play sound "block.note.pling" with volume 2 and pitch 1.059463 to {roulette}

                

            if {_roulette.1.1} is between 3.01 and 3.5:

                set block at loop-value to emerald block

                play sound "block.note.pling" with volume 2 and pitch 1.414214 to {roulette}    


0c7a65c47608304e062b720fda0f1895.png

버튼을 누르면?
69b16263de1a81c98e86df29bdbe5383.png

이렇게 간단히 블럭이 랜덤으로 바뀌면서 띵똥떙뚱소리를 내며 바뀝니다!

그리고 이 소스를 간단히 응용하면 

329bafece243d725643787168387b99f.png

61d637416b1ec1790b84815e002abc72.png

이런식으로 광물 맞추기를 만들 수 있지요

정말 스크립트 하면서 느끼는건 아무리 찾아보아도 소스들은 넘쳐나는데 정작 내가 만들고 싶은 건 찾아도 안보이는 나쁜 녀석이란 겁니다...

이상 마치며 이후에도 제 서버에 적용했던 여러가지 기능들로 찾아뵙겠습니다.






1개의 댓글

곰탱_E
2020.06.09

신기한데 복잡하군요...

뉴스 및 창작물
/files/thumbnails/268/789/003/262x150.crop.jpg?20240515192032

레드스톤

벌레먹은 돌 빠르게 제거하는 법

GlassesFilm

2024-05-15

0

/files/thumbnails/797/788/003/262x150.crop.jpg?20240515090924

건축

마인크래프트로 구현한 카르카손 보드게임

Warak

2024-05-15

1

/files/thumbnails/487/784/003/262x150.crop.jpg?20240508233607

모드

Windows Borderless 모드에서 악성코드 발견

학교가기싫다

2024-05-08

1

/files/thumbnails/384/778/003/262x150.crop.jpg?20240512002324

업데이트

마인크래프트 자바 에디션 스냅샷 24w18a

학교가기싫다

2024-05-06

0

/files/thumbnails/855/781/003/262x150.crop.jpg?20240505141129

레드스톤

레이저 클리너

GlassesFilm

2024-05-05

1

/files/thumbnails/576/775/003/262x150.crop.jpg?20240426232553

아티클

이달의 블록: 단단한 진흙

학교가기싫다

2024-04-26

0

/files/thumbnails/115/774/003/262x150.crop.jpg?20240428135129

업데이트

마인크래프트 1.20.5 정식 업데이트

학교가기싫다

2024-04-24

0