Jump to content

[Release] WPD's Action Menu (Deploy Vehicle/View Distance/Color Filters/Self Bloodbag/Suicide/Flip Vehicle)


Recommended Posts

  • 1 month later...

Hi got it all working apart from the donator box   do i use my steam ID or the old player ID from arma 2 player profiles

 

Player UID: In the ActionMenu_main.sqf you'll see a player ID section at the top, delete mine and replace it with yours so you can have access to the donator menu.

 

 

 

many thanks

 

keith 

Link to comment
Share on other sites

  • 1 month later...
  • 4 weeks later...

The revert can be avoided by puting some kind of loop in the code. Such as a while loop that will redo the change every so often to counteract the revert.

@Nox or anyone really.. Could someone please tell me how to add this "loop"? What exactly do I add to the code to make it loop?

 

Thanks!

Link to comment
Share on other sites

@Nox or anyone really.. Could someone please tell me how to add this "loop"? What exactly do I add to the code to make it loop?

 

Thanks!

 

Information on loops: https://community.bistudio.com/wiki/Control_Structures

The main one you would be concerned with is a while loop. You just need to loop the code every so often until a player disables it. So just have a boolean variable that toggles when the option is selected and when it gets to the code that changes the weather or whatever you are modifying, set it to loop every few seconds or minutes.

Link to comment
Share on other sites

  • 2 weeks later...

need help I have no idea what to do with the

 

while {CONDITION} do                      <---------do I put the 1000.sqf here?

{

 STATEMENT;                                   <--------do I put setviewdistance 1000; and bis_fog = 0; here?

};

 

if someone can make a example so that I can just change the code where the view and fog is that would be great.

 

P.S new with this stuff

Link to comment
Share on other sites

  • 1 month later...
  • 3 weeks later...

How can I prepare addon to this scripts. I added  this code and edited from Infistar and its works but after change new cloths, ppl dont have Menu Action...

And I want backpack block because after backpack disappear...

