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
.

Nickänderungs-Script
Gehe zu Seite 1, 2, 3 ... 16, 17, 18  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Forum zum WebKicks.De Chatsystem Foren-Übersicht -> Individuelle Änderungen / Anpassungen / Erweiterungen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
DarkModi




Anmeldedatum: 08.05.2005
Beiträge: 1969

BeitragVerfasst am: 10.01.2007, 22:38    Titel: Nickänderungs-Script Antworten mit Zitat

Letzte Änderung am Script: 18. Mai 2007 - V. 2 (siehe Postlog für genaueres)

Nickänderungs-Script

Dies ist der Thread zum Nickänderungs-Script. Dieses Script erlaubt es, Nicks innerhalb des Chatstreams beliebig zu verändern.

Kurzübersicht des Posts:

I. Allgemein
1. Ausführliche Scriptbeschreibung
2. Einbauanleitung
3. Kurzanleitung zum Nickeintragen (Besonders für Anfänger gut geeignet)

II. Dokumentation
1. Nicks eintragen und im Chat nutzen (Eher für erfahrene User geeignet)
-1) Unveränderbare Nicks
-2) Farblich dynamische Nicks
-3) Komplett dynamische Nicks
2. Scripteinstellungen

III. Erweitert
1. Optionale Veränderungen/Anpassungen an andere Scripts
2. Bekannte Bugs/Bugstatus
3. Kompatibilität zu anderen Scripts (BITTE VOR EINBAU LESEN!)
4. Weitere Informationen/Kommentar
5. Postlog/Updates

I. Allgemeines

1. Ausführliche Scriptbeschreibung

Dieses Script erlaubt es, Nicks im Chatverlauf zu verändern und dementsprechend anders anzuzeigen. Es maskiert Nicks sozusagen innerhalb des normalerweise sichtbaren Chatfensters, jedoch werden Logindaten, Einträge in der Topliste und ähnliches nicht geändert, nur die Anzeige im Chatfenster ist betroffen. Soll heißen, ihr loggt euch weiterhin unter eurem alten Nick ein. Auch Flüsternachrichten, Team-Nachrichten, euer Urhebernick bei Systembefehlen (Kick, Bann, etc.) und einige weitere Dinge bleiben unverändert.

Sonderzeichen sind in den neuen Nicks ebenfalls möglich, ebenso beliebiges HTML. Weiterhin besitzen die neuen Nicks auf Wunsch dieselben Möglichkeiten wie normale Nicks, können also gefärbt und restored werden. Es ist sogar möglich, seinen Nick im Chatverlauf selbst zu verändern, falls so gewollt.
Sämtliche Einstellungen wer seinen Nick wie verändern kann werden natürlich von dem, der das Script verwaltet bestimmt. Weiterhin ist es möglich, den Nick optional in der Onlineliste, bei /w oder in der Ankündigung und im Eingabeframe zu verändern. Auch das Ausschalten der Nickänderung im Chatstream ist möglich.

Gastnicks werden nicht 100% funktionieren und ich rate davon ab, Gäste in das Script einzutragen.

Das Script ist recht komplex und braucht seine Zeit, dass man versteht, wie das ganze funktioniert, deshalb lasst euch Zeit, den Post komplett und in aller Ruhe zu lesen. Falls es trotzdem Fragen gibt, einfach fragen. Winken

2. Einbauanleitung

Um das Script einzubauen, benötigt ihr zuerst Webspace.

Sobald ihr einen Webspace habt, kopiert folgenden Code in eine .js-Datei und ladet sie auf den Webspace (eine genauere Anleitung hierzu findet ihr zum Beispiel im Webkicks-Wiki in diesem und diesen Artikel):

Code:
//----------------------//
// Nickänderungs-Script //
//     by DarkModi      //
//----------------------//

//
// Scriptversion vom 18. Mai 2007 - V. 2
// Link für Updates/Abgleich zur aktuellen Version:
//
// http://www.wkforum.de/viewtopic.php?t=11502
//

// Diese Zeile NICHT ändern!

nickChangeList = new Object;

/* Einstellungen */

// Definierung der neuen Nicks
// Syntax:
// nickChangeList["ALTER NICK"] = ["NEUER GRUNDNICK", "NICKMODUS", "OPTIONAL: NICK FÜR DIE ONLINELISTE"];

nickChangeList["Beispiel 1"] = ["Neuer Nick", 0];
nickChangeList["Beispiel 2"] = ["Neuer Nick 2", 0];

// Nickänderung im Chatstream?
// 0 = aus, 1 = ein, 2 = /w wird verändert, 3 = /w wird verändert + HTML-Tags bleiben

strNickChange = 1;

// Nickänderung in der Onlineliste?
// 0 = aus, 1 = ein, 2 = ein + HTML-Tags bleiben

olNickChange = 0;

// Nick in Ankündigung und im Eingabeframe ändern?
// 0 = aus, 1 = ein

aiNickChange = 0;

//------------------------------//
// AB HIER NICHTS MEHR ÄNDERN!!!//
//------------------------------//

/* Funktionen & Variablen */

// Länge des Streams in Zeilen (anfangs 0)

strLen = 0;

// Erstellen der neuen Nickfarbe

