개인 자료란 (JE)

  서버 커뮤니티

한국 마인크래프트 포럼

마인크래프트 자료 및 커뮤니티 플랫폼

전체 회원수 122,127명 ( +47명 )

※ 장기간 미활동 회원 제외

Profile SeoRong 대표칭호 없음

Seo_Rong 4361ed1b04af4b1c81f46c5e8d1bd3ea

Profile

커뮤니티new 개발자란new 개발자 강좌 스크립트

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

2020.06.05 조회 수 685 추천 수 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

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

컨텐츠
https://www.koreaminecraft.net/files/thumbnails/850/878/002/262x150.crop.jpg?20211018191640
(포션 시리즈) 3편 - 비 2

GlassesFilm

2021-10-18

3

https://www.koreaminecraft.net/files/thumbnails/337/871/002/262x150.crop.jpg?20211014221722

플러그인

달고나 뽑기 in Minecraft 8

BlueRing1017

2021-10-14

6

https://www.koreaminecraft.net/files/thumbnails/848/870/002/262x150.crop.jpg?20211014131239

답안지

한마탐 4주차 / 정오표 + 해설 1

베개냥이

2021-10-14

1