1. #1
    Avatar von Saad
    Registriert seit
    18.11.2011
    Beiträge
    786
    Thanked 621 Times in 219 Posts

    Standard [C#] Kisszähler

    Joo ich hab da mal ein kleines Problem und zwar: Ich möchte halt, dass wenn der Nick, mit dem man eingeloggt ist, einen Kiss erhält, mein Kisszähler um eins erhöht wird.
    Mein Code sieht derweil folgendermaßen aus:

    PHP-Code:
    case "t":

                        if (!
    token[3].Contains("öffnet die Tür und") || token[3].Contains("geleitet in den Raum.") || token[3].Contains("freut sich, nun auch hier hier uns begrüßen zu können.") || token[3].Contains("hält die Tür weit, weit auf.") || token[3].Contains("hört es klopfen und öffnet die Tür.") || token[3].Contains("eilt zur Tür und lässt eintreten.") || token[3].Contains("hilft über die Schwelle in den Raum.") || token[3].Contains("schon kommen hören und öffnet noch vor dem Klopfen."))
                        {
                            
    string part token[3].Replace(tb_Nick.Text"!");
                            
    part part.Split('!')[1];
                            if(
    part.Contains("wird von") || ((part.Contains("einen kleinen") || part.Contains("einen ganz")) && !part.Contains("gibt")) || part.Contains("bekommt von") || (part.Contains("sehr")))
                            {
                                
    Kisserhalten++;
                                
    label32.Invoke((MethodInvoker)delegate() { label32.Text String.Format("{0}"Kisserhalten); });
                            }
                        }

                       
                        break; 
    Das Problem ist halt, dass wenn jetzt ein User den Channel joint, ein Fehler entsteht. (Der Index war außerhalb des Arraybereichs.)
    Aus diesem Grund habe ich halt das hier davor geschrieben:
    PHP-Code:
    (!token[3].Contains("öffnet die Tür und") || token[3].Contains("geleitet in den Raum.") || token[3].Contains("freut sich, nun auch hier hier uns begrüßen zu können.") || token[3].Contains("hält die Tür weit, weit auf.") || token[3].Contains("hört es klopfen und öffnet die Tür.") || token[3].Contains("eilt zur Tür und lässt eintreten.") || token[3].Contains("hilft über die Schwelle in den Raum.") || token[3].Contains("schon kommen hören und öffnet noch vor dem Klopfen.")) 
    aber mit dem klappt das auch nicht :/
    Bis auf Sonderschüler kannst du alle Leute fragen - Saad ist PERFEKT wie 'ne Zeitform der deutschen Sprache.

  2. #2
    Avatar von DMW007
    Registriert seit
    15.11.2011
    Beiträge
    6.408
    Thanked 9.168 Times in 3.038 Posts
    Blog Entries
    5

    Standard AW: [C#] Kisszähler

    Ich hab das glaube ich schonmal in einem Thread von dir gesagt, dass man besser die teile rausfiltert auf die man reagiert, und nicht entgegengesetzt alle auf die man nicht reagieren will ausschließt.
    In dem Fall ist die Filterung auch unnötig.
    Das 3. Token beinhaltet die Nachricht von James, es reicht also wenn du das auf die Keywords beim Kissen (Knutschfleck usw) filterst.

    Und bevor Tokens aus dem Array ausgelesen werden immer prüfen ob der Array überhaupt so viele Elemente enthält.
    In deinem Fall wären das 3:

    PHP-Code:
    if(tokens.Length >= 3) {
    // ...

    Knuddels benutzt einen opcode meist für mehrere verschiedene Pakete und ändert dann einfach den Aufbau.
    So kann es passieren, dass Knuddels den opcode t noch für etwas ganz anderes nutzt, hier aber nur 2 Tokens sendet.
    Dein Code würde trotzdem darauf reagieren und versuchen das 3. Token auszulesen, was natürlich nicht funktioniert und in einer Exception endet wenn das Paket nur aus 2 Tokens besteht.


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

    Saad (20.06.2012)

Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.