Scripting - Básico [If, Eventos, Identificadores]
Chatbrasil :: Forum :: Aulas
Página 1 de 1
Scripting - Básico [If, Eventos, Identificadores]
•o que e uma estruta if,then,else?
•eventos remotes
•identificadores
•exemplos
•o que é uma estrutura if,then,else?
sao estruturas de condiçoes que precisam de uma condiçao pra existir
exemplo:
vamos usar um evento on text
os remotes sao usados em mIRCbots
on nivel:evento:comando1:local:{ comandos }
os niveis sao niveis especificados por quem vai executar os comandos voce define um nivel digitando /auser nivel nick
por exemplo : /auser 5 nick
os eventos e a parte da programaçao onde o bot vai reconhecer por exemplo no evento on text
se alguem digitar a palavra !kill e se a segunda palavra for o nick do bot ( if ($2 == $me) ) ele vai sair do IRC
o comando1 e onde o bot reconhece os comandos q forem feitos pra poderem fazer os comandos programados no caso o comando1 e o ''!kill''
o local e onde vai ser digitado o comando1 por exemplo podemos usar o # para designar que esse comando pode ser feito em todos os canais
o if usa a condiçao de se o nick for igual ao bot ''if ($2 == $me)''
vamos traduzir esse comando ''se (a palavra depois de !kill($2) for igual(==) ao meu nick($me)) { executar o comando }
mas existe uma outra condiçao o else
o else e usado em condiçoes contrarias ao if por exemplo if ($2 == $me) { /msg $chan meu nick nao pode ser killado } | else { /kick # $2 voce foi kikado do canal }
vamos traduzir o comando ''se (a palavra depois de !kill($2) for igual(==) ao meu nick($me)) { mensagem ao canal ( /msg $chan ) meu nick nao pode ser killado }^
senão(else) { /kick canal(#) nick digitado($2) voce foi kikado do canal }
o else apenas usa a funçao do ''se a segunda palavra nao for igual ao meu nick executar comandos"
•eventos remotes:
os eventos sao:
on *:action:texto:#:{ } quando qualquer nick manda um texto por /me
on *:text:texto:#,?:{ } onde # e qualquer canal e ? e a janela do pvt ou qualquer janela
on *:signal:{ } quando o script recebe um sinal feito por /signal nick
on *:mode:modo:#:{ } quando algum modo e alterado na sala
on *:topic:#:{ } quando o topico e mudado
on *:invite:?:{ } quando e enviado um convite para o nick onde ? e qualquer janela
on *:load:{ } quando qualquer script e carregado
on *:unload:{ } quando qualquer script e descarregado
on *:kick:#:{ } quando qualquer nick e kikado da sala
on *:ban:#:{ } quando qualquer nick e banido da sala
on *:join:#:{ } quando qualquer nick entra na sala
on *:quit:#:{ } quando qualquer nick deixa a sala
on *:nick:#:{ } quando qualquer nick muda de nick
on *:notice:?:{ } quando qualquer nick envia um notice a voce em qualquer janela
on *:open:?:{ } quando qualquer nick abre uma janela pvt com voce
on *:part:#:{ } quando qualquer nick deixa a sala com a mensagem [user quit]
on *:start:{ } quando voce abre o seu script
on *:connect:{ } quando voce se conectar a rede
on *:disconnect:{ } quando voce se disconecta da rede
on *:op:#:{ } quando voce recebe op
on *:deop:#:{ } quando tiram o seu op
on *:voice:#:{ } quando te dao voice
on *:devoice:{ } quando tiram o seu voice
on raw:*:{ } quando o server faz qualquer comando de rede nesse caso o raw e especificado
•identificadores:
para poder fazer uma condiçao if then else voce tbm precisa de identificadores
para isso vou postar os basicos pois existem varios
$me = seu proprio nick
$nick = o nick que ativa o comando
$ip = seu ip
$1 = primeira palavra
$chan = canal que onde o comando entra
$null = quando nao existe nenhum texto
•exemplos
vamos ver alguns exemplos
o comando != significa ''diferente''
se o $2 for diferente do meu nick kikar o $2
se eu for op no canal ''e'' $2 estiver no canal
kikar $2
o && significa mais de uma condiçao do if para o mesmo comando funcionar
isop significa ''se for op'' e ison ''se estiver no canal''
se eu for op e o nick estiver no canal
kikar $2
senao enviar a mensagem ao canal o nick nao se encontrra no canal
em breve lanço outros tutoriais qualquer duvida postem
•eventos remotes
•identificadores
•exemplos
•o que é uma estrutura if,then,else?
sao estruturas de condiçoes que precisam de uma condiçao pra existir
exemplo:
vamos usar um evento on text
- Código:
on *:text:!kill*:#:{
if ($2 == $me) {
/quit
}
}
os remotes sao usados em mIRCbots
on nivel:evento:comando1:local:{ comandos }
os niveis sao niveis especificados por quem vai executar os comandos voce define um nivel digitando /auser nivel nick
por exemplo : /auser 5 nick
os eventos e a parte da programaçao onde o bot vai reconhecer por exemplo no evento on text
se alguem digitar a palavra !kill e se a segunda palavra for o nick do bot ( if ($2 == $me) ) ele vai sair do IRC
o comando1 e onde o bot reconhece os comandos q forem feitos pra poderem fazer os comandos programados no caso o comando1 e o ''!kill''
o local e onde vai ser digitado o comando1 por exemplo podemos usar o # para designar que esse comando pode ser feito em todos os canais
o if usa a condiçao de se o nick for igual ao bot ''if ($2 == $me)''
vamos traduzir esse comando ''se (a palavra depois de !kill($2) for igual(==) ao meu nick($me)) { executar o comando }
mas existe uma outra condiçao o else
o else e usado em condiçoes contrarias ao if por exemplo if ($2 == $me) { /msg $chan meu nick nao pode ser killado } | else { /kick # $2 voce foi kikado do canal }
vamos traduzir o comando ''se (a palavra depois de !kill($2) for igual(==) ao meu nick($me)) { mensagem ao canal ( /msg $chan ) meu nick nao pode ser killado }^
senão(else) { /kick canal(#) nick digitado($2) voce foi kikado do canal }
o else apenas usa a funçao do ''se a segunda palavra nao for igual ao meu nick executar comandos"
•eventos remotes:
os eventos sao:
on *:action:texto:#:{ } quando qualquer nick manda um texto por /me
on *:text:texto:#,?:{ } onde # e qualquer canal e ? e a janela do pvt ou qualquer janela
on *:signal:{ } quando o script recebe um sinal feito por /signal nick
on *:mode:modo:#:{ } quando algum modo e alterado na sala
on *:topic:#:{ } quando o topico e mudado
on *:invite:?:{ } quando e enviado um convite para o nick onde ? e qualquer janela
on *:load:{ } quando qualquer script e carregado
on *:unload:{ } quando qualquer script e descarregado
on *:kick:#:{ } quando qualquer nick e kikado da sala
on *:ban:#:{ } quando qualquer nick e banido da sala
on *:join:#:{ } quando qualquer nick entra na sala
on *:quit:#:{ } quando qualquer nick deixa a sala
on *:nick:#:{ } quando qualquer nick muda de nick
on *:notice:?:{ } quando qualquer nick envia um notice a voce em qualquer janela
on *:open:?:{ } quando qualquer nick abre uma janela pvt com voce
on *:part:#:{ } quando qualquer nick deixa a sala com a mensagem [user quit]
on *:start:{ } quando voce abre o seu script
on *:connect:{ } quando voce se conectar a rede
on *:disconnect:{ } quando voce se disconecta da rede
on *:op:#:{ } quando voce recebe op
on *:deop:#:{ } quando tiram o seu op
on *:voice:#:{ } quando te dao voice
on *:devoice:{ } quando tiram o seu voice
on raw:*:{ } quando o server faz qualquer comando de rede nesse caso o raw e especificado
•identificadores:
para poder fazer uma condiçao if then else voce tbm precisa de identificadores
para isso vou postar os basicos pois existem varios
$me = seu proprio nick
$nick = o nick que ativa o comando
$ip = seu ip
$1 = primeira palavra
$chan = canal que onde o comando entra
$null = quando nao existe nenhum texto
•exemplos
vamos ver alguns exemplos
- Código:
on *:text:!kick*:#:{
if ($2 != $me) {
/kick # $2 $3
}
}
o comando != significa ''diferente''
se o $2 for diferente do meu nick kikar o $2
- Código:
on *:text:!kick*:#:{
if (($me isop #) && ($2 ison #)) {
/kick # $2 $3
}
}
se eu for op no canal ''e'' $2 estiver no canal
kikar $2
o && significa mais de uma condiçao do if para o mesmo comando funcionar
isop significa ''se for op'' e ison ''se estiver no canal''
- Código:
on *:text:!kick*:#:{
if (($m2 isop #) && ($2 ison #)) {
/kick # $2 $3
}
else { /msg $chan o nick nao se encontra no canal }
}
se eu for op e o nick estiver no canal
kikar $2
senao enviar a mensagem ao canal o nick nao se encontrra no canal
em breve lanço outros tutoriais qualquer duvida postem
Chatbrasil :: Forum :: Aulas
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|