[14.03 Beta Release] Alarmierung nach Stichworten

    • [14.03 Beta Release] Alarmierung nach Stichworten

      Guten Abend!

      Hier möchte ich mein kleines Projekt vorstellen, an dem ich derzeit arbeite. Die Stichwortalarmierung.
      Wie der Name schon sagt, soll man damit mit einem Klick gleich mehrere Fahrzeuge alarmieren.
      Das Grundprinzip funktioniert bereits, jetzt steht die Ausarbeitung auf dem Plan.
      Hier ein Video mit dem aktuellen Stand:





      Die Position und das Aussehen des neuen GUI Elements sind erstmal Platzhalter, für Ideen bin ich immer offen :gamer:
      Geplant ist eine Datei, in die man die Fahrzeuge für die jeweiligen Stichworte eintragen kann.
      Verbesserungsvorschläge, Anregungen zu den Stichworten oder Wünsche sind gerne gesehen :hail:

      Vielen Dank an den-follow für seine Hilfe bisher!
    • Kurzes Update zum aktuellen Stand:



      Neuerungen:
      - Zuerst wird ein Alarmsound abgespielt, sobald dieser fertig ist, spawnen die Fahrzeuge
      - Was alarmiert werden soll kann jetzt in einer JSON Datei hinterlegt werden, theoretisch auch der Alarmsound, allerdings muss er zum jetzigen Zeitpunkt als Asset registriert sein.
      - GUIs werden nun dynamisch erstellt

      carli96 schrieb:

      Ich würde mich in Sachen Design an das Original Design halten. Da musst du auch keine neuen Bilder für zeichnen.

      Ansonsten klingt das alles sehr schön. Vorallem, dass du versucht das ganze so zu bauen, dass es für den User anpassbar sein soll.
      Farblich hatte ich das vor, allerdings für die Stichworte brauche ich ja neue Icons.


      Fire Dept. Boston schrieb:

      Eine schöne Idee für Em5. Wird das auch was mit sounds kommen?
      Wäre bestimmt schick in Em5 seine Autos mit dem schönen gedüdel zu alarmieren.
      Ist eingebaut :gamer:
    • Du brauchst keine neuen Bilder für die Buttons zu erstellen. Das kannst ja den Hintergrund blau machen und dann immer einen Text reinschreiben lassen den der User vorgeben kann.
      Außer du willst das nicht so machen, dann ist es natürlich keine Möglichkeit. Falls doch, darfst du dich gerne bei mir melden, wenn du nicht weißt wie das mit den Buttons ohne Bilddatei funktioniert.
      § 5: Der Patient hat angefangen
    • AirStrike01 schrieb:

      Sieht super aus!

      Wie wäre es denn wenn man das Auto nicht per Rechtsklick sondern per Platzierentool, ähnlich wie bei dem
      Rescue Station PlugIn alamieren kann.
      Danke! Das Plugin soll ja Klicks ersparen, da wäre eher das platzieren der einzelnen Fahrzeuge kontraproduktiv.
      Am sinnvollsten wäre meiner Meinung nach die Fahrzeuge mit dem Plugin zu einem imaginären Bereitstellungsplatz fahren zu lassen und dann mit eben einem Platzierungstool nach eigenem Wunsch zu platzieren :)

      carli96 schrieb:

      Du brauchst keine neuen Bilder für die Buttons zu erstellen. Das kannst ja den Hintergrund blau machen und dann immer einen Text reinschreiben lassen den der User vorgeben kann.
      Außer du willst das nicht so machen, dann ist es natürlich keine Möglichkeit. Falls doch, darfst du dich gerne bei mir melden, wenn du nicht weißt wie das mit den Buttons ohne Bilddatei funktioniert.
      Sehr gute Idee danke! Habe ich direkt mal umgesetzt, allerdings habe ich nun das Problem, dass kein Klicksound mehr abgespielt wird :hmm:
    • Auf der Seite von librocket habe ich dazu etwas gefunden.


      Quellcode

      1. button
      2. {
      3. click-sound: beep;
      4. }
      5. button.siren
      6. {
      7. click-sound: siren.wav;
      8. }
      Das kommt dann in deine Klasse in der rml-Datei.
      So wie ich das sehe sind 'none', 'beep', 'boop' und 'bang' von librocket vordefinierte Sounds, die keiner extra Sounddatei bedürfen. Zweites schon


      Nähere Infos:
      librocket.com/wiki/documentation/C%2B%2BManual/RCSS
      § 5: Der Patient hat angefangen
    • carli96 schrieb:

      Auf der Seite von librocket habe ich dazu etwas gefunden.

      Nähere Infos:
      librocket.com/wiki/documentation/C%2B%2BManual/RCSS
      Hat bei mir nicht geklappt, aber zum Glück hat EM5 ja den Audiohelper. Der ist nur leider sehr zickig unterwegs und hat jetzt erst im zweiten Anlauf funktionieren wollen :dash:

      C-Quellcode

      1. em5::AudioHelper::playLeftMouseClickSound(em5::AudioProxy audioproxy);


      AirStrike01 schrieb:

      Zum Thema Sounds habe ich nochwas auf meiner Platte gefunden! :search:

      Leider weiß ich nicht mehr woher ich die Dateien habe.
      ...irgendwo hier im Forum hatte ich es mal gefunden.
      Danke das ist echt nützlich!
      Auch wenn man wie bereits erwähnt mit kaum Aufwand, je nachdem wie gut man sich auskennt, seine eigenen Sounds für jedes Stichwort einfügen :)
    • Ab sofort findet sich in der Webdisk ein Download der Beta Version sowie das Visual Studio Projekt mit dem Source Code




      Funktionen
      - eigenes Gui im Standartstil
      - drei Kategorien: Feuerwehr (FW), Rettungsdienst (RD), Polizei (POL)
      - Stichworte sowie die Fahrzeuge werden aus .json Dateien ausgelesen, welche sich automatisch beim ersten Starten im Pfad 'path-to-em5/data/group_alarm/' erstellen sollten
      - optional sind Alarmsounds möglich, welche vor dem Spawnen der Fahrzeuge abgespielt werden

      Das ganze soll zum Finden von Fehlern dienen, daher werden nur exemplarisch Stichworte mitgeliefert. Bevor man also richtig spielen kann, muss man selbst aktiv werden. Dies wird so in der Releaseversion nicht der Fall sein. Weitere Hinweise zur Anpassung sowie Vorlagen finden sich im Download

      Gruß
      Manuel

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von CubeCon ()

    • vom Code her denke ich, dass das ganze noch nicht Multiplayertauglich ist. Habe jedoch nicht getestet. Um zu synchronisieren, wird in der ExecuteCommandContext normalerweise ein Command gecasted und ausgeführt.

      Hier mal aus dem ExtinguishCommandMode

      C-Quellcode

      1. bool AreaExtinguishCommandMode::executeCommandContext(qsf::game::CommandContext& commandContext, const EntityIdSet& callerIds)
      2. {
      3. QSF_ASSERT(nullptr != mMap, "em5::AreaExtinguishCommandMode: Map pointer is not initialized", QSF_REACT_NONE);
      4. if (!commandContext.hasTargetPosition())
      5. {
      6. return false;
      7. }
      8. // The command mode will be executed on client side in multiplayer mode, so we need to push the actual actions within another command object to the host for things to work as expected
      9. ExtinguishTargetAreaCommand& commandObject = QSFGAME_COMMAND.getCommandManager().getSafe<ExtinguishTargetAreaCommand>();
      10. const qsf::game::CommandEvaluationHelper::EntityArray callers = { mCommandoCar };
      11. commandContext.mTargetPosition = getPositionUnderMouse();
      12. // TODO(ca) Review: Is this the correct way to push a command into the usual command processing?
      13. qsf::game::CommandEvaluationHelper::executeCommand(commandObject, callers, commandContext);
      14. // End command mode
      15. return true;
      16. }
      Alles anzeigen

      Um die Parameter zu übergeben, würde ich vorschlagen sie in den TargetPosition zu schreiben

      x = x-Pos
      y = OrderId*
      z = z-Pos

      *z.B. Player ist die Hunderterstelle und OrderId eine Zahl zwischen 0 - 99 (abhängig von der .json)

      1 -> OrderId 1
      2 -> Orderid 2

      Die Höhe y kann dann über die getHeightAtXZ im Command selber ermittelt werden

      y - darf nicht negativ sein, ansonsten können Clienten das nicht ausführen^^

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von KillerConsti ()