Portale IRC - Guide scripts e snippet

Visualizzazione post con etichetta mIRC Snippet's. Mostra tutti i post
Visualizzazione post con etichetta mIRC Snippet's. Mostra tutti i post

giovedì 28 giugno 2012

BAN on JOIN se NICK == IDENT

Per bannare al join un utente, il cui nickname sia uguale al suo ident:

Esempio:

Ciccio!Ciccio@address.it

Dove "Ciccio" è il nickname
"Ciccio" è l'ident e address *!*@address.it è la parte dopo la chiocciola.

Aprite un nuovo remote e incollatevi questo:

alias trovaident {
  var %nick-ident = $remove($gettok($address($1,3),1,$asc(@)),*!*)
  return %nick-ident
}

alias trovabadident {
  if ($1 == $nick) {
    return $true
    else {
      return $false
    }
  }
}
ON *:JOIN:#test: {
  if ($nick != $me) && ($me isop $chan) {
    if ($trovabadident($trovaident($nick)) == $true) {
      kick # $nick Il Tuo ident non mi piace
      mode # +b $address($nick,2)
    }
  }
}

In questo modo se il nickname corrisponde all'ident , verrà impostato un ban sull'host del tale, se volete cambiare il tipo di ban impostato, cambiate questa parte:

  if ($trovabadident($trovaident($nick)) == $true) {
      kick # $nick Il Tuo ident non mi piace
      mode # +b $address($nick,2)
    }
  }
}
 

mercoledì 7 marzo 2012

mIRC Snippet's - Controllo Host di tutti i Nick presenti in Chan


Volete sapere quanti utenti nel vostro canale (e non solo) usano Telecom ?
 Volete impicciarvi del tipo di connessione che utilizza la maggioranza delle persone? E qual'è la meno utilizzata ?
Create un Nuovo Remote (Alt+R ->File -> Nuovo) ed incollate questo Snippet:

menu channel {
@provider: /provider
}


alias provider {
window @provider
echo @provider 4] Statistica Provider presenti su $chan ( $nick($chan,0) Utenti ) [
echo @provider - 9Telecom Italia 7n° $ialchan(*!*@*retail.telecomitalia*,$chan,0)
echo @provider - 9Business Telecom Italia 7n° $ialchan(*!*@*business.telecomitalia*,$chan,0)
echo @provider - 9Fastweb 7n° $ialchan(*!*@*fastweb*,$chan,0)
echo @provider - 9Wind 7n° $ialchan(*!*@*wind*,$chan,0)
echo @provider - 9Tiscali 7n° $ialchan(*!*@*tiscali*,$chan,0)
echo @provider - 9Vodafone 7n° $ialchan(*!*@*vodafone*,$chan,0)
echo @provider - 9Teletu 7n° $ialchan(*!*@*teletu*,$chan,0)
echo @provider - 9Libero 7n° $ialchan(*!*@*libero*,$chan,0)
echo @provider - 9Net24 7n° $ialchan(*!*@*net24*,$chan,0)
echo @provider - 9Eutelia 7n° $ialchan(*!*@*eutelia*,$chan,0)
echo @provider - 9McLink 7n° $ialchan(*!*@*mclink*,$chan,0)
echo @provider - 9Iol 7n° $ialchan(*!*@*iol.it*,$chan,0)
echo @provider - 9.IP (non rilevabili) 7n° $ialchan(*!*@*.ip,$chan,0)
echo @provider - 9megaweb.enerbit.it 7n° $ialchan(*!*@*megaweb.enerbit.it,$chan,0)
}

domenica 25 dicembre 2011

mIRC Snippet's - Colorare la Nick List

Ecco un codice snello e veloce , che vi permetterà di colorare la nicklist del vostro mIRC!

;;;;;Installation guide;;;;;;;
;;;1- copy this code and paste it into ur remotes alt + r or put it in ur script directory and write /load -rs nickcolor.mrc in ur script commandline;;;;;;;;
;;;2- enable ur address book color by : /abook > colors > enable(checkbox);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;3- write /painter to run the script;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;








;;;;the code starts here;;;;;;;;;;;;;;;;;;;;;;;
dialog painty {
title "NickList Painter"
size -1 -1 99 127
option dbu
combo 1, 38 9 53 61, size drop
combo 2, 38 23 53 61, size drop
combo 3, 38 40 53 61, size drop
combo 4, 38 56 53 61, size drop
box "Colors", 5, 4 0 91 106
text "OP", 6, 11 9 26 8
text "Halfop", 7, 11 23 25 8
combo 8, 38 72 53 61, size drop
text "Voice", 9, 11 40 25 8
text "Regular", 10, 11 56 25 8
text "$me ", 11, 11 72 25 8
check "Enable NickList Painter", 13, 17 111 65 10
button "&Save,Exit", 14, 30 88 37 12, default flat ok
}