function nick2arr (nick) {
 temp = strip_tags(nick).replace(/&[a-z0-9#]+;/ig, "X").split("");
 while (strip_tags(nick).match(/&[a-z0-9#]+;/i)) {
  temp[strip_tags(nick).search(/(&[a-z0-9#]+;)/i)] = RegExp.$1;
  nick = nick.replace(/&[a-z0-9#]+;/i, "X");
 }
 while (nick.match(/<[^>]*>/)) {
  if (temp[nick.search(/<[^>]*>/)]) {
   temp[nick.search(/(<[^>]*>)/)] = RegExp.$1 + temp[nick.search(/<[^>]*>/)];
  } else {
   temp[temp.length-1] = temp[temp.length-1] + nick.match(/(<[^>]*>)/)[0];
  }
  nick = nick.replace(/<[^>]*>/, "");
 }
 return temp;
}

// Generierung der neuen Nickfarbe

function crNickColor (c) {
 if (c.getElementsByTagName("font")[0]) {
  if (typeof(n[0]) == "string") {
   n[0] = nick2arr(n[0]);
  }
  var nick = "";
  var ar = n[0];
  var c = c.getElementsByTagName("font");
  if (c[1]) {
   if (c[0].face) {
    var t = 1;
    var font = c[0].face;
    if (n[1] > 2 && font.match("#")) {
     var ar = nick2arr(font.replace(font.split("#", 1)[0] + "#", "").replace("<", "&lt;").replace(">", "&gt;"));
    }
    font = font.split("#", 1)[0];
   } else {
    var t = 0;
   }
   if (n[1] % 2 == 1) {
    var x = new Array();
    var y = new Array();
    var z = new Array(new Array, new Array, new Array);
    for (var i = 0; i < 3; i++) {
     x[i] = parseInt(c[t].color.substr(i*2+1, 2), 16);
     y[i] = parseInt(c[c.length-1].color.substr(i*2+1, 2), 16);
    }
    for (var i = 0; i < 3; i++) {
     for (var j = 0; j < ar.length; j++) {
      z[i][j] = Math.round(x[i] + (y[i] - x[i]) * j / (ar.length - 1));
     }
    }
    for (var i = 0; i < ar.length; i++) {
     nick += "<span style=\"color:rgb(" + z[0][i] + "," + z[1][i] + "," + z[2][i] + ")\">" + ar[i] + "</span>";
    }
   } else {
    for (var i = 0; i < ar.length; i++) {
     nick += "<span style=\"color:";
     nick += (i % 2 == 0) ? c[t].color : c[c.length-1].color;
     nick += "\">" + ar[i] + "</span>";
    }
   }
   if (t == 1) {
    nick = "<span style=\"font-family:" + font + "\">" + nick + "</span>";
   }
  } else {
   nick = "<span style=\"color:" + c[0].color + "\">" + ar.join("") + "</span>";
  }
 } else {
  var nick = c.innerHTML;
 }
 return nick;
}

// Änderung des Nicks im Stream

function changeNickStr () {
 for (strLen; strLen < document.getElementsByTagName("td").length; strLen++) {
  c = document.getElementsByTagName("td")[strLen];
  if (c.getElementsByTagName("span")[0]) {
   if (!(c.getElementsByTagName("span")[0].className == "not_reg")) {
   c = c.getElementsByTagName("b");
    for (var i = 0; i < c.length; i++) {
     var nick = strip_tags(c[i].innerHTML);
     if (!(c[i].getElementsByTagName("b")[0]) && c[i].getElementsByTagName("font")[0] && nickChangeList[nick]) {
      n = nickChangeList[nick];
      if (n[1] < 1) {
       c[i].innerHTML = n[0];
      } else {
       if (!(n[3])) {
        n[3] = crNickColor(c[i]);
       }
       if (i < c.length-1 && strip_tags(c[i].innerHTML) == strip_tags(c[c.length-1].innerHTML) && c[c.length-1].getElementsByTagName("font")[0]) {
        c[i].innerHTML = n[3];
        n[3] = crNickColor(c[c.length-1]);
       } else {
        c[i].innerHTML = n[3];
       }
      }
     }
    }
   } else if (strNickChange > 1) {
    c = c.getElementsByTagName("span");
    for (var i = 1; i < c.length; i++) {
     var nick = strip_tags(c[i].innerHTML).replace("(*)", "");
     if (nickChangeList[nick]) {
     n = nickChangeList[nick];
     if (!(n[2])) {
       n[2] = (typeof(n[0]) == "string") ? n[0] : n[0].join("");
      }
     c[i].innerHTML = (strNickChange > 2) ? c[i].innerHTML.replace(nick, n[2]) : c[i].innerHTML.replace(nick, strip_tags(n[2]));
     }
    }
   }
  }
 }
}

// Änderung des Nicks in der Online-Liste

function changeNickOl () {
 for (var nick in nickChangeList) {
  if (parent.rightFrame.document.getElementById(nick)) {
   var n = nickChangeList[nick];
   if (!(n[2])) {
    nickChangeList[nick][2] = (typeof(n[0]) == "string") ? n[0] : n[0].join("");
   }
   olc = parent.rightFrame.document.getElementById(nick).getElementsByTagName("span");
   olc[olc.length-1].innerHTML = (olNickChange == 1) ? strip_tags(n[2]) + "&nbsp;" : n[2] + "&nbsp;";
  }
 }
}

// Ersetzen des Nicks in der Ankündigung und im Eingabeframe

function changeNickAi (nick) {
 if (nickChangeList[nick]) {
  n = nickChangeList[nick];
  c = parent.info.document.getElementsByTagName("b")[parent.info.document.getElementsByTagName("b").length-1];
  if (strip_tags(c.innerHTML) == nick) {
   if (n[1] > 0) {
    c.innerHTML = crNickColor(c);
   } else {
    c.innerHTML = nickChangeList[nick][0];
   }
  }
  c = document.getElementsByTagName("b");
  for (i = 0; c.length > i; i++) {
   if (strip_tags(c[i].innerHTML) == nick) {
    if (n[1] == 0) {
     c[i].innerHTML = n[0];
    } else {
     c[i].innerHTML = crNickColor(c[i]);
    }
   }
  }
 }
}

// Starten des Nickänderers

function nickChange (str, ol, nick) {
 if (aiNickChange == 1) {
  changeNickAi(nick);
 }
 if (olNickChange > 0) {
  setInterval("changeNickOl();", ol);
 }
 if (strNickChange > 0) {
  setInterval("changeNickStr();", str);
 }
}



Nun geht in euren Chat als Admin, geht auf Admin-Menü und geht dort auf die Einstellungen für die Ankündigung.
Dort müsst ihr zunächst an den Anfang der ersten und dritten Ankündigung, wenn nicht schon vorhanden, die Grundscriptsammlung einbinden:
Code:
<script type="text/javascript" src="/grundscripts.js"></script>


Anschließend fügt folgendes in die Ankündigung für alle Chatter ein:
Zitat:
<script type="text/javascript" src="URL"></script><script type="text/javascript">nickChange(50, 2000, strip_tags('%user%'));</script>


Hier muss man "URL" in die URL der js-Datei ändern.

3. Kurzanleitung zum Nickändern

Im Nachfolgenden gibt es eine stark gekürzte Version, wie ihr Nicks eintragt. Da viele das Grundprinzip des Nickeintragens wohl für sehr kompliziert halten habe ich mich dazu entschlossen, so eine Guide zu schreiben, die alles recht kurz und knapp erklärt, dafür aber eben nicht alles.

Nick eintragen

Um einen Nick einzutragen findet folgende Zeilen:

Code:
nickChangeList["Beispiel 1"] = ["Neuer Nick", 0];
nickChangeList["Beispiel 2"] = ["Neuer Nick 2", 0];


Löscht diese beiden Zeilen ruhig, das Script braucht sie nicht. Wichtig ist nur, dass ihr an dieser Stelle die Nicks eintragt.

Um einen Nick einzutragen, müsst ihr folgendes für jeden Nick zuerst anpassen und dann einfügen:

Zitat:
nickChangeList["ALTER NICK"] = ["NEUER NICK", 1];


Ersetzt das ROTE hier mit dem alten Nick, der verändert werden soll. Das BLAUE müsst ihr mit dem neuen Nick ersetzen. Farbangaben sind dabei nicht nötig, es werden die Farben genutzt, die bei /col eingetragen sind.

Das GRÜNE ist optional änderbar. Wenn ihr es in 2 ändert, wird der Nick nicht als Farbverlauf angezeigt, sondern gestreift. Wenn ihr es in 0 ändert, wird der Nick so ausgeben, wie er eingetragen ist, OHNE dass das Script /col oder ähnliches beachtet. Es gibt auch noch weitere Einstellmöglichkeiten, diese sind jedoch eher für fortgeschrittene User geeignet.

Ein Beispiel zu Veranschaulichung: Der User "Modi" möchte seinen Nick in "DarkModi" verändert haben. Diese Zeile sieht dann folgendermaßen aus:

Zitat:
nickChangeList["Modi"] = ["DarkModi", 1];


Nicht so schwierig, oder? Mr. Green

Onlineliste verändern

Wenn ihr den Nick in der Onlineliste auch verändern wollt, sucht folgendes:

Code:
olNickChange = 0;


Ersetzt es einfach mit folgendem:

Code:
olNickChange = 1;


Dies ändert den Nick auch in der Onlineliste. Es gibt noch einige weitere Einstellmöglichkeiten, diese findet ihr weiter unten erklärt. Winken

Fertig! Das Script sollte nun funktionieren. Wenn es Probleme gibt postet einfach hier.

Nachfolgend kommen erweiterte Informationen zum Script und mögliche Einstellungen. Gerade für Anfänger sollten diese Dinge noch etwas zu kompliziert sein denke ich, von daher könnt ihr es getrost weglassen.

Außerdem bitte ich euch, euch an die Kompatibilitätsliste zu halten da es sonst zu schweren Problemen im Chat kommen könnte!!!

___________________________________________
___________________________________________

II. Dokumentation

1. Nicks eintragen und im Chat nutzen

Nun zum ausführlichen Eintrageschema für veränderte Nicks.

Erstmal sucht am Anfang des Scripts folgende Zeilen:

Code:
nickChangeList["Beispiel 1"] = ["Neuer Nick", 0];
nickChangeList["Beispiel 2"] = ["Neuer Nick 2", 0];


Nach diesen beiden Zeilen werden die neuen Nicks eingetragen. Die beiden Zeilen könnt ihr übrigens löschen falls ihr sie nicht braucht.

Es gibt 3 verschiedene Modi für Nicks, die die Berechtigungen für die neuen Nicks bestimmen, dazu jedoch später mehr, nun geht es erstmal um das allgemeine Grundschema für neue Nicks. Das sieht folgendermaßen aus:

Zitat:
nickChangeList["ALTER NICK"] = ["NEUER GRUNDNICK", MODUS];


Weiterhin ist eine weitere, optionale Angabe möglich, mithilfe der ein spezieller Nick für die Online-Anzeigen (/w und Onlineliste) bestimmt werden kann. Falls das gewollt ist, sieht die Zeile so aus:

Zitat:
nickChangeList["ALTER NICK"] = ["NEUER GRUNDNICK", MODUS, "NICK FÜR DIE ONLINEANZEIGE"];


Hier die entsprechenden Erklärungen was wofür steht und was beachtet werden muss. Ersetzt NUR das farbig markierte mit dem entsprechendem und lasst Anführungsstriche da, falls ich welche oben eingetragen habe!

ALTER NICK: Hier muss der ursprüngliche Nick des Users rein, dessen Nick verändert werden soll. Dabei muss auf Groß/Kleinschreibung geachtet werden, soll heißen, dass z.B. "Leon" nicht als "leon" oder "LEON" eingetragen werden kann.

NEUER GRUNDNICK: Dies ist der Nick, der nun im Normalfall beim User angezeigt wird.
Hier muss beachtet werden, dass für bestimmte Sonderzeichen spezielle Regeln gelten. Hier die Liste dieser Zeichen (gilt für jeden Nickmodus):

" - Muss mit \" ersetzt werden. (Javascript-Steuerzeichen) Innerhalb von HTML-Tags im Nick empfehle ich außerdem, ' statt " zu nutzen. Spart einem die Arbeit, alle " zu ersetzen. Winken
\ - Muss mit \\ ersetzt werden (Javascript-Steuerzeichen)
< - Wenn ihr dieses Zeichen NICHT für ein HTML-Tag benutzt, sondern als normales Zeichen benutzen wollt, solltet ihr es mit &lt; ersetzen. Ansonsten wird es vom Script möglicherweise als HTML gesehen und bei bestimmten Ausgaben im Chat nicht angezeigt.
> - Dasselbe wie bei <, nur dass ihr das Zeichen mit &gt; ersetzen müsst.

Da der Sinn des Grundnicks von Modus zu Modus verschieden ist, gibt es dazu bei den drei Modi mehr Informationen.

MODUS: Bestimmt den Modus des Nicks, also wie er im Chat behandelt wird. Es gibt drei verschiedene Nickmodi, wobei 2 davon jeweils 2 Untermodi haben. Der Modus wird als Zahl angegeben. Die Modi sind:

0 = Unveränderbarer Nick: Nick ist nicht veränderbar
1 = Farblich dynamischer Nick (Verlauf): Nick ist mit /col, etc. veränderbar mit Farbverlauf
2 = Farblich dynamischer Nick (Gestreift): Dasselbe wie 2, nur mit gestreiftem Nick
3 = Komplett dynamischer Nick (Verlauf): Der Nick ist komplett veränderbar, (nicht die Farbe, sondern der Nick selbst) Nicks haben einen Farbverlauf
4 = Komplett dynamischer Nick (Gestreift): Dasselbe wie 4, nur mit gestreiftem Nick

Zu genaueren Informationen zu den Nickmodi komme ich gleich.

NICK FÜR DIE ONLINEANZEIGE: Bestimmt den Nick, der bei /w und in der Onlineliste angezeigt wird. Diese Angabe ist optional, also könnt ihr es weglassen (nehmt dann einfach das erste Schema als Vorlage, dort ist diese Angabe schon entfernt). Wenn es weggelassen wird, wird der Grundnick in der Onlineliste und bei /w angezeigt.
Für die Onlineanzeigen-Nicks gelten dieselben Sonderzeichen-Regeln wie für den Grundnick.

Nun zu den verschiedenen Modi:

1) Unveränderbarer Nick:

Der Nick ist nicht durch /col, /mecol oder /restore veränderbar. Außerdem kann ohne Bedenken jegliches HTML im Nick benutzt werden, allerdings müssen Farbverläufe auch manuell in den Nick eingetragen werden. Der Grundnick wird hier unverändert im Chatstream widergegeben.

Ein Beispiel: Der User "Leon" möchte seinen Nick im Nickmodus 0 in ">\"L33rzeichen"/<" geändert haben. Der Onlineanzeigen-Nick ist derselbe wie im Chatstream.

Code:
nickChangeList["Leon"] = ["&gt;\\\"<font color='aqua'>L33rzeichen</font>\"/&lt;", 0];


An diesem Beispiel sieht man übrigens auch, wie man die oben genannten Sonderzeichen eintragen sollte.

2) Farblich dynamischer Nick

Der Nick ist durch /col, /mecol und /restore farblich veränderbar, auch die Schriftart lässt sich ändern. Der Grundnick wird mit einem Farbverlauf oder einem gestreiftem Farbmuster widergegeben. Beim Nutzen von HTML sollte auf Span-Tag über mehrere Zeichenverzichtet werden da diese bereits für die Darstellung des Farbverlaufs genutzt werden. Nutzt hierfür lieber Font-Tags (bei denen sind auch Style-Angaben möglich).
Beim Anzeigen des Nicks bei /w und in er Onlineliste wird die derzeitige Färbung nicht angezeigt.
Wenn ein Nick einen Farbverlauf haben soll müsst ihr den Modus 1 eintragen, bei einem gestreiften Nick den Modus 2.

Ein Beispiel: Der User "DarkModi" möchte seinen Nick in "KaktusModi" geändert haben. Er will einen Farbverlauf. Zusätzlich möchte er in der Onlineliste und bei /w den Nick "FischModi" haben.

Code:
nickChange["DarkModi"] = ["KaktusModi", 1, "FischModi"];


Wenn er nun stattdessen einen gestreiften Nick haben wollte und in der Onlineliste auch "KaktusModi" heißen sieht das folgendermaßen aus:

Code:
nickChange["DarkModi"] = ["KaktusModi", 2];


3) Komplett dynamische Nicks

Der Nick ist durch /col, /mecol und /restore farblich veränderbar, auch die Schriftart lässt sich verändern. Weiterhin ist es möglich, den Nick selbst zu verändern. Das geht ebenfalls mit /col, unzwar nach folgendem Syntax:

Code:
/col FARBE1 FARBE2 SCHRIFTART#NEUER NICK


NEUER NICK steht für den neuen Nick. Das SCHRIFTART davor ist optional, es ist nur wichtig, dass das # vor dem neuen Nick vorhanden ist.
Für so veränderte Nicks gibt es spezielle Sonderzeichenregeln.
Erstens ist es NICHT möglich, HTML in neuen Nicks zu nutzen. Das würde erstens meiner Meinung nach eine Sicherheitslücke darstellen und zweitens wäre es kompliziert zu lösen da der Chat von sich aus < und > durch &lt; und &gt; ersetzt.
Weiterhin ist es auf dem gewöhnlichem Weg nicht möglich, das Gleichheitszeichen (=) zu nutzen da es vom Chat automatisch aus Schriftarten gelöscht wird. Stattdessen könnt ihr aber &#61; nutzen.
Die Sonderzeichen > und ' bilden ebenfalls Spezialfälle. Bei > empfehle ich NICHT, es in Nicks zu nutzen da es in manchen Browsern Fehler bei der Nick-Ausgabe erzeugt. Stattdessen kann man zum Beispiel &raquo; oder &rsaquo; nutzen, die recht ähnlich aussehen.
Ebenfalls rate ich davon ab, ' zu nutzen da es beim anfänglichen Aufruf der Nickfunktion einen Fehler verursacht und dadurch das Script bei einem selbst lahmlegt.

Der Grundnick wird in diesem Modus angezeigt falls kein geänderter Nick mittels /col bestimmt wurde und in der Onlineliste und bei /w.
Weiterhin gilt dieselbe Regel für Span-Tags wie bei den Modi 1 und 2: nutzt es möglichst nur für einzelne Zeichen, ansonsten besser Font mit Style-Angaben.

Wenn der Nick einen Farbverlauf haben soll, tragt bei Modus 3 ein, für einen gestreiften Nick 4.

Hierzu natürlich auch ein Beispiel: "STG44" möchte seinen Grundnick in "Das_Ende" ändern und bei /w weiterhin STG44 heißen. Weiterhin möchte er die Möglichkeit haben, seinen Nick jederzeit zu verändern, Farben sollen ein dynamischer Farbverlauf sein.

Code:
nickChangeList["STG44"] = ["Das_Ende", 3, "STG44"];


Nun möchte er den Grundnick in "#\STG/#" geändert haben und so auch in der Onlineliste/bei /w angezeigt werden. Der Nick soll gestreift sein.

Code:
nickChangeList["STG44"] = ["#\\STG/#", 4];


Scripteinstellungen

Es gibt 3 verschiedene Werte, die das Verhalten des Nickscripts beeinflussen. Der zu ändernde Wert ist rot markiert.

Chatstream-Einstellungen

Zu ändernde Zeile:

Zitat:
strNickChange = 1;


Mögliche Werte:

0: Der Chatstream-Verlauf wird vom Script nicht verändert.
1: (Standardeinstellung) Der Chatstream-Verlauf wird vom Script verändert. /w wird nicht verändert.
2: Der Chatstream-Verlauf, einschließlich /w, werden vom Script verändert. Bei /w werden HTML-Tags im Nick nicht angezeigt.
3: Der Chatstream-Verlauf, einschließlich /w, werden vom Script verändert. Bei /w werden auch HTML-Tags angezeigt.

Onlinelisten-Einstellungen

Zu ändernde Zeile:

Zitat:
olNickChange = 0;


Mögliche Werte:

0: (Standardeinstellung) Die Nicks in der Onlineliste werden nicht geändert.
1: Die Nicks in der Onlineliste werden geändert, HTML-Tags werden nicht angezeigt.
2: Die Nicks in der Onlineliste werden geändert, HTML-Tags werden angezeigt.

Eingabeframe/Ankündigung-Einstellungen

Zu ändernde Zeile:

Zitat:
aiNickChange = 0;


Mögliche Werte:

0: (Standardeinstellung) Der Nick wird nicht im Eingabeframe und in der Ankündigung geändert.
1: Der Nick wird im Eingabeframe und in der Ankündigung geändert.

III. Erweitert

1. Optionale Veränderungen/Anpassungen an andere Scripts

-I. Scriptsammlung - Systemmeldung-Farbe ändern - Anpassung

(Kann sich noch ändern, nur vorläufige Lösung)

Beide Scripts können - gemeinsam benutzt - eine vergleichsweise hohe Last erzeugen da 2 sehr häufige Intervalle definiert werden. Hier eine Änderung, um das ganze auf einen Intervall zu beschränken (setzt voraus, dass der Stream durch den Nickänderer verändert wird):

Sucht und löscht in der Scriptsammlungs-Datei:

Code:
if(faerbeSysmeldungenUm) {
  window.setInterval("swtchSysColor()", 100);
}


Sucht in der Nickänderungs-Script-Datei (Funktion "changeNickStr"):

Code:
     c[i].innerHTML = (strNickChange > 2) ? c[i].innerHTML.replace(nick, n[2]) : c[i].innerHTML.replace(nick, strip_tags(n[2]));
     }
    }
   }
  }
 }
}


Ersetzt mit:

Code:
     c[i].innerHTML = (strNickChange > 2) ? c[i].innerHTML.replace(nick, n[2]) : c[i].innerHTML.replace(nick, strip_tags(n[2]));
     }
    }
   }
  }
  if (faerbeSysmeldungenUm) {
   for (i = 0; i < document.getElementsByTagName("td")[strLen].getElementsByTagName("font").length; i++) {
    c = document.getElementsByTagName("td")[strLen].getElementsByTagName("font");
     if (c[i].color == "red") {
     c[i].color = SysMeldungFarbe;
    }
   }
  }
 }
}


