개인 자료란 (JE)

  서버 커뮤니티

Profile 제라든 대표칭호 없음

Jeraden_n 4c8ff9825f8342f2bb0fd7c96f78d7e6

Profile

강좌 자바 에디션(JE) 플러그인 개발

[제라든의 매직스펠 강좌] [기본] 4강. 기본 구문 목록 (Spell Configuration)

2020.07.01 조회 수 8959 추천 수 1
분야 매직스펠 
장르 재미, RPG 
게임버전 모든버전 
API 페이퍼 
자료글 https://github.com/TheComputerGeek2/MagicSpells 

   강의 소개


안녕하세요, 제라든입니다.


오랜만입니다. 오늘은 매직스펠 공통 구문에 대해서 다루겠습니다.

스펠 클래스별 공통 구문과 스펠 전체 공통 구문에 대해서 나열했습니다.

참고로 1.14 버전 매직스펠 위키를 기준으로 작성하여 작동되지 않는 구문이 있을 수도 있습니다. 주의하시길 바랍니다.





   1. 구문 값 유형


구문 옆 괄호 란 < >은 구문 값입니다.

구문에 알맞는 유형의 값을 넣어야 구문이 제대로 작동합니다.


< number >

숫자 값입니다.

ex) cooldown: 10


< text >

문자 값입니다.

ex) name: Jeraden_spell


< boolean >

참/거짓 값입니다. true나 false를 넣으시면 됩니다.

ex) target-self: true


< sound >

소리 값입니다. 마인크래프트 sound 파일 이름을 적으시면 됩니다.

ex) entity.generic.explode


< item >

아이템 값입니다. 매직 아이템의 이름이나 기본 아이템의 영문 이름을 적으시면 됩니다.


< spell >

스펠 값입니다. 스펠 이름을 적으시면 됩니다.

ex) spell: damage_spell


< ~s >

지정한 형식의 값을 복수로 넣을 수 있습니다.

ex)

aliases:

    - potion

    - effect

    - buff


spells:

    - rush_spell

    - damage_spell

    - jump_spell





   2. 공통 구문


name 

스펠의 이름을 설정합니다.


aliases 

스펠의 이름으로 대체할 수 있는 이름 목록을 설정합니다.

서브 스펠로 사용할 때는 작동하지 않습니다.


always-granted 

모든 플레이어들이 해당 스펠을 배운 상태로 설정합니다.


permission-name 

해당 스펠에 대한 펄미션 이름을 설정합니다.


incantations 

해당 스펠을 발동시키는 명령어 목록을 설정합니다.

ex)

incantations:

    - "/스펠 사용하기"


description 

스펠의 설명을 설정합니다.

Help Spell을 사용할 때 설정한 내용을 보여줍니다.


cast-item / right-click-cast-item 

설정한 아이템을 클릭 또는 우클릭하여 스펠을 발동시킬 수 있습니다.


cast-items / right-click-cast-items 

cast-item 구문을 목록화시켜 복수의 아이템을 설정할 수 있습니다.


require-cast-item-on-command 

해당 구문이 true일 경우

명령어로 해당 스펠을 사용할 때, 'cast-item' 구문으로 설정된 아이템을 들고 있어야만 사용할 수 있습니다.


broadcast-range 

해당 스펠에 설정된 메세지 관련 구문의 영향 범위를 설정합니다.


min-range 

스펠의 최소 사정거리를 설정합니다.

Tageted 스펠에 주로 사용됩니다.


range 

스펠의 최대 사정거리를 설정합니다.

Tageted 스펠에 주로 사용됩니다.


spell-power-affects-range 

스펠 효과가 강화되었을 때, 사정거리도 영향을 받는지 설정합니다.


can-target 

대상으로 지정할 수 있는 범위를 설정합니다.

범위에는 self or caster, players, invisibles, nonplayers, monsters, animals가 있습니다.


cost 

스펠을 사용할 때 아이템 혹은 특정 능력치를 소모해야 스펠을 발동할 수 있습니다.

능력치 소모는 health, hunger, experience, levels, durability, money 가 있습니다.


cooldown 

쿨타임을 설정합니다.


server-cooldown 

모든 플레이어에게 적용되는 쿨타임을 설정합니다.


shared-cooldowns 

목록에 있는 스펠에 쿨타임을 적용합니다.


ignore-global-cooldown 

글로벌 쿨타임을 무시할지 설정합니다.


charges 

해당 스펠의 최대 충전량을 설정할 수 있습니다.

해당 기술의 쿨타임이 끝날 때까지 지정한 횟수만큼 사용할 수 있습니다.


effects 

이펙트 효과를 설정합니다.

이 부분은 기초 강좌에서 따로 다루겠습니다.




[modifiers]


modifiers 

스펠 사용자에 대한 조건부 설정을 할 수 있습니다.


target-modifiers 

스펠 대상 엔티티에 대한 조건부 설정을 할 수 있습니다.

