개인 자료란 (JE)

  서버 커뮤니티

Profile SeoRong 대표칭호 없음

Seo_Rong 4361ed1b04af4b1c81f46c5e8d1bd3ea

Profile

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

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

2020.06.05 조회 수 1746 추천 수 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/483/916/003/262x150.crop.jpg?20241127115329

레드스톤

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

노트블럭전문가

2024-11-27

0

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

건축

응답하라 1988 ?

팀뉴일리시

2024-11-23

4

/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

/files/thumbnails/246/898/003/262x150.crop.jpg?20241008102328

레드스톤

단다단 - 오토노케(オトノケ) | 마인크래프트 노트블럭 커버

노트블럭전문가

2024-10-08

1

/files/thumbnails/348/896/003/262x150.crop.jpg?20241006103035

디도스/봇테러등등을 낚는 방법 5

물귀신

2024-10-06

3