<nostalgie>
Hier begann meine Skripter-Reise und nun endet sie auch hier. Alles gute für euch!
</nostalgie>
<nostalgie>
Hier begann meine Skripter-Reise und nun endet sie auch hier. Alles gute für euch!
</nostalgie>
Ihr Lieben,
eines kann ich euch garantieren: jeder einzelne Beitrag, nach meinem, wird gelöscht werden. Dieses Mal aber zurecht. Hier geht es um Skripte, nicht darum sich abermals über XY auszukotzen. Wobei ich den Grund nur zu gut verstehe.
Bitte macht das im OT-Bereich und betet einfach nebenbei, dass es da nicht gelöscht wird. Rein sachlich passt es da jedenfalls besser rein als hier.
Ich hoffe DJTraxx weiß von diesem Account. Ansonsten könnte so eine Nickwahl + Action auch schnell man nach hinten los gehen.
Ganz sicher nicht, auf solche Spielereien lässt er sich nicht ein.
Nach Rücksprache mit DrTraxx distanziert er sich ganz klar von sämtlichen Texten und Aktionen von DrTraxx-Supporter !
Liebe Community,
mit Wirkung zum 01.03.2023 werde ich den Support und die Weiterentwicklung sämtlicher Scripte von mir einstellen. Auch werden alle Scripte von Github entfernt. Die Nutzung des derzeitigen Standes wird dabei nicht beeinträchtigt.
Der Umgang mit DrTraxx seitens des Betreibers und nun auch der Moderation (die kommentarlose Schließung aller seiner Script-Support-Threads bis hin zu öffentlichen Hinweisen auf die Sperrung) ist weit weg von dem was ich mir als professionell, sachlich und menschlich angebracht verspreche. Dieses Verhalten werde ich mit meinen Mitteln nicht (mehr) unterstützen.
Vielen Dank euch allen für die Unterstützung und Nutzung meiner Scripte in den vergangenen 5 Jahren.
Alles Gute für euch und beste Grüße
Allure149
Angenommen du hast gerade den Einsatz "Dammbruch" erhalten und möchtest dafür eine neue AAO anlegen, hast aber nicht genug Fahrzeuge um ihn gerade anzufahren. Das Spiel meldet sich mit dem Fehler "nicht genug Fahrzeuge" und lässt kein erhöhen der Fahrzeuge mehr zu.
Das würde bedeuten du kannst AAOs nur anlegen wenn du im Augenblick genug Fahrzeuge hast um explizit diesen Einsatz anzufahren.
Vorstellbar wäre vielleicht sowas hier:
Ist direkt aus dem AAO-Erstellungsfenster heraus, die Eingabefelder für die einzelnen Fahrzeuge könnten vorbefüllt werden. So müsste man am Ende nur noch kontrollieren und bestätigten.
Wenn man weiter auf das Einsatzfenster besteht ginge m.E. nur das "kopieren" der kompletten AAO-Erstellungsmaske und das wäre - jedenfalls mir - super nervig es bei jedem Einsatz angezeigt zu bekommen.
Für gut befunden
Ich hätte da aber noch einen Wunsch falls du Lust hast:
Es wäre schön wenn die Gebäude, die Anzahl X an ausgebildetem Personal bereits haben UND dem Wachentyp (BuildingType) für die Ausbildung entsprechen, ausgeblendet werden könnten.
Beispiel: SEK/MEK wird 42 mal pro BePol benötigt. Wenn die Wache eine BePol ist und exakt 42 Personen mit dieser Ausbildung hat bedeutet es die Wache ist schon mit der Ausbildung fertig. Ich würde im E-Fall quasi das ausgebildete Personal der fertigen Wache auf eine unfertige verschieben => die fertige Wache wäre nicht mehr fertig^^
Theoretisch funktioniert das momentan auch, aber: wenn ich mir nur die ersten 5/10/25 Wachen anzeigen lasse sind es in jedem Fall komplett fertige Wachen. Heißt ich bin immer gezwungen mir alle anzeigen zu lassen und zu scrollen.
(alternativ könntest du auch vorgeben lassen welche Gebäudetypen einbezogen werden sollen. Das war jetzt auch nur ein Beispiel für die BePol die auf normalen Pol-Wachen vor-ausgebildet und dann nur noch kostenlos in einem Rutsch verschoben werden können)
Alles anzeigen-Eigene Fahrzeuge (ohne Rettungsdienst) ist auf Anfaht/Am Einsatzort
=> Sternchen vor der Einsatzbezeichnung = du hast noch kein Fahrzeug am Einsatz platziert
Männchen vor der Einsatzbezeichnung = du bist auf Anfahrt/vor Ort
-Eigener Rettungsdienst ist auf Anfahrt/Am Einsatzort
=> derzeit nicht filterbar, ansonsten siehe oben
-Bringt mehr/weniger als x Credits im Durchschnitt (einstellbar ob mehr oder weniger)
Hier kann nur "mehr" eingestellt werden. (Der Sinn von "weniger" erschließt sich mir nicht, aber jeder wie er möchte :-))
-Noch nicht alle benötigten Fahrzeuge sind am Einsatzort oder auf Anfahrt
=> sobald das erste Fahrzeug am Einsatzort angekommen ist wird dir (auch in der Einsatzliste) angezeigt welche Fahrzeuge noch benötigt werden
Rot = keine Fahrzeuge auf Anfahrt UND es fehlen noch welche
Gelb = Fahrzeuge sind noch auf Anfahrt UND es fehlen noch welche
Grün = alles tutti, der Einsatz wird gerade beendet
-Ist innerhalb von x min Anfahrtszeit/in Kilometer Entfernung von der nähesten Wache (oder festgelegte Wache, was einfacher ist)
=> Dafür müsste jeder einzelne Einsatz im Hintergrund geöffnet und die vorgeschlagenen Fahrzeuge ausgelesen werden. Bedeutet du generierst schon Serveranfragen ohne irgendetwas mit Einsatz anfangen zu wollen. Nicht gut.
Alternativ kannst du den Einsatz öffnen und Just In Time sagt dir ob du es noch rechtzeitig zum Ende des Einsatzes schaffst.
Es gibt ganz sicher noch diverse andere Skripte die dir einige deiner Wünsche erfüllen können. Am besten du schaust dich mal in der Übersicht über die Scripte um.
Ein Request in einer ungebremsten for-Loop ist natürlich nicht ganz so gut. In jQuery würde ich es mit async/await lösen, in JS müsste ich kurz überlegen ... die einfachste Möglichkeit wäre wohl ein sleep einzubauen.
Aber die Idee das per Onboard-Mitteln abzufragen ist echt nett! Spannend was alles per URL abgefragt werden kann.
Sehr schöne Arbeit
Möglich ist es, nur wie soll das ganze dargestellt werden?
Nur ein Beispiel aus meinem Verband: "Verbands-Co-Admin, Lehrgangsmeister, Finanzminister, Aufsichtsrat". Das ganze würde ziemlich den Rahmen sprengen.
Name, Rang, ein Knopf um direkt Nachrichten zu schicken? Oder ohne Ränge?
Vielleicht möchtet ihr das mal aufschreiben/aufmalen wie genau ihr euch das vorstellt. Dann müssen wir nicht so ins blaue schießen
Der sessionStorage ist ja die Quelle. Das ist im Endeffekt also die selbe Lösung wie im PR.
BOS-Ernie schau mal:
$.post("/buildings/6140894/education", {
education: 9,
building_rooms_use: 1,
duration: 3600,
cost: 500,
}, function (cb) {
const schoolingId = +$("span[id^=education_schooling_]", cb).attr("id").match(/\d+/)[0];
console.log(schoolingId);
});
Hier wird ein FW-Notarzt Lehrgang auf einer meiner FW-Schulen für den Verband geöffnet, mit 1 Stunde Wartezeit und 500 Credits Kosten. Im response wird schoolingId mit der ID des gerade erstellten Lehrgangs gefüllt. Tada! Da hast du deine ID vom gerade geöffneten Lehrgang.
Grundsätzlich finde ich eure Ideen wirklich sehr nett und durchaus auch umsetzbar, aber - und ich will wirklich nicht Mutter Theresa spielen -:
kann man das gespeicherte der jeweiligen Schule im storage überschreiben.
Macht das bitte nicht. Niemals. Pfuscht nicht an der Quelle eurer Daten rum - ihr könnt danach niemals die Korrektheit garantieren und am Ende hantiert ihr mit falschen Datum rum. Oder noch schlimmer: andere Scripte, die auf diese Daten angewiesen sind, könnten völlig verrückt spielen.
Das
dürfte andere Scripte nicht beeinflussen
, wird es aber 100%ig!
Baut euch ein Object oder was-auch-immer mit euren eigenen Daten, $.merge()d euch alles zusammen und baut euch daraus eine saubere Datenquelle ohne irgendwelche Manipulationen an "der" Quelle. Ihr sägt euch am Ende den Ast ab auf dem ihr sitzt ...
Kurzum: Danke für dein PR BOS-Ernie, aber ich werde es ablehnen solange Quelldaten bearbeitet werden. Ganz oben steht mein Name und ich bin dafür verantwortlich, dass andere Scripte nur funktionieren "dürften", aber nicht unbedingt werden.
Vielen Dank für die ausführliche Antwort und Bestätigung. Würde es dich stören, falls ich mich etwas einarbeite und einen Lösungsversuch starte (ohne Garantie)?
Nur zu. Jeder kann jederzeit via Github am Script schreiben. Ich muss es dann ohnehin mergen.
Tipp: versuch es mit einem im SessionStorage gespeicherten Object nach HiOrg getrennt. Vielleicht reicht das ja schon.
Das Problem mit dem Laden des Scripts bei Gebäuden, in denen es nicht laden soll, sollte relativ leicht gelöst sein.
Setz doch ein return, wenn der building_type nicht dem einer Schule entspricht.
Hättest du mal ins Script geschaut
var schoolToSearch = +$("h1:first").attr("building_type") || null;
var accessibleBuildings = [1,3,8,10];
if((schoolToSearch == null || !accessibleBuildings.includes(schoolToSearch)) && window.location.pathname.indexOf("schoolings").length == -1){
return false;
}
Problem: "schoolToSearch" kann z.B. bei der Bearbeiten-Seite nicht ausgelesen werden. In dem h1-Tag existiert das Attribut "building-type" nicht.
Es gibt natürlich eine Lösung, aber eben nicht sofort. Muss ich genauer reinschauen.
Stimmt meine Vermutung oder liegt der Fehler wo anders?
Jopp, das ist absolut korrekt.
Ich hatte irgendwann mal versucht das zu beheben, ist aber deutlich aufwändiger als erwartet. Schließlich muss ich mir über den gesamten, gecachten Zeitraum merken welche Schulen (getrennt nach HiOrg) bereits besetzt sind. Nachdem der Cache wieder mit neuen Daten gefüllt wurde (alle 5 Minuten) muss das geleert werden.
Das ganze kann durch Aushebeln des "5 Minuten Timers" umgangen werden, allerdings stelle ich diese Lösung bewusst nicht zur Verfügung.
Mein Script greift nicht nur auf die Seiten betreffend Schulungen zu, sondern auf jede Seite die etwas mit einem Gebäude zutun hat. Und das passiert wirklich sehr häufig. Entsprechend häufig würden die APIs neu geladen werden. Und das muss nicht häufiger passieren als wirklich notwendig.
Diese Funktionalität mit dem 5 Minuten Timer greift im übrigen scriptübergreifend. Entwickler, die dieses Schema nutzen, nehmen gleichzeitig an diesem Timer teil und leisten so ihren Beitrag zum serverschonenderen Betrieb. Bei keinerlei Konsequenzen gegenüber der Funktionalität des Scriptes.
Zugegeben, aktuell ist dieses Problem sehr, sehr ärgerlich. Mich nervt es zwischendurch auch ganz schön. Jedoch lässt es meine Zeit momentan kaum zu größere Arbeiten an Scripten zu tätigen. Wenn sich also ein anderer Entwickler dessen annehmen möchte: nur zu.
Die Probleme mit der Häufigkeit des Aufrufs des Scriptes (es aufzurufen wenn man eine Wache "betritt" ist völliger Quatsch) und, dass es teilweise die "Absenden"-Buttons mancher Seiten überlagert (ruft mal mit aktiviertem Script eine Wache auf und versucht dessen Namen zu bearbeiten, dann wisst ihr was ich meine), gibt es ja auch noch. Viel zutun für derzeit zu wenig Zeit.
Ich hoffe das erklärt die derzeit ausblenden Lösungen für dieses und so manche, andere Scripte.
Danke für das Update. Jedoch wird bei mir die Geschwindigkeitssteuerung direkt neben der Einsatz-Selektierung angezeigt. Kannst du mir sagen, wo ich was
ändern/einfügen muss, damit es wieder in die Reihe darunter Rutscht?
Edit: Ich benutze den Browser "Brave" (ist auf Chrom basierend)
Versuch mal die Option "group_buttons" auf "false" zu setzen. Sollte das nicht klappen muss ich mir nochmal was einfallen lassen.
leider habe ich einen Fehler mit deiner V3:
Ich muss mir langsam wirklich ein paar Tester ran holen, bevor ich etwas veröffentliche ... beim 1. Versuch klappt es ja anscheinend zu selten.
Fehler gefunden und mit v3.0.1 behoben. Ein Logikfehler. In meinem Kopf.
Nu ist es fertig und als v3.0.0 unter dem bekannten Link verfügbar.
Um den ständigen Problemen mit den Bezeichnungen aus dem Weg zu gehen könnt ihr jetzt dynamisch die Zeiten anpassen. Vielleicht kommen ja noch weitere Zeiten dazu, wer weiß? Das könnt ihr ab Zeile 50 und darunter machen.
Da ich mal wieder Bock hatte ein wenig multilingual unterwegs zu sein funktioniert das Script jetzt auch für Englisch für alle bisher englischsprachigen Seiten. Solltet ihr weder Deutsch, noch Englisch, spielen könnt ihr euch das selbstständig ermöglichen. Dazu unter Zeile 13 die von euch genutzte Seite hinzufügen (Muster sollte klar sein) und unter Zeile 70 eure Sprache einfügen. Ggfs. müsst ihr noch die Zeiten für eure Spielwelt anpassen. Die deutschen Wörter ab Zeile 50 könnt ihr ebenfalls auf eure Sprache umbauen. Sie werden nirgends genutzt und dienen nur der Orientierung.
Ob die Buttons getrennt oder als Gruppe kombiniert werden sollen könnt ihr in Zeile 32 entscheiden.
Ich weiß, ist unter Umständen viel Gefummel im Code. Aber ich war für die kleine Spielerei zu faul und zu geizig eine eigene GUI zu bauen. Seht es mir nach.
Fragen? Probleme? Immer her damit!
Ich war schon dabei das Script komplett neu, in vernünftig und hübsch, zu schreiben als mir doch tatsächlich in diesem Moment der Computer hopps gegangen ist. Am Freitag, den 13.! Vonwegen Aberglaube ...
DrTraxx hat mir mit einer neuen Grafikkarte ausgeholfen und nun bin ich wieder am Start.
Bastelt besser nicht weiter daran rum. Das sieht ja teilweise echt abgefahren aus hier ...
Wie gesagt: bin dran.
BayHH ich hab mit der Version v2.1.4 eine Korrektur eingebaut. Die Bezeichnungen müssten jetzt passen. Magst du einmal drüber schauen?
Für mich nur eine kleine Übersicht:
Bezeichnung | Wert | ID | Zeit |
Realistisch | 0 | mspl | 3 Minuten |
Normal | 1 | msf | 1 Minute |
Schnell | 2 | msff | 30 Sekunden |
Turbo | 3 | msvf | 20 Sekunden |
Langsam | 4 | msb | 5 Minuten |
Extra langsam | 5 | msfb | 10 Minuten |
Pause | 6 | mspa | - |
Semi-Realistisch | 7 | msf | 2 Minuten |
Langsamer | 8 | mssb | 7 Minuten |
Was diesen Code-Block angeht:
Was ihr da versucht ist ein Attribut von seinem Tag abzuspalten. Das funktioniert so nicht.
Attribute können niemals alleine stehen, sie sind nur quasi eine Ergänzung zum Tag. Nicht umgekehrt und auch nicht separat.
Alle Symbole sollten nach einem Update des Skriptes auf v2.1.3 wieder funktionieren wie sie sollen. SanniHameln war so freundlich ein Update zu machen.
(das betrifft nicht die Reihenfolge der Knöpfe die, meines Erachtens, korrekt sein sollte)
- Tauchkraftwagen gw_taucher
- FLF arff
- Rettungstreppe rettungstreppe
- MTW-OV thw_rescue_dogs
- Polizeimotorrad
- Zivilstreifenwagen criminal_investigation
Nur Mopeds hab ich leider keine. Die kann aber sicher noch jemand anderes liefern.
Ach schade, hat jemand die Idee für so ein Skript vor mir veröffentlicht. Zwar hab ich es schon ein paar Monate am laufen, aber die Kleinigkeiten nie bereinigt. Jeder unserer Entwickler wirds kennen^^ gut gemacht BOS-Ernie