제목마인크래프트 스크립트 - 아이템 강화 1
안녕하세요~ 이번에는 강화 스크립트를 만들어보려고 합니다.
제가 만드는 강화는 먼저 기본 아이템을 0단계 강화할 수 있는 아이템으로 만드는 것 부터 해보려고 합니다.
그리고 npc를 클릭해야지만 이벤트를 실행할 수 있도록 하려고 합니다.
:: 목표 ::
기본 아이템을 강화할수있는 아이템으로 만들자
먼저 엔피시를 생성하겠습니다. 간단하게 명령어로 해도 되긴 하지만 하는김에 엔피씨와 GUI를 통해 만들어보겠습니다.
여기까지는 유튜브에 올라온 강좌글만 봐도 알 수 있으니 따로 설명을 적진 않겠습니다.
on inventory click:
# 무기 변형 창
if iname contains "&2&l무기 변형":
if click type is left mouse button with shift or right mouse button with shift or right mouse button:
cancel event
else:
if clicked raw slot is 0 or 2 or 3 or 5 or 6 or 8:
cancel event
else if clicked raw slot is 4:
cancel event
if slot 1 of current inventory of player is air:
message "[무기대장장이]: 어이! 무기를 올려야지!" to player
else:
set {_w} to slot 1 of current inventory of player
delete slot 1 of current inventory of player
set slot 7 of current inventory of player to {_w} with lore " " and "&b0단계" and "&e==========" and "&a + 체력 0" and "&c + 공격력 0" and "&9 + 방어력 0" and "&e=========="
message "[무기대장장이]: 좋아 무기 변형에 성공했어. 창을 닫기전에 가져가!" to player
일단 변형에 대해 설명하자면
위 처럼 기본 칼을
이렇게 강화수치가 표시되도록 만드는겁니다.
위에 코드 대로라면 되기는 하지만 문제가 있습니다.
변형을 하기전에 무기를 올리고 창을 닫거나
변형 후 무기를 얻지 않고 창을 닫을 경우 그대로 아이템이 없어진다는점
그리고 무기가 아닌경우도
보다시피 된다는점
이경우는 재밌으니 그냥 놔두겠습니다.
어차피 무기와 방어구 모두 저 형식으로 만들거라 상관없을듯합니다.
그럼 가장 큰 문제인 창을 닫을 때 아이템이 사라지는것만 해결하면 될듯한데
창을 닫을 때 아이템이 있으면 창을 닫을 수 없게 하면 될듯 합니다.
on inventory close:
if inventory name of current inventory of player contains "&2&l무기 변형":
message "무기변형창 닫음"
set {_무기변형1} to slot 1 of current inventory of player
set {_무기변형2} to slot 7 of current inventory of player
if {_무기변형1} is not air:
give 1 of {_무기변형1} to player
if {_무기변형2} is not air:
give 1 of {_무기변형2} to player
else:
message "다른거 닫음"
이렇게 한번 해보겠습니다.
인벤토리를 닫을 때 이름이 무기변형이면 임시변수들에게 각 아이템을 설정하고 공기가 아니면 플레이어에게 준다
로딩은 완료됐는데 이상한 에러가 뜨네요?
그리고 아이템을 놓고 창을 닫았는데 아이템은 주지도 않고 제대로 이름도 안뜨네요.
아까 에러를 다시 보겠습니다.
[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.
구글링해봐도 뭐 안나오네 ㅠ
조금 고민하다 보니까 iname이 있었고 icname이 있었던걸 까먹었습니다.
이거 어떤 애드온 깔아야했던걸로 기억하는데 아래 애드온 전부 설치해보시길 바랍니다...
on inventory close:
if icname contains "&2&l무기 변형":
set {_무기변형1} to slot 1 of current inventory of player
set {_무기변형2} to slot 7 of current inventory of player
if {_무기변형1} is not air:
give 1 of {_무기변형1} to player
if {_무기변형2} is not air:
give 1 of {_무기변형2} to player
이렇게 수정을 해주고
창을 닫으니 잘 들어옵니다. 휴~~ 그런데
실험하다가 생각난건데 give를 통해서 줬는데 만약 피치못할 사정으로 플레이어의 인벤토리가 꽉찼다면?
이렇게 됐을 때 창을 닫으면 어떻게 될까요?
예 꿀꺽해버립니다.
우편함 같은걸 만들어서 거기에 지급하는방법이랑 창을 닫지못하게 하는 방법이 있을듯한데
창을 닫으면 다시 열리게 해보았지만 잘 안되더군요
그래서 우편함을 만드는 쪽을 생각해봐야겠습니다.
목표는 달성했으니 이제 강화를 하는 스크립트를 짜봐야겠네요.
※ 스크립트 다운로드 ※
해당 챕터가 끝나면 올리겠습니다.
:: 해당 서버에서 사용된 애드온 ::
Skript
GomSK
InvSk
GameAPI
HolographicDisplaysAddon
MarSK
QuarSk
SharpSK
SkChoke
Skellett
SkExtras
SkQuery
skRayFall
skript-yaml
SkRPG
SkStuff
skUtilities
TuSKe
Umbaska
Vault
만약 코드를 적용했는데 서버에서 에러가 뜨면 애드온 미적용 때문일 확률이 높습니다.
애드온은 아래 사이트에서 대부분 받을 수 있으며 없는 애드온은
아마 한국인 개발자가 만든 애드온일 확률이 높습니다.
구글이나 네이버에 애드온 모음을 검색하면 나와있으니 찾아서 다운로드 하시거나
제 블로그 마인크래프트 항목 처음 글에 다운로드 링크가 걸려있으니 확인하시길 바랍니다.
◆
:: 이 글은 원 출처만 남기면 언제든 퍼가고 수정하셔도 좋습니다 ::
'마인크래프트 > 스크립트' 카테고리의 다른 글
마인크래프트 스크립트 - 아이템 강화 3 (3) | 2020.03.09 |
---|---|
마인크래프트 스크립트 - 아이템 강화 2 (0) | 2020.03.08 |
마인크래프트 스크립트 - 아이템 복사 스크립트 (0) | 2020.03.07 |
마인크래프트 스크립트 - 경험치(exp)를 값으로 얻고 RPG 레벨을 올려보자 (1) | 2020.03.03 |
마인크래프트 스크립트 배포, 공유 - 레벨, 경험치를 올리면 RPG 경험치, 레벨도 얻어보자 (5) | 2020.03.03 |