Targeted 종류의 스펠만 사용할 수 있습니다.


location-modifiers 

스펠 대상 위치에 대한 조건부 설정을 할 수 있습니다.

Targeted Location 클래스의 스펠만 사용할 수 있습니다.


restrict-to-worlds 

지정한 월드에서만 스펠을 사용할 수 있습니다.




[sound]


recharge-sound 

charges 구문이 활성화되었을 때,

재충전 시 들리는 소리를 설정합니다.


sound-on-cooldown 

cooldown 구문이 활성화되었을 때,

재충전 시 들리는 소리를 설정합니다.


sound-missing-reagents 

소모할 재료가 부족할 때 들리는 소리를 설정합니다.




[string]


str-cost 

cost 구문 사용 시 작동합니다.

재료 소모 시 텍스트를 띄웁니다.


str-cast-self 

스펠 사용 시, 시전자에게만 텍스트를 띄웁니다.


str-cast-others 

스펠 사용 시, 시전자 외의 유저에게 텍스트를 띄웁니다.


str-on-cooldown 

스펠이 아직 쿨타임 상태일 경우, 텍스트를 띄웁니다.

텍스트에 %c를 넣으시면 남은 쿨타임 시간으로 바뀝니다.


str-missing-reagents 

cost 구문 사용 시 작동합니다.

재료가 부족할 시 텍스트를 띄웁니다.


str-cant-cast 

스펠을 사용할 수 없을 시 텍스트를 띄웁니다.


str-wrong-world 

해당 월드에서 스펠을 사용할 수 없으면, 텍스트를 띄웁니다.


str-wrong-item 

잘못된 아이템을 들고 스펠을 사용하려 할 시 텍스트를 띄웁니다.


str-modifier-failed 

해당 스펠의 조건부를 총족하지 못할 시 텍스트를 띄웁니다.


tags 

해당 스펠에 태그를 설정합니다.

silence 스펠이나 cleanse 스펠 등에 활용됩니다.







   2. 클래스별 공통 구문


[Targeted Spell]


always-activate 

대상을 지정하지 못해도 스펠을 사용합니다.

이 경우, 대상 지정을 못하면 스펠 효과가 무효화되어 실패 판정이 됩니다.


play-fizzle-sound 

스펠이 대상을 지정하지 못할 시 block.fire.extinguish 소리가 발생합니다.


target-self 

스펠이 자기자신을 대상으로 지정하도록 설정합니다.


spell-on-fail 

대상을 지정하지 못하면, 설정한 스펠을 발동시킵니다.


str-cast-target 

스펠 사용 시, 대상에게 텍스트를 띄웁니다.


str-no-target 

대상을 지정하지 못할 시, 시전자에게 텍스트를 띄웁니다.




[Buff Spell]


can-cast-with-item 

해당 스펠을 아이템을 사용하여 발동할 수 있는지 설정합니다.


can-cast-by-command 

해당 스펠을 명령어로 입력하여 발동할 수 있는지 설정합니다.


targeted 

해당 스펠이 대상을 지정하여 그 대상에게 스펠 효과를 걸 수 있습니다.

즉, Targeted 클래스처럼 작동합니다.


toggle 

스펠을 사용했을 때 이미 같은 스펠에 걸린 상태면, 스펠을 해제시킬지 설정합니다.

false일 경우, 같은 스펠이 또 걸렸을 때 지속시간이 초기화됩니다.


duration 

스펠의 지속시간을 설정합니다.


power-affects-duration 

스펠 효과 강화 시, 지속시간도 영향을 받는지 설정합니다.


cancel-on-give-damage 

피해를 주면 버프 스펠이 해제됩니다.


cancel-on-take-damage 

피해를 받으면 버프 스펠이 해제됩니다.


cancel-on-death 

사망 시 버프 스펠이 해제됩니다.


cancel-on-teleport 

순간이동 시 버프 스펠이 해제됩니다.


cancel-on-change-world 

월드를 옮길 시 버프 스펠이 해제됩니다.


cancel-on-spell-cast 

스펠 사용 시 버프 스펠이 해제됩니다.


cancel-on-logout 

서버에서 나가면 버프 스펠이 해제됩니다.





   강의 후기


도움이 되셨길 바라며, 다음 강의는 작성되는 대로 올리도록 하겠습니다.

아마 다음 강의에서는 조건부 Modifiers에 대해서 다룰 생각입니다.

추천과 댓글 꼭 부탁드립니다.







15개의 댓글

ASSERVER
2020.07.08

Shared-cooldown으로 다른 스펠에 쿨타임 적용이 가능한데

혹시 지정한 스펠의 쿨타임을 초기화 하거나 줄이는것도 가능할까요?

제라든
2020.07.09
@ASSERVER

그건 매직스펠 상에서는 불가능한 것으로 알고 있습니다.

jh22486
2020.07.18

매직스펠 도약 하는 명령어 아시나요

 

Big_Bang
2020.07.28
@jh22486

