1 2
3 4

    | News | Mappa Sito | Partners |

     
 
 
 
 
 Script
 
 
 Addon
 
 
 
 
 
 
 
 


:: Bot e Shell ::
Realizzazione di un semplice IRC Bot

In questo tutorial ci occuperemo della realizzazione di un IRCBOT ovvero di come realizzare da noi un particolare mirc script che renda piu piacevoli le nostre permanenze nei canali IRC oppure semplicimente per diverse utilita'.

Esamineremo due tipi di IRCBOT :

•  Bot Funny ( Giochi,Saluti,Risposte,Barzellette)

•  Bot Guardian (Permette l'accesso al chan solo agli user a lui addati)

I due bot da come si puo notare sono molto differenti sia per concezione che per quanto riguarda il loro code che li origina:il primo si basa molto su un interfaccia e su funzioni molto user friendly,l'altro assume un determinato compito nell'ambito delle liste di accesso ad un particolare chan.

Seguendo passo passo quanto da me riportato anche i meno abbienti al mirc-scripting non avranno problemi con la riuscita dai tale lavoro,tuttavia bisogna partire con una premessa e con dei prerequisiti:

•  mIRC vergine 6.17 (anche il 6.16 va più che bene)

•  Molta pazienza

•  3 ore di lavoro minime

 

PARTE 1: REALIZZAZIONE BOT FUNNY

Allora iniziamo a suddividere il lavoro che andremo a compiere per varie fasi:

1) realizzazione grafica

2) scrittura primi code

3) controlli e test finali

1.1 Realiazzione Grafica
Per realizzare una piacevole grafica per il nostro bot sarà sufficiente usare un qualsiasi programma di editor immagini come Paint o Photoshop,vi consiglio di scaricare uno sfondo di base dall'aposita sezione qui su mircmania e di apllicare le vostre scritte personalizzate su di esse.

Fatto cio possiamo realizzare anche una smpatica toolbar,ne sn disponibili molte nella sezione mirc toolbar.

Per applicare le nostre immagini sara' sufficiente cliccare col tasto destro del mouse sullo sfondo dello script e selezionare select background,per quanto riguarda la toolbar stessa cosa,solo cliccare sullo sfondo di essa e selezionare select button.

1.2 Realizzazione primi code
Terminata questa semplice fase e ovviamente opzionale,addentriamoci nello scripting vero e proprio del nostro futuro IRC BOT.

Cominciamo con il realizzare alcuni semplici script di remote come il saluto,risposte divertenti associate a determinate azioni,ecc.

Andiamo sulla nostra toolbar e selezionamo script editor,da li selezionamo new e cominciamo a scrivere il nostro code.

I vari commenti possiamo racchiuderli con i simboli /* */ es: ( /* Risposte automatiche */ ) questa parte verrà ignorata dal nostro mirc e servira' solo a rendere nota la funzione dello script che ne seguirà.

Eccovi riportati le stringhe piu importante che dovete solo modificare a vostro piacimento e incollare nel riquadro dei remote:

on *:join:#: if ($nick == $me) { msg $chan Ciauz a tutti di _15 $chan }

questa riga consiste nel saluto automatico che partirà da solo quando joinerete un chan

N.B ovviamente e' possibile arricchiere il testo con colori digitando ctrl+k,oppure sottolinearlo con ctrl+u o renderlo in grassetto con ctrl+b

N.B ogni script deve essere distanziato con quello di sopa con la riga ################################.

/* Ask On Mode by Mattia Script */

/* Semplici ringraziamenti ai mode ricevuti in chan */

