Script-Anfrage

Fragen zu HTML, CSS, eigenen Erweiterungen etc.
Benutzeravatar
Rodi20
Beiträge: 69
Registriert: 11.09.2009, 09:00

Script-Anfrage

Ungelesener Beitrag von Rodi20 » 13.11.2013, 19:25

Hallo,
gibt es eine Möglichkeit einem bestimmtem User beim betreten des Chats eine Nachricht anzuzeigen,
und ihn nach x Sekunden wieder auszuloggen?
Am besten noch so, daß er die Restzeit in Sekunden angezeigt bekommt bis er ausgeloggt wird?

Edit:
oder, was mir grad noch einfällt, is vllt. einfacher - einfach für diesen user das Eingabefeld des Chats gegen einen bestimmten Text austauschen? :)

Code: Alles auswählen

<?php
if ($question = $old)
{
echo "Es ist schon alles gesagt worden, nur noch nicht von jedem."; // Karl Valentin 
}
else
{
echo "Fortschritt ist das Werk der Unzufriedenheit."; // Jean-Paul Sartre
}
?>

Maxs
Moderator
Beiträge: 551
Registriert: 09.10.2008, 18:21
Kontaktdaten:

Re: Script-Anfrage

Ungelesener Beitrag von Maxs » 14.11.2013, 00:50

Hallo Rodi20,

probier mal das ;)
<script type="text/javascript">if(myNick.toLowerCase()=="USERNAME".toLowerCase()){with(parent.info.document.eingabe){elements[elements.length-1].disabled=true;message.disabled=true;message.value='Dies hier ist die Nachricht!';}window.setTimeout("sendeText('/exit');", 5000);}</script>
USERNAME durch den Nick, der die Nachricht erhalten soll, ersetzen.
Dies hier ist die Nachricht! ist die Nachricht, die ihm im Eingabefeld angezeigt wird.
5000 ist die Zeit in Millisekunden (hier 5 Sekunden), nach der er ausgeloggt wird.

Kommt natürlich in die 1. Ankündigung nach der Grundscriptsammlung.

// EDIT: Script korrigiert.
Wäre es nicht adäquat, den Usus heterogener Termini zu minimieren?

Benutzeravatar
Rodi20
Beiträge: 69
Registriert: 11.09.2009, 09:00

Re: Script-Anfrage

Ungelesener Beitrag von Rodi20 » 14.11.2013, 22:35

Hmm,
schonmal danke für den versuch,
das sieht zwar recht gut aus, aber irgendwie funktioniert es net,
der jenige der betroffen sein soll (habe es testweise auf mich selbst gesetzt) merkt rein gar nichts,
dafür meinte ein anderer ebenfalls im chat anwesender er habe gerade nicht schreiben können,
bekam die nachricht, und kam daraufhin (freiwillig) selbst neu rein.
mal gucken ob ich das irgenwie selbst umdrehen kann :)
habe aber von js relativ wenig ahnung, wenn du mal ein probl. unter php hast, meld dich dafür ruhig gerne bei mir.
Aber danke schonmal
Gruß
Rodi

Code: Alles auswählen

<?php
if ($question = $old)
{
echo "Es ist schon alles gesagt worden, nur noch nicht von jedem."; // Karl Valentin 
}
else
{
echo "Fortschritt ist das Werk der Unzufriedenheit."; // Jean-Paul Sartre
}
?>

Benutzeravatar
Rodi20
Beiträge: 69
Registriert: 11.09.2009, 09:00

Re: Script-Anfrage

Ungelesener Beitrag von Rodi20 » 14.11.2013, 23:06

Promlem gelöst

Code: Alles auswählen

<script language="javascript">if(myNick="NICK"){with(parent.info.document.eingabe){elements[elements.length-1].disabled=true;message.disabled=true;message.value='Bitte benutze ausschließlich deinen anderen Nick :-)';}}</script>
Der anfang war irgendwie zu kompliziert, und daher iwo was fehlerhaftes drin, die einfache Version, bei der ich selbst auf groß- und kleinschreibung des Nicks aufpassen muss reicht mir völlig :)
Am ende mit dem automatischem /exit senden hat auch nicht funktioniert - da hat es offenbar nur eine leerzeile gesendet - warum auch immer, aber das is auch net wichtig, wenn er mit dem nick nur lesen, aber nicht schreiben kann, loggt er sich eh um - daher habe ich es einfach ganz raus.
o.g. version des scripts habe ich getestet, funktioniert bei mir bestens :)
Vielen Dank

Code: Alles auswählen

