개인 자료란 (JE)

  서버 커뮤니티

Profile Diar 대표칭호 없음

HighFel 23e595a9c22b4182a8faef147a071115

Profile

질문하기 스크립트

콘솔에서만 스크립트 오류가 뜨는데 무엇이 문제인지 알 수 있을까요....?

2021.09.02 조회 수 341 추천 수 0
이해도 초보자(스크립트 구성요소나 기본문법은 알아요) 
게임버전 (JE) 1.16.5 
스크립트 버전 2.6-beta3 
스크립트 애드온 skUtilities, skRayFall, Skellett, SharpSK 

안녕하세요 스크립트 연습하면서 스텟창처럼 Gui메뉴를 띄어서

특정 값을 올리는 스크립트를 연습하고있었는데요...

아래의 구문을 쓰면 작동은 잘됩니다.


command /stat:

@trigger:

@@open chest with 5 row named "stat" to player

@@set slot 13 of player's current inventory to sign named "Point"


on inventory click:

@ if inventory name of current inventory of player contains "stat":

@@cancel event

@@구문

이러면 작동은 되는데

이러면 인벤토리창이나 제작...등등 창을 열어놓고

아무곳이나 클릭하면 (빈곳,아이템등)

[Skript] In 1.13+ you cannot get the title name of an inventory outside of an InventoryClickEvent, Only if this inventory has an InventoryHolder may it be used in this state.

라는 오류가 뜹니다. 이게 on inventory click: 부터 밑에 구문을 삭제하면 오류가 안뜨는데요

만약 사용하게 되면  "stat" 이름이 아닌 다른 인벤토리창만 켜두고 아무거나 클릭하면 콘솔에서만 오류가 뜹니다.

심지어 stat 명령어로 열린 Gui 창이 열린 후에도

[Skript] In 1.13+ you cannot get the title name of an inventory outside of an InventoryClickEvent, Only if this inventory has an InventoryHolder may it be used in this state.

오류가 뜹니다. 작동은 문제 없이 되는데 콘솔창에 지속적으로 오류가 떠서 어떻게 해야할지 모르겠습니다.

에드온이 없어서인건지 모르겠습니다...

무엇이 문제인지 알 수 있을까요...?


아래에는 혹시나해서 작성중인 스크립트 입니다.

command /stat [<text>] [<text>] [<player>] [<int>]:

@executable by: players and console

 @permission: statp.perm

@trigger:

@@if arg 1 is not set:

@@@open chest with 3 rows named "stat" to player 

@@@set slot 4 of current inventory of player to player head named "&b[stat]" with lore "&7공격력&7: %{%player%.attack}%" and "&7체력&7: %{%player%.health}%" and "&7민첩&7: %{%player%.min}%" and "&e스텟 포인트: %{%player%.statpoint}%"

@@@set slot 10 of current inventory of player to emerald named "&b[공격력]" with lore "&7공격력&7: %{%player%.attack}%"

@@@set slot 13 of current inventory of player to apple named "&b[체력]" with lore "&7체력&7: %{%player%.health}%"

@@@set slot 16 of current inventory of player to feather named "&b[민첩]" with lore "&7민첩&7: %{%player%.agility}%"

@@@stop

@@if arg 1 is "xx":

@@@구문~


on inventory click:

@if inventory name of current inventory of player contains "[stat]":

@@cancel event

@@if name of click item is "&b[공격력]":

@@@if {%player%.statpoint} > 0:

@@@add 1 to {%player%.attack}

@@@subtract 1 from {%player%.statpoint}

@@@set slot 10 of current inventory of player to emerald named "&b[공격력]" with lore "&7공격력&7: %{%player%.attack}%"

@@@stop

@@@else:

@@@@close player's inventory

@@@@message "스텟 포인트가 부족합니다."


df09c94eb54a9f99035fb16e6bccfa0a.PNG


2ee121428912d4a7236c0182cdce16b9.PNG







5개의 댓글

A_bins
2021.09.02

1d665f1bccc623b496ab6c01e2802f48.png

ef1d19a9a9b1231ea788a53241f367ae.png


Translator.

Diar
2021.09.02
@A_bins

아..... 한참 읽어보고 이제야 알았습니다. if inventory name of current inventory of player contains "[stat]": 부분을 지우면 되는거였네요...

번역을 돌리고도 이해하지 못해서 올렸었는데... 이제야 이해했습니다!!! 인벤토리 이름불러오는 구문을 지워버리니까 해결되었습니다!

감사합니다!

A_bins
2021.09.03
@Diar

아녀욘!!

A_bins
2021.09.03
@Diar

inventory name 말고 name으로 해보세욘!

Diar
2021.09.03
@A_bins

오.... 그런 방법이 있었군요..! 확실히 item Click 후에 Cnacel event 넣은것보다 이 방법이 더 좋네요..! 감사합니다! 많은 도움이 되었습니다!