| Introdução aos Scripts.pt |
Sabe o que é o IRC? E scripts ?
Se são palavras desconhecidas, aconselha-mos que dê uma vista de olhos na nossa introdução
>> |
|
Aliases
Para ver o aliases vá a tools (na barra de menu do seu script) e clique em "aliases"...
Cada alias é definido em (no mínimo) uma linha, que indica
o nome do comando que você deseja criar e a acçã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 de utilizar mais de um comando
do mIRC? é muito simples... Vamos definir um alias que diga duas
palavras, "Oi" e "Tchau", cada uma numa 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, 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 actual 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 computador 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 activa é $active
}
Este alias nada
mais faz do que mostrar na sua janela de status uma série de informações
sobre sua configuração.
| Identificadores |
|
Identificadores Básicos
$date - data actual
$time - hora actual
$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 actual
$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 |
Funções
Strings: $abs, $asc, $chr, $count, $left, $len, $lower, $mid, $pos, $remove, $replace,
$right, $str, $strip, $upper
Arquivos & Directórios: $dir, $file, $hfile, $exists,
$findfile, $getdir, $lines, $lof, $logdir, $mididir, $nofile, $nopath,
$mircdir, $mircini, $read, $readini, $wavedir
Nicks e endereços: $adress, $comchan, $ial, $level, $mask, $me, $nick, $nopnick, $notify,
$nvnick, $opnick, $nvnick, $opnick, $snicks, $snick, $vnick
Janela: $active, $chan, $chat, $fserv, $get, $query, $send
Tokens: $addtok, $findtok, $gettok, $instok, $remtok, $reptok |
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 #Portugal #Porto #Matosinhos as palavras " #Portugal",
" #Porto", e " #Matosinhos" 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. Experimete 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 #Portugal #Porto #Matosinhos
o mIRC converterá este comando para /join #Portugal,#Porto,#Matosinhos
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...
senso {
/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 #matosinhos e digitar :
/senso #matosinhos
...para ver como funciona...
Variáveis
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éricais,
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...
Redefinindo 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.
Repetições e condições
Já que entramos
no terreno da programação séria, temos que abordar
o tema das repetições e condições. Sim, o mIRC
também apresenta a estrutura condicional (If-then-else),
e é capaz de fazer repetições simples (goto).
Novamente, não
vou abordar os conceitos, apenas explicar as técnicas para quem
já tem noções de programação. O mIRC
implementa a estrutura if-then-else completa, com uma sintaxe bastante
simples, semelhante à de outras linguagens de alto nível.
A sintaxe básica é :
if (v1 operador v2) { comandos }
elseif (v1 operador v2) { comandos }
else { comandos }
Os operadores disponíveis
estão no quadro abaixo.
Para repetição,
o mIRC implementa apenas o comando goto. Ele é usado para transferir
a execução de um alias para um determinado label, definido
no formato :NomeDoLabel. Geralmente você irá utilizar
o goto para implementar loops (estruturas repetitivas). A parte mais importante
de um loop é a sua variável de controle (no exemplo, eu usei
%i como variável de controle). Esta variável normalmente
é incrementada a cada "volta" do loop, e ao final do mesmo uma instrução
IF verifica se deve continuar no loop ou encerrar.
Veja o exemplo
a seguir, retirado do help do mIRC, onde :next e :done são
labels :
listops {
echo 4 * Listando Ops no #
set %i 1
:next
set %nick $nick(%i,#)
if %nick == $null goto done
if %nick isop # echo 3 %nick é um Op!
inc %i
goto next
:done
echo 4 * Fim da lista de Ops
}
O alias faz um
loop entre o :next e o goto next, verificando se cada usuário
do canal é um op. Esta é uma clássica emulação
de um loop repeat-until usando goto ;-)
Operadores do if
== | igual a |
!= | diferente de |
< | menor que |
> | maior que |
>=<= | maior ou igual menor ou igual |
//\\ | é múltiplo denão é múltiplo de |
isin | string v1 está em string v2 |
iswm | wildsting (*,?) combina com v2 |
isnum | v1 é número e está na faixa v2 (n1-n2) (v2 é opcional) |
ison | nick v1 está no canal v2 |
isop | nick v1 é op no canal v2 |
isvo | nick v1 tem voice no canal v2 |
ischan | v1 é um canal no qual você está |
isauto | v1 está na sua auto-op list para canal v2 (v2 é opcional) |
isignore | v1 está na sua ignore list com o switch v2 (v2 é opcional) |
isprotect | v1 está na sua protect list para o canl v2 (v2 opcional) |
isnotify | v1 está na sua notify list |
&& | andlógico |
|| | or lógico |
|
|