주제글: mIRC 자동(멀티)서버접속 & 자동(멀티)채널입장 방법 및 스크립트 예제 <1> 단일 글 보기
Darkchoco
세계최고를꿈꾼다
Darkchoco님의 아바타
Rep Power: 99 | Posts: 7,229
Rep Point: 47205
Darkchoco 빗톡 레젼드!Darkchoco 빗톡 레젼드!Darkchoco 빗톡 레젼드!Darkchoco 빗톡 레젼드!Darkchoco 빗톡 레젼드!Darkchoco 빗톡 레젼드!
Darkchoco 빗톡 레젼드!Darkchoco 빗톡 레젼드!Darkchoco 빗톡 레젼드!Darkchoco 빗톡 레젼드!Darkchoco 빗톡 레젼드!Darkchoco 빗톡 레젼드!Darkchoco 빗톡 레젼드!Darkchoco 빗톡 레젼드!Darkchoco 빗톡 레젼드!Darkchoco 빗톡 레젼드!
 
멀티 서버와 멀티 채널을 접속해 봅시다. [본 강좌에서는 mirc 6.3.5 버전을 사용합니다.]

1. mirc를 실행하고 [alt]+[r]을 눌러 [remote]창을 열어줍니다.

2. 새로운 스크립트를 만들기 위해 [File] - [new] 를 차례로 클릭합니다.



3. 멀티서버 접속을 위한 스크립트 작성

인용:
서버 접속 스크립트의 기본 명령

/server [-emnsarpfocz] [port] [password] [-i nick anick email name] [-jn #channel pass]

▽ 각 옵션 자세히 보기

[-e] : SSL 연결 (포트는 +)
[-m] : 멀티서버 자동연결
[-n] : 멀티서버 연결안함
[-pfoc] : 지정된 perform, 즐겨찾기 폴더, 자동조인채널, on connection 이벤트 수행 안함
[-z] : 서버창을 최소화시킴

-sar 옵션 사용지 서버 접속 명령어
/server -sar [server] [-p port] [-g group] [-w password] [-d description]
[-s] : 서버리스트 정렬
[-a] : 서버리스트에 서버 추가, 이미 등록되어있으면 업데이트
[-r] : 서버리스트에서 서버 제거

server : 서버 주소 직접입력
groupname : 등록한 서버의 그룹 이름

[port] : 접속할 서버의 포트

[password] : 패스워드

[-i nick anick email name] : 닉네임, 2차 닉네임, 이메일, 사용자이름

[-jn #channel pass] : 채널명, 채널 비밀번호
3-1. perform과의 연동
 - 서버이름은 Groupname 이나 직접 서버주소를 적으면 됩니다.
 - 닉인증과 채널접속등은 Perform에서 지정합니다.

 

3-1-a. Perform (타이머 기능을 이용한 인증 및 접속
)
인용:
 
 - 각각의 서버에 perform을 지정해주면 됩니다.
 

3-2. 스크립트만 이용
 - 서버 1과 서버 2는 동일한 서버입니다. 닉은 다르고, 하나는 봇에게 초대를 받아야 하는 곳이라 가정합니다.
 - 서버 3은 1, 2와 다른서버이며, 닉도 다르고, 봇에게 초대 받지 않고 입장 가능하다고 가정합니다.


PHP 코드:
on 1:START:{
  
server  <서버 1 이름> <포트> -i nick 1
  server 
-<서버 1 이름> <포트> -i nick 2
  server 
-<서버 2 이름> <포트> -i nick 3
}
on *:CONNECT: {
  if (<
서버 1iswm $network) {   
    if ( 
$me == nick 1 ) /msg nickserv identify nick 1의 비밀번호
    
if ( $me == nick 2 ) /msg nickserv identify nick 2의 비밀번호
  
}
  if ( <
서버2iswm $network ) {
    if (
$me == nick 3) {
       /
msg nickserv identify nick 3의 비밀번호
      
.#chan 1
    
}
  }
}


on *:NOTICE:*닉인증이 되면 서버창에 표시되는 메시지*:*:{
  if (
$nick == NickServ && <서버 1iswm $network) {
    if (
$me == nick 1) .msg 봇에게 보내는 메세지
    
if ($me == nick 2) { 
      .
#chan 1
      
.#chan 2
    
}
  }

부분 설명 드립니다.

PHP 코드:
on 1:START:{
  
server  <서버 1 이름> <포트> -
  server 
-<서버 1 이름> <포트> -
  server 
-<서버 2 이름> <포트> -

mirc 시작시 자동으로 서버접속을 실행하는 명령어 입니다.


PHP 코드:
on *:CONNECT: {
  if (<
서버 1iswm $network) {   
    if ( 
$me == nick 1 ) /msg nickserv identify nick 1의 비밀번호
    
if ( $me == nick 2 ) /msg nickserv identify nick 3의 비밀번호
  
}
  if ( <
서버2iswm $network ) {
    if (
$me == nick 3) {
       /
msg nickserv identify nick 3의 비밀번호
      
.#chan 1
    
}
  }

서버에 접속되면 실행되는 명령어 입니다.

if (<서버 1> iswm $network) 에서 <서버 1> 은 서버주소에 포함되는 특정 단어입니다.
예를들어 비트토크인 경우 irc.bittalk.org 가 서버주소라면 <서버 1> 은 bittlak 이 됩니다.
irc.p2p-network 인경우 p2p-net 이 됩니다.

좀 더 정확하게 지정하시려면 우선 서버에 접속하신 뒤 네트워크 이름을 알아내시면 됩니다.
방법은 아래와 같습니다.


스크립트 창을 여시고 다음을 입력합니다.
PHP 코드:
on 1:INPUT:#: {
  
if ( $== !) {
    
msg $chan $network
    halt
  
}

그리고 임의의 채널을 만드신다음 (/join #111) !n 을 입력해 네트워크 이름을 찾아냅니다.



네트워크 이름을 확인하셨으면 명령어를 다음과 같이 수정하시면 됩니다.

if ($network == P2P-NET)


PHP 코드:
on *:NOTICE:*닉인증이 되면 서버창에 표시되는 메시지*:*:{
  if (
$nick == NickServ && <서버 1iswm $network) {
    if (
$me == nick 1) .msg 봇에게 보내는 메세지
    
if ($me == nick 2) { 
      .
#chan 1
      
.#chan 2
    
}
  }

'닉인증이 되면 서버창에 표시되는 메시지' 는 닉인증을 했을 때 닉서브가 알려주는 내용입니다.

-NickServ- Password accepted - you are now recognized.

이런식으로 보여주는데요, 저 문장에서 일정부분을 따 주면 됩니다.

on *:NOTICE:*Password accepted*:*:

--------

if ($nick == NickServ && <서버 1> iswm $network)
여기는 위에 on CONNECT에서 설정한 것과 동일하게 해주시면 됩니다.

네트웍 이름을 아실경우 [<서버 1> iswm $network] 를 [$network == 네트워크 이름]으로 변경

다음줄은 봇에게 초대를 받는 메세지입니다. (트래커 irc 페이지 확인)
그 다음은 초대 없이 채널에 입장하는 부분입니다.


스크립트에 무지해서 나름대로 머리를 굴려보았습니다.
글 작성에 직 간접적인 도움을 주신분들께 감사드립니다.



내가 오늘을 열심히 사는 이유는 나에게 인생은 한번뿐이기 때문이다.

Darkchoco Skype™을 통해 메시지 보내기
인용과 함께 댓글
Darkchoco님에 의해 최근 수정됨 09/11/17 12:46 PM.
감사 표시 유저