<?php
if ($question = $old)
{
echo "Es ist schon alles gesagt worden, nur noch nicht von jedem."; // Karl Valentin 
}
else
{
echo "Fortschritt ist das Werk der Unzufriedenheit."; // Jean-Paul Sartre
}
?>

Maxs
Moderator
Beiträge: 551
Registriert: 09.10.2008, 18:21
Kontaktdaten:

Re: Script-Anfrage

Ungelesener Beitrag von Maxs » 15.11.2013, 15:11

Also, dein Script sollte nun alle User treffen, da du keine wirkliche Abfrage in der if-Abfrage gemacht hast. Du setzt in der if-Abfrage myNick einfach auf den Usernamen. Du müsstest also if(myNick="NICK") in if(myNick=="NICK") ändern.

Dass mein Script nicht funktioniert hat, liegt daran, dass ich ausversehen abgefragt habe, ob der eigene Nick NICHT der gesuchte Nick ist und deshalb hat es alle getroffen, außer den gesuchten Nick.

Meine Version sollte so funktionieren:

Code: Alles auswählen

<script type="text/javascript">if(myNick.toLowerCase()=="USERNAME".toLowerCase()){with(parent.info.document.eingabe){elements[elements.length-1].disabled=true;message.disabled=true;message.value='Dies hier ist die Nachricht!';}window.setTimeout("sendeText('/exit');", 5000);}</script>
Auch das Ausloggen nach 5 Sekunden funktioniert wunderbar.
Wäre es nicht adäquat, den Usus heterogener Termini zu minimieren?

Benutzeravatar
Datschiburger
Beiträge: 47
Registriert: 27.08.2013, 12:23
Wohnort: Bayern

Re: Script-Anfrage

Ungelesener Beitrag von Datschiburger » 23.03.2018, 09:39

Hallo Community,
das USERNAME Auslogscript nach Zeit und Auslogmeldung funktioniert bei mir nur bei einem USERNAMEN.
Sobald ich "USERNAME","USERNAME" mache fliegt jeder USER raus egal wie der sich nennt.
Ist es Möglich mehrer USERNAMEN einzugeben?

Danke im vorraus
Ich liebe Kampfspiele, ich spiele Windows XP schon mehr als 5 Jahre lang und habe immer noch nicht gewonnen

Benutzeravatar
Datschiburger
Beiträge: 47
Registriert: 27.08.2013, 12:23
Wohnort: Bayern

Re: Script-Anfrage

Ungelesener Beitrag von Datschiburger » 05.11.2018, 09:58

Hallo Community,

gibt es eine Möglichkeit per Chatbefehl z.B. (/onair) ein icon (URL zum onair Gif) hinter den absendenten Nick in der OL zu setzen? und per gegenbefehl z.B. (off) wieder verschwindenzulassen?

Ich habe mich schon an den wechselnden Hintergründen versucht, aber da wird dieses Gif immer oben in die OL gesetzt und nicht Hinter den jeweiligen Nick.

Darf auch gernne eine Lösung per Webspace sein.

Danke schon mal im voraus

Datschiburger
Ich liebe Kampfspiele, ich spiele Windows XP schon mehr als 5 Jahre lang und habe immer noch nicht gewonnen

Benutzeravatar
Mogli
Beiträge: 485
Registriert: 18.10.2010, 23:42
Wohnort: Bayern
Kontaktdaten:

Re: Script-Anfrage

Ungelesener Beitrag von Mogli » 05.11.2018, 11:10

Hallo Datschiburger,

du kannst über "Einstellungen --> Chatter Icons" für jeden einzelnen User ein eigenes Icon hochladen und frei geben. So kann dann jeder User / DJ selbst in seinem Profil (falls vorhanden) sein Icon selbst anpassen :)
Das wäre mal ein Lösungsansatz, auch wenn du es dir anders vorgestellt hast! :)

Schöne Grüße
Mogli

Benutzeravatar
Datschiburger
Beiträge: 47
Registriert: 27.08.2013, 12:23
Wohnort: Bayern

Re: Script-Anfrage

Ungelesener Beitrag von Datschiburger » 05.11.2018, 11:48

Hallo Mogli,
ja in seinem Profil, das macht aber wenig Sinn wenn nur bei denen die gerade am senden sind, es angezeigt werden soll.
Ich liebe Kampfspiele, ich spiele Windows XP schon mehr als 5 Jahre lang und habe immer noch nicht gewonnen

Webkicks
Webkicks - Team
Beiträge: 752
Registriert: 02.05.2003, 00:16
Kontaktdaten:

Re: Script-Anfrage

