|
|
| Einheiten-Scripte
|
Einheiten-Scripte steuern das Verhalten mobiler Einheiten. Wenn im Befehlsmenü einer Einheit ein
Button angeklickt wird, wird die zugehörige Verhaltensroutine aus dem der Einheit zugeordneten
Einheiten-Script ausgeführt oder ein Status in diesem Script geändert.
Für manche Einheitentypen stehen mehrere Einheiten-Scripte zur Verfügung, die jeder Einheit dieses
Typs bei ihrer Erstellung (Script wird im Konstruktions-Bildschirm ausgewählt) oder manuell
(Einheit selektieren, Befehl "Script ändern") zugewiesen werden können.
Wählt man ein anderes als das Standard-Script, erhält man in der Regel zusätzliche
Steuerungsmöglichkeiten für die Einheit. Die Vielfalt neuer Befehle kann am Anfang verwirrend
sein. Es lohnt sich aber auf jeden Fall, hier möglichst leistungsfähige Scripte zu verwenden,
wie z.B. "Gefechtseinheit (Profi)".
Die mitgelieferte Script-Sprache Moon-C erlaubt versierten Benutzern mit Programmiererfahrung,
eigene Einheiten-Scripte zu erstellen oder bestehende zu verbessern.
Ich habe selber ein paar Einheitenscripte mit den Namenszusatz "Elite" geschrieben ("Elite"
deshalb, weil mir das gut zu den anderen Scriptnamen zu passen schien). Hier die Beschreibung.
|
| Übersicht
|
- Kampfeinheiten halten entspr. ihrer Waffenreichweite Maximalabstand zum Ziel (2 Einstellungen)
- Flieger variieren ihre Angriffsroute bei dynamischem Angriff stärker
- Besserer Positionswechsel, wenn Ziel nicht beschossen werden kann
- Sammelpunkte (werden automatisch, können manuell gesetzt werden)
- Rückzug zum Sammelpunkt, wenn Einheit 33%, 50%, 75% beschädigt ist
- Einheiten kehren nach Reparatur autom. zur letzten Handlung zurück
- Eskorte mit bis zu 10 Schützlingen
- Eskorte bewacht ihren "Schützling" auch tatsächlich und kehrt nach Aufmunitionieren zu ihm zurück
- Patrouillen mit bis zu 10 Zwischenpunkten
- Versorger ordnen sich autom. dem nächsten Versorgungszentrum zu
|
| Beschreibung
|
12.2.1. Starteinstellungen
Kampfeinheiten stehen standardmäßig auf "Gebiet halten" (Bodentruppen) bzw. "Position halten"
(Flugzeuge).
12.2.2. Angriffsabstand "vorsichtig" und "aggressiv" für Kampfeinheiten
- Standard: Keine Anpassung der Entfernung.
- vorsichtig: Fahrzeug nähert sich Gegner bis dieser in Reichweite der am weitesten reichenden Waffe ist.
- aggressiv: Fahrzeug nähert sich Gegner bis er in Reichweite aller Waffen ist.
- Bei den Modi 2 und 3 versucht das Fahrzeug, die Distanz zu halten, d.h. es bewegt sich vom Gegner weg, falls dieser sich nähert, feuert aber währenddessen weiter auf den Gegner, falls in Schußposition.
Potentielle Probleme:
- Das Fahrzeug bewegt sich ggf. genau in entgegengesetzter Richtung vom Gegner weg. Dabei kann es passieren, daß es in unwegsamem Gelände stecken bleibt. In diesem Fall muß es manuell an eine andere Stelle bewegt werden. Da sich der Winkel zum Gegner aber meist ständig ändert, kommt es aber nur selten dazu.
- Betrifft Einheiten, die keinen drehbaren Waffenturmen besitzen, sondern zum Feuern den ganzen Rumpf drehen müssen (z.B. MG-Flieger). Wenn solche Einheiten zu nah am Gegner sind, drehen sie erst ab, um den Zielabstand einzunehmen, drehen sich dann in Feuerstellung und greifen dann erst an. Das kann natürlich ins Auge gehen. In diesem Fall Einstellung "Angr.: Standard" verwenden. Werden solche Einheiten von vornherein mit Angriffsbefehl an die Gegner herangeführt, passiert das nicht.
12.2.3. Verbessertes Angriffsverhalten.
Alle Gefechtseinheiten:
- kehren nach automatischen Angriffen zum Sammelpunkt zurück.
- Kehren nach Reparatur vom Sammelpunkt zur letzten Aktion zurück.
- Kann das Ziel (z.B. aufgrund von Hindernissen oder ungünstiger Position) nicht beschossen werden, bewegt sich die Einheit in der Reihenfolge 1-2-3-4-5-6-7-8 von einem Punkt eines Achtecks, dessen Mittelpunkt das Ziel ist, zum nächsten bis zu einer günstigen Schußposition.
Kampfflieger:
- Bei autom. Angriff wird auf statische Ziele (Gebäude) autom. "dyn. Angriff", auf bewegliche Ziele "stat. Angriff" geflogen. Bei letzterem wird der Abstand zum Gegner auf max. Waffenreichweite gehalten.
- Beim dyn. Angriff wird nicht nur über dem Ziel hin- und hergependelt, sondern nacheinander die Punkte eines Achtecks mit dem Ziel als Mittelpunkt in der Reihenfolge 1,5,2,6,3,7,4,8,5,1,6,2,7,3,8,4 abgeflogen. Zwischendurch wird das Ziel angeflogen.
12.2.4. Patrouille mit bis zu 10 Zwischenpunkten.
- Patrouille kann unterbrochen und zu späterem Zeitpunkt wieder aufgenommen werden. Patrouillenpunkte können per neuem Button komplett gelöscht werden.
- Bei jedem Setzen eines Patrouillenpunktes wird die Liste der Zwischenpunkte bis zum Maximum von 10 Punkten erweitert.
- Um eine komplett neue Route zu legen, muß erst die alte gelöscht werden!
- Zum Setzen eines neuen Patrouillenpunktes Button "Patrouille" klicken, dann Punkt setzen.
12.2.5. Verbesserte Eskorte.
- Fahrzeug greift bevorzugt Angreifer des Schützlings an.
- Eskorte eliminiert erst einen Gegner, bevor es zum ersten übergeht.
- Ist der aktuelle Gegner kein Flugzeug und ein neuerer Angreifer ist eines, wird
- bevorzugt das Flugzeug angegriffen, falls die Bewaffnung das erlaubt.
- Andere Gegner werden nur angegriffen, falls in max. Waffenreichweite x2.
- Flugzeuge kehren nach Aufmunitionierung zum Schützling zurück.
- Bis zu acht Schützlinge (Button "Eskorte" klicken, dann Schützling wählen); stirbt einer, wird der nächste aktiv.
12.2.6. Sammelpunkte.
Für automatische oder manuell angeordnete Rückzüge kann ein Sammelpunkt angegeben werden. Hat eine
Einheit keinen Sammelpunkt, wird ihr automatisch das Ziel des ersten erteilten Move-Befehls bzw.
der Zielpunkt seines Produktionsgebäudes als Sammelpunkt zugewiesen.
12.2.7. Verbesserte Rückzugsfunktion.
- Autom. Rückzug, falls bestimmter Beschädigungsgrad erreicht (66%, 50%, 25%). Hierfür neuen Beschädigungsgrad 66% eingeführt (erhöht Überlebenschancen).
- Flieger landen am Sammelpunkt, falls eingestellter Beschädigungsgrad erreicht.
- Gibt es einen Sammelpunkt, wird dieser angefahren/-geflogen. Gibt es keinen Sammelpunkt, versucht die Einheit zwischen sich und alle Angreifer einen Abstand von 15 Entfernungseinheiten zu bringen.
- Einheit kehrt nach Reparatur zur letzten Tätigkeit zurück
12.2.8. Autom. Zuordnung zu Versorgungszentrum.
Versorger ordnen sich automatisch zum nächsten Versorgungszentrum zu. Funktioniert auch, wenn VZ
erst später gebaut oder zerstört wird.
|
| Script-Übersicht
|
Script: CrackHelicopter.ec(oMP)
Name: "Flugzeug (Elite 1.5)"
Erweiterungen: Bewegung, Angriff, Rückzug, Eskorte, Patrouille, Sammeln.
Script: CrackTank.ec(oMP)
Name: "Gefechtsfahrzeug (Elite 1.4)"
Erweiterungen: Bewegung, Angriff, Rückzug, Eskorte, Patrouille, Sammeln.
Script: CrackSupplier.ec(oMP)
Name: "Versorger (Elite 1.3)"
Erweiterungen: Rückzug, Sammeln, autom. Zuord. zu VZ.
Script: CrackRepairer.ec(oMP)
Name "Instandsetzung (Elite 1.2)"
Erweiterungen: Rückzug, Sammeln, Patrouille.
Script :CrackCivil.ec(oMP)
Name: "Zivileinheit (Elite 1.2)"
Erweiterungen: Rückzug, Sammeln, Patrouille.
|
| Installation
|
12.3.1. Einheiten-Scripte
Die übersetzten, einsatzbereiten Scripte haben die Extension ".ecoMP" (Groß/Klein egal). Sie
gehören in ein Unterverzeichnis "scripts\units" des TMP-Verzeichnisses. Ggf. muß dieses
Verzeichnis neu angelegt werden.
Beispiel: c:\programme\topware\tmp\scripts\units\cracktank.ecoMP
Liste der Scripte:
CrackTank.ecoMP Gefechtsfahrzeuge (Boden)
CrackHelicopter.ecoMP Kampfflugzeuge
CrackSupplier.ecoMP Versorger
CrackRepairer.ecoMP Reparatureinheiten
CrackCivil.ecoMP Zivileinheiten (z.B. Aufklärungssonden)
Anmerkung:
Die Scripte sind außerdem in der Datei elite.wd enthalten. Diese Datei kann alternativ zu den
einzelnen Scripten verwendet werden und muß dazu in das TMP-Verzeichnis oder das Unterverzeichnis
"wdfiles" der TMP-Installation kopiert werden.
12.3.2. Textdateien
Die Textdaten der Scripte (Button-Beschriftungen und Kurzhilfe-Texte) befinden sich in der Datei
elite.lan. Die zugehörigen Quelldateien sind elite.txt und elite.idx. Sie gehört in ein
Unterverzeichnis "language" des TMP-Verzeichnisses. Ggf. muß dieses Verzeichnis neu angelegt
werden.
Beispiel: c:\programme\topware\tmp\language\elite.lan.
|
| Fehlersuche
|
Die Scripte CrackTank.ec und CrackHelicopter.ec enthalten Code zur ausführlichen
Ablauf-verfolgung. Dieser Code ist in Kommentaren geklammert:
/*Trace>>>*/ steht vor dem Beginn des Protokoll-Codes
/*<<<Trace*/ steht nach dem Ende des Protokoll-Codes
Der Protokoll-Code kann komplett ein- und ausgeblendet werden, indem man "/*Trace>>>*/" durch
"/*Trace>>>" und "/*<<<Trace*/" durch "<<<Trace*/" ersetzt, bzw. andersherum.>br>
Bei eingeschalteter Protokollfunktion können nur bestimmte oder alle Script-Funktionen
protokolliert werden. Dazu wird der Button "Protokoll" angeklickt. Folgende Funktionen können
protokolliert werden: Alles, Angriffe, Patrouillen, Eskorten.
Das Protokoll wird auf dem Bildschirm angezeigt, wenn über die Befehlskonsole "display.show 1"
eingegeben wird (die Konsole öffnet man einfach durch Drücken der (Return)- oder (Enter)-Taste).
Gibt man "display.show 0" an, verschwinden die Protokollausgaben.
|
|
|