Nickänderung - was mache ich falsch?

Fragen zu HTML, CSS, eigenen Erweiterungen etc.
Maxs
Moderator
Beiträge: 551
Registriert: 09.10.2008, 18:21
Kontaktdaten:

Re: Nickänderung - was mache ich falsch?

Ungelesener Beitrag von Maxs » 22.05.2012, 22:41

lieblich hat geschrieben:So richtig? Klappt immernoch nicht:
Script:Zeigen

Code: Alles auswählen

//----------------------// 
// 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["lieblich"] = ["Team_lieblich", 1]; 
nickChangeList["Beispiel2"] = ["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 = 1; 

// 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("<", "<").replace(">", ">")); 
    } 
    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); 
 } 
}
Ich sehe da nicht, dass du es ersetzt hast. Und nein, beide Codes sind nicht gleich, sie sind zwar sehr ähnlich, aber nicht gleich.
Wäre es nicht adäquat, den Usus heterogener Termini zu minimieren?

lieblich
Beiträge: 155
Registriert: 01.05.2010, 09:40
Kontaktdaten:

Re: Nickänderung - was mache ich falsch?

Ungelesener Beitrag von lieblich » 22.05.2012, 23:38

Habe mal das Script für die Unterteile OL rausgenommen und die Nickänderung klappte immernoch nicht
Lebe dein Leben und denke nicht an morgen!

lieblich
Beiträge: 155
Registriert: 01.05.2010, 09:40
Kontaktdaten:

Re: Nickänderung - was mache ich falsch?

Ungelesener Beitrag von lieblich » 13.08.2012, 16:08

Ich brauche dringend Hilfe, kann den Chat nicht laenger leiten, will ihn uebergeben und muss ja dann den Nick aendern. Will nicht, dass mein nachfolger meinen Nicknamen im hat. Ist halt in der Datenbank immernoch lieblich aber er soll eigt. Max heissen. Kann mir einer helfen?
Mir ist auch klar, dass ich immernoch die Verantwortung ec. trage.
Lebe dein Leben und denke nicht an morgen!

Nergal
Beiträge: 2
Registriert: 28.08.2013, 13:40

Re: Nickänderung - was mache ich falsch?

Ungelesener Beitrag von Nergal » 13.03.2014, 16:00

Hallo, ihr Lieben.

Obwohl der Thread schon recht alt ist, wage ich es, hier mal nachzufragen, ob es eine Möglichkeit gibt, das Script so anzupassen, dass die folgenden 'Probleme" behoben werden können:

- beim Flüstern (im Eingabe-Frame)
- beim direkten Ansprechen und
- beim Logout

wird mir weiterhin der ALTE Nick angezeigt.

Das Script von DarkModi (http://www.wkforum.de/viewtopic.php?t=11502) funktioniert im Großen und Ganzen super und ich bin auch sehr zufrieden damit. Bis auf die o.g. Dinge, über deren Behebung ich SEHR dankbar bin.
Über Hinweise, die meine genannten Probleme vielleicht schon beheben könnten, bin ich ebenfalls sehr dankbar.

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 67 Gäste