HanYang
대표칭호 없음
이해도 | 초보자 |
---|---|
게임버전 (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}
이 구문을 이용해서 가상창고를 만들었는데, 창고 명령어가 정상작동 하는 것 은 확인하였습니다. 다만, 간혹 유저분들께서 창고내의아이템들이 사라진다고들 하십니다 아무리찾아봐도 어떤부분이 문제가 있는것인지 잘 모르겠습니다 위의 구문에서 수정해야할 부분을
알려주시면 감사하겠습니다
우드풀
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좋은 답변 감사합니다! 하지만 스크립트에 관해 전문적 지식이 없는 저로선 이해하기 어려운 부분이 많네요 ㅠㅠ 다른 분들에게도 도움이 될만한 내용 말씀해주셔서 감사합니다~~