개인 자료란 (JE)

  서버 커뮤니티

Profile ENCE 대표칭호 없음

I3396 83afcc84f84f44ed811e268863d53eb3

Profile

트리거리엑터 강좌

마인크래프트 트리거리엑터 오리엔테이션

2020.09.15 조회 수 247 추천 수 0
해당 글은 HK 강좌팀 도토리님이 작성해주셨습니다.

저급 언어를 좋아하는 도토리입니다! 
C, C++ 등을 주로 다루고, 특히 C언어를 더 좋아합니다. 
저는 마인크래프트에 빠져들면서 자연스럽게 개발 쪽으로 방향을 잡았는데, VT(Varriable Trigger)로 1.5.2 서버를 처음 만들었죠. 
그 후 1.12.2로 넘어오며 VT를 자연스럽게 버리게 되었고, Skript를 공부하려던 차에 저에게 더 잘 맞는 스크립트, 
바로 TR을 찾게 되었습니다. 그렇게 지금까지 한 우물만 파게 되었습니다. (아직까지 Skript를 다뤄 본 적이 없어요 ㅠ)
CAUTION!
아무래도 C언어를 많이 다루던 탓인지 제가 앞으로 올릴 강의에 사용되는 여러 알고리즘은
원래 있던 기능이 아니라 직접 만들어 사용하는 경우가 많으니 이 점 유의해주세요.
* 트리거 리엑터 강의 목차 *

1. 강의 소개
2. 리엑터에서 사용 가능한 트리거의 종류
3. (트리거 공통) #EXECUTOR
4. (트리거 공통) $placeholder
5. (트리거 공통) 지역 변수, 전역 변수
6. (트리거 공통) 전역 변수 심화, var.yml
7. (트리거 공통) 조건문
8. (트리거 공통) 반복문
9. (트리거 공통) 배열, BUKKITAPI 입문
10. (트리거 공통) 메소드, 본격적인 BUKKITAPI
11. (트리거 공통) Executor 제작, 커스텀 실행자의 장점
12. (트리거 공통) 플러그인 불러오기
13. (트리거 공통) 인스턴스 조건 연산자
14. (트리거 공통) 마인크래프트에서 기본적으로 제공하는 메소드
15. (CommandTrigger) 커맨드 트리거에서만 가능한 팁들
16. (CustomTrigger) 커스텀 트리거의 사용법 기초
17. (CustomTrigger) 예제_서버 시간 체크
18. (CustomTrigger) 예제_커맨드 트리거 연동
19. (CustomTrigger) 예제_자동 농사
20. (*트리거 종합 예제) 예제_코어 파괴 전쟁


제가 오늘부터 강의를 시작할 플러그인은 Trigger Reactor 라는 스크립팅 플러그인입니다.
Trigger Reactor(이하 TR)은 매우 강력한 스크립팅 플러그인으로, wysohn이라는 제작자 분이
Varriable Trigger(이하 VT)에서 영감을 얻어 창조하게 된 플러그인입니다.

VT는 낮은 버전 서버에서 흔히 볼 수 있는, 아주 유명한 스크립팅 플러그인입니다.
그러나 VT는 상위 버전으로 갈 수록 안정성은 더 낮아져만 갔고, 개발 지원도 거의 끊겨가고 있었습니다.
심지어 개발자가 한 번 개발 중단 선언을 할 정도로 VT의 상황이 안 좋다는 것은 명백해져 갔죠.
이 상황을 지켜보던 VT 사용자 중 한 명, wysohn이라는 유저가 TR을 개발하게 됩니다.
이 스크립팅 플러그인은 기존 Varriable Trigger(이하 VT) 사용자들에게 한 줄기 빛이 되어 주었습니다.
여기서 여러분은 한 가지 의문점이 생기실 수도 있습니다. 바로 한국에는 더 유명한 Skript라는 플러그인이 있다는 것이죠.
Skript는 강력한 스크립팅 언어이며, 수많은 사용자들 덕분에 애드온도 많이 개발되었고,
커다란 포럼도 있어 초보자들의 입문 장벽 또한 낮았죠. 그러나 기존 VT 유저에게는 TR이 Skript보다 훨씬 간단하게 보였을 것입니다.

