개인 자료란 (JE)

  서버 커뮤니티

Profile 크리 대표칭호 없음
Profile

매직스펠 제작

[ 11 ] 매직스펠 강좌 - MultiSpell, TargetedMultiSpell

2020.09.24 조회 수 1624 추천 수 0

직스펠 강좌를 작성하게 된 크리라고 합니다.

앞으로 작성되는 매직스펠 강좌는 1.12.2 버전을 기준으로 작성될 예정입니다.

오늘은 지난 강좌에서 예고되었었던, MultiSpell, TargetedMultiSpell   알려드리려고 합니다.

MultiSpell, TargetedMultiSpell 은 기본적으로 여러 스펠들을 한 스펠에 묶어 실행시켜주는 스펠입니다.

MultiSpell  TargetedMultiSpell 의 기본적인 예문과, 많이 사용되지 않으나 좀 더 다양하게 쓸 수 있는 심화 구문을 알려드리겠습니다.


MultiSpell - 기본

MultiSpell 의 기본 사용 예문입니다. 기본적으로 가장 많이 사용합니다.

example_1: #스펠의 이름
    spell-class: ".MultiSpell" #스펠의 클래스
    spells: #연계되는 스펠들
        - example_1_A
        - example_1_B

example_1_A: #연계스펠 1번
    spell-class: ".instant.DummySpell"
    str-cast-self: "예시 1-A 스펠 발동."

example_1_B: #연계스펠 2번
    spell-class: ".instant.DummySpell"
    str-cast-self: "예시 1-B 스펠 발동."

MultiSpell - 심화 :  cast-random-spell-instead 

cast-random-spell-instead MultiSpell 의 연계되는 스펠 중 하나가 랜덤하게 발동할 것인가에 대한 여부입니다. 많이 쓰이진 않습니다만, 랜덤포션과 같은 스펠을 만들 때 사용할 수 있습니다.

example_2: #스펠의 이름
    spell-class: ".MultiSpell" #스펠의 클래스
    cast-random-spell-instead: true #연계되는 스펠 중 하나를 랜덤으로 발동하게 할 것인지
    spells: #연계되는 스펠들
        - example_2_A(mode=hard) #cast-random-spell-instead 에서는 (mode=hard)가 필요합니다.
        - example_2_B(mode=hard)
        - example_2_C(mode=hard)


example_2_A: #연계스펠 1번
    spell-class: ".instant.DummySpell"
    str-cast-self: "예시 2-A 스펠 발동."


example_2_B: #연계스펠  2번
    spell-class: ".instant.DummySpell"
    str-cast-self: "예시 2-B 스펠 발동."
    
example_2_C: #연계스펠  3번
    spell-class: ".instant.DummySpell"
    str-cast-self: "예시 2-C 스펠 발동."

MultiSpell - 심화 : enable-custom-spell-cast-chance

enable-custom-spell-cast-chance  MultiSpell 에 연계되는 스펠들이 자신이 지정한 확률로 하나만 발동하도록 합니다.

발동시키기 위해선 cast-random-spell-instead 구문이 기본으로 필요하며,  방금 전과 달리 1/n 확률로 스펠이 발동되는 것이 아닌, 지정한 확률로 스펠이 하나만 발동되도록 합니다.

example_3: #스펠의 이름
    spell-class: ".MultiSpell" #스펠의 클래스
    cast-random-spell-instead: true #연계되는 스펠 중 하나를 랜덤으로 발동하게 할 것인지
    enable-custom-spell-cast-chance: true #연계되는 스펠들이 지정한 확률로 랜덤으로 발동하게 할 것인지
    spells: #연계되는 스펠들
        - example_3_A(mode=hard):5 #연계된 스펠 중 5% 확률로 발동합니다.
        - example_3_B(mode=hard):25 #연계된 스펠 중 25% 확률로 발동합니다.
        - example_3_C(mode=hard):50 #연계된 스펠 중 50% 확률로 발동합니다.


example_3_A: #연계스펠 1번
    spell-class: ".instant.DummySpell"
    str-cast-self: "예시 3-A 스펠 발동."

example_3_B: #연계스펠 2번
    spell-class: ".instant.DummySpell"
    str-cast-self: "예시 3-B 스펠 발동."
    