_______________________________________

2. Bekannte Bugs/Bugstatus

-Neu angemeldete Nicks, die noch keinerlei Färbung erhalten haben (die also immer noch ihre Anmeldefarbe haben) und im Nickänderer eingetragen sind erhalten einen komplett fehlerhaften Nick bei der Ausgabe (nicht anklickbar, kein Titel). nicht fixbar (die HTML-Struktur dieser Nicks ist vollkommen verschieden zur normalen /mecol bez. /restore-Struktur. Ich sehe es nicht ein, für diesen speziellen Fall das gesamte Script umzuschreiben da dieser Fehler nur wirklich selten vorkommen sollte. Solche User sollen halt /mecol red machen und schon klappt das Script.)
-bei Nickmodus 3 und 4 sind beim Nickändern bestimmte Sonderzeichen nicht möglich. nicht fixbar (siehe weiter oben für genaueres)
-nach einem Raumwechsel, einem im neuen Raum folgendem Nickwechsel und einem darauf folgendem Raumwechsel zurück in den voherigen Raum wird weiterhin der vorher zu sehende Nick angezeigt. geringe Priorität (sollte ja soo schlimm nicht sein und ist durch einen einfachen Reconnect fixbar.)
-manchmal, besonders bei Login/Out-Nachrichten und wenn der Stream hängt, wird der alte Nick angezeigt. geringe Priorität (im Prinzip fixbar, allerdings müsste dafür wohl ein wenig mehr Last ins Script gepackt werden da String-Abfragen oder mehrfache Zeilen-Prüfungen nötig würden. Von daher steht das erstmal hinten an.)

