|
StarCraft II Inhalte
|
|
|||||||
| Registrieren | Hilfe | Benutzerliste | Kalender | Avatare | Banliste | Clanforum anfordern | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
![]() |
|
|
Themen-Optionen | Ansicht |
|
|
#1
|
|
Ei
Registriert seit: Jun 2004
Beiträge: 8
|
Paralleles Ausführen Mehrerer trigger
![]() ![]() ich weiß bereits, dass jeder trigger bei seiner ausführung einen Thread darstellt, der quasi parallel zu den anderen triggern läuft. Nun hab ich folgendes Problem: Ich habe Trigger A und während seiner ausführung soll Trigger B (oder Aktionsblock B, weil es kein ereignis gibt) gestartet werden. Nun soll aber Trigger A Parallel zu B weiterlaufen. In der Praxis wird jedoch A solange pausiert, bis B fertig ist. Gibt es eine möglichkeit dies zu umgehen? |
|
|
|
|
|
#2 |
|
WBF
Registriert seit: Apr 2003
Beiträge: 191
|
außer bei queues oder ungünstig platzierten waits /wait fors kann ich mir eigentlich kein szenarion vorstellen bei dem die trigger nicht parallel ablaufen könnten.
poste doch mal deinen code (screenshots oder so) von beiden triggern.
__________________
(OutsiderXE's Blog: gaming, mapping & writing since 2007 Der Lord der Clans - Die Buchumsetzung englische Version (Link 1), deutsche Version (Link 1) Der Tag des Drachen - Die Buchumsetzung: englische Version (Link 1), (Link 2), deutsche Version (Link 1) Der letzte Wächter - Die Buchumsetzung: englische Version (Link 1), deutsche Version (Link 1) |
|
|
|
|
|
#3 |
|
Maps
Registriert seit: Mai 2006
Ort: in Seenähe
BNet-Account: Ahli
Beiträge: 718
|
In sc2 können Treads nicht parallel ablaufen.
Man kann zwar mehrere Threads starten, aber diese werden nacheinander abgearbeitet. Durch waits kann abgewechselt werden, welcher Thread gerade läuft. Waits verschieben die Ausführung des weiteren Codes um einige Takte im Spiel (die Milisekundenangabe könnte man also mit ner Auslöser-Takt-Angabe austauschen... es war glaube 1/32 als kürzestes... da am besten Küken fragen). Auslöser die weiter oben in der Liste stehen, werden vor denen ausgeführt, die dadrunter stehen, soweit ich das bisher bemerkt habe. Ich tippe, dass das in SC2 so läuft, ist, dass es wesentlich einfacher ist das Spiel synchron auf allen Computern ablaufen zu lassen. SC2 sollte aber in anderen Bereichen des Spiels von mehreren Kernen profitieren.
__________________
meine Diablo1 map ![]() Ahli: hab nie wc3 gemappt :S bin glatt von scbw zu sc2 Tomura: oh muzzel: OH |
|
|
|
|
|
#4 |
|
Maps
Registriert seit: Jul 2007
Beiträge: 451
|
Was Ahli sagt ist korrekt. Der kürzeste Takt, den SC2-Trigger verarbeiten können liegt in der Tat bei 1/32 oder 0.03125, diesen erreicht man über einen Wait von 0 Sekunden. Jeder Wert über Null resultiert in einem 1/16 oder größerem Takt.
Ich würde vorschlagen, du erklärst mal dein spezifisches Problem; auch wenn parallele Threads keine Option sind, gibt es vielleicht eine alternative Lösung.
__________________
There's no spark. No light in the dark. |
|
|
|
|
|
#5 |
|
Ei
Registriert seit: Jun 2004
Beiträge: 8
|
Ich hab das Problem jetzt umgehen können, indem ich meinen trigger B nicht mehr durch A starten lies, sondern durch ein bestimmtes ereignis, welches ein bestimmtes Verhalten auslöste.
Das Ursprüngliche Problem war etwas falsch von mir Formuliert. Trigger A ruft eine Selbstkreierte Aktion auf, wie viele Waits enthält, wäre B ein anderen Trigger gewesen, wäre das Problem mittels Parameter nicht Warten lösbar .Aber vielen Dank zu der Info mit den Taktraten |
|
|
|
![]() |
|
||||||
| Themen-Optionen | |
| Ansicht | |
|
|


