장르 | 서버 관리자 툴, 테러 / 핵 방지, 개발자 툴 |
---|---|
게임버전 | 1.20.1 |
API | 페이퍼 |
원산지 | 국산 |
개발자 | windy_wind2007(CodeName_Null) |
저작권 | 없음 |
자료 출처 | https://discord.gg/MBCqGWaV |
소스 | https://discord.gg/MBCqGWaV |
i간혹 가다보면 인벤토리 아이템을 날려서 게임을 말아먹을때가 있지 않습니까?
그래서 준비했습니다
오토인벤토리 세이브!
A) 이 스크립트는 코어프로텍트처럼 인벤토리를 자동저장 및 백업을 불러올 수 있는 플러그인입니다.
만약 당신이 아이템을 잃어버렸더라도 저장이 되어있는 아이템을 불러와 복구할 수 있죠!
Q.어떻게 사용하는데?
A) 이 스크립트는 autosaveworld 플러그인 같이 인벤토리를 시간마다 백업할 수 있는데, 다음과 같은 기능이 있습니다.
- /isave time 초
몇초 간격으로 오토 인벤세이브를 할지 시간을 설정합니다.
(단위는 초임)
- /isave save 플레이어 (또는 *)
수동으로 해당 플레이어의 인벤토리 아이템을 백업할 수 있습니다.
여기서 *는 모든 플레이어를 의미합니다
- /isave autosave on 또는 off
자동으로 인벤세이브 할 지 활성화 여부를 결정합니다 (on = 오토 인벤세이브 o, off= 오토 인벤세이브 x)
- /isave message
인벤토리가 자동저장될 때, 메시지를 띄울지 말지 설정합니다. (해당 명령어 입력시 번갈아 on/off)
- /isave list 플레이어 (또는 *)
저장된 인벤토리 아이템을 확인 할 수 있습니다.
기본적으로 채팅으로 저장된 아이템을 보여주지만,
플레이어를 입력 시 인벤토리가 열려 저장된 아이템을 확인 할 수 있고 가져올 수도 있습니다.
- /isave rollback 플레이어 (또는 *)
해당 플레이어의 백업된 인벤토리 아이템을 불러옵니다.
이때 유의할 점은 rollback은 해당 플레이어의 인벤토리를 클리어시키고 원래 있었던 슬롯으로 가져와 진다는 것입니다.
즉, 가지고 있던 아이템을 날릴 수도 있죠 (만약 그랬다면 뒤 내용에서 해결가능)
- /isave give 플레이어 (또는 *)
근데 가지고 있던 아이템을 날려버리긴 싫고 이전에 아이템만 받고 싶을 수 있잖아요?
그래서 그냥 아이템만 주는 명령어도 만들었습니다!
해당 명령어를 치면 가지고 있던 아이템을 지우지 않고 백업한 아이템을 그냥 줍니다!
- /isave (give|rollback) 플레이어 (또는 *) presave
해당 플레이어의 give 또는 rollback 하기전의 아이템을 불러옵니다.
다시 말하자면, 가지고 있던 아이템을 날려도 다시 불러와 복구 가능하다는 것이죠! (와! 대단해)
여기서 주의할 점은 restore 도 이 명령어 치기전에 가지고 있던 아이템을 다시 저장하기 때문에
당신이 잘못 이 명령어를 쳐도 restore를 다시하면 치기전 아이템으로 다시 복원할 수 있죠!
(꼭 명령어 한번 잘못 눌러서 그런사람 있더라..... 그게 저임)
Q.그외 할말은?
A) 인벤토리를 잃는 상황이 꽤 많이 발견된다고 생각해서 이런 사고를 막고자 이 스크립트를 작성했는데, 처음에는 에드온 안쓰고 그냥 저장될때마다 데이터가 계속 덮어써지는 형식으로 만들다가 이렇게 할 바엔 그냥 에드온 써서 제대로 만들자는 생각에 열심히 만들었습니다. 그러니 여러분들의 서버에 부디 잘 사용되길 바랍니다.
참고로 스크립트를 열어 options에서 메시지를 수정할 수도 있답니다!
(*고버전 바닐라 스크립트 기준)
Q. 그래서 다운로드는 어디서 해?
A) 차라리 에드온을 이용해서 사용하기 좋게 만드는게 더 나을 것 같아서 업그레이드하여 skript-reflect와 skbee를 사용해서 yaml을 이용해저장하고 불러오는 기능으로 열심히 만들었습니다. 그러니 많이 사용해주세요!(사용을 할 때 좋아요로 자신이 사용하고 있다는걸 남겨주세요!)
스크립트 적용방법은 https://skunity.com/downloads에서
스크립트(skript) 플러그인을 버전에 맞게 다운로드하시고(에드온들과 착각주의!),
서버 plugins 폴더에 넣어주신 다음 실행시켜주면 거기 안에서 Skript폴더가 생기는데
Skript→scripts로 들어가셔서 위에 invsave 스크립트를 넣어주시면 됩니다.
필수에드온:
SkBee-3.6.1.jar skript-reflect-2.5.1.jar
위 두 에드온은 plugins 파일에 넣어주면 됩니다 (참 쉽죠?)
킹작권은 없다..
2차 수정 가능! 님들 마음대로!근데 수정 할게있나?
여러분들도 한번쯤 아이템을 버그라던지 테러라던지 등의 상황으로 잃을 수 있으니 이 스크립트를 적용시켜 그런 상황을 막아보세요!
하나라도 도움되었길 바랍니다~~ ^V^
버그 제보는 디스코드 windy_wnid#6420 제보 바람! (또는 댓글)
참고: skript-reflect를 이용한 yaml로 데이터를 저장하는 코드입니다. 공부용으로 뜯어 보셔도 좋을 것 같네요 (근데 저도 reflect 잘 몰름)
yaml 저장경로는 다음과 같습니다
plugins.....->scripts 폴더
->invsave
폴더 안에 플레이어 저장된 yaml 안에 아이템들이 시간별로 저장되어 있습니다.
아왜10자이하인데
2024.10.28/gamerule keepinventory 명령어와 비교했을 때 어떤 이점이 있는 건가요??
windy_wind
2024.10.29가끔 인벤토리 잘못하다가 클리어 될 때도 있고, 인벤토리에서 아이템 잘못 버려서 잃는 경우도 있고, 상자에 자기 템 넣었는데 없어질때 시간별로 복구할 수 있습니다 :>