在 mIRC 中进一步执行之前添加暂停

Add a pause before further execution in mIRC

所以我已经考虑了一个多小时,但没有对这个脚本得出任何结论。我基本上是在尝试通过 mIRC 套接字为 3 个 IRC 服务器添加 "status check"。我面临的问题是执行跳转到下一步而没有完成套接字连接,因此它 returns 是一个假值,即离线。

我尝试在 goto 命令之前使用计时器,但是 returns“未找到”

代码:

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 上。

如有任何帮助,我们将不胜感激。提前致谢。

没关系..我已经找到了问题的解决方案。简单需要添加一个带有计时器的别名函数(如果套接字暂停,则回复 true / false)。

解决代码:

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 ( = 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 ( = aurora) {
    sockopen IRCAurora %server1 6667
    set %chan $chan
    msg $chan Connecting to server  $+ ...
    timerAURORA 1 5 checkaurora
  }
  if ( = kepler) {
    sockopen IRCKepler %server2 6667
    set %chan $chan
    msg $chan Connecting to server  $+ ...
    timerKEPLER 1 5 checkkepler
  }
  if ( = jupiter) {
    sockopen IRCJupiter %server3 6667
    set %chan $chan
    msg $chan Connecting to server  $+ ...
    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 
  }
}

注意:我排除了脚本中与问题无关的部分内容。因此您可能会发现一些未定义的变量。