on *:op:*:{

if ($opnick == $me) { /msg $chan ___4,1(_ _4GrAziE _7PeR l'_8@p. _15OrA DoMiNo _13:D __4)_ }

}

on *:deop:*:{

if ($opnick == $me) { /msg $chan ___4,1(_ _4WeEeE _7RiDaMmI il MiO _8@p. _15:° _13CaTtIvO __4)_ }

}

on *:voice:*:{

if ($vnick == $me) { /msg $chan ___4,1(_ _4GrAziE _7PeR il _8VoIcE. _15CaPiRaI -_- _13lol XD __4)_ }

}

on *:devoice:*:{

if ($vnick == $me) { /msg $chan ___4,1(_ _4MinChIa PuRe _7Il VoIcE _8Mi LeVi??. _15OrA Sn ImPoTeNtE :o _13asd __4)_ }

}

on *:help:*:{

if ($hnick == $me) { /msg $chan ___4,1(_ _4ThAnKs MaN _7FoR ThE _8%. _15NoW I OwN YoU xD _13ma loool __4)_ }

}

on *:dehelp:*:{

if ($hnick == $me) { /msg $chan ___4,1(_ _4Uffff _7RiDaMmI Il _8%. _15:°°°°°°° _13SvK4 Va __4)_ }

/* Voice automatico agli utenti che joinano */

on *:join:#vostrochan:{ /mode #vostrochan +v $nick }

/* Saluto automatico agli utenti che joinano nel vostro canale */

on *join:#vostrocanale:{ /msg #vostrocanale testo }

/* Risposta e/o azioni a determinate paorle */

on *text:#:{

if (ciao == $$1) && ($$2) { /msg # ciao $$2 }

if (gay == $$1) && ($$2) { /msg # non dire parolaccie! $$2 }

if (merda == $$1) && ($$2) { kick # $$2 non dire parolaccie!!! }

}

Terminati questi semplici code di remote comicniamo a lavorare sui popus del nostro IRC BOT.

Andiamo sulla nostra toolbar e scelgiamo la voce popus,fatto questo possiamo scegliere cosa modificare;i popus sono quei comandi che appaiono facendo click col tasto destro del mouse sulla nicklist,sul channel,nella finestra di query e anche della nostra menubar.

Per editare questi semplici script e sufficiente dare un comando per riga costituito da questa sintassi es:

Oppa nick:/mode $chan +o $1

e andiamo avanti cosi via dando sfogo alla nostra libera fantasia,naturalmente e' possiible aggiungere frasi divertenti e nuovi comandi.

Terminata questa operazione dedichiamoci interamente alle raw,ovvero tutti quei messaggi del server che ci vengono inviati nello status,se seguite passo passo quanto riportato riuscirete a visualizzarli nella finestra attiva e a colorarli.

Eccovi la lista:

000
001 Welcome to the Internet Relay Network nickname
002 :Your host is server, running version ver
003 :This server was created datetime
004 server ver usermode chanmode
005a :map
005b protocols :are available on this server
007 :End of /MAP
008 num :: Server notice mask (hex)
200
211 :connection sendq sentmsg sentbyte recdmsg recdbyte :open
212 command uses bytes
213 C address * server port class
214 N address * server port class
215 I ipmask * hostmask port class
216 k address * username details
217 P port ?? ??
218 Y class ping freq maxconnect sendq
219 char :End of /STATS report
221 mode
222a nickmask :comment
222b B server * ?? ?? ??
223 E hostmask * username ?? ??
224 D ipmask * username ?? ??
241 L address * server ?? ??
242 :Server Up num days, time
243 o mask password user ?? class
244 H address * server ?? ??
247 G address timestamp :reason
248 U host * ?? ?? ??
249 :info
250 :Highest connection count: total (num clients)
251 :There are user users and invis invisible on serv servers
252 num :operator(s) online
253 num :unknown connection(s)
254 num :channels formed
255 :I have user clients and serv servers
256 :Administrative info about server
257 :info
258 :info
259 :info
263 :Server load is temporarily too heavy. Please wait a while and try again.
265 :Current local users: curr Max: max
266 :Current global users: curr Max: max
271 nick mask
272 :End of Silence List
280 address timestamp reason
281 :End of G-line List
290 :num ***** topic *****
291 :text
292 : ***** Go to #dalnethelp if you have any further questions *****
293 :text
294 :Your help-request has been forwarded to Help Operators
298 nick :Nickname conflict has been resolved
300
301 nick :away
302 :userhosts
303 :nicknames
305 :You are no longer marked as being away
306 :You have been marked as being away
307 :userips
310 nick :looks very helpful
311 nick username address * :info
312a nick server :info
312b nick server :signoff
313 nick :is an IRC Operator
314 nick username address * :info
315 request :End of /WHO list.
317 nick seconds signon :info
318 request :End of /WHOIS list.
319 nick :channels
321 Channel :Users Name
322 channel users :topic
323 :End of /LIST
324 channel mode
328 channel :url
329 channel time
331 channel :No topic is set.
332 channel :topic
333 channel nickname time
341 nick channel
351 version .debug server :info
352 channel username address server nick flags :hops info
353 = channel :names
364 server hub :hops info
365 mask :End of /LINKS list.
366 channel :End of /NAMES list.
367 channel ban nick time
368 channel :End of Channel Ban List
369 request :End of WHOWAS
371 :info
372 :- info
374 :End of /INFO list.
375 :- server Message of the Day -
376 :End of /MOTD command.
377 :- info
378 :- info
381 :You are now an IRC Operator
382 file :Rehashing
391 server :time
400
401a nickname :No such nick
401b * :Target left UnderNet. Failed to deliver: message
402 server :No such server
403 channel :No such channel
404 channel :Cannot send to channel
405 channel :You have joined too many channels
406 nickname :There was no such nickname
407 target :Duplicate recipients. No message delivered
409 :No origin specified
411 :No recipient given (command )
412 :No text to send
413 mask :No toplevel domain specified
414 mask :Wildcard in toplevel Domain
416 command :Too many lines in the output, restrict your query
421 command :Unknown command
422 :MOTD File is missing
423 server :No administrative info available
431 :No nickname given
432 nickname :Erroneus Nickname
433a nickname :Nickname is already in use.
433b nickname :Nickname is registered to someone else.
436 nickname :Nickname collision KILL
437 channel :Cannot change nickname while banned on channel
438 nick :Nick change too fast. Please wait sec seconds.
439 target :Target change too fast. Please wait sec seconds.
441 nickname channel :They aren't on that channel
442 channel :You're not on that channel
443 nickname channel :is already on channel
445 :SUMMON has been disabled
446 :USERS has been disabled
451 command :Register first.
455 :Your username ident contained the invalid character(s) chars and has been changed to new. Please use only the characters 0-9 a-z A-Z _ - or . in your username. Your username is the part before the @ in your email address.
461 command :Not enough parameters
462 :You may not reregister
467 channel :Channel key already set
468 channel :Only servers can change that mode
471 channel :Cannot join channel (+l)
472 char :is unknown mode char to me
473 channel :Cannot join channel (+i)
474 channel :Cannot join channel (+b)
475 channel :Cannot join channel (+k)
477a channel :You need a registered nick to join that channel.
477b channel :Channel doesn't support modes
478 channel ban :Channel ban/ignore list is full
481 :Permission Denied- You're not an IRC operator
482 channel :You're not channel operator
483 :You cant kill a server!
484 nick channel :Cannot kill, kick or deop channel service
491 :No O-lines for your host
500
501 :Unknown MODE flag
502 :Cant change mode for other users
510 :You must resolve the nickname conflict before you can proceed
511 mask :Your silence list is full
512a address :No such gline
512b :Authorization required to use Registered Nickname nick
512c nick :Maximum size for WATCH-list is num entries
513 If you can't connect, type /QUOTE PONG code or /PONG code
600
600 nick userid host time :logged offline
601 nick userid host time :logged online
602 nick userid host time :stopped watching
603 :You have mine and are on other WATCH entries
604 nick userid host time :is online
605 nick userid host time :is offline
606 :nicklist
607 :End of WATCH query

Ora scegliamo quali raw vogliamo modificare a andiamo nel nostro script editor aprendo un nuovo script di remote e scriviamo la nostre raw in questo modo:

raw 381:*:echo -a __4 _Ora s__7ei un _15IRCOP_ | halt

questa raw ci avvisa che siamo divenuti ircop,ora e' sufficiente fare tante righe quante sono le raw che intendiamo modificare,basta solo logicamente modificare il numero.

La funzione echo -a ci fa visualizzare uin determinato messaggio nella finestra atttiva,se settiamo -s nello status e cosi via.

Per terminare il nostro IRCBOT e' consigliabile quasi di dovere scaricare qualche divertente irc games

eccovi il link dove reperire il famosissimo sillabh

http://remotes.altervista.org/download/sillabah.zip

Inoltre e' possibile aggiungere questo script nei remote che vi avvisa quando viene pronunciato il vostro nickname:

/* Nick Alert By Mattia Script */

/* Questo script vi avvisa quando viene pronunciato il vostro */

/* nick in una finestra non attiva */

on *:text:*:#:{

if ($me isin $strip($1-)) && (# != $active) {

echo -a __0 _7,1»__0,1_14,1]_15[__0,1_7,1« _8 Ti ha nominato $nick in $chan alle $time dicendo $1- _7,1»__0,1_14,1]_15[__0,1_7,1«

.splay input.wav

} }

1.3 Constrolli e test finali
Ora per terminare il nostro lavoro e' sufficiente connettere il bot ad una IRC Network come Irc.CristalNet.Org farlo joinare in un canale e testare le varie funzioni dai noi modificate e aggiunte:

messaggi di raw,i vari remote,popus,ecc.

Se qualcosa non torna c'e' sicuramente un errore di sintassi nei code dei vostri script,per qualsiasi forma di supporto venitemi a trovare su Irc.CristalNet.Org chan #scripting.

 

PARTE 2 REALIZZAZIONE BOT GUARDIAN

Realizzare un bot guardian e' una cosa estramamente facile in quanto consiste in un unico script da inserire nei remote,per tanto vi pasto qui il code standard che poi voi modificherete a vostro piacimento.

Il bot guardian permette solo algi utenti a lui addati di joinare il chan su cui e' impostato.

;=====================================

; Guardian Bot modded by Mattia

;=====================================

menu channel,menubar,query {

Guardian

.$iif($dialog(wql),$style(2)) Apri:dialog -m wguardian wguardian

.Aggiungi Nick:{

var %tmp.anick = $input(Inserisci il Nick nella lista,e-,Guardian,)

if (%tmp.anick != $null) { /addnick $+ $chr(32) $+ %tmp.anick

}

}

.Rimuovi Nick:{

var %tmp.cnick = $input(Cancella il Nick dalla lista,e-,Guardian,)

if (%tmp.cnick != $null) { /delnick $+ $chr(32) $+ %tmp.cnick

}

}

}

menu nicklist {

Guardian

.$iif($hget(guardian,$$1),Rimuovi $+ $chr(9) $+ $$1 dalla lista,Aggiungi $+ $chr(9) $+ $$1 alla lista): $iif($hget(guardian,$$1),hdel guardian $$1,hadd -m guardian $$1 $true) | .hsave -o guardian $scriptdirguardian.txt | $iif($hget(guardian,$$1),echo -atic join -->_ $$1 _é stato inserito nella lista,echo -atic quit <--_ $$1 _é stato rimosso dalla lista)

.-

.Apri:dialog -m wguardian wguardian

}

dialog wguardian {

title " Guardian Ban Script v1.5 by Storm"

size -1 -1 450 436

option pixels

button "Rimuovi", 2, 10 403 80 22, flat

list 3, 24 30 400 350, vsbar size sort

box "Elenco Utenti autorizzati", 4, 10 6 428 390

text "", 5, 360 410 100 22

}

on *:start:{

hmake guardian 15

if ($isFile($scriptdirguardian.txt)) { hload guardian $scriptdirguardian.txt }

else {

.hsave -o guardian $scriptdirguardian.txt

}

}

on *:load:{

echo -astic join --» Guardian Ban Script v1.5 by Storm «--

}

on *:dialog:wguardian:init:0:{

hfree guardian

if !$hget(guardian) {

hmake guardian 15 | hload guardian $scriptdirguardian.txt }

var %nug = 1

while $hget(guardian,%nug).item {

did -a wguardian 3 $v1

inc %nug

}

did -b wguardian 2

did -a wguardian 5 Tot. Utenti: $+ $chr(32) $+ $did(3).lines

}

on *:dialog:wguardian:sclick:2:{

if ($did(3).sel == $null) { return }

else {

set %ugf $did(3).seltext

did -d wguardian 3 $did(3).sel

did -b wguardian 2

.hdel -sw guardian %ugf

did -a wguardian 5 Tot. Utenti: $+ $chr(32) $+ $did(3).lines

.hsave -o guardian $scriptdirguardian.txt

echo -atic quit <--_ %ugf _é stato rimosso dalla lista

}

}

on *:dialog:wguardian:sclick:3:{ if ($did(3).seltext != $null) { did -e wguardian 2 } }

on *:ban:#CasT: if (*ciao@*pool62211* iswm $banmask) { mode $chan -b $banmask }

on *:kick:#CasT:if ($me isin $Knick) { join #CasT }

on *:join:#CasT:{

if ($me isin $nick) { halt }

if !$hget(guardian,$nick) {

ban -u1800 #CasT $nick $+ !*@*

kick #CasT $nick Guardian banned you (Spiacente, il canale è privato.)

}

else {

}

}

alias qb {

var %e = echo -aet

if ($1 = add) {

if (!$2) {

%e Uso: /qb add <nickname>. Es: /qb add tar | return

}

else {

if ($istok(%fwpres,$2,32)) %e $2 è gia presente nella lista dei nick.

else { %fwpres = $addtok(%fwpres,$2,32) | %e $2 è stato aggiunto alla lista dei nick. }

}

}

if ($1 = del) {

if (!$2) {

%e Uso: /qb del <nickname>. Es: /qb del pippo | return

}

else {

if (!$istok(%fwpres,$2,32)) %e $2 non è presente nella lista dei nick.

else { %fwpres = $remtok(%fwpres,$2,1,32) | %e $2 è stato tolto alla lista dei nick. }

}

}

if ($1 = list) {

tokenize 32 %fwpres

%e Lista nick FastWeb bannati

echo -a - | echo -a $*

}

}

alias addinick {

hadd -m guardian $1 $true

hsave -o guardian $scriptdirguardian.txt

echo -atic join -->_ $$1 _é stato inserito nella lista

}

alias delnick {

hdel guardian $1 $true

hsave -o guardian $scriptdirguardian.txt

echo -atic quit <--_ $$1 _é stato rimosso dalla lista

}

ctcp 1:metti:*: {

if (($nick == cast) || ($nick == Max01) || ($nick == Pastick01) || ($nick == masteraid)) {

hadd -m guardian $2 $true

hsave -o guardian $scriptdirguardian.txt

.msg $nick $2 è stato inserito con successo!

}

else {

.msg $nick Spiacente.... stai usando un comando non consentito!

}

}

ctcp 1:togli:*: {

if (($nick == cast) || ($nick == Max01) || ($nick == Pastick01) || ($nick == masteraid)) {

hdel guardian $2 $true

hsave -o guardian $scriptdirguardian.txt

.msg $nick $2 è stato rimosso con successo!

}

else {

.msg $nick Spiacente.... stai usando un comando non consentito!

}

}

ctcp 1:glist:?: {

if (($nick == cast) || ($nick == Max01) || ($nick == Pastick01) || ($nick == masteraid)) {

dcc send -c $nick $scriptdirguardian.txt

}

else {

.msg $nick Spiacente.... stai usando un comando non consentito!

}

}

on *:unload:{

hfree guardian

echo -astic quit --» Guardian Bot modded By Mattia «-

}

Inserito chan risulta chiaro che bisogna modifcare questo code per settare i nick che avranno la possibilita' di addare utenti al bot,il chan dove il bot dovra' lavorare e il metodo per addare gli user,qui e' impostato con il ctcp ma potete tranquillamente modificarlo con un evento on text.

Per qualsiasi dubbi o chiarimenti vi aspetto su Irc.CristalNet.Org nel chan #scripting

Autore: Mattia
(© www.mircmania.it)

 

SCAMBIO LINK
Per i Canali o Network che hanno un proprio sito web, quest'ultimo può essere linkato nell'apposita sezione, attraverso uno scambio link. Quando effettuate la segnalazione, indicate oltre al nome, anche l'url del vostro sito e l'ubicazione della pagina contenente il link verso mIRC Mania
Segnala Sito Web

IRC Link
Scopri i siti ufficiali dei Network e dei Canali presenti su IRC.
Visualizza Siti

WEB CHAT IRC
Entra in chat con mIRC Mania per conoscere tanti nuovi AMICI o per cercare la tua ANIMA GEMELLA.
Join Chat

SCRIPT UFFICIALE
.:|SkyLab Script|:. è il nostro script ufficiale. All'interno sono presenti tutte le funzioni necessarie per passare piacevoli ore in CHAT in sicurezza e divertendosi. Richiede Win XP/Vista o relativo emulatore per fuzionare correttamente.
Download Script

 

AMICI

 
  Vedi anche : Sfondi desktop AZZURRI - Giochi CALCIO Gratis - Mame
     

© mIRC Mania, 2001-16; Ogni riproduzione totale o parziale dei contenuti esclusivi di questo portale sarà punita a norma di legge. Il webmaster non si assume nessuna responsabilità riguardo a link o programmi presenti all'interno di questo sito e sul loro utilizzo inappropriato. mIRC e' un software sviluppato da Khaled Mardam-Bey, sito originale mirc.com - Ogni marchio, logo o immagine presente sul sito è di proprietà dei rispettivi autori
Privacy & Disclaimer