Files
DayZ-Epoch/SQF/dayz_code/compile/player_packVault.sqf
ebaydayz 4bd9a9aa0b Update public variables
It makes no sense to rename the identical DayZ PVs to have an E in their
name. I don't see any good reason it was done in the first place. All it
accomplishes is breaking script compatibility between the two mods and
requiring different publicvariable.txt filters. The only time it makes
sense is for custom Epoch variables that aren't used in vanilla.

All admins have to do to update custom scripts is swap the names
according to the change log.

Note I've submitted a pull request to replace PVDZ_veh_Save with
PVDZ_obj_Save in official too because they are duplicates.
2016-03-18 21:39:22 -04:00

123 lines
3.8 KiB
Plaintext

/*
[_obj] spawn player_packVault;
*/
private ["_activatingPlayer","_obj","_ownerID","_objectID","_objectUID","_alreadyPacking","_location1","_location2","_dir","_pos","_bag","_holder","_weapons","_magazines","_backpacks","_objWpnTypes","_objWpnQty","_countr","_packedClass","_text","_playerNear"];
if(DZE_ActionInProgress) exitWith { cutText [(localize "str_epoch_player_15") , "PLAIN DOWN"]; };
DZE_ActionInProgress = true;
_activatingPlayer = player;
_obj = _this;
_packedClass = getText (configFile >> "CfgVehicles" >> (typeOf _obj) >> "packedClass");
_text = getText (configFile >> "CfgVehicles" >> (typeOf _obj) >> "displayName");
// Silently exit if object no longer exists
if(isNull _obj || !(alive _obj)) exitWith { DZE_ActionInProgress = false; };
_playerNear = _obj call dze_isnearest_player;
if(_playerNear) exitWith { DZE_ActionInProgress = false; cutText [(localize "str_epoch_player_16") , "PLAIN DOWN"]; };
_ownerID = _obj getVariable["CharacterID","0"];
_objectID = _obj getVariable["ObjectID","0"];
_objectUID = _obj getVariable["ObjectUID","0"];
player removeAction s_player_packvault;
s_player_packvault = 1;
if(_objectID == "0" && _objectUID == "0") exitWith {DZE_ActionInProgress = false; s_player_packvault = -1; cutText [format[(localize "str_epoch_player_118"),_text], "PLAIN DOWN"];};
if((_ownerID != dayz_combination) && (_ownerID != dayz_playerUID)) exitWith { DZE_ActionInProgress = false; s_player_packvault = -1; cutText [format[(localize "str_epoch_player_119"),_text], "PLAIN DOWN"];};
_alreadyPacking = _obj getVariable["packing",0];
if (_alreadyPacking == 1) exitWith {DZE_ActionInProgress = false; s_player_packvault = -1; cutText [format[(localize "str_epoch_player_120"),_text] , "PLAIN DOWN"]};
_obj setVariable["packing",1];
cutText [format[(localize "str_epoch_player_121"),_text], "PLAIN DOWN"];
uiSleep 1;
_location1 = getPosATL player;
uiSleep 5;
_location2 = getPosATL player;
if(_location1 distance _location2 > 0.1) exitWith {
cutText [format[(localize "str_epoch_player_122"),_text] , "PLAIN DOWN"];
_obj setVariable["packing",0];
s_player_packvault = -1;
DZE_ActionInProgress = false;
};
_dir = direction _obj;
_pos = _obj getVariable["OEMPos",(getposATL _obj)];
if(!isNull _obj && alive _obj) then {
[1,1] call dayz_HungerThirst;
player playActionNow "Medic";
[player,"tentpack",0,false] call dayz_zombieSpeak;
uiSleep 3;
_weapons = getWeaponCargo _obj;
_magazines = getMagazineCargo _obj;
_backpacks = getBackpackCargo _obj;
// Remove from database
PVDZ_obj_Destroy = [_objectID,_objectUID,_activatingPlayer];
publicVariableServer "PVDZ_obj_Destroy";
// Set down vault "take" item
_bag = createVehicle [_packedClass,_pos,[], 0, "CAN_COLLIDE"];
// Delete original
deleteVehicle _obj;
_bag setdir _dir;
_bag setposATL _pos;
player reveal _bag;
// Empty weapon holder
_holder = _bag;
// add seed item
_itemOut = getText(configFile >> "CfgVehicles" >> _packedClass >> "seedItem");
_countOut = 1;
_holder addMagazineCargoGlobal[_itemOut, _countOut];
//Add weapons
_objWpnTypes = _weapons select 0;
_objWpnQty = _weapons select 1;
_countr = 0;
{
_holder addweaponcargoGlobal [_x,(_objWpnQty select _countr)];
_countr = _countr + 1;
} count _objWpnTypes;
//Add Magazines
_objWpnTypes = _magazines select 0;
_objWpnQty = _magazines select 1;
_countr = 0;
{
_holder addmagazinecargoGlobal [_x,(_objWpnQty select _countr)];
_countr = _countr + 1;
} count _objWpnTypes;
//Add Backpacks
_objWpnTypes = _backpacks select 0;
_objWpnQty = _backpacks select 1;
_countr = 0;
{
_holder addbackpackcargoGlobal [_x,(_objWpnQty select _countr)];
_countr = _countr + 1;
} count _objWpnTypes;
cutText [format[(localize "str_epoch_player_123"),_text], "PLAIN DOWN"];
player action ["Gear", _holder];
};
s_player_packvault = -1;
DZE_ActionInProgress = false;