example_3_C: #연계스펠 3번
    spell-class: ".instant.DummySpell"
    str-cast-self: "예시 3-C 스펠 발동."

MultiSpell - 심화 : enable-individual-chances  

enable-individual-chances MultiSpell 에 연계되는 스펠들이 지정한 확률로 하나만 발동하지 않고 다른 스펠들이 발동되는 것과는 상관없이 확률적으로 발동하게 합니다. enable-custom-spell-cast-chance 과 마찬가지로,cast-random-spell-instead 구문이 기본적으로 필요합니다.

example_4: #스펠의 이름
    spell-class: ".MultiSpell" #스펠의 클래스
    cast-random-spell-instead: true #연계되는 스펠이 랜덤으로 발동하게 할 것인지
    enable-individual-chances: true #연계되는 확률적으로 발동하게 할 것인지
    spells: #연계되는 스펠들
        - example_4_A(mode=hard):75 #다른 스펠들의 발동 여부와 관계 없이 75% 확률로 발동합니다.
        - example_4_B(mode=hard):50 #다른 스펠들의 발동 여부와 관계 없이 50% 확률로 발동합니다.
        - example_4_C(mode=hard):25 #다른 스펠들의 발동 여부와 관계 없이 25% 확률로 발동합니다.


example_4_A: #연계스펠 1번
    spell-class: ".instant.DummySpell"
    str-cast-self: "예시 4-A 스펠 발동."


example_4_B: #연계스펠 2번
    spell-class: ".instant.DummySpell"
    str-cast-self: "예시 4-B 스펠 발동."


example_4_C: #연계스펠 3번
    spell-class: ".instant.DummySpell"
    str-cast-self: "예시 4-C 스펠 발동."

TargetedMultiSpell - 기본

TargetedMultiSpell  단일로 사용하면 보는 위치에서 발동시킬 수 있고, 이외에도 ParticleProjectileSpell 에 연계하면 끝나는 지점에도 연계되어 사용할 수 있습니다. (Ex : ParticleProjectileSpell -> TargetedMultiSpell) 단 TargetedMultiSpell 에는 일부 스펠의 연계가 불가능합니다.

TargetMulti: #스펠의 이름
    spell-class: ".TargetedMultiSpell" #스펠의 클래스
    stop-on-fail: false #기본값 : false, 연계되는 스펠이 실패할 시 해당 스펠을 멈출 지 여부
    point-blank: false #기본값 : false, 엔티티가 존재 시 엔티티 중심으로 발동하게 할 지 여부(엔티티가 없으면 블럭 중심)
    y-offset: 1 #TargetedMultiSpell 이 발동되는 위치 (1=1블럭)
    cast-random-spell-instead: false #기본값 : false, 연계되는 스펠이 확률적으로 발동할 지 여부
    require-entity-target: false #기본값 : false, 엔티티를 대상으로 할지 여부
    spells: #연계되는 스펠들
        - ligtning 
        - DELAY 10
        - ligtning
        - DELAY 10
        - ligtning
 
ligtning: #연계스펠
    spell-class: ".targeted.LightningSpell"
    additional-damage: 0
    no-damage: false

MultiSpellTargetedMultiSpell 강좌는 여기까지입니다. 

다음 번 강좌 때는 매직아이템(MagicItem)에 대한 강좌로 찾아오도록 하겠습니다. 감사합니다.

Warning
댓글이 없습니다.

새로운 댓글을 등록해 주세요!

뉴스 및 창작물
/files/thumbnails/150/925/003/262x150.crop.jpg?20241123005717

건축

응답하라 1988 ?

팀뉴일리시

2024-11-23

4

/files/thumbnails/761/908/003/262x150.crop.jpg?20241025153749

건축

서울 숭례문(崇禮門) 5

KHC

2024-10-25

2

/files/thumbnails/578/899/003/262x150.crop.jpg?20241010142350

건축

경주 월정교 1

KHC

2024-10-10

2

/files/thumbnails/219/899/003/262x150.crop.jpg?20241009200950

건축

송전탑+도시 2

dbasd12

2024-10-09

2

/files/thumbnails/246/898/003/262x150.crop.jpg?20241008102328

레드스톤

단다단 - 오토노케(オトノケ) | 마인크래프트 노트블럭 커버

노트블럭전문가

2024-10-08

1