on *:dialog:painty:init:* {
did -a painty 1,2,3,4,8 White(0) | did -a painty 1,2,3,4,8 Black(1) | did -a painty 1,2,3,4,8 Deep Blue(2) | did -a painty 1,2,3,4,8 Green(3)
did -a painty 1,2,3,4,8 Red(4) | did -a painty 1,2,3,4,8 Maron(5) | did -a painty 1,2,3,4,8 Purple(6) | did -a painty 1,2,3,4,8 Orange(7)
did -a painty 1,2,3,4,8 Yellow(8) | did -a painty 1,2,3,4,8 Light Green(9) | did -a painty 1,2,3,4,8 Cyan(10) | did -a painty 1,2,3,4,8 Light Blue(11)
did -a painty 1,2,3,4,8 Blue(12) | did -a painty 1,2,3,4,8 Pink(13) | did -a painty 1,2,3,4,8 Dark Grey(14) | did -a painty 1,2,3,4,8 Light Grey(15)
did -c painty 1 $calc($gettok(%op.color,1,3) + 1)
did -c painty 2 $calc($gettok(%hop.color,1,3) +1)
did -c painty 3 $calc($gettok(%voice.color,1,3) +1)
did -c painty 4 $calc($gettok(%regular.color,1,3) +1)
did -c painty 8 $calc($gettok(%me.color,1,3) +1)
if (%nickcolor.enable) { did -c painty 13 }
}
on *:dialog:painty:sclick:13 {
if ($did(13).state) { set %nickcolor.enable 1 }
else { unset %nickcolor.enable }
}
on *:dialog:painty:sclick:14 {
set %op.color $gettok($gettok($did(painty,1),2,40),1,41)
set %hop.color $gettok($gettok($did(painty,2),2,40),1,41)
set %voice.color $gettok($gettok($did(painty,3),2,40),1,41)
set %regular.color $gettok($gettok($did(painty,4),2,40),1,41)
set %me.color $gettok($gettok($did(painty,8),2,40),1,41)
if ($did(13).state == 0) {
.cnick -r 1
.cnick -r 1
.cnick -r 1
.cnick -r 1
.cnick -r 1
}
else {
.cnick -r 1
.cnick -r 1
.cnick -r 1
.cnick -r 1
.cnick -r 1
.cnick -s1 * %op.color @
.cnick -s1 * %hop.color %
.cnick -s1 * %voice.color +
.cnick -sl * %regular.color
.cnick -s1 $me %me.color
}
}
alias painter {
if ($dialog(painty)) { echo -a NickList Painter Is Already Opened }
else { dialog -m painty painty }
}
on *:unload {
.cnick -r 1
.cnick -r 1
.cnick -r 1
.cnick -r 1
.cnick -r 1
}

Fonte ufficiale Clicca Qui!

lunedì 27 giugno 2011

mIRC Snippets - Vota Bot - IRC Bot Per votazioni

Add-on per votazioni in canale con Adduserlist e possibilità di doppio voto (Voto A - Voto B) per la lista dei comandi !commandlist
Powered by http://www.mirc-scripting.blogspot.com - mAx` Helper.IRCgate.it

- -- ---[ Lista dei comandi]--- -- -
- !add - Adda un nickname alla lista dei votanti
- !addlist - Mostra in canale la lista dei votanti
- !svuota - Elimina la lista dei votanti
- !risultati - Mostra in canale il risultato delle votazioni
- Per votare bisogna essere addati al bot Gundam
- per essere addati digitate !add in canale
- una volta addati potete votare semplicemente scrivendo in privato a Gundam
- voto a o voto b.
- Se un nickname addato vota, viene notificato in canale.
- I voti sono segreti.
- Se non sei addato il bot ti impedisce di votare.
- -- ---[ End]--- -- -

Il Source lo potete reperire a questo link -> http://nopaste.info/c927d7ff75.html

sabato 26 febbraio 2011

Chan Stats - Statistiche utenti canali IRC

Volete sapere in modo rapido quanti utenti ci sono in ciascun canale in cui siete presenti?
Aprite i remote (Alt+R) ed incollate quanto segue in un nuovo file.. Salvate, fate tasto destro in qualsiasi canale, e troverete @- Statistiche canali -@ che vi retituirà un elenco dei canali e dell'utenza di ogni singolo canale.

menu channel {
  @- Statistiche Canali -@: /conta
}

