ARMA 3 - MISSION EDITING & SCRIPTING Arma 3 Loadout - Classnames
Arma 3 Loadout - Classnames
Quelle: Gametwitter.de Forum | views: 1099

Loadouts und ihre Zuweisungen an die Spieler sind immer ein allwärtiges Thema. Bei der heutigen Variante, die ich hier vorstelle, gehts um die Classnames der Einheiten, welche für die Spieler bereitgestellt sind.

Anstatt über eine addaction Variante gehts auch sehr einfach über die initPlayerLocal.sqf. Eine Datei, soweit in der Mission vorhanden,welche beim jeweiligen Spieler ausgeführt wird.

In meinen Missionen ist es üblich immer Vanilla Einheiten zu nutzen. Dementsprechend frage ich in der initPlayerLocal.sqf ab, welche Einheit der Spieler gewählt hat und weise ihm über ein sogenanntes "switch case" die Grundausrüstung zu. Sollte ich mal eine Einheit vergessen im switch case zu einzubauen, gibts für den Spieler dennoch ein Standardloadout.

Die Classnames können im Editor mit "rechts Klick" auf die Einheit -> Klasse in die Zwischenablage aufzeichnen und dann mit Paste/rechts klick->einfügen in die .sqf kopiert werden. Dies geht auch mit einer ganzen Gruppe.

Zu Empfehlung: Stellt den Spielern noch einige Kisten hin für Munition, Erste-Hilfe-Material etc. zur optionalen Ausrüstung. Da es immer wieder Spieler gibt, die den Spaß auf die Mission kaputt reden müssen, ist es dann doch etwas ruhiger ...

Eintrag in der initPlayerLocal.sqf:

_unit = param [0,objNull,[objNull]];
private _unitType = typeOf _unit;

switch(_unitType) do {

    case "B_Soldier_SL_F" : { [_unit] execVM "UK_MTP_trpfhr.sqf"; };
    case "B_Soldier_GL_F" : { [_unit] execVM "UK_MTP_grenadier.sqf"; };
    case "B_soldier_AT_F" : { [_unit] execVM "UK_MTP_pzabwehr.sqf"; };
    case "B_Soldier_F"    : { [_unit] execVM "UK_MTP_schuetze.sqf"; };
    case "B_soldier_exp_F": { [_unit] execVM "UK_MTP_pionier.sqf"; };
    case "B_HeavyGunner_F": { [_unit] execVM "UK_MTP_mg.sqf"; };
    case "B_medic_F"      : { [_unit] execVM "UK_MTP_medic.sqf"; };
    case "B_Pilot_F"      : { [_unit] execVM "UK_MTP_pilot.sqf"; };
    default {
        //sollte Einheit nicht bekannt sein
        [_unit] execVM "GTscripts\GTloadout\UK\UK_MTP_schuetze.sqf"; 
    };
};

Beispiel der UK_MTP_trpfhr.sqf

if ( hasInterface ) then { waitUntil { ! isNull player AND alive player }; };
params [[ "_unit", objNull,  [ objNull ]]];
if ( isNull _unit ) exitWith {};
if ( ! local _unit ) exitWith {};
_unit = _this select 0;


comment "Add containers";

_unit addItemToUniform "ACE_MapTools";
_unit addItemToBackpack "O_NVGoggles_ghex_F";
for "_i" from 1 to 4 do {_unit addItemToUniform "ACE_CableTie";};
_unit addItemToUniform "ACE_Flashlight_MX991";
_unit addItemToUniform "ACE_IR_Strobe_Item";
_unit addItemToUniform "ACE_EarPlugs";
_unit addItemToUniform "ACRE_SEM52SL";
_unit addItemToUniform "rhs_mag_30Rnd_556x45_M855_Stanag";

for "_i" from 1 to 4 do {_unit addItemToVest "ACE_tourniquet";};
for "_i" from 1 to 4 do {_unit addItemToVest "UK3CB_BAF_9_17Rnd";};
for "_i" from 1 to 2 do {_unit addItemToVest "ACE_Chemlight_HiRed";};
for "_i" from 1 to 2 do {_unit addItemToVest "ACE_Chemlight_HiYellow";};
for "_i" from 1 to 2 do {_unit addItemToVest "UK3CB_BAF_SmokeShellYellow";};
for "_i" from 1 to 3 do {_unit addItemToVest "HandGrenade";};
_unit addItemToVest "UK3CB_BAF_556_30Rnd";

for "_i" from 1 to 6 do {_unit addItemToBackpack "ACE_fieldDressing";};
for "_i" from 1 to 6 do {_unit addItemToBackpack "ACE_elasticBandage";};
_unit addItemToBackpack "ACE_bloodIV_250";
for "_i" from 1 to 4 do {_unit addItemToBackpack "ACE_morphine";};
for "_i" from 1 to 8 do {_unit addItemToBackpack "ACE_packingBandage";};
_unit addItemToBackpack "ACE_personalAidKit";
for "_i" from 1 to 6 do {_unit addItemToBackpack "ACE_quikclot";};
for "_i" from 1 to 8 do {_unit addItemToBackpack "rhs_mag_30Rnd_556x45_M855_Stanag";};
for "_i" from 1 to 2 do {_unit addItemToBackpack "UK3CB_BAF_1Rnd_Smoke_Grenade_shell";};
for "_i" from 1 to 12 do {_unit addItemToBackpack "1Rnd_HE_Grenade_shell";};
for "_i" from 1 to 2 do {_unit addItemToBackpack "1Rnd_SmokeRed_Grenade_shell";};


comment "Add weapons";
_unit addWeapon "UK3CB_BAF_L85A2_UGL";
_unit addPrimaryWeaponItem "UK3CB_BAF_Silencer_L85";
_unit addPrimaryWeaponItem "UK3CB_BAF_LLM_Flashlight_Black";
_unit addPrimaryWeaponItem "RKSL_optic_LDS";
_unit addWeapon "UK3CB_BAF_L131A1";
_unit addWeapon "Binocular";

comment "Add items";
_unit linkItem "ItemMap";
_unit linkItem "ItemCompass";
_unit linkItem "ItemWatch";
_unit linkItem "ItemGPS";

_unit setVariable ["ace_medical_medicClass", 1, true];
_unit setVariable ["ACE_isEOD",0,true];
_unit setVariable ["ACE_IsEngineer",0,true];
if(true)exitwith {};

Eine Kommentarfunktion ist in diesem Blog nicht vorgesehen.
Bei Problemen zum Skript bitte im Gametwitter.de Forum registieren und dort die Kommentarfunktion nutzen.