서든어택 전적 검색 스크립트

적용법
1. 챗창에 //echo -a $mircdir 라고 치고 엔터를 치면, 현재 스크립트를 어디다 저장해야 하는지 경로가 나온다.
2. 아래의 내용을 복사해서 메모장에 넣고 sudden.mrc로 저장한 후 해당 경로로 이동하여 방금 만든 파일을 넣는다.
3. 다시 챗창에 와서 /load -rs sudden.mrc 라고 친 후 앤터.
4. Usage : !서든 아이디명 (ex : !서든 xeriars)

출력결과의 예 :

[12:46:21] <@Xeriars> !서든 Xeriars
[12:46:21] <@Zod> 아이디 : Xeriars / 순위 : 8,941,712위 (▼ 1884) / 계급 : 상병 / 클랜 : 없음 / 경험치 : 22,469 / 게임포인트 : 279
[12:46:21] <@Zod> 킬데스 : 694 / 943(42%) / 전적 : 97전 45승 0무 52패 / 헤드샷 : 116회 / 승률 : 46% / 보유중인 주 무기 : SCOUT SR-69, SMG U101, M16

아래부터가 스크립트의 시작…

; ————————————————————
; | Made by Xeriars                                                               |
; | (변경해서 쓰는건 니맘대로지만 이 부분은 지우지 말아주세요.)  |
; ————————————————————

on *:text:*:#: {
if ($1 == !서든) {
if (!$2) { msg $chan Usage : !서든 아이디명 | halt }
unset %sda.*
set %sda.chan $chan
set %sda.id $2
set %sda.count 1
sockclose sattack
sockopen sattack suddenattack.netmarble.net 80
halt
}
}

