From WikiChip
mirc/identifiers/$?
< mirc‎ | identifiers
Revision as of 02:24, 13 August 2014 by PatrolBot (talk | contribs) (PatrolBot moved page $? identifier - mIRC to mirc/identifiers/$?: per new naming convention)

Note: This feature has essentially been replaced by $input() identifier.

The $? identifier is used to request immediate user-input. The values that you gather from this input can be used in a plethora of different ways, from designing games to requesting a user to kick on a channel.

Synopsis

$?="[Input Request Message]"
Displays an input box to get user-input. The "Input Request Message" is optional; if not specified, it is replaced by "Enter reply:"

Properties

There are three ways you can modify the intent of the requested data:

  • $?="Give Me Input"
Displays an input request with the words 'Give Me Input' above the input box.
  • $?*="Give Me Password"
Displays a password input request, in that the information the user inputs will be treated as a password field, therefore the characters will be replaced with password characters. The information is still displayed normally once the input is received.
  • $?!="Give Me Input"
Displays an input request with a Yes & No button, with the words 'Give Me Input' above them.
- If you click Yes, the input returns $true, otherwise it returns $false, even if you don't click No and exit out other ways.
  • $?N
In the case of using tokens, via /tokenize, this will allow the script to request a specific token value from the user, via the Nth value.

Examples

Below are three examples that display exactly how to use each individual property:

Basic

alias testme {
  echo -a $?="Type something for me"
}
Echoes whatever the user types into the input field to the active window.
alias testme {
  echo -a $?*="Enter Password:"
}
Does the same as the first example, except while the user is typing, the characters are replaced by password characters. The typed value, however, is visibly legible when it is echoed to the active window.
alias testme {
  echo -a $?!="Do you like chocolate?"
}
Pops up an input request asking if the user likes chocolate. If they click Yes, it echoes $true to the active window; otherwise, it echoes $false.
alias testme {
  tokenize 32 A B
  echo -a $?3
}
We tokenize the A B using token 32, which is the character for spaces. The script then asks the user for a 3rd token value, via $?3. Once the user enters that value, it is then echoed to the active window.

Advanced

This area contains one advanced example that is still pretty basic, but details how this sort of input can be extracted for a more demanding outcome.

alias testme {
  var %start = $?="Please input a number to start the count from:", %end = $?="Please input a number to stop the count at:"
  if ((%start isnum) && (%end isnum) && (%start < %end)) {
    while (%start <= %end) {
      echo -a %start
      inc %start
    }
  }
  else { echo -a Error: Invalid data or start value larger than end value! }
}
  1. This will create two variables, %start & %end, which take in user input.
  2. The script verifies that the numbers are actual numbers, and that the start value is less than the end value.
  3. The script then begins a while loop that only repeats if %start is less than or equal to %end.
  4. The loop echoes the contents of %start to the active screen, and then increments (increases) the value of %start by 1.
  5. If the if comparison is not fully true, the loop is avoided altogether and an error is echoed to the active window instead.
v · d · e mIRC identifier list

$ $$, $, $0, $1-, $!, $&, $*, $+, $++, $?

A $abook, $abs, $acos, $active, $activecid, $activewid, $adate, $address, $addtok, $addtokcs, $agent, $agentname, $agentstat, $agentver, $alias, $and, $anick, $ansi2mirc, $aop, $appactive, $appstate, $asc, $asctime, $asin, $atan, $atan2, $auto, $avoice, $away, $awaymsg, $awaytime

B $banlist, $banmask, $base, $beta, $bfind, $bindip, $bitoff, $biton, $bits, $bnick, $bvar, $bytes

C $calc, $caller, $cancel, $cb, $cd, $ceil, $chan, $chanmodes, $channel, $chantypes, $chat, $chr, $cid, $clevel, $click, $cmdbox, $cmdline, $cnick, $color, $colour, $com, $comcall, $comchan, $comchar, $comerr, $compact, $compress, $comval, $cos, $cosh, $count, $countcs, $cr, $crc, $creq, $crlf, $ctime, $ctimer, $ctrlenter

D $date, $day, $daylight, $dbuh, $dbuw, $dccignore, $dccport, $dde, $ddename, $debug, $decode, $decompress, $deltok, $devent, $dialog, $did, $didreg, $didtok, $didwm, $dir, $disk, $dlevel, $dll, $dllcall, $dname, $dns, $donotdisturb, $dqwindow, $duration

E $ebeeps, $editbox, $email, $emailaddr, $encode, $envvar, $error, $eval, $evalnext, $event, $eventid, $eventparms, $exists, $exiting

