Seite 1 von 2 12 Letzte
  1. #1
    Avatar von uncopyable
    Registriert seit
    19.11.2011
    Beiträge
    282
    Thanked 235 Times in 120 Posts

    Beitrag How to QuizBot [VB]

    Hallo

    Heute möchte ich euch mal zeigen wie man sich einen QuizBot in VB programmiert.

    Was wir brauchen:


    Wir erstellen ein neues Visual Basic Projekt mit dem Namen "Quizbot Example" und speichern es. Wir sehen nun den Designer mit einer leeren Form die wir nun in etwa so wie auf dem Bild gestalten.

    BILD ANZEIGEN [Warum wird das Bild nicht angezeigt?]

    Bevor wir anfangen müssen wir die KNLib noch in unser Projekt einfügen, dazu klicken wir auf Projekt -> Verweis hinzufügen -> Durchsuchen und wählen den Ordner mit der KNLib aus und fügen diese hinzu.

    Nachdem ihr das gemacht habt klickt ihr doppelt auf die Form (am besten in der Titelleiste) um in den Codebereich zu wechseln.

    BILD ANZEIGEN [Warum wird das Bild nicht angezeigt?]

    Als erstes Importieren wir die KNLib:

    PHP-Code:
    Imports KNLib 
    Nachdem wir das gemacht haben erstellen wir eine neue Klasse mit dem Namen "Client" und Importieren hier auch die KNLib.
    Die Klasse wird von der KNLib erben.

    Code Client.vb

    BILD ANZEIGEN [Warum wird das Bild nicht angezeigt?]

    Warum ein Bild? Ganz einfach ihr sollt es ja nicht nur einfach kopieren sondern dabei auch was lernen

    So nachdem ihr die Klasse Client erstellt habt wechseln wir zurück zur Form1 und zwar in den Codebereich.

    Code Form1.vb

    BILD ANZEIGEN [Warum wird das Bild nicht angezeigt?]

    Wie wir sehen können sind noch weiter Imports dazu gekommen die werden wir später noch brauchen.
    Wir erstellen eine Neue Instanz der Client Klasse
    Den String Channel brauchen wir um nachher was in den Chat senden zu können.
    SetText und AppendText brauchen wir um aus dem OnTokenReceived Threader auf die RichTextBox zuzugreifen zu können.
    Sowie SetTextBoxText für die Textbox.

    BILD ANZEIGEN [Warum wird das Bild nicht angezeigt?]

    Mit AddItem können wir wie oben mit AppendText auf das Listview zugreifen und ein neues Item einfügen.
    ListView1.View = View.List Zeit das Listview als Liste an kann man aber beliebig ändern.

    BILD ANZEIGEN [Warum wird das Bild nicht angezeigt?]

    Die Variable question & answer werden nachher mit der Frage/Antwort gefüllt.
    Im OnTokenReceived Thread bekommen wir den InputString von Knuddels den wir zuerst mit Split(vbNullChar) in das String Array token laden.
    In der Select Case können wir dann ganz leicht auf die einzelnen tokens zugreifen. Case "k" steht dabei für das Popup Fenster sollte eigentlich soweit klar sein was hier passiert.
    Case "a" ist das Channel Info - Paket das man empfangt wenn man einen Channel betritt. Wir übergeben der Variable channel den Wert token(1) was hier der Channelname ist. Den Namen brauchen wir um später was in den Channel schreiben zu können. Case "e" ist das Public Message receive - Paket
    das wir empfangen wenn eine öffentlich Nachricht geschrieben wurde.
    In der if-Abfrage (nicht schleife!) fragen wir ab ob der Sender der Nachricht James ist und ob die mit "°B18°_" beginnt. Wenn das der Fall ist, ist diese Nachricht, die Nachricht mit der Frage. Wir trennen nun die frage mit "tokens.Split("_")(1).Replace("\\", "").Trim()" und übergeben diese der Variable
    question. Als nächstes schicken wir die Frage mit sendrequest("action=search&q=" + URLEncode(question)) an das Php-Script übergeben dabei den Rückgabewert der Variable answer. In der if-Abfrage prüfen wir nun ob der Rückgabewert leer ist oder die Antwort enthält, falls ja schreiben wir die Antwort in die Textbox oder eben "Keine Lösung gefunden".

    BILD ANZEIGEN [Warum wird das Bild nicht angezeigt?]

    In der nächsten if-Abfrage prüfen wir ob die empfangene Nachricht die Lösung der Frage ist wobei wir das nur dann tun wenn wir zuvor keine Lösung in der Datenbank gefunden haben. ("AndAlso answer = Nothing"). Wie holen uns die Antwort mit Regex und übergeben sie der Variable Antwort und senden die Lösung mit sendrequest(URLEncode(question) & "&a=" & URLEncode(Antwort) an das Script. Und geben eine Meldung aus das die Antwort hinzugefügt wurde.
    Me.AppendText("Lösung würde hinzugefügt!" & vbCrLf)
    Der letzte Abschnitt im Case "e" gibt die Chatnachrichten aus sollte klar sein.
    Case "j" empfangen wir wenn wir den Channel wechseln sollte jetzt klar sein.
    Case "r" empfangen wir wenn wir eine Private Nachricht erhalten.
    Sollte auch klar.
    Case "l" empfangen wir wenn jemand den Channel betritt.
    Gibt eine Meldung in der Richtextbox aus und fügt den Nick die Listviewbox hinzu. Hier könnte man noch die Farbe des Nicks auslesen die in token(3) steht.
    Case "u" das Paket enthält die Userliste vom aktuellen Channel
    Wie geben in der Richtextbox eine Meldung aus wie viele Einträge die Datenbank momentan hat.




    In der If-Abfrage holen wir uns dann die einzelnen Nicks raus und fügen sie in eine Schleife in die Listviewbox ein.
    Mit der Funktion sendrequest rufen wir das Php Script mit dem angegebenen Parameter auf und geben den Inhalt zurück.

    BILD ANZEIGEN [Warum wird das Bild nicht angezeigt?]

    Die Funktion URLEncode brauchen wir um Umlauten und Sonderzeichen der Frage/Antwort in ein Prozent-Zeichen und dem zweistelligen, hexadezimalen ASCII-Wert umzuwandeln.

    BILD ANZEIGEN [Warum wird das Bild nicht angezeigt?]
    Die Funktion DelSpecChar Entfernt alle nicht benötigte Sonderzeichen aus einem String ŠåÆ usw.
    Im Button1_Click Verbinden wir uns mit Knuddels hier .de und loggen uns mit den Daten ein.
    TextBox4_KeyDown wenn wir in der Textbox auf Enter drücken wird der Text aus der TextBox4 in den Channel gesendet.
    RichTextBox1_TextChanged Wenn sich der Text ändert scrollen wir bis ans ende der RichTextBox.
    PHP-Code:
        Private Sub Form1_FormClosed(sender As ObjectAs System.Windows.Forms.FormClosedEventArgsHandles Me.FormClosed
            Environment
    .Exit(0)
        
    End Sub 
    Brauchen wir noch um die Anwendung vollständig zu beenden.

    Ich hoffe ihr habt das Tutorial verstanden, und ich konnte euch alles gut übermitteln ^^
    Falls ich was vergessen hab oder ihr Fehler findet meldet euch bei mir

    Quizbot Example GUI.rar | localhostr.com
    Geändert von uncopyable (29.02.2012 um 11:40 Uhr) Grund: Download


    while( behappy() ) { code(); }

  2. The Following 7 Users Say Thank You to uncopyable For This Useful Post:

    Comu (20.04.2012), DeKaDeNz (03.02.2012), Devon (16.01.2012), Gangstersheep (16.01.2012), Manipulate (03.02.2012), sL1tchK0ss (16.01.2012), Sploxfreak (03.02.2012)

  3. #2
    Avatar von dynxX
    Registriert seit
    27.10.2011
    Beiträge
    613
    Thanked 1.456 Times in 407 Posts

    Standard AW: How to QuizBot [VB]

    Pinned, danke für die Mühe.

  4. The Following User Says Thank You to dynxX For This Useful Post:

    uncopyable (16.01.2012)

  5. #3
    Avatar von DMW007
    Registriert seit
    15.11.2011
    Beiträge
    6.080
    Thanked 9.118 Times in 2.995 Posts
    Blog Entries
    5

    Standard AW: How to QuizBot [VB]

    Die Fragen sollte man nicht mit Regex auslesen. Das macht Knuddels auch nicht so, wäre viel zu Resourcenlastig. Die Tokens sind alle so gewählt, dass man sie mit den Stringfunktionen voneinander trennen kann (z.B. durch splitten).
    Der Request an die QuizURL sollte in einem seperaten Thread gesendet werden, da sonst dein Mainthread einfriert wenn der Server ausgelastet ist und länger braucht um die Anfrage zu beantworten.

    Ansonsten wäre an dieser Stelle noch ein Hinweis auf die Quiz-Datenbank von U-Hacks angebracht: U-Hacks.net - Quiz Datenbank


  6. The Following User Says Thank You to DMW007 For This Useful Post:

    uncopyable (17.01.2012)

  7. #4
    Avatar von Sploxfreak
    Registriert seit
    25.01.2012
    Beiträge
    511
    Thanked 128 Times in 117 Posts

    Standard AW: How to QuizBot [VB]

    Danke das du die die Mühe gemacht hast so ein ausfürhliches TuT zumachen
    Was cool wer wenn du über skype verfügbar bist bei Rückfragen.

    Zusammenfassung: Danke Bro nice tut

  8. #5

    Registriert seit
    19.12.2011
    Beiträge
    356
    Thanked 164 Times in 101 Posts

    Standard AW: How to QuizBot [VB]

    Zitat Zitat von Sploxfreak Beitrag anzeigen
    Danke das du die die Mühe gemacht hast so ein ausfürhliches TuT zumachen
    Was cool wer wenn du über skype verfügbar bist bei Rückfragen.

    Zusammenfassung: Danke Bro nice tut
    Solltest du Rückfragen haben, kannst du auch direkt hier posten. Dadurch kann jeder, der die selbe Frage hat, gleich auch hier dann die entsprechende Antwort finden.

  9. #6
    Avatar von Sploxfreak
    Registriert seit
    25.01.2012
    Beiträge
    511
    Thanked 128 Times in 117 Posts

    Standard AW: How to QuizBot [VB]

    Ich habe ein Problem mit der quiz db von u hacks welchen link soll ich benutzen? O.o
    Geändert von Sploxfreak (03.02.2012 um 21:29 Uhr)

  10. #7
    Avatar von HashTree
    Registriert seit
    26.11.2011
    Beiträge
    188
    Thanked 58 Times in 44 Posts

    Standard AW: How to QuizBot [VB]

    Quizbot Example GUI.zip

    Kommt eine 404 Error Meldung wenn ich das lasen möchte ?

  11. #8
    Avatar von uncopyable
    Registriert seit
    19.11.2011
    Beiträge
    282
    Thanked 235 Times in 120 Posts

    Standard AW: How to QuizBot [VB]

    So habs neu hochgeladen.

    Quizbot Example GUI.rar | localhostr.com

    mfg.


    while( behappy() ) { code(); }

  12. #9
    Avatar von BaShFX
    Registriert seit
    21.02.2012
    Beiträge
    290
    Thanked 73 Times in 59 Posts

    Standard AW: How to QuizBot [VB]

    Der Bot funktioniert nicht.
    Kein Fenster zum anklicken um den zu starten

  13. #10
    Avatar von DnL
    Registriert seit
    28.11.2011
    Beiträge
    184
    Thanked 54 Times in 42 Posts

    Standard AW: How to QuizBot [VB]

    Zitat Zitat von BaShFX Beitrag anzeigen
    Der Bot funktioniert nicht.
    Kein Fenster zum anklicken um den zu starten
    Es ist auch kein quiz bot es ist eine tuturial für entwickler zum lernen .

    Mfg
    Like a star x3

  14. The Following User Says Thank You to DnL For This Useful Post:

    BaShFX (02.03.2012)

Seite 1 von 2 12 Letzte

Ähnliche Themen

  1. [Release] QuizBot v1
    Von exception im Forum Knuddels Quiz Bots
    Antworten: 5
    Letzter Beitrag: 30.07.2013, 17:25
  2. [Source] QuizBot
    Von exception im Forum Showroom
    Antworten: 5
    Letzter Beitrag: 05.09.2012, 01:23
  3. Vorschau Quizbot
    Von x failstar im Forum Showroom
    Antworten: 15
    Letzter Beitrag: 22.04.2012, 18:44
  4. Quizbot
    Von Waka Flocka im Forum Knuddels Bots
    Antworten: 1
    Letzter Beitrag: 22.12.2011, 20:10
  5. VB.Net Quizbot
    Von gcp im Forum Knuddels Programmierung
    Antworten: 6
    Letzter Beitrag: 31.03.2011, 18:56
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.