on *:sockopen:sattack: {
sockwrite -nt $sockname GET /Ranking/Total/ninc_Search.asp?id=&pagegu=index&Condition=2&p_userid= $+ $urlencode(%sda.id) HTTP/1.1
sockwrite -nt $sockname User-Agent: Mozilla/4.0
sockwrite -nt $sockname Host: suddenattack.netmarble.net
sockwrite -nt $sockname Accept-Language: ko
sockwrite -nt $sockname Accept: */*
sockwrite -nt $sockname Connection: Keep-Alive
sockwrite -nt $sockname $crlf
}
on *:sockread:sattack: {
sockread %tmp
set %sda.word <td colspan=”5″ style=”color:#82A3A3″><a href=”javascript:GetSaInfo_new
set %sda.word2 <td width=”122″ style=”color:#82A3A3″>
set %sda.word3 <td width=”89″>
set %sda.word4 <td width=”184″>
set %sda.remove $eval(%2Franking%2FPopUp%2FSaGameInfo%2Easp%3FUserID=,0)
set %sda.error private_nosearch01.gif

if (%sda.word isin %tmp) { set %sda.userid $remove($gettok($replace(%tmp,$eval(%3d,0),=),2,39),%sda.remove) }
if (%sda.word2 isin %tmp) {
set %sda.rank $replace($remove(%tmp,<img src=http://c3.img.netmarble.kr/web/2005_cp/img/suddenattack_v2/common/bl/,$chr(9),%sda.word2,02.gif,01.gif,align=’absmiddle’><span class=’blue p11′>,</td>,</span>),down_arrow ,▼,up_arrow ,▲)
}
if (%sda.word3 isin %tmp) { set %sda.grade $remove($gettok(%tmp,3,62),</td) }
if (%sda.word4 isin %tmp) {
set %sda.guild $remove($gettok(%tmp,4,62),</a)
if (!%sda.guild) { set %sda.guild 없음 }
sockclose sda
sockopen sda suddenattack.netmarble.net 80
sockclose $sockname
}
if (%sda.error isin %tmp) {
msg %sda.chan 해당 플레이어의 정보를 찾을 수 없습니다. 아이디를 다시 한번 확인해주시기 바랍니다.
sockclose $sockname
unset %sda.*
}
}
on *:sockopen:sda: {
sockwrite -nt $sockname GET /ranking/PopUp/SaGameInfo.asp?UserID= $+ %sda.userid HTTP/1.1
sockwrite -nt $sockname User-Agent: Mozilla/4.0
sockwrite -nt $sockname Host: suddenattack.netmarble.net
sockwrite -nt $sockname Accept-Language: ko
sockwrite -nt $sockname Accept: */*
sockwrite -nt $sockname Connection: Keep-Alive
sockwrite -nt $sockname $crlf
}
on *:sockread:sda: {
sockread %tmp
set %sda.pword suddenattack_v2/ranking/pop_txt04.gif”></td>
set %sda.pword2 suddenattack_v2/ranking/pop_txt05.gif”></td>
set %sda.pword3 suddenattack_v2/ranking/pop_txt07.gif” style=”margin-left:1px;”></td>
set %sda.pword4 suddenattack_v2/ranking/pop_txt08.gif” style=”margin-left:1px;”></td>
set %sda.pword5 suddenattack_v2/ranking/pop_txt09.gif” width=”98″ height=”12″ style=”margin-left:1px;”></td>
set %sda.pword6 suddenattack_v2/ranking/pop_txt10.gif” width=”98″ height=”12″ style=”margin-left:1px;”></td>

if (%sda.count == 2) { set %sda.exp $remove(%tmp,<td>,</td>,$chr(9)) | set %sda.count 1 }
if (%sda.count == 3) { set %sda.point $remove(%tmp,<td>,</td>,$chr(9)) | set %sda.count 1 }
if (%sda.count == 4) { set %sda.killed $remove(%tmp,<td>,</td>,$chr(9),&nbsp;) | set %sda.count 1 }
if (%sda.count == 5) { set %sda.record $remove(%tmp,<td>,<strong>,</strong>,&nbsp;,<span style=”color:#CC3300″>,</span>,<span style=”color:#0066CC”>,</td>,$chr(9)) | set %sda.count 1 }
if (%sda.count == 6) { set %sda.headshot $remove(%tmp,<td>,</td>,$chr(9)) | set %sda.count 1 }
if (%sda.count == 7) { set %sda.ratio $remove(%tmp,<td>,</td>,$chr(9)) | set %sda.count 100 }

if (%sda.count == 100) {
sockclose sdat
sockopen sdat suddenattack.netmarble.net 80
sockclose $sockname
}

if (%sda.pword isin %tmp) { set %sda.count 2 }
if (%sda.pword2 isin %tmp) { set %sda.count 3 }
if (%sda.pword3 isin %tmp) { set %sda.count 4 }
if (%sda.pword4 isin %tmp) { set %sda.count 5 }
if (%sda.pword5 isin %tmp) { set %sda.count 6 }
if (%sda.pword6 isin %tmp) { set %sda.count 7 }
}
on *:sockopen:sdat: {
sockwrite -nt $sockname GET /Item/GInventory_Ranking.asp?UserID= $+ %sda.userid HTTP/1.1
sockwrite -nt $sockname User-Agent: Mozilla/4.0
sockwrite -nt $sockname Host: suddenattack.netmarble.net
sockwrite -nt $sockname Accept-Language: ko
sockwrite -nt $sockname Accept: */*
sockwrite -nt $sockname Connection: Keep-Alive
sockwrite -nt $sockname $crlf
}
on *:sockread:sdat: {
sockread %tmp
set %sda.aword <td align=”center” bgcolor=”0B1D1A” class=”w02″
set %sda.end <td width=”124″> &nbsp; </td>
if (%sda.aword isin %tmp) { set %sda.weapon %sda.weapon $+ $chr(44) $gettok($gettok(%tmp,2,62),1,60) }
if (%sda.end isin %tmp) {
timeoutoff
msg %sda.chan 아이디 : %sda.id / 순위 : %sda.rank / 계급 : %sda.grade / 클랜 : %sda.guild / 경험치 : %sda.exp / 게임포인트 : %sda.point
msg %sda.chan 킬데스 : %sda.killed / 전적 : %sda.record / 헤드샷 : %sda.headshot / 승률 : %sda.ratio / 보유중인 주 무기 : $mid(%sda.weapon,3)
sockclose $sockname
unset %sda.*
}
}

alias urlencode {
var %i = 0, %r
while (%i < $len($1-)) {
inc %i
%r = %r $+ $chr(37) $+ $base($asc($mid($1-,%i,1)),10,16,2)
}
return %r
}

댓글 남기기