Ru_Nan
대표칭호 없음
Ru_Nan 642a599e50ad442cab0e91c0d4d2252a
이해도 | 1.12 |
---|---|
게임버전 (JE) | 모드버킷 |
스크립트 버전 | 입문자(아무것도 몰라요) |
스크립트 애드온 | 2.2dev36 |
aliases:
one = 5847
two = 5857
three = 5853
four = 5850
five = 5848
six = 5849
seven = 5854
eight = 5856
nine = 5851
zero = 5852
plus = 5858
minus = 5855
chance of 70%:
set {_n} to 6
loop {_n} times:
set {_block} to random element of "one" and "two", "three", "four", "five", "six", "seven", "eight", "nine", "zere"
set {_slot} to 12 + loop-number
set slot {_slot} of current inventory of player to {_block}
play sound "BLOCK_NOTE_PLING" with volume 1 and pitch 1 at player
이런식으로 구문을 짰는데 만약 뽑은 블록이 one 이라면 {뽑은수}라는 변수를 1로 지정하고 싶다면
if {_block} element is one:
set {뽑은수} 1
이런식으로 하면 되나요 아님 다르게 if를 짜야 하나요?
스크립터브혼
2020.12.19[Element of ]익스프레션은 리스트 중 한가지 값을 가져옵니다.
사용한 리스트는 텍스트 타입들만 있으므로 {_block}은 텍스트 값를 가지게 됩니다.
텍스트는 텍스트끼리 비교하면 됩니다.
변수에 값을 세팅할 때는 [Change]이펙트의 패턴을 참고하세요.
Ru_Nan
2020.12.19aliases:
one = 5847
two = 5857
three = 5853
four = 5850
five = 5848
six = 5849
seven = 5854
eight = 5856
nine = 5851
zero = 5852
plus = 5858
minus = 5855
on load:
set {나.가격} to 50000
set {너.가격} to 50000
Command /너를위한:
trigger:
if money of player >= {너.가격}:
add -50000 to player's money
send "{@S} 너를 위한 도박 비용으로 5만원이 지출되었습니다."
set {_n} to 5
open chest inventory with 6 rows named "{@S} 너" to player
play sound "BLOCK_NOTE_PLING" with volume 1 and pitch 1 at player
set {_slot} to 0
loop all players:
if loop-player is player:
exit 2 sections
set slot {_slot} of current inventory of player to loop-player's head named "%loop-player%"
add 1 to {_slot}
wait 1 tick
set {_w} to a random integer between 0 and {_slot}-1
set {_player} to name of slot {_w} of current inventory
wait 1 second
close inventory to player
send title "&c대상자 : &f%{_player}%" to player for 1 seconds with fadein 1 second and fade out 1 second
wait 3 second
open chest with 3 row named "&4너를위한도박"
play sound "BLOCK_NOTE_PLING" with volume 1 and pitch 1 at player
loop 27 times:
set slot 4 of current inventory of player to player's head named "&f[ &c공격대상 &f] %{_player}%"
set slot loop-number - 1 of current inventory of player to gray stained glass pane named "&f[ &c도박중 &f]"
chance of 70%:
set {_n} to 6
loop {_n} times:
set {_n.%player%.%loop-number%} to random element of "one" and "two", "three", "four", "five", "six", "seven", "eight", "nine", "zero"
set {_slot} to 12 + loop-number
set slot {_slot} of current inventory of player to {_n.%player%.%loop-number%}
play sound "BLOCK_NOTE_PLING" with volume 1 and pitch 1 at player
if {_block} element is one:
set {_n.%player%.%loop-number%} 1
if {_block} element is two:
set {_n.%player%.%loop-number%} 2
if {_block} element is three:
set {_n.%player%.%loop-number%} 3
if {_block} element is four:
set {_n.%player%.%loop-number%} 4
if {_block} element is five:
set {_n.%player%.%loop-number%} 5
if {_block} element is six:
set {_n.%player%.%loop-number%} 6
if {_block} element is seven:
set {_n.%player%.%loop-number%} 7
if {_block} element is eight:
set {_n.%player%.%loop-number%} 8
if {_block} element is nine:
set {_n.%player%.%loop-number%} 9
if {_block} element is zero:
set {_n.%player%.%loop-number%} 0
if {_n} is 5:
if loop-number is 1:
set {_n.%player%.%loop-number%} to {_n.%player%.%loop-number%} * 10000
if loop-number is 2:
set {_n.%player%.%loop-number%} to {_n.%player%.%loop-number%} * 1000
if loop-number is 3:
set {_n.%player%.%loop-number%} to {_n.%player%.%loop-number%} * 100
if loop-number is 4:
set {_n.%player%.%loop-number%} to {_n.%player%.%loop-number%} * 10
if {_n} is 6:
if loop-number is 1:
set {_n.%player%.%loop-number%} to {_n.%player%.%loop-number%} * 100000
if loop-number is 2:
set {_n.%player%.%loop-number%} to {_n.%player%.%loop-number%} * 10000
if loop-number is 3:
set {_n.%player%.%loop-number%} to {_n.%player%.%loop-number%} * 1000
if loop-number is 4:
set {_n.%player%.%loop-number%} to {_n.%player%.%loop-number%} * 100
if loop-number is 5:
set {_n.%player%.%loop-number%} to {_n.%player%.%loop-number%} * 10
고쳐보았는데 {_block}을 어떻게 바꿔야 할지 모르겠습니다
스크립터브혼
2020.12.19본문에 스크립트 코드 넣는 방법 - https://www.koreaminecraft.net/scriptqna/2149827
코드 읽을 수 있게 넣어주세요. 어떤것을 수정했고, 어떤 결과가 나왔는지 알려주세요. 저도 뭘 고쳤다는건지 잘 모르겠습니다.
if {_n} is 5:
이것과 같이if {_value} is "one":
이렇게 비교하면 됩니다.복잡한 코드를 바로 수정하려 하지마시고 간단한 코드부터, 기본적인 문법부터 차근차근 해보실 필요가 있습니다.
이미 작성자께서 복붙하신 코드에 모두 정답이 들어있습니다.
set의 경우
set {_n.%player%.%loop-number%} to {_n.%player%.%loop-number%} * 100
와 같습니다.Ru_Nan
2020.12.19스크립트의 목적은 5자리또는 6자리로 숫자가 set slot이 되고 그 숫자만큼 랜덤한 상대방의 돈을 깍는 것 입니다
https://serviceapi.nmv.naver.com/flash/convertIframeTag.nhn?vid=2B4B7493A844168F0D2A9356DBC4DB0A7D81&outKey=V1237e036d12a0da1470536f9690ab8977d754f159dfd0733582c36f9690ab8977d75&width=544&height=306
이것을 스크립트로 구현해 보는 것입니다
Ru_Nan
2020.12.19항상 질문에 답해주셔셔 감사합니다
현재 상황과 지금 어떠한 오류가 있는지에 대한 영상을 담은 것 입니다
스크립터브혼
2020.12.20먼저 말씀드리자면 질문자께서는 아직 해당 기능을 구현할 단계가 아닙니다.
스크립트의 기본적인 자원도 활용하지 못하는데 복잡한 알고리즘을 구현한다는건 불가능합니다.
지금 단계에서는 제가 답을 드리는것이 아니라 만들어드리는 것과 같습니다.
답을 드리는것은 의미가 없고 질문자께서 지금 해야하는것들을 알려드리겠습니다.
1. 스크립트의 구성요소인 이벤트, 컨디션, 이펙트, 익스프레션, 타입에 대해서 찾아보세요.
네이버, 구글에 검색하면 이것들을 설명하는 강좌가 아주 많습니다. 한마포에도 있구요.
강좌에 있는 예문들도 열심히 받아 적고 서버에 적용해보시고요.
각각의 요소가 어떤역할을 하고 어떻게 쓰이는지 알아보세요.
2. 변수의 종류와 쓰임에 대해서 이해하세요.
변수는 생명주기에 따라 '전역'변수와 '지역'변수로 나뉩니다.
저장 개수에 따라 '싱글'변수와 '리스트'변수로 나뉘구요.
상황에 따라 어떤 형태의 변수를 써야하는지 고를 수 있어야 합니다.
3. [스크립트 문서]의 패턴을 보고 코드를 작성 할 수 있어야 합니다.
대괄호[]는 생략 가능한 선택지, 소괄호()는 생략 불가능한 선택지, 세로줄|은 선택 요소 구분자, 퍼센트%는 타입을 의미합니다.
패턴을 보고 예문에 적용해보면서 문서를 어떻게 읽는지 연습하세요.
모든 스크립트 요소는 작성 패턴이 있습니다. 이걸 모르면 스크립트를 다룰 수 없어요.
4. 1~3의 일을 모두 하셨다면 기본설치 되는 예제를 분석하세요.
15개의 기본예제는 위 1~3의 일을 모두 할 수 있어야 분석할 수 있습니다.
또한 예제를 분석할 수 있어야 자신의 아이디어를 스크립트로 구현할 수 있습니다.
현재로서 제가 드릴 답변은 이것뿐입니다.
스크립터브혼
2020.12.20예제분석하는 방법입니다. 예제는 teleport with compass.sk 파일입니다.
> on rightclick with compass:
[on click]이벤트 - 우클릭 패턴 rightclick과 아이템 패턴 with %item% 이 사용됨.
나침반을 들고 오른쪽 클릭을 하면 발생한다.
> loop blocks above targeted block:
[blocks]익스프레션 - blocks %direction% [%locations%] 패턴이 사용됨. 리스트 형태로 반환함
[direction]익스프레션 - 윗쪽을 가르키는 above가 사용됨
[targeted block]익스프레션 - 유저가 바라보는 블록을 반환함
유저가 바라보는 블록의 한칸 위에있는 블록들을 루프한다
> teleport player to loop-block
[Teleport]이펙트 - 엔티티들 특정 위치로 이동
[Event-Player]익스프레션 - 생략 패턴 [event-]가 생략된 형태.
플레이어를 루프한 블록에 이동시킨다.
> stop trigger
[Exit]이펙트 - 생략 패턴 [trigger]가 생략 안된 형태.
코드 진행을 멈춘다.