3. Kompatibilität zu anderen Scripts

Allgemein sollten die meisten Scripts keine Probleme mit dem Nickänderer machen, jedoch gibt es einige Ausnahmen, besonders bei Scripts, die "live" im Chatstream arbeiten, könnte es sein, dass entweder zuviel Last entsteht oder sich beide Scripts gegenseitig behindern.
Falls ein größeres Script von euch hier nicht steht testet erstmal selbst, ob das Script verbunden mit dem Nickänderer klappt. Falls nicht fragt am besten hier nach.

Scriptsammlung: Kompatibel (Siehe "Optionale Änderungen/Anpassungen". Weiterhin gibt es eine fehlerhafte Darstellung, falls durch mein Script User in der Onlineliste kursiv dargestellt werden da sie dadurch automatisch als away von der Scriptsammlung erfasst werden und, falls aktiviert, dementsprechend umgefärbt werden. Falls ihr solche Usernicks habt definiert für sie am besten einen seperaten Onlinelisten-Nick.)
Symbole hinter Nicks in der Onlineliste: Kompatibel
Symbole hinter Gastnicks: Nicht kompatibel (Zwar funktionieren beide Scripts zusammen, die Last, die dadurch erzeugt werden kann, ist jedoch meiner Meinung nach untragbar.)
Symbole hinter Nicks im Chatstream: Nicht kompatibel (Dasselbe wie beim Script für Symbole hinter Gastnicks)
MaiZ-ChatBot-System: Nicht kompatibel (Nutzen beide dieselbe Stream-Zählvariable (Absicht), selbes Problem wie beim Gastmarkierscript)