"Leap" 스펠 말씀이신가요?

 

theofofthe
2020.09.10

매직스펠 플러그인을 다운받으면 저절로 생성되는 spells-regular.yml 파일에있는 leap스펠 구문을 그대로 복사 붙여넣기를 했는데 신기하게 제가 만들기만 하면 매직스펠이 사용이 되지 안씁니다. spells-regular.yml 파일을 사용하면 잘되는데 제가 따로 메모장이나 노트페드 에 구문을 그대로 붙여넣어 만들기만 하며는 아됩니다(.yml 파일로 저장했고 구문에 한글도 없습니다).(다운밭거나,spells-regular.yml 파일을 사용하면 잘되는데 제가 만들기만하며는 스펠사용이 안됨니다.. 혹시 해결방법이 있나요?

ASSERVER
2020.09.11

가끔 아무것도 적용 안한 막대기로 스펠이 사용되는데 이거는 어떻게 해결하나요?

제라든
2020.10.04
@ASSERVER

spells-regular 파일을 삭제하시면 됩니다.

Reas
2020.10.18

강의 잘 보고 있습니다.

매직스펠에서 변수로 조건을 걸어서 사용할 수 있는데,

그 변수를 skript 플러그인 변수와 연동할 수 있나요?

예를 들어 매직스펠 변수에 elemental에 fire를 부여하고,

스크립트 플러그인에서 대미지를 받았을때,

매직스펠 변수 elemental이 fire이면,

메세지가 출력되는 방식으로요

 

api를 이용하는 방법밖에 없는지, api를 이용하는 방법도 되긴하는지 궁금하네요!

제라든
2020.10.18
@Reas

일단 연동 자체는 불가능합니다.

skript에서 변수를 만들고, CommandSpell을 이용해서 조정하는 방법이 있습니다.

Reas
2020.10.18
@제라든

그럼 skript에서 magic spell로만 일방향으로만 대입가능한건가요?

진짜 어려운 부탁인데 간단하게라도 알려주시먄 안될까요..?

on walk on stone:

set {status} to "fire"

음... 이 이후로 감이 안잡히네요..ㅠㅠ

제라든
2020.10.18
@Reas

'/command var [] []' 로 명령어 만드시고

ExternalCommandSpell 스펠로 "var add 1" 이런 식으로 하시면 됩니다.

Reas
2020.10.18
@제라든

아 무슨 말인지 이해했어요!

그러면 스펠을 맞은 상대방한테 변수를 추가하는건 안되나요?

설명해주신 방법은 제가 cast item 사용하면 ExternalCommandSpell 실행해서 제 변수를 설정해주는 방법인데,

이제 제가 스킬을 써서 맞은 플레이어의 변수를 설정하는방법이 있나요?

ExternalCommandSpell 에 맞은 상대의 권한으로 명령어를 실행하는 옵션이 있나요?

제라든
2020.10.18
@Reas

제라든#6509로 연락주시길 바랍니다.

Reas
2020.10.18
@제라든

오늘 너무 늦기도 했구 괜히 귀찮게 해드리는거 같아서 내일 연락 드릴게요!

오늘은 저혼자 이것저것 해보곘습니다

GEEKSCI
2020.12.30

제라든님 매직스펠 영상들을 보면 reddust파티클에 색을 입힐수 있는거 같은데 어떻게 하는것인가요 아니면 reddust가 아니라면 무엇인가요

뉴스 및 창작물
/files/thumbnails/520/751/003/262x150.crop.jpg?20240328020349

레드스톤

마인크래프트 노트블록으로 만든 『 Bling‐Bang‐Bang‐Born 』 1

Sonttukk

2024-03-23

1

/files/thumbnails/467/742/003/262x150.crop.jpg?20240311163123

레드스톤

[노트블럭커버] MILGRAM -ミルグラム(밀그램)- / 아마네 「숙청 행진」 제 2심 2

리비온

2024-03-11

0

/files/thumbnails/846/741/003/262x150.crop.jpg?20240310221214

레드스톤

워든 vs 라마 200마리 1

GlassesFilm

2024-03-10

0

/files/thumbnails/542/739/003/262x150.crop.jpg?20240309070457

레드스톤

[고인의 명복을 빕니다][노트블럭]드래곤볼 GT 오프닝 - 점점 마음이 끌려

리비온

2024-03-09

0

/files/thumbnails/326/738/003/262x150.crop.jpg?20240328020414

레드스톤

마인크래프트 노트블록으로 만든 『 Build Our Machine 』

Sonttukk

2024-03-07

0

/files/thumbnails/952/735/003/262x150.crop.jpg?20240303230423

소식

복잡한 설치 없이 마크 애드온을 즐겨보세요! 새로운 블록, 몹, 조합법 등!

도라

2024-03-03

0

/files/thumbnails/212/735/003/262x150.crop.jpg?20240303113438

레드스톤

성장속도 실험

GlassesFilm

2024-03-03

3