sabato 31 luglio - 03:02
Google
 
Menù
  Home
  Come nasce IRC-Zone
  Glossario Informatico
  News
  I nostri progetti
  I nostri servizi
  Partners
  Diventa un Partner

IRC
  Cos'è IRC
  Storia di IRC
  Netiquette su IRC
  Emoticons
  Gergo della chat
  Lista Servers
  RFC 1459
  Shell Hosting

mIRC
  Cos'è il mIRC
  FAQ mIRC
  Configurazione mIRC
  Download mIRC
  Novità
  Script Stranieri
  Script Italiani
  MTS
  MTS Engine

mIRC Addon
  mIRC addon Audio
  mIRC addon SMS
  mIRC addon Grafica
  mIRC addon Utility
  mIRC addon Uso Bot

Client IRC
  Client IRC Linux
  Client IRC Mac
  Client IRC Win

XChat
  Cos'è XChat
  XChat per Win
  XChat per Unix

KVirc
  Cos'è KVirc
  FAQ KVirc
  Installazione su Linux
  KVirc Scripting
  KVirc per Mac
  KVirc per Win
  KVirc per Unix
  KVirc addon

Irssi
  Cos'è Irssi
  Download Irssi
  Download Moduli

Eggdrop/Windrop
  Cos'è un Eggdrop
  Download Eggdrop
  Configurazione Eggdrop
  Download Windrop
  Installazione Windrop

Tcl
  Download TCL
  Tutorial TCL scripting
  Documenti/Guide

BNC
  Cos'è un psyBNC
  Download psyBNC
  Configurazione psyBNC
  Download sBNC
  Configurazione sBNC

Linkaci!
footer

Credits
Somerights

Donazione con Paypal
footer

Statistiche
Ip: 38.107.191.105
Download: 486121 file
Totale: 654581 MB

footer



Le procedure

Autore: Kaesar83Data: 2005-09-14
Modificato: 2005-09-20 Letture: 2452
Torna indietroStampa articoloInvia ad un amico

Una procedura è una parte di codice che può essere richiamata da qualcosa all'interno del programma.
Quando avviene un'azione (join o scrittura di testo in un canale) il bind verrà innescato e verrà richiamata una procedura per agire.
Se per esempio vuoi creare uno script per il kick/ban per spam, quando un utente scriverà il nome di un canale diverso da quello in cui è presente allora richiameremo una procedura, dopo la procedura invierà i comandi per il kick/ban dell'utente che ha spammato in canale.

La sinstassi per la procedura è:
proc [nome della procedura] { [variabili] [corpo della procedura] }

Quando viene azionato un bind, questo fornisce determinate informazioni alla procedura che è richiesta per fare qualsiasi cosa, informazioni circa i nicks, gli hosts e tutti gli argomenti necessari.

Un esempio di bind e di procedura è questo:
bind pubm - hello pubm:hello
proc pubm:hello {nick host handle chan text} {
putserv "PRIVMSG $chan :Hello $nick"
}

Il bind è del tipo public match (pubm) quindi viene innescato quando qualche utente scrive in canale
Non sono definite alcune flags per l'innesco del bind (come detto nella scorsa guida "-" significa niente)
il bind viene fatto partire quando qualcuno scrive "hello"
La procedura chiamata è pubm:hello

La procedura contiene putserv che è il comando che invia testo al server
PRIVMSG è il comando del server per inviare un messaggio privato
$chan è la variabile che conterrà il canale nel quale si è presenti
$nick è la variabile che conterrà il nick dell'utente che ha fatto partire il bind scrivendo "hello"

Da notare è che quando si usano i comandi RAW c'è bisogno di inserire ":" vicino al testo che ha più di una parola.

bind pubm - hello pubcommand_hello
proc pubcommand_hello {n uh h chan t} {
puthelp "PRIVMSG $n :Hello $n!"
}

