abreviaturas  faq's  introdução  pesquisar  segurança 
arquivo  fórum  irc web  popular  servidores 
clientes de irc  glossário  logos  programas  smileys 
comandos  histórico  netiquette  scripting  tutorial 
  Terça-feira, 7 de Janeiro de 2009
Procurar em  
Adicionar Script :: Top 10 :: Assinatura :: Contactos :: Alojamento de sites        

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 >>

Adicionar abreviatura
Tem uma abreviatura que queira partilhar ? Saiba como...

Adicionar glossário
Gostava de adicionar uma nova palavra ao nosso dicionário ? Saiba como...

Adicionar Smiley
Adicione um Smiley à nossa lista

Logos Scripts.pt
Pode colocar um dos nossos logos na sua página
Scripts.pt
Scripts.pt

Carregue na imagem

Scripting - Aliases
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