Jump to content

Lua Code gesucht


Freddo

Recommended Posts

Brauche mal eine Idee ich sehe gerade den Wald vor lauter Bäumen nicht.

 

Trigger: Teile der Koalition in Zone ... löst bei Bodeneinheiten und Flugzeugen etc. in der Zone aus, soweit so gut. Was ich suche ist eine Selektierung „alles was fliegt“ in Zone... oder alles was im Gruppennamen den Begriff xyz irgendwas hat. Ich habe bestimmt hundert Gruppen mit je 4 Flugzeugen die kann ich nicht alle einzeln auflisten aber die Gruppen könnten alle ein Präfix oder sowas bekommen. Jemand eine Idee?

 

Freddo/Pelzfrosch

Module: viel zu viele...

Warte auf: Fulda Gap, MiG-23, xy (4th. Gen RED) und mehr neue und alte Propeller wie P-38, Corsair, DC-3, Transall, Tucano usw.

 

Projekt: OpenFlightSchool -> Thread

Link to comment
Share on other sites

Da brauchst du sowas wie MOOSE für. Such mal nach "Moose SET Group by prefix". Oder du machst einen eigenen LUA Code der durch alle Groups iteriert (For...in Schleife) und filterst einen Prefix heraus und prüfst dann mit Bedingung (If... then).


Edited by shagrat

Shagrat

 

- Flying Sims since 1984 -:pilotfly:

Win 10 | i5 10600K@4.1GHz | 64GB | GeForce RTX 3090 - Asus VG34VQL1B  | TrackIR5 | Simshaker & Jetseat | VPForce Rhino Base & VIRPIL T50 CM2 Stick on 200mm curved extension | VIRPIL T50 CM2 Throttle | VPC Rotor TCS Plus/Apache64 Grip | MFG Crosswind Rudder Pedals | WW Top Gun MIP | a hand made AHCP | 2x Elgato StreamDeck (Buttons galore)

Link to comment
Share on other sites

Nochmal geschaut. Du suchst Moose Set und Filter by prefix.

https://flightcontrol-master.github.io/MOOSE_DOCS_DEVELOP/Documentation/Set.html


Edited by shagrat

Shagrat

 

- Flying Sims since 1984 -:pilotfly:

Win 10 | i5 10600K@4.1GHz | 64GB | GeForce RTX 3090 - Asus VG34VQL1B  | TrackIR5 | Simshaker & Jetseat | VPForce Rhino Base & VIRPIL T50 CM2 Stick on 200mm curved extension | VIRPIL T50 CM2 Throttle | VPC Rotor TCS Plus/Apache64 Grip | MFG Crosswind Rudder Pedals | WW Top Gun MIP | a hand made AHCP | 2x Elgato StreamDeck (Buttons galore)

Link to comment
Share on other sites

vielen Dank, ich werde mir das mal näher anschauen, mit Moose wollte ich mich eh mal beschäftigen. Aber man hat so wenig Zeit... für all das nette Zeug was man da mit basteln kann und dann wieder testen und umbauen muss. In letzter Zeit spiele ich eher MissionEditor statt DCS.

Module: viel zu viele...

Warte auf: Fulda Gap, MiG-23, xy (4th. Gen RED) und mehr neue und alte Propeller wie P-38, Corsair, DC-3, Transall, Tucano usw.

 

Projekt: OpenFlightSchool -> Thread

Link to comment
Share on other sites

vielen Dank, ich werde mir das mal näher anschauen, mit Moose wollte ich mich eh mal beschäftigen. Aber man hat so wenig Zeit... für all das nette Zeug was man da mit basteln kann und dann wieder testen und umbauen muss. In letzter Zeit spiele ich eher MissionEditor statt DCS.
Kenne ich, aber wenn man Moose erstmal verstanden hat, spart es eine Menge Zeit.

Shagrat

 

- Flying Sims since 1984 -:pilotfly:

Win 10 | i5 10600K@4.1GHz | 64GB | GeForce RTX 3090 - Asus VG34VQL1B  | TrackIR5 | Simshaker & Jetseat | VPForce Rhino Base & VIRPIL T50 CM2 Stick on 200mm curved extension | VIRPIL T50 CM2 Throttle | VPC Rotor TCS Plus/Apache64 Grip | MFG Crosswind Rudder Pedals | WW Top Gun MIP | a hand made AHCP | 2x Elgato StreamDeck (Buttons galore)

Link to comment
Share on other sites

  • 1 year later...

lange her, neuer Fall:
Ich suche und bastel aktuell an einer möglichst simplen Lösung für folgendes Problem:
Problem aktuell: Tanker ist auf Station und dreht seine Kreise --> wenn leergelutscht geht er zurück zur Basis und ist wegen RTB dauerhaft aus dem Rennen.
Gesuchte Lösung: Tanker wird leergelutscht und geht zum Rearm Refuel Repair zurück zur Basis und startet erneut. Der Respawn eines neuen Tankers geht zwar auch, aber die Escorten haben dann keine Verbindung mehr zum neuen Tanker weil neuer Name /neue ID. 


