개인 자료란 (JE)

  서버 커뮤니티

Profile 여름밍 대표칭호 없음

Danpung_ 637ab57435e348c58b3dbd261aefcb5a

Profile

질문하기 스크립트

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

2020.10.19 조회 수 576 추천 수 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/477/930/003/262x150.crop.jpg?20241201030912

레드스톤

뉴진스 - Super Shy | 마크 노트블럭 커버

노트블럭전문가

2024-12-01

0

/files/thumbnails/483/916/003/262x150.crop.jpg?20241127115329

레드스톤

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

노트블럭전문가

2024-11-27

1

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

건축

응답하라 1988 ? 1

팀뉴일리시

2024-11-23

5

/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