Erstellt Abzeichen (Insignium), die ähnlich der squad.xml-Patches auf der Schulter der Spieler oder KI angezeigt werden. Diese können per Poppy oder Script zugewiesen werden.

Bildbearbeitung

Beispiel für Unit Insignia
Beispiel für die Anwendung von Insignien im Spiel.

Erstelle mit einem Bildbearbeitungsprogramm eine .PNG-Datei mit folgenden Eigenschaften:

  • 24bit-Farbtiefe und Transparenz.
  • Die Bildgröße muss quadratisch sein und die Seitenlänge eine 2er-Potenz. Es bieten sich z.B. 512x512 oder 1024x1024 Pixel an.
  • Das eigentliche Bild sollte etwas weniger „bunt” sein, als du es im Spiel haben willst (Arma macht die Farben knalliger).
  • Es sollte keine halbtransparenten Ränder geben (das ergibt im Spiel weiße Ränder).
  • Der Dateiname darf nicht mit einer Zahl beginnen und sollte auf _CO enden.

Speichere das Bild ab und wandele es mit ImageToPaa in eine .PAA-Textur um. Lege diese in deinem Missionsordner in einem Unterordner Insignia ab.

Einbindung in die Mission

Die Abzeichen müssen über die CfgUnitInsignia entweder in der Mission oder einer Mod konfiguriert werden. In einer Mission funktioniert das folgendermaßen:

Erstelle im Missionsverzeichnis eine Datei mit dem Namen CfgUnitInsignia.hpp Öffne die description.ext und füge dort ein:

class CfgUnitInsignia{
  #include "CfgUnitInsignia.hpp"
}

Schließe die description.ext und öffne die CfgUnitInsignia.hpp. Für jedes einzelne Abzeichen muss ein eigener Config-Eintrag erstellt werden. Benutze dabei folgende Vorlage:

class BeispielName {
  displayName = "Beispiel Name"; // Name, der im Arsenal angezeigt wird. Was natürlich nur in der lokalen Mission geht.
  author = "[W] Deinname"; // Autor, der im Arsenal angezeigt wird.
  texture = "insignia\BEISPIEL_CO.paa"; // Pfad zum Bild, relativ zum Missionspfad
  textureVehicle = "insignia\BEISPIEL_CO.paa"; // Pfad zum Bild auf Fahrzeugen. Tut zwar noch nichts, aber, was nicht ist, kann ja noch werden.
};

Zuweisung in Loadouts

In der CfgLoadouts von Poppy kann jedem Loadout mit insignia[] = {"BeispielName"} ein Abzeichen zugewiesen werden.

ACHTUNG!

Diese werden, stand Juli 2017, nicht automatisch zugewiesen! Damit das Abzeichen im Spiel angezeigt wird, füge in die initPlayerLocal.sqf folgenden Code ein:

[] spawn {
    sleep 5;
    [player, getArray (missionConfigFile >> "CfgLoadouts" >> ([player] call Poppy_fnc_selectLoadout) >> "insignia")] call poppy_fnc_replaceInsignia;
};

Zuweisung an KI-Einheiten

Die Zuweisung an KI-Einheiten funktioniert am einfachsten mithilfe eines Klassen-EventHandlers in der initServer.sqf

["Classname_KI_Einheit", "init", {
  [(_this select 0),"BeispielName"] call BIS_fnc_setUnitInsignia);
},true, [], true] call CBA_fnc_addClassEventHandler;

Ersetze Classname_KI_Einheit Durch den Klassennamen der KI oder durch eine Basisklasse, von der alle entsprechenden KI-Einheiten erben (z.B. B_Soldier_base) Ersetze BeispielName durch den Klassennamen deiner Abzeichen.

Verwendete Befehle

Tags: archiv