Forum zum WebKicks.De Chatsystem Foren-Übersicht Forum zum WebKicks.De Chatsystem
Support-Forum zum WebKicks-Chatsystem
 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Dieses Forum dient als Archiv, es können keine neuen Beiträge eröffnet werden.

Hier geht es zum neuen Webkicks Forum
.

[BETA 1] MaiZ-ChatBot-System
Gehe zu Seite Zurück  1, 2, 3 ... 11, 12, 13 ... 37, 38, 39  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Forum zum WebKicks.De Chatsystem Foren-Übersicht -> Bots, Chat-Games
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
cro




Anmeldedatum: 08.04.2007
Beiträge: 225

BeitragVerfasst am: 08.01.2008, 21:31    Titel: Antworten mit Zitat

Hey!

Ihrgendwie geht der ChatBot nicht mehr. Ist hier vielleicht ein Fehler?

Code:
var X = Math.round(Math.random() * 10); // 4 Ist die Anzahl der Witze, kann angepasst werden.
var witz = new Array();
witz[0] = "Zwei Jäger gehen auf die Jagd und wandern durch den Wald. Plötzlich greift sich der eine an die Kehle und stürzt zu Boden. Der andere Jäger gerät in Panik und ruft den Notarzt an: Ich glaube mein Freund ist tot, was jetzt? Der Arzt sagt: Beruhigen Sie sich! Zunächst einmal müssen Sie sicher gehen, dass Ihr Freund wirklich tot ist. Kurze Pause, dann ein Schuss. Dann kommt er wieder ans Telefon. OK, erledigt, und was jetzt?";
witz[1] = "Ein Ostdeutscher kommt zum ersten Mal in den Westen und nimmt sich ein Taxi. Es ist ein Mercedes. Nach einer Weile fragt der Ossi, was das vorne auf der Motorhaube wäre und deutet auf den Mercedes-Stern. Der Taxifahrer denkt sich: Den nimmst Du jetzt aber kräftig auf den Arm, und erklärt dem Ossi, dies sei eine Zielvorrichtung, um Rentner zu überfahren, weil es im Westen zu viele davon gibt. Für jeden überfahrenen Rentner gäbe es 500,- Euro Prämie. Als nun gerade ein Rentner über die Straße geht, hält der Taxifahrer darauf zu, reißt aber im letzten Moment das Lenkrad rum und fährt an dem Rentner vorbei. Da hört er hinten einen dumpfen Schlag und der Ossi ruft: Also, Rentner jagen müssen Sie aber noch üben - wenn ich jetzt nicht im letzten Augenblick die Tür aufgemacht hätte, hätten wir den bestimmt verpasst...";
witz[2] = "Rotkäppchen geht durch den Wald.... Hinter einen Gebüsch sieht sie den bösen Wolf und fragt: Aber Wolf, warum hast Du so große Augen? Darauf der Wolf: VERDAMMT NOCH MAL, NICHT MAL IN RUHE KACKEN KANN MAN HIER!";
witz[3] = "Fritz und Franz haben Nüsse geklaut. Um nicht entdeckt zu werden, schleichen sie in die gerade offen stehende Leichenhalle, um sie zu teilen. Vor der Tür verlieren sie noch zwei ihrer Nüsse. Eine für Dich, eine für mich; eine für Dich, eine für mich, murmeln sie. Der Küster kommt vorbei und hört den Sermon. Ihm sträuben sich die Haare. Er läuft zum Pfarrer: Herr Pfarrer, in der Leichenhalle spukt es. Da handelt Gott mit dem Teufel die Seelen aus! Der Pfarrer schüttelt nur den Kopf und geht mit dem Küster leise zur Leichenhalle. Eine für Dich, eine für mich; eine für Dich, eine für mich. So, das sind jetzt alle. Nun holen wir uns noch die beiden vor der Tür!";
witz[4] = "Ein kleiner Mann sitzt traurig in der Kneipe, vor sich ein Bier. Kommt ein richtiger Kerl, haut dem Kleinen auf die Schulter und trinkt dessen Bier aus. Der Kleine fängt an zu weinen. Der Große: Nun hab' dich nicht so, du memmiges Weichei! Flennen wegen einem Bier! Der Kleine: Na, dann pass mal auf. Heute früh hat mich meine Frau verlassen, Konto abgeräumt, Haus leer. Danach habe ich meinen Job verloren! Ich wollte nicht mehr leben. Legte ich mich auf's Gleis... Umleitung! Wollte mich aufhängen... Strick gerissen! Wollte mich erschießen ... Revolver klemmt! Und nun kaufe ich vom letzten Geld ein Bier, kippe Gift rein und du säufst es mir weg!";
witz[5] = "Sitzen vier Ärzte beim Stammtisch. Steht der Augenarzt auf und sagt: Ich gehe jetzt. Man sieht sich. Sagt der HNO-Artz: Ich komm mit. Wir hören von einander. Sagt der Urologe: Ich glaub, ich verpiss mich auch. Sagt der Frauenarzt: Grüßt eure Frauen. Ich schau mal wieder rein.";
witz[6] = "Eine Frau kommt vom Arzt nach Hause. Ihr Mann fragt: Und? Was hat der Arzt gesagt? Die Frau erzählt: 50 Jahre und so ein schönes Gesicht. 50 Jahre und so ein schöner Busen. 50 Jahre und so schöne Beine. Mhmm, meint der Mann, was hat er denn zu deinem 50-jährigen *** gesagt? Ach, meint die Frau, über dich haben wir überhaupt nicht gesprochen!";
witz[7] = "Sie: Was laufen Sie eigentlich die ganze Zeit hinter mir her? Er: Jetzt wo Sie sich umdrehen, frage ich mich das auch...";
witz[9] = "Professor sitzt in der Mensa und isst. Ein Student setzt sich ungefragt ihm gegenüber. Etwas verärgert meint der Professor: Also, seit wann essen denn Adler und Schwein an einem Tisch? Darauf der Student: OK, dann flieg ich halt weiter...";
witz[10] = "Ein Taxi-Passagier tippt dem Fahrer auf die Schulter, um etwas zu fragen. Der Fahrer schreit laut auf, verliert die Kontrolle über den Wagen, verfehlt knapp einen entgegenkommenden Bus, schießt über den Gehsteig und kommt wenige Zentimeter vor einem Schaufenster zum Stehen. Für ein paar Sekunden ist alles ruhig, dann schreit der Taxifahrer laut los: Machen Sie das nie wieder! Sie haben mich ja zu Tode erschreckt! Der Fahrgast ist ganz baff und entschuldigt sich voll Erstaunen: Ich konnte ja nicht wissen, dass Sie sich wegen eines Schultertippens dermaßen erschrecken. Ist ja auch mein Fehler, meint der Fahrer etwas ruhiger. Heute ist mein erster Tag als Taxifahrer. Die letzten 25 Jahre bin ich einen Leichenwagen gefahren.";
}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Zischdings
Webkicks - Team



Anmeldedatum: 22.12.2004
Beiträge: 6161

BeitragVerfasst am: 08.01.2008, 21:34    Titel: Antworten mit Zitat

ohne den ganzen text durchzugehen: ich zähle 11 "witze", nicht 10
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
cro




Anmeldedatum: 08.04.2007
Beiträge: 225

BeitragVerfasst am: 08.01.2008, 21:51    Titel: Antworten mit Zitat

