Jeraden_n 4c8ff9825f8342f2bb0fd7c96f78d7e6
분야 | 매직스펠 |
---|---|
장르 | 재미 |
게임버전 | 모든버전 |
API | 페이퍼 |
자료글 | https://github.com/TheComputerGeek2/MagicSpells |
안녕하세요, 제라든입니다.
오늘은 본격적으로 매직스펠을 작성하는 문법과 스펠의 구조에 대해서 강의하겠습니다.
이해가 안되시거나 질문이 있으신 분들은 댓글에 적어주시면 답변해드리겠습니다.
강의 시작합니다.
1. 스펠 작성 구조
스펠의 이름: spell-class: "사용할 스펠 종류 / 스펠의 기능" - 이하 구문 작성 -
먼저 해당 스펠을 칭할 스펠 이름을 설정해야 합니다.
스펠 이름을 적으시고 뒤에 ":" 문자를 붙여주시는 것이 문법입니다.
해당 스펠을 어떻게 활용하느냐에 따라, 사용된 스펠 종류에 따라
본인이 원하는 대로 설정하시면 됩니다.
단, 1.8 버전 이상부터는 한글 이름으로 작성하시려면
인코딩 형식을 UTF-8로 바꿔주셔야 합니다!
메모장을 쓰시는 분들은 저장하실 때, 저장 창의 하단 우측에서 인코딩을 바꾸실 수 있습니다.
(이미 저장된 파일이시면, 다른 이름으로 저장하셔서 인코딩 형식을 바꾸셔야 합니다)
Notepad++를 쓰신다면 인코딩 메뉴에서 형식을 바꾸실 수 있습니다.
(Notepad++로는 더 편하게 인코딩 형식을 바꿀 수 있다)
이름을 적은 뒤부터는 스펠의 기능, 효과를 설정하는 구문을 적어내립니다.
참고로, 스펠 구문은 반드시 4번 띄어쓰기를 하고 적으셔야 합니다!
Notepad++를 사용하실 경우, tab 키만 누르시면 자동으로 4번 띄어쓰기가 됩니다.
spell-class 구문은 모든 스펠에 반드시 들어가는 구문입니다.
글자 그대로 해당 스펠이 어떤 기능을 수행하는 스펠로 만들지
(데미지를 입히는 Pain Spell인지, 자신을 회복시키는 Prayer Spell인지)
결정하는 구문입니다.
이후 구문들은 결정된 spell-class에 따라서 달라집니다.
2. 스펠 적용하기
스펠을 하나 작성하셨다면 MagicSpells 폴더 안에 저장하셔야 합니다.
예시로, 제가 아래의 스펠을 적용해도록 하겠습니다.
Pain Spell: spell-class: ".targeted.PainSpell" damage: 5 ignore-armor: false damage-type: ENTITY_ATTACK
여기서 주의할 점!
반드시 .yml 확장자의 파일로 저장하셔야 합니다!
그렇지 않으면 플러그인이 스펠 파일을 인식하지 못합니다!
Notepad++를 쓰시는 분들은 언어 메뉴에서 YAML 언어를 선택해주시면 됩니다.
메모장을 쓰신다면 일단 저장해두시고, 일반 .txt 확장자를 .yml로 변경해주세요.
(이렇게 스펠을 적어둔 파일을 넣어두면 된다)
이제 서버 콘솔이나 채팅창에 /c reload 명령어를 입력하세요.
해당 명령어는 MagicSpells 플러그인을 초기화시키고
폴더 내 스펠들을 다시 읽어들이는 기능을 수행합니다.
기존에 있던 스펠을 수정, 삭제하거나 새로운 스펠을 넣었을 때
/c reload 명령어를 입력해야 수정사항이 서버에 적용됩니다.
또한 스펠에 오류가 발생했을 때
서버 콘솔에 어떤 스펠에서 어떤 오류가 발생했는지 오류 로그가 나타납니다.
이 오류 로그를 보면 오류를 파악하고 수정하는 데에 큰 도움이 됩니다.
보통 이 작업 스펠 리로드라고 칭합니다.
스펠을 적용하셨다면, 이제 채팅으로 /c 스펠이름을 입력하여 스펠을 사용하실 수 있습니다.
3. 주석 작업
매직스펠, 스크립트 작업을 할 때 구문 정리가 필수적입니다.
특히 제작 이후 업데이트나 오류 수정이 필요할 때
얼마나 정리를 잘했냐에 따라 작업 시간과 난이도가 달라집니다.
이 때 유용하게 사용할 수 있는 도구가 바로 주석입니다.
(주석을 사용하면 복잡한 코드도 쉽게 영역을 구분하고 정리할 수 있다)
주석이란 작업한 코드에 설명을 달아 이해를 돕는 구문을 의미합니다.
주석을 통해 작업물이 어떻게 구성되고 어떤 기능을 하는지,
일일이 분석할 필요없이 한눈에 알아볼 수 있습니다.
참고로 주석을 작성할 때 주석 구문을 파일이 읽어들이지 못하게 해야 합니다.
주석은 단순히 설명문이기 때문에, 파일을 읽어들이면 오류를 일으키게 됩니다.
매직스펠은 문장 앞에 # 기호를 입력하시면, 플러그인이 기호 뒤의 문장은 완전히 무시합니다.
(주석 실수 때문에 오류가 발생하는 경우도 빈번하다! # 기호를 입력해야 함을 유념해두자)
다음 강의 주제는 바로 스펠 종류와 구분입니다.
이번주 일요일에 게시하겠습니다.
끝까지 읽어주신 분들께 감사의 말씀을 전합니다.
아이스틴
2019.12.04설명이 깔끔하네요! 뭐든지 주석이 정말 중요하죠!
제라든
2019.12.05정리충에게 있어 주석은 사랑입니다.
DDang_
2020.01.14주석을 안적으면 주석 관련 오류가 생기지 않습니다 ㅎ
제라든
2020.01.14으엌;;;
세티스
2020.05.22유익한 글이네요
엠창싫어
2020.05.22어렵긴 하지만 유익하네욤
마크러버
2020.05.22유익한 강좌 감사합니당
L베리
2021.05.19Pain:
spell-class: ".targeted.PainSpell"
cooldown: 5
damage: 10
ignore-armor: false
spell-damage-type:
spell: Painone
라는 데미지 스펠을 만들었는데 데미지가 기본 데미지인 4에서 바뀌질 않네요 문제가 뭘까요?
매직스펠알려주셈ㅠ
2022.04.09왜 안되는지 모르겠어요!
똑같이 썼는데 스펠이름을 알지못한데요!
어떻게 해야하나요?