Moin,
da ich ein wenig mit Dialogen rumgespielt habe und vergeblich eine funktionierende Funktion gefunden (bzw ein Event), welche den Trigger bei einem Doppelklick auf ein Dialog Item laufen lässt, habe ich dieses System hier geschrieben, welches einem genau dieses ermöglicht.
Ich habe es versucht so einfach und benutzerfreundlich wie möglich zu schreiben und ich denke es ist mir gelungen.
Das System ist MPI (Multi-Player-Instanceable) und ist auch schnell eingebaut.
Hier ist ein kleines Beispiel, wie so ein Event aussehen könnte:
Zuerst solltet ihr in eurer Map Initialization diese Funktion aufrufen, welche das System initialisiert.
Ohne diesen Aufruf würde das gesamte System nicht funktionieren. Ich habe die Init als Funktion gemacht, damit nicht noch ein unnötiger Trigger erzeugt wird, welcher die Ladezeit erhöht.
MapInit
Events
Game - Map initialization
Local Variables
Conditions
Actions
Init Double Click Engine()
Um nun einem Trigger ein Doppelklick-Events zuzuschreiben, müsst ihr diesen erstmal erzeugen. Wichtig dabei ist, dass es auch wirklich ein Trigger ist und keine einfache Funktion. Zusätzlich darf dieser Trigger KEIN EVENT haben. Das regelt mein System. Als nächstes solltet ihr in eurem Map-Init-Trigger eine Funktion aufrufen, die dem Trigger für den Doppelklick sozusagen ein Event hinzufügt:
MapInit
Events
Game - Map initialization
Local Variables
Conditions
Actions
Init Double Click Engine()
Register Dialog Item Double Click Event(whichTrigger)
whichTrigger entspricht hier dann eurem Trigger, dem ihr das Event hinzufügen möchtet.
Um nun den Trigger benutzen zu können, sollte eurer Trigger ungefähr so aussehen:
StartDialogButtonsClicked
Events
Local Variables
Clicker = (Triggering player) <Integer>
ClickedButton = (Get last double clicked item of player (Clicker)) <Dialog Item>
Conditions
Actions
Mit der Funktion "Get last double clicked item of player(whichPlayer)" bekommt ihr den letzen doppel-geklickten Dialog-Button des Spielers, welchen ihr angegeben habt.
Zusätzlich habt ihr auch noch die Möglichkeit, die Zeit zwischen den Doppelklicks einzustellen. Diese Variable findet ihr im Unterordner "Configuration Stuff". Ich habe das System jetzt für 8 Spieler eingestellt, solltet ihr mehr brauchen, müsst ihr im Ordner "Private Stuff" den Array von all den Dateien erhöhen. Leider kann man keine Constanten als Array-Index angeben, sonst würde ich das machen...
Das selbe gilt auch für den Array für den Triggerstack (welchen ich auf 5 gesetzt habe (also 5 Double-Click Events)). Ihr findet beide Variablen bei dem Comment "Arrays".
Dies war eigentlich schon alles, was ihr zur Benutzung des Systems wissen müsst.
Unten habe ich die Map mit dem System verlinkt. Vielleicht bastel ich noch nen kleines Beispiel später rein, denke ich aber nicht. Das System wurde von mir getestet und funktioniert einwandfrei.