F $false, $feof, $ferr, $fgetc, $file, $filename, $filtered, $find, $finddir, $finddirn, $findfile, $findfilen, $findtok, $findtokcs, $fline, $flinen, $floor, $font, $fopen, $fread, $fromeditbox, $fserv, $fserve, $fulladdress, $fulldate, $fullname, $fullscreen

G $get, $getdir, $getdot, $gettok, $gmt, $group

H $halted, $hash, $height, $hfile, $hfind, $hget, $highlight, $hmac $hmatch, $hnick, $host, $hotline, $hotlinepos, $hotlink, $hotp, $hregex, $hypot

I $iaddress, $ial, $ialchan, $ibl, $idle, $iel, $ifmatch, $ifmatch2, $ignore, $iif, $iil, $inellipse, $ini, $initopic, $inmidi, $inmode, $inmp3, $inpaste, $inpoly, $input, $inrect, $inroundrect, $insong, $insongpause, $instok, $int, $intersect, $inwave, $inwho, $ip, $iptype, $iql, $isadmin, $isalias, $isbit, $isdde, $isdir, $isfile, $isid, $islower, $istok, $istokcs, $isupper, $isutf

K $keychar, $keyrpt, $keyval, $knick

L $lactive, $lactivecid, $lactivewid, $left, $leftwin, $leftwincid, $leftwinwid, $len, $level, $lf, $line, $lines, $link, $lock, $locked, $lof, $log, $log10, $logdir, $logstamp, $logstampfmt, $longfn, $longip, $lower, $ltimer

M $maddress, $mask, $matchkey, $matchtok, $matchtokcs, $maxlenl, $maxlenm, $maxlens, $md5, $me, $menu, $menubar, $menucontext, $menutype, $mid, $mididir, $mircdir, $mircexe, $mircini, $mkfn, $mklogfn, $mknickfn, $mnick, $mode, $modefirst, $modelast, $modespl, $mouse, $mousecx, $mousecy, $mousedx, $mousedy, $mousekey, $mouselb, $mousex, $mousey, $mousewin, $mp3, $mp3dir, $msfile, $msgstamp, $msgtags

N $N, $naddress, $network, $newnick, $nhnick, $nick, $nickmode, $no, $nofile, $nopath, $nopnick, $noqt, $not, $notags, $notify, $null, $numeric, $numtok, $nvnick

O $ok, $online, $onlineserver, $onlinetotal $onpoly, $opnick, $or, $ord, $os

P $parmN, $parms, $parseline, $parsetype, $parseutf, $passivedcc, $pi, $pic, $play, $pnick, $portable, $portfree, $pos, $poscs, $prefix, $prop, $protect, $puttok

Q $qt, $query

R $r, $raddress, $rand, $rands, $rawbytes, $rawmsg, $read, $readini, $readn, $regbr, $regerrstr, $regex, $regml, $regmlex, $regsub, $regsubex, $remote, $remove, $removecs, $remtok, $remtokcs, $replace, $replacecs, $replacex, $replacexcs, $reptok, $reptokcs, $result, $rgb, $right, $rnick, $round

S $samepath, $scid, $scon, $script, $scriptdir, $scriptline, $sdir, $send, $server, $serverip, $servertarget, $sfile, $sha1, $sha256, $sha384, $sha512, $shortfn, $show, $signal, $sin, $sinh, $site, $sline, $snick, $snicks, $snotify, $sock, $sockbr, $sockerr, $sockname, $sorttok, $sorttokcs, $sound, $speak, $sqrt, $sreq, $ssl, $sslcertsha1, $sslcertsha256, $sslcertvalid, $ssldll, $ssllibdll, $sslready, $sslversion, $starting, $status, $str, $strip, $stripped, $style, $submenu, $switchbar, $sysdir

T $tan, $tanh, $target, $tempfn, $ticks, $time, $timeout, $timer, $timestamp, $timestampfmt, $timezone, $tip, $tips, $titlebar, $token, $toolbar, $topic, $totp, $treebar, $true, $trust

U $ulevel, $ulist, $unsafe, $upper, $uptime, $url, $usermode, $utfdecode, $utfencode

V $v1, $v2, $var, $vc, $vcmd, $vcmdstat, $vcmdver, $version, $vnick, $vol

W $wavedir, $wid, $width, $wildsite, $wildtok, $wildtokcs, $window, $wrap

X $xor

Y $yes

Z $zip

= =$nick