Socket Variable for mIRC

By FordLawnmower on Nov 29, 2014

This is a snippet that I use in one form or another, in every socket script I write.

By using sockmark, this snippet creates a virtual variables that expire when the last socket event ends.

Syntax:

  • /svar socketname varname text to assign
  • ----- This will assign 'text to assign' to the svar varname.
  • ----- Note that you can usually use $sockname for the socketname.
  • $svar(socketname,varname)
  • ----- This will return the value of varname.
  • ----- Example: echo -a $svar($sockname,varname)
  • ----- Would echo: 'text to assign'
alias -l Svar {
  var %sockname $1, %item $+($2,_,$1)
  if ($isid) {
    if ($regex(svar,$sock(%sockname).mark,/\x01 $+ %item $+ \x01([^\x01]*)/i)) return $regml(svar,1)
  }
  elseif ($3 == $null) {
    sockmark %sockname $regsubex(svar,$sock(%sockname).mark,/(\x01 $+ %item $+ \x01[^\x01]*)/i,$null)
  }
  else  {
    var %value $3-
    if (!$sock(%sockname).mark) { 
      sockmark %sockname $+($chr(1),%item,$chr(1),%value) 
    }
    elseif (!$regex(svar,$sock(%sockname).mark,/\x01 $+ %item $+ \x01/i)) { 
      sockmark %sockname $+($sock(%sockname).mark,$chr(1),%item,$chr(1),%value) 
    }
    elseif ($3) { 
      sockmark %sockname $regsubex(svar,$sock(%sockname).mark,/(\x01 $+ %item $+ \x01[^\x01]*)/i,$null)
      sockmark %sockname $+($sock(%sockname).mark,$chr(1),%item,$chr(1),%value)
      ;sockmark %sockname $regsubex(svar,$sock(%sockname).mark,/(\x01 $+ %item $+ \x01[^\x01]*)(?:\x01|$)/i,$+($chr(1),%item,$chr(1),%value)) 
    }
  }
}

Comments

Sign in to comment.
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.