[Diskussion] X Rebirth Tools
Moderators: Moderators for English X Forum, Scripting / Modding Moderators
[Diskussion] X Rebirth Tools
Dieses Thema dient dazu, die hier gelisteten X Rebirth Tools zu diskutieren
Stellt Fragen oder teilt eure Erfahrungen in Bezug auf die Tools, auch Feedback kann hier gepostet werden. Das Thema wird aktualisiert, sobald weitere Tools hinzugefügt werden.
MFG
Ketraar
Stellt Fragen oder teilt eure Erfahrungen in Bezug auf die Tools, auch Feedback kann hier gepostet werden. Das Thema wird aktualisiert, sobald weitere Tools hinzugefügt werden.
MFG
Ketraar
Last edited by Ketraar on Fri, 28. Feb 14, 15:37, edited 4 times in total.
-
- Posts: 4664
- Joined: Mon, 6. Sep 04, 17:24
Nach links schau, nach rechts schau, mhh na dann mach ich eben mal den Anfang.
Ich habe absolut keinen Plan von Programmieren (habe es mit dem alten Scripteditor mit würgen hinbekommen, was zu "Erklicken").
Um so lustiger, das ausgerechnet so jemand eine Anleitung schreiben möchte.
Andererseits, wenn Leute die es schon können, Anleitungen schreiben, vergessen sie meist, dass sie immer viel zu kompliziert schreiben und Dinge (nicht aus Boshaftigkeit, sondern, weil sie es schon ganz automatisch machen und es selbstverständlich für sie ist) einfach nicht erklären und weg lassen.
Ich fange also wirklich von Null an und wollte euch bitten, mal über das bisher geschriebene drüber zu gehen, ob da irgendwelche falschen Dinge drinnen stehen oder ob das so alles richtig ist, was ich da verzapft habe.
http://bodenseejugend.de/sonstiges/XR1/ ... rungen.htm
Vielen Dank.
Ich habe absolut keinen Plan von Programmieren (habe es mit dem alten Scripteditor mit würgen hinbekommen, was zu "Erklicken").
Um so lustiger, das ausgerechnet so jemand eine Anleitung schreiben möchte.
Andererseits, wenn Leute die es schon können, Anleitungen schreiben, vergessen sie meist, dass sie immer viel zu kompliziert schreiben und Dinge (nicht aus Boshaftigkeit, sondern, weil sie es schon ganz automatisch machen und es selbstverständlich für sie ist) einfach nicht erklären und weg lassen.
Ich fange also wirklich von Null an und wollte euch bitten, mal über das bisher geschriebene drüber zu gehen, ob da irgendwelche falschen Dinge drinnen stehen oder ob das so alles richtig ist, was ich da verzapft habe.
http://bodenseejugend.de/sonstiges/XR1/ ... rungen.htm
Vielen Dank.
Ich fordere mehr und vorallem gerechtere Verteilung von Keksen und Süßkram für die "Magischen 20"! Daher wählen Sie jetzt die DPFGKV, die Deutsche Partei für gerechtere Keks - Verteilung!
Code: Select all
name"" ?
description="" ?
author="" ?
du solltest zudem unbedingt das save-attribut und wenn du eh dabei bist gleich noch das enabled-Attribut im content-Node erwähnen
und gleich eine Frage von meiner seite, auch wenn es momentan eher ein AIScript betrifft (sind ja zum glück ähnlich): wie setze ich eine Globale Variable? ich müsste nämlich eine Gruppe von Schiffen global speichern, um von einer art "manager"-AIScript Schiffe darin einfügen zu können bzw. welche daraus entfernen. dieses AIScript läuft allerdings nicht permanent sondern wird bei bedarf aufgerufen, aber die Liste/Gruppe muss im Spielstand erhalten bleiben.
Hintergrund der sache: ich will die move.die so umbiegen, dass die Schiffe nicht einfach despawnt werden sondern ne zeit lang im Uni verweilen und währenddessen von anderen Scripts/Missionen zur verwendung angefordert werden können, statt für den jeweiligen zweck extra Schiffe zu Spawnen und zu Despawnen
if not stated otherwise everything i post is licensed under WTFPL
Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter
I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help
Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter
I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help
... die ´´terran-conflict-logik´´ würde sagen: "einfach keine punke im namen der variablen verwenden"UniTrader wrote:wie setze ich eine Globale Variable?
// scheint aber unter XR nicht mehr so zu sein ^^
... hab´ mal über den guide geskippt, wenn ich´s korrekt einschätze, geht das über "libraries"
--> die variable also nicht im ´eigentlichen´ cue erstellen, sondern "wo anders" (in ´ner library eben)
(bezieh´ mich auf abschnitt "libraries" seite 10, interessant erscheint mir auch noch die letzte seite abschnitt "namespace")
für MDScripts trifft das wohl zu, da ich aber mit AIScripts arbeiten will ist diese methode nur das ansprechen einer stinknormalen Var. zumindest wenn man das Savegame analysiert -> die Vars ist im entitiy/script/vars-Node drin, also an den ausführenden NPC bzw. das ausführende Script gebunden.JonfersonSDD wrote:... die ´´terran-conflict-logik´´ würde sagen: "einfach keine punke im namen der variablen verwenden"
// scheint aber unter XR nicht mehr so zu sein ^^
bringt mir denke ich nicht allzuviel, ich arbeite nicht mit cues.JonfersonSDD wrote:... hab´ mal über den guide geskippt, wenn ich´s korrekt einschätze, geht das über "libraries"
--> die variable also nicht im ´eigentlichen´ cue erstellen, sondern "wo anders" (in ´ner library eben)
(bezieh´ mich auf abschnitt "libraries" seite 10, interessant erscheint mir auch noch die letzte seite abschnitt "namespace")
P.S.: und ich habs grad raus.. ne suche nach "global" in den aiscripts hätte mir das fragen sparen können.. global.$<Variable> heisst die lösung [/code]
if not stated otherwise everything i post is licensed under WTFPL
Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter
I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help
Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter
I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help
-
- Posts: 4664
- Joined: Mon, 6. Sep 04, 17:24
Hu, hu
1. Gibt’s eine Möglichkeit im Spiel die Erweiterungen zu aktualisieren oder muss ich bei jeder Teständerung das Spiel schließen und neustarten? (da war der alte Editor tatsächlich von Vorteil)
2. Ich habe vergebens versucht ein „Hallo Welt“-Menü Unterpunkt zu erstellen. Dazu habe ich mir die MainMenue.xml und von dem „ManualCommandExtension“ Mod die „Orders.xml“ aber irgendwie bin ich total und absolut überfordert damit.
Kann mir einer ein mindestens notwendigen Code als Beispiel geben, ohne jeglichen Schnickschnack, also wirklich nur das, was im Spiel einen neuen Untermenüpunkt erzeugt.
(Ich hab bei den meisten Sachen keinen Plan wofür sie sind und was sie machen)
Was ich machen wollte:
Im Hauptmenü unter dem "Menüordner/Reiter/Instanz oder wie immer das heißen mag" "Universum" soll unter dem "Enzyclopedi" Punkt ein neuer "Menüordner" mit "Hallo Welt" stehen, wenn man dort drauf Klickt, soll sich dam Menü öffnen und ein Untermenü "Test" stehen.
1. Gibt’s eine Möglichkeit im Spiel die Erweiterungen zu aktualisieren oder muss ich bei jeder Teständerung das Spiel schließen und neustarten? (da war der alte Editor tatsächlich von Vorteil)
2. Ich habe vergebens versucht ein „Hallo Welt“-Menü Unterpunkt zu erstellen. Dazu habe ich mir die MainMenue.xml und von dem „ManualCommandExtension“ Mod die „Orders.xml“ aber irgendwie bin ich total und absolut überfordert damit.
Kann mir einer ein mindestens notwendigen Code als Beispiel geben, ohne jeglichen Schnickschnack, also wirklich nur das, was im Spiel einen neuen Untermenüpunkt erzeugt.
Code: Select all
<?xml version="1.0" encoding="iso-8859-1" ?>
<mdscript name="ConversationsPatchConstructor" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="md.xsd">
<cues>
<cue name="Test" instantiate="true" namespace="this">
<actions>
<add_player_choice_sub text="{9999,1}" section="gOrders_Test" position="top_right" comment="test" selectable="(event.object.command.value != command.support)" />
</actions>
</cue>
</cues>
<add sel="/mdscript[@name='Orders']/cues/cue[@name='SectionHandler']/actions">
<do_if value="event.param == 'gOrders_Test'">
<do_if value="event.name == 'event_conversation_returned_to_section'">
<add_conversation_view view="facecopilot" />
</do_if>
<add_player_choice_sub text="{9999,1}" section="gMainUniverse_main" position="bottom_left" choiceparam="event.object.ship" comment="test"/>
</add>
</mdscript>
Was ich machen wollte:
Im Hauptmenü unter dem "Menüordner/Reiter/Instanz oder wie immer das heißen mag" "Universum" soll unter dem "Enzyclopedi" Punkt ein neuer "Menüordner" mit "Hallo Welt" stehen, wenn man dort drauf Klickt, soll sich dam Menü öffnen und ein Untermenü "Test" stehen.
Ich fordere mehr und vorallem gerechtere Verteilung von Keksen und Süßkram für die "Magischen 20"! Daher wählen Sie jetzt die DPFGKV, die Deutsche Partei für gerechtere Keks - Verteilung!
1. vielleicht gibts ein InGame-Kommando in der Kommandokonsole.. ich hab das nicht gross weiter verfolgt..
2. versuchst du es über neue Dateien oder willst du bestehende Dateien verändern? in zweiterem fall musst du mit xml-diffs arbeiten, da bestehende xmls nicht ersetzt sondern ergänzt werden)
2. versuchst du es über neue Dateien oder willst du bestehende Dateien verändern? in zweiterem fall musst du mit xml-diffs arbeiten, da bestehende xmls nicht ersetzt sondern ergänzt werden)
if not stated otherwise everything i post is licensed under WTFPL
Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter
I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help
Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter
I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help
-
- Posts: 4664
- Joined: Mon, 6. Sep 04, 17:24
Gibt es irgendwo eine Liste mit den ganzen "<>" cues, cue, action, add, diff und was es da noch alles gibt, wofür sie gut sind, was ich wann brauche, was sie machen, wie sie Verschachtelt sein müssen usw.?
Ich fordere mehr und vorallem gerechtere Verteilung von Keksen und Süßkram für die "Magischen 20"! Daher wählen Sie jetzt die DPFGKV, die Deutsche Partei für gerechtere Keks - Verteilung!
diese Dateien sind im Spiel mitgeliefert, beinhalten die entsprechende Dokumentation und enden auf .xsd - ich hab vor längerer Zeit nen paket mit allen verfügbaren angelegt, zu finden hier: http://ubuntuone.com/23zTOAse4OkgAjk2ZPIcLL
if not stated otherwise everything i post is licensed under WTFPL
Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter
I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help
Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter
I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help
-
- Posts: 4664
- Joined: Mon, 6. Sep 04, 17:24
am besten geht das ganze auch mit nem geeigneten Editor, ich verwende derzeit xmlcopyedit (unterstützt auto-vervollständigung), Notepad++ geht auch, Eclipse ist in der hinsicht luxus pur, aber für meinen geschmack ein wenig zu bloated, hier nen tuto zur einrichtung (allerdings auf Englisch): http://forum.egosoft.com/viewtopic.php?t=355986 - wichtig ist für alle Programme nur, dass du in der 2. Zeile die richtige xsd angibst (z.B. <aiscript xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="infobroker.ai" xsi:noNamespaceSchemaLocation="aiscripts.xsd"> ) damit das jeweilige Programm weiss, welche es verwenden muss..
if not stated otherwise everything i post is licensed under WTFPL
Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter
I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help
Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter
I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help
-
- Posts: 1244
- Joined: Fri, 8. Nov 13, 22:35
Ich verwende instanzierte cues nur sehr selten und sicher.
Aber was würde hier passieren?
Frage 1:
Wird davon nur eine Instanz angelegt, wenn die condition erfüllt ist oder floode ich den md alle 0,2 Sekunden mit neuen Instanzen?
___________________________________________
Frage 2:
Was passiert wenn man das Ganze am Ende auch noch resettet?
Aber was würde hier passieren?
Frage 1:
Wird davon nur eine Instanz angelegt, wenn die condition erfüllt ist oder floode ich den md alle 0,2 Sekunden mit neuen Instanzen?
Code: Select all
<cue name="A" instantiate="true" checkintervall="0.2s">
<conditions>
<check_value value="true"/>
</conditions>
</cue>
Frage 2:
Was passiert wenn man das Ganze am Ende auch noch resettet?
Code: Select all
<cue name="A" instantiate="true" checkintervall="0.2s">
<conditions>
<check_value value="true"/>
</conditions>
<actions>
<reset_cue cue="this"/>
</actions>
</cue>
Frage 1: Intance wird IMMER erstellt sofern conditions erfüllt sind, in diesem Fall ad infinitum mit evtl. CTD.
Frage 2: Das gibt nen komischen loop was nicht gewollt sein kann (auch hier womöglich ein CTD), eine instace resetten get aber nicht, den diese "existiert" in diesem Sinne gar nicht, da es "nur" eine Kopie (instance) ist.
Ein reset ist nur dann "logisch" wenn man den reset manuell erzwingen will.
MFG
Ketraar
Frage 2: Das gibt nen komischen loop was nicht gewollt sein kann (auch hier womöglich ein CTD), eine instace resetten get aber nicht, den diese "existiert" in diesem Sinne gar nicht, da es "nur" eine Kopie (instance) ist.
Ein reset ist nur dann "logisch" wenn man den reset manuell erzwingen will.
MFG
Ketraar
... hat zwar nicht direkt ´was mit XR zutun (eher mit TC), aber kann´s sein, dass man am "besten" die instantiate-funktion nur bei events nutzt ?? (& zwar dann ohne delay)
// z.B. wenn etwas zerstört / gekapert wird, dann führt man etwas code für´s {event.object} aus & das war´s dann ...
... alles andere würd´ ich mit anderweitig konstruierten loops (nämlich per <reset_cue cue="{cuename}"/> in ´nem zeitverzögertem sub-cue) umsetzen (imho)
// z.B. wenn etwas zerstört / gekapert wird, dann führt man etwas code für´s {event.object} aus & das war´s dann ...
... alles andere würd´ ich mit anderweitig konstruierten loops (nämlich per <reset_cue cue="{cuename}"/> in ´nem zeitverzögertem sub-cue) umsetzen (imho)
Kommt darauf an, geht eigentlich gut mit allem. Beispiel in der Schatzsuche, da wo man zufällig die Bojen anfliegen muss ist besser mit instance geregelt als mit reset. Kostet viel weniger Code und ist mit ner simplen Variable geregelt.
Bei instance ist nur wichtig zu merken das die nicht enden, also conditions setzten die endlich oder restriktiv sind. Beispiel eine bestimmte Anzahl Objekte in einer Gruppe abzählen oder Sektorwechsel.
Klar sind event conditions recht gut, aber auch hier gibts welche die oft zutreffen, da also auch aufpassen. Manchmal ist aber nicht ein event "zur Hand" oder geeignet.
Manuelles reset ist gut für einfach Sachen, die sich wiederholen, speziell bei einem Objekt oder Gruppe. Aber für komplexere Dinge, wie mehrere Optionen und/oder variablen ist instace viel simpler und besser geeignet als quer durch die ganzen checks und filtern zu müssen, das kann schnell mal unübersichtlich werden.
Es empfiehlt sich hier mal die Plotcodes (auch von TC) nach solchen Beispielen zu suchen und analysieren wie das in den Fällen gehandhabt wird um ein besseres Bild zu erhalten.
MFG
Ketraar
PS.: auch wenn viel in Rebirth anders ist im MD als in TC/AP, die Logik wie es funktioniert ist im großen die Selbe, kann also viel von da interpretiert werden.
Bei instance ist nur wichtig zu merken das die nicht enden, also conditions setzten die endlich oder restriktiv sind. Beispiel eine bestimmte Anzahl Objekte in einer Gruppe abzählen oder Sektorwechsel.
Klar sind event conditions recht gut, aber auch hier gibts welche die oft zutreffen, da also auch aufpassen. Manchmal ist aber nicht ein event "zur Hand" oder geeignet.
Manuelles reset ist gut für einfach Sachen, die sich wiederholen, speziell bei einem Objekt oder Gruppe. Aber für komplexere Dinge, wie mehrere Optionen und/oder variablen ist instace viel simpler und besser geeignet als quer durch die ganzen checks und filtern zu müssen, das kann schnell mal unübersichtlich werden.
Es empfiehlt sich hier mal die Plotcodes (auch von TC) nach solchen Beispielen zu suchen und analysieren wie das in den Fällen gehandhabt wird um ein besseres Bild zu erhalten.
MFG
Ketraar
PS.: auch wenn viel in Rebirth anders ist im MD als in TC/AP, die Logik wie es funktioniert ist im großen die Selbe, kann also viel von da interpretiert werden.
Bin gerade an dem selben Versuch dran.UniTrader wrote:diese 3 Felder im content-Node werden meinem verständnis nach benutzt, wenn kein Eintrag für die aktuelle Sprache im <text>-Node gefunden wurdeCode: Select all
name"" ? description="" ? author="" ?
du solltest zudem unbedingt das save-attribut und wenn du eh dabei bist gleich noch das enabled-Attribut im content-Node erwähnen
und gleich eine Frage von meiner seite, auch wenn es momentan eher ein AIScript betrifft (sind ja zum glück ähnlich): wie setze ich eine Globale Variable? ich müsste nämlich eine Gruppe von Schiffen global speichern, um von einer art "manager"-AIScript Schiffe darin einfügen zu können bzw. welche daraus entfernen. dieses AIScript läuft allerdings nicht permanent sondern wird bei bedarf aufgerufen, aber die Liste/Gruppe muss im Spielstand erhalten bleiben.
Hintergrund der sache: ich will die move.die so umbiegen, dass die Schiffe nicht einfach despawnt werden sondern ne zeit lang im Uni verweilen und währenddessen von anderen Scripts/Missionen zur verwendung angefordert werden können, statt für den jeweiligen zweck extra Schiffe zu Spawnen und zu Despawnen
Versuche move.die Schiffe dazu zu bringen sich in Twilight Sentinel gegenseitig zu verkloppen um so etwas wie eine Art Krieg zwischen Plutarch, DeVries und Omicron zu erzeugen.
Habe das ganze (nachdem ich den UFO code studiert habe) so gelöst bekommen.
Code: Select all
<do_if value="$byjump or $bydock or $byhighway or $byhostile or $byidle">
<debug_text text="'MoveDie just sent ' + this.ship + ' to the War Zone'" chance="$debugoutputchance" />
<run_script name="'move.undock'" />
<signal_objects object="player.primaryship" param="'move_die_ship_found'" param2="this.ship" />
</do_if>
Code: Select all
<cue name="SendShipsToWar" instantiate="true" namespace="this">
<conditions>
<check_all>
<event_object_signalled object="player.primaryship" param="'move_die_ship_found'" />
</check_all>
</conditions>
<actions>
<set_value name="$oWarShip" exact="event.param2" />
(Die Abfrage funktioniert aber beim ausführen des scripts um die Schiffe nach Twilight Sentinel zu schicken funktioniert immernoch irgendwas nicht.) Bleibt nur Code ändern, Spiel neu starten, Debug Log, test (hab ne NPC Arawn in nem save im Bau, sprich jeder test dauert ~10-20 minuten ._.)
Zumindest die Schiffs abfrage funktioniert, da er mir nen einfachen show_help befehl ausgibt bei jedem erstellten move.die ship
Auf diese Weise wird halt jedes Schiff direkt angesprochen, allerdings gespeichert werden Sie dann doch nicht.
Codeschinpsel zu überprüfen ist recht schwierig, da der Fehler iwo sein kann. Generell würde ich so vorgehen, sicherstellen alle variablen werden richtig erkannt und ergeben das was sie sollen. Wenn das alles passt schauen was ausgeführt wird, hier mal nur vereinzelt teile nutzen und schauen welche funktionieren.
Schreibfehler oder xml Fehler suchen (arbeitest mit Schema, dann werden diese angezeigt).
Sonst halt mal den ganzen relevanten code bereit stellen. (wenn länger bitte Datei verlinken)
MFG
Ketraar
Schreibfehler oder xml Fehler suchen (arbeitest mit Schema, dann werden diese angezeigt).
Sonst halt mal den ganzen relevanten code bereit stellen. (wenn länger bitte Datei verlinken)
MFG
Ketraar
Nein nein da kommt noch viel mehrJonfersonSDD wrote:... kann es sein, dass du im unteren code ein <do_all>...</do_all> vergessen hast ??
// falls da noch weitere zeilen code im <action/>-block kommen
das letzte problem war, dass ich das <set_value> im do_if hatte, dass noch gar nicht geschaltet wurde, so wusste mein md natürlich nicht auf welches Objekt das Script im do_else gestartet werden kann. Hatte aber dann auch keine Lust nochmal zu testen. Heute Abend vielleicht.
Viel mehr würde mich interessieren was für conditions man setzen könnte um zu prüfen ob der Plot bereits abgeschlossen ist.
<event_cue_completed cue="md.Plot_ep1_ch3.Part8" /> hat auf jedenfall nicht funktioniert (bzw. funktioniert wohl nur wenn der Plot noch aktiv ist und dann zu irgendeinem Zeitpunkt in dem der Cue schon auf seine conditions wartet abgeschlossen wird.)
[Das ist meine erste Modifikation für ein X Spiel und meine gesammelten Kenntnisse beziehen sich bis jetzt auf das studieren von anderen Mods, bereits vorhandenen Skripten in den .cats + .dats und natürlich den Dokumentationen hier im Forum.
Im Prinzip klau ich also meinen gesammten Code hier und da zusammen xD]
Edit: Solved
Ich hab eine Frage zu den delays:
Ich möchte, dass 2 Nachrichten hintereinander auf dem Bildschirm ausgegeben werden. Ich hab mir dazu Yorricks Sensor Sweep gekrallt und das so modifiziert:
Allerdings funktioniert das so nicht... Muss ich bei der Syntax nochwas beachten oder mit: <event_cue_completed cue="parent"/> arbeiten?
Ich möchte, dass 2 Nachrichten hintereinander auf dem Bildschirm ausgegeben werden. Ich hab mir dazu Yorricks Sensor Sweep gekrallt und das so modifiziert:
Code: Select all
<actions>
[Stuff...]
<show_notification caption="'Sensor Report'" details="'Keine herrenlosen Schiffe gefunden'" timeout="5s"/>
[more Stuff...]
</actions>
<delay exact="7s"/>
<actions>
[even more Stuff]
<show_notification caption="'Handelscomputer'" details="'Angebote wurden aktualisiert'" timeout="5s"/>
[Stuff]
</actions>
You want Split?