Aktuelle Zeit: Sa 4. Sep 2010, 00:14

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 1 Beitrag ] 
Autor Nachricht
 Betreff des Beitrags: [System] Dialog Item Double Click
BeitragVerfasst: Di 11. Mai 2010, 20:52 
Offline
Staff Projektbetreuung
Staff Projektbetreuung

Registriert: So 12. Jul 2009, 14:17
Beiträge: 85
Wohnort: Nähe von Köln
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.


Dateianhänge:
Dateikommentar: Map mit System
DoubleClickDialogItem.SC2Map [18.94 KiB]
5-mal heruntergeladen

_________________


Zuletzt geändert von Kricz am Di 11. Mai 2010, 21:15.
Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 1 Beitrag ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Optimized by SEO phpBB
Deutsche Übersetzung durch phpBB.de
Starcraft II © Blizzard Entertainment.