개인 자료란 (JE)

  서버 커뮤니티

Profile 브금소리BGMSound 대표칭호 없음
Profile

스크립트 기초

[ 스크립트 기본강좌 ( 7 ) ] 아이템 이름

2020.05.02 조회 수 2609 추천 수 0

안녕하세요, 브금입니다.

하이퀄리티 개발자로서 쓰는 첫 강좌 글이네요! 잘 부탁드립니다 :)


오늘 강좌에서 소개해드릴 "아이템 이름 얻기"는 아이템을 변수로 불러오게 되면 

아이템의 이름을 뽑아낼 수 없는 문제를 해결하기 위한 해결책입니다.


본론

[!] 사용 스크립트 버전은 2.3.6이며, 타 버전에선 정상적으로 작동할 수 도 있습니다.


이해를 돕기 위해 문제 상황을 가정해보겠습니다!

<전제 조건> {test} 변수에 아이템 이름이 "테스트" 인 아이템 값이 입력되어있습니다.

예시 코드:


command /이름:

    trigger:

        set {_name} to name of {test}

        send "%{_name} %"


이러한 코드를 작성한 뒤, /이름을 치면 "테스트"가 아닌 "<none>", 즉 값이 나오지 않게 됩니다.

이런 식으로 아이템 이름을 뽑아낼 때 뒤에 변수가 온다면 정상적인 출력이 안되는 문제입니다


해결 방법은 정말 간단합니다.

아이템 이름을 구하는 과정에서 name of 뒤에 변수가 안오게끔 만들면 해결이 가능합니다.


여러 구문에서 사용될 수 있기 때문에 함수의 형식으로 구문을 작성해드리겠습니다


function getname(item: item) :: text:

     set {_getname} to chest with 1 rows named "."

     set slot 1 of {_getname} to {_item}

     return name of slot 1 of {_getname}


이런 식의 함수를 작성하신 뒤, 아까 위의 전제에 따라

getname({test}) 를 출력하게 되면, 정상적으로 아이템의 이름이 나옵니다.


원리는 위에서도 설명했듯이 name of 뒤에 변수가 안오게끔 만들면 해결이 가능하기에,

변수 대신 익스프레션이 들어갈 수 있게끔 가상의 상자 하나를 만들어 아이템을 안에 집어넣은 뒤,

해당 슬롯 아이템의 이름을 출력하는 방법을 통해 해당 문제를 해결하였습니다.


감사합니다.

1개의 댓글

바탕
2020.05.04

name of 1 of {_item}

뉴스 및 창작물
/files/thumbnails/520/751/003/262x150.crop.jpg?20240328020349

레드스톤

마인크래프트 노트블록으로 만든 『 Bling‐Bang‐Bang‐Born 』 1

Sonttukk

2024-03-23

1

/files/thumbnails/467/742/003/262x150.crop.jpg?20240311163123

레드스톤

[노트블럭커버] MILGRAM -ミルグラム(밀그램)- / 아마네 「숙청 행진」 제 2심 2

리비온

2024-03-11

0

/files/thumbnails/846/741/003/262x150.crop.jpg?20240310221214

레드스톤

워든 vs 라마 200마리 1

GlassesFilm

2024-03-10

0

/files/thumbnails/542/739/003/262x150.crop.jpg?20240309070457

레드스톤

[고인의 명복을 빕니다][노트블럭]드래곤볼 GT 오프닝 - 점점 마음이 끌려

리비온

2024-03-09

0

/files/thumbnails/326/738/003/262x150.crop.jpg?20240328020414

레드스톤

마인크래프트 노트블록으로 만든 『 Build Our Machine 』

Sonttukk

2024-03-07

0