oh danke. Es sind nur 9 Witze. Als ich das überprüfen wollte, merkte ich, dass ich die 8 vergessen habe. Und bei Witz 3 hat sich ein ; eingeschlichen.
So sieht es jetzt aus und mein ChatBot geht immernoch nicht.
Code:
var X = Math.round(Math.random() * 9); // 4 Ist die Anzahl der Witze, kann angepasst werden.
var witz = new Array();
witz[0] = "Zwei Jäger gehen auf die Jagd und wandern durch den Wald. Plötzlich greift sich der eine an die Kehle und stürzt zu Boden. Der andere Jäger gerät in Panik und ruft den Notarzt an: Ich glaube mein Freund ist tot, was jetzt? Der Arzt sagt: Beruhigen Sie sich! Zunächst einmal müssen Sie sicher gehen, dass Ihr Freund wirklich tot ist. Kurze Pause, dann ein Schuss. Dann kommt er wieder ans Telefon. OK, erledigt, und was jetzt?";
witz[1] = "Ein Ostdeutscher kommt zum ersten Mal in den Westen und nimmt sich ein Taxi. Es ist ein Mercedes. Nach einer Weile fragt der Ossi, was das vorne auf der Motorhaube wäre und deutet auf den Mercedes-Stern. Der Taxifahrer denkt sich: Den nimmst Du jetzt aber kräftig auf den Arm, und erklärt dem Ossi, dies sei eine Zielvorrichtung, um Rentner zu überfahren, weil es im Westen zu viele davon gibt. Für jeden überfahrenen Rentner gäbe es 500,- Euro Prämie. Als nun gerade ein Rentner über die Straße geht, hält der Taxifahrer darauf zu, reißt aber im letzten Moment das Lenkrad rum und fährt an dem Rentner vorbei. Da hört er hinten einen dumpfen Schlag und der Ossi ruft: Also, Rentner jagen müssen Sie aber noch üben - wenn ich jetzt nicht im letzten Augenblick die Tür aufgemacht hätte, hätten wir den bestimmt verpasst...";
witz[2] = "Rotkäppchen geht durch den Wald.... Hinter einen Gebüsch sieht sie den bösen Wolf und fragt: Aber Wolf, warum hast Du so große Augen? Darauf der Wolf: VERDAMMT NOCH MAL, NICHT MAL IN RUHE KACKEN KANN MAN HIER!";
witz[3] = "Fritz und Franz haben Nüsse geklaut. Um nicht entdeckt zu werden, schleichen sie in die gerade offen stehende Leichenhalle, um sie zu teilen. Vor der Tür verlieren sie noch zwei ihrer Nüsse. Eine für Dich, eine für mich; eine für Dich, eine für mich, murmeln sie. Der Küster kommt vorbei und hört den Sermon. Ihm sträuben sich die Haare. Er läuft zum Pfarrer: Herr Pfarrer, in der Leichenhalle spukt es. Da handelt Gott mit dem Teufel die Seelen aus! Der Pfarrer schüttelt nur den Kopf und geht mit dem Küster leise zur Leichenhalle. Eine für Dich, eine für mich, eine für Dich, eine für mich. So, das sind jetzt alle. Nun holen wir uns noch die beiden vor der Tür!";
witz[4] = "Ein kleiner Mann sitzt traurig in der Kneipe, vor sich ein Bier. Kommt ein richtiger Kerl, haut dem Kleinen auf die Schulter und trinkt dessen Bier aus. Der Kleine fängt an zu weinen. Der Große: Nun hab' dich nicht so, du memmiges Weichei! Flennen wegen einem Bier! Der Kleine: Na, dann pass mal auf. Heute früh hat mich meine Frau verlassen, Konto abgeräumt, Haus leer. Danach habe ich meinen Job verloren! Ich wollte nicht mehr leben. Legte ich mich auf's Gleis... Umleitung! Wollte mich aufhängen... Strick gerissen! Wollte mich erschießen ... Revolver klemmt! Und nun kaufe ich vom letzten Geld ein Bier, kippe Gift rein und du säufst es mir weg!";
witz[5] = "Sitzen vier Ärzte beim Stammtisch. Steht der Augenarzt auf und sagt: Ich gehe jetzt. Man sieht sich. Sagt der HNO-Artz: Ich komm mit. Wir hören von einander. Sagt der Urologe: Ich glaub, ich verpiss mich auch. Sagt der Frauenarzt: Grüßt eure Frauen. Ich schau mal wieder rein.";
witz[6] = "Eine Frau kommt vom Arzt nach Hause. Ihr Mann fragt: Und? Was hat der Arzt gesagt? Die Frau erzählt: 50 Jahre und so ein schönes Gesicht. 50 Jahre und so ein schöner Busen. 50 Jahre und so schöne Beine. Mhmm, meint der Mann, was hat er denn zu deinem 50-jährigen *** gesagt? Ach, meint die Frau, über dich haben wir überhaupt nicht gesprochen!";
witz[7] = "Sie: Was laufen Sie eigentlich die ganze Zeit hinter mir her? Er: Jetzt wo Sie sich umdrehen, frage ich mich das auch...";
witz[8] = "Professor sitzt in der Mensa und isst. Ein Student setzt sich ungefragt ihm gegenüber. Etwas verärgert meint der Professor: Also, seit wann essen denn Adler und Schwein an einem Tisch? Darauf der Student: OK, dann flieg ich halt weiter...";
witz[9] = "Ein Taxi-Passagier tippt dem Fahrer auf die Schulter, um etwas zu fragen. Der Fahrer schreit laut auf, verliert die Kontrolle über den Wagen, verfehlt knapp einen entgegenkommenden Bus, schießt über den Gehsteig und kommt wenige Zentimeter vor einem Schaufenster zum Stehen. Für ein paar Sekunden ist alles ruhig, dann schreit der Taxifahrer laut los: Machen Sie das nie wieder! Sie haben mich ja zu Tode erschreckt! Der Fahrgast ist ganz baff und entschuldigt sich voll Erstaunen: Ich konnte ja nicht wissen, dass Sie sich wegen eines Schultertippens dermaßen erschrecken. Ist ja auch mein Fehler, meint der Fahrer etwas ruhiger. Heute ist mein erster Tag als Taxifahrer. Die letzten 25 Jahre bin ich einen Leichenwagen gefahren.";
}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Zischdings
Webkicks - Team



Anmeldedatum: 22.12.2004
Beiträge: 6161

BeitragVerfasst am: 08.01.2008, 21:56    Titel: Antworten mit Zitat

frage am rande: wird witz[0] bei var X = Math.round(Math.random() * 9); nicht mitgezählt?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
cro




Anmeldedatum: 08.04.2007
Beiträge: 225

BeitragVerfasst am: 08.01.2008, 22:03    Titel: Antworten mit Zitat

Hab ich jetzt auch verbessert. Geht immernoch nicht.

Latias13 hat Folgendes geschrieben:
Versuchsmal mit:
Code:
this.rcwd["witz"] = witz[X];
var X = Math.round(Math.random() * 4); // 4 Ist die Anzahl der Witze, kann angepasst werden.
var witz = new Array();
witz[0] = "Witz1";
witz[1] = "Witz2";
witz[2] = "Witz3";
witz[3] = "Witz4";
witz[4] = "Witz5";

das dürfte funktionieren


Er hat auch ne 4 stehen, obwohl es 5 sind.

An Latias13:

Geht das mit den Witzen überhaupt bei dir?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
reymysterio619


Verwarnung

Anmeldedatum: 15.09.2007
Beiträge: 203

BeitragVerfasst am: 09.01.2008, 19:41    Titel: Antworten mit Zitat

Wo muss das bei dem Chatbot eingefügt werden?
Kann man machen das der Chatbot bei Winken
"(??Geschockt?)User: Chatbotname Witz"
Immer einen anderen Witz sagt einmal Witz1, dann mal Witz7 usw. ?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Latias13




Anmeldedatum: 05.08.2007
Beiträge: 263

BeitragVerfasst am: 09.01.2008, 20:40    Titel: Antworten mit Zitat

