개인 자료란 (JE)

  서버 커뮤니티

Profile 여름밍 대표칭호 없음

Danpung_ 637ab57435e348c58b3dbd261aefcb5a

Profile

질문하기 스크립트

스크립트 내의 변수를 커맨드에서 사용가능하게 할 수 있을까요?

2020.10.19 조회 수 419 추천 수 0
이해도 1.16 
게임버전 (JE) 페이퍼 
스크립트 애드온 2.4.1 

on rightclick on lime concrete:

    if amount of sponge in inventory of player > 0:

        remove 1 of sponge from player's inventory

        set {_c1.%player%} to random integer from 0 to 1

        if {_c1.%player%} is 0:

            set {_c2.%player%} to "Lyan_"

        if {_c1.%player%} is 1:

            set {_c2.%player%} to "Brown_"

        set {_c3.%player%} to random integer from 1000 to 75000

        set {_c4.%player%} to random integer from 0 to 1

        if {_c4.%player%} is 0:

            broadcast "%{_c2.%player%}% 님이 랜덤 금액 %{_c3.%player%}% 을 잃었습니다."

            execute console command "scoreboard players remove %{_c2.%player%}% money {_c3.%player%}"

            stop

        if {_c4.%player%} is 1:

            broadcast "%{_c2.%player%}% 님이 랜덤 금액 %{_c3.%player%}% 을 얻었습니다."

            execute console command "scoreboard players add %{_c2.%player%}% money {_c3.%player%}"

            stop

    else:

        send " 스폰지 1개가 필요합니다."

        stop


볼드친 부분처럼 마인크래프트 명령어를 Skript에선 execute console command" ~ "에 담아야 한다고 하는데, 혹시 커맨드에 Skript의 변수를 넣을 수있는 방법은 없나요?

항상 질문만 드려 죄송합니다. 늘 수고하십니다 :)

1개의 댓글

스크립터브혼
2020.10.20

명령어에서 입력하는 값은 모두 문자입니다. 명령어가 동작할때 인수로 받은 문자를 숫자나, 다른 타입으로 형변환하여 동작하게 됩니다.
execute 이펙트도 "~" 형태로 받는 이유는 문자열로 명령어의 매개변수를 넘기기 때문이죠.

execute 이펙트로 명령을 한다면 굳이 문자가 아닌것을 문자로 넘겨서 다시 필요한 타입으로 형변할 필요가없습니다.
전역변수로 값을 저장해두었다가  명령어 이벤트에서 해당 변수를 사용하면 됩니다.


예를들면...

set {parameter::1} to "msg1"
set {parameter::2} to "msg2"
execute command "/test.command" by console
delete {parameter::*}

command /test.command:
    trigger:
        {parameter::*} is set
        send {parameter::*} to player

이렇게 명령을 하기전 필요한 값을 전역변수로 세팅하고,
명령을 하고 난 뒤 사용한 전역변수를 제거하는 방식으로 구성할 수 있습니다.

execute 이펙트가 동작하게 되면 명령어를 실행하고 난 뒤 나머지 코드를 마저 실행하기 때문에
예문처럼 구성을 하면 명령어 동작 직후 바로 {paramater::*} 리스트를 지웁니다.

명령어 첫줄에 파라메터변수가 있는지 확인하는 컨디션을 넣어
플레이어나 콘솔에서 명령할 수 없고 오직 스크립트에서만 동작하는 명령어로 만들 수 있습니다.

뉴스 및 창작물
/files/thumbnails/841/773/003/262x150.crop.jpg?20240526120908

레드스톤

마인크래프트 노트블록버전 『 봄을 고하다 (春を告げる) 』 [더블옥타브 버전]

노트블럭전문가

2024-05-26

0

/files/thumbnails/712/796/003/262x150.crop.jpg?20240525085438

레드스톤

마인크래프트 노트블록으로 만든 『 봄을 고하다 (春を告げる) 』 1

Sonttukk

2024-05-25

0

/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 모드에서 악성코드 발견 3

학교가기싫다

2024-05-08

1