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!
Timer Auslöser wird nicht ausgeführt!
Re: Timer Auslöser wird nicht ausgeführt!
@ 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 ...
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) 228-mal heruntergeladen
Re: Timer Auslöser wird nicht ausgeführt!
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.
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
Re: Timer Auslöser wird nicht ausgeführt!
@ 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.
Die Schiffsari hat fast doppelt so lange Ladezeit, nicht "nur" 10 Sekunden.
Re: Timer Auslöser wird nicht ausgeführt!
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.
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.
Re: Timer Auslöser wird nicht ausgeführt!
@ 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:
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.
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:
wäre schon verstanden, hier endet was begonnen wurde ...aber sonst, wie gehabt, ein Satz ohne Ende wird ausgeführt bis zum beenden oder ein Überlauf eintritt.
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.