4. Weitere Informationen/Kommentar

Bisher funktionsfähig mit: Firefox 2.0.x, Opera 9.x, Netscape 7.1.x, IE 6 und höher
Getestet mit: Firefox 2.0.x, Opera 9.x, Netscape 7.1.x, IE 6 und höher

Weitere Berichte über das Scriptverhalten in anderen Browsern wären sehr freundlich Winken

5. Postlog/Updates

6. Juli 2007:
-Bug bei neu angemeldeten Usern die noch keinen Färbungsbefehl genutzt haben entdeckt und eingetragen.
25. Juni 2007:
-MaiZ als nicht kompatibles Script eingetragen
18. Mai 2007:
-kleines Sicherheitsfix für Modi ab 3 hinzugefügt, bei Gelegenheit Code neu kopieren (Änderungen bei den Nicks/Einstellungen sind nicht nötig). (Der Fehler ist in einer neueren Testversion des Scripts aufgetaucht, ich denke aber, dass er auch in der hier geposteten Version vorhanden ist.)
-Onlinelisten-Änderung sollte sich nun besser an andere Scripts (@ vor Nicks, Symbole hinter Nicks, etc.) anpassen da nun nur der alte Nick anstatt des gesamten HTML-Tags ersetzt wird.
17. Mai 2007:
-Timestamp in den Kopf des Scripts gepackt. Erleichtert Vergleich mit älteren/neueren Versionen. (Da es keine direkte Scriptänderung ist bleibt die Version die vom 12. Mai.)
15. Mai 2007:
-kleinen Bug eingetragen (*pingelig bin Mr. Green*)
13. Mai 2007:
-Anpassung an die Scriptsammlungs-Funktion für Systemfarben-Änderungen hinzugefügt
12. Mai 2007:
-kleinen "Bug" in der Onlineliste gefixed. Ab jetzt wird ein Leerzeichen zwischen Profil und Nick angezeigt.
10. Mai 2007:
-einige Bugfixes im Script (fast nur kleinere Fehler die auftraten, wenn der alte Nick und der neue Nick gleich waren)
-Thread ein wenig anfängerfreundlicher gestaltet
9. Mai 2007:
-Thread komplett überarbeitet (Script & Beschreibungen & Struktur)
-Alten Postlog aus Übersichtsgründen gelöscht

