개인 자료란 (JE)

  서버 커뮤니티

Profile 마크초보레오 대표칭호 없음
Profile

질문하기 스크립트

돈 스크립트 질문

2020.11.11 조회 수 357 추천 수 0
이해도 1.14 
게임버전 (JE) 페이퍼 

제가 변수를 이용해서 돈 스크립트를 만들고 있는데 수표를 발행하는 구문을 만들라고 하는데 /돈 꺼내기 [금액] 이라고 치면 수표가 나오는것 까지는 구현을 했는데 그 수표를 우클릭을 하면 돈 이라는 변수에 그 금액을 추가하고 싶습니다. 그 수표는 종이입니다. if rightclick item 으로 갖가지 방법을 시도했는데 실패 했습니다

그리고 문제가 하나 더 있는데 돈을 꺼낼때 수표만 나오고 가지고 있는 돈이 그대로 있으면 안되잖아요. 그래서 subtract arg 1 to {돈} 이라고 썼는데 오류가 자아꾸 나요

종이의 이름은 수표이고 설명에 %arg 1% 짜리 수표 입니다 라고 나와있고 따옴표 다있습니다

이름이랑 설명은 바꿔도 됩니다


알려주심 감사하겠습니다 (꾸벅)


8개의 댓글

스크립터브혼
2020.11.11

작성하신 코드 올려주세요.

마크초보레오
2020.11.12
@스크립터브혼

command /돈 꺼내기 [integer]:

trigger:

give 1 paper named "수표" with lore "%arg 1% 짜리 수표입니다" to player

subtract arg 1 to {돈}


if rightclick item:

if item is paper named "수표":

add

 

 

add뒤에는 뭘 붙여야 할지...

tab이 안되네요

스크립터브혼
2020.11.12
@마크초보레오

모든 코드는 시작점이 있어야합니다. Custom Command의 경우 명령어를 입력하는 것이 코드의 시작점이죠.
이러한 시작점을 스크립트에서는 이벤트라고 합니다.

우클릭으로 수표 아이템으로부터 돈을 얻는 것의 시작점은 우클릭이죠.
우클릭 이벤트가 만들고자하는 기능의 시작점인 것입니다. 우클릭 이벤트는 [On Click]입니다.

이벤트에서 해야할 일은 두가지 입니다.
1. 아이템에 저장한 정보 읽기
2. 읽은 정보를 토대로 데이터 변경하기

먼저 아이템 로어에 저장한 금액을 다시 숫자로 가져와야 합니다. 아이템의 로어는 [Lore]익스프레션으로 가져 올 수 있습니다.
로어는 텍스트 타입이기 때문에 이것을 숫자로 변경해야합니다. 글자를 다른 타입으로 변환하는 것은 [Parse]익스프레션으로 할 수 있습니다.

그리고 나서,
subtract arg 1 to {돈}으로 돈을 가져왔으니
add 1 to {돈}으로 다시 넣어주면 됩니다.

@스크립터브혼

8b7c54de9c4f5821f30c0ae605066aae.png

3b910c78a700440e81efc6df4e7e798d.png

했는데 안되네요...

스크립터브혼
2020.11.13
@마크초보레오

%~%는 글자 안에서 데이터 타입을 사용할 때 씁니다.
> send "1번 인수 : %arg-1%"

플레이어가 들고 있는(사용하는) 아이템은 [Tool]입니다.


[Parse]익스프레션의 패턴을 다시 확인하세요. 파서는 글자를 다른 타입으로 바꾸는 익스프레션입니다.
> set {var} to "12345" parsed as number

@스크립터브혼

b8d3f6ec95f709cba47cbec271097cc5.png

이런 명령어가 있어서

fb9f60b2c34454dfb53c68e2ebc5bd36.png

이렇게 응용했고

2528ec03640297174c96a82de3de1e43.png

근데 이렇게 나오네요

뭐가 문제일까요?

저렇게 잘 설명해 주셨는데...

제가 머리가 안좋은건지...

스크립터브혼
2020.11.13
@마크초보레오

if로 시작하는 조건문은 반드시 마지막에 콜론(:)이 와야하며, 조건문의 바디가 있어야합니다.

바디는 가지고 있는 코드블록을 의미합니다.

어디가 문제인지 정확하게 질문해주세요.
저는 틀린곳 찾아주는 사람이 아니에요. 영어로 나온 오류 메세지도 번역기로 해석해보시구요.

마크초보레오
2020.11.14
@스크립터브혼

이야... 감사합니다