IRC Bot

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

 

Steven

ehemals "Steven04"

Betreff: IRC Bot

BeitragSo, Jan 06, 2008 16:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!
In den letzten Tagen, habe ich mich mal ein bisschen mit IRC bei BB beschäftigt und nun ist folgendes raus gekommen:
Es ist ein sehr kleiner IRC Bot, der auf vorgebende Wörter reagiert und dann selbst Antwortet. Die Reaktionswörter, die Antworten und die Daten werden aus einer externen Datei geladen. Außerdem werden noch ein paar weitere Funktionen gezeigt. Der Code sollte mit BlitzPlus und Blitz3D funktionieren.

Ich hoffe der Code ist nicht allzu schlimm und er kann für ein paar wenige hilfreich sein:

Code: [AUSKLAPPEN]

Type Reaktion            ;Type für die Reaktionen...
   Field wort$            ;...mit einem Feld für die "Auslöser"...
   Field antwort$         ;...und einen für die Reaktion
End Type

Graphics 800,600,32,2

;Variabelen
Global Dat = OpenFile("Data.txt"),Server$=Replace(ReadLine(Dat),"Server = ",""), Port$=Replace(ReadLine(Dat),"Port = ","") ;Variabelen werden ausgelesen
Global NickName$=Replace(ReadLine(Dat),"Nickname = ",""), channel$=Replace(ReadLine(Dat),"Channel = ","")

;Reaktionen/Antworten auslesen
While Eof(Dat)<>1
   txt$=ReadLine(Dat)
   If txt$<>"" And txt$<>"REAKTIONSWÖRTER = ANTWORT" Then
      re.Reaktion= New Reaktion
      re\wort$=Trim$ ( Left( Replace(txt$,"=","") , Instr(txt$,"=") ) )   ;1. Leerzeichen werden entfern; 2. Linke Hälfte teilenbis zum "="
      re\antwort$=Trim$ ( Right ( Replace(txt$,"=","") , Instr(txt$,"=") ) )
      If re\wort$="" Or re\antwort$="" Then Delete re                
   EndIf
Wend

;Verbindung herstellen
Netzwerk = OpenTCPStream(Server$, Port)      ;Verbindung zum Server herstellen
Hostname$ = "BlitzBasic Irc"
WriteLine Netzwerk,"USER "+NickName$+" "+Hostname$+" "+Server$+" :"+NickName$;"Anmelden"
WriteLine Netzwerk,"NICK "+NickName$

While Not KeyHit(1)
      Bytes=ReadAvail(Netzwerk);Liest die Anzahl der Bytes
      
      While Bytes>0
      
         Line$=ReadLine(Netzwerk)
         Print Line$
         
         If Left(Trim(Upper(Line$)),4) = "PING" Then               ;Reagiert auf "PING"..
              WriteLine Netzwerk, "PONG "+Mid(Trim(Upper(Line$)),5)   ;... mit "PONG" + Ping Wert
          EndIf
         
         ;Prüft und reagiert dann
         For re=Each Reaktion
            If Instr(Line$,re\wort$)>0 Then WriteLine Netzwerk, "PRIVMSG " + channel$ + " :" + re\antwort$ ;Prüft ob wort auf Antwort passt
         Next
         Bytes = ReadAvail(Netzwerk)
      Wend
   
   ;Tastenfunktionen   
   If KeyHit(2) Then WriteLine Netzwerk, "JOIN " + channel$:Print "Channel betreten: "+channel$ ;Channel betreten
   If KeyHit(3) Then WriteLine Netzwerk, "PRIVMSG " + channel$ + " :" + Input("Text eingeben: ");Schreiben
   If KeyHit(4) Then WriteLine Netzwerk, "QUIT " ;Channel verlassen
Wend


Und hier noch eine Beispiel Data Datei:
Code: [AUSKLAPPEN]
Server = irc.de.quakenet.org
Port = 6667
Nickname = Botto
Channel = #botto

REAKTIONSWÖRTER = ANTWORT
Hallo = Abend!
Hi! = Hallo
Trottel = Selber!:P
cu = Tschau!


Ende


Würde mich über Kritik freuen!
Gruß Steven!
  • Zuletzt bearbeitet von Steven am So, Aug 10, 2008 21:25, insgesamt einmal bearbeitet
 

TeDy14

Gast

BeitragMo, Jan 14, 2008 23:26
Antworten mit Zitat
Ich hab sogar einen mit einer eigenen Scriptsprache hier irgentwo rumliegen...
Ich werd ihn mal raussuchen Very Happy

DerKeks

BeitragDi, Jan 15, 2008 10:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Hehe ich hab mal ne ganze Familie gecodet
3 Versionen Smile
Auch von ausses programmierbar und alles einstellbar. Hab gestern noch nen Test gemacht, er hat über 5 Stunden Dauerbelastung im Clanchannel durchgehalten ^^

Ist ne lustige Spielerei und eigentlich leicht zu machen

Grüsse
Dari

Smily

BeitragDi, Jan 15, 2008 10:59
Antworten mit Zitat
Benutzer-Profile anzeigen
IRC ist eigentlich (genauso wie http) immer ideal für den Einstieg in das thema Botprogrammierung

Die gründe sind einfach: Das Protokoll ist Zeilenbasierend, leicht verständlich strukturiert und auch durch reverse Engineering sehr einfach zu verstehen.

cu,
Smily0412
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group