Dann mal viel Spaß damit! Mr. Green


Zuletzt bearbeitet von DarkModi am 29.11.2007, 21:49, insgesamt 80-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Leon




Anmeldedatum: 02.03.2005
Beiträge: 232

BeitragVerfasst am: 10.01.2007, 23:07    Titel: Antworten mit Zitat

In Safari gehts auch nicht Mr. Green

Aber unwitziger Spass beiseite.. finde das Script toll & lustich Winken.
Hast auch ne schöne Anleitung geschrieben (Länge überzeugt immer :p).
Werde das Script bei Gelegenheit mal nen Tag lang laufen lassen um zu schauen, wie es die Performance beeinflusst.

Bis bald,

Leon
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
VampireHIM




Anmeldedatum: 15.06.2006
Beiträge: 328

BeitragVerfasst am: 10.01.2007, 23:10    Titel: Antworten mit Zitat

Winken Finde es auch gut , selbst das nur der das cript hatt die nicks ändern kann und somit auch vermeiden kann das cih welche so nicks machen und der nick dan nacher 100 auftaucht

Geht bei mir Im Opera wunderpaar Winken die user mit FF haben auch keine Probleme mit.

Naja mit dem IE 6 gehts nicht schade eigendlich :/

//edit:
Nun ja Geschockt bei der eingabe von /w werden die nicks auch ersätz , da nicht jeder kellers Winken script für die umfärbung in der online liste für admins und mods nutzt , ich könnte zwar im änderungs script die einzelnen nicks auch mit <b> und <i> ändern was ich glaube auch erst machen werde aber bestimmt findet man noch eine alternativ lösung *g


