Alamierungsbotton (Scriptbestellung )

  • Hi Zusammen


    Könnte mir jemand ein Script basteln, wo ich im Alamierungsfenster noch einen Botton dazu bekomme?


    Es geht darum, das wenn ich Fahrzeuge alamiere, das Game ja nach der Alamierung wieder in den Alamierungsbildschirm zurück springt. Danach muss ich das Fenster immer manuell schließen.


    Könnte mir wer einen Botton bauen, mit dem ich die ausgewählten Fahrzeuge alamieren kann und danach das Fenster gleich geschlossen wird.


    THx schonmal im Voraus :-)

  • Über so einen Knopf hab ich mir tatsächlich auch schon Gedanken gemacht, bisher wollte mir jedoch noch keine Lösung einfallen, ich melde mich aber, wenn ich was hab ;)

  • Über ein Zusammenspiel von 2 Script würde es gehen, allerdings müsste man noch irgendwie abfragen, ob der Frame, also die Alarmierung, schon vollständig geladen wurde.


    Im Hauptfenster/parent:
    function foobar2(){setTimeout(function() { lightboxClose()}, 1800);}


    und im iFrame (https://www.leitstellenspiel.de/missions/*) dann einen neuen Button erstellen mit folgendem Event:
    $( "#alarmclose" ).click(function() {parent.foobar2(); $("#mission-form").submit(); });


    Tatsächlich macht es nicht soviel aus, wenn der Inhalt des Frames nicht komplett geladen wurde, solange das Abschicken des Formulars an den Server innerhalb der 1,8 Sekunden abgeschlossen ist. Sollte aber auch möglich sein, müsste man das Script im parent abändern und auf das load/ready event des iFrames warten, auf jeden Fall die bessere Variante als eine feste Zeit zu warten.


    Alternativ, wenn es immer so sein soll, kann man als Userscript auf
    document.referrer == document.location.href


    testen und dann den Frame schließen. Das trifft nur nach der Alarmierung zu, wäre aber an den bestehenden Alamieren Button gebunden.

  • Folgendes Userscript sollte das ermöglichen:


    JavaScript: Greasemonkey_LSSAlarmClose
    // ==UserScript==// @name LSS AlarmClose// @namespace LSSAlarmClose// @version 1// @grant none// @include https://www.leitstellenspiel.de*// ==/UserScript==(function() { // Alarmierungsfenster: if(location.pathname.indexOf('/missions/') > -1) { // Nur wenn im iFrame: if(parent != self) { $('input[name=commit]').after('<a href="#" class="btn btn-success" id="LSSAlarmClose" title="Alarmieren und schließen"><img class="icon icons8-Phone-Filled" src="/images/icons8-phone_filled.svg" width="17" height="17"> <span class="glyphicon glyphicon-remove"></span></a>'); $( "#LSSAlarmClose" ).click(function() {parent.LSSAlarmClose(); $("#mission-form").submit(); }); } // Hauptfenster: }else if(location.pathname == "/") { unsafeWindow.LSSAlarmClose = function(){setTimeout(function() { lightboxClose()}, 2000);}; // 2000 Millisekunden = 2 Sekunden, evtl. erhöhen? // TODO: hier besser prüfen ob der iFrame komplett geladen wurde, dann schließen! }})();


    getestet nur in Firefox + Greasemonkey, da hats funktioniert ;-)
    Evtl. könnte folgendes in Tampermonkey und anderen Userscriptaddons/Browsern funtkionieren, das konnte ich aber nicht testen:

  • Also eingefügt habe ich es jetzt auch, aber da steht an einer Stelle Missing Semicolon


    Was muss ich da eingeben?? Wenn ich da ei Semicolon ; einfüge zeigt er noch mehr Fehler an :-(


    Kann mir da wer helfen??

  • Das optionale Semikolon, wegen dem er rummeckert, würde hinter lightboxClose() stehen, is aber wie gesagt optional ;)

  • ... Vorschlag: Wäre es auch möglich den Button in der Leiste (rote Leiste unten) nach unten zu setzten. Also wo auch die anderen sind.

    ... Kann man da vielleicht noch einen HotKey hinzu fügen??

    Ok, Button nun auch in der roten Leiste und mit Hotkey ( Q / q für "alarm and quit") s und x sind schon vergeben :/

    JavaScript: Greasemonkey_LSSAlarmClose
    // ==UserScript==// @name LSS AlarmClose// @namespace LSSAlarmClose// @version 1// @grant none// @include https://www.leitstellenspiel.de*// ==/UserScript==(function() { // Alarmierungsfenster: if(location.pathname.indexOf('/missions/') > -1) { // Nur wenn im iFrame: if(parent != self) { $('input[name=commit]').after('<a href="#" class="btn btn-success LSSAlarmClose" id="LSSAlarmCloseTop" title="Alarmieren und schließen"><img class="icon icons8-Phone-Filled" src="/images/icons8-phone_filled.svg" width="17" height="17"> <span class="glyphicon glyphicon-remove"></span></a>'); $('#mission_alarm_btn').after('<a href="#" class="btn btn-success navbar-btn btn-sm LSSAlarmClose" id="LSSAlarmCloseBottom" title="Alarmieren und schließen"><img class="icon icons8-Phone-Filled" src="/images/icons8-phone_filled.svg" width="17" height="17"> <span class="glyphicon glyphicon-remove"></span></a>'); $( "a.LSSAlarmClose" ).click(function() {parent.LSSAlarmClose(); $("#mission-form").submit(); }); // hotkey 81 = q : $( document ).keydown(function( e ) { var tag = e.target.tagName.toLowerCase(); var type = (e.target.type) ? e.target.type.toLowerCase() : ''; if ( e.which === 81 && !(tag == 'input' && type == 'text') ) { $('#LSSAlarmCloseTop').click(); } }); } // Hauptfenster: }else if(location.pathname == "/") { unsafeWindow.LSSAlarmClose = function(){setTimeout(function() { lightboxClose()}, 2000);}; // 2000 Millisekunden = 2 Sekunden, evtl. erhöhen? // TODO: hier besser prüfen ob der iFrame komplett geladen wurde, dann schließen! }})();