mIRC 스크립트
| 패러다임 | 이벤트 기반 프로그래밍, 절차적 프로그래밍 |
|---|---|
| 설계자 | Khaled Mardam-Bey |
| 개발자 | Khaled Mardam-Bey |
| 발표일 | 1995년 |
| 자료형 체계 | 동적 타이핑 |
| 운영 체제 | 마이크로소프트 윈도우 |
| 라이선스 | 사유 소프트웨어 |
| 파일 확장자 | .mrc, .ini |
| 웹사이트 | http://mirc.com |
| 주요 구현체 | |
| mIRC | |
mIRC 스크립트(mIRC script, MSL)는 윈도우용 IRC 클라이언트인 mIRC에서 지원하는 스크립트 언어이다.
mIRC 스크립트는 적게는 사용자의 편의를 위한 줄임글 명령 정의로부터, 자동 채널 관리, 게임, 재미를 위한 기능을 비롯해 크게는 거대한 응용 프로그램을 만드는 데까지 여러 용도로 사용된다. mIRC 사용자들 사이에서 관련된 포럼이 몇몇 형성되어 있다.
구성
mIRC 스크립트는 일반적인 텍스트 파일로, .mrc 확장자를 쓰거나 INI 파일로 저장된다. mIRC 내에서도 스크립트 편집기(Alt-A,R,P)를 통해 스크립트를 편집할 수 있다.
mIRC 스크립트는 사건 기반 프로그래밍 언어에 속한다. mIRC 스크립트는 호출되는 시점에 따라서 줄임글(alias, 사용자가 특정한 명령을 입력했을 때), 자동 반응(remote, IRC 서버에서 특정한 명령이 날아 왔을 때), 그리고 팝업 메뉴(popup menu, 메뉴를 클릭했을 때)로 나눌 수 있다.
언어 자체는 단어 단위로 해석되며, 명령들의 집합으로 구성된다. 명령 중에 스크립트에서 정의한 것은 줄임글(alias)이라 불린다. 명령의 인자에 $, &, %로 시작하는 단어가 있으면 그 단어는 특수하게 해석되는데, $는 값을 반환하는 함수로 식별자(identifier)라 불리며, &는 이진 변수, %는 일반 변수를 나타낸다. 명령 자체에는 아무 기호도 붙지 않지만 사용자가 채팅 창에서 직접 입력해야 할 경우 /, //, /. 등의 접두사를 붙여야 한다. 명령 중에는 while과 같이 명령 블록을 필요로 하는 것도 있는데, 이런 경우 {와 }로 감싸서 명령 블록을 표시한다.
변수는 옥텟 문자열을 담는 이진 변수와 자료형이 바뀔 수 있는 임의의 값을 담는 일반 변수로 나뉜다. 이진 변수는 어디서나 접근할 수 있으며, 일반 변수는 서브루틴에서 지역 변수로 선언되지 않으면 전역 변수로 인식한다. mIRC 스크립트는 약형 언어로, 서로 다른 변수 사이에 연산이 일어나면 자동으로 형 변환이 일어난다.
mIRC 스크립트에서 기본으로 지원하는 명령 및 식별자는 IRC 제어로부터 계산, GUI까지 다양하다. 스크립트만으로 처리하기 힘들거나 느린 경우에는 외부의 DLL 파일이나 COM 객체를 사용할 수 있다.
예제
다음은 Hello World 프로그램이다. 사용자가 /hello를 입력하면 채팅 창에 문자열이 출력된다.
alias hello {
echo -a Hello World!
}
다음은 /ten을 입력하면 1부터 10까지를 채팅창에 출력하는 프로그램으로, 반복문과 지역 변수의 예를 보여 준다.
alias ten {
var %i = 1
while (%i <= 10) {
echo -a %i
inc %i
}
}
다음은 자동 반응 스크립트의 예이다. #IRChelp라는 채널에 입장(JOIN 명령)하면 입장한 사람에게 인사를 한다. 단어 단위로 해석되므로 ‘$nick님’이라고 쓸 수 없음을 주목하라.
on *:JOIN:#IRChelp:{
msg $chan $nick $+ 님 안녕하세요~
}
다음은 그림 창을 띄우는 프로그램이다.
alias cir {
var %x = 0
window -ek0p @cir
while (%x < 360) {
inc %x
drawdot @cir 4 2 $calc(($cos(%x)*50)+200) $calc(($sin(%x)*50)+200)
}
}
같이 보기
외부 링크
- (영어) 공식 mIRC 홈페이지
- (영어) mIRC 온라인 매뉴얼 — 단일 문서 HTML 포맷에 관한 설명
- 영어 표기를 포함한 문서
- 위키데이터 속성 P18을 사용하는 문서
- 위키데이터 속성 P41을 사용하는 문서
- 위키데이터 속성 P94를 사용하는 문서
- 위키데이터 속성 P117을 사용하는 문서
- 위키데이터 속성 P154를 사용하는 문서
- 위키데이터 속성 P213을 사용하는 문서
- 위키데이터 속성 P227을 사용하는 문서
- 위키데이터 속성 P242를 사용하는 문서
- 위키데이터 속성 P244를 사용하는 문서
- 위키데이터 속성 P245를 사용하는 문서
- 위키데이터 속성 P268을 사용하는 문서
- 위키데이터 속성 P269를 사용하는 문서
- 위키데이터 속성 P271을 사용하는 문서
- 위키데이터 속성 P347을 사용하는 문서
- 위키데이터 속성 P349를 사용하는 문서
- 위키데이터 속성 P350을 사용하는 문서
- 위키데이터 속성 P373을 사용하는 문서
- 위키데이터 속성 P380을 사용하는 문서
- 위키데이터 속성 P396을 사용하는 문서
- 위키데이터 속성 P409를 사용하는 문서
- 위키데이터 속성 P428을 사용하는 문서
- 위키데이터 속성 P434를 사용하는 문서
- 위키데이터 속성 P435를 사용하는 문서
- 위키데이터 속성 P436을 사용하는 문서
- 위키데이터 속성 P454를 사용하는 문서
- 위키데이터 속성 P496을 사용하는 문서
- 위키데이터 속성 P549를 사용하는 문서
- 위키데이터 속성 P650을 사용하는 문서
- 위키데이터 속성 P651을 사용하는 문서
- 위키데이터 속성 P691을 사용하는 문서
- 위키데이터 속성 P716을 사용하는 문서
- 위키데이터 속성 P781을 사용하는 문서
- 위키데이터 속성 P791을 사용하는 문서
- 위키데이터 속성 P864를 사용하는 문서
- 위키데이터 속성 P865를 사용하는 문서
- 위키데이터 속성 P886을 사용하는 문서
- 위키데이터 속성 P902를 사용하는 문서
- 위키데이터 속성 P906을 사용하는 문서
- 위키데이터 속성 P947을 사용하는 문서
- 위키데이터 속성 P950을 사용하는 문서
- 위키데이터 속성 P966을 사용하는 문서
- 위키데이터 속성 P982를 사용하는 문서
- 위키데이터 속성 P1003을 사용하는 문서
- 위키데이터 속성 P1004를 사용하는 문서
- 위키데이터 속성 P1005를 사용하는 문서
- 위키데이터 속성 P1006을 사용하는 문서
- 위키데이터 속성 P1015를 사용하는 문서
- 위키데이터 속성 P1045를 사용하는 문서
- 위키데이터 속성 P1048을 사용하는 문서
- 위키데이터 속성 P1053을 사용하는 문서
- 위키데이터 속성 P1146을 사용하는 문서
- 위키데이터 속성 P1153을 사용하는 문서
- 위키데이터 속성 P1157을 사용하는 문서
- 위키데이터 속성 P1186을 사용하는 문서
- 위키데이터 속성 P1225를 사용하는 문서
- 위키데이터 속성 P1248을 사용하는 문서
- 위키데이터 속성 P1273을 사용하는 문서
- 위키데이터 속성 P1315를 사용하는 문서
- 위키데이터 속성 P1323을 사용하는 문서
- 위키데이터 속성 P1330을 사용하는 문서
- 위키데이터 속성 P1362를 사용하는 문서
- 위키데이터 속성 P1368을 사용하는 문서
- 위키데이터 속성 P1375를 사용하는 문서
- 위키데이터 속성 P1407을 사용하는 문서
- 위키데이터 속성 P1556을 사용하는 문서
- 위키데이터 속성 P1584를 사용하는 문서
- 위키데이터 속성 P1695를 사용하는 문서
- 위키데이터 속성 P1707을 사용하는 문서
- 위키데이터 속성 P1736을 사용하는 문서
- 위키데이터 속성 P1886을 사용하는 문서
- 위키데이터 속성 P1890을 사용하는 문서
- 위키데이터 속성 P1907을 사용하는 문서
- 위키데이터 속성 P1908을 사용하는 문서
- 위키데이터 속성 P1960을 사용하는 문서
- 위키데이터 속성 P1986을 사용하는 문서
- 위키데이터 속성 P2041을 사용하는 문서
- 위키데이터 속성 P2163을 사용하는 문서
- 위키데이터 속성 P2174를 사용하는 문서
- 위키데이터 속성 P2268을 사용하는 문서
- 위키데이터 속성 P2349를 사용하는 문서
- 위키데이터 속성 P2418을 사용하는 문서
- 위키데이터 속성 P2456을 사용하는 문서
- 위키데이터 속성 P2484를 사용하는 문서
- 위키데이터 속성 P2558을 사용하는 문서
- 위키데이터 속성 P2750을 사용하는 문서
- 위키데이터 속성 P2980을 사용하는 문서
- 위키데이터 속성 P3223을 사용하는 문서
- 위키데이터 속성 P3233을 사용하는 문서
- 위키데이터 속성 P3348을 사용하는 문서
- 위키데이터 속성 P3372를 사용하는 문서
- 위키데이터 속성 P3407을 사용하는 문서
- 위키데이터 속성 P3430을 사용하는 문서
- 위키데이터 속성 P3544를 사용하는 문서
- 위키데이터 속성 P3562를 사용하는 문서
- 위키데이터 속성 P3563을 사용하는 문서
- 위키데이터 속성 P3601을 사용하는 문서
- 위키데이터 속성 P3723을 사용하는 문서
- 위키데이터 속성 P3788을 사용하는 문서
- 위키데이터 속성 P3829를 사용하는 문서
- 위키데이터 속성 P3863을 사용하는 문서
- 위키데이터 속성 P3920을 사용하는 문서
- 위키데이터 속성 P3993을 사용하는 문서
- 위키데이터 속성 P4038을 사용하는 문서
- 위키데이터 속성 P4055를 사용하는 문서
- 위키데이터 속성 P4114를 사용하는 문서
- 위키데이터 속성 P4143을 사용하는 문서
- 위키데이터 속성 P4186을 사용하는 문서
- 위키데이터 속성 P4423을 사용하는 문서
- 위키데이터 속성 P4457을 사용하는 문서
- 위키데이터 속성 P4534를 사용하는 문서
- 위키데이터 속성 P4535를 사용하는 문서
- 위키데이터 속성 P4581을 사용하는 문서
- 위키데이터 속성 P4613을 사용하는 문서
- 위키데이터 속성 P4955를 사용하는 문서
- 위키데이터 속성 P5034를 사용하는 문서
- 위키데이터 속성 P5226을 사용하는 문서
- 위키데이터 속성 P5288을 사용하는 문서
- 위키데이터 속성 P5302를 사용하는 문서
- 위키데이터 속성 P5321을 사용하는 문서
- 위키데이터 속성 P5368을 사용하는 문서
- 위키데이터 속성 P5504를 사용하는 문서
- 위키데이터 속성 P5587을 사용하는 문서
- 위키데이터 속성 P5736을 사용하는 문서
- 위키데이터 속성 P5818을 사용하는 문서
- 위키데이터 속성 P6213을 사용하는 문서
- 위키데이터 속성 P6734를 사용하는 문서
- 위키데이터 속성 P6792를 사용하는 문서
- 위키데이터 속성 P6804를 사용하는 문서
- 위키데이터 속성 P6829를 사용하는 문서
- 위키데이터 속성 P7293을 사용하는 문서
- 위키데이터 속성 P7303을 사용하는 문서
- 위키데이터 속성 P7314를 사용하는 문서
- 위키데이터 속성 P7902를 사용하는 문서
- 위키데이터 속성 P8034를 사용하는 문서
- 위키데이터 속성 P8189를 사용하는 문서
- 위키데이터 속성 P8381을 사용하는 문서
- 위키데이터 속성 P8671을 사용하는 문서
- 위키데이터 속성 P8980을 사용하는 문서
- 위키데이터 속성 P9070을 사용하는 문서
- 위키데이터 속성 P9692를 사용하는 문서
- 위키데이터 속성 P9725를 사용하는 문서
- 위키데이터 속성 P9984를 사용하는 문서
- 위키데이터 속성 P10020을 사용하는 문서
- 위키데이터 속성 P10299를 사용하는 문서
- 위키데이터 속성 P10608을 사용하는 문서
- 위키데이터 속성 P10832를 사용하는 문서
- 위키데이터 속성 P11249를 사용하는 문서
- 위키데이터 속성 P11646을 사용하는 문서
- 위키데이터 속성 P11729를 사용하는 문서
- 위키데이터 속성 P12204를 사용하는 문서
- 위키데이터 속성 P12362를 사용하는 문서
- 위키데이터 속성 P12754를 사용하는 문서
- 위키데이터 속성 P13049를 사용하는 문서
- 전문 영역 언어
- 스크립트 언어