Zuletzt bearbeitet von VampireHIM am 11.01.2007, 00:13, insgesamt 3-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Snowy




Anmeldedatum: 21.07.2005
Beiträge: 902
Wohnort: Aschaffenburg

BeitragVerfasst am: 10.01.2007, 23:21    Titel: Antworten mit Zitat

Öhm....
Funktioniert das nun bei FF oder nicht?
Bei mir steht nur "normale Setting geladen..." Geschockt

EDIT:

Habe das "/" vergessen Verlegen
Naja muss off...

PS: Gut gemacht Winken
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen MSN Messenger
Appx




Anmeldedatum: 05.06.2005
Beiträge: 47

BeitragVerfasst am: 11.01.2007, 00:21    Titel: Antworten mit Zitat

geiles script und thx @ darkmodi Winken
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Judge




Anmeldedatum: 17.04.2004
Beiträge: 226
Wohnort: TiroL

BeitragVerfasst am: 11.01.2007, 00:52    Titel: Antworten mit Zitat

Habs eingebaut und funktioniert einwandfrei

NUR steht am anfang vom Chatstream "IE-Funktionen geladen..."

gehört das so?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
1. FC Keller
Moderator



Anmeldedatum: 04.07.2004
Beiträge: 4176
Wohnort: heimat:// Thüringen.Deutschland.eu/ Zeulenroda

BeitragVerfasst am: 11.01.2007, 01:12    Titel: Antworten mit Zitat

Schönes Script! Als du vor kurzem ein Thread zu dem Thema geöffnet hast hatte ich leider nicht genug Zeit zum Testen. Ich habe eben folgenden Code probiert und war damit in IE und Opera erfolgreich:
Code:
function getNick(a) {
 a = stripTags(a);
 a.match(/^\s*\(\d+:\d+\) (\w+).+$/);
 return RegExp.$1;
}


Durch ^\s* wird nach beliebig vielen Whitespaces am Anfang gesucht (Leerzeichen, Zeilenumbrüche, etc.). Allerdings empfehle ich, das vorher nochmal genauer zu testen, da ich jetzt nur ein Beispiel zum Testen hatte und eben wie gesagt auch nur in IE6 und Opera9 getestet habe. Eigentlich dürfte es sich aber nicht negativ auswirken können.

Der Hinweis bei Striptags auf mich muss übrigens nicht sein. Habe das zum wesentlichen Teil über Google gefunden... Hätte vielleicht selbst besser eine Quellenangabe anbringen sollen... weiß sie leider selbst nicht mehr Verlegen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
VampireHIM




Anmeldedatum: 15.06.2006
Beiträge: 328

BeitragVerfasst am: 11.01.2007, 01:29    Titel: Antworten mit Zitat

Winken geht jetzt mit der kleinen änderung durch 1. FC Keller auch mit der IE6 ver.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Enrico




Anmeldedatum: 14.10.2003
Beiträge: 88

BeitragVerfasst am: 11.01.2007, 02:52    Titel: Antworten mit Zitat

Hi Leute,

Respekt, ne richtig witzige Sache. Sehr glücklich