Ich habs nicht getestet, ich nutze den Bot momentan auch nicht, weil er noch nicht Nickänderer kompatibel ist. Ich könnts aber kurz mal testen.

Edit: Testen, wenn ich eine Gelegenheit habe ohne Problemmodus zu chatten. Evtl. morgen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
DarkModi




Anmeldedatum: 08.05.2005
Beiträge: 1969

BeitragVerfasst am: 12.01.2008, 02:59    Titel: Antworten mit Zitat

Im Laufe des heutigen oder morgigen Tages wird es eine neue Testversion, besser gesagt die erste Beta des Scripts, geben. Grund dafür ist, dass ich einige wichtige Codeteile nochmals testen lassen muss, und ich hoffe, es wird so eine rege Teilnahme wie in den letzten Monaten geben. Wenn die Tests gut verlaufen wird die finale Version auch nicht mehr lange auf sich warten lassen. Winken
Ob dies die letzte Version vor der finalen Version sein wird kann ich allerdings noch nicht sagen - ich denke darüber nach, das Spielesystem ebenfalls in einer eigenen Testversion zu veröffentlichen da dieses (nach derzeitigem Stand) sehr komplex ausfallen wird. Allerdings steht diesbezüglich noch nichts fest.

Der Code wird ein kompletter (und hoffentlich auch der finale) Rewrite sein und ihr werdet schon eine ziemlich gute Vorstellung von der finalen MaiZ-Struktur haben. Neue Funktionen wird es (im Prinzip) keine geben. Besonders für die Scripter unter euch sollte das ganze trotzdem sehr interessant sein.

Um es nochmal zu betonen: DIES WIRD NICHT DIE FINALE VERSION SEIN!!!

Übrigens, noch etwas: Ein ungefragtes Kopieren und Anbieten des Scripts (und allgemein von meinen Scripts im WkForum) auf anderen Seiten ist von meiner Seite aus nicht erwünscht. Wer mich fragt darf es in den meisten Fällen natürlich machen, allerdings gab es in jüngerer Zeit mehrere Fälle, wo nicht nur meine Scripts ungefragt auf anderen Seiten angeboten wurden, sondern diese Personen teils sogar behauptet haben, sie selbst geschrieben zu haben. Mit den Augen rollen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
81er




Anmeldedatum: 07.01.2008
Beiträge: 4

BeitragVerfasst am: 12.01.2008, 13:47    Titel: erste beta Antworten mit Zitat

Freu es geht weiter ..

An dieser stelle mal ein Riesen lob an all diejenigen die bisher an MaiZ und allen anderen Scripts gearbeitet ,gefeilt und getestet haben. Ich selber habe erst vor ein paar tagen wohl ehr durch zufall herrausgefunden das man sich den chat derart modifizieren kann und ich muss sagen ich bin begeißtert.

Ich habe nicht viel Ahnung von Html oder java oder so jedoch hab ich alles hinbekommen auch wenn es ne weile gedauert hat und ich viel hier im Forum lesen musste und testen musste. Freu mich auf das Update denn es gibt wieder was zu testen für mich Winken Weiter so jungs und Mädels klasse arbeit .

Mfg Marcel
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
toby01


Verwarnung

Anmeldedatum: 16.12.2007
Beiträge: 524

BeitragVerfasst am: 12.01.2008, 14:53    Titel: Antworten mit Zitat

auch ich bedanke bei den testern und besonders bei DarkModi für die tollen scripts und vorallen für MaiZ
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
DarkModi




Anmeldedatum: 08.05.2005
Beiträge: 1969

BeitragVerfasst am: 13.01.2008, 17:54    Titel: Antworten mit Zitat

Wird doch ein bisschen mehr als ursprünglich geplant. :p

Könnt mit dem Bot daher heute Nacht oder morgen rechnen. Entschuldigt die Verschiebung. Die zusätzliche Wartezeit wird sich aber lohnen, versprochen. Winken

EDIT: Es wird wohl noch ein Tag später... Sorry, aber das Testen und Bugfixen dauert länger als gedacht. Besonders das Prüfen der Sätze bereitet gerade ziemlich merkwürdige Probleme. Geschockt

EDIT2: Er ist nun fertig, allerdings fehlt mir momentan der Nerv, noch die Anleitung und die Feature-List zur finalen Version zu schreiben. Morgen ist es dann aber auf jeden Fall soweit.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
cro




Anmeldedatum: 08.04.2007
Beiträge: 225

BeitragVerfasst am: 16.01.2008, 18:23    Titel: Antworten mit Zitat

Hey!

Sie könnten aber noch die Uhrzeit der Editierung angeben, damit wir wissen, wann sie es geschreiben haben. Winken



P.S.: Ich habe auch ein Forum mit diesem System. Und da kann man irgendwo einstellen, dass da steht, wann der Beitrag zuletzt editiert wurde.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Link




Anmeldedatum: 05.02.2006
Beiträge: 312

BeitragVerfasst am: 16.01.2008, 18:28    Titel: Antworten mit Zitat

das steht nur dann da, wenn bereits jemand au den post geantwortet hat^^
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
DarkModi




Anmeldedatum: 08.05.2005
Beiträge: 1969

BeitragVerfasst am: 16.01.2008, 20:57    Titel: Antworten mit Zitat

Entschuldigt die Verspätung, allerdings habe ich noch ein paar Dinge am Bot ändern müssen. Objektorientierte Programmierung mit JavaScript ist grauenhaft. ._.

Jedenfalls, die Beta sollte nun reif zur Veröffentlichung sein. Ich habe die letzten Änderungen nicht allzu ausführlich getestet und weiß, dass es nicht optimal ist, allerdings sollten so viele Fehler vermieden werden.

Gut! Zum Einbau: MaiZ benötigt die Grundscriptsammlung und insgesamt zwei eigene JavaScript-Dateien: eine für sämtliche Funktionen und die andere für die Einstellungen. Bisher gab es kein Script, das solche Bedingungen hatte (Grundscriptsammlung zähle ich mal nicht mit), jedoch denke ich, das sollte kein Problem machen. Hier jedenfalls der erste Code. Dieser kann ohne Änderungen einfach als JavaScript-Datei gespeichert und hochgeladen werden:

Code:
// MaiZ-Chatbot-System
// BETA 1 - 16. Januar 2008
// Version-Abgleich: http://www.wkforum.de/viewtopic.php?t=13088
// by DarkModi

/* GLOBALE FUNKTIONEN */

// removeBadChars
// Filtert innerhalb eines Strings bestimmte Sonderzeichen und ersetzt sie mit entsprechenden HTML-Entities
// Erwartet: STRING (zu filternder String)
// Rückgabe: STRING (gefilterter String)

function removeBadChars (s) {
 return s.replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(RegExp('"', 'g'), "&quot;").replace(RegExp("'", "g"), "'");
}

// printMaizBug
// Gibt JavaScript-Fehler von MaiZ im Betrieb aus.
// Erwartet: STRING (Fehlermeldung), ARRAY (Zeilendaten)

function printMaizBug (e, liDa) {
 var div = document.createElement("div");
 div.setAttribute("class", "maiz_debug");
 var t = (liDa) ? " Zeileninhalt: "+liDa+"\n" : "";
 div.innerHTML = "<font color='red'><b>FEHLER: ein Fehler ist während des Ausführens von MaiZ aufgetreten. Das Script wurde beendet. Fehlerdaten:<br /><textarea>Fehlertext: "+e+t+"</textarea><br />Sende den Inhalt der Textboxt bitte entweder an den zuständigen Chat-Admin oder poste ihn im Wk-Forum im MaiZ-Thread: <a href='http://www.wkforum.de/viewtopic.php?t=13088' target='_blank'>Link</a>.";
 document.getElementsByTagName("body")[0].appendChild(div);
}
/* STREAMER-FUNKTIONEN */

