개인 자료란 (JE)

  서버 커뮤니티

Profile windy_wind 대표칭호 없음
Profile

질문하기 스크립트

스크립트 변수관리에 대해 질문합니다.

2024.01.22 조회 수 131 추천 수 0
이해도 초보자 
게임버전 (JE) 관련없음 
게임버전 (BE) 관련없음 
스크립트 버전 2.6.4 
스크립트 애드온 skript-reflect 

스크립트에서 여러개의 자료를 하나만 저장 할 수 있는 변수(?)에다가 지정하고 싶은데

예를 들자면

set {_변수::위치1} to location of player

set {_변수::위치2} to player's target block

에서 {_변수::위치1}, {_변수::위치2}를 한묶음으로다가 {저장소::*}에 추가 하고 싶습니다
마치 자바 스크립트등에서 객체 형태로

set {_변수} to {위치1: location of player, 위치2: player's target block}을 하고
add {_변수} to {저장소::*}처럼 한 묶음으로 저장하고 싶은겁니다.

이에 관해서 skript-reflect(에드온)을 이용해 이 에드온의 Array를 이용하거나 java.lang.Object등을 import해서 기능을 쓸 수 있는지 옛날에 테스트 해보기도 해봤는데.. 이 변수의 사용법도 모르겠고 영구 저장이 안된다고 해서 포기하였습니다.


음.. 결국 배열의 배열에다가 저장하는 방법이 최선일까요? 어떻게 저장할 수 있을까요?

3개의 댓글

qsef1256
2024.01.22
set {loc::%uuid%::player} to location of player
set {loc::%uuid%::target_block} to player's target block

 해놓고 자료 구조는 스크립트 파일 맨 위에 주석으로 입력해둡니다.

 

그러나 이거보다 좋은 방법은 자바를 사용하는 것입니다. Skript는 기본적으로 객체지향 언어가 아니므로 지금 느끼고 있는 문제와 동일하게, 개발자가 직접 변수관리를 해주어야 합니다.

 

자바 개발의 경우 아래와 같이 클래스로 만들어서 사용합니다.

 

@Data
class PlayerTargetBlock {
  UUID uuid;
  Location location;
  Block targetBlock;
}
windy_wind
2024.01.22
@qsef1256

답변 감사합니다.

하지만 혹시 다른 방식이 있으시다면 아무나 알려주세요!

qsef1256
2024.01.22
@windy_wind

스크립트는 그렇게 복잡한 언어가 아니기 때문에 다른 방식이 없습니다. 개발자들이 스크립트를 별로 안 좋아하는 이유들 중 하나 이기도 합니다.