본문 바로가기

마인크래프트/스크립트

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

728x90
반응형

 

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

 


 

 

지난시간 아이템을 강화할 수 있도록 만들었습니다.

이제 청금석이라던가 금이라던가 이런 아이템을 통해 아이템을 강화할 수 있도록

만들어보도록 하겠습니다.

 

 

 

:: 목표 ::

 

아이템을 강화하자

 


 

 

대충 GUI를 만들어 봤습니다. 지금 생각하고 있는것은

현재 무기의 강화 단계보다 1 높은 강화석을 써야만 강화를 할 수 있으며

행운석을 통해 강화 확률을 올려주며, 단계 하락을 방지해주며 복원서를 통해 사용불가 상태를 방지해주는

그냥 메이플의 스타포스같지만 아닌 시스템을 생각하고 있습니다 ㅋㅋㅋㅋㅋ

 

그리고 지금 생각해보니 제 서버에서 무기 대장장이와 방어구 대장장이를 나눴는데

굳이 그럴 필요가 없겠네요.

 

 

잘가라. 무기대장장이는 그대로 두겠습니다.

스크립트도 바꿔야하고 무기대장장이가 방어구를 제련못한다는 그런 설정은 없을테니말이죠 ㅋㅋ

 

on inventory click:
	    # 무기 강화 창
    if iname contains "&9&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 <= 8:
                cancel event
            else if clicked raw slot is 9 or 11 or 12 or 14 or 15 or 17 or 18 or 19 or 20 or 21 or 22 or 23 or 24 or 25 or 26 or 27 or 28 or 30 or 31 or 33 or 34 or 35 or 36 or 37 or 38 or 39 or 40 or 41 or 42 or 43 or 44:
                cancel event
            else if clicked raw slot is 16:
                cancel event
                # 해당 변수에 slot 10에 있는 아이템의 lore을 색깔 빼고 입력
                set {_장비스탯::*} to uncolored lore of slot 10 of current inventory of player
                loop {_장비스탯::*}:
                    message "%{_장비스탯::%loop-index%}%"

 

일단 먼저 이렇게 해보죠

 

 

뭐라고 뜨긴하는데 그냥 해보겠습니다.

 

 

저렇게 결과가 나오네요?

그럼 2, 4, 5, 6줄의 숫자만 가져오면 수치가 나올테니 한번 해보도록 하겠습니다.

 

# 해당 변수에 slot 10에 있는 아이템의 lore을 색깔 빼고 입력
                set {_장비스탯::*} to uncolored lore of slot 10 of current inventory of player
                replace all "단계" with "" in {_장비스탯::2}
                replace all " " and "+" and "체력" with "" in {_장비스탯::4}
                replace all " " and "+" and "공격력" with "" in {_장비스탯::5}
                replace all " " and "+" and "방어력" with "" in {_장비스탯::6}
                set {_강화단계} to {_장비스탯::2} parsed as number
                set {_강화체력} to {_장비스탯::4} parsed as number
                set {_강화공격력} to {_장비스탯::5} parsed as number
                set {_강화방어력} to {_장비스탯::6} parsed as number
                message "%{_강화단계}%" to player
                message "%{_강화체력}%" to player
                message "%{_강화공격력}%" to player
                message "%{_강화방어력}%" to player

 

 

잘 나옵니다. 이제 강화석을 통해 강화를 하도록 만들어야하는데

 

 

강화석은 이렇게 만들어 봤습니다.

 

# 강화석 정보를 변수에 대입
                set {_강화석스탯::*} to uncolored lore of slot 13 of current inventory of player
                replace all " " and "단계" and "아이템을" and "강화하는데" and "쓰입니다." with "" in {_강화석스탯::1}
                set {_강화석스탯} to {_강화석스탯::1} parsed as number

                if {_강화단계} is not set:
                    message "[무기대장장이]: 먼저 아이템을 강화할 수 있도록 변형을 해야해!" to player
                    exit

                else if {_강화단계} is not {_강화석스탯}:
                    message "[무기대장장이]: 어이! 강화석은 무기보다 1 높은 강화석을 써야한다구!" to player
                    #message "%{_강화단계}%, %{_강화석스탯::1}%"
                    exit

                else:
                    set {_강화확률} to (100 - (7.2 + {_강화단계}) * {_강화단계})
                    chance of {_강화확률}%:
                        delete slot 13 of current inventory of player
                        set slot 10 of current inventory of player to {_아이템} with lore " " and "&b%{_강화단계} + 1%단계" and "&e==========" and "&a + 체력 %{_강화체력} + 0.5%" and "&c + 공격력 %{_강화공격력} + 1%" and "&9 + 방어력 %{_강화방어력} + 0.8%" and "&e=========="
                        message "[무기대장장이]: 어이! 강화에 성공했어. 잘 쓰길 바래!" to player
                        exit
                        
                    else:
                        delete slot 13 of current inventory of player
                        message "[무기대장장이]: 으음, 강화에 실패했군. 다음엔 성공하길 바래" to player
                        exit

 

바로 밑에 해당 구문을 추가 해줬습니다.

무기나 장비랑 마찬가지로 lore에서 숫자만 남기고 다 없애버리면 단계가 남고

그 단계와 무기 강화단계가 일치하면 강화확률 계산을 통해 chanc of 를 써서

아이템 강화를 합니다. 이렇게 하면 대충 강화 기본은 만들어졌네요.

 

 

그런데 강화석을 여러개 두면 한번에 없어지는게 있긴하지만

강화석을 일부러 여러개 두는 경우도 있을테니 그냥 나두도록 하겠습니다. 

 

다음에는 강화된 무기의 수치를 자신의 스탯에 적용하는게 되겠네요.

행운석이나 부적같은 경우는 강화 확률에 추가만 하면 되니까 다음에 하는걸로하겠습니다.

 

 

 

※ 스크립트 다운로드 ※

 

해당 챕터가 끝나면 올려보도록 하겠습니다.

 


 

:: 해당 서버에서 사용된 애드온 ::

 

Skript

GomSK

InvSk

GameAPI

HolographicDisplaysAddon

MarSK

QuarSk

SharpSK

SkChoke

Skellett

SkExtras

SkQuery

skRayFall

skript-yaml

SkRPG

SkStuff

skUtilities

TuSKe

Umbaska

Vault

 

만약 코드를 적용했는데 서버에서 에러가 뜨면 애드온 미적용 때문일 확률이 높습니다.

애드온은 아래 사이트에서 대부분 받을 수 있으며 없는 애드온은

아마 한국인 개발자가 만든 애드온일 확률이 높습니다.

구글이나 네이버에 애드온 모음을 검색하면 나와있으니 찾아서 다운로드 하시거나

제 블로그 마인크래프트 항목 처음 글에 다운로드 링크가 걸려있으니 확인하시길 바랍니다.

 

 

 

 

:: 이 글은 원 출처만 남기면 언제든 퍼가고 수정하셔도 좋습니다 ::

 

 

 

728x90
반응형