// startLoop
// Startet das Streamer-Script
// Erwartet: INT (Anzahl der Chatlogins des eingeloggten Users)

function startStreamer (logins) {
 if (olIsLoad() && efIsLoad()) {

// Globale Variable: myLogins
// Speichert den Wert von %chats%

  myLogins = logins;

// Globale Variable: chtCon
// Verweis auf den Chat-Inhalt

  chtCon = document.getElementsByTagName('td');

// Globale Variable: chtLen
// Länge des Chat-Streams

  chtLen = chtCon.length;

// Globale Variable: $temp
// Temporärer Speicher von MaiZ

  $temp = {
   list: [],
   stat: (getCookie("maizStatAll")) ? getCookie("maizStatAll").split("|") : [0],
   statRoom: 0
  };

// Globale Variable: $perm
// Permanenter Speicher von MaiZ. Bleibt auch nach Reconnect gespeichert wenn der Debug-Mode nicht aktiv ist.
// Derzeit aufgrund von Testzwecken dasselbe Verhalten wie $temp

  parent.perm = {};
  $perm = parent.perm;

// Shortcuts für das Eingabeframe und die Onlineliste
  $ol = parent.rightFrame;
  $inp = parent.info;

// Aufruf der Grundkonfiguration
  configMaiz();

// Prüfen, ob der User gebannt oder geknebelt ist
// Noch nicht integriert
  switch ($temp.stat[0]) {
   case 1:
    // Knebel-Status
    break;
   case 2:
    // Bann-Status
    break;
   default:
    break;
  }

// Aufruf des Loops
  loopStream();

// Nach dem ersten Durchlauf: Definition dass der User sich gerade eingeloggt hat (Verhinderung von doppelten Loginnachrichten und ähnliches)
  $perm.started = 1;

 } else {
  setTimeout("startStreamer("+logins+");", 500);
 }
}

// loopStream
// Durchläuft und prüft den Chatstream

function loopStream () {
// Wenn der Chat gerade betreten oder der Raum gewechselt wurde: Prüfen und Definieren des Chatbots
 if (!$ol.room && olIsLoad()) {
  try {
   $temp.id = null;
   $ol.room = getRoom().toLowerCase();
   for (var i = 0; i < $temp.list.length; i++) {
    var l = $temp.list[i];
    if (l[0][chatData[1]] && l[0][chatData[1]][chatData[0]-1] && (!l[1] || l[1][$ol.room] && (typeof l[1][$ol.room] == "number" || l[1][$ol.room][chatData[0]-1]))) {
     configMaiz(i)
     $temp.bot.start();
      break;
    }
   }
  } catch (e) {
   printMaizBug(e);
   return;
  }
 }

// Aufruf des Bots, falls für diesen Raum vorhanden
 if ($ol.room && $temp.bot) {
  while (chtLen < chtCon.length) {
   $temp.liCo = chtCon[chtLen];
   try {
    $temp.bot.main(lineData($temp.liCo));
   } catch (e) {
    printMaizBug(e, lineData($temp.liCo));
    return;
   }
   chtLen++;
  }
 } else {
  chtLen = chtCon.length;
 }
 setTimeout("loopStream();", $perm.intval); 
}

/* MAIZ-FUNKTIONEN */

