Okey also,
sollte noch jemand den Dupe fixen wollen hier nochmal gezeigt welcher gemeint ist: https://youtu.be/OrvqHvBIsH8
Auch wenn in dem Video [Pached] steht funktioniert das in Altis Life immer noch aufgrund der ziemlich primitiven Speicherung des Gears.
Ich habe ein wenig umgespielt und jetzt eine für mich annehmbare Lösung gefunden.
Schritt 1:
Man erstellt in der core/fn_setupEVH.sqf 2 neue Einträge und zwar
player addEventHandler ["Put", {_this call life_fnc_onPut}];
player addEventHandler ["Take",{_this call life_fnc_onTake}];
Schritt 2:
Wir erstellen die Datei core/functions/fn_onTake.sqf in welche wir folgendes einfügen.
private _error = params[
["_unit", objNull, [objNull]],
["_container", objNull, [objNull]],
["_item", "", [""]]
];
if (!_error) exitWith {};
[] call life_fnc_playerSkins; // Das playerskins ist optional aber sorgt dafür das die Kleidung erneuert wird beim Sachen aufheben
_unit setVariable ["BackItems",backpackItems _unit];
Schritt 3:
Wir erstellen die Datei core/functions/fn_onPut.sqf in welche wir folgendes einfügen.
#include "..\..\script_macros.hpp"
private _error = params[
["_unit", objNull, [objNull]],
["_container", objNull, [objNull]],
["_item", "", [""]]
];
if (!_error) exitWith {};
if ((typeOf _container) in ["Box_IND_Grenades_F","B_supplyCrate_F"]) then {
private _backpacks = ["B_Bergen_tna_f", "B_Carryall_khk"]; // Hier müssen alle Rucksäcke eingetragen werden die nicht ablegbar sein dürfen
_backItems = _unit getVariable ["BackItems",backpackItems _unit];
if (_item in _backpacks) then {
clearBackpackCargoGlobal _container;
_unit addBackpack _item;
{ _unit addItemToBackpack _x } forEach _backItems;
["Du kannst keine Rucksäcke in Kisten legen.","fast","r"] spawn life_fnc_message; // Wer das script nicht hat einfach mit hint ersetzen
};
};
_unit setVariable ["BackItems",backpackItems _unit];
Alles anzeigen
Schritt 4:
Öffne deine core/functions/fn_inventoryOpened.sqf und füge ganz unten
_unit setVariable ["BackItems",backpackItems _unit]; ein.
Schritt 5:
Füge die neuen Datein in die Functions.hpp ein in der class Functions {
Das war´s soweit ich hoffe ich habe nichts vergessen
Was das Script in onPut.sqf macht ist einfach den reingelegten Rucksack sofort wieder zu löschen und dem Spieler den gleichen Rucksack wieder aufsetzten mit dem gleichen Gear, das einzige was dabei verloren geht sind Rucksäcke in dem Rucksack und alle Aüfsätze von Waffen in dem Rucksack da diese nicht bei backpackItems player mitgespeichert werden.
Schön Tag euch noch,
Larry