개인 자료란 (JE)

  서버 커뮤니티

Profile HanYang 대표칭호 없음
Profile

질문하기 스크립트

가상창고 스크립트 관련하여서...

2023.09.12 조회 수 542 추천 수 0
이해도 초보자 
게임버전 (JE) 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1 
게임버전 (BE) 관련없음 
스크립트 버전 2.7.0 beta 3 
스크립트 애드온 skriptlang 

안녕하세요. 서버 유저분들의 편의를위해 가상창고시스템을 도입하고싶어서 여러 사이트들을 돌며 구문을 찾아서 적용시켰습니다.

command /창고:

    permission: sk.가상창고

    trigger:

        open chest with 6 rows named "&6창고" to player

        loop {%uuid of player%.chest::*}:

            set {_slot} to loop-index parsed as number

            set slot {_slot} of current inventory of player to loop-value


on inventory close:

    if name of top inventory of player is "&6창고":

        set {_crb} to 0

        loop 54 times:

            set {%uuid of player%.chest::%{_crb}%} to slot {_crb} of current inventory of player

            add 1 to {_crb}

이 구문을 이용해서 가상창고를 만들었는데, 창고 명령어가 정상작동 하는 것 은 확인하였습니다. 다만, 간혹 유저분들께서 창고내의아이템들이 사라진다고들 하십니다 아무리찾아봐도 어떤부분이 문제가 있는것인지 잘 모르겠습니다 위의 구문에서 수정해야할 부분을
알려주시면 감사하겠습니다

2개의 댓글

우드풀
2023.09.12

다른 skript 파일이나 구문에서 설정된 변수끼리 충돌돼서 그럴 수 있습니다.

서버내의 skript 변수가 특별한 기준 없이 많아지다 보면 나중에 관리하기 어려워 지기도 합니다.

다음 둘중 방향성이 맞는 변수 하나를 선택해보시고 다른 모든 skript들의 변수들도 같은 기준으로 마이그레이션 해야 합니다.

 

1. {%uuid of player%::chest::*}

장점:

개별화된 데이터 관리: 각 플레이어의 UUID를 기반으로 데이터를 저장하므로, 플레이어 별로 데이터를 개별적으로 관리할 수 있습니다.

확장성: 향후에 플레이어 별로 다른 섹션 (예: bank, inventory 등)을 추가할 수 있는 유연성이 있습니다.

단점:

복잡한 데이터 검색: 데이터 검색 시 플레이어의 UUID를 먼저 찾아야 하므로, 데이터 검색이 약간 복잡할 수 있습니다.

2. {chest::%uuid of player%::*}

장점:

일관된 데이터 관리: "chest"라는 네임스페이스 하에 모든 플레이어의 데이터를 관리하므로, 데이터 관리가 더 일관되고 중앙집중화됩니다.

간단한 데이터 검색: "chest" 네임스페이스를 통해 모든 플레이어의 데이터에 쉽게 접근할 수 있습니다.

단점:

낮은 확장성: 플레이어 별로 다양한 섹션을 추가하려면 구조를 변경해야 할 수 있습니다, 이는 데이터 마이그레이션을 필요로 합니다.

추천:

개인 창고 시스템을 위해서는 {%uuid of player%::chest::*} 구조를 추천합니다. 이 구조는 각 플레이어에게 개별적인 "chest" 섹션을 제공하여 데이터를 더 안정적으로 관리할 수 있습니다. 또한, 향후 다른 섹션을 추가할 때 유연성이 더 높습니다.

 

그러나, 프로젝트의 초기 단계에서 중앙집중화된 데이터 관리를 선호한다면, {chest::%uuid of player%::*} 구조도 좋은 선택이 될 수 있습니다.

HanYang
2023.09.12
@우드풀

좋은 답변 감사합니다! 하지만 스크립트에 관해 전문적 지식이 없는 저로선 이해하기 어려운 부분이 많네요 ㅠㅠ 다른 분들에게도 도움이 될만한 내용 말씀해주셔서 감사합니다~~