|
Agradecimentos à Rul3z por ter feito este tutorial. |
||
Apesar de simples o aliases é algo fundamental em um script, e
isso você
vai aprender lendo este tutorial. Se você quer realmente aprender e fazer
um script, aconselho q imprima esse tutorial Para usar o aliases vá
em: Tools/Aliases, ou através do atalho Alt+A
O mIRC permite que você crie aliases e scripts para melhorar a velocidade
de sua sessão de IRC ou para executar funções repetitivas mais
facilmente. Para criar aliases você deve conhecer alguns comandos de IRC.
Os Aliases podem ser chamados da linha de comando, de outros aliases, e
dos scripts popup e remote. Um alias não pode chamar a si mesmo
principalmente porque isto parece que causa mais problemas do que resolve. Exemplos: Os
exemplos a seguir mostram como criar aliases que executam funções
simples. /gb /join
#Brasil Se
agora você digitar /gb isto é o mesmo que digitar /join #Brasil. /j
/join $1
Nós agora adicionamos um parâmetro. Se nós digitarmos /j #Brasil isto
é o mesmo que digitar /join #Brasil. O $1 se refere ao primeiro parâmetro
na linha que você está mexendo. /bju
/me $2 $1
Se agora você digitar /bju enfermeira! Olá a ação deste comando será
/me Olá enfermeira! O número depois do $ especifica o número do
parâmetro na linha que você entrou. /jj
/join $?
O ponto de interrogação indica que você deve ser questionado para
preencher este parâmetro. O parâmetro que você entrar será inserido na
linha naquele ponto. Então se você digitar /jj uma tela irá aparecer
perguntando o canal que você quer entrar. Se você entrar #Brasil então
o comando final será /join #Brasil. /jj
/join #$1
o símbolo # indica que o parâmetro que você especifica deve ser
prefixado com um sustenido indicando que isto é um canal. /jj
/join $?="Digite o canal a entrar:"
Isto faz a mesma coisa mas agora a tela irá ter o texto "Digite o
canal a entrar:" mostrado dentro dela. /aw
/away $?="Entre a mensagem de away:" | /say $!
Isto é similar à linha acima exceto pela adição do parâmetro $!.
Isto se refere ao texto que você acabou de digitar na caixa de parâmetro,
(a mensagem de away). Isto evita que você tenha de digitar a mesma
mensagem duas vezes. /dar
/me dá a $$1 um $$2
O duplo $$ significa que este comando só irá ser executado se um
parâmetro é especificado. Se você especificar apenas um parâmetro no
comando acima ele não será executado. Você pode também usar $$?1
ou $?1 que significa tentar preencher este valor com o parâmetro um
se ele existir. Se o parâmetro um não existir, perguntar por ele, no
primeiro caso o parâmetro é necessário para que o comando seja
executado, no segundo caso ele não é. /bater
/me bate em $1 com $2-
O $2- indica que tudo que vier depois incluindo o parâmetro 2 deve
ser adicionado à linha de comando. Se você digitar /bater Tonho um
travesseiro a linha final será
/me bate em Tonho com um travesseiro.
Você também pode especificar $2-5 que significa usar apenas os parâmetros
2 a 5. /rir
/me ri da brincadeira de $1zim
Qualquer coisa adicionada a um parâmetro $ é adicionada ao parâmetro
final. Então se no exemplo acima nós digitarmos /rir Juca o parâmetro
final seria /me ri da brincadeira de Jucazim. /silly
/say Ol $+ á enfer $+ meira $+ !
Os parâmetros normalmente são separados por um espaço. Para fazer o
mIRC combinar parâmetros você pode usar o identificador $+ . A
linha acima irá dizer Olá enfermeira!. /p
/part #
O símbolo # se refere ao canal que você está no momento. Então se você
está no canal #blah, e você digita /p então o cliente substitui o símbolo
com #blah, e o comando final será /part #blah. /op
/mode +o $1
Para dar op a alguém você pode agora digitar /op usuário em vez do
comando /mode inteiro. /dop
/mode -ooo $1 $2 $3 Você
agora pode tirar o op de três usuários digitando /dop fulano sicrano
beltrano.
Para múltiplos comandos você pode usar um caractere | (o outro caractere que geralmente faz parte da tecla \). Então
para escrever um alias que kicka e bane alguém: /dkb
/kick # $1 | /mode +b $1 Varias
linhas (vários comandos):
/info {
echo nick: $me
echo hora:
$time
echo ip: $ip
}
Quando
o comando tiver + de 1 linha, todos os comandos q pertencem a aquele devem
ficar dentro
de {} Uma
linha (vários comandos):
/info echo
nick: $me | echo hora: $time | echo ip: $ip
Este comando faz o mesmo q o comando anterior mas foi feito em uma
só linha. Para executar
vários comandos na mesma linha, eles devem ser separados por | ) obs:
no 'mIRC editor' vc não precisa usar as barras-> / teste
{ echo
Hora Atual: $time echo
Data: $date }
Aperte OK, e digite /teste no mirc, você pode notar que não é obrigatório
o uso da "/" na hora de criar um alias. E você pode acrescentar
cor, negrito e sublinhado normalmente, tipo: "/echo
10Hora
Atual:
$time".
Agora você vai ver como funciona pequenas variações do comando "echo",
tais como: echo
-a = o echo aparece na janela onde se passa a situação, por exemplo: você
esta no canal #Brasil, e no #RiOmaFRa, e você colocou para que seu script
dê um "echo -a" quando alguém fala "oi", e o
"FuLanO" fala oi com você no #Brasil o "echo -a" irá
aparecer no #Brasil, eu acho que deu pra entender. echo
-s = o echo aparece na janela atual, usando o exemplo anterior: se você
estiver no #Brasil e no #RiOmAfRA e se o duduh falar com você no #Brasil
e você estiver lendo algo no #RiOmAfrA a resposta em "echo -s"
irá aparecer no #RiOmAfrA.
Quando eu expliquei como se fazia o alias "/teste" você viu
algo do tipo: $time, é isso que eu vou explicar agora:
Os identifiers são usados para guardar informações, como por exemplo:
$me -- este identifier representa o seu nickname atual, e perceba que os
identifiers tem o $ sempre na frente dele, e também pode ser usado dois $
pois assim, o comando só será executado se o identifier existir. Perceba
também que pode ser usado assim: $len(aaa), ou seja, com o parâmetro aaa,
mas nem todas identifiers aceitam os ( ) !! Aqui
vai uma lista da maioria dos identifiers do mirc, veja: Identifiers
Simples: $me
= retorna seu Nickname atual $email
= E-mail especificado nas configurações do mIRC. $date
= retorna a data atual, no formato: dia/mês/ano $time
= retorna a hora atual, ex: 17:40:58 $server
= Servidor que você está conectado atualmente. $ip
= Seu IP atual. $host
= Sua host atual. $idle
= retorna o tempo que você está inativo (sem digitar nada). $day
= Dia da semana. $fulldate
= Retorna a data completa, ex: Sat Jan 17 18:00:55 1998 $port
= Porta do servidor em que você está conectado. $usermode
= Seus modos atuais, ex: +iw $chan
= Canal aberto atualmente, ex: #RiOmaFRA. Também usado para
eventos, como por exemplo: quando alguém dizer algo no canal, ele
retorna o canal que foi dito. $version
= Retorna a versão do mIRC usada, exemplo: 5.11. $network
= Retorna a rede em que você esta conectado, exemplo: BrasIRC. $os
= Retorna seu Sistema Operacional, exemplo: win98. $online = Retorna o tempo que você esta conectado, funcionando apenas quando estiver ativada a Função On-line Timer do mIRC. Identifiers
Muito Usadas: $away
= retorna $true se você estiver away, ou $false se você não
estiver. $duration(número)
= retorna o tempo do número especificado, exemplo1: $duration(60)
irá retornar: 1min. Exemplo2: $duration(100) irá retornar: 1min
40secs. $len(palavras)
= O $len é para contar o tanto de caracteres (letras) foram usadas
entre parêntese. Exemplo1: $len(oi) irá retornar: 2. Exemplo2: $len(script)
irá retornar: 6. $nick
= retorna o nick que executou a ação, ou evento. Também usado
para saber o número de pessoas no Canal, assim: $nick(#Brasil,0) =
retorna o total de pessoas do canal #Brasil. E se você usar
1,2,3,4,5... no ,0), irá retornar a pessoa X que está na lista de
nomes do canal. Exemplo: $nick(#canal,3) = retorna a 3 pessoa na
lista de nicks do canal #canal. $opnick
= última pessoa que ganhou ou perdeu OP. Usado também como o $nick(#canal,x)
ou seja, $opnick(#canal,0) - total de pessoas com OP no canal. $nopnick
= Pessoas sem OP no canal. Mesmas propriedades que o $nick e $opnick
= $nopnick(#canal,0) = total de pessoas sem OP,
etc. $vnick
= Última pessoa que ganhou voice. Também Pessoas com voice no
canal, mesma propriedade que o $nick(#canal,0). $nvnick
= Última pessoa que perdeu voice no canal. Também Pessoas sem
voice no canal, mesma propriedade que o $nick(#canal,0). $active
= Janela ativa atualmente, exemplo: $active, irá retornar o canal
atual, o se você estiver na Janela de status, irá retornar: Status
Window. $strip(palavras)
= retorna as palavras usadas, ignorando cor, negrito, sublinhado e
reverse. $count(palavra,caracter)
= retorna o número de vezes que o caractere foi escrito em palavra. $rand(v1,v2)
= retorna um valor randômico, que vai do valor1 até valor2. Exemplo1:
$rand(1,10) = irá retornar um número que esteja entre 1 até 10. Exemplo2:
$rand(a,j) = retorna uma letra que esteja entre a até j. $banmask
= Mascara que foi banida. $bnick = Nick que foi banido. Colchetes
de avaliação [ ]
Se
você quer maior controle sobre a ordem de avaliação dos identifiers,
você pode usar colchetes [ ]. Os identifiers dentro destes colchetes serão
avaliados primeiro, da esquerda para a direita. Você pode acumular
colchetes. /say % [ $+ [ $1 ] ]
Você
também pode forçar um identifier previamente avaliado a ser reavaliado
usando colchetes [ ] extras. /set %x %y /set %y Oie! /echo [ [ %x ] ] Chaves { }
Você
pode criar scripts de multi-linhas usando chaves { }. Isto
permite que você crie um alias que executa vários comandos. /poema /msg
Aliases Desde que vi ela /msg
Aliases Meu coração por tigela A
declaração Se-então-senão (If-then-else)
Você
pode usar as declarações se-então-senão para decidir que partes de seu
script deve-se executar baseado na avaliação de uma comparação. /número { if
($1 == 1) echo O número UM elseif
($1 == 2) echo O número DOIS else
echo Número desconhecido! } Isto
cria um alias que testa se o parâmetro que você pôs é o número 1 ou o
número 2. Declarações
If-then-else (Se-Então-Senão)
A
declaração If-then-else (se-então-senão) permite que você compare
valores e execute diferentes partes de um script baseado naquela comparação. Formato
básico if
(v1 operador v2) comandos elseif
(v1 operador v2) comandos else
comandos
Os
parênteses ( ) isolam comparações, enquanto que as chaves {
} isolam os comandos que você quer que sejam executados se uma comparação
é verdade. Você deve ter certeza de que o número de ( ) e { }
correspondem para ter certeza de que as comparações corretas sejam
executadas.
Usar
chaves e parênteses acelera o processamento. Se um alias usa muito poucos
parênteses e chaves então a declaração pode ser ambígua e o alias irá
demorar mais para comparar, pode comparar incorretamente, ou pode não ser
comparado totalmente. Você
pode aninhar tantas declarações se-então-senão quantas você quiser
dentro de cada outra. Os
Operadores do if
==
igual a
===
igual a (sensível a caps lock)
!=
não é igual a
<
menor que
>
maior que
>=
maior ou igual a
<=
menor ou igual a
//
é um múltiplo de
\\
não é um múltiplo de
&
é uma comparação na forma bit
isin
texto v1 está no texto v2
isincs texto v1 está no texto v2 (sensível a caps
lock)
iswm
texto com caracteres-chave v1 corresponde ao texto v2
isnum
número v1 é um número no período v2 que está na forma n1-n2
(v2 opcional)
isletter letra v1 é uma letra na lista de
letras em v2 (v2 opcional)
isalnum
texto contém somente letras e números.
isalpha
texto contém somente letras
ison
nick v1 está no canal v2
isop
nick v1 é um op no canal v2
isvo
nick v1 tem voz no canal v2
ishelp
nick v1 é um ajudante no canal v2
isreg
nick v1 é um nick normal no canal v2
ischan
nick v1 é um canal em que você está
isauto
se v1 é um usuário na sua lista de auto-op para o canal v2 (v2
opcional)
isignore se v1 é um usuário na sua lista de
ignore com a opção v2 (v2 opcional)
isprotect
se v1 é um usuário na sua lista protect para o canal v2 (v2
opcional)
isnotify
se v1 é um usuário na sua lista notify Para
negar um operador você pode prefixá-lo com um ponto de exclamação !. $ifmatch Retorna
o primeiro parâmetro da comparação se-então-senão correspondente. Então
no caso desta comparação: if
(texto isin algumtexto) ... $ifmatch
irá retornar "texto" Combinando
comparações Você
pode combinar comparações usando os caracteres && para E e ||
para OU. número { if
(($1 > 0) && ($1 < 10)) { if
($1 < 5) echo Número é menor que cinco else
echo Número é maior que cinco } else
echo Número está fora de alcance }
Este
alias checa se o número que você especificou, quando você digita /número
<valor>, está dentro do alcance necessário. Exemplos listops { echo
4 * Listando ops no # set %i
1 :próximo set %nick $nick(%i,#) if %nick
== $null goto feito if %nick
isop # echo 3 %nick é um op! inc %i goto
próximo :feito echo
4 * Fim da lista de ops }
Este
alias lista os ops no canal atual. Ele faz isto da forma mais difícil já
que podia-se em vez disso simplesmente usar $opnick(), mas usar $nick()
serve como um exemplo de como isop pode ser usado e como $null
retorna uma vez que chegou ao fim da lista. Darop { %i
= 0 %nicks
= ** :próximo inc %i if
($snick(%i,#) == $null) { if ($len(%nicks) > 0) mode # +oooo %nicks |
halt } %nicks
= %nicks $nicks(%i,#) if
(4 // %i) { mode # +oooo %nicks | %nicks =
** } goto
próximo }
Esta
é uma definição de popup que dá op aos nicks que estão selecionados
na lista de nicks do canal corrente. on
1:ctcpreply:PING*:{ if
($2 == $null) halt else { %pt
= $ctime - $2 if
(%pt < 0) set %pt 0 if
(%pt < 5) echo 4 [PING reply] $nick está perto demais elseif
(%pt < 20) echo 4 [PING reply] $nick está na distância certa else
echo 4 [PING reply] Terra para $nick, terra para $nick } halt } Isto
intercepta um ping reply e mostra uma mensagem baseada na distância em
que a pessoa está. O
comando Goto O
comando goto permite que você pule de um ponto em um script a outro
ponto. /número { if
($1 == 1) goto um elseif
($1 == 2) goto dois else
goto desconhecido :um echo
O número UM halt :dois echo
O número DOIS halt :desconhecido echo
Número desconhecido! halt }
Usar
um goto incorretamente pode levar a um loop infinito. Você pode sair de
um script que está sendo executado pressionando Control-Break. Nota:
Os comandos acima não estão prefixados com o prefixo de comando /. Isto
porque o prefixo de comando na verdade só é necessário quando entrar um
comando na linha de comando. Em scripts, todas as linhas são assumidas a
começar com um comando, então você não precisa usar o prefixo de
comando /. Suporte
a Teclas de Função
Você
pode redefinir as teclas de função para executar certos comandos, assim
como aliases. Por exemplo: /F1
/say Olá! /sF2
/query $1 /cF3
/ctcp $1 versão Os
prefixos s e c são para a tecla Shift e Control respectivamente. Nota:
Uma tecla de função irá comportar-se diferentemente dependendo da
janela no qual é usada. Por exemplo, quando usá-la numa janela de pvt o
parâmetro $1 se refere aos nicks dos usuários selecionados. Se você
está em um canal e a lista de nicks está ativa então a tecla de função
irá funcionar nos nicks selecionados. Se a caixa de lista não está
ativa, a tecla de função só irá funcionar no canal.
|
|||
Está página é parte integrante da www.riomafra.com.br - canal #RioMafra / Rede BrasIRC |
Direitos autorais do texto: Rul3z