mIRC Homepage
Target change too fast. Please wait (number) seconds. What does that mean and is there a way to remove that problem??

-Hao Li-
Just wait the number of seconds it says you to wait and try again.
Is there a better way to get rid of this problem other than waiting. Also can someone tell me why this happens and what that is for.

-Hao Li-
Only time I've seen this is when a nick change has been made your message can't be processed because of lag or desync.

You are better off going to the #help or #mirc channel on the network you are experiencing the problem.
not that i'm aware of..well, unless its something you have set in a script/timer, in which case, edit it.. just means dont do whatever it was you did so fast.
This occurs on IRC-Hispano network when you send a msg to many different nicks in a small interval of time. I suppose this is set to avoid mass-messaging.
I think I've seen that kind of msgs sended by Services when you send too mutch msgs or when you things too fast.
This message is provided by anti-spam functionality in the IRC server. In essence it prevents you from sending private messages (text, action, notice, ctcp etc.) to too many different users in a defined period. (I have identified a bug in how this is calculated, so it doesn't work quite as advertised, but the principle is still working.)

Servers that implement this limiting functionality, also usually implement an alternative that is available to operators i.e. CPRIVMSG and CNOTICE. In essence providing that you and the recipient of the message are in a common channel where you are an op, then you can use CPRIVMSG and CNOTICE to send messages without tripping the anti-spam functionality.

Here is some example code that implements this functionality in a friendly way:
Code:
; RPL_iSupport 005 CNOTICE / CPRIVMSG to avoid 439 Target change too frequently message
raw 005:*: { iSupport.Raw005 $1- }
on *:disconnect: { iSupport.Disconnect }

alias -l iSupport.Raw005 {
  ; Remove trailing ":are supported by this server"
  var %new $replace($2-, are supported by this server,$null)
  var %is $iSupport.Name
  var %old [ [ %is ] ]
  var %n = $numtok(%new,$asc($space)), %i 1
  while (%i <= %n) {
    var %n = $gettok(%new,%i,$asc($space)), %d $left(%n,1)
    if (%d == -) %n = $right(%n,-1)
    var %m %n $+ *
    var %j $wildtok(%old,%m,0,$asc($space))
    while (%j) {
      var %o $wildtok(%old,%m,%j,$asc($space))
      if ((%n == %o) || ($+(%n,=*) iswm %o)) %old = $remtok(%old,%o,0,$asc($space))
      dec %j
    }
    if (%d != -) %old = %old $iSupport.Decode(%n)
    inc %i
  }
  set -e [ [ %is ] ] $sorttok(%old,$asc($space),a)
}

alias -l iSupport.Decode {
  return $regsubex(iSupport.Decode,$1,/(\\x[0-9A-Fa-f]{2})/Fg,$chr($base($right(\t,2),16,10)))
}

alias -l iSupport.Disconnect {
  unset [ $iSupport.Name ]
}

alias -l iSupport.Name { return $+(%,ISUPPORT.,$network) }

alias -l iSupport.Supports {
  var %p [ [ $iSupport.Name ] ]
  var %m $1 $+ *
  var %i $wildtok(%p,%m,0,$asc($space))
  while (%i) {
    var %q $wildtok(%p,%m,%i,$asc($space))
    if ($1 == %q) return $true
    if ($+($1,=*) iswm %q) return $deltok(%q,1,$asc(=))
    dec %i
  }
  return
}

; The following provide iSupport equivalents for /msg, /describe, /notice, /ctcp and /ctcpreply
; So that if you are an op you can send frequent messages to other users withourt triggering 
alias -l msg {
  var %c $iSupport.ComChanOp($1)
  if (($iSupport.Supports(CPRIVMSG)) && (%c) && ($left($1,1) !isin $chantypes)) .raw CPRIVMSG $1 %c : $+ $2-
  else .msg $1-
  if ($show) echo -ac Normal -> $+(*,$1,*) $2-
}

alias -l describe {
  .ctcp $1 Action $2-
  if ($show) echo -ac Action -> $+(*,$1,*) $2-
}

alias -l notice {
  var %c $iSupport.ComChanOp($1)
  if (($iSupport.Supports(CNOTICE)) && (%c) && ($left($1,1) !isin $chantypes)) .raw CNOTICE $1 %c : $+ $2-
  else .notice $1-
  if ($show) echo -ac Normal -> $+(-,$1,-) $2-
}

alias -l ctcp {
  var %c $iSupport.ComChanOp($1)
  var %msg $upper($2) $3-
  if (($iSupport.Supports(CPRIVMSG)) && (%c) && ($left($1,1) !isin $chantypes)) .raw CPRIVMSG $1 %c : $+ $iSupport.ctcpEncode(%msg)
  else .ctcp $1-
  if ($show) echo -ac Ctcp -> $+([,$1,]) $upper($2) $3-
}

alias -l ctcpreply {
  var %c $iSupport.ComChanOp($1)
  if (($iSupport.Supports(CNOTICE)) && (%c) && ($left($1,1) !isin $chantypes)) .raw CNOTICE $1 %c : $+ $iSupport.ctcpEncode($2-)
  else .ctcpreply $1-
  if ($show) echo -ac Ctcp -> $+([,$1,]) $2-
}

alias -l iSupport.ctcpEncode {
  var %s $replacex($1-,$chr(16),$+($chr(16),$chr(16)),$chr(0),$+($chr(16),$chr(48)),$chr(10),$+($chr(16),$chr(110)),$chr(13),$+($chr(16),$chr(114)))
  return $+($chr(1),%s,$chr(1))
}

alias -l iSupport.ComChanOp {
  if ($left($1,1) isin $chantypes) return $false
  var %i $comchan($1,0)
  while (%i) {
    if ($comchan($1,%i).op) return $comchan($1,%i)
    dec %i
  }
  return $false
}
LOOOOOOOOOL!

After 16 years you actually coded out?

laugh
No - I coded it earlier this year in a script I now maintain, but today I found this thread and so added the code.

You can't blame me for the fact that no one else coded it in the previous 16 years. cool
WOW! You managed to necro a thread with both ParaBrat AND Karen. That's something special! laugh
© mIRC Discussion Forums