Ungelesener Beitrag von Webkicks » 05.11.2018, 14:03

Das ist grundsätzlich problemlos möglich, derjenige der gerade sendet müsste dazu in seinem Profil einfach das "Onair" Logo auswählen - und es dann wieder abwählen sobald er aufhört zu senden. Der Effekt sollte dann genau so wie von Dir gewollt sein: Während die Person sendet hat sie in der Online-Liste das "Onair"-Symbol vor ihrem Namen.

Benutzeravatar
Datschiburger
Beiträge: 47
Registriert: 27.08.2013, 12:23
Wohnort: Bayern

Re: Script-Anfrage

Ungelesener Beitrag von Datschiburger » 05.11.2018, 18:30

Naja war aber Grundsätzlich nicht meine Frage. Es ging um dahinter. Aber wenn das nicht geht kann man nichts machen.
Dennoch danke.

Gruß Datschiburger
Ich liebe Kampfspiele, ich spiele Windows XP schon mehr als 5 Jahre lang und habe immer noch nicht gewonnen

Maxs
Moderator
Beiträge: 551
Registriert: 09.10.2008, 18:21
Kontaktdaten:

Re: Script-Anfrage

Ungelesener Beitrag von Maxs » 05.11.2018, 22:24

Hallo Datschiburger,

das ist etwas schwieriger über Chatbefehle möglich. Der Grund ist, wenn Chatter einloggen, haben sie den Chatbefehl nicht gesehen, der von dem DJ zuvor irgendwann in den Chat gesendet wurde. D.h. sie würden das Zeichen dann nicht an dessen Namen in der Onlineliste angezeigt bekommen, da sie nicht wissen, dass der DJ den Befehl zuvor irgendwann in den Chat gesendet hat.

Dieses Problem habe ich mit folgendem Script gelöst (Der DJ teilt den sich einloggenden Nutzern immer heimlich mit, dass er onAir ist):

Script:Zeigen
Hier der Code für die JavaScript-Datei:

Script:Zeigen

Code: Alles auswählen

// OnAir - Version 2.0

// Hier kommt die URL zu dem OnAir-Bild hin:
var onAirImageURL="/pfeil.gif";

// Hier steht der Name des Chatbefehls:
var onAirImageCommand="/onair";


/* AB HIER NIX MEHR ÄNDERN! */

if (!parent.info.onAirMemory) {
  parent.info.onAirMemory = [];
} else {
  window.setTimeout(function() {
    for (var i = 0; i < parent.info.onAirMemory.length; i++) {
      addOnAirImageCommand(parent.info.onAirMemory[i], "");
    }
  }, 2000);
}


function addOnAirImageCommand(name,invisible) {
  if(invisible=="true") {
    var tds=document.getElementsByTagName("td");
    tds[tds.length-1].style.display="none";
  } 
  if(myNick==name && !streamFunctions.inArray(checkLoginsForOnAirImage)) {
    addStreamReader(checkLoginsForOnAirImage);
  }
  for (var i = 0; i <= parent.info.onAirMemory.length; i++) {
    if (i == parent.info.onAirMemory.length) {
      parent.info.onAirMemory.push(name);
      break;
    }
    if (parent.info.onAirMemory[i] == name) {
      break;
    }
  }
  addOnAirImage(name);
}

function addOnAirImage(name) {
  if(olIsLoad()) {
    var tag=parent.rightFrame.document.getElementById(name);
    if(tag&&tag.innerHTML.search(onAirImageURL)==-1) {
      tag.innerHTML+=((tag.innerHTML.substr(tag.innerHTML.length-1)===" ")?"":" ")+"<img src='"+onAirImageURL+"' alt='On Air' id='OnAirImage"+name+"'>"
    }
  } else {
    window.setTimeout(function(){addOnAirImage(name);},1000);
  }
}

function checkLoginsForOnAirImage(lineNr,ld) {
  if(ld[0]==4) {
    window.setTimeout(function(){sendeText(onAirImageCommand+" true");},2000);
  }
}

function removeOnAirImage(name) {
  if(olIsLoad()) {
    var elem=parent.rightFrame.document.getElementById('OnAirImage'+name);
    if(elem) {
      elem.parentElement.removeChild(elem);
    }
    for (var i = 0; i < parent.info.onAirMemory.length; i++) {
      if (parent.info.onAirMemory[i] == name) {
        parent.info.onAirMemory.splice(i,1);
        break;
      }
    }
    if(myNick==name && streamFunctions.inArray(checkLoginsForOnAirImage)) {
      var i=streamFunctions.indexOf(checkLoginsForOnAirImage);
      if(i>-1) {
        streamFunctions.splice(i,1);
      }
    }
  } else {
    window.setTimeout(function(){removeOnAirImage(name);},1000);
  }
}

