Line 1: | Line 1: | ||
− | {{mirc guide}}{{title|mIRC Scripting Language}} | + | {{mirc guide}}{{title|mIRC Scripting Language}}[[File:mirc logo.png|left|64px]] |
− | The '''mIRC Scripting Language''', abbreviated as '''mSL''', is an [[event-driven]], [[procedural programming paradigm|procedural]] [[scripting language]] embedded inside the | + | The '''mIRC Scripting Language''', abbreviated as '''mSL''', is an [[event-driven]], [[procedural programming paradigm|procedural]] [[scripting language]] embedded inside the mIRC client. mSL's main feature is its seamless ability to interact with other [[IRC]] clients on IRC in order to perform a variety of tasks. |
− | Although widely used to make bots to automatically manage a channel, mIRC can also be modified, via the scripting language mSL, to include a host of new features, such as: basic games, small functions and macros, the ability to play music, and even operate small applications. | + | Although widely used to make bots to automatically manage a channel, mIRC can also be modified, via the scripting language mSL, to include a host of new features, such as: basic games, small functions and macros, the ability to play music, and even operate small applications. Scripts are stored in plain text files (.mrc) or as INI files. With the aid of {{mirc|com|COM scripts}} and {{mirc|dll|DLLs}}, mSL can be further extended to automate just about everything in the Windows environment. |
+ | |||
+ | == Code == | ||
+ | {{main|mirc/introduction|l1=Introduction to mSL}} | ||
+ | mSL code can be executed right from text box or in the case of more complex scripts as {{mirc|aliases}} or as {{mirc|on events}}. {{mirc|Aliases}} are mSL's version of [[functions]] while {{mirc|on events}} are triggered events that automatically activate when the appropriate event occurs. | ||
+ | |||
+ | === Language Constructs === | ||
+ | {{main|mirc/conditional_statements|mirc/while_loops|mirc/operators|l1=mSL If Statements|l2=mSL Looping Statements|l3=mSL Operators}} | ||
+ | mSL inherits most of its syntax from the [[C Programming Language]] with respect to both the curly syntax as well as its general behavior. For example, like in C, constructs such as {{mirc|if statements}} evaluate to {{mirc|$true}} for anything other than <code>0</code> and <code>$false</code>. For example <code>if (1) { .. }</code>. | ||
+ | |||
+ | A big departure from most other languages is the fact that mSL makes no distinction between code and plain text. Code is often embedded among plain text and is evaluated as such. For example <code>One $calc(1+1) Three</code> will correctly treat the <code>One</code> as plain text, {{mirc|evaluate}} the {{mirc|$calc}} {{mirc|identifier}} into <code>2</code> and finally treat <code>Three</code> as plain text. The result will be <code>One 2 Three</code>. | ||
== History == | == History == |
Revision as of 17:59, 15 June 2017
The mIRC Scripting Language, abbreviated as mSL, is an event-driven, procedural scripting language embedded inside the mIRC client. mSL's main feature is its seamless ability to interact with other IRC clients on IRC in order to perform a variety of tasks.
Although widely used to make bots to automatically manage a channel, mIRC can also be modified, via the scripting language mSL, to include a host of new features, such as: basic games, small functions and macros, the ability to play music, and even operate small applications. Scripts are stored in plain text files (.mrc) or as INI files. With the aid of COM scripts and DLLs, mSL can be further extended to automate just about everything in the Windows environment.
Code
- Main article: Introduction to mSL
mSL code can be executed right from text box or in the case of more complex scripts as aliases or as on events. Aliases are mSL's version of functions while on events are triggered events that automatically activate when the appropriate event occurs.
Language Constructs
- Main articles: mSL If Statements, mSL Looping Statements, and mSL Operators
mSL inherits most of its syntax from the C Programming Language with respect to both the curly syntax as well as its general behavior. For example, like in C, constructs such as if statements evaluate to $true for anything other than 0
and $false
. For example if (1) { .. }
.
A big departure from most other languages is the fact that mSL makes no distinction between code and plain text. Code is often embedded among plain text and is evaluated as such. For example One $calc(1+1) Three
will correctly treat the One
as plain text, evaluate the $calc identifier into 2
and finally treat Three
as plain text. The result will be One 2 Three
.
History
Khaled Mardam-Bey first began development on mIRC in 1994. The original goal for mIRC's creation was to solve the main issues that haunted some of the earlier IRC clients, which were plagued with steep learning curves, limited feature sets, and other notable issues[1]. The first public version of mIRC was released on the 28th of February, 1995[1]. The mIRC scripting language grew as commands were added on an ad-hoc basis. Only commands that were directly related to IRC were originally added; however, this slowly changed as the need for more customization grew.
Throughout the 3.0 - 4.0 versions, mSL gained most of the syntax we are familiar with today. Because of the ambiguous nature of the language, such as no real tokens, the use of sigils was introduced in order to distinguish meaningful tokens from plain text tokens. The '$' sigil was introduced to indicate that the token is an identifier. The language began gaining traction when variables were added in version 4.0[2]. Variables are preceded by the '%' sigil. Later on, in version 4.1, the concatenation operator was added, which looks like '$+'.
One of the largest updates to the mIRC scripting language took place in version 4.5, which brought evaluation brackets, aliases in remotes, goto statements, string manipulation, identifiers, if statements and operators, as well as variable assignment arithmetic.
mIRC 4.6 to 5.0 brought a stream of new identifiers and commands to perform more complex operations. Version 5.0 also introduced new custom windows, which gave scripters the ability to create customized mIRC windows.
mIRC 5.3 saw the introduction of sockets and picture windows, which were introduced in order to allow scripts the ability to have graphical user interfaces. In version 5.5, dialogs were added which allowed native-looking components to be added onto a window, such as buttons, check boxes and list boxes.
mIRC 7.0 brought about Unicode support into the language.