chrisrucksack Posted November 5, 2017 Posted November 5, 2017 Hallo zusammen, für unseren Staffelbetrieb würde ich gerne eine Mission erstellen, in der die Anzahl der KI-Gegner abhängig von der Client-Anzahl ist. Bsp: Drei Spieler gegen X Gegner oder Fünf Spieler gegen Y Gegner, usw. Ich kann via MissionEditor folgende Abfrage kreieren: Tigger Once(Spieler1) -> Unit(Spieler1) in Zone -> Flag1 increase (value+1) Tigger Once(Spieler2) -> Unit(Spieler2) in Zone -> Flag1 increase (value+1) ... Tigger Once (value1) -> Flag is more (value=1) -> Aktion1 ausführen Tigger Once (value2) -> Flag is more (value=2) -> Aktion2 ausführen ... Gibt es noch eine elegantere Abfragemöglichkeit im MissionEditor? Auf eine Eingreifen via COM->F10->Aktionsauswahlliste->Aktion ausführen würde ich gerne verzichten wollen. Da ich mich noch nicht mit dem scripten beschäftigt habe, wie würde so eine Lösung via Script aussehen? Vielen Dank! Bullseye-Training Hardware: TrackIR5 | Buddy-Fox UFC | TM Warthog | Saitek Pro Flight Rudder Pedals | i7-4790k | GTX 980 | 32GB RAM Modules: F/A-18C | A-10C | M-2000C | F-5 Tiger II | UH-1H
Rakuzard Posted November 5, 2017 Posted November 5, 2017 wie würde so eine Lösung via Script aussehen? Kommt drauf an, wie du es haben willst. Wenn du es rein per Script machen willst, dann wird das relativ schnell relativ kompliziert, weil du dann nicht drumrum kommst die Einheiten per Script zu spawnen. Du kannst dir hier als Beispiel das Script aus der Mission vom Deutschen Community-Server anschauen. Da hab ich alles dynamisch gemacht und es ist vorher nix im Missioneditor gesetzt, außer die Spawnpunkte. Eine einfachere Lösung wäre, dass du dir im ME ein paar Gruppen auf late activation setzt. Die Gruppen sollten schon in der Anzahl sein, wie du sie später spawnen lassen willst. Dann kannst du abhängig der Anzahl der Clients die jeweils korrekte Gruppe spawnen. In beiden Fällen brauchst du die Anzahl der Clients... und hier hab ich spontan echt keine gute Idee und mir ist auch keine einfache API Funktion bekannt, die einem genau das gibt. Vielleicht kennt jemand anders hier eine solche Funktion. Aber auch das kann man sich selber schreiben... ;) Ich würde über alle bekannten Spielergruppen iterieren und die Anzahl der existierenden Einheiten zählen. Spontan aus dem Kopf könnte das irgendwie so aussehen... groups = { "clientgroup1", "clientgroup2" } count = 0; for _,_group in pairs(groups) do for _,_unit in pairs(Group.getByName(_group):getUnits()) do count = count +1 end end - Deutsche Tutorials und DCS Gameplay: youtube.com/Rakuzard | raku.yt/discord -
funkyfranky Posted November 5, 2017 Posted November 5, 2017 In MOOSE gibt es dafür eine eigene Klasse AI_BALANCER. Im Wesentlichen drei Zeilen Lua code. Eine um alle Clients zu suchen, eine für das Spawning und eine für's Balancing. Aber das Video erklärt es besser. 1 A warrior's mission is to foster the success of others. i9-12900K | RTX 4090 | 128 GB Ram 3200 MHz DDR-4 | Quest 3 RAT - On the Range - Rescue Helo - Recovery Tanker - Warehouse - Airboss
chrisrucksack Posted November 5, 2017 Author Posted November 5, 2017 Super - danke euch beiden! Das ist genau der Anstoß, den ich gesucht habe. Bullseye-Training Hardware: TrackIR5 | Buddy-Fox UFC | TM Warthog | Saitek Pro Flight Rudder Pedals | i7-4790k | GTX 980 | 32GB RAM Modules: F/A-18C | A-10C | M-2000C | F-5 Tiger II | UH-1H
Recommended Posts