In den ersten Zeilen kann folgendes geändert werden:

var onAirImageURL="/pfeil.gif";
var onAirImageCommand="/onair";


/pfeil.gif ist die URL zum OnAir-Bild, das du verwenden darfst (Copyright!) und möchtest (Denke an die HTTPS-URL, falls du die Chatverschlüsselung, die standardmäßig aktiv ist, nutzt).
/onair ist der Chatbefehl, der hier weiter unten angelegt wird. Dieser Name muss exakt dem OnAir-Chatbefehl-Namen entsprechen, den du anlegst.

Das Script kommt (wegen der Größe) in eine JavaScript-Datei (*.js-Datei) und wird anschließend auf den eigenen Webspace hochgeladen, um es dann später mit folgendem Code nach der Grundscriptsammlung (wird natürlich benötigt!) in die 1. und 3. Ankündigung einzufügen:

Code: Alles auswählen

<script type="text/javascript" src="URL-ZUR-JS-DATEI"></script>
URL-ZUR-JS-DATEI muss natürlich angepasst werden. Weitere Informationen zum Einfügen von Scripts erhälst du in der Scriptübersicht!

Nun musst du folgende zwei Chatbefehle erstellen:

/onair

Code: Alles auswählen

sendet ab jetzt live!<script>addOnAirImageCommand("%myname%","%text%");</script>
(Denke daran, oben in der JavaScript-Datei den Namen des Befehls in den ersten Zeilen anzupassen, falls du ihn änderst!)

/offair

Code: Alles auswählen

hört auf live zu senden!<script>removeOnAirImage("%myname%");</script>
Die Texte könnten beliebig angepasst werden. Entferne dabei nur nicht die <script>-Tags ;)

Das folgende wurde gefixt und ist nicht nicht mehr so:
Das sollte so lange funktionieren, bis niemand reconnect klickt. Klickt der DJ reconnect, dann bekommen neue Nutzer, die den Chat beitreten, nicht mehr mit, dass der DJ sendet. Drückt ein Chatter reconnect, sieht er das OnAir-Zeichen auch nicht mehr (außer er loggt sich ein und aus).
Das kann man leider nicht so einfach fixen, da ich gerade keine einfache Möglichkeit kenne, um herauszufinden, ob ein Nutzer reconnected.
Wäre es nicht adäquat, den Usus heterogener Termini zu minimieren?

Benutzeravatar
Datschiburger
Beiträge: 47
Registriert: 27.08.2013, 12:23
Wohnort: Bayern

Re: Script-Anfrage

Ungelesener Beitrag von Datschiburger » 05.11.2018, 23:32

Hallo Maxs,
erst einmal herzlichsten Dank für deine Mühen, geht ast rein Super.

Vieleicht fällt dir ja wegen dem reconnected noch eine Lösung ein.
Vieleicht soetwas wie das Awaykästchen zum an und abhaken. Das dann in die 2. Ankündigung kommt.

Gruß Datschiburger
Ich liebe Kampfspiele, ich spiele Windows XP schon mehr als 5 Jahre lang und habe immer noch nicht gewonnen

Maxs
Moderator
Beiträge: 551
Registriert: 09.10.2008, 18:21
Kontaktdaten:

Re: Script-Anfrage

Ungelesener Beitrag von Maxs » 06.11.2018, 02:27

Hallo Datschiburger,

du hast mich auf eine Idee gebracht. Die Eingabeleiste unten wird bei einem Reconnect nicht erneut geladen, deshalb kann ich darin eine Variable speichern, die nicht zerstört wird. Somit konnte ich auch das Reconnect-Problem lösen, indem ich alle onAir-Leute dort speichere. Kopiere oben in meinem Beitrag einfach nochmal das, was in die JavaScript-Datei kommt. Dann sollte es klappen. :-)
Wäre es nicht adäquat, den Usus heterogener Termini zu minimieren?

Benutzeravatar
Datschiburger
Beiträge: 47
Registriert: 27.08.2013, 12:23
Wohnort: Bayern

Re: Script-Anfrage

Ungelesener Beitrag von Datschiburger » 06.11.2018, 09:37

Hallo Maxs,

funktioniert jetzt super, toll gemacht Danke.

Gruß Datschiburger
Ich liebe Kampfspiele, ich spiele Windows XP schon mehr als 5 Jahre lang und habe immer noch nicht gewonnen

Antworten

Wer ist online?

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