kann man das denn auch so schreiben das wenn ich den Nick gewechselt habe, den auch wieder zrückwechseln kann? sonst muss ich ja die . js aus der Ankündigung rausnehmen, was ja schade wäre.

Vielleicht habe ich auch was falsch verstanden.

die nicks wechseln ist mit: changeNick oder?

ja also wenn das gehen würde, das man wieder zurück wechseln kann, wäre der oberhammer

l.G. Enrico
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Snowy




Anmeldedatum: 21.07.2005
Beiträge: 902
Wohnort: Aschaffenburg

BeitragVerfasst am: 11.01.2007, 13:10    Titel: Antworten mit Zitat

1. FC Keller hat Folgendes geschrieben:
Schönes Script! Als du vor kurzem ein Thread zu dem Thema geöffnet hast hatte ich leider nicht genug Zeit zum Testen. Ich habe eben folgenden Code probiert und war damit in IE und Opera erfolgreich:
Code:
function getNick(a) {
 a = stripTags(a);
 a.match(/^\s*\(\d+:\d+\) (\w+).+$/);
 return RegExp.$1;
}



Check ich nicht Geschockt
Wo muss das genau rein?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen MSN Messenger
DarkModi




Anmeldedatum: 08.05.2005
Beiträge: 1969

BeitragVerfasst am: 11.01.2007, 14:54    Titel: Antworten mit Zitat

@all, danke für das lob ^^

Zischdings hat Folgendes geschrieben:
ich habe den einführungssatz mal editiert. bitte bitte lasst "diesen" chat hier im forum außen vor! oder seht ihr hier irgendwo einen werbethread? :/ es handelte sich übrigens um kein javascript und die funktion ist dort auch seit ~ einem halben jahr nicht mehr im einsatz!


das ist mir klar, dass es kein javascript war Winken ich wollte damit nur den effekt des scripts verdeutlichen da ich mir gut vorstellen kann, dass viele nicht verstehen, was es genau tut beziehungsweise sonst noch denken, das script ändert den nick auch dahingehend, dass man ihn anflüstern kann und es eben als fehler melden. daher fand ich dieses doch recht bekannte beispiel gut...
habe dein edit aber jetzt entfernt und stattdessen einen neutraleren satz eingefügt, der eben das klarstellt.

die meldung "settings geladen", die hier einige gemeldet haben, habe ich nun entfernt, ich habe es nur zu testzwecken genutzt da ich sehen wollte welche funktion der IE beziehungsweise FF lädt da ich, wie gesagt, mit dem IE bei string-prüfungen große probleme hatte und einfach vergessen zu entfernen Geschockt wer es nicht mehr haben will muss einfach den teil für die ankündigung neu kopieren, dann sollte das gehen.

mit /w habe ich mich, wie glaube ich gesagt, noch garnicht beschäftigt, das kommt aber als nächstes da das script sich dort etwas komisch zu verhalten scheint...

@1. fc keller: danke, ich werde die funktion gleich mal lokal einbauen und testen... übrigens, ich habe den hinweis bei "stripTags" jetzt einfach auf die scriptsammlung geändert, stimmt ja auch im prinzip da ich es von da habe. Mr. Green

@enrico: das ist leider so nicht möglich da jeder user, der nach dem wechsel den chat neu betritt, den nick im ursprungszustand sehen wird. wenn es also standardmäßig eingestellt wäre, dass die nicks geändert werden, wird ein neuer user den nick eben so sehen, egal ob der nick ein- oder ausgeschaltet ist.

ich frage jetzt nochmal @all, hat jemand das script in netscape getestet?

EDIT: ich habe das script jetzt nach fc keller's "getNick"-variante verändert da ich keinerlei probleme feststellen konnte, ich empfehle das script neu zu kopieren da es dadurch nun auch im IE 6 funktioniert!


Zuletzt bearbeitet von DarkModi am 11.01.2007, 15:17, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Enrico




Anmeldedatum: 14.10.2003
Beiträge: 88

BeitragVerfasst am: 11.01.2007, 15:01    Titel: Antworten mit Zitat

Hi DarkModi

danke für Deine Antwort und Erklärung, großes Lob hast Dir viel Mühe gemacht.
Immer weiter so Winken

Netscape habe ich leider nicht auf dem Rechner zum testen-sry

l.G. Enrico
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePat


Ban

Anmeldedatum: 25.03.2006
Beiträge: 540

BeitragVerfasst am: 11.01.2007, 16:30    Titel: Antworten mit Zitat

Schönes Script, werde es am Wochenende gleich mal ausprobieren danke! Mr. Green
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Nightspace




Anmeldedatum: 19.06.2006
Beiträge: 785

BeitragVerfasst am: 11.01.2007, 16:46    Titel: Antworten mit Zitat

Ich find den script auch Super.
Aber benutzen tuh ich ihn selbst nicht, würde nur unübersichtlicher werden wenn jeder seinen nick überdeckt/ ändert.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
G4t0r




Anmeldedatum: 05.01.2007
Beiträge: 39
Wohnort: root:server

BeitragVerfasst am: 11.01.2007, 19:19    Titel: Antworten mit Zitat

Wie gesagt gutes Script Dark , habs ja schon im Einsatz gesehen ^^ Lachen Wollen mal hoffen das viel dein Script nutzen .
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 -> Individuelle Änderungen / Anpassungen / Erweiterungen Alle Zeiten sind GMT + 2 Stunden
Gehe zu Seite 1, 2, 3 ... 16, 17, 18  Weiter
Seite 1 von 18

 
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