Il bind è sostanzialmente lo stesso, ciò che cambia è solo il nome della procedura.
Nella procedura sono stati cambiati i nomi delle variabili, abbiamo usato "n" invece che nick e così per gli altri.
Tuttavia ho usato un ordine differente.
Puthelp è un comando dell'Eggdrop che serve per non floodare il bot, suggerisco di usarlo spesso per questo tipo di script per evitare lamerate.

- Usa putserv quando hai bisogno di qualcosa che deve avvenire istantaneamente, come un kick o un ban
- Usa pushmode quando vuoi inviare dei modi in gruppi al server (es.: '+ooo Kaesar83 Rand0m IRon') e non hai bisogno di farlo istantaneamente
- Usa puthelp per messaggiare con altri utenti e in canale
 
La sintassi di puthelp è:
puthelp "[Comandi RAW] [Argomenti]"

Esempio:
puthelp "NOTICE $nick :Ciao $nick"

Vengono utilizzati i quote ("") perchè se non inseriti avremo un messaggio di errore del tipo TCL error: called "puthelp" with too many arguments.

Le procedure possono essere chiamate da se stesse, anche senza l'ausilio diretto del bind.

Per esempio:
bind pubm - kick pubm:kick
proc pubm:kick {nick host hand chan text} {
noaccess $nick
}

proc noaccess {who} {
puthelp "PRIVMSG $who :Scusami $who, tu non hai accesso a questi comandi"
}

noaccess è accessibile da qualsiasi procedura nel Bot, così in qualsiasi momento si vorrà richiamare questa procedura lo potrete fare.


# Credits #

Author:
The |mmortaL [asn@cdc.net] - 'send key' in topic for PGP public key
People who helped (Major Thanxs):
Ec|ipse - tomas@primenet.com
janni - janni@itt.org
Cold Fusion - fusion@pbcs.com
Ernesto Baschny baschneo@trick.informatik.uni-stuttgart.de
And to the rest of the Eggdrop Doc Project team!
Tradotto e rielaborato da Kaesar83




Branzilla Contest Redeem

Links utili

Newsletter
Iscriviti
Cancellati

Ci sono 84 iscritti

In rilievo..
  JackSMS v3
  Venom Script Lite

Documenti/Guide
  I Social Network
  Sicurezza in rete
  Cos'è SSL
  FAQ Bot
  Documenti su IRC
  FAQ Ident
  RFC 2810
  RFC 2811
  IRCx RFC

Informatica libera
  Gli Hoaxes
  Hoaxes report
  Documenti vari
  CensorWare
  Windows
  Linux

mIRC Scripting
  Codice ASCII
  Snippet mIRC scripting
  Tutorial mIRC scripting
  Dll per mIRC
  Utilities

IRCd
  Cos'è un IRCd
  Download Unreal
  Download Hybrid 6
  Download Hybrid 7
  Download Ultimate
  Download Bahamut
  Configurazione IRCd

IRC Services
  Cosa sono i Services
  Download Anope
  Download Epona
  Ircservices 5.0
  Ircservices 5.1
  Configurazione Epona
  Configurazione Anope
  Comandi ChanServ
  Comandi NickServ
  Comandi MemoServ

NeoStats
  Cosa sono i NeoStats
  Download NeoStats
  Configurazione NeoStats
  Download Moduli

IPv6
  Cos'è IPv6
  IPv6 su Win2000
  IPv6 su WinXP
  IPv6 su Linux
  IPv6 su mIRC e Xchat

Programmazione
  Tutorial C++
  Tutorial C
  Compilatori C/C++

Altro
  Contatti
  Banners Gallery

RSS Feed




Progetti
Starlight
IRCHippo

Links amici
Eushells.net
MF's IT User Essential Security Center

Validato CSS
Sito interamente sviluppato in PHP
MySQL
©2004+ IRC-Zone | Webmaster | Sitemap
Created by Cesare 'Kaesar83' Lasorella
Designed by Manuel 'erkokki' Cabras
IRC-Zone non è responsabile del contenuto dei siti linkati
Pagina creata in: 0.025 sec con 27 queries
Spampoison
Sviluppato con Notepad++
website monitoring service