Lösungsansatz: weiterer Wegpunkt mit Rearm/Refuel/Repair angelegt,weiterer Wegpunkt für zurück auf Station angelegt, Wegpunktwechsel erstellt. Der Wegpunktwechsel via Flag von Station auf Landeanflug und nach dem erneuten Start zurück zum Orbit klappt prinzipiell und das Ding macht improvisiert manuell getriggert was es soll und würde nun ewig fliegen und nachtanken, zeitgesteuert ist das nicht optimal. Nun sollte das ganze in Abhängigkeit vom Resttreibstoff des Tankers also automatisch passieren. 

Mit der Funktion getFuel()<0.1  bei z.B. 10% Rest im Tank  soll via gesetzter Flag der Wegpunkt gewechselt werden. Über die Advanced Waypoint und Conditions (Lua Zustand) geht das vermutlich nicht. Über das normale Triggermenü als Script habe ich ebenfalls diverse Dinge probiert. Aber nein das will irgendwie auch nicht. Aber Lua ist für mich leider immer noch sowas wie Chinesisch. Beim googlen findet man alte Forumseinträge....
 

if Unit.getByName('Testtanker') and
if Unit.getByName('Testtanker'):getFuel() < 0.6 then
	trigger.action.setUserFlag(2, true)
end
end

-->geht nicht


if
Unit.getByName('Testtanker'):getFuel = 0.7
then
trigger.action.setUserFlag(2)

--->geht auch nicht.

Hier liest bestimmt jemand mit, der das in Null Komma nix ganz easy lösen kann. 
Besten Dank im Voraus.
Freddo


 

Module: viel zu viele...

Warte auf: Fulda Gap, MiG-23, xy (4th. Gen RED) und mehr neue und alte Propeller wie P-38, Corsair, DC-3, Transall, Tucano usw.

 

Projekt: OpenFlightSchool -> Thread

Link to comment
Share on other sites

functon trigger.action.setUserFlag(string flagNum/FlagName, boolean/number userFlagValue )

 

FlagNum/Name ist im Gegensatz zum ME keine Nummer, sondern ein STRING ...
Und du musst wohl in den Advanced WP Option wieder ein Lua construct mit UserFlag einbauen.

Die ME Flags und die UserFlag sind nicht kompatibel, glaube ich zumindest ...
Also die Condition im WP mit LUA-predict (heisst das so ?) versehen.
Ist alles nicht ganz so  einfach 😄

 

number trigger.misc.getUserFlag(string flagNum/FlagName )

if trigger.misc.getUserFlag("2" ) == true then 
    return true
end

return false

 

 

 

und ... baue mal in die IF Anweisungen 

ein trigger.action.outText ein! -- dann siehst du auch sofort, ob du auf dem richtigen Pfad bist !!!!

 

weil ... debuggen von der Mission Scripting Engine ein totaler GRAUS ist !!!!


Edited by caponi

too much ...

 

 

Link to comment
Share on other sites

Ich habe mal schnell eine Version gebastelt, die über Switched Condition die Bedingung mit dem Sprit prüft. Das sollte also unbegrenzt immer wieder funktionieren, wenn der Tanker zwischendurch aufgetankt wurde und später wieder unter den Grenzwert kommt.

 

Es gibt noch ein paar zusätzliche Bedingungen, damit man z.B. über das F10 Funkmenü den aktuellen Treibstoffstand des Tankers ausgegeben bekommt.

 

Etwa 15 Sekunden nach Start der Mission sinkt der Tanker unter den Grenzwert von 59.95% Sprit (bei einem Start-Sprit von 60%) und es gibt eine kleine Text-Ausgabe. Die Werte sind ja ganz leicht dem eigenen Bedarf anzupassen.

 

1 hour ago, caponi said:

Die ME Flags und die UserFlag sind nicht kompatibel, glaube ich zumindest ...

 

Das habe ich einfach testweise mit eingebaut. Eine setUserFlag-Anweisung setzt Flag 2 auf den Wert 1, und eine Once-Condition (ohne jedes Lua) meldet sich eine Sekunde später, wenn die Bedingung "Flag is True, 2" eintritt. Sieht sehr so aus, dass Lua-Flags und die ME-Flags miteinander kompatibel sind und es sich hier um exakt die gleichen Flags handelt.

 

Wobei in Freddos Beispiel oben der 2. Parameter fehlte; das hat bei mir direkt einen CTD ausgelöst, wenn ich das also "Do Script" so ausführe...

 

