2015-11-01 74 views
-1

因此,我一直在想像一個多小時,但沒有得出這個腳本的結論。我基本上試圖通過mIRC套接字爲3個IRC服務器添加「狀態檢查」。我面臨的問題是執行跳轉到下一步而沒有完成套接字連接,因此它返回一個假值,即離線。在mIRC中進一步執行之前添加一個暫停

我試圖轉到命令之前,使用計時器,但返回「沒有找到」

代碼:

on *:text:!stats:#: { 
    sockopen IRCAurora aurora.irchound.tk 6667 
    sockopen IRCKepler kepler.irchound.tk 6667 
    sockopen IRCJupiter jupiter.irchound.tk 6667 

    sockpause IRCAurora 
    sockpause IRCKepler 
    sockpause IRCJupiter 

    :true 
    msg $chan ----STATUS---- 
    goto check1 
    halt 

    :check1 
    if ($sock(IRCAurora,pause) == 1) { 
    msg $chan 1Aurora - 9Online 
    } 
    else { 
    msg $chan 1Aurora - 4Offline 
    } 
    goto check2 
    halt 

    :check2 
    if ($sock(IRCJupiter,pause) == 1) { 
    msg $chan 1Jupiter - 9Online 
    } 

    else { 
    msg $chan 1Jupiter - 4Offline 
    } 

    goto check3 
    halt 

    :check3 
    if ($sock(IRCKepler,pause) == 1) { 
    msg $chan 1Kepler - 9Online 
    } 
    else { 
    msg $chan 1Kepler - 4Offline 
    } 
    halt 
} 

我知道有一個解決方法就是建立一個PHP的機器人,但我想它的mIRC。

任何幫助,將不勝感激。提前致謝。

回答

0

沒關係..我已經找到了問題的解決方案。簡單地需要添加一個別名函數(如果套接字暫停,如果爲真/假則用定時器來回復)。

解決代碼:

on *:text,loaddservers:#: { 
    if (%admin. [ $+ [ $nick ] ] = 1) { 
    msg $chan All default servers are now being loaded. 
    set %server1 aurora.irchound.tk 
    set %server2 jupiter.irchound.tk 
    set %server3 kepler.irchound.tk 
    } 
    else { 
    msg $chan Access denied. 
    } 
} 

;Create socket connection to servers on trigure. 

on *:text:,status*:#: { 
    if ($2 = all) { 
    sockopen IRCAurora %server1 6667 
    sockopen IRCKepler %server2 6667 
    sockopen IRCJupiter %server3 6667 
    set %chan $chan 
    msg $chan Connecting to servers... 
    msg $chan >>>Status of all servers<<< 
    timer2 1 5 checkall 
    } 
    if ($2 = aurora) { 
    sockopen IRCAurora %server1 6667 
    set %chan $chan 
    msg $chan Connecting to server $2 $+ ... 
    timerAURORA 1 5 checkaurora 
    } 
    if ($2 = kepler) { 
    sockopen IRCKepler %server2 6667 
    set %chan $chan 
    msg $chan Connecting to server $2 $+ ... 
    timerKEPLER 1 5 checkkepler 
    } 
    if ($2 = jupiter) { 
    sockopen IRCJupiter %server3 6667 
    set %chan $chan 
    msg $chan Connecting to server $2 $+ ... 
    timerJUPITER 1 5 checkjupiter 
    } 
} 

;Aliases for each server status response. 

alias checkaurora { 
    if ($sock(IRCAurora,pause) == 1) { 
    msg %chan 1Aurora - 9Online 
    } 
    else { 
    msg %chan 1Aurora - 4Offline 
    } 
    halt 
} 

alias checkjupiter { 
    if ($sock(IRCJupiter,pause) == 1) { 
    msg %chan 1Jupiter - 9Online 
    } 
    else { 
    msg %chan 1Jupiter - 4Offline 
    } 
    halt 
} 

alias checkkepler { 
    if ($sock(IRCKepler,pause) == 1) { 
    msg %chan 1Kepler - 9Online 
    } 
    else { 
    msg %chan 1Kepler- 4Offline 
    } 
    halt 
} 

alias checkall { 
    if ($sock(IRCAurora,pause) == 1) { 
    msg %chan 1Aurora - 9Online 
    } 
    else { 
    msg %chan 1Aurora - 4Offline 
    } 
    goto check2 
    halt 

    :check2 
    if ($sock(IRCJupiter,pause) == 1) { 
    msg %chan 1Jupiter - 9Online 
    } 

    else { 
    msg %chan 1Jupiter - 4Offline 
    } 

    goto check3 
    halt 

    :check3 
    if ($sock(IRCKepler,pause) == 1) { 
    msg %chan 1Kepler - 9Online 
    } 
    else { 
    msg %chan 1Kepler - 4Offline 
    } 
} 

注:我已經排除了,所以你可能會發現一些不確定的變量,這不是涉及到的問題..腳本的某一部分。