b'\n_START_ARTICLE_\nMIRC script\n_START_SECTION_\nConceitos b\xc3\xa1sicos\n_START_PARAGRAPH_\nO mIRC Scripting \xc3\xa9 usado normalmente para criar scripts, add ons com fun\xc3\xa7\xc3\xb5es interessantes, bots, etc..._NEWLINE_Aten\xc3\xa7\xc3\xa3o que dependendo da vers\xc3\xa3o do mIRC nem todo o c\xc3\xb3digo \xc3\xa9 portatil, j\xc3\xa1 que alguns comandos s\xc3\xa3o adicionados, outros modificados... Para pormenores das diferen\xc3\xa7as entre as vers\xc3\xb5es do mIRC veja o versions.txt\n_START_SECTION_\nBot\n_START_PARAGRAPH_\nUm Bot (vem de robot) \xc3\xa9 um script que \xc3\xa9 normalmente usado para executar tarefas num canal de IRC, pode exibir mensagens aos utilizadores que entram no canal, e realizar uma s\xc3\xa9rie de rotinas automaticamente ao comando de um utilizado (com ou sem acesso).\n_START_SECTION_\nAddon\n_START_PARAGRAPH_\nAddon \xc3\xa9 um script que normalmente executa uma tarefa espec\xc3\xadfica como por exemplo mandar emails, fazer perquisas no google, fazer download utilizando o protocolo http, etc.\n_START_SECTION_\nScript\n_START_PARAGRAPH_\nNormalmente quando se fala em script est\xc3\xa1-se a falar de uma distribui\xc3\xa7\xc3\xa3o para o mIRC que engloba v\xc3\xa1rias utilidades que faz com que a sua utiliza\xc3\xa7\xc3\xa3o seja mais simples ou completa que o mIRC em si.\n_START_SECTION_\nEditor\n_START_PARAGRAPH_\nPara se aceder ao editor do mIRC onde s\xc3\xa3o escritos os c\xc3\xb3digos faz-se ALT+R._NEWLINE_O editor est\xc3\xa1 dividido em 5 sec\xc3\xa7\xc3\xb5es:\n_START_SECTION_\nAliases\n_START_PARAGRAPH_\nAs aliases s\xc3\xa3o o que noutras linguagens se chama de fun\xc3\xa7\xc3\xa3o (ou procedimento), isto permite criar mais comandos que n\xc3\xa3o existem no mIRC Scripting, estas aliases podem ser usadas por outras aliases, popups, remotes ou pela linha de comandos do mIRC._NEWLINE_Exemplo:_NEWLINE_dizdata echo -a Data: $date_NEWLINE_Nota: Isto deve ser insirido na sec\xc3\xa7\xc3\xa3o das Aliases_NEWLINE_Este c\xc3\xb3digo escreve a data na janela actual (da\xc3\xad o par\xc3\xa2metro -a do comando echo). Para esta alias ser executada basta escrever /dizdata_NEWLINE_Para aliases com mais de uma linha (\xc3\xa9 poss\xc3\xadvel executar mais de um comando numa linha com o separador | ) deve-se inclu\xc3\xad-las entre chavetas, as aliases podem devolver parametros e/ou receber parametros._NEWLINE_Exemplo:_NEWLINE_conta {_NEWLINE_var %contador = 1_NEWLINE_while (%contador <= $1) {_NEWLINE_inc %contador_NEWLINE_}_NEWLINE__NEWLINE_; Devolve o valor_NEWLINE_; J\xc3\xa1 agora, isto \xc3\xa9 um comentario =)_NEWLINE__NEWLINE_return Contei at\xc3\xa9 $1_NEWLINE_}_NEWLINE_Este c\xc3\xb3digo \xc3\xa9 um pouco mais complexo, basicamente ele conta at\xc3\xa9 o n\xc3\xbamero do 1\xc2\xba parametro ($1)_NEWLINE_exprimenta fazer /conta 10_NEWLINE_para veres o que devolve faz //echo -a $conta(10)_NEWLINE_esta \xc3\xa9 a maneira de fazer a alias devolver um valor, aten\xc3\xa7\xc3\xa3o que deve ser precedida por duas / para indicar que n\xc3\xa3o se pretende_NEWLINE_escrever $conta(10) mas sim o que essa alias devolver._NEWLINE_As aliases podem tamb\xc3\xa9m ser inseridas nos Remotes desde que precedidas por alias:_NEWLINE_alias teste echo -a s\xc3\xb3 pa ver se funciona...\n_START_SECTION_\nRemote\n_START_PARAGRAPH_\nO Remote \xc3\xa9 um dos mais importantes, j\xc3\xa1 que permite fazer tudo o que as sec\xc3\xa7\xc3\xb5es Aliases e Popups fazem e muito mais. Os remotes s\xc3\xa3o simplesmente Eventos, dos quais o cliente IRC usa para se comunicar a um servidor atrav\xc3\xa9s do protocolo RAW_NEWLINE_\xc3\x89 poss\xc3\xadvel programar em mIRC Scripting interceptando eventos dos quais, s\xc3\xa3o efetuados ap\xc3\xb3s um determinado comando for realizado._NEWLINE_Os Remotes permitem fazer dezenas de coisas (como dialogs) mas s\xc3\xb3 vamos abordar os eventos._NEWLINE_A sintaxe para a correta manipula\xc3\xa7\xc3\xa3o de eventos \xc3\xa9 a seguinte:_NEWLINE_on\xc2\xa0::,[ARGUMENTO2]..::{ Comandos... }_NEWLINE_- Explicando:_NEWLINE_N\xc3\xadvel: Utilizado apenas quando uma pessoa tenta utilizar um comando programado em seu script do qual requer n\xc3\xadvel de acesso. (* = Livre)_NEWLINE_Evento: Como o nome diz, \xc3\xa9 o evento do qual o script ir\xc3\xa1 disparar quando este for executado._NEWLINE_Argumento: Assim como uma fun\xc3\xa7\xc3\xa3o de qualquer [[[linguagem de programa\xc3\xa7\xc3\xa3o]]], esta requer algo para que naquele evento, o(s) comando(s) sejam realizados. OBS: N\xc3\xa3o s\xc3\xa3o todos os eventos que necessitam de argumentos._NEWLINE_O mIRC pode reagir a v\xc3\xa1rios eventos._NEWLINE_Exemplo:_NEWLINE_on *:start: echo -s Ol\xc3\xa1! Tas Bom $me $+\xc2\xa0!?_NEWLINE_Este evento (on start), \xc3\xa9 executado quando o mIRC abre, ele escreve na janela do Status "Ol\xc3\xa1! Tas Bom teu_nick!?", o $+ une o que devolver $me com o que estiver a seguir, ja que estando tudo junto ele vai tentar chamar a fun\xc3\xa7\xc3\xa3o $me!? em vez de $me_NEWLINE_Entre dezenas de eventos vale tamb\xc3\xa9m apena destacar o on text:_NEWLINE_Exemplo:_NEWLINE_on *:text:!calc *:#teste: {_NEWLINE_msg $chan $nick $+ , o resultado da tua conta \xc3\xa9 $calc($2-)_NEWLINE_}_NEWLINE_Ao dizer o texto !calc (qualquer coisa) no canal #teste (este campo tamb\xc3\xa9m permite wildcards) o mIRC vai automaticamente enviar para o canal ($chan) a mensagem "nick_que_deu_origem_ao_evento, o resultado da tua conta \xc3\xa9 resultado_da_conta_que_foi_escrita_a_seguir_a_!calc"_NEWLINE_Aqui esta alguns dos remotes que o mIRC usa_NEWLINE_on *:Input:*:{_NEWLINE_ if ($1 == .del) { chanserv access $chan del $2 }_NEWLINE_ if ($1 == .add) { chanserv access $chan add $2 $3 $4 $5 }_NEWLINE_ if ($1 == .access) { chanserv access $chan list $2 }_NEWLINE_ if ($1 == +ban) || ($1 == .ban) { mode $chan -o $2 | !ban $chan $2 $3 $4 }_NEWLINE_ if ($1 == .clearbans) { chanserv clear $chan bans }_NEWLINE_ if ($1 == .clearops) { chanserv clear $chan ops }_NEWLINE_ if ($1 == .clearvoices) { chanserv clear $chan voices }_NEWLINE_ if ($1 == .clearusers) { chanserv clear $chan users }_NEWLINE_ if ($1 == .akick) { chanserv akick # add $2 $3- }_NEWLINE_ if ($1 == .deakick) { chanserv akick # del $2 }_NEWLINE_ if ($1 == .infcanal) { chanserv info # $+ $2- }_NEWLINE_ if ($1 == .info) { nickserv info $2 }_NEWLINE_ if ($1 == .invite) { invite $2 $chan }_NEWLINE_ if ($1 == .restricted) { chanserv set $chan restricted $2- }_NEWLINE_ if ($1 == .set) { chanserv levels $chan set $2- $2- }_NEWLINE_ if ($1 == .mlock) { chanserv set $chan mlock $2- }_NEWLINE_ if ($1 == .levels) { chanserv levels $chan $2- }_NEWLINE_ if ($1 == .topiclock) { chanserv set # topiclock $2- }_NEWLINE_ if ($1 == .mode) { mode # $2- }_NEWLINE_ if ($1 == !uptime) { say $uptime(system,1) }_NEWLINE_ if ($1 == .topic) { chanserv topic $chan $2- }_NEWLINE_ if ($1 == .ngay) { nick nicknamezinho }_NEWLINE_ if ($1 == .n) { nick nickname }_NEWLINE_ if ($1 == .entry) { chanserv set $chan entrymsg $2- }_NEWLINE_ if ($1 == .list) { chanserv access $chan list }_NEWLINE_ if ($1 == .ajoin) { nickserv ajoin add $chan }_NEWLINE_ if ($1 == .deajoin) { nickserv ajoin del $chan }_NEWLINE_ if ($1 == .desc) { chanserv set $chan DESC $2- }_NEWLINE_ if ($1 == -oa) { mode $chan -oa $me $me }_NEWLINE_ if ($1 == .regi) { chanserv register $chan r0x }_NEWLINE_ if ($1 == .op) { chanserv op $chan $1 $2- }_NEWLINE_ if ($1 == .deop) { chanserv deop $chan $1 $2- }_NEWLINE_ if ($1 == .voice) { chanserv voice $chan $1 $2- }_NEWLINE_ if ($1 == .devoice) { chanserv devoice $chan $1 $2- }_NEWLINE_ if ($1 == .kick) { chanserv kick $chan $1 $2 $3- }_NEWLINE_ if ($1 == .send) { memoserv send $2- }_NEWLINE_ if ($1 == .mcancel) { memoserv cancel $2- }_NEWLINE_ if ($1 == .mlist) { memoserv list new }_NEWLINE_ if ($1 == .read) { memoserv read $2- }_NEWLINE_ if ($1 == .mdel) { memoserv del $2- }_NEWLINE_}\n_START_SECTION_\nUsers\n_START_PARAGRAPH_\nLista de users e seu n\xc3\xadvel de acesso, para os eventos dos remotes. Isto permite que um evento s\xc3\xb3 seja accionado por exemplo por utilizadores de n\xc3\xadvel x de acesso.\n_START_SECTION_\nVariables\n_START_PARAGRAPH_\nAs vari\xc3\xa1veis podem ser locais ou globais._NEWLINE_As vari\xc3\xa1veis locais apenas existem durante a execu\xc3\xa7\xc3\xa3o do comando/evento onde s\xc3\xa3o criadas, ou seja, a sua exist\xc3\xaancia \xc3\xa9 tempor\xc3\xa1ria. Comando: /var %variavel_NEWLINE_As vari\xc3\xa1veis globais, s\xc3\xa3o armazenadas no editor Variables (que se encontra juntos do editor de Users, Remotes, etc) e a sua exist\xc3\xaancia apenas termina com o comando /unset %variavel, para criar usa-se o comando /set %variavel ._NEWLINE_Todas as vari\xc3\xa1veis (excepto as bin\xc3\xa1rias) s\xc3\xa3o antecedidas pelo caracter %'