Thema: Rucksack
Einzelnen Beitrag anzeigen
Alt 27.10.2011, 00:51   #17 (permalink)
Pfandgiraffe
500 Beiträge1000 Beiträge
 
Benutzerbild von Pfandgiraffe
 
Registriert seit: 16.09.2008
Ort: Berlin
Alter: 38
Beiträge: 1.737
Pfandgiraffe eine Nachricht über ICQ schicken Pfandgiraffe eine Nachricht über Skype™ schicken
Standard

Code:
if (isMultiplayer && isDedicated) exitWith {};
WaitUntil {!isNull player};
player addEventHandler ["Killed", {
    _unit = _this select 0;
    private ['_magazines','_weapons','_backpack','_backpackweap','_backpackmags','_unit'];
    _weapons = weapons _unit;
    _magazines = magazines _unit;
    _backpack = if (!isNull unitBackpack _unit) then {typeOf unitBackpack _unit} else {""};
    if (_backpack != "") then {
        _backpackmags = getMagazineCargo unitBackpack _unit;
        _backpackweap = getWeaponCargo unitBackpack _unit;
        _unit setVariable ["players_bp_content",[_backpack,_backpackweap,_backpackmags]];
    } else {
        _unit setVariable ["players_bp_content",["","",""]];    
    };
    _items = items player;
    _unit setVariable ["players_content",[_weapons,_magazines,_items]];
}];
player addEventHandler ["Respawn", {
    _unit = _this select 0;
    private ['_a_stuff','_unit','_a_bp','_bp','_bpw','_bpm','_pi'];
    removeAllWeapons player;
    removeAllItems player;
    if (!isNull unitBackpack _unit) then {removeBackpack _unit};
    _a_stuff = _unit getVariable "players_content";
    _pw = _a_stuff select 0;
    _pm = _a_stuff select 1;
    _pi = _a_stuff select 2;
    {player addMagazine _x} foreach _pm;
    {player addWeapon _x} foreach _pw;
    {if !(player hasWeapon _x) then {player addWeapon _x}} forEach _pi;
    player selectWeapon (primaryWeapon player);
    _muzzles = getArray(configFile>>"cfgWeapons" >> primaryWeapon player >> "muzzles"); // Fix for weapons with grenade launcher
    player selectWeapon (_muzzles select 0);
    
    _a_bp = _unit getVariable "players_bp_content";
    _bp = _a_bp select 0;
    if(_bp != "") then {
        player addBackpack _bp;
        clearWeaponCargoGlobal (unitBackpack player);
        clearMagazineCargoGlobal (unitBackpack player);
        _bpw = _a_bp select 1;
        _bpm = _a_bp select 2;
        for "_i" from 0 to (count (_bpm select 0) - 1) do {
            (unitBackpack player) addMagazineCargoGlobal [(_bpm select 0) select _i,(_bpm select 1) select _i]
        };
        for "_i" from 0 to (count (_bpw select 0) - 1) do {
            (unitBackpack player) addWeaponCargoGlobal [(_bpw select 0) select _i,(_bpw select 1) select _i]
        };
    };
}];

ja, sorry. war ein kleiner fehler der dann auftrat wenn der spieler keinen rucksack hat. ist gefixt.
__________________
Niemand hat die Absicht eine Tüte zu bauen!
​​​​​​​
___<<<A3 Wounding System>>>___
Pfandgiraffe ist offline