@CMDOP give <playername> 1 1
이 구문은 VT에서 플레이어에게 아이템 코드 1인 돌 하나를 주는 커맨드입니다.

give 1 stone to player

#CMDOP "give " + $playername + " 1 1"
위의 구문은 Skript의 구문이고, 아래의 구문은 TR의 구문입니다.
보시다시피 TR은 VT와 기본적인 문법에서 유사성이 보입니다.
결국, 기존 VT 유저들이 더 편하고, 빠르게 습득할 수 있습니다.
그러나 TR도 장점과 단점이 모두 있기에 Skript와 우열을 가릴 수는 없습니다.

이래서 TR을 쓴다! (장점 편)
1. Multi-threading (렉 없음!)  
멀티 스레딩이란, 여러 작업을 동시에 처리하는 기능입니다.  
A부터 Z까지의 작업을 처리할 때, 다른 스크립팅 언어는 순차적으로 처리하지만,  
TR은 A부터 Z까지의 모든 작업을 한번에 처리합니다.  이는 엄청난 속도 향상으로 이어지며, 
사용자의 컴퓨터 CPU 환경을 최고조로 활용할 수 있습니다. 
2. IMPORT의 사용  TR은 BukkitAPI의 메소드를 불러와 사용할 수 있고, 자바의 클래스를 불러올 수도 있습니다.  
VT처럼 등록된 기능만 사용할 수 있는 것이 아닌, 다른 API를 임포트하여 사용할 수 있다는 것이 TR의 최대 장점입니다. 
3. 커스텀 Executor, Placeholder  기본으로 주는 실행자, #MESSAGE, #GIVE 등이 아닌 직접 실행자를 만들어서 모듈처럼 사용할 수 있습니다.  
만약 월드에 있는 모든 플레이어에게 아이템을 주는 실행자를 만들고 싶다면 #GIVEALLPLAYER 이런 식으로  그냥 만들면 됩니다! 이런 식으로 모듈화된 실행자는 다른 트리거 구문에서도 사용이 가능합니다.

이래서 TR은 좀 꺼려진다... (단점 편)
1. 상당한 진입장벽  자바, C 등 프로그래밍 언어를 이미 다룰 줄 아는 분이 아니라면 심화적인 단계에 들어가기는 어려울 수도 있습니다.  문자열 처리를 큰따옴표(")로 하고, && || 등 논리 연산자도 그대로 사용 가능한 부분에서  커다란 진입장벽을 엿볼 수 있습니다.   Javadoc 형태의 문서를 이해할 수 없다면 bukkitAPI를 사용하기도 어렵고, 심화적인 단계로 나아가기는 힘듭니다.

글을 마치며...
트리거 리엑터는 강력한 스크립팅 플러그인입니다. 그러나 진입장벽이 높은 것은 사실이며, 심화 과정으로 넘어가는 것에서도 커다란 벽이 있습니다. 이걸 넘지 못한다면 TR의 무한한 확장성을 제대로 이용할 수 없습니다. 하지만 이것을 제대로 이용할 수만 있다면, 사용자가 원하는 어떤 기능이든 구현해 낼 수 있습니다. 저는 그것 때문에 TR에 빠졌으며, 아직도 수많은 기능들을 공부중입니다. 저와 같이 TR의 매력에 빠져보실 많은 유저들을 구하며 첫 강의를 마칩니다.

Warning
댓글이 없습니다.

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

뉴스 및 창작물
/files/thumbnails/477/930/003/262x150.crop.jpg?20241201030912

레드스톤

뉴진스 - Super Shy | 마크 노트블럭 커버

노트블럭전문가

2024-12-01

0

/files/thumbnails/483/916/003/262x150.crop.jpg?20241127115329

레드스톤

[노트블럭 커버] 뉴진스 - ETA 3

노트블럭전문가

2024-11-27

1

/files/thumbnails/150/925/003/262x150.crop.jpg?20241123005717

건축

응답하라 1988 ? 1

팀뉴일리시

2024-11-23

5

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

건축

서울 숭례문(崇禮門) 6

KHC

2024-10-25

2

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

건축

경주 월정교 1

KHC

2024-10-10

2