Ankündigung

Einklappen
Keine Ankündigung bisher.

ein Bot

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • ein Bot

    Hallo !


    Ich versuche einen Bot für einen Chat zu programmieren.
    Aber irgendwo ist ein Fehler :-/...

    ich wollte ihm bestimmte Zeilen vorgeben und dann wenn er eine Zeile schon kennt soll er individuell antworten, wenn die Zeile für ihn unbekannt ist, soll er sagen, dass er in ruhe gelassen werden soll...
    Code:
    <?
    
               if(eregi("^\Koukol",$message))
                    {
    
    
    $message = strip_tags($text);
    
    if($message==23)
    {
    $antwort =  " hi ";
    }
    else
     {
    $antwort = "Lass mich in ruhe ich will schlafen... :-/ ";
    }
    
    
    
    
    
            $msg = "<font color=\"$col\"> $chatuser [zu Koukol]: ".$message." </font>
    
    		<font color=\"#000000\"> Koukol [zu $chatuser]: $antwort </font>".$msgpostfix;
    
    
    
      $nodate=1;
    
    
                    }
    
    ?>

    Der *if teil* wird immer übersprungen.
    Egal was ich eingebe, es kommt immer "Lass mich in ruhe, ich will schlafen..

    DrJekyll [zu Koukol]: Koukol 23
    Koukol [zu DrJekyll]: Lass mich in ruhe ich will schlafen... :-/
    DrJekyll [zu Koukol]: Koukol haaaalloooo
    Koukol [zu DrJekyll]: Lass mich in ruhe ich will schlafen... :-/
    Wird die Variable nicht richitg ausgelesen? Aber bei den Befehlen für den Chat ging es auch

    Danke[/code]


  • #2
    ich bin auch gerade dabei einen zu programmieren und habe es so gemacht:
    Code:
    if (stristr($message, "Botty") == TRUE) {
    $bot = "1";
    include('bot.php');
    }}
    in der 'bot.php' stehen dann noch mal ein paar Einschränkungen der Antwortmöglichkeiten.

    Code:
    <?PHP
    $rand_zero = rand(1,9);
    
    if (stristr($message, "@Botty") == TRUE) {
    if (stristr($message, "?") == TRUE) {
    $message_zero= "<font class=normal face=arial>Sag ich dir doch nicht!</font>"; 
    }
    if ($rand_zero>=5) 
    {
    $message_zero= "<font class=normal face=arial> sorry, hab keine Zeit.</font>"; 
    }
    else
    {
    $message_zero= "<font class=normal face=arial> bin gerade beschäftigt.</font>"; 
    }
    }
    elseif (stristr($message, "@") == FALSE) {
    if ($rand_zero>=5) 
    {
    $message_zero= "<font class=normal face=arial> @". $username .": meinst mich?</font>"; 
    }
    else
    {
    $message_zero= "<font class=normal face=arial> @". $username .": hab ich da etwa meinen Namen gehört?</font>"; 
    }}
    
    if ((stristr($message, "fuck") != FALSE) OR (stristr($message, "doof") != FALSE) OR (stristr($message, "arsch") != FALSE) OR (stristr($message, "Arsch") != FALSE)) {
    if ($rand_zero>=5) 
    {
    $message_zero= "<font class=normal face=arial> Willst du streß???</font>"; }
    else
    {
    $message_zero= "<font class=normal face=arial>Versuch dich doch mal ordentlich mit mir zu unterhalten.</font>"; }}
    ?>
    Habe am anfang nen rand(); benutzt um etwas abwechselung reinzubringen... sonst kann er eigentlich auch nicht so viel. Antwortet nur auf einige Phasen. Hoffe das hilft dir ein wenig. Mit stristr(); durchsucht er einen String nach einem anderen String und gibt entweder TRUE oder FALSE heraus.

    Kommentar


    • #3
      weiß keiner wo das Problem ist?


      Kommentar


      • #4
        "Koukol 23"
        Das gibst du ein.
        Fragst aber nach 23 ... kann ja nicht klappen.

        Code:
        if (strpos('23', $message) !== false)
        evt. Parameter umdrehen ^^

        oder
        Code:
        preg_match('/^Koukol.(.*)$/isU', $message, $match);
        
        if ($match[1] == '23')

        Kommentar

        Lädt...
        X