if (isNil "adminskinz") then {adminskinz = 0;};
		if (adminskinz == 0) then
		{
			_formatLine = "[dayz_playerUID,dayz_characterID,'%1'] spawn player_humanityMorph;
			adminSkin_wardrobe = player addAction [(""<t color=""""#ff8810"""">"" + (""Wardrobe"") +""</t>""),""ca\modules\MP\data\scriptCommands\moveIn.sqf"",
			""Driver (call adminSkin_helper);"",5,false,false,"""",""""];";
			wardrobe =
			[
				["",true],
					["VIP", [2], "#USER:WardrobeDayZ", -5, [["expression", ""]], "1", "1"],
					["CiV", [3], "#USER:WardrobeCustom", -5, [["expression", ""]], "1", "1"],
					["Read First!", [4],  "", -5, [["expression", format[EXECscript1,"strojinfo.sqf"]]], "1", "1"],
					["", [-1], "", -5, [["expression", ""]], "1", "0"],
					["Exit", [13], "", -3, [["expression", ""]], "1", "1"]
			];
			WardrobeCustom =
			[
				["",true],
					["Asano", [2],  "", -5, [["expression", format[_formatLine,"Ry_PMC"]]], "1", "1"],
					["EuroMan 1", [3],  "", -5, [["expression", format[_formatLine,"CIV_EuroMan01_EP1"]]], "1", "1"],
					["EuroMan 2", [4],  "", -5, [["expression", format[_formatLine,"CIV_EuroMan02_EP1"]]], "1", "1"],
					["Takistani (sweater)", [6],  "", -5, [["expression", format[_formatLine,"TK_CIV_Takistani01_EP1"]]], "1", "1"],
					["Worker (Green)", [7],  "", -5, [["expression", format[_formatLine,"Worker3"]]], "1", "1"],
					["Citizen (blue)", [8],  "", -5, [["expression", format[_formatLine,"Citizen2_EP1"]]], "1", "1"],
					["Citizen (gray)", [9],  "", -5, [["expression", format[_formatLine,"Citizen3_EP1"]]], "1", "1"],
					["Worker (red)", [10],  "", -5, [["expression", format[_formatLine,"TK_CIV_Worker01_EP1"]]], "1", "1"],
					["Worker (brown)", [11],  "", -5, [["expression", format[_formatLine,"TK_CIV_Worker02_EP1"]]], "1", "1"],
					["Takistani (hat)", [12],  "", -5, [["expression", format[_formatLine,"TK_CIV_Takistani03_EP1"]]], "1", "1"],
					["", [-1], "", -5, [["expression", ""]], "1", "0"],
					["Exit", [13], "", -3, [["expression", ""]], "1", "1"]
			];
			WardrobeDayZ =
			[
				["",true],
					["Contractor Ry", [1],  "", -5, [["expression", format[_formatLine,"Ry_PMC"]]], "1", "1"],
					["Contractor CIV", [2],  "", -5, [["expression", format[_formatLine,"CIV_Contractor2_BAF"]]], "1", "1"],
					["Contractor Elman", [3],  "", -5, [["expression", format[_formatLine,"Soldier_Bodyguard_AA12_PMC"]]], "1", "1"],
					["Contractor Helm", [4],  "", -5, [["expression", format[_formatLine,"Soldier_Pilot_PMC"]]], "1", "1"],
					["Contractor Dixon", [5],  "", -5, [["expression", format[_formatLine,"Dixon_PMC"]]], "1", "1"],
					["", [-1], "", -5, [["expression", ""]], "1", "0"],
					["Exit", [13], "", -3, [["expression", ""]], "1", "1"]
			];
			adminskinz = 1;
			adminSkin_wardrobe = player addAction [("<t color=""#ff8810"">" + ("Stroje") +"</t>"),"ca\modules\MP\data\scriptCommands\moveIn.sqf",
			"Driver (call adminSkin_helper);",5,false,false,"",""];
			adminSkin_helper = {showCommandingMenu "#USER:wardrobe";};
		}
		else
		{
			player removeAction adminSkin_wardrobe;
			adminskinz = 0;
		};
	};
Link to comment
Share on other sites

When i deploy these vehicles I get in them and they blow up and kill me, any ideas?

For anyone else having this problem, here is the fix. (This is explained in super details/steps for people like me who want to know EXACTLY what to do and not rely on common scripting sense.)

In your Mission.pbo go to the "init" folder, then open "variable.sqf".

-----------------------------------------------------------------------------------

Mission.pbo>init>variable.sqf <--- (same as above just no words) :D

 

Then change this code:

    DZE_safeVehicle = ["ParachuteWest","ParachuteC"]; 

TO

    DZE_safeVehicle = ["ParachuteWest","ParachuteC","Old_bike_TK_CIV_EP1"];

Your bike name may be different, but this is the one that this script uses. (WPD's Action Menu)

If your motercycle/gyro are doing the same thing, add them to the list like the bike.

Like this:

    DZE_safeVehicle = ["ParachuteWest","ParachuteC","Old_bike_TK_CIV_EP1","INSERT VEHICLE NAME HERE","INSERT VEHICLE NAME HERE"];

If you don't know your bike name/vehicle's name, try browsing the script for a name. If that's too hard and you have infistar, just unpack the bike and click insert on it and look at the bottom left of your screen and in grey it should say the vehicle name.

I'm sure there are way easier ways of finding the name, but hey..it's a solution.

Link to comment
Share on other sites

  • 5 weeks later...
  • 3 weeks later...
  • 1 month later...
  • 2 months later...

to fix packing from any distance add this to the pack.sqf in the tools folder.

 

------------replace at line 16

 

if(_typeOfCursorTarget == "CSJ_GyroC" ) then {

 

----with

 

if(_typeOfCursorTarget == "CSJ_GyroC" && (player distance cursorTarget <10)) then {

 

-------------at line 43 replace

 

if(_typeOfCursorTarget == "TT650_Civ") then {

 

----with

 

if(_typeOfCursorTarget == "TT650_Civ" && (player distance cursorTarget <10)) then {

 

----------at line 69

 

if(_typeOfCursorTarget == "Old_bike_TK_CIV_EP1") then {

 

----with

 

if(_typeOfCursorTarget == "Old_bike_TK_CIV_EP1" && (player distance cursorTarget <10)) then {

Link to comment
Share on other sites

  • 4 weeks later...

hi there,

got an odd problem, since I installed single coin with storage (3.0) and Adv Traders (1.1)

the action menu after a few days vanished don't get the option in the scroll any more,

 

if I add my UID at the top bit of code                   //if ((getPlayerUID player) in ["99999999999999999"]) then {
                                                                            Actionmenu =
                                                                            [

 

it works again, but only for me

Link to comment
Share on other sites

Step 7:

 

Open init/server_functions.sqf and replace this:

if(vehicle _x != _x && !(vehicle _x in PVDZE_serverObjectMonitor) && (isPlayer _x) && !((typeOf vehicle _x) in DZE_safeVehicle)) then {

...with this:

if(vehicle _x != _x && !(vehicle _x in PVDZE_serverObjectMonitor) && (isPlayer _x) && !((typeOf vehicle _x) in DZE_safeVehicle) && (vehicle _x getVariable ["MalSar",0] !=1)) then {
 
This is not in my server functions. What do I do?
Link to comment
Share on other sites

Here it is:

waituntil {!isnil "bis_fnc_init"};

 
BIS_MPF_remoteExecutionServer = {
if ((_this select 1) select 2 == "JIPrequest") then {
[nil,(_this select 1) select 0,"loc",rJIPEXEC,[any,any,"per","execVM","ca\Modules\Functions\init.sqf"]] call RE;
};
};
 
BIS_Effects_Burn = {};
server_playerLogin = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerLogin.sqf";
server_playerSetup = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerSetup.sqf";
server_onPlayerDisconnect = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_onPlayerDisconnect.sqf";
server_updateObject = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_updateObject.sqf";
server_playerDied = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerDied.sqf";
server_publishObj = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_publishObject.sqf";
server_deleteObj = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_deleteObj.sqf";
server_swapObject = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_swapObject.sqf"; 
server_publishVeh = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_publishVehicle.sqf";
server_publishVeh2 = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_publishVehicle2.sqf";
server_publishVeh3 = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_publishVehicle3.sqf";
server_tradeObj = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_tradeObject.sqf";
server_traders = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_traders.sqf";
server_playerSync = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerSync.sqf";
server_spawnCrashSite  =     compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_spawnCrashSite.sqf";
server_spawnEvents = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_spawnEvent.sqf";
//server_weather = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_weather.sqf";
fnc_plyrHit   = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\fnc_plyrHit.sqf";
server_deaths = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerDeaths.sqf";
server_maintainArea = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_maintainArea.sqf";
 
/* PVS/PVC - Skaronator */
server_sendToClient = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_sendToClient.sqf";
 
//onPlayerConnected {[_uid,_name] call server_onPlayerConnect;};
onPlayerDisconnected {[_uid,_name] call server_onPlayerDisconnect;};
 
"PVDZE_veh_Colour" addPublicVariableEventHandler {
private["_position","_worldspace","_fuel","_key","_colour","_colour2","_object","_objectID","_PUID","_clrinit","_clrinit2","_pname","_name"];
_object = ((_this select 1) select 0);
_colour = ((_this select 1) select 1);
_colour2 = ((_this select 1) select 2);
 
_clrinit = format ["#(argb,8,8,3)color(%1)",_colour];
_clrinit2 = format ["#(argb,8,8,3)color(%1)",_colour2];
_object setVehicleInit "this setObjectTexture [0,"+str _clrinit+"];";
_object setVehicleInit "this setObjectTexture [1,"+str _clrinit2+"];";
 
                processInitCommands;
 
_object setVariable["Colour",_colour,true];
_object setVariable["Colour2",_colour2,true];
 
_name = getText(configFile >> "cfgVehicles" >> (typeOf _object) >> "displayName");
_PUID = ((_this select 1) select 3);
_pname = ((_this select 1) select 4);
 
diag_log format ["VEHICLE PAINT: Player %1 (%2) has painted a %3!",_pname,_PUID,_name];
 
_position = getPosATL _object;
 
_worldspace = [
round(direction _object),
_position,
_colour,
_colour2
];
 
_fuel = 0;
_fuel = fuel _object;
 
_objectID = _object getVariable ["ObjectID","0"];
 
_key = format["CHILD:305:%1:%2:%3:",_objectID,_worldspace,_fuel];
_key call server_hiveWrite;
};
server_updateNearbyObjects = {
private["_pos"];
_pos = _this select 0;
{
[_x, "gear"] call server_updateObject;
} count nearestObjects [_pos, dayz_updateObjects, 10];
};
 
server_handleZedSpawn = {
private["_zed"];
_zed = _this select 0;
_zed enableSimulation false;
};
 
zombie_findOwner = {
private["_unit"];
_unit = _this select 0;
#ifdef DZE_SERVER_DEBUG
diag_log ("CLEANUP: DELETE UNCONTROLLED ZOMBIE: " + (typeOf _unit) + " OF: " + str(_unit) );
#endif
deleteVehicle _unit;
};
 
vehicle_handleInteract = {
private["_object"];
_object = _this select 0;
needUpdate_objects = needUpdate_objects - [_object];
[_object, "all"] call server_updateObject;
};
 
array_reduceSizeReverse = {
private["_array","_count","_num","_newarray","_startnum","_index"];
_array = _this select 0;
_newarray = [];
_count = _this select 1;
_num = count _array;
if (_num > _count) then {
_startnum = _num - 1;
_index = _count - 1;
for "_i" from 0 to _index do {
_newarray set [(_index-_i),_array select (_startnum - _i)];
};
_array = _newarray;
}; 
_array
};
 
array_reduceSize = {
private ["_array1","_array","_count","_num"];
_array1 = _this select 0;
_array = _array1 - ["Hatchet_Swing","Machete_Swing","Fishing_Swing","sledge_swing","crowbar_swing","CSGAS"];
_count = _this select 1;
_num = count _array;
if (_num > _count) then {
_array resize _count;
};
_array
};
 
object_handleServerKilled = {
private["_unit","_objectID","_objectUID","_killer"];
_unit = _this select 0;
_killer = _this select 1;
 
_objectID = _unit getVariable ["ObjectID","0"];
_objectUID = _unit getVariable ["ObjectUID","0"];
 
[_objectID,_objectUID,_killer] call server_deleteObj;
 
_unit removeAllMPEventHandlers "MPKilled";
_unit removeAllEventHandlers "Killed";
_unit removeAllEventHandlers "HandleDamage";
_unit removeAllEventHandlers "GetIn";
_unit removeAllEventHandlers "GetOut";
};
 
check_publishobject = {
private["_allowed","_object","_playername"];
 
_object = _this select 0;
_playername = _this select 1;
_allowed = false;
 
if ((typeOf _object) in dayz_allowedObjects) then {
//diag_log format ["DEBUG: Object: %1 published by %2 is Safe",_object, _playername];
_allowed = true;
};
    _allowed
};
 
//event Handlers
eh_localCleanup = {
private ["_object"];
_object = _this select 0;
_object addEventHandler ["local", {
if(_this select 1) then {
private["_type","_unit"];
_unit = _this select 0;
_type = typeOf _unit;
_myGroupUnit = group _unit;
  _unit removeAllMPEventHandlers "mpkilled";
  _unit removeAllMPEventHandlers "mphit";
  _unit removeAllMPEventHandlers "mprespawn";
  _unit removeAllEventHandlers "FiredNear";
_unit removeAllEventHandlers "HandleDamage";
_unit removeAllEventHandlers "Killed";
_unit removeAllEventHandlers "Fired";
_unit removeAllEventHandlers "GetOut";
_unit removeAllEventHandlers "GetIn";
_unit removeAllEventHandlers "Local";
clearVehicleInit _unit;
deleteVehicle _unit;
if ((count (units _myGroupUnit) == 0) && (_myGroupUnit != grpNull)) then {
deleteGroup _myGroupUnit;
};
//_unit = nil;
// diag_log ("CLEANUP: DELETED A " + str(_type) );
};
}];
};
 
server_hiveWrite = {
private["_data"];
_data = "HiveExt" callExtension _this;
};
 
server_hiveReadWrite = {
private["_key","_resultArray","_data"];
_key = _this;
_data = "HiveExt" callExtension _key;
_resultArray = call compile format ["%1",_data];
_resultArray
};
 
server_hiveReadWriteLarge = {
private["_key","_resultArray","_data"];
_key = _this;
_data = "HiveExt" callExtension _key;
_resultArray = call compile _data;
_resultArray
};
 
server_checkIfTowed = {
private ["_vehicle","_player","_attached"];
if (DZE_HeliLift) then {
_vehicle = _this select 0;
_player = _this select 2;
_attached = _vehicle getVariable["attached",false];
if (typeName _attached == "OBJECT") then {
_player action ["eject", _vehicle];
detach _vehicle;
_vehicle setVariable["attached",false,true];
_attached setVariable["hasAttached",false,true];
};
};
};
 
server_characterSync = {
private ["_characterID","_playerPos","_playerGear","_playerBackp","_medical","_currentState","_currentModel","_key"];
_characterID = _this select 0;
_playerPos = _this select 1;
_playerGear = _this select 2;
_playerBackp = _this select 3;
_medical = _this select 4;
_currentState = _this select 5;
_currentModel = _this select 6;
 
_key = format["CHILD:201:%1:%2:%3:%4:%5:%6:%7:%8:%9:%10:%11:%12:%13:%14:%15:%16:",_characterID,_playerPos,_playerGear,_playerBackp,_medical,false,false,0,0,0,0,_currentState,0,0,_currentModel,0];
_key call server_hiveWrite;
};
 
if(isnil "dayz_MapArea") then {
dayz_MapArea = 10000;
};
if(isnil "DynamicVehicleArea") then {
DynamicVehicleArea = dayz_MapArea / 2;
};
 
// Get all buildings && roads only once TODO: set variables to nil after done if nessicary 
MarkerPosition = getMarkerPos "center";
RoadList = MarkerPosition nearRoads DynamicVehicleArea;
 
// Very taxing !!! but only on first startup
BuildingList = [];
{
if (DZE_MissionLootTable) then {
if (isClass (missionConfigFile >> "CfgBuildingLoot" >> (typeOf _x))) then
{
BuildingList set [count BuildingList,_x];
};
} else {
if (isClass (configFile >> "CfgBuildingLoot" >> (typeOf _x))) then
{
BuildingList set [count BuildingList,_x];
};
};
 
 
} count (MarkerPosition nearObjects ["building",DynamicVehicleArea]);
 
spawn_vehicles = {
private ["_random","_lastIndex","_weights","_index","_vehicle","_velimit","_qty","_isAir","_isShip","_position","_dir","_istoomany","_veh","_objPosition","_marker","_iClass","_itemTypes","_cntWeights","_itemType","_num","_allCfgLoots"];
 
if (!isDedicated) exitWith { }; //Be sure the run this
 
while {count AllowedVehiclesList > 0} do {
// BIS_fnc_selectRandom replaced because the index may be needed to remove the element
_index = floor random count AllowedVehiclesList;
_random = AllowedVehiclesList select _index;
 
_vehicle = _random select 0;
_velimit = _random select 1;
 
_qty = {_x == _vehicle} count serverVehicleCounter;
 
// If under limit allow to proceed
if (_qty <= _velimit) exitWith {};
 
// vehicle limit reached, remove vehicle from list
// since elements cannot be removed from an array, overwrite it with the last element && cut the last element of (as long as order is not important)
_lastIndex = (count AllowedVehiclesList) - 1;
if (_lastIndex != _index) then {
AllowedVehiclesList set [_index, AllowedVehiclesList select _lastIndex];
};
AllowedVehiclesList resize _lastIndex;
};
 
if (count AllowedVehiclesList == 0) then {
diag_log("DEBUG: unable to find suitable vehicle to spawn");
} else {
 
// add vehicle to counter for next pass
serverVehicleCounter set [count serverVehicleCounter,_vehicle];
 
// Find Vehicle Type to better control spawns
_isAir = _vehicle isKindOf "Air";
_isShip = _vehicle isKindOf "Ship";
 
if(_isShip || _isAir) then {
if(_isShip) then {
// Spawn anywhere on coast on water
waitUntil{!isNil "BIS_fnc_findSafePos"};
_position = [MarkerPosition,0,DynamicVehicleArea,10,1,2000,1] call BIS_fnc_findSafePos;
//diag_log("DEBUG: spawning boat near coast " + str(_position));
} else {
// Spawn air anywhere that is flat
waitUntil{!isNil "BIS_fnc_findSafePos"};
_position = [MarkerPosition,0,DynamicVehicleArea,10,0,2000,0] call BIS_fnc_findSafePos;
//diag_log("DEBUG: spawning air anywhere flat " + str(_position));
};
 
 
} else {
// Spawn around buildings && 50% near roads
if((random 1) > 0.5) then {
 
waitUntil{!isNil "BIS_fnc_selectRandom"};
_position = RoadList call BIS_fnc_selectRandom;
 
_position = _position modelToWorld [0,0,0];
 
waitUntil{!isNil "BIS_fnc_findSafePos"};
_position = [_position,0,10,10,0,2000,0] call BIS_fnc_findSafePos;
 
//diag_log("DEBUG: spawning near road " + str(_position));
 
} else {
 
waitUntil{!isNil "BIS_fnc_selectRandom"};
_position = BuildingList call BIS_fnc_selectRandom;
 
_position = _position modelToWorld [0,0,0];
 
waitUntil{!isNil "BIS_fnc_findSafePos"};
_position = [_position,0,40,5,0,2000,0] call BIS_fnc_findSafePos;
 
//diag_log("DEBUG: spawning around buildings " + str(_position));
 
};
};
// only proceed if two params otherwise BIS_fnc_findSafePos failed && may spawn in air
if ((count _position) == 2) then { 
 
_dir = round(random 180);
 
_istoomany = _position nearObjects ["AllVehicles",50];
if((count _istoomany) > 0) exitWith { diag_log("DEBUG: Too many vehicles at " + str(_position)); };
 
//place vehicle 
_veh = createVehicle [_vehicle, _position, [], 0, "CAN_COLLIDE"];
            if(_vehicle in DZE_StripAmmo) then { _veh setVehicleAmmo 0 }; 
_veh setdir _dir;
_veh setpos _position;
 
if(DZEdebug) then {
_marker = createMarker [str(_position) , _position];
_marker setMarkerShape "ICON";
_marker setMarkerType "DOT";
_marker setMarkerText _vehicle;
};
 
// Get position with ground
_objPosition = getPosATL _veh;
 
clearWeaponCargoGlobal  _veh;
clearMagazineCargoGlobal  _veh;
// _veh setVehicleAmmo DZE_vehicleAmmo;
 
// Add 0-3 loots to vehicle using random cfgloots 
_num = floor(random 4);
_allCfgLoots = ["trash","civilian","food","generic","medical","military","policeman","hunter","worker","clothes","militaryclothes","specialclothes","trash"];
 
for "_x" from 1 to _num do {
_iClass = _allCfgLoots call BIS_fnc_selectRandom;
 
_itemTypes = [];
if (DZE_MissionLootTable) then{
{
_itemTypes set[count _itemTypes, _x select 0]
} count getArray(missionConfigFile >> "cfgLoot" >> _iClass);
}
else {
{
_itemTypes set[count _itemTypes, _x select 0]
} count getArray(configFile >> "cfgLoot" >> _iClass);
};
 
_index = dayz_CLBase find _iClass;
_weights = dayz_CLChances select _index;
_cntWeights = count _weights;
 
_index = floor(random _cntWeights);
_index = _weights select _index;
_itemType = _itemTypes select _index;
_veh addMagazineCargoGlobal [_itemType,1];
//diag_log("DEBUG: spawed loot inside vehicle " + str(_itemType));
};
 
[_veh,[_dir,_objPosition],_vehicle,true,"0"] call server_publishVeh;
};
};
};
 
spawn_ammosupply = {
private ["_position","_veh","_istoomany","_marker","_spawnveh","_WreckList"];
if (isDedicated) then {
_WreckList = ["Supply_Crate_DZE"];
waitUntil{!isNil "BIS_fnc_selectRandom"};
_position = RoadList call BIS_fnc_selectRandom;
_position = _position modelToWorld [0,0,0];
waitUntil{!isNil "BIS_fnc_findSafePos"};
_position = [_position,5,20,5,0,2000,0] call BIS_fnc_findSafePos;
if ((count _position) == 2) then {
 
_istoomany = _position nearObjects ["All",5];
 
if((count _istoomany) > 0) exitWith { diag_log("DEBUG VEIN: Too many at " + str(_position)); };
 
_spawnveh = _WreckList call BIS_fnc_selectRandom;
 
if(DZEdebug) then {
_marker = createMarker [str(_position) , _position];
_marker setMarkerShape "ICON";
_marker setMarkerType "DOT";
_marker setMarkerText str(_spawnveh);
};
 
_veh = createVehicle [_spawnveh,_position, [], 0, "CAN_COLLIDE"];
_veh enableSimulation false;
_veh setDir round(random 360);
_veh setpos _position;
_veh setVariable ["ObjectID","1",true];
};
};
};
 
DZE_LocalRoadBlocks = [];
 
spawn_roadblocks = {
private ["_position","_veh","_istoomany","_marker","_spawnveh","_WreckList"];
_WreckList = ["SKODAWreck","HMMWVWreck","UralWreck","datsun01Wreck","hiluxWreck","datsun02Wreck","UAZWreck","Land_Misc_Garb_Heap_EP1","Fort_Barricade_EP1","Rubbish2"];
 
waitUntil{!isNil "BIS_fnc_selectRandom"};
if (isDedicated) then {
 
_position = RoadList call BIS_fnc_selectRandom;
 
_position = _position modelToWorld [0,0,0];
 
waitUntil{!isNil "BIS_fnc_findSafePos"};
_position = [_position,0,10,5,0,2000,0] call BIS_fnc_findSafePos;
 
if ((count _position) == 2) then {
// Get position with ground
 
_istoomany = _position nearObjects ["All",5];
 
if((count _istoomany) > 0) exitWith { diag_log("DEBUG: Too many at " + str(_position)); };
 
waitUntil{!isNil "BIS_fnc_selectRandom"};
_spawnveh = _WreckList call BIS_fnc_selectRandom;
 
if(DZEdebug) then {
_marker = createMarker [str(_position) , _position];
_marker setMarkerShape "ICON";
_marker setMarkerType "DOT";
_marker setMarkerText str(_spawnveh);
};
 
_veh = createVehicle [_spawnveh,_position, [], 0, "CAN_COLLIDE"];
_veh enableSimulation false;
 
_veh setDir round(random 360); // Randomize placement a bit
_veh setpos _position;
 
_veh setVariable ["ObjectID","1",true];
};
 
};
 
};
 
spawn_mineveins = {
private ["_position","_veh","_istoomany","_marker","_spawnveh","_positions"];
 
if (isDedicated) then {
 
_position = [getMarkerPos "center",0,(HeliCrashArea*0.75),10,0,2000,0] call BIS_fnc_findSafePos;
 
if ((count _position) == 2) then {
 
_positions = selectBestPlaces [_position, 500, "(1 + forest) * (1 + hills) * (1 - houses) * (1 - sea)", 10, 5];
 
_position = (_positions call BIS_fnc_selectRandom) select 0;
 
// Get position with ground
_istoomany = _position nearObjects ["All",10];
 
if((count _istoomany) > 0) exitWith { diag_log("DEBUG VEIN: Too many objects at " + str(_position)); };
 
if(isOnRoad _position) exitWith { diag_log("DEBUG VEIN: on road " + str(_position)); };
 
_spawnveh = ["Iron_Vein_DZE","Iron_Vein_DZE","Iron_Vein_DZE","Iron_Vein_DZE","Iron_Vein_DZE","Silver_Vein_DZE","Silver_Vein_DZE","Silver_Vein_DZE","Gold_Vein_DZE","Gold_Vein_DZE"] call BIS_fnc_selectRandom;
 
if(DZEdebug) then {
_marker = createMarker [str(_position) , _position];
_marker setMarkerShape "ICON";
_marker setMarkerType "DOT";
_marker setMarkerText str(_spawnveh);
};
 
//diag_log("DEBUG: Spawning a crashed " + _spawnveh + " with " + _spawnloot + " at " + str(_position));
_veh = createVehicle [_spawnveh,_position, [], 0, "CAN_COLLIDE"];
_veh enableSimulation false;
 
// Randomize placement a bit
_veh setDir round(random 360);
_veh setpos _position;
 
_veh setVariable ["ObjectID","1",true];
 
 
};
};
};
 
if(isnil "DynamicVehicleDamageLow") then {
DynamicVehicleDamageLow = 0;
};
if(isnil "DynamicVehicleDamageHigh") then {
DynamicVehicleDamageHigh = 100;
};
 
if(isnil "DynamicVehicleFuelLow") then {
DynamicVehicleFuelLow = 0;
};
if(isnil "DynamicVehicleFuelHigh") then {
DynamicVehicleFuelHigh = 100;
};
 
if(isnil "DZE_DiagFpsSlow") then {
DZE_DiagFpsSlow = false;
};
if(isnil "DZE_DiagFpsFast") then {
DZE_DiagFpsFast = false;
};
if(isnil "DZE_DiagVerbose") then {
DZE_DiagVerbose = false;
};
 
dze_diag_fps = {
if(DZE_DiagVerbose) then {
diag_log format["DEBUG FPS : %1 OBJECTS: %2 : PLAYERS: %3", diag_fps,(count (allMissionObjects "")),(playersNumber west)];
} else {
diag_log format["DEBUG FPS : %1", diag_fps];
};
};
 
// Damage generator function
generate_new_damage = {
private ["_damage"];
    _damage = ((random(DynamicVehicleDamageHigh-DynamicVehicleDamageLow))+DynamicVehicleDamageLow) / 100;
_damage;
};
 
// Damage generator fuction
generate_exp_damage = {
private ["_damage"];
    _damage = ((random(DynamicVehicleDamageHigh-DynamicVehicleDamageLow))+DynamicVehicleDamageLow) / 100;
 
// limit this to 85% since vehicle would blow up otherwise.
//if(_damage >= 0.85) then {
// _damage = 0.85;
//};
_damage;
};
 
server_getDiff = {
private["_variable","_object","_vNew","_vOld","_result"];
_variable = _this select 0;
_object = _this select 1;
_vNew = _object getVariable[_variable,0];
_vOld = _object getVariable[(_variable + "_CHK"),_vNew];
_result = 0;
if (_vNew < _vOld) then {
//JIP issues
_vNew = _vNew + _vOld;
_object getVariable[(_variable + "_CHK"),_vNew];
} else {
_result = _vNew - _vOld;
_object setVariable[(_variable + "_CHK"),_vNew];
};
_result
};
 
server_getDiff2 = {
private["_variable","_object","_vNew","_vOld","_result"];
_variable = _this select 0;
_object = _this select 1;
_vNew = _object getVariable[_variable,0];
_vOld = _object getVariable[(_variable + "_CHK"),_vNew];
_result = _vNew - _vOld;
_object setVariable[(_variable + "_CHK"),_vNew];
_result
};
 
dayz_objectUID = {
private["_position","_dir","_key","_object"];
_object = _this;
_position = getPosATL _object;
_dir = direction _object;
_key = [_dir,_position] call dayz_objectUID2;
    _key
};
 
dayz_objectUID2 = {
    private["_position","_dir","_key","_element","_vector","_set","_vecCnt","_usedVec"];
    _dir = _this select 0;
    _key = "";
    _position = _this select 1;
 
    if((count _this) == 2) then{
        {
            _x = _x * 10;
            if ( _x < 0 ) then { _x = _x * -10 };
            _key = _key + str(round(_x));
        } count _position;
        _key = _key + str(round(_dir));
    }else{
        _vector = [];
        _usedVec = false;
        {
            _element = _x;
            if(typeName _element == "ARRAY") then{
                _vector = _element;
                if((count _vector) == 2)then{
                    if(((count (_vector select 0)) == 3) && ((count (_vector select 1)) == 3))then{
                            {
                                _x = _x * 10;
                                if ( _x < 0 ) then { _x = _x * -10 };
                                _key = _key + str(round(_x));
                            } count _position;
 
                            _vecCnt = 0;
                            {
                                _set = _x;
                                {
                                    _vecCnt = _vecCnt + (round (_x * 100));
 
                                } foreach _set;
 
                            } foreach _vector;
                            if(_vecCnt < 0)then{
                                _vecCnt = ((_vecCnt * -1) * 3);
                            };
                            _key = _key + str(_vecCnt);
                            _usedVec = true;
                    };
                };
            };
        } count _this;
 
        if!(_usedVec) then{
                {
                    _x = _x * 10;
                    if ( _x < 0 ) then { _x = _x * -10 };
                    _key = _key + str(round(_x));
                } count _position;
                _key = _key + str(round(_dir));
        };
 
 
    };
    _key
};
 
dayz_objectUID3 = {
private["_position","_dir","_key"];
_dir = _this select 0;
_key = "";
_position = _this select 1;
{
_x = _x * 10;
if ( _x < 0 ) then { _x = _x * -10 };
_key = _key + str(round(_x));
} count _position;
_key = _key + str(round(_dir + time));
_key
};
 
dayz_recordLogin = {
private["_key"];
_key = format["CHILD:103:%1:%2:%3:",_this select 0,_this select 1,_this select 2];
_key call server_hiveWrite;
};
 
dayz_perform_purge = {
if(!isNull(_this)) then {
_group = group _this;
_this removeAllMPEventHandlers "mpkilled";
_this removeAllMPEventHandlers "mphit";
_this removeAllMPEventHandlers "mprespawn";
_this removeAllEventHandlers "FiredNear";
_this removeAllEventHandlers "HandleDamage";
_this removeAllEventHandlers "Killed";
_this removeAllEventHandlers "Fired";
_this removeAllEventHandlers "GetOut";
_this removeAllEventHandlers "GetIn";
_this removeAllEventHandlers "Local";
clearVehicleInit _this;
deleteVehicle _this;
if ((count (units _group) == 0) && (_group != grpNull)) then {
deleteGroup _group;
};
};
};
 
dayz_perform_purge_player = {
 
private ["_countr","_backpack","_backpackType","_backpackWpn","_backpackMag","_objWpnTypes","_objWpnQty","_location","_dir","_holder","_weapons","_magazines"];
    diag_log ("Purging player: " + str(_this));
 
if(!isNull(_this)) then {
 
_location = getPosATL _this;
_dir = getDir _this;
 
_holder = createVehicle ["GraveDZE", _location, [], 0, "CAN_COLLIDE"];
_holder setDir _dir;
_holder setPosATL _location;
 
_holder enableSimulation false;
 
_weapons = weapons _this;
_magazines = magazines _this;
 
// find backpack
if(!(isNull unitBackpack _this)) then {
_backpack = unitBackpack _this;
_backpackType = typeOf _backpack;
_backpackWpn = getWeaponCargo _backpack;
_backpackMag = getMagazineCargo _backpack;
 
_holder addBackpackCargoGlobal [_backpackType,1];
 
// add items from backpack 
_objWpnTypes = _backpackWpn select 0;
_objWpnQty = _backpackWpn select 1;
_countr = 0;
{
_holder addWeaponCargoGlobal [_x,(_objWpnQty select _countr)];
_countr = _countr + 1;
} count _objWpnTypes;
 
// add backpack magazine items
_objWpnTypes = _backpackMag select 0;
_objWpnQty = _backpackMag select 1;
_countr = 0;
{
_holder addMagazineCargoGlobal [_x,(_objWpnQty select _countr)];
_countr = _countr + 1;
} count _objWpnTypes;
};
};
 
// add weapons
_holder addWeaponCargoGlobal [_x, 1];
} count _weapons;
 
// add mags
_holder addMagazineCargoGlobal [_x, 1];
} count _magazines;
_group = group _this;
_this removeAllMPEventHandlers "mpkilled";
_this removeAllMPEventHandlers "mphit";
_this removeAllMPEventHandlers "mprespawn";
_this removeAllEventHandlers "FiredNear";
_this removeAllEventHandlers "HandleDamage";
_this removeAllEventHandlers "Killed";
_this removeAllEventHandlers "Fired";
_this removeAllEventHandlers "GetOut";
_this removeAllEventHandlers "GetIn";
_this removeAllEventHandlers "Local";
clearVehicleInit _this;
deleteVehicle _this;
if ((count (units _group) == 0) && (_group != grpNull)) then {
deleteGroup _group;
};
//  _this = nil;
};
 
 
dayz_removePlayerOnDisconnect = {
if(!isNull(_this)) then {
_group = group _this;
_this removeAllMPEventHandlers "mphit";
deleteVehicle _this;
deleteGroup (group _this);
};
};
 
server_timeSync = {
//Send request
private ["_hour","_minute","_date","_key","_result","_outcome"];
    _key = "CHILD:307:";
_result = _key call server_hiveReadWrite;
_outcome = _result select 0;
if(_outcome == "PASS") then {
_date = _result select 1; 
 
if(dayz_fullMoonNights) then {
_hour = _date select 3;
_minute = _date select 4;
//Force full moon nights
_date = [2013,8,3,_hour,_minute];
};
 
setDate _date;
PVDZE_plr_SetDate = _date;
publicVariable "PVDZE_plr_SetDate";
diag_log ("TIME SYNC: Local Time set to " + str(_date));
};
};
 
// must spawn these 
server_spawncleanDead = {
private ["_deathTime","_delQtyZ","_delQtyP","_qty","_allDead"];
_allDead = allDead;
_delQtyZ = 0;
_delQtyP = 0;
{
if (local _x) then {
if (_x isKindOf "zZombie_Base") then
{
_x call dayz_perform_purge;
sleep 0.05;
_delQtyZ = _delQtyZ + 1;
} else {
if (_x isKindOf "CAManBase") then {
_deathTime = _x getVariable ["processedDeath", diag_tickTime];
if (diag_tickTime - _deathTime > 1800) then {
_x call dayz_perform_purge_player;
sleep 0.025;
_delQtyP = _delQtyP + 1;
};
};
};
};
sleep 0.025;
} count _allDead;
if (_delQtyZ > 0 || _delQtyP > 0) then {
_qty = count _allDead;
diag_log (format["CLEANUP: Deleted %1 players && %2 zombies out of %3 dead",_delQtyP,_delQtyZ,_qty]);
};
};
server_cleanupGroups = {
if (DZE_DYN_AntiStuck3rd > 3) then { DZE_DYN_GroupCleanup = nil; DZE_DYN_AntiStuck3rd = 0; };
if(!isNil "DZE_DYN_GroupCleanup") exitWith {  DZE_DYN_AntiStuck3rd = DZE_DYN_AntiStuck3rd + 1;};
DZE_DYN_GroupCleanup = true;
{
if ((count (units _x) == 0) && (_x != grpNull)) then {
deleteGroup _x;
};
sleep 0.001;
} count allGroups;
DZE_DYN_GroupCleanup = nil;
};
 
server_checkHackers = {
if (DZE_DYN_AntiStuck2nd > 3) then { DZE_DYN_HackerCheck = nil; DZE_DYN_AntiStuck2nd = 0; };
if(!isNil "DZE_DYN_HackerCheck") exitWith { DZE_DYN_AntiStuck2nd = DZE_DYN_AntiStuck2nd + 1;};
DZE_DYN_HackerCheck = true;
DZE_DYN_HackerCheck = nil;
};
 
server_spawnCleanFire = {
private ["_delQtyFP","_qty","_delQtyNull","_missionFires"];
_missionFires = allMissionObjects "Land_Fire_DZ";
_delQtyFP = 0;
{
if (local _x) then {
deleteVehicle _x;
sleep 0.025;
_delQtyFP = _delQtyFP + 1;
};
sleep 0.001;
} count _missionFires;
if (_delQtyFP > 0) then {
_qty = count _missionFires;
diag_log (format["CLEANUP: Deleted %1 fireplaces out of %2",_delQtyNull,_qty]);
};
};
server_spawnCleanLoot = {
private ["_created","_delQty","_nearby","_age","_keep","_qty","_missionObjs","_dateNow"];
if (DZE_DYN_AntiStuck > 3) then { DZE_DYN_cleanLoot = nil; DZE_DYN_AntiStuck = 0; };
if(!isNil "DZE_DYN_cleanLoot") exitWith {  DZE_DYN_AntiStuck = DZE_DYN_AntiStuck + 1;};
DZE_DYN_cleanLoot = true;
 
_missionObjs =  allMissionObjects "ReammoBox";
_delQty = 0;
_dateNow = (DateToNumber date);
{
if (!isNull _x) then {
_keep = _x getVariable["permaLoot", false];
if (!_keep) then {
_created = _x getVariable["created", -0.1];
if (_created == -0.1) then{
_x setVariable["created", _dateNow, false];
_created = _dateNow;
}
else {
_age = (_dateNow - _created) * 525948;
if (_age > 20) then{
_nearby = { (isPlayer _x) && (alive _x) } count(_x nearEntities[["CAManBase", "AllVehicles"], 130]);
if (_nearby == 0) then{
deleteVehicle _x;
sleep 0.025;
_delQty = _delQty + 1;
};
};
};
};
};
sleep 0.001;
} count _missionObjs;
if (_delQty > 0) then {
_qty = count _missionObjs;
diag_log (format["CLEANUP: Deleted %1 Loot Piles out of %2",_delQty,_qty]);
};
DZE_DYN_cleanLoot = nil;
};
 
server_spawnCleanAnimals = {
private ["_pos","_delQtyAnimal","_qty","_missonAnimals","_nearby"];
_missonAnimals = entities "CAAnimalBase";
_delQtyAnimal = 0;
{
if (local _x) then {
_x call dayz_perform_purge;
sleep 0.05;
_delQtyAnimal = _delQtyAnimal + 1;
} else {
if (!alive _x) then {
_pos = getPosATL _x;
if (count _pos > 0) then {
_nearby = {(isPlayer _x) && (alive _x)} count (_pos nearEntities [["CAManBase","AllVehicles"], 130]);
if (_nearby==0) then {
_x call dayz_perform_purge;
sleep 0.05;
_delQtyAnimal = _delQtyAnimal + 1;
};
};
};
};
sleep 0.001;
} count _missonAnimals;
if (_delQtyAnimal > 0) then {
_qty = count _missonAnimals;
diag_log (format["CLEANUP: Deleted %1 Animals out of %2",_delQtyAnimal,_qty]);
};
};
 
server_logUnlockLockEvent = {
private["_player", "_obj", "_objectID", "_objectUID", "_statusText", "_status"];
_player = _this select 0;
_obj = _this select 1;
_status = _this select 2;
if (!isNull(_obj)) then {
_objectID = _obj getVariable["ObjectID", "0"];
_objectUID = _obj getVariable["ObjectUID", "0"];
_statusText = "UNLOCKED";
if (_status) then {
[_obj, "gear"] call server_updateObject;
_statusText = "LOCKED";
};
diag_log format["SAFE %5: ID:%1 UID:%2 BY %3(%4)", _objectID, _objectUID, (name _player), (getPlayerUID _player), _statusText];
};
};
 
 
 
currentInvites = [];
publicVariable "currentInvites";
"currentInvites" addPublicVariableEventHandler {publicVariable "currentInvites";};
[]ExecVM"\z\addons\dayz_server\custom\South_Cave.sqf";
[]ExecVM"\z\addons\dayz_server\custom\North_Cave.sqf";
[]ExecVM"\z\addons\dayz_server\custom\Prud_Cave.sqf";

Link to comment
Share on other sites

If I remember right, you do not need to worry about this part.  Just make sure the deployed vehicles are added to your DZE_safeVehicle list in your Variable.SQF.   If you do not have one already, you can find it in your dayz_code.pbo.   Place it wherever you want, and change the call in your init.sqf.  Then you need to add the vehicles at the end of this line in the Variable.SQF

DZE_safeVehicle = ["ParachuteWest","ParachuteC"];

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...