From WikiChip
Difference between revisions of "mirc/identifiers/$?"
< mirc‎ | identifiers

(Added 'Advanced' examples.)
(Usage)
 
(27 intermediate revisions by 5 users not shown)
Line 1: Line 1:
[[Category:mIRC identifiers]]
+
{{mirc title|$? Identifier}}{{Deprecated feature|new={{mIRC|$input}}}}
{{Deprecated feature|new=[[$input identifier - mIRC|$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.
+
The ''$?'' identifier is used to request immediate user-input.
  
  
Line 9: Line 8:
 
$?="[Input Request Message]"
 
$?="[Input Request Message]"
 
</source>
 
</source>
: ''Displays an input box to get user-input. The "Input Request Message" is optional; if not specified, it is replaced by "Enter reply:"''
+
: ''Displays an input box to get user-input. The "Input Request Message" is optional; if not specified, it default to "Enter reply:"''
  
 
+
== Usage ==
==Properties==
+
There are four ways you can use this identifier:
There are three ways you can modify the intent of the requested data:
 
  
 
* '''$?="Give Me Input"'''
 
* '''$?="Give Me Input"'''
 
:: ''Displays an input request with the words 'Give Me Input' above the input box.''
 
:: ''Displays an input request with the words 'Give Me Input' above the input box.''
 
* '''$?*="Give Me Password"'''
 
* '''$?*="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.''
+
:: ''Displays a password input request: the input is treated as a password field. The input is shown as •••''
 
* '''$?!="Give Me Input"'''
 
* '''$?!="Give Me Input"'''
 
:: ''Displays an input request with a Yes & No button, with the words 'Give Me Input' above them.''
 
:: ''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'', <span style="color: #B30000;">even if you don't click '''No'''</span> and exit out other ways.
 
::: - If you click '''Yes''', the input returns ''$true'', otherwise it returns ''$false'', <span style="color: #B30000;">even if you don't click '''No'''</span> and exit out other ways.
 +
* '''$?N="Give me input!'''
 +
:: ''Where N is a positive number > 1 representing the $N identifier, If the value of $N is $null, you are asked to provide it, otherwise $N is returned.
 +
* '''$?#="Give me input!'''
 +
:: ''where # represent $chan, If the value of $chan is $null, you are asked to provide it, otherwise $chan is returned
 +
 +
You can use {{mIRC|$crlf}} to get multiple lines.
 +
 +
'''Note''': This fills the {{mIRC|$!}} identifier with the value entered in the editbox if you press ok or yes buttons
  
 +
== Notes & quirks ==
 +
 +
The $? identifier has some parsing issues, it has been replaced by {{mIRC|$input}} to overcome these issues:
 +
 +
 +
* $? can be used without the '=' sign as long as you either don't pass as an input request message (just $?), or that this paramater contain a balanced number of quotes:.
 +
 +
** $? $?"test" $?"test words" etc are all valid usages.
 +
 +
** In fact, mIRC start looking for a valid parameter when you start the first quote, $?ignored"this is the message" will actually ignore the part before the first quote
 +
 +
* //echo -a $?"message with multiple words" $?!"test"
 +
This line cause parsing issue, here $?!"test" is evaluated before, mIRC seems to get lost as to which quote is closing which quote, and end up evaluating more than it should
  
 
==Examples==
 
==Examples==
Line 48: Line 67:
 
</source>
 
</source>
 
: ''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'''.''
 
: ''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'''.''
 
===Advanced===
 
 
<source lang="mIRC">
 
<source lang="mIRC">
 
alias testme {
 
alias testme {
   var %start = $?="Please input a number to start the count from:", %end = $?="Please input a number to stop the count at:"
+
   tokenize 32 A B
   if ((%start isnum) && (%end isnum) && (%start < %end)) {
+
   echo -a $?3
    while (%start <= %end) {
 
      echo -a %start
 
      inc %start
 
    }
 
  }
 
  else { echo -a Error: Invalid data or start value larger than end value! }
 
 
}
 
}
 
</source>
 
</source>
# This will create two variables, '''%start''' & '''%end''', which take in user input.
+
: ''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. If we use $?2 instead, B will be used without asking anything.''
# The script verifies that the numbers are actual numbers, and that the start value is less than the end value.
+
 
# The script then begins a [[while command - mIRC|while loop]] that only repeats if %start is less than or equal to %end.
+
 
# The loop echoes the contents of '''%start''' to the active screen, and then increments (increases) the value of %start by 1.
+
{{mIRC identifier list}}
# If the '''if''' comparison is not fully true, the loop is avoided altogether and an error is echoed to the active window instead.
+
 
 +
[[Category:mIRC identifiers|$?]]

Latest revision as of 15:23, 4 October 2017

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

The $? identifier is used to request immediate user-input.


Synopsis[edit]

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

Usage[edit]

There are four ways you can use this identifier:

  • $?="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: the input is treated as a password field. The input is shown as •••
  • $?!="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="Give me input!
Where N is a positive number > 1 representing the $N identifier, If the value of $N is $null, you are asked to provide it, otherwise $N is returned.
  • $?#="Give me input!
where # represent $chan, If the value of $chan is $null, you are asked to provide it, otherwise $chan is returned

You can use $crlf to get multiple lines.

Note: This fills the $! identifier with the value entered in the editbox if you press ok or yes buttons

Notes & quirks[edit]

The $? identifier has some parsing issues, it has been replaced by $input to overcome these issues:


  • $? can be used without the '=' sign as long as you either don't pass as an input request message (just $?), or that this paramater contain a balanced number of quotes:.
    • $? $?"test" $?"test words" etc are all valid usages.
    • In fact, mIRC start looking for a valid parameter when you start the first quote, $?ignored"this is the message" will actually ignore the part before the first quote
  • //echo -a $?"message with multiple words" $?!"test"

This line cause parsing issue, here $?!"test" is evaluated before, mIRC seems to get lost as to which quote is closing which quote, and end up evaluating more than it should

Examples[edit]

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

Basic[edit]

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. If we use $?2 instead, B will be used without asking anything.


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