2015-11-01 75 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 
    } 
} 

注:我已经排除了,所以你可能会发现一些不确定的变量,这不是涉及到的问题..脚本的某一部分。