개인 자료란 (JE)

  서버 커뮤니티

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

스크립트 기초

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

2020.05.02 조회 수 2976 추천 수 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/483/916/003/262x150.crop.jpg?20241127115329

레드스톤

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

노트블럭전문가

2024-11-27

0

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

건축

응답하라 1988 ?

팀뉴일리시

2024-11-23

4

/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

/files/thumbnails/219/899/003/262x150.crop.jpg?20241009200950

건축

송전탑+도시 2

dbasd12

2024-10-09

2