본문 바로가기

프로그래밍/마인크래프트 - CommandHellper 플러그인

마인크래프트 CommandHelper 커헬 강좌 2강 - 명령어 제작








서버에 커헬을 적용시키고나면 폴더가 하나 생성된걸 보실수 있을겁니다








그 폴더에 들어가면 파일이 여러개 있을텐데 저 3개를 주로 쓰게될겁니다.


간단하게 기능들을 설명하자면


aliases.mas 는 명령어를 만들수있습니다


main.ms 는 동작이나 행동 등 이벤트와 관련하여 만들수 있습니다

예를들어 블럭을 부수거나 채팅을 치거나 아이템을 먹는 등 행동,동작과 관련되서 기능을 추가할수 있습니다.


auto.include 는 직접 함수를 만들수있습니다. 함수는 나중에 설명드리겠습니다.



우선 저 파일들을 Notepad++로 열어줘야합니다








파일 우클릭후 속성에 들어가신 후에




연결프로그램 - 변경을 누르시고



Notepad++를 체크하시고 확인을 눌러주세요



그리고 적용을 눌러주시면 됩니다


나머지 두개의 파일도 똑같이 해주세요


그리고 이제 aliases파일을 열어줍시다





처음에 열어보시면 뭔가 영어가 엄청 많이 적혀있는데....






싹다 지워주셔도 됩니다


기본적으로 만들어놓은 명령어와 사용법을 설명하는 내용인데

어차피 영어로되있어서 읽지도 못하기때문에 지워줍시다


물론 안지워도 상관은 없습니다만 지금은 방해만되니 지워놓겠습니다






이제 예제 몇가지와 함께 본격적으로 강좌를 시작하겠습니다


/명령어 = >>>

`    실행 내용

<<<


을 입력하면 해당 명령어 입력시 실행됩니다


간단하게 일단 /m를 입력하면 나에게 '안녕'이라는 메시지가 오는 명령어를 만들어봅시다




*:/m = >>>

msg('안녕')

<<<



위와같이 입력해주시고 저장하신 후 마인크래프트나 서버에 /reloadalias 를 입력하시면 플러그인이 리로드되서 적용이 됩니다.


msg는 입력한  플레이어에게 채팅을 띄워주는 역할을합니다.

그리고 문자를 입력할때는 항상 '' 를 넣어주셔야합니다


그리고 명렁어 앞에 *: 를 넣어주시면 모든 유저가 권한이 없더라도 사용 가능한 명령어가 됩니다




그리고 마인크래프트에서 /m을 쳐보시면 채팅창에 '안녕'이라는 메시지가 나올겁니다.








엥? 분명 안녕이 나와야하는데 글자가 깨져서나오네요




aliases로 돌아와서 인코딩을 눌러줍시다




ANSI로 변환을 누르신후 다시 마인크래프트에 가서 /m을 입력해보면


정상적으로 안녕이 출력되는것을 볼수 있습니다


근데 안녕만 출력해서 뭐하냐고요?

그럼 다른 명령어도 만들어봅시다


/아침 = >>>

run('/time set 0');

<<<



run()는 플러그인이나 기본적으로 있는 명령어들을 실행해주는 역할을 합니다


이제 /아침 을 입력하면 아침으로 변하는걸 볼수 있을겁니다.


run 이외에도 자주 사용하는 API들이 있는데

이런것들을 '함수'라고 합니다

함수에 대해서는 나중에 자세하게 따로 강좌를 쓰겠습니다.


일단 많이 사용되는 함수들을 정리해보자면


  • run(명령어) - 명령어를 대신 실행합니다



  • broadcast('채팅') - 채팅을 전체메시지로 띄워줍니다



  • msg('채팅') - 명령어를 입력한사람에게 채팅을 띄웁니다



  • colorize('색상코드 + 채팅') - 색상코드를 적용시켜줍니다

예를들어 msg(colorize('&d안녕'))

colorize없이 msg('&d안녕')이라고 칠경우 색상코드가 적용되지 않고 &d도 그대로 채팅에 나옵니다



  • runas(~권한 , '명령어') - 해당 권한으로 명령어를 실행해줍니다

예를들어 runas(~console, '/stop')

를 하면 서버콘솔에 입력한것과 똑같이 적용됩니다

runas(~op, '/stop')

를 입력하면 일반 유저도 op의 권한으로 저 명령어가 실행되는겁니다.


  • player() - 명령어를 입력한 사람의 닉네임을 가져옵니다

msg('나의 닉네임 : ' player() )를 입력하면 자신의 닉네임이 나옵니다


위에 있는 함수들이 아마 가장 많이 사용된다고 생각합니다

한번 이 함수들을 이용해서 예제를 만들어보겠습니다


*:/아침 = >>>

runas(~op, '/time set 0');

broadcast(colorize('&d' player() '님이 아침으로 만들었습니다.'))

<<<




/아침을 입력해보면



아침이 되고 명령어를 입력한 사람의 닉네임이 채팅에 띄워집니다



다음편에서는 main.ms에서 이벤트API와 if문과 변수,for문 등을 해보겠습니다



위에있는 API외의 다른 API들을 보고싶다면

http://wiki.sk89q.com/wiki/CommandHelper/Staged/API

이 링크로 가주시면 됩니다. 저도 이곳을 뒤져보면서 배웠습니다

단 영어기때문에 해석은 알아서 해주세요


모르는점 있으면 댓글로 질문해주시면 답변해드리겠습니다