Maiz = function () {

// start
// Führt Befehle aus, die vor dem ersten Durchlauf nötig sind (Onlineliste setzen, etc.)

 this.start = function () {
// Prüfen, ob der User im Raum gebannt oder geknebelt ist
// Noch nicht integriert
  if (!$temp.stat[0]) {
   $temp.statRoom = (getCookie("maizStat"+$temp.id)) ? getCookie("maizStat"+$temp.id).split("|") : [0];
   switch ($temp.statRoom[0]) {
    case 1:
     // Raumknebel
     break;
    case 2:
     // Raumbann
     break;
    default:
     break;
   }
  }
// Erfassen der Raumdaten
  par.getRoomData();
// Begrüßen des Users
// Noch nicht integriert
  if (!$perm.started) {
//   par.sayHello();
  }
// Setzen von MaiZ in die Onlineliste
  if (par.pref.active.setOl) {
   par.setOl();
  }
 }

// main
// Grundfunktion. Wird bei jeder neuen Zeile aufgerufen und ruft daraufhin passende Funktionen auf
// Erwartet: ARRAY (Zeilendaten))

 this.main = function (liDa) {
  if (liDa) {
   var p = par.pref;
// Definition des Rangs des Users
   $temp.lvl = (p.user[liDa[2]]) ? [p.user[liDa[2]].lvlBot,p.user[liDa[2]].lvlSys] : [p.lvl.standard,liDa[4]];
   switch (liDa[0]) {
// Normale Chatsätze
    case 0:
     par.checkLine(liDa);
     break;
// /me-Sätze
    case 1:
     par.checkLine(liDa);
     break;
    case 2:
     break;
    case 3:
     break;
    case 4:
     par.sayHello(liDa);
     break;
    case 5:
     par.sayGoodbye(liDa);
     break;
    case 6:
     par.replaceSysBot();
     break;
    default:
     break;
   }
  }
 }

// checkLine
// Prüft eine Zeile auf Rcts und Cmds
// Erwartet: ARRAY (Zeilendaten)

 this.checkLine = function (liDa) {
  var p = par.pref;
  if (p.active.cmd && p.allow.cmd.bot[$temp.lvl[0]] && p.allow.cmd.sys[$temp.lvl[1]] && !liDa[3].indexOf("!")) {
   var cmdName = liDa[3].split(" ")[0].slice(1);
   if (par.cmd[cmdName]) {
    var cmdConf = p.cmd[cmdName];
    $temp.liMo = 3;
// Prüft Rcts vom Typ "bad" BEVOR das Cmd ausgeführt wird
    if (!par.rctCheck(liDa, 1) && cmdConf.bot[$temp.lvl[0]] && cmdConf.sys[$temp.lvl[1]]) {
     var a = par.getAttr(liDa[3], cmdConf.maxAttr);
     par.cmd[cmdName](liDa, a, liDa[3].slice(cmdName.length+2+a.join("").length+a.length*2));
    }
    return;
   }
  }
// Wenn kein Cmd vorhanden ist werden Rcts von beiden Typen geprüft
  par.rctCheck(liDa);
 }

// rctCheck
// Prüft eine Zeile auf Rcts.
// Erwartet: ARRAY (Zeilendaten), INT (Modus - 1 wenn nur "bad"-Typ geprüft werden soll, ansonsten 0)
// Rückgabe: 1 falls ein Rct mit stop-Attribut gefunden wird

 this.rctCheck = function (liDa, mode) {
  var p = par.pref;
  var list = {bad:par.rct.bad};
  if (!mode) {
   list.main = par.rct.main;
  }
  t: for (var type in list) {
   if (p.active.rct[type] && p.allow.rct[type].bot[$temp.lvl[0]] && p.allow.rct[type].sys[$temp.lvl[1]]) {
    var rcts = list[type];
    for (var i = 0; i < rcts.length; i++) {
     var rct = rcts[i];
     if ((!rct.bot || rct.bot[$temp.lvl[0]]) && (!rct.sys || rct.sys[$temp.lvl[1]]) && (!rct.needBotName || RegExp(toRegExp(par.rctName), "i").test(liDa[3]))) {
      var src = (typeof rct.src == "string") ? RegExp(toRegExp(rct.src), "i").test(liDa[3]) : rct.src.exec(liDa[3]);
      if (src) {
       var txt = (typeof rct.txt == "string") ? rct.txt : rct.txt[par.random(liDa[3].length+liDa[0]*parseInt(liDa[1].split(":")[1])+$ol.online, liDa, rct.txt.length)];
       txt = par.parseStrVars(txt, liDa);
       par.echo(txt);
       if (rct.stop) {
        return 1;
       }
       break t;
      }
     }
    }
   }
  }
 }

// echo
// Gibt einen Text aus
// Erwartet: STRING (Text), INT (Textmodus - derzeit noch nicht benötigt), STRING (Falls Text geflüstert werden soll: Name des Users)
 this.echo = function (text, mode, user) {
  if (text) {
   div = document.createElement("div");
   div.setAttribute("class", "maiz");
   div.innerHTML += (user) ? "<font size='-2'>(PM)</font>" : "<font size='-2'>(ALL)</font>";
   div.innerHTML += "&nbsp;"+par.strName+":&nbsp;"+text;
   if (!user || user == myNick) {
    document.getElementsByTagName("body")[0].appendChild(div);
   }
  }
 }

// random
// Erzeugt eine Pseudo-Zufallszahl
// Erwartet: INT (Beliebiger Zahlenwert), ARRAY (Zeilendaten), INT (Möglicher Bereich der Zufallszahlen)
// Rückgabe: INT (Pseudo-Zufallszahl)

 this.random = function (int, liDa, range) {
  int = parseInt(int);
  var ts = liDa[1].split(":");
  if (!isNaN(int) && int > 0) {
   return  Math.round(Math.pow((int+parseInt(ts[0])+parseInt(ts[1])+liDa[2].length*3+liDa[3].length+$ol.online)/1000+Math.PI, 8)*100) % range;
  } else {
   return NaN;
  }
 }

// getRoomData
// Speichert die Daten über den derzeitigen Raum - Anzahl der Onlineuser und eine Liste der Onlineuser

 this.getRoomData = function () {
  $ol.online = 0;
  $ol.user = {};
  var divs = $ol.document.getElementsByTagName("div");
  for (var i = 0; i < divs.length; i++) {
   if (divs[i].id && !divs[i].id.match(/\W/)) {
    $ol.user[divs[i].id] = 1;
    $ol.online++;
   }
  }
 }

// getRoomData
// Findet in einem Cmd-Text mögliche Attribute und filtert sie raus
// Erwartet: STRING (Cmd-Text), INT (Anzahl der maximal möglichen Attribute)

 this.getAttr = function (text, max) {
  var text = text.split(" ").slice(1);
  var attrs = [];
  for (var i = 0; i < max; i++) {
   if (!text[i].indexOf("#")) {
     attrs[i] = text[i].slice(1).toLowerCase();
   } else {
     break;
   }
  }
  return attrs;
 }

// sayHello
// Grüßt einen User
// Erwartet: ARRAY (Zeilendaten)
// Noch nicht integriert, dient nur als Fixer für die Onlineuser-Daten

 this.sayHello = function (liDa) {
  if (liDa[2] != myNick) {
   $ol.online++;
   $ol.user[liDa[2]] = 1;
  } 
 }

// sayHello
// Verabschiedet einen User
// Erwartet: ARRAY (Zeilendaten)
// Noch nicht integriert, dient nur als Fixer für die Onlineuser-Daten

 this.sayGoodbye = function (liDa) {
  $ol.online--;
  $ol.user[liDa[2]] = 0;
 }

// parseStrVars
// Parst verschiedene Variablen aus Strings, so zum Beispiel Replacer in Rcts
// Erwartet: STRING (zu parsender Text), ARRAY (Zeilendaten)
// Noch nicht vollständig integriert

 this.parseStrVars = function (s, liDa) {
  s = s.replace(/&user&/ig, liDa[2])
  return s;
 }

// parseMaizCode
// Parst MaizCode
// Erwartet: STRING (zu parsendet Text)

 this.parseMaizCode = function (s) {
  return s;
 }

// replaceSysBot
// Ersetzt den System-Chatbot mit MaiZ
// Noch nicht integriert

 this.replaceSysBot = function () {
 }

// setOl
// Fügt MaiZ in die Onlineliste ein

 this.setOl = function () {
  if (par.pref.active.setOl) {
   var div = $ol.document.createElement("div");
   div.setAttribute("id", "$maiz");
   div.innerHTML = par.olName;
   $ol.document.getElementById("bd:").insertBefore(div, $ol.document.getElementById("bd:").firstChild);
  }
 }

// Bot-Cmds

 this.cmd = {};

// SAY
// Gibt einen Text aus
// Mögliche Attribute: #STIL - gibt den Text in einem bestimmten Textstil aus

 this.cmd.say = function (liDa, attr, text) {
  if (text) {
   switch (attr[0]) {
    case "1337":
     var letters = [["a","b","e","g","i","j","l","o","q","s","t","z"], ["4","8","3","6","1","1","1","0","9","5","7","2"]];
     break;
     case "crazy":
     var letters = [["a","b","c","d","e","f","i","l","o","r","s","t","u","x","y","z"], ["@","ß","©","Ð","€","ƒ","!","£","ø","®","$","†","µ","×","¥","Ž"]];
      break;
     case "leet":
      var letters = [["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"], ["4","8","(","|)","3","|=","6","|-|","1","1","|&lt;","|_","|\\/|","|\\|","0","|°","9","|2","5","7","|_|","\\/","\\/\\/","&gt;&lt;","°/","2"]];
      break;
     case "confused":
      var letters = [["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","t","u","v","w","y","z"], ["α","в","¢","כ","ε","Ғ","ġ","н","ï","Ĵ","ĸ","Ł","м","и","σ","ρ","ġ","я","т","μ","√","ω","&#x1EF5","ζ"]];
      break;
     case "mixed":
      var letters = [["a","c","e","i","l","m","n","o","p","r","s","t","v","w","y","z"], ["@","©","€","!","£","/\\/\\","/\/","Ø","þ","®","$","†","\\/","\\/\\/","¥","2"]]
     default:
      break;
   }
   if (letters) {
     text = text.match(/<[^>]*>|&[a-z0-9#]+;|./gi);
     for (var i = 0; i < text.length; i++) {
      for (var j = 0; j < letters[0].length; j++) {
       if (text[i].toLowerCase() == letters[0][j]) {
        text[i] = letters[1][j];
        break;
       }
      }
     }
     text = text.join("");
    }
  par.echo(text);
  }
 }

// SEARCH
// Gibt einen Suchlink des Textes im Chat aus.
// Mögliche Attribute: #SUCHMASCHINE - nimmt den entsprechenden Suchservice

 this.cmd.search = function (liDa, attr, text) {
  if (text) {
   var service, link;
   switch (attr[0]) {
    case "yahoo":
      service = "Yahoo!";
      link = "http://de.search.yahoo.com/search?p=";
      break;
    case "wiki":
      service = "Wikipedia-Artikel";
      link = "http://de.wikipedia.org/wiki/Spezial:Suche?fulltext=Volltext&search=";
      break;
    case "imdb":
      service = "IMDb-Film-Datenbank";
      link = "http://www.imdb.com/find?s=all&q="
      break;
    case "leo":
      service = "LEO-Englisch <-> Deutsch-Wörterbuch";
      link = "http://dict.leo.org/?lang=de&search=";
      break;
     case "icq":
      service = "ICQ-People";
      link = "http://www.icq.com/search/people_results.php?q=";
      break;
     case "live":
      service = "Live.com";
      link = "http://search.live.com/results.aspx?q=";
      break;
     case "ebay":
      service = "eBay";
      link = "http://search.ebay.de/search/search.dll?query=";
      break;
     case "stupi":
      service = "Stupidedia"
      link = "http://stupidedia.org/stupi/Spezial:Search?go=Los&search=";
      break
     case "uncyc":
      service = "Uncyclopedia";
      link = "http://de.uncyclopedia.org/wiki/Spezial:Suche?search=";
      break;
     case "wkwiki":
      service = "Webkicks-Wiki"
      link = "http://wiki.webkicks.de/index.php?search=";
      break;
     case "urban":
      service = "Urban Dictionary";
      link = "http://www.urbandictionary.com/define.php?term=";
     break;
    default:
     service = "Google";
      link = "http://www.google.de/search?q="
      break;
   }
   text = service + "-Suche nach &quot;"+removeBadChars(text)+"&quot;: <a href=\"" + link + encodeURIComponent(text) + "\" target=\"_blank\">Link</a>";
   par.echo(text);
  }
 }

// HELP
// Gibt eine Liste aller Befehle oder Informationen zu einem Befehl aus

 this.cmd.help = function (liDa, attr, text) {
  if (text) {
   if (par.pref.cmd[text]) {
    text = (t = par.pref.cmd[text].helpTxt) ? t : "Zu diesem Befehl ist mir keine Information bekannt.";
   } else {
    text = "Diesen Befehl kenne ich nicht.";
   }
  } else {
   var text = "Mir bekannte Befehle: ";
   for (var cmd in par.cmd) {
     text += "| <b>"+cmd+"</b> |";
   }
  }
  par.echo(text, 1, liDa[2]);
 }

// INFO
// Gibt ein kurzes Copyright zum Bot aus

 this.cmd.info = function (liDa, attr, text) {
  par.echo("MaiZ-Chatbot-System - BETA 1 - by DarkModi", 1, liDa[2]);
 }

// COIN
// Wirft eine Münze

 this.cmd.coin = function (liDa, attr, text) {
  if (text) {
   var text = parseInt(text);
   if (!isNaN(text) && text <= 1000) {
    var result = (par.random(text, liDa, 2)) ? "Kopf" : "Zahl";
    par.echo("Ich werfe eine Münze - und es ist... "+result+"!");
   }
  }
 }

 var par = this;
}


Nun kommt die zweite Datei dran. Diese solltet ihr erstmal nur kopieren, hier könnt ihr MaiZ nämlich noch konfigurieren:

Code:
// MaiZ-Konfigurationsdatei
// BETA 1 - 16. Januar 2008
// Version-Abgleich: http://www.wkforum.de/viewtopic.php?t=13088
// by DarkModi

// configMaiz: setzt sämtliche für MaiZ benötigte Variablen.
// Erwartet: INT (Bot-ID)

configMaiz = function (id) {
 if (typeof(id) == "undefined") {
/* BASISKONFIGURATION */

// Dieser Abschnitt wird aufgerufen, wenn der Chat betreten wird.

/* Einfache Basiskonfiguration */

// $temp.list
// Bestimmt die Grundkonfiguration jedes Chatbots. Jeder Eintrag ist ein eigener Chatbot.
// SYNTAX: $temp.list[ID] = [{ERLAUBTER CHATNAME[ERLAUBTE SERVER]}, {ERLAUBTER RAUMNAME[ERLAUBTER SERVER]}];
// Beispiel: $temp.list[0] = [{zischi:[1,0,0,0]}, {main:1}];
// Standardmäßig ist ein Bot definiert, der in jedem Chat und auf jedem Server aktiv ist. D.h. hier müsst ihr nichts ändern.

  $temp.list[0] = [{}];
  $temp.list[0][0][chatData[1]] = [1,1,1,1];

/* Erweiterte Basiskonfiguration */
// FOLGENDE WERTE SOLLTEN NUR VERÄNDERT WERDEN WENN MAN WEIß WAS MAN TUT!

// $perm.intval
// Verändert den Aufruf-Intervall von MaiZ
// Standard: 500

  $perm.intval = 500;

/* ALLGEMEINE BOT-EINSTELLUNGEN */
// Die folgenden Einstellungen gelten für ALLE Bots, sollten sie nicht später überschrieben werden.

 
/* BOT-NAMENSGEBUNG */
// Hier werden die verschiedenen Anzeigenamen des Bots bestimmt. HTML ist überall möglich.

// strName
// Anzeigename im Chatstream

   Maiz.prototype.strName = "<b><font color=\"aqua\">M</font>ai<font color=\"aqua\">Z</font></b>";

// olName
// Anzeigename in der Onlineliste

   Maiz.prototype.olName = "<div style='border-bottom:2px #DBDBDB dashed;'><b><font color='aqua'>M</font>ai<font color='aqua'>Z</font></b><br><small>Chat-Bot</small><br>";

// rctName
// Name, den MaiZ im Chatstream als seinen eigenen Namen erkennt

   Maiz.prototype.rctName = "maiz";

/* RCT-KONFIGURATION */
// Hier werden die verschiedenen Rct's eingetragen.
// Hierbei gibt es zwei Typen von Rct's: "main" und "bad".
// "main" sind dazu gedacht, im allgemeinen Chatbetrieb verwendet zu werden.
// "bad" hingegen sollen wichtige Wörter kennzeichnen, zum Beispiel Badwords.
// Einfaches Syntax eines Rcts: {src:"SUCHBEGRIFF", txt:"REAKTIONSTEXT"}
// Beispiel: {src:"test",txt:"Ich funktioniere! :D"}
// Nach allen Rcts außer dem letzten einer der beiden Kategorien muss ein "," stehen.

// Mögliche Werte bei Rcts:
// src: Suchtext. Möglich sind Strings und RegExp.
// txt: Reaktionstext. Möglich ist ein Text, aber auch ein Array aus mehreren Texten.
// bot: Berechtigungs-Liste nach Boträngen.
// sys: Berechtigungs-Liste nach Systemrängen.
// needBotName: Bestimmt, ob der Rct-Botname im Satz gefunden werden muss damit MaiZ reagiert.
// stop: nur für den Typ "bad" relevant. Bricht eine Prüfung auf Cmds ab wenn das Rct gefunden wird.

// Weiterhin sind Variablen möglich, die daraufhin mit bestimmten Worten ersetzt werden. Diese sind derzeit:
// &user&: Name des Users, auf den reagiert wird

   Maiz.prototype.rct = {
    main: [
/* BEGINN DER MAIN-RCTS */
     {src:"text", txt:"ich funktioniere!"},
     {src:/lol!/i,txt:[":D","D:"]},
     {src:/hi/i,txt:"hi &user&! :)",needBotName:1}
/* ENDE DER MAIN-RCTS */
    ],
    bad: [
/* BEGINN DER BAD-RCTS */
/* ENDE DER BAD-RCTS */
    ]
   };

/* ALLGEMEINE MAIZ-EINSTELLUNGEN */

   Maiz.prototype.pref = {

/* USERLISTE */
// Hier muss jeder User eingetragen werden, der spezielle Rechte haben soll.
// Syntax: USERNAME: {lvlBot:CHATBOT-RANG,lvlSys:SYSTEM-RANG};
// Systemrang-Definition: 0 = Gast, 1 = Normaler User, 2 = Moderator, 3 = Administrator/Hauptadministrator

    user: {
/* BEGINN DER USERLISTE */
     User1: {lvlBot:1,lvlSys:1},
     User2: {lvlBot:1,lvlSys:1}
/* ENDE DER USERLISTE */
    },

/* USERRÄNGE */
// Hier können einzelne Userränge erstellt werden.
// Je nach Position des Eintrags wird dem Rang die entsprechende ID zugeordnet, bei 0 beginnend.
// So hat der erste eingetragene Rang die ID 0, der zweite 1, der vierte 3 usw.
// Syntax: name: ["RANGNAME 0", "RANGNAME 1"];
// Weiterhin kann der Wert "standard" definiert werden. User, denen kein spezieller Rang zugeordnet wurde, wird daraufhin dieser Rang zugeordnet.

    lvl: {
/* BEGINN RANG-KONFIGURATION */
// STANDARDRANG-DEFINITION
     standard: 1,
// RANG-KONFIGURATION
     name: ["Ignorierter User","Normaler User","Bot-Administrator"]
/* ENDE RANG-KONFIGURATION */
    },

// Hier endet die Grund-Konfiguration. Die folgenden Einstellungen sind bereits so eingestellt, dass User mit dem Botrang 0 vom Bot ignoriert werden und Gäste keine Bot-Befehle ausführen können.

    allow: {
     rct: {
      main: {
       sys: [1,1,1,1],
       bot: [1,1,1]
      },
      bad: {
       sys: [1,1,1,1],
       bot: [1,1,1]
      }
     },
     cmd: {
      sys: [0,1,1,1],
      bot: [0,1,1]
     }
    },

    active: {
     sayHello: 1,
     sayGoodbye: 1,
     rct: {
      main: 1,
      bad: 1
     },
     cmd: 1,
     setOl: 1
    },

    cmd: {
     say: {
      bot: [1,1,1],
      sys: [1,1,1,1],
      maxAttr: 1,
      helpTxt: "<b><u>SAY</u>:</b> Gibt einen Text aus.<br /><u><b>Mögliche Attribute:</b></u> #STIL - Textstil.<br /> <b>Mögliche Werte:</b> #1337 - Standard-Leet-Stil, #leet: Extrem-Leet-Stil, #crazy, #confused, #mixed: weitere zufällige Stile"
     },
     search: {
      bot: [1,1,1],
      sys: [1,1,1,1],
      maxAttr: 1,
      helpTxt: "<b><u>SAY</u>:</b> Zeigt einen Suchlink an. Wenn kein Attribut angegeben wird, wird Google genutzt.<br /><u><b>Mögliche Attribute:</b></u> #SUCHSERVICE - Suchservice, der genutzt werden soll.<br /> <b>Mögliche Werte:</b> #yahoo - Yahoo!, #wiki: Wikipedia, #imdb: IMDB, #leo: dict.leo.org, #icq: icq.com, #live: live.com, #ebay: eBay, #stupi: Stupidedia, #uncyc: Uncyclopedia (de), #wkwiki: Webkicks-Wiki, #urban: urbandictionary.com"
     },
     help: {
      bot: [1,1,1],
      sys: [1,1,1,1],
      maxAttr: 0,
      helpTxt: "<b><u>HELP</u>:</b> Gibt eine Beschreibung zu einem Befehl aus. Wenn außerdem ein Befehlsname angegeben wird, wird zu diesem Befehl ein Hilfetext ausgegeben."
     },
     info: {
      bot: [1,1,1],
      sys: [1,1,1,1],
      maxAttr: 0,
      helpTxt: "<b><u>INFO</u>:</b> Gibt Informationen und Copyright zum Bot aus."
     },
     coin: {
      bot: [1,1,1],
      sys: [1,1,1,1],
      maxAttr: 0,
      helpTxt: "<b><u>COIN</u>:</b> Wirft eine Münze. Es muss weiterhin eine Zahl zwischen 1 und 1000 angegeben werden, zum Beispiel '!coin 500'."
     }
    }
   };

/* ENDE DER BASISKONFIGURATION */

 } else {
  $temp.id = id;
  $temp.bot = new Maiz($temp.list[id][0]);

/* BOT-KONFIGURATION */

// Dieser Abschnitt definiert die Einstellungen am aktiven Chatbot.

// Erkennung des Chatbots

  switch (id) {
// Hier wird geprüft, welcher Chatbot aktiv ist und dementsprechend die passende Konfiguration aufgerufen.
// Beispiel: wenn man die Einstellungen des Bots mit der ID 0 ändern will, muss man vorher "case 0:" schreiben. Weiterhin muss am Ende ein "break;" stehen.
// Syntaxe und Einstellungen sind dieselben wie bei der allgemeinen Bot-Konfiguration.
// Hier muss allerdings nicht alles nochmals definiert werden, sondern nur das, was der entsprechende Bot anders machen soll.

   case 0:
    break;
   default:
    break;
  }
 }
}


Sobald ihr den Code kopiert und eingefügt habt könnt ihr noch verschiedene Einstellungen ändern. Ich werde nun nicht alles erklären, zumal viel (noch) zu komplex ist oder momentan einfach überflüssig ist, jedoch das wichtigste. Erstmal solltet ihr folgenden Codeteil finden:

Code:
  $temp.list[0] = [{}];
  $temp.list[0][0][chatData[1]] = [1,1,1,1];


Diesen findet ihr ziemlich am Anfang. Hier wird bestimmt, auf welchen Servern, in welchen Chats und sogar in welchen Räumen MaiZ aktiv ist. Es ist sogar möglich, mehrere verschiedene Bots hier zu definieren. MaiZ ist aber natürlich nur in Chats aktiv, in dem auch die richtigen JavaScript-Dateien eingebunden werden. Standardmäßig ist ein Bot definiert, der in allen Chats und allen Räumen aktiv sein kann. Wenn ihr nichts ändern wollt überspringt den nächsten Teil einfach und geht weiter zu den Bot-Namen. Ansonsten löscht erstmal den dort stehenden Code.

Jedenfalls, das Syntax hierzu lautet folgendermaßen:

Zitat:
$temp.list[ID] = [{CHATNAME: [SERVER]}, <{RAUMNAME: [SERVER]}];


Zur Erläuterung:

ID: Die ID des Bots, muss eine Nummer sein. Hierbei sollte aufsteigend vorgegangen werden, beginnend mit 0: Bot 1 erhält also die ID 0, Bot 2 die ID 1, etc.
CHATNAME: der Name des Chats, in dem MaiZ aktiv sein soll. der Name muss kleingeschrieben sein. Es sind auch mehrere Chatnamen pro Bot möglich, siehe auch das gleich folgende Beispiel.
SERVER: Definiert, auf welchen Servern MaiZ aktiv sein soll. Wenn MaiZ auf dem Server aktiv sein soll, muss an entsprechender Stelle "1" angegeben werden. Hierbei muss das ganze als vierstelliges Array definiert werden, wobei jede Stelle einen eigenen Chatserver darstellt. Ist schwer zu beschreiben, am besten seht ihr euch dazu das Beispiel an.
RAUMNAME: Name des Raums, in dem MaiZ aktiv sein soll. Hierbei ist dasselbe Syntax möglich wie beim Chatnamen, mitsamt dem Server-Wert. Allerdings ist es hier auch möglich, einfach nur "1" als Wert anzugeben - dann ist MaiZ auf allen Chatservern in diesem Raum aktiv. Wenn man garkeinen Raum angibt ist MaiZ in allen Räumen aktiv. Außerdem muss beachtet werden, dass für den Hauptchat "main" und für Privaträume "sep" eingetragen werden muss.

Beispiel: man will den Bot im Chat "zischi" auf Server 1 auftauchen lassen, unzwar in den Räumen "main" und "flirt". Weiterhin soll ein zweiter Bot im Chat "troublex" auf Server 3 aktiv sein. Dann sähe der Code folgendermaßen aus:

Code:
$temp.list[0] = [{zischi:[1,0,0,0]}, {main:1,flirt:1}];
$temp.list[1] = [{troublex:[0,0,1,0]}];


Ihr seht: dasselbe wie bei den Chatnamen, nur kann man hier einfach "1" angeben. Optional ist zwar auch, wie gesagt, die Angabe von erlaubten Servern möglich, ich denke aber, das wird nicht oft benötigt werden. Es ist übrigens auch möglich, mehrere Chatnamen und Räume pro Bot anzugeben - diese müssen innerhalb der geschweiften Klammer stehen und mit einem Komma getrennt werden.

Nun zum Namen des Bots. Findet folgendes:

Code:
// strName
// Anzeigename im Chatstream

   Maiz.prototype.strName = "<b><font color=\"aqua\">M</font>ai<font color=\"aqua\">Z</font></b>";

// olName
// Anzeigename in der Onlineliste

   Maiz.prototype.olName = "<div style='border-bottom:2px #DBDBDB dashed;'><b><font color='aqua'>M</font>ai<font color='aqua'>Z</font></b><br><small>Chat-Bot</small><br>";


Hier könnt ihr den Namen von MaiZ im Chatstream (strName) und den Namen in der Onlineliste (olName) verändern. Wie immer muss der Name entsprechend zwischen den Anführungsstrichen eingetragen werden.

Nun zu den Rcts. Dies sind die Badwords von MaiZ, sozusagen - also die Worte, auf die MaiZ mit einem Text reagiert. Hierzu müsst ihr folgende Zeilen finden:

Code:
/* BEGINN DER MAIN-RCTS */
     {src:"text", txt:"ich funktioniere!"},
     {src:/lol!/i,txt:[":D","D:"]},
     {src:/hi/i,txt:"hi &user&! :)",needBotName:1}
/* ENDE DER MAIN-RCTS */


Die zwei Zeilen "BEGINN DER MAIN-RCTS" bzw. "ENDE DER MAIN-RCTS" sind nur zur Abgrenzung da - ihr könnt sie löschen, allerdings schaden sie auch keinem und helfen, die Rcts an der richtigen Stelle einzutragen.

Das Syntax für ein Rct sieht jedenfalls folgendermaßen aus:

Zitat:
{src:SUCHBEGRIFF, txt:ANTWORT},


SUCHBEGRIFF: Der Begriff, auf den MaiZ reagieren soll.
ANTWORT: Die Antwort, die MaiZ ausgeben soll.

Ihr seht: es ist diesmal mehr als einfach. Winken Es gibt allerdings noch eine sehr wichtige Sache zu beachten: nach dem letzten eingetragenen Rct vor "ENDE DER MAIN-RCTS" nach der schließenden eckigen Klammer darf KEIN Komma stehen! Dieses müsst ihr dort entfernen.

Kurzes Beispiel: ihr wollt, dass MaiZ beim Wort "hi" ein "auch dir hi! Winken" ausgibt. Dann müsst ihr den Standard-Code mit folgendem ersetzen:

Code:
/* BEGINN DER MAIN-RCTS */
     {src:"hi", txt:"auch dir hi! ;)"}
/* ENDE DER MAIN-RCTS */


Es gibt übrigens noch viel mehr Möglichkeiten bei Rcts, das hier zu erklären würde jedoch den Rahmen der Beta sprengen denke ich, deshalb lest hierzu am besten die Kommentare im Botscript.

Als nächstes sollte ich erklären, wie ihr Usern einen Rang gebt. Dies ist noch nicht wirklich wichtig, allerdings kann man damit einstellen, dass MaiZ bestimmte User ignorieren soll. Findet hierzu folgendes:

Code:
/* BEGINN DER USERLISTE */
     User1: {lvlBot:1,lvlSys:1},
     User2: {lvlBot:1,lvlSys:1}
/* ENDE DER USERLISTE */


Hier müssen zwischen den beiden Zeilen die einzelnen User eingetragen werden. Syntax:

Zitat:
USERNAME: {lvlBot:BOTRANG,lvlSys:1},


USERNAME: Name des Users. Muss richtig geschrieben sein!
BOTRANG: Rang des Users beim Bot.

Dieser gesamte User-Abschnitt ist derzeit nur dann relevant, wenn ihr einen User von MaiZ ignorieren lassen wollt, er wird dann keine Cmds mehr ausführen können (Rcts sind noch möglich). Dazu müsst ihr den Bot-Rang "0" eintragen (ohne Anführungsstriche).

Sobald ihr das alles eingestellt habt seid ihr fertig! Ladet nun auch diese Datei hoch.

Nun zum Einbinden der Dateien: dazu benötigt ihr folgenden Code. Wie immer in die Ankündigung damit:

Code:
<script type="text/javascript" src="URL VON DATEI 1"></script><script type="text/javascript" src="URL VON DATEI 2"></script><script type="text/javascript">startStreamer(%chats%);</script>


Hier müsst ihr wie gewohnt die URLs einsetzen. Die Reihenfolge sollte hierbei keine Rolle spielen, ich binde zuerst die Scriptdatei selbst und daraufhin die Konfigurationsdatei ein.

Nun, das wars! Nun solltet ihr MaiZ testen. Geht dazu in den Chat und eventuell in den Raum, wo MaiZ aktiv sein sollte und gebt - wie schon bei der Testversion - ein:

Zitat:
!say ich funktioniere!


Wenn ihr eine Antwort bekommt habt ihr wahrscheinlich alles richtig gemacht. Ansonsten bekommt ihr möglicherweise eine Fehlermeldung - diese solltet ihr hier posten. Wenn garnichts passiert und MaiZ auch nicht in der Onlineliste steht solltet ihr hingegen die URL eurer Konfigurationsdatei hier posten.

So, das wärs. Ich weiß, es muss sehr ungewohnt sein da vieles einmalig für Scripts im Forum ist, allerdings hoffe ich, ihr kommt trotzdem zurecht. Ansonsten beantworte ich gerne Fragen. Winken
Eine Liste aller enthaltener Features samt kommender Features folgt übrigens auch noch im ersten Post.

EDIT: fast vergessen: die CMDs sind folgende:

SAY: gibt einen Text aus.
SEARCH: Lässt MaiZ einen Suchlink ausgeben.
INFO: MaiZ gibt an den Befehlsausführenden ein Copyright des Bots aus.
HELP: Gibt eine Liste aller bekannten Befehle aus. Weiterhin kann eine Info zu einem Befehl mit !help BEFEHLSNAME aufgerufen werden.
COIN: Lässt MaiZ eine Münze werfen. Es muss hierzu eine Zahl zwischen 1 und 1000 angegeben werden, zum Beispiel also !coin 42


Zuletzt bearbeitet von DarkModi am 05.04.2008, 12:52, insgesamt 3-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
cro




Anmeldedatum: 08.04.2007
Beiträge: 225

BeitragVerfasst am: 16.01.2008, 22:30    Titel: Antworten mit Zitat

Hey!

Ich weiß nicht, wo ich den Chatnamen eintragen soll.

Da sind ja diese fünf Zeilen. Aber die verwirren mich, da ich nicht weiß, wo ich den Chatnamen eingeben soll.
Also mit dem Server weiß ich schon.
Code:
[1,0,0,0]

Beide Chats sind auf Server 1.

Könnt ihr für mich einfach nur Chat1 und Chat2 eintragen? Damit ich weiß, wo die Chatnamen hinsollen.
Hier der Code:
Code:

  $temp.list[0] = [{}];
  $temp.list[0][0][chatData[1]] = [1,1,1,1];
  $temp.list[0][1] = {sep:[1,1,1,1]};

  $temp.list[1] = [{}];
  $temp.list[1][0][chatData[1]] = [1,1,1,1];


Danke.

EDIT: Was ist jetzt mit den Funtkionen, auf die der Bot reagiert?
Kann ich noch solche benutzen?
Code:
this.rcwd["Hilfe James"] = "Wenn du Hilfe brauchst, dann schreib /alarm"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Forum zum WebKicks.De Chatsystem Foren-Übersicht -> Bots, Chat-Games Alle Zeiten sind GMT + 2 Stunden
Gehe zu Seite Zurück  1, 2, 3 ... 11, 12, 13 ... 37, 38, 39  Weiter
Seite 12 von 39

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Impressum | Datenschutz | AGB
Deutsche Übersetzung von phpBB.de