Korrekt wäre:

 

trigger.action.setUserFlag(2, 1)

 

Tanker_Fuel_Test.miz


Edited by Yurgon
Link to comment
Share on other sites

sehr gut zu wissen, Danke Yurgon ... 👍
 

wobei man mehr UserFlags setzen kann, als das die durch den ME abgefragt werden könnten.

z.b. 

 

trigger.action.setUserFlag("ME109", 1)


Edited by caponi
  • Like 1

too much ...

 

 

Link to comment
Share on other sites

Ganz vielen lieben Dank euch Beiden. Ich werde mir das über die Tage mal anschauen und dann sollte das ja funktionieren. 
Schöne Weihnachten und Gruß aus Hemmingen/Arnum in die unmittelbare Nachbarschaft.

PS: Stammtisch wäre auch mal wieder was, jetzt wo der Kleine nicht mehr ganz so klein ist und meistens tut was er soll.

Module: viel zu viele...

Warte auf: Fulda Gap, MiG-23, xy (4th. Gen RED) und mehr neue und alte Propeller wie P-38, Corsair, DC-3, Transall, Tucano usw.

 

Projekt: OpenFlightSchool -> Thread

Link to comment
Share on other sites

15 hours ago, caponi said:

trigger.action.setUserFlag("ME109", 1)

 

Das finde ich natürlich massiv eleganter als da immer mit nichtssagenden Zahlen zu hantieren. Nice!

 

12 hours ago, Freddo said:

PS: Stammtisch wäre auch mal wieder was, jetzt wo der Kleine nicht mehr ganz so klein ist und meistens tut was er soll.

 

Gerne. 🙂

 

Ich schätze mal Richtung März, April könnte es vielleicht was werden.

Link to comment
Share on other sites

On 12/24/2020 at 1:24 AM, Yurgon said:

 

Das finde ich natürlich massiv eleganter als da immer mit nichtssagenden Zahlen zu hantieren. Nice!

 

Dann hast du aber nur eine umständlichere Variable mit Namen "ME109", also trigger.action.setUserFlag("ME109", 1) statt varME109 = true (oder 1).

trigger.action.setUserFlag brauchst du ja genau, um eine "Variable" mit einem boolean oder Zahlenwert im ME auswerten zu können, ohne eine lua condition zu schreiben.

 

Ich meine es gab eine begrenzte Anzahl UserFlags (999 ?) die im ME genutzt werden können... hmm, wäre mal ein Vorschlag UseFlag im ME mit Namen versehen zu können. 🤔 

Shagrat

 

- Flying Sims since 1984 -:pilotfly:

Win 10 | i5 10600K@4.1GHz | 64GB | GeForce RTX 3090 - Asus VG34VQL1B  | TrackIR5 | Simshaker & Jetseat | VPForce Rhino Base & VIRPIL T50 CM2 Stick on 200mm curved extension | VIRPIL T50 CM2 Throttle | VPC Rotor TCS Plus/Apache64 Grip | MFG Crosswind Rudder Pedals | WW Top Gun MIP | a hand made AHCP | 2x Elgato StreamDeck (Buttons galore)

Link to comment
Share on other sites

18 hours ago, shagrat said:

Dann hast du aber nur eine umständlichere Variable mit Namen "ME109", also trigger.action.setUserFlag("ME109", 1) statt varME109 = true (oder 1).

trigger.action.setUserFlag brauchst du ja genau, um eine "Variable" mit einem boolean oder Zahlenwert im ME auswerten zu können, ohne eine lua condition zu schreiben.

 

Bei einem Flag muss ich mir aber auch keine Gedanken um den Scope machen (im Positiven wie im Negativen), weil die garantiert global sind. Je nachdem wie ich meinen Code strukturiere kann es durchaus von Vorteil sein, die Simulator Scripting Engine Flags speichern zu lassen anstatt mit meinen eigenen Variablen zu hantieren.

 

Aber du hast Recht, dass man mit benannten Flags den Zugriff darauf aus dem Mission Editor verliert.

 

18 hours ago, shagrat said:

Ich meine es gab eine begrenzte Anzahl UserFlags (999 ?) die im ME genutzt werden können... hmm, wäre mal ein Vorschlag UseFlag im ME mit Namen versehen zu können. 🤔 

 

Irgendwer hatte mal ein System zur Nummerierung von Flags vorgestellt, die immer 6-stellig waren IIRC, und bestimmte Stellen standen dann für eine Koalition oder bestimmte Eigenschaften, und erst am Ende wurde numerisch hochgezählt.

 

Ich bin also recht sicher, dass Flags schon seit langen Jahren Werte > 1000 annehmen können.

 

Auf jeden Fall ein fettes +1 für benennbare Flags im ME, das wäre ein super Feature! 👍 

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...