[Skriptwunsch umgesetzt] Personen automatisch benennen

  • Moin,


    ich traue mich ja fast nicht zu fragen, aber ich hätte da einen (für viele Leute recht sinnlosen) Skriptwunsch:


    Ich mag es irgendwie, wenn die Einsatzkräfte im Spiel vollständige Namen (Vorname + Nachname z.B. Hans Günther, Lieschen Müller, Max Meier) haben.



    Aber langsam wird es zu viel, die drölfundfuffzig neuen Personen pro Tag zu benennen. Deswegen hätte ich gerne ein Skript, was das per Zufallsgenerator übernimmt, sobald man einen Button klickt. Am liebsten mit einer Liste aus Vor- & Nachnamen, die man selbst editieren kann. Beim Klicken des Buttons werden dann zufällige Kombinationen aus Vor- und Nachnahmen dem neu hinzugekommenen Personal zugewiesen.


    Als Erkennungsmerkmal für neu dazu gekommenes Personal könnte man den "." nehmen. Da der Nachname im Spiel immer abgekürzt wird, sollte er überall vorhanden sein, wo der Name noch nicht vergeben wurde.

    Es sollte mit dem LSSM v4 zusammen funktionieren.


    Vielen Dank, an den, der sich der Sache annimmt. Ich kann aber auch gut verstehen, wenn euch die Sache zu blöd ist oder den Aufwand nicht wert ist.

  • :/ Mal sehen. Vielleicht probiere ich das mal selbst zu lösen. Wollte ja sowieso mal den Einstieg in die Skripterwelt finden.


    Wenn jemand ein gutes Beispiel hat, wie man einen Button implementieren kann und wenn jemand weiß, wie man die Namen der Personen überschreiben kann, wäre das recht hilfreich.


    Habe mir gestern schon mal ein Einstiegstutorial angeschaut und kann mir vorstellen, dass ich die Sache mit Namen prüfen und ggf. neue generieren schon hinbekommen würde. Immerhin bin ich der Programmierung ja nicht ganz fremd.

  • Ich hatte mir das gestern mal angeschaut, aber erstmal wieder weg gelegt. Den Button und die Umbenennungslogik bekommst du einfach hin. Das ist gar kein Problem. ;) Problem ist, die Daten der Einzelnen mitarbeiter aus der Mitarbeiterliste in die einzelne Mitarbeiter-Settings zu pushen. Da war ich gestern erstmal dran gescheitert. ;(


    Aber versuch dich gerne selber. Man lernt immer dazu. ;)

    Mecker nicht Rum, mach's besser! Kannst du nicht? Dann halt den Ball flach!8o


    Mein Verband "Sachsen, Dresden und Osterzgebirge"

    "Und Du wünschst dieser Welt

    Dass endlich Hirn vom Himmel fällt

    Es wär' schön, wenn sie verstehen

    Zum Homosapiens gehört nicht nur aufrecht gehen"

  • Der Anfang ist gemacht. Bin heute soweit gekommen, dass zufällige Namen per Funktion generiert werden können. Jetzt kommt der schwere Teil an der Sache.


    Wollte es eigentlich hier hochladen, aber irgendwie wird da wegen zu viel Text gemeckert.

    Wenn du eh noch mehr Skripten willst, evtl. schonmal mit https://github.com/signup beschäftigen ;-)

    Ansonsten dürfte das ja von den Namenslisten kommen, ggf. die erstmal kürzen für das Forum.

  • Wenn du eh noch mehr Skripten willst, evtl. schonmal mit https://github.com/signup beschäftigen ;-)

    Ansonsten dürfte das ja von den Namenslisten kommen, ggf. die erstmal kürzen für das Forum.


    Ja, mit Github werde ich mich auch mal außeinandersetzen, wenn es zeitlich passt. Das hatte ich schon auf dem Schirm. ich habe erstmal das gemacht, was ich nach dem 1:30 h Tutorial so intuitiv machen konnte. Alles, was da am Anfang mit @ steht, habe ich mir erstmal bei einem Skript von Sobol abgeschaut. Da schaue ich dann auch nochmal, was es eigentlich macht.

  • Kann es sein, dass da noch die Hälfte Fehlt? ;) Das ist erstmal das erzeugen der Namen. Aber da fehlt noch komplett der Data-Push?

    Mecker nicht Rum, mach's besser! Kannst du nicht? Dann halt den Ball flach!8o


    Mein Verband "Sachsen, Dresden und Osterzgebirge"

    "Und Du wünschst dieser Welt

    Dass endlich Hirn vom Himmel fällt

    Es wär' schön, wenn sie verstehen

    Zum Homosapiens gehört nicht nur aufrecht gehen"

  • Aber wenn das soweit ok ist

    Ich finde es ein Wenig umständlich und auch mühsam die Namen alle einzeln in das Script einzutragen. Ich würde das per Json Laden.

    Auf gar keinen Fall möchte ich dir die Arbeit wegnehmen und ich ermutige dich weiter daran zu arbeiten. Aber falls du mal spicken willst, oder irgendwo nicht weiter kommst: Hier der Installlink zu meiner Version bzw wenn du es dir nur anschauen und nicht gleich an Tampermonkey schicken willst: Hier der Betrachterlink zu meiner Version.

    Mecker nicht Rum, mach's besser! Kannst du nicht? Dann halt den Ball flach!8o


    Mein Verband "Sachsen, Dresden und Osterzgebirge"

    "Und Du wünschst dieser Welt

    Dass endlich Hirn vom Himmel fällt

    Es wär' schön, wenn sie verstehen

    Zum Homosapiens gehört nicht nur aufrecht gehen"

  • Ich finde es ein Wenig umständlich und auch mühsam die Namen alle einzeln in das Script einzutragen. Ich würde das per Json Laden.

    Auf gar keinen Fall möchte ich dir die Arbeit wegnehmen und ich ermutige dich weiter daran zu arbeiten. Aber falls du mal spicken willst, oder irgendwo nicht weiter kommst: Hier der Installlink zu meiner Version bzw wenn du es dir nur anschauen und nicht gleich an Tampermonkey schicken willst: Hier der Betrachterlink zu meiner Version.

    Das sieht schon mal deutlich besser aus. Mal sehen, ob ich heute Abend weiter komme. Ich probiere meine Version hin zu bekommen und dann werde ich Stück für Stück schauen, wie ich sie anhand deines Skripts verbessern kann. Ich bin schon interessiert am Skripten, aber bisher hatte ich nur mit C++, C#, Assembly, Java und Python zu tun. Das war auch alles recht oberflächlich und hatte nichts mit Webseiten zu tun. Deswegen geht das alles schön langsam voran.....

  • Falls du Lust und Zeit hast dich da tiefer rein zu fuchsen: https://wiki.selfhtml.org/wiki/HTML ist mE. eine relativ gute Website, die es sehr (teilweise zu sehr) anschaulich erklärt. Und wenn du Programmiererfahren bist musst du dich ja nur noch mit dem DOM und dazugehörigen Kram auseinander setzen und nicht mehr die Logik, Syntax und Konzepte (JS ist effektiv auch OOP, idR. ist der main ein unbekanntes Objekt, welches Funktionen und Variablen hat :D). Ansonsten bei Fragen gerne: Frage- und Hilfebereich für Entwickler

    Ein Vakuum, geschaffen durch fehlende Kommunikation,

    füllt sich in kürzester Zeit mit falscher Darstellung, Gerüchten, Geschwätz und Gift. - Cyril Northcote Parkinson


    Der beste Verband in Aachen und Umgebung: leitstellenspiel.de/alliances/1100



    Schraube manchmal am LSSM V4 rum.

  • Sir Kalubke von Simek

    Hat den Titel des Themas von „[Skriptwunsch] Personen automatisch benennen“ zu „[Skriptwunsch umgesetzt] Personen automatisch benennen“ geändert.
  • Ich finde es ein Wenig umständlich und auch mühsam die Namen alle einzeln in das Script einzutragen. Ich würde das per Json Laden.

    Auf gar keinen Fall möchte ich dir die Arbeit wegnehmen und ich ermutige dich weiter daran zu arbeiten. Aber falls du mal spicken willst, oder irgendwo nicht weiter kommst: Hier der Installlink zu meiner Version bzw wenn du es dir nur anschauen und nicht gleich an Tampermonkey schicken willst: Hier der Betrachterlink zu meiner Version.

    Ich habe das gestern mal ausprobiert. Es funktioniert sehr gut. So hatte ich mir das vorgestellt. Vielen Dank dafür.


    Ich bin immer noch an meiner eigenen Version dran, aber das wird noch etwas dauern. Aktuell habe ich auch nicht allzu viel freie Zeit.


    Habe den Link hier gefunden und mal mit Sobol s Skript abgeglichen:

    Wissensdatenbank Javascript Anfrage

    Hab aber nicht allzu viele Parallelen gefunden. Ob der nützlich ist?

  • Was mich am meisten interessieren würde: Woher weiß man, wo die Namen der Personen auf dem Server abgelegt sind? Oder werden die erst durch das Programm "gesucht".

    Wo die auf dem Server stehen, ist mir total wurst. ;) Das Script sucht in der Tabelle nach allen Namen, die einen Punkt enthalten. Wenn das der Fall ist, sucht sich das Script den Edit-Button der Jeweiligen Zeile und ruft im Hintergrund die Edit-Seite des jeweiligen Mitarbeiters auf. An diese sendet es einfach eine Anfrage, den Namen zu XYZ zu ändern und diese Änderung zu speichern. Sehr viel mehr tut es gar nicht. ;)


    Ich muss aber zugeben, dass ich mit dieser Art anfrage gerade erst angefangen habe. Mit dem hier, habe ich 2 Scripte, die solche Anfragen senden und habe daran länger gebastelt, als ich zugeben möchte. =O8o


    Was mir sehr geholfen hat, ist die änderung einfach mal von Hand zu machen und im Netzwerkanalysetool des Browsers den Inhalt der Anfrage und den gesendeten Keks zu lesen. Etwas umständlicher/erweiterter habe ich ein solches Request in Script Suche/Wunsch eigener Einsatzbereich drin. Dort werden 2 verschiedene Requests erzeugt.

    Mecker nicht Rum, mach's besser! Kannst du nicht? Dann halt den Ball flach!8o


    Mein Verband "Sachsen, Dresden und Osterzgebirge"

    "Und Du wünschst dieser Welt

    Dass endlich Hirn vom Himmel fällt

    Es wär' schön, wenn sie verstehen

    Zum Homosapiens gehört nicht nur aufrecht gehen"

    Einmal editiert, zuletzt von Sobol ()

  • Die werden irgendwo in einer Datenbank abgelegt sein. Das kann dir aber relativ egal sein, da du auf die DB keinen Zugriff hast. (Wäre idR auch eine URI, welche nicht mit http(s):// beginnt). Aus Sicherheitsgründen gibt es idR. eine Middleware, welche zwischen Datenbank und Frontend hantiert und Daten auf Validität, Berechtigungen. Im besten Fall hätte das Spiel eine API (Application programming interface), eine Schnittstelle, welche von Maschinen gelesen und beschrieben werden kann. (vgl. https://leitstellenspiel.de/api/buildings). Da wir das leider nicht haben simuliert das Skript eine Nutzereingabe eines Namens (was technisch gesehen eine API ist, welche jedoch undokumentiert ist). Um sowas zu finden und die Syntax der API rauszufinden ist es idR. relativ hilfreich die gewünschte Aktion händisch auszuführen und nebenbei die Netzwerkkonsole offen zu haben. Darüber erfahren wir dann folgendes:
    An die URL https://www.leitstellenspiel.de/personals/1234567890 wurde ein
    POST-Request mit folgendem Inhalt gestellt:


    Durch die Content-Disposition können wir den Anfrage-Typ (form-data) ermitteln. Dieser hat folgende Elemente:
    "utf8" mit dem Wert "✓"
    "_method" mit dem Wert "put"
    "authenticity_token" mit dem Wert "[geschwärzt]" //Hier massiv aufpassen. Mit so einem Token kann jemand den gesamten Account unter den Nagel reißen
    "personal[name]" mit dem Wert "Alex T."

    "personal[binding_vehicle_id]" mit dem Wert ""
    "commit" mit dem Wert "Speichern" //Warum auch immer.


    Das bauen wir dann mit dem Formdata-Objekt von oben nach und senden das an die Schnittstelle. Zack, du hast deine Update-Anfrage an eine API gestellt. //In einer perfekten Welt wäre die Anfrage auch als HTTP PUT/PATCH Request gesendet worden, aber Schemata werden nicht immer zwangsweise eingehalten.

    Ein Vakuum, geschaffen durch fehlende Kommunikation,

    füllt sich in kürzester Zeit mit falscher Darstellung, Gerüchten, Geschwätz und Gift. - Cyril Northcote Parkinson


    Der beste Verband in Aachen und Umgebung: leitstellenspiel.de/alliances/1100



    Schraube manchmal am LSSM V4 rum.