alias conta {
  echo -a ~ 9Statistiche Canali ~ 9 http://www.mirc-scripting.blogspot.com
  if ($chan(1)) { /echo -a × $chan(1) - Utenti:    $nick($chan(1),0) }
  if ($chan(2)) { /echo -a × $chan(2) - Utenti:    $nick($chan(2),0) }
  if ($chan(3)) { /echo -a × $chan(3) - Utenti:    $nick($chan(3),0) }
  if ($chan(4)) { /echo -a × $chan(4) - Utenti:    $nick($chan(4),0) }
  if ($chan(5)) { /echo -a × $chan(5) - Utenti:    $nick($chan(5),0) }
  if ($chan(6)) { /echo -a × $chan(6) - Utenti:    $nick($chan(6),0) }
  if ($chan(7)) { /echo -a × $chan(7) - Utenti:    $nick($chan(7),0) }
  if ($chan(8)) { /echo -a × $chan(8) - Utenti:    $nick($chan(8),0) }
  if ($chan(9)) { /echo -a × $chan(9) - Utenti:    $nick($chan(9),0) }
  if ($chan(10)) { /echo -a × $chan(10) - Utenti:    $nick($chan(10),0) }
  if ($chan(11)) { /echo -a × $chan(11) - Utenti:    $nick($chan(11),0) }
  if ($chan(12)) { /echo -a × $chan(12) - Utenti:    $nick($chan(12),0) }
  if ($chan(13)) { /echo -a × $chan(13) - Utenti:    $nick($chan(13),0) }
  if ($chan(14)) { /echo -a × $chan(14) - Utenti:    $nick($chan(14),0) }
  if ($chan(15)) { /echo -a × $chan(15) - Utenti:    $nick($chan(15),0) }


mercoledì 23 febbraio 2011

IRC Bot - Creare Bot Saluti on JOIN

Mi Viene spesso chiesto "come creo un bot che quando entra qualcuno nel mio chan saluta con frasi simpatiche?"

E' piu lungo da spiegare che da fare, basta 1 riga, si , una riga di codice per fare tutto questo :P
Possiamo modificare il nostro Script/Bot oppure crearne uno da capo, comunque la procedura è la stessa e velocissima.
  • Aprite i remote (Alt+R)
  • Nuovo File
  • Incollate quanto segue:
on *:JOIN:#Miocanale: { /msg $chan $nick $read(benvenuto.txt) }
;Sostituire #miocanale con il vostro canale ovviamente) ;
  • Salvate e chiudete i remote
  • Aprite la cartella del vostro mIRC (Solitamente C:\mIRC\)
  • Tasto Destro -> Nuovo -> File Di testo
  • Nel file di testo scrivete delle frasi carine di benvenuto, una per rigo esempio:
Sei il Benvenuto!
Spero Ti troverai bene qui! Benvenuto!
Come va la vita? Benvenuto!
Etc etc etc
  • Salvate il file con il nome benvenuto.txt
Quando un utente entrerà nel canale che avete impostato, il bot leggerà una frase a random dal file benvenuto.txt, potete in qualsiasi momento aggiungere, eliminare o modificare le frasi che avete messo, semplicemente aprendo il file benvenuto.txt ed editandolo come meglio credete.




mercoledì 9 febbraio 2011

Query Manager - Accetta o Rifiuta i messaggi in privato!

Quante volte avreste voluto ignorare una query (messaggio privato) di una persona che ritenete "poco simpatica" ?

Con il Query Manager by http://www.mirc-scripting.blogspot.com  avrete a disposizione 3 funzioni, Accetta, Rifiuta e Ignora.


Per farlo funzionare, copiate ed incollate il codice nel vostro remote (Alt+R -> Nuovo File -> incolla-> salva)


on 1:OPEN:?:*:{
  set %query.nick $nick
  set %query.address $address($nick,1)
  set %query.text $1-
  close -m $nick
  .msg $nick Query Manager: Attendi, devo decidere se accettare o meno il tuo Pvt...
  query.decide
}
alias -l query.decide {
  dialog -m Query Query
}
dialog Query {
  title "Query"
  size 300 250 200 50
  option dbu
  text "Nick:", 2, 5 12 12 10, nowrap
  text "Text:", 3, 5 22 12 10, nowrap
  edit %query.nick %query.address, 4, 20 10 170 10, read
  edit %query.text, 5, 20 20 170 10, read
  button "Accetta", 6, 25 32 40 15
  button "Rifiuta", 7, 75 32 40 15
  button "Ignora", 8, 125 32 40 15
}
on 1:dialog:Query:*:* {
  if ($devent == sclick) {
    if ($did == 6) {
      dialog -x Query Query
      query %query.nick
      echo -t %query.nick < $+ %query.nick $+ > %query.text
      .msg %query.nick Query Manager : Il Tuo Pvt è Stato Accettato!
      unset %query.*
    }
    if ($did == 7) {
      dialog -x Query Query
      .msg %query.nick Query Manager : Il Tuo Pvt è Stato Rifiutato!
      unset %query.*
    }
    if ($did == 8) {
      dialog -x Query Query
      ignore -p %query.nick
      .msg %query.nick Query Manager : Il Tuo Pvt è Stato Rifiutato e Ti ho Messo in Ignore!
      unset %query.*
    }
  }
}


Buona Chattata!




lunedì 7 febbraio 2011

Anti Idle - Nascondere l'Idle Time - Hide my Idle

Molte persone per "vari motivi" che non stò qui a specificare hanno la necessità di "nascondere" il proprio Idle Time, ma cos'è l'idle time?
Nel momento in cui faccio un /whois NICK NICK posso vedere varie informazioni su un utente tra le quali appunto l'idle time, ovvero il tempo di inattività (tempo nel quale non stò scrivendo) come possiamo fare per mantenere questo Idle Time il più possibile vicino allo 0 senza essere fisicamente davanti al pc?
Semplice! Ogni Tot. Secondi (nel mio esempio 30s) compio un azione che annulli detto "tempo di inattività".. nel mio caso ogni 30 secondi di inattività (se l'anti idle è attivato on) il nostro client eseguirà un /ping $me , ovvero un ping verso noi stessi, e quindi porterà l'idle time a 0 .. eccovi il codice da copiare ed incollare nei remotes (Alt+R apre i remotes -> Nuovo Remote -> Incolla :

menu menubar {
  Anti-Idle
  .On:/timeridle 900 30 /ping $me | Set %anti-idle $true | echo -a A nti I dle by 9mIRC.Scripting.blogspot.com attivato !
  .Off:/timeridle off | Set %anti-idle $false | echo -a A nti I dle by 9mIRC.Scripting.blogspot.com Disattivato !
  .Connettiti al Sito Ufficiale: /run http://www.mirc-scripting.blogspot.com | /echo -a Connessione in corso a 9http://www.mirc-scripting.blogspot.com ...
}
on *:connect: { if (%anti-idle == $true) { .timeridle 900 30 /ping $me }
}

Le istruzioni sono molto semplici.. Andate nel menù del vostro mIRC-> Anti-Idle-> ON per attivarlo, OFF per disattivarlo.
Buon Divertimento!



giovedì 3 febbraio 2011

Controllo accessi in Chat, come tenere sott'occhio i JOIN ed i PART

Facendo parte del supporto utenti del network irc IRCgate.it ed essendo contemporaneamente presente in molti chan , mi capita spesso di "non" accorgermi quando qualche utente entra nel canale di supporto #IRChelp, per ovviare a questo inconveniente ho utilizzato due semplici ma efficaci stratagemmi, il primo consiste in uno script che, quando un utente joina nel chan di supporto, mi dice in echo (quindi lo leggo solo io, in qualunque canale o pvt mi trovi..) " IRChelp registra un JOIN da parte di TIZIO ed il secondo , qualora io non mi trovassi fisicamente davanti al pc, e quindi ci fosse la possibilità che deto messaggio mi sfugga, mi riporta in una @ window separata, tutti i JOIN sul canale di supporto con tanto di orario nick e indirizzo dell'utente.. (utile anche come "statistica degli accessi".. ma veniamo al codice:

on *:JOIN:#irchelp: {
  window @irchelp
  /echo @irchelp  [ 9 $asctime(HH:nn:ss) ] [ 9 #IRChelp ] Registra un [ 9 JOIN ] da parte di [ 9 $nick - $address($nick,2) ]
}

on *:PART:#irchelp: {
  window @irchelp
/echo @irchelp  [ 9 $asctime(HH:nn:ss) ] [ 4 #IRChelp ] Registra un [ 4 PART ] da parte di [ 4 $nick - $address($nick,2) }

domenica 16 gennaio 2011

Ban on JOIN su Bad Ident

Come bannare al join un utente che "indossi" un Ident "non gradito"? ( Nick!Ident@Host)
Semplice!
Incolla questo codice nei remotes , e sostituisci PrimoBadIdent,SecondoBadIdent e #canale con i valori che preferisci!

;Ban BadIdent by mAx`;
;Http://www.mirc-scripting.blogspot.com;
alias trovaident {
  var %nick-ident = $remove($gettok($address($1,3),1,$asc(@)),*!*)
  return %nick-ident
}
alias trovabadident {
  if ($1 == PrimoBadIdent) {
    return $true
  }
  elseif ($1 == SecondoBadIdent) {
    return $true
  }
  else {
    return $false
  }
}
ON *:JOIN:#Canale: {
  if ($nick != $me) && ($me isop $chan) {
    if ($trovabadident($trovaident($nick)) == $true) {
      kick # $nick Il Tuo ident non mi piace
      mode # +b $+(*!,$trovaident($nick),@*)
    }
  }
}

venerdì 14 gennaio 2011

mIRC Pc Info - Stats del vostro Pc senza uso di Dll

Incollate questo nei vostri aliases dopodiche utilizzate il comando /pcinfo per vedere le info "essenziali" sul vostro pc :)

pcinfo {
  say Statistiche di  $me
  say Ora Attuale: $time(h:nn:sstt)
  say Utilizzo mIRC $+ $version
  say I Miei User Mode sono: $usermode
  say Utilizzo Windows $os
  say Il mio Host è: $address($me,2)
  say Il mio nick è $nick
  say il mio IP è $ip
  say mIRC.exe si trova in $mircdir
  say Windows $os è attivo da: $duration($int($calc($ticks / 1000)))
  say Il mIRC è Connesso a $server $+ : $+ $port da: $uptime(mirc,1)
  say La Risoluzione del mio Monitor è: $window(-1).w $+ x $+ $window(-1).h
  say Attualmente su C:\: ho questo spazio disponibile $round($calc(($disk(c:).free) / 1024 / 1024000),2) $+ GB
  say Pc info® powered by  m i r c - s c r i p t i n g . b l o g s p o t . c o m
}

Ip Lookup Info tramite socket - Informazioni IP Host

Incollare questo negli aliases , vi fornirà , connettendosi ad un sito web e recuperando le info necessarie, il lookup di un IP , o di un dominio.
per farlo funzionare /whoisip IP o DOMINIO

Code:
alias whoisip {
  sockclose whois
  if ($regex($1,/^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})$/))  {
    sockopen whois whois.cyberabuse.org 43
    set %whois.ip $1-
  }
  if (!$regex($1,/^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})$/)) {
    .enable #DNS
    .dns $1-
  }
}

#DNS off
on *:DNS:{
  if ($dns(0).ip) {
    set %whois.ip $dns(0).ip
    sockopen whois whois.cyberabuse.org 43
  }
  else {
    msg $active Info L'ip l'host o il nickname inseriti non sono validi
  }
  .disable #DNS
  halt
}
#DNS end

on *:sockopen:whois: {
  if ($sockerr) {
    msg $active Impossibile connettersi al server!

    sockclose whois
  }
  else {
    sockwrite -nt whois %whois.ip
  }
}

on *:sockread:whois: {
  sockread %data
  if %data {
    if (%data == % http://www.cyberabuse.org/whois/)  {
      sockclose $sockname
      msg $active 4 - -- ---] Ip Info 4 [--- -- -
      msg $active 4 - -- ---] Powered by mAx` Helper.ircgate.it 4 [--- -- -
      msg $active 4 - -- ---] h t t p : / / w w w . m i r c - s c r i p t i n g . b l o g s p o t . c o m 4 [--- -- -
    }
    if (% $+ * !iswm %data) {
      msg $active 4 - -- ---] %data 4 [--- -- -   
    }
  }
}

lunedì 3 gennaio 2011

Clone Scan mIRC - Ottimo Clone scanner indentifica le connessioni multiple

; Copia ed incolla in un nuovo remote del tuo mirc!;
;Clone Scan by mAx` - irc.ircgate.it, #angel_&_Devil.;
menu channel {
  @clone scan: /vs
}

alias vs {
  hmake clones 500
  var %x = 1, %c = $iif($1 ischan,$1,$active),%ticks = $ticks,%clones
  if ($window(@clones)) window -c @clones
  window @clones
  if (%c ischan) && ($ialchan(*,%c,0) != $nick(%c,0)) { .enable #clones | aline @clones S tò a nalizzando l a I AL .. | .ial on | who %c }
  while ($nick(%c,%x)) {
    var %i = $ifmatch
    if ($hget(clones,$address(%i,2)) == $null) && ($ialchan($address(%i,2),%c,0) > 1) {
      inc %clones $ialchan($address(%i,2),%c,0)
      hadd clones $address(%i,2) $address(%i,2)
      var %temp,%a = 1
      while ($ialchan($address(%i,2),%c,%a)) {
        set %temp %temp $+ $chr(44) $ialchan($address(%i,2),%c,%a).nick
        inc %a
      }
      aline @clones $ialchan($address(%i,2),%c,0) 4Cloni che hanno come Indirizzo: 11 $address(%i,2) $+ :
      aline @clones - Nick del Clone: 9 $mid(%temp,2,$calc($len(%temp) - 1))
    }
    inc %x
  }
  aline @clones -
  aline @clones - -- ---- C onnessioni c on C loni R ilevate: $hmatch(clones,*,0)
  aline @clones - -- ---- In tutto ci sono n° %clones cloni
  aline @clones - -- ---- P er t rovarli c i h o m esso: $duration($calc(($ticks - %ticks) / 1000)) $gettok($calc(($ticks - %ticks) / 1000),2,46) $+ millisecs
  hfree clones
}
#clones off
raw 315:*: vs $2 | .disable #clones
#clones end

on *:connect: .disable #clones

giovedì 16 dicembre 2010

Comandi rapidi by on *:INPUT: Uso di $null e ($2)

La scorsa volta abbiamo parlato di una serie di comandi rapidi by on *:INPUT:*: , adesso vi mostro uno snippet dal mio mIRC, in cui utilizzo l'identificatore $2 racchiuso fra parentesi tonde -> ($2) e l'identificatore $null

on *:INPUT:*: {
if ($1 == .vop) && ($2 == $null) { /mode $chan +v $me }
elseif ($1 == .vop) && ($2) { /mode $chan +v $$2 }
if ($1 == .devop) && ($2 == $null) { /mode $chan -v $me }
elseif ($1 == .devop) && ($2) { /mode $chan -v $$2 }
if ($1 == .halfop) && ($2 == $null) { /mode $chan +h $me }
elseif ($1 == .halfop) && ($2) { /mode $chan +h $$2 }
if ($1 == .dehalfop) && ($2 == $null) { /mode $chan -h $me }
elseif ($1 == .dehalfop) && ($2) { /mode $chan -h $$2 }
if ($1 == .op) && ($2 == $null) { /mode $chan +o $me }
elseif ($1 == .op) && ($2) { /mode $chan +o $$2 }
if ($1 == .deop) && ($2 == $null) { /mode $chan -o $me }
elseif ($1 == .deop) && ($2) { /mode $chan -o $$2 }
if ($1 == .protect) && ($2 == $null) { /mode $chan +a $me
/cs protect $chan $me }
elseif ($1 == .protect) && ($2) { /mode $chan +a $$2 }
if ($1 == .deprotect) && ($2 == $null) { /mode $chan -a $me
/cs deprotect $chan $me }
elseif ($1 == .deprotect) && ($2) { /mode $chan -a $$2 }
if ($1 == .owner) && ($2 == $null) { /mode $chan +q $me
/cs owner $chan }
elseif ($1 == .owner) && ($2) { /mode $chan +q $$2 }
if ($1 == .deowner) && ($2 == $null) { /mode $chan -q $me
/cs deowner $chan }
elseif ($1 == .deowner) && ($2) { /mode $chan -q $$2 }
}

Come potete vedere, analizzando lo snippet, lo script dice che:
  • on *:INPUT:*: { ;Quando immetto un qualsiasi input dal mio client;
  • if ($1 == .op) && ( $2 == $null) { ; E, tale input corrisponde a .op , e tale input non è seguito da nulla $null ;
  • /mode $chan +o $me } ; Dammi lo status di Op ;
  • eleseif ($1 == .op) && ($2) { ; se invece, l'input è .op ma $2 "Esiste" ($2);
  • /mode $chan +o $2 { ;dai lo status di op a $2;
  • }
Link al Paste del code -> on *:INPUT:*: by mirc-scripting.blogspot.com

mercoledì 15 dicembre 2010

Bot Remote Control - Comandare un bot tramite on *:TEXT:

Quanti di voi nel proprio chan hanno un simpatico bot giochi, bot meteo, bot ansa o simili?
Molti credo.. Questi bot hanno molte funzioni, ma ci costringono continuamente a cambiare "window" per settare, cambiare, far entrare in un chan, fare uscire da un altro chan.. bene, gli on *:TEXT: possono venirci in aiuto, vediamo un esempio:
on *:TEXT:*:#: {
  if ($1 == !join) { /join $2 }
  if ($1 == !part) { /part $2 }
  if ($1 == !quit) { /quit Richiesto da $nick }
  if ($1 == !dillo) { msg $chan $2 }
}
Quando si digita in chan ($chan) come prima parola ($1) una delle seguenti: !join,!part,!quit,!dillo - il bot eseguirà i comandi indicati a lato, ovvero:
[@voi] !join #canalemio
[%bot] *** Has Joined #canalemio ***
[@voi] !part #canalemio
[%bot] *** Has Left #canalemio ***
[@voi] !Quit
[%bot] *** Quit: Utente disconnesso (Richiesto da @voi) ***
[@voi] !Dillo Sei bello!
[%bot] Sei Bello!
Ovviamente questo è il "Minimo" che si può fare, si possono sfruttare i notice ( on *:NOTICE: etc etc) i msg privati, l'unico limite è solo la fantasia, si può usare per fare "cambiare server" al bot, o semplicemente per disconnettersi (magari in caso di lag..) si può avviare un gioco (sfruttando gli alias presenti nel bot stesso ed evviandoli a seguito dell' on *:TEXT:*:#: )...
Questa non è una guida è uno spunto...
Buon Divertimento!

giovedì 9 dicembre 2010

Controllo Nick - Vedere Nick Precedenti di un Utente IRC

Quante volte vi sarà capitato di avere il sospetto che un utente con il nickname "Farfallina86" in precedenza vi abbia parlato con il nick "Bruno64" ? Sicuramente è un fatto sgradevole, ma con questo scriptino che lavora sulle "mask" ( Nick!Ident@host) degli utenti memorizzandole in hashtables, vi comunicherà in "echo" (lo vedrete solo voi) se un nickname ha precedentemente Joinato con un altro nickname, inoltre clickando con il tasto destro del mouse sul nick "sospetto" nella nicklist, attraverso il menù "Verifica Nick" -> "Nick Precedenti"potrete verificare quanto sopra, o attraverso il menù "azzera" resettare il tutto.. ma veniamo al "Cuore" del nostro script:
ON *:START: {
    hmake trackusers 10
  if ($isfile(trackusers.dat)) {
    hload trackusers trackusers.dat
  }
}
on *:JOIN:#: {
  if ($hget(trackusers,$address($nick,2))) {
    var %n = $ifmatch
      if ($istok(%n,$nick,32)) { var %d = $deltok(%n,$findtok(%n,$nick,1,32),32) }
    else { var %d = %n }
      if (!%d) { return }
    echo $colour(info) -ti2 $chan 4* $nick 3Prima è entrato con i/il nick $+ $iif($numtok(%d,32) > 1,s: 8,: 8) %d 
    if (!$istok(%n,$nick,32)) {
      hadd trackusers $address($nick,2) %n $nick
    }
  }
  else {
      hadd trackusers $address($nick,2) $nick
  }
}
on *:NICK: {
  if ($hget(trackusers,$address($newnick,2))) {
    var %n = $ifmatch
    if (!$istok(%n,$newnick,32)) {
        hadd trackusers $address($newnick,2) %n $newnick
    }
  }
  else {
    hadd trackusers $address($nick,2) $newnick
  }
}
menu nicklist {
  Verifica Nick
  .Nick Precedenti:{
    if (!$address($$1,2)) { echo $colour(info) -ti2 # 4* IAL non aggiornata per $$1 $+ , un attimo... | userhost $$1 | return }
    if ($hget(trackusers,$address($$1,2))) {
      var %n = $ifmatch
      if ($istok(%n,$$1,32)) { var %d = $deltok(%n,$findtok(%n,$$1,1,32),32) }
      else { var %d = %n }
      if (!%d) { goto notknown }
      echo $colour(info) -ti2 # 3* $$1 13Era conosciuto con i\il nick $+ $iif($numtok(%d,32) > 1,s: 8,: 8) %d
    }
    else {
      :notknown
      echo $colour(info) -ti2 # 4* $$1 13Nessun Risultato
    }
  }
  .Azzera:hdel trackusers $address($$1,2)
}
ON *:EXIT: {
  if ($hget(trackusers)) { hsave -o trackusers trackusers.dat }
}

lunedì 6 dicembre 2010

Ban Mask - Bannare in modo "efficace"

La stragrande maggioranza degli utenti che si ritrovano a fare i moderatori,non conoscono minimanente come dev'essere strutturato un ban e si affidano a script.. i quali 9 volte su 10 bannano in questo modo:
Prendiamo ad esempio questo utente: ---> Utentecattivo!Ident123@Host.provider.it
Utentecattivo!Ident123@Host.provider.it

Questa si chiama "mask" ed è l'insieme di Nick,Ident,Host
Gli script con il semplice utilizzo del "clic" del tasto destro sul nick e la selezione della voce "banna" 9 volte su 10 bannano l'intera mask,eseguono quindi questo comando:
/mode #nomecanale +b Utentecattivo!Ident123@Host.provider.it
in questo modo se l'utente è un minimo sveglio,cambia una delle 3 componenti della sua mask,(Nick,Ident,Host) e rientra nonostante il ban..
Tralasciando i metodi per cambiare Nick,Ident,Host (Semplicissimi i primi 2 un pò differente il discorso x l'host),
vediamo come impostare un ban "totale" su una mask:
Dividiamo la mask in 3 parti:
Nick
Ident
Host
Impostiamo 1 ban per ogni segmento della mask:
/mode #nomecanale +b Nick!*@*
/mode #nomecanale +b *!Ident@*
/mode #nomecanale +b *!*@Host
(Nel caso il tuo script lo consenta,anche la sintassi
/mode #nomecanale +bbb Nick!*@* *!Ident@* *!*@Host )

In questo modo l'utente indesiderato, avrà sicuramente più difficoltà a rientrare.

venerdì 3 dicembre 2010

Gradi di Accesso : VOP HOP AOP SOP FOUNDER + % @ & ~

Chiariamo una volta per tutte cosa sono i livelli di accesso comunemente chiamati  "gradi", ovvero le flag che nella nick list precedono il nostro e gli altri nick:
Nel 100% dei network IRC, le flag in uso sono + - % - @ - & - ~
Questi "gradi" ci dicono cosa possiamo e non possiamo fare nel canale in cui ci troviamo, piu alto è il grado, piu cose possiamo fare e a piu comandi abbiamo accesso, ma vediamoli nel dettaglio:
- ~ FOUNDER (solo al fondatore del chan), ed assume all'entrata nel canale lo stato +q;
- & SOP (SuperOp), all'entrata nel canale assume lo stato +a (protetto dal kick degli op (@)) e +o (operatore);
- @ AOP (AutoOp), all'entrata nel canale assume lo stato +o;
- % HOP (HalfOp), stato di mezzo operatore, assume all'entrata nel canale lo stato +h;
- + VOP (voice),Permette di "parlare" in un chan moderato (+m) Assume lo stato +v.

Per modificare le liste SOP, AOP, HOP, VOP nel caso di liste XOP (Di default) si usa il seguente comando:

Sintassi comando: /msg ChanServ GRADO canale ADD nick

Al posto di GRADO bisogna inserire SOP, AOP, HOP oppure VOP, al posto di canale il canale in cui volete modificare la lista, al posto di nick il nickname a cui volete assegnare il grado per salvarlo nella lista.


Nel caso di liste ACCESS (ovvero se abbiamo disattivato le liste Xop col comando /cs set #canale XOP OFF) i gradi saranno sempre gli stessi, ma per "Addare" un utente (Rigorosamente con nickname registrato) nelle liste bisognerà utilizzare una sintassi diversa:
/cs access #canale add NICK 3 (Voice)
/cs access #canale add NICK4 (Halfop)
/cs access #canale add NICK5 (Aop)
/cs access #canale add NICK 10 (Sop)
/cs access #canale add NICK 9999 (Cofounder) Non settabile con le XOP attive.

martedì 30 novembre 2010

mIRC - Messaggio a Tempo - Uso di Variabili e Timer

Questa volta utilizziamo Variabili e Timer del mIRC, per creare un "menù" che ci consenta, cliccando con il tasto destro del mouse in un qualsiasi #chan di settare,avviare,fermare,un messaggio a tempo,stabilendo:
  • Testo del Messaggio
  • Numero di Ripetizioni
  • Intervallo tra una ripetizione e l'altra
Andate nell'editor degli script ( Alt+R ) selezionate i "popup's" -> New o Nuovo ed incollate quanto segue:
@Messaggio a tempo:
.Setta nuovo Messaggio: {
  /set %msgtxt $$?="Inserisci il tuo messaggio"
  /set %msgrip $$?="Quante volte ripeto il messaggio?"
  /set %msgtime $$?="Ogni quanto ripeto il messaggio?"
  /timer %msgrip %msgtime msg $chan %msgtxt
  /echo -a [ 4 Messaggio a Tempo Avviato! ]
}
-
@Avvia Messaggio a tempo: {
  /echo -a [ 4 Messaggio a Tempo Avviato! ]
  /timermsg %msgrip %msgtime msg $chan %msgtxt
}
-
@Ferma Messaggio a tempo: {
  /echo -a [ 4 Messaggio a Tempo Fermato! ]
  /timermsg off
}

lunedì 29 novembre 2010

Mass /hop - Rejoin automatico in tutti i chan

; http://www.mirc-scripting.blogspot.com ;

;Copiare ed incollare in un nuovo remote questo script;
;permette di rejoinare automaticamente tutti i chan in cui ci si trova;
;il comando per eseguire lo script è /mhop; 
alias mhop {
  var %sn = 1, %sc = 1
  if ($1 == -a) {
    if (($status == connected) && ($chan(0) != 0)) {
      while (%sc <= $chan(0)) {
        var %c = %c $+ $chan(%sc) $+ $chr(44)
        inc %sc
      }
      .partall $2- | join %c
    }
  }
  else {
    while (%sn <= $scon(0)) {
      .scon %sn
      if (($status == connected) && ($chan(0) != 0)) {
        while (%sc <= $chan(0)) {
          var %c = %c $+ $chan(%sc) $+ $chr(44)
          inc %sc
        }
        var %exc = %exc .scon %sn join %c $chr(124), %sc = 1, %c
        .partall $1-
      }
      inc %sn
    }
    %exc
  }
}