본문 바로가기

마인크래프트/스크립트

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

728x90
반응형

 

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

 


 

저번에 아이템을 강화하는것 까지 했었습니다.

이제 그 아이템의 강화 수치를 자신의 스탯에 추가해보도록 하겠습니다.

 

:: 목표 ::

 

강화된 아이템의 수치를 적용해보자

 


 

 

이런식으로 강화수치가 아이템에 나와있는데

이걸 어떻게 자신의 스탯에 적용시킬까

장인돌이님의 유튜브에 스탯 스크립트 강좌를 올려두신걸 많이 참고했습니다.

 

 

매 10틱마다 아이템의 스탯 수치를 가져와서 체력은 바로 설정해주고 공격력과 방어력은

공격할 때 공격력의 /4만큼 추가해서 주고 방어력도 마찬가지고

그런데 두가지의 장비를 추가하는데 저정도여서 조금 수정해봤습니다.

 

every 10 tick:
    set {스탯::1} to "체력"
    set {스탯::2} to "공격력"
    set {스탯::3} to "방어력"

    loop all players:
        set {_%loop-player%.lore.1::*} to uncolored lore of loop-player's helmet
        set {_%loop-player%.lore.2::*} to uncolored lore of loop-player's chestplate
        set {_%loop-player%.lore.3::*} to uncolored lore of loop-player's Leggings
        set {_%loop-player%.lore.4::*} to uncolored lore of loop-player's boots
        set {_%loop-player%.lore.5::*} to uncolored lore of loop-player's offhand
        set {_%loop-player%.lore.6::*} to uncolored lore of loop-player's tool

        loop 6 times:
            loop 3 times:
                replace all " " and "+" and {스탯::%loop-value-3%} with "" in {_%loop-player%.lore.%loop-value-2%::%loop-value-3 + 3%}
                set {%loop-player%.스탯.%loop-value-2%.%{스탯::%loop-value-3%}%} to {_%loop-player%.lore.%loop-value-2%::%loop-value-3 + 3%} parsed as number

        loop 3 times:
            set {%loop-player%.스탯.%{스탯::%loop-value-2%}%} to 0 

            loop 6 times:
                add {%loop-player%.스탯.%loop-value-3%.%{스탯::%loop-value-2%}%} to {%loop-player%.스탯.%{스탯::%loop-value-2%}%}

        set loop-player's max health to {%loop-player%.스탯.%{스탯::1}%}/2 + 10

on damage:
    if attacker is player:
        if {str.%attacker%} is set:
            set damage to damage + {%attacker%.스탯.%{스탯::2}%}/4
            set {test.%attacker%.준데미지} to damage
            #message "데미지: %damage%" to attacker

    if victim is player:
        if {def.%victim%} is set:
            set damage to damage - {%victim%.스탯.%{스탯::3}%}/4
            set {test.%victim%.받은데미지} to damage
            #message "받은 데미지: %damage%" to victim

on join:
    if {test.%player%.준데미지} is not set:
        set {test.%player%.준데미지} to 0
    if {test.%player%.받은데미지} is not set:
        set {test.%player%.받은데미지} to 0

 

헬멧부터 손에든 아이템 그리고 왼손에든 아이템의 수치까지 불러들이도록 짜봤습니다.

replace를 이용해서 숫자만 남기도록했는습니다.

 

반복문을 이용해서 써봤는데중간에 검증도 안해보고 그냥 생각나는대로 짠거라 맞게 돌아가는지는모르겠지만

스크립트 로드는 되더군요???

 

 

수치도 적용되는것같고

 

 

공격력과 방어력도 적용됩니다.

근데 이상하게 장인돌이님 스크립트를 적용했을 때는 공격력이 일정하게 들어갔는데

코드를 바뀐뒤부터는 공격력이 조금씩 바뀌더군요.

솔직히 공격력이 바뀌는걸 추가해볼까 했는데 추가하지도 않았는데 추가되니 이득인강

 

하고 꺼야지 했는데

 

 

아이템을 끼나 안끼나 끼고나서 스탯 수치가 고대로 적용인것을 발견했다...

아이템을 벗었을 때 수치가 적용되지 않는 이유를 모르겠다.

 

every 10 tick:
    set {스탯::1} to "체력"
    set {스탯::2} to "공격력"
    set {스탯::3} to "방어력"

    loop all players:
        # 각 배열 변수에 player 장비의 lore을 대입
        set {_%loop-player%.lore.1::*} to uncolored lore of loop-player's helmet
        set {_%loop-player%.lore.2::*} to uncolored lore of loop-player's chestplate
        set {_%loop-player%.lore.3::*} to uncolored lore of loop-player's Leggings
        set {_%loop-player%.lore.4::*} to uncolored lore of loop-player's boots
        set {_%loop-player%.lore.5::*} to uncolored lore of loop-player's offhand
        set {_%loop-player%.lore.6::*} to uncolored lore of loop-player's tool

        # 각 장비의 갯수 만큼 반복, 그리고 체력, 공격력, 방어력 3번 반복해서 숫자만 남긴 데이터를 변수에 대입
        loop 6 times:
            loop 3 times:
                replace all " " and "+" and {스탯::%loop-value-3%} with "" in {_%loop-player%.lore.%loop-value-2%::%loop-value-3 + 3%}
                set {_%loop-player%.스탯.%loop-value-2%.%{스탯::%loop-value-3%}%} to {_%loop-player%.lore.%loop-value-2%::%loop-value-3 + 3%} parsed as number

        loop 3 times:
            # 플레이어의 체력, 공격력, 방어력 순으로 반복함. 그리고 플레이어의 스탯을 0으로 초기화
            set {%loop-player%.스탯.%{스탯::%loop-value-2%}%} to 0 

            # 6번 반복해서 6개의 장비 스탯을 플레이어의 스탯에 더함.
            loop 6 times:
                add {_%loop-player%.스탯.%loop-value-3%.%{스탯::%loop-value-2%}%} to {%loop-player%.스탯.%{스탯::%loop-value-2%}%}

        set loop-player's max health to {%loop-player%.스탯.%{스탯::1}%}/2 + 10

 

솔직히 잘 모르겠는데 몇 줄 수정하니까 됐다.

 

 

스탯이 잘 적용되는것같다.

 

이정도면 강화 스크립트 만들기 80퍼센트는 완성된것같습니다.

지금 까지 진행한 아이템 강화 스크립트 버전을 1.0으로 하고

배포해보도록 하겠습니다.

 

지금 만드는건 잠시 접어두고 다음에는 우편함을 만들어보겠습니다.

 

 

 

※ 스크립트 다운로드 ※

 

https://zynar.tistory.com/67

 


 

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

 

Skript

GomSK

InvSk

GameAPI

HolographicDisplaysAddon

MarSK

QuarSk

SharpSK

SkChoke

Skellett

SkExtras

SkQuery

skRayFall

skript-yaml

SkRPG

SkStuff

skUtilities

TuSKe

Umbaska

Vault

 

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

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

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

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

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

 

 

 

 

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

 

 

 

728x90
반응형