Como fazer seu script? Os aliases, juntamente com os Popups, Remote Commands, Remote Events, Remote Raw Events e DDE Extensions, formam o esqueleto de qualquer script, e constituem uma série de definições de novos comandos, que podem ser executados diretamente da linha de comando, ou então chamados por outro alias, popup ou remote. Para editar os seus aliases, use a opção Tools / Aliases. O mIRC abrirá o seu editor de scripts, e provavelmente exibirá uma série de aliases já pré-definidos (pelo próprio mIRC ou pelo script que você estiver usando). Identificadores Básicos $date - data atual $time - hora atual $idle - idle time (mesmo do /whois) $asc(V) - retorna o código ASCII do caracter V $chr(n) - retorna o caracter cujo código ascii é n $rand(v1,v2) - retorna um número aleatório $me - retorna o seu nick atual $away - indica se você está away ou não $cb - primeiros 256 caracteres da clipboard $ip - seu endereço ip $server - o servidor no qual você está conectado $port - a porta que você está usando FORMATO BÁSICO Cada alias é definido em (no mínimo) uma linha, que indica o nome do comando que você deseja criar e a ação que deve ser executada. Veja um alias simples: /oi /echo 4 -s Oi! Se você inserir este alias e pressionar o botão Ok, terá criado um comando /Oi, que nada mais faz além de mostrar a palavra "Oi!" Em letras vermelhas na sua janela de status. (Teste-o e maravilhe-se ;)... Opcionalmente, você pode remover as barras dos comandos dos aliases. Um alias assim: Oi echo 4 -s Oi! Funcionaria de maneira idêntica ao anterior. Mas... Esse alias está muito simples. O que aconteceria se eu precisasse utilizar mais de um comando do mIRC? É muito simples... Vamos definir um alias que diga duas palavras, "Oi" e "Tchau", cada uma em uma linha diferente da sua janela de status: Oitchau { Echo 4 -s Oi! Echo 4 -s Tchau! } Viu que simples? A chave "{" logo após o nome do alias indica ao mIRC que todos os comandos indicados nas linhas seguintes devem ser executados, até encontrar a chave "}" correspondente. Identificadores Identificadores são palavras reservadas pelo mIRC para uso em scripts, que retornam dados importantes sobre a configuração ou as condições do seu mIRC, canais, janelas e usuários. Uma lista completa de identificadores pode ser lida digitando o comando /HELP IDENTIFIERS (caso você tenho o mirc.HLP), e os identificadores mais importantes estão assinalados no Quadro 1. Vamos a alguns exemplos do uso de identificadores. Listando a configuração Digamos que você queira fazer um alias que informe a configuração atual do mIRC do seu usuário. Uma possibilidade seria assim: /Status_all { /echo 4 -s Status global /echo 3 -s Seu nick é $me e seu ip é $ip /echo 3 -s O relógio de seu micro marca $time /echo 3 -s Você está conectado na porta $port do $server /echo 3 -s Seu modo é $usermode /echo 3 -s Download = $getdir - Logs = $logdir - mIRC = $mircdir /echo 3 -s Você está em $chan(0) canais /echo 3 -s e tem $query(0) pvts e $chat(0) DCC Chats abertos. /echo 3 -s A janela ativa é $active } Este alias nada mais faz do que mostrar na sua janela de status uma série de informações sobre sua configuração. Usando Parâmetros Vamos a um exemplo menos simples para poder demonstrar bem o poder dos identificadores. Para isto, precisaremos do conceito de parâmetros. Parâmetros são as palavras inseridas pelo usuário na linha de comando, sempre que ele vai executar o seu alias. Por exemplo, se um usuário digita: /multijoin #Circo #Floripa #Brasircop as palavras "#Circo", "#Floripa", e "#Brasircop" são os parâmetros. O seu alias sempre tem como saber os parâmetros que o usuário digitou, utilizando-se de identificadores especiais: os identificadores de parâmetros. Os identificadores de parâmetros são chamados utilizando o sinal de "$" e o número do parâmetro desejado, assim temos: $1 é o primeiro parâmetro, $2 é o segundo parâmetro, e por aí afora. Podemos complicar um pouco, com os identificadores de múltiplos parâmetros. Por exemplo, $1-3 indica os parâmetros de 1 a 3. $2-5 indica os parâmetros de 2 a 5. $1- indica todos os parâmetros da linha. $3- indica todos os parâmetros a partir do terceiro. Vamos a um exemplo? /mostra_params { /echo -s os parâmetros digitados foram $1- /echo a terceira palavra é $3 /echo as primeiras três palavras são $1-3 } O exemplo acima simplesmente mostra os parâmetros digitados. Experimente digitar: /mostra_params Estou aprendendo a programar o mIRC Para ter uma idéia de como ele funciona. Agora vamos ao /multijoin /multijoin /join $1 $+ , $+ $2 $+ , $+ $3 Este alias faz com que você entre em até 3 canais com um único comando. Por exemplo, se você digitar assim: /multijoin #Circo #floripa #amizade O mIRC converterá este comando para /join #cIRCo,#floripa,#amizade veja bem: Sem espaços entre as vírgulas e os nomes dos canais. Quem suprime estes espaços é o identificador $+ , responsável por unir dois textos sem deixar espaços extras entre eles. Contando usuários em um canal Um exemplo bastante prático de script é o censo de canal - aquelas mensagens que muita gente mostra, dizendo quantos usuários estão em um canal, e quantos são operadores do mesmo. Que tal colocar uma mensagem assim no seu mIRC? É simples... Censo { /msg $$1 Existem $nick(0,$$1) usuários conectados ao canal $$1 , /msg $$1 dos quais $opnick(0,$$1) são operadores do canal e 1 é genial : $me } Este alias usa as funções $nick e $opnick para contar os usuários do canal passado como parâmetro. Notou que ao invés de usar $1 eu usei $$1? Isso tem uma importância fundamental: quando se usa o duplo-cifrão, o mIRC recusa-se a executar o alias caso não seja passado nenhum parâmetro. Experimente entrar no #Brasil e digitar: /censo #Brasil para ver como funciona... Definindo Teclas de Função Usando os aliases, você pode redefinir as teclas de função do seu mIRC, colocando qualquer função nelas. É muito simples, faça assim: /F3 /echo -s você pressionou a tecla F3 /sF3 /echo -s você pressionou shift-F3 /cF3 /echo -s você pressionou control-F3 Assim, você pode colocar suas funções mais utilizadas em teclas de função,para poder ter acesso mais rápido a elas. --Popups O mIRC permite que o usuário altere vários de seus menus popup. As alterações podem ser feitas nos seguintes menus: Janela de status query/chat/notify Canal Lista de nicks do canal Menu principal Estes menus são acessados clicando com o botão direito do mouse nas respectivas áreas. Seu uso mais comum é para tarefas corriqueiras como dar op, kickar um usuário ou entrar em um canal. Sintaxe Uma definição de linha de menu tem a seguinte sintaxe: Opção:comando Exemplo: Kickar usuário: kick # $1 Você foi kickado :) A parte que vem antes do ":" é o que aparece no menu - a parte que vem depois do ":" é o comando a ser executado se esta opção for selecionada. A sintaxe dos comandos é exatamente a mesma dos aliases, aceitando inclusive os caracteres { } e | Você pode criar uma hierarquia de submenus utilizando o símbolo '.' e separar grupos dentro do menu usando o símbolo '-' Exemplo: Kick .Não é bem vindo: kick # $1 Você não é bem vindo aqui .Sai fora mané:kick # $1 Sai fora mané .- .Kick + ban ..Eterno: /ban # $1 2 ..30 segundos: /ban -u30 # $1 2 EDITANDO SEUS MENUS A edição dos menus ocorre na opção Tools|Popups do seu mIRC. Uma vez dentro desta opção, selecione na opção View qual dos menus você deseja editar. Status é o popup da janela Status. Channel é o popup da área de textos dos canais. Query/Chat é o popup dos PVTs, Chats e notify window. Nickname list é o menu da lista de nicks dos canais, e Menubar é o menu dropdown, criado entre as opções Dcc e Window do menu principal. Usuários mais avançados podem querer colocar seus menus na área Remote do mIRC. Isto é possível, colocando o prefixo menu no início da definição. Exemplo: menu nicklist { torno de 660 Kg .Haddock:/me bate em $1 com um torno de 600 kg } Os nomes dos menus, para efeito de definição no remote, são: nicklist, channel, query, nicklist e menubar. MENUS DE JANELAS CRIADAS PELO USUÁRIO No remote você também pode criar popups para janelas do tipo criado com o comando /window. Por exemplo, se você tem uma janela chamada @teste, poderia criar um menu assim: Menu @teste { [dclick /comando $1] ...Items... } A linha dclick indica o comando a ser executado em caso de double-click na @teste. Neste caso, o identificador $1 contém o número da linha que foi clicada. --Remotes EVENTOS RAW Os raw remotes são a maneira mais poderosa (e mais complicada) de alterar o comportamento do seu mIRC. Eles simplesmente redefinem a maneira como o mIRC reage a eventos padrão, tais como: o resultado de um /list, o resultado de um /links, um /whois, e muitos outros. A alteração no raw só pode ser feita conhecendo os códigos numéricos das mensagens do server, definidos na RFC1459 (Em Inglês). Scripts poderosos usam raw para alterar profundamente a aparência e comportamento do mIRC. Um exemplo de uso do Raw é a ferramenta "Procurar IRCops" que vem no DusK 5.0 e posteriores. Caso você tenha interesse em alterar o raw, leia a RFC1459 com atenção e veja exemplos em outros scripts. Um exemplo simples de Raw é o seguinte (adaptado do help do mIRC) : raw 322:*rio*:/echo 5 $1- Esta linha altera a resposta do comando /list, mostrando de maneira especial todos os canais que contenham a palavra floripa em seu nome ou topic. Caso você tenha a Xbible, você pode encontrar todas as raws lá. EVENTOS PADRÃO Os eventos padrão são eventos pré-definidos pelo mIRC, para alterar a resposta padrão à maior parte dos acontecimentos comuns do mIRC. Seu formato geral é: on [nível>:[nome]:[condições]:[comandos] Por exemplo: o evento ON JOIN é ativado sempre que um usuário entra em um canal no qual você esteja, e pode ser definido assim: on [nível]:JOIN:[#[,#]]:[comandos] Se você definir um script assim: on 1:JOIN:#brasil,#turma:/notice $nick Olá, bem vindo ao $chan Você passará a mandar uma mensagem a todos os usuários que entrarem no canal #brasil ou #turma, desde que você também esteja nestes canais. Cada um dos eventos padrão tem sintaxes e características próprias. Vou citar aqui os eventos padrão do mIRC, mas deixarei a você a tarefa de pesquisar no help a sintaxe de cada um deles. EVENTOS CTCP Os eventos CTCP formam uma maneira especial de comunicar-se dentro do IRC. A definição de um evento CTCP é feita na seção Scrips, com o seguinte formato: ctcp [nível]:[texto]:[comandos] O nível é o nível necessário para acessar este evento, o texto é o comando CTCP que irá acionar este evento, e os comandos são a lista de comandos a ser executada quando este evento for acionado. Exemplo: dando op aos amigos =5:bagre!Zekrioca@*.Zekrioca.Net ctcp 5:opme:/mode $1 +o $nick ctcp 5:inviteme:/invite $nick $1 Estas definições permitem que o usuário Bagre a solicite que o seu mIRC dê op ou invite a ele, utilizando-se de comandos CTCP para isso. Assim, se Bagre digitasse: /ctcp SeuNick opme #Cardume e você estivesse como op no #Cardume, automaticamente você daria op ao Bagre. ALTERANDO UMA RESPOSTA PADRÃO DE CTCP Alguns comandos CTCP são pré-definidos pelo mIRC. Alguns exemplos são o PING, USERINFO, CLIENTINFO, VERSION e TIME. Eles têm respostas padrão, mas você pode alterá-las facilmente, como qualquer outro CTCP. ctcp 1:ping:/notice $nick PONG!!!! | /halt Este script fará que, sempre que alguém lhe enviar um PING, você responda automaticamente com um "PONG!!!!". O /halt no fim da linha impede que a resposta padrão de ping seja enviada - caso você retire o /halt, a resposta padrão é enviada juntamente com a sua resposta. O único CTCP que não pode ter sua resposta padrão suprimida é o VERSION, porque o mIRC gosta de propaganda ;) IDENTIFICADORES DO REMOTE Action alguém manda um /me para um canal ou pvt Ban alguém é banido em um canal Chat uma mensagem em DCC Chat ChatClose um DCC Chat é encerrado ChatOpen um DCC Chat é aberto Connect Você se conecta ao server CTCPReply Você recebe uma resposta padrão de CTCP Deop Alguém perde op em um canal Devoice Alguém perde voice em um canal DNS Fim de um comando /dns Error Server manda um ERRORM FileRcvd Fim bem-sucedido de um DCC GET FileSent Fim bem-sucedido de um DCC SEND GetFail Erro em DCC Get Input Entrada de dados em uma textbox Invite Recepção de um invite Join Usuário entra em um canal Kick Usuário é kickado em um canal Load Script é carregado MidiEnd Música MIDI termina Mode Modo do canal é alterado Nick Alguém muda de nick NoSound Alguém manda um /sound e você não tem Notice Recepção de um notice --Fazer uma janela O mIRC permite também ao usuário criar suas próprias janelas , além das convencionais (Status , Query , Channel...). No exemplo abaixo estarei criando uma janela cujo nome é Informações, portanto seu nome será @Informações. /window = abrir a janela @Informações = nome da janela ( @nome ) arial,12 = Fonte a ser usada na janela A linha seria então: /window @Informações arial,12 Escrevendo nas janelas /aline - para escrever na janela => use /aline @nome frase /rline - para reescrever qualquer linha de uma janela => use: /rline @nome Nº da linha frase --Criar variables Variáveis são essenciais em qualquer linguagem de programação séria, e o mIRC script também as têm. Se você tem boas noções de programação, pode fazer scripts aproveitando todo o seu potencial. As variáveis do mIRC têm o prefixo %, e você pode defini-las através do comando /set: /set %contakick 1 A linha acima cria uma variável ContaKick, e atribui a ela o valor inicial de 1. Você pode executar diversas operações com variáveis numéricas, tais como: %x = 5 + 1 %x = 5 - %y %x = %x * 2 %X = %z / $2 %X = $1 % 3 %X = 2 ^ %w Inc %x 3 dec %x 3 Vamos fazer um alias de kick que utiliza a variável %ContaKick que nós acabamos de criar, para manter uma contagem de vítimas de kicks... /kc { /kick # $1 Sai fora! ( vítima %contakick ) inc %contakick 1 } Agora, sempre que você kickar utilizando o alias /kc, o kick vai incluir uma contagem de vítimas :-) O mIRC aceita também variáveis alfanuméricas, mas devido à complexidade do tema, vou deixar você se virar sozinho nessa >;) Por zekrioca (zekrioca@zekrioca.net) Portal Z Corporation Ltda. Dúvidas? Criticas? Sugestões? Reclamações? Sac@zekrioca.net Www.Zekrioca.net