Aus dem Skript habe ich noch unnötiges entfernt. Dabei ist zu beachten, dass wirklich nur die vorhanden gewesene Bewaffnung zugewiesen wird. Verbrauchte Munition wird nicht ergänzt!
Im Anhang auch eine Beispielmission.
Code:
// Weist der neuen Spielfigur nach dem Respawn die vorherige Bewaffnung zu
// (keine volle Neubestückung, sondern exakt die vorhanden gewesene Munition!)
//
// Das Skript ist in der Init.sqf aufzurufen: player execVM "RespawnWaffen.sqf"
if (! local player) exitWith {};
private ["_alterSpieler","_weapons","_magazines","_primW","_muzzles",""];
while {true} do {
_alterSpieler = player; //Sichert die ID der momentanen Spielerfigur
waitUntil {!alive player}; //wartet bis Spielerfigur tot
_weapons = weapons _alterSpieler; //speichert die Waffen der toten Spielfigur
_magazines = magazines _alterSpieler; //speichert die Magazine der toten Spielfigur
waitUntil {alive player}; //wartet bis Spieler neue Figur hat
//removeAllItems player; // entfernt Karte, Kompass usw. des Spielers (deaktiviert)
removeAllWeapons player; // entfernt Waffen und Magazine des Spielers
{player addMagazine _x} forEach _magazines; //lädt die gespeicherten Magazine
{player addWeapon _x} forEach _weapons; //lädt die gespeicherten Waffen
//primäre Waffe aktivieren
_primW = primaryWeapon player;
if (_primW != "") then {
player selectWeapon _primW;
// Falls Waffe einen Granatwerfer hat
_muzzles = getArray(configFile>>"cfgWeapons" >> _primW >> "muzzles");
player selectWeapon (_muzzles select 0);
};
};