Timer Auslöser wird nicht ausgeführt!

SS 2 Forum für Scripte und den Mapeditor.
Antworten
gandalf
Mannschaften
Mannschaften
Beiträge: 11
Registriert: 29.06.2008, 18:07

Timer Auslöser wird nicht ausgeführt!

Beitrag von gandalf »

Hallo!
Auf einer Map kreuzen 3 Schiffe der Gruppe j0 auf. Die sollen dann auf objekte schießen und nach ca 10 min einen Ziehlwächsel vollziehen UN DANN WIEDER NACH NER zEIT feuer einstellen.
Das Problem:
Die Schiffe feuern zwar auf die ersten 3 Objekte ABER der Ziehlwächsel tritt nie ein??

Das Skript lautet folgendermaßen:

more than 1 Units of Group in Location 9
-----------------------------------------------
Set Group j0 into 5
Set Group j0 into 9
start timer 15
let cell c5 contain numer 1


cell c5 is exactly 1
--------------------------------
fire a volley by howitzer j0 into object 1
fire a volley by howitzer j0 into object 2
fire a volley by howitzer j0 into object 3


timer 15 elapsed
---------------------------------
let cell c5 contain number 2
say phrase: Ziehlwächsel!!
exclude this condition


cell c5 is exactly 2
----------------------------------
fire a volley of howizer j0 into object 4
fire a volley of howizer j0 into object 5
fire a volley of howizer j0 into object 6
start timer 16

timer 16 elapsed
---------------------------------
let cell c5 contain numer 3


mit dem letzten Auslöser sollte doch eigentlich die Schiffsartillerie zum Feuern aufhören oder?
Dnke für Antworten!
mfg
-gehtnix-
Oberst (Moderator)
Oberst (Moderator)
Beiträge: 1616
Registriert: 10.09.2007, 11:16

Re: Timer Auslöser wird nicht ausgeführt!

Beitrag von -gehtnix- »

@ gandalf
Stelle mal eine Editor-Datei erneut hier online, die erste "Mission" von dreien wäre interessant, die dritte ist deinen 2x3 Objekte beschießen nachempfunden ...

Das zählen der Variablen ist einmal -> "kleiner als" und einmal -> "exakt" 1 or 2 or 3 ausgeführt, hat nur den Zweck zu zeigen geht mehr wie nur eine Variante. Hier jetzt wird nicht 100% genau gezählt, je nachdem wann die einzelnen Geschütze sich "bemühen" feuern sie auch eine Salve mehr, will man es exakt muss man einen Rücksprung nach jeder Salve einsetzen über den man die Abfrage ob das Maximum erfüllt ist oder nicht ausführt ... muss allerdings hier bei dieser einfachen Form des feuerns wohl nicht sein.

Hast du den Ordner im Editor -> maps.src hinzugefügt, falls nötig ändere die Ordner-Nummer 016 in eine andere freie Nummer, jetzt noch eine Karte generieren und ansehen im Spiel - Sicht kommt von selbst auf "Ziele" und Kreuzer.
Gefeuert wird auf den "Rand" eines "trockenen Feldes", erst eher links dann, nachdem der Objektwechsel eingeblendet wurde (3 Minuten nach beginn der "Mission") eher rechts vom Feld.
Wage umschrieben da die Abweichung des Aribeschußes recht hoch ist.

Erstellt wurde die "Karte" mit RWM 6.71 - kann allerdings überall eingesetzt werden wo das Sommerschema vorhanden ist ...
Dateianhänge
Schiffsari RWM6.71.zip
(72.21 KiB) 212-mal heruntergeladen
gandalf
Mannschaften
Mannschaften
Beiträge: 11
Registriert: 29.06.2008, 18:07

Re: Timer Auslöser wird nicht ausgeführt!

Beitrag von gandalf »

SOOO, bin jetzt auf etwas gaanz entscheidendes draufgekommen zum Thema Variable und Befehl ausführen.
Also Folgendes:

value of cell1 is exactly1
-----------------------------
fire a volley of grouo A0 into object/Zone 1

Die Abfrage des Wertes der Variable C1 erfolgt vom Spiel ca jede sekunde.(Sieht man wenn man einen Text ausgeben lässt) Nun wird die Bedingung bei jeder Abfrage erfüllt und somit die Aktion auch jedesmal ausgeführt.
Bei der Schiffsari/ Ari wird somit jede Sekunde ein Feuerbefehl gegeben solange die Variable c1=1 ist.

