마인크래프트 스크립트 - 아이템 강화 1

2020. 3. 8. 14:51·정리 전 게시글/개발 관련

 

제목마인크래프트 스크립트 - 아이템 강화 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
'정리 전 게시글/개발 관련' 카테고리의 다른 글
  • 마인크래프트 스크립트 - 아이템 강화 3
  • 마인크래프트 스크립트 - 아이템 강화 2
  • 마인크래프트 스크립트 - 아이템 복사 스크립트
  • 마인크래프트 스크립트 - 경험치(exp)를 값으로 얻고 RPG 레벨을 올려보자
aptenia
aptenia
공부하면서 배운 것들
  • aptenia
    새벽의 아이디어
    aptenia
  • 전체
    오늘
    어제
    • 분류 전체보기 (279)
      • 논문 (0)
      • Roboracer (2)
      • 개발 아무거나 (1)
      • 일상 아무거나 (2)
      • 정리 전 게시글 (268)
        • 개발 관련 (25)
        • 정보 관련 (19)
        • 공부 관련 (224)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 네이버 블로그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    반복하지않는수
    c언어초보
    콜라츠추측
    컨텍스트스위칭
    캡스톤디자인
    C언어
    이것이자바다확인문제
    프로그래머스
    안드로이드
    자바
    파이썬
    마크
    일본규슈공업대학교
    티스토리스킨편집
    C++강좌
    공개SW개발자대회
    티스토리반응형2스킨편집
    백준
    마크스크립트
    마인크래프트스크립트
    파이어베이스
    빅데이터공모전
    스크롤바CSS
    프로그래머스PCCE
    이것이자바다연습문제
    이것이자바다
    마인크래프트강화스크립트
    C언어강좌
    마인크래프트
    티스토리HTML
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
aptenia
마인크래프트 스크립트 - 아이템 강화 1
상단으로

티스토리툴바