본문 바로가기

마인크래프트/스크립트

마인크래프트 스크립트 - 인챈트 강화 4

728x90
반응형

 

마인크래프트 스크립트 - 인챈트 강화 4

 


 

전에 인챈트 강화 스크립트를 다 만들었다고 생각했는데

한계치를 정해놓는걸 까먹었네요...

인챈트 한계치는 각각 정해놔야 하기 때문에

꽤 귀찮게 하나하나 설정해야합니다.

 

:: 목표 ::

 

인챈트 한계치를 만들어보자

 


 

 

전에 인챈트 강화 창에 아이템과 인챈트 강화석을 놓고 강화 버튼을 누르면

 

 

이렇게 인챈트가 되는 스크립트를 만들었죠

근데 문제가 강화석만 얻으면 한계치 없이 인챈트를 할 수 있단 말이죠

제가 원하는건 내구3정도는 아쉬우니 인챈트 강화석을 통해 추가로

인챈트를 할 수 있게 만드는게 본래 의도이지만

또 너무 높으면 그것도 문제란말이죠

그러니 각 인챈트별로 한계를 정하고 그 이상 넘어가면 못하도록 해보려고 합니다.

 

else:
                    set {_enc} to transEnchant({_enclore::1}) parsed as enchantment
                    set {_pitemenlv} to enchant level of {_enc} of {_pitem}
                    set {_isMax} to isMaxEnchant({_enclore::1}, {_pitemenlv}, player)

                    if {_isMax} is false:
                        delete slot 20 of current inventory of player
                        delete slot 24 of current inventory of player
                        wait 12 tick
                        set {_amount} to {_am} - 1
                        set slot 24 of current inventory of player to {_amount} of {_encitem}
                        enchant {_pitem} with "%{_enc}% %{_pitemenlv} + 1%" parsed as enchantment type
                        set slot 20 of current inventory of player to {_pitem}
                        subtract 50000 from player's money
                        message "[무기대장장이]: 아이템의 인챈트가 강화되었다. 잘쓰라고!" to player
                        play sound "BLOCK_ANVIL_USE" with volume 1 and pitch 1 at player
                        launch flickering ball colored red and yellow and green at player's location timed 0.8
                        exit
                    
                    else:
                        message "[무기대장장이]: 음, 이 무기의 %{_enclore::1}% 인챈트는 더이상 올릴 수 없어." to player
                        exit
# 인챈트 한계치
function isMaxEnchant(s: string, i: number, p: player) :: boolean:
    #message "%{_s}%, %{_i}%" to {_p}
    if {_s} is "보호" or "화염 보호":
        if {_i} = 6:
            return true
        else:
            return false

 

한계치인지 아닌지 확인하는 함수를 만들어봤습니다.

일단 보호나 화염 보호레벨이 6이면 true를 줘서

강화하는 스크립트에 true면 할 수 없다고 뜨게하고 false면 그대로 진행하도록 했습니다.

 

 

이제 남은건 저 목록을 일일이 정하는거죠

 

# 인챈트 한계치
function isMaxEnchant(s: string, i: number, p: player) :: boolean:
    #message "%{_s}%, %{_i}%" to {_p}
    if {_s} is "수선":
        if {_i} = 2:
            return true
        else:
            return false

    else if {_s} is "차가운 걸음":
        if {_i} = 3:
            return true
        else:
            return false
    
    else if {_s} is "호흡" or "발화" or "빠른 장전" or "충절" or "행운" or "바다의 행운" or "미끼":
        if {_i} = 4:
            return true
        else:
            return false

    else if {_s} is "약탈" or "밀치기" or "휘몰아치는 칼날" or "밀어내기" or "관통" or "급류" or "가시" or "가벼운 착지" or "내구성":
        if {_i} = 5:
            return true
        else:
            return false

    else if {_s} is "보호" or "화염으로부터 보호" or "폭발로부터 보호" or "발사체로부터 보호":
        if {_i} = 6:
            return true
        else:
            return false
        
    else if {_s} is "날카로움" or "강타" or "살충" or "힘" or "찌르기" or "효율":
        if {_i} = 7:
            return true
        else:
            return false

 

저는 이렇게 밸런스를 줘봤는데 대충 준거라 제대로 맞지도 않겠죠 ㅋㅋ

일단 여기까지 한계값 정하기 완성!!!!

부위별로 맞지않는 인챈트를 할경우 안되게 하고싶긴한데

어차피 적용되지도 않으니 그냥 넘어가겠습니다.

 

 

 

 

 

※ 스크립트 다운로드 ※

 

 

 


 

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

 

Skript

GomSK

InvSk

GameAPI

HolographicDisplaysAddon

MarSK

QuarSk

SharpSK

SkChoke

Skellett

SkExtras

SkQuery

skRayFall

skript-yaml

SkRPG

SkStuff

skUtilities

TuSKe

Umbaska

Vault

 

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

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

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

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

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

 

 

 

 

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

 

 

 

728x90
반응형