Wenn nun die Variable 1Minute lang den Wert 1 hat werden nun 60! Feuerbefehle gegeben und jeder auch gespeichert und ausgeführt. Das entspicht dann bei einer Feuerfrequenz von, angenommen 10sek, einer Feuerdauer von 600sek.=10min

is klar das bei mir die Schiffsartillerie gar nicht mehr aufhörte zu schießen obwohl die Variabel schon längst den Wert geändert hat.
mfg
-gehtnix-
Oberst (Moderator)
Oberst (Moderator)
Beiträge: 1616
Registriert: 10.09.2007, 11:16

Re: Timer Auslöser wird nicht ausgeführt!

Beitrag von -gehtnix- »

@ Nicht so ganz ... stimmt deine eingestellte Spielgeschwindigkeit mit der realen Zeit über ein, dann ist die Schaltzeit eher 2 Sekunden -> nutzt du dann die Variable weiter ist nicht gegeben, dass alle offenen Befehle ausgeführt werden, da das "Programmgedächtnis" in diesem Falle nicht entlos ist ... aber sonst, wie gehabt, ein Satz ohne Ende wird ausgeführt bis zum beenden oder ein Überlauf eintritt.
Die Schiffsari hat fast doppelt so lange Ladezeit, nicht "nur" 10 Sekunden.
Benutzeravatar
Stahlin
Stabsunteroffizier
Stabsunteroffizier
Beiträge: 251
Registriert: 03.01.2009, 12:04

Re: Timer Auslöser wird nicht ausgeführt!

Beitrag von Stahlin »

Möglicherweise liegt ein Fehler hier:

C5 wird auf 1 gestellt, Ari beginnt zu schießen

C5 wird dann auf 2 gestellt, ari sollte nicht mehr schießen, jedoch:

inzwischen könnten erneut (oder immer noch) Einheiten in location 9 sein sodaß C5 wieder auf 1 gestellt wird? Wegen dem exclude... kann c5 nur 1 mal auf 2 gestellt werden. Und das auf 3 stellen wird ebenfalls unterbunden.

Dann müßte es ohne say phrase... und exclude... klappen. Hierfür müßte man dann etwas tricksen.
-gehtnix-
Oberst (Moderator)
Oberst (Moderator)
Beiträge: 1616
Registriert: 10.09.2007, 11:16

Re: Timer Auslöser wird nicht ausgeführt!

Beitrag von -gehtnix- »

@ Stahlin
Deine "Fehler-Analyse" ist völlig richtig, solange es Einheiten der abgefragten Gruppe in Zone 9 gibt wird der Feuerbefehl wiederholt ... C_5 = 2 wird so nie ausgelöst, ebenso dann C_5 = 3 niemals, immer unter der Voraussetzung mindestens 1 x Gruppe "y" befindet sich in Zone 9, solange timer 15 läuft, ist dieser abgelaufen wird nie mehr weiter geschaltet nach C_5=2 -> C_5=3.
Allerdings tricksen ist nicht nötig, dies geht einfach und "eleganter" zu regeln. Allein durch eine zweite Variable die mit 1 erhöht wird wie jetzt Variable 1 ebenso, pro Feuerbefehl kann diese regeln wie oft dann exakt worauf gefeuert wird... Variable "2" kleiner 3 oder einen anderen beliebigen Wert, dann Variable 1 wieder auf 1 setzen ... Variable 2 exakt 3 dann Variable 1 auf jetzt 3 z.B. um auf neue Ziele zu feuern, bevor dann mit einem größeren Wert der Variablen 1 z.B. exakt 8 ein Sprung erfolgt der diese Variable ins leere laufen läßt z.B. erhöhe Wert auf 100 ... es gibt soviele variable Möglichkeiten etwas zu regeln da möcht ich nicht anfangen alles durch zu gehen ...

dachte mit:
aber sonst, wie gehabt, ein Satz ohne Ende wird ausgeführt bis zum beenden oder ein Überlauf eintritt.
wäre schon verstanden, hier endet was begonnen wurde ...

Was nicht unterschätzt werden darf ist die Schaltzeit für die Ari, diese bringt schnell einen Konflikt zustande, wird vor dem abarbeiten die Variable weiter verwendet für andere Aufgaben.
Antworten

Zurück zu „Sudden Strike 2 Mapeditor / Scripte“