1.7.5.M1D7

This commit is contained in:
A Clark
2013-01-07 12:45:28 -06:00
parent ef2920120c
commit 944cd01129
33 changed files with 7972 additions and 469 deletions

7442
dayz_code/CfgWorlds.hpp Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -15,7 +15,7 @@ for "_i" from 1 to _meleeNum do {
}; };
player removeWeapon _item; player removeWeapon _item;
if (_item == "MeleeHatchet") then {_item = "ItemHatchet";};
_bag = createVehicle [format["WeaponHolder_%1",_item],getPosATL player,[], 0, "CAN_COLLIDE"]; _bag = createVehicle [format["WeaponHolder_%1",_item],getPosATL player,[], 0, "CAN_COLLIDE"];
_bag setdir (getDir player); _bag setdir (getDir player);
player reveal _bag; player reveal _bag;

View File

@@ -0,0 +1,48 @@
//http://community.bistudio.com/wiki/ArmA2:_Moves
player playMove "amovpsitmstpsraswrfldnon_smoking"; // - Sitting smoking
waitUntil { animationState player != "amovpsitmstpsraswrfldnon_smoking"};
sleep 5;
player playMove "amovpsitmstpsraswrfldnon_weaponcheck1"; // - Sitting checking weapon
waitUntil { animationState player != "amovpsitmstpsraswrfldnon_weaponcheck1"};
sleep 5;
player playMove "AidlPpneMstpSnonWnonDnon_SleepC_layDown";
waitUntil { animationState player != "AidlPpneMstpSnonWnonDnon_SleepC_layDown"};
sleep 5;
player playMove "AidlPpneMstpSnonWnonDnon_SleepC_lookAround";
waitUntil { animationState player != "AidlPpneMstpSnonWnonDnon_SleepC_lookAround"};
sleep 5;
player playMove "AidlPpneMstpSnonWnonDnon_SleepC_scratch";
waitUntil { animationState player != "AidlPpneMstpSnonWnonDnon_SleepC_scratch"};
sleep 5;
player playMove "AidlPpneMstpSnonWnonDnon_SleepC_sleep";
waitUntil { animationState player != "AidlPpneMstpSnonWnonDnon_SleepC_sleep"};
sleep 5;
player playMove "AidlPpneMstpSnonWnonDnon_SleepC_sleep0";
waitUntil { animationState player != "AidlPpneMstpSnonWnonDnon_SleepC_sleep0"};
sleep 5;
player playMove "AidlPpneMstpSnonWnonDnon_SleepC_standUp";
waitUntil { animationState player != "AidlPpneMstpSnonWnonDnon_SleepC_standUp"};

View File

@@ -208,6 +208,7 @@ class CfgLoot {
"HandChemGreen", "HandChemGreen",
"HandChemBlue", "HandChemBlue",
"HandChemRed", "HandChemRed",
"DZ_Czech_Vest_Puch","object", // 12-0
"ItemHeatPack" "ItemHeatPack"
}, },
{ {
@@ -246,6 +247,7 @@ class CfgLoot {
0.02, 0.02,
0.02, 0.02,
0.02, 0.02,
0.02,
0.04 0.04
} }
}; };
@@ -275,6 +277,7 @@ class CfgLoot {
"10x_303", "10x_303",
"ItemWaterbottleUnfilled", "ItemWaterbottleUnfilled",
"BoltSteel", "BoltSteel",
"DZ_ALICE_Pack_EP1","object",
"ItemHeatPack", "ItemHeatPack",
"TrapBear" "TrapBear"
}, },
@@ -285,6 +288,7 @@ class CfgLoot {
0.5, 0.5,
0.2, 0.2,
1, 1,
0.1,
0.2, 0.2,
0.01 0.01
} }

View File

@@ -521,17 +521,7 @@ class Citizen1; // External class reference
canHideBodies = 1; canHideBodies = 1;
}; };
class Bag_Base_EP1; class Bag_Base_EP1;
class CZ_VestPouch_EP1: Bag_Base_EP1 class Bag_Base_BAF;
{
displayname = "Czech Vest Pouch";
icon = "\ca\weapons_e\data\icons\mapIcon_backpack_CA.paa";
mapsize = 2;
model = "\ca\weapons_e\AmmoBoxes\backpack_acr_small.p3d";
picture = "\ca\weapons_e\data\icons\backpack_ACR_small_CA.paa";
scope = 2;
transportmaxmagazines = 12;
transportmaxweapons = 0;
};
class DZ_Patrol_Pack_EP1: Bag_Base_EP1 class DZ_Patrol_Pack_EP1: Bag_Base_EP1
{ {
scope = 2; scope = 2;
@@ -543,6 +533,7 @@ class Citizen1; // External class reference
transportMaxWeapons = 1; transportMaxWeapons = 1;
transportMaxMagazines = 8; transportMaxMagazines = 8;
}; };
class DZ_Assault_Pack_EP1: Bag_Base_EP1 class DZ_Assault_Pack_EP1: Bag_Base_EP1
{ {
scope = 2; scope = 2;
@@ -554,17 +545,19 @@ class Citizen1; // External class reference
transportMaxWeapons = 2; transportMaxWeapons = 2;
transportMaxMagazines = 12; transportMaxMagazines = 12;
}; };
class DZ_CivilBackpack_EP1: Bag_Base_EP1
class DZ_Czech_Vest_Puch: Bag_Base_EP1
{ {
scope = 2; scope = 2;
displayName = "Czech Backpack"; displayName = "Czech Vest Pouch";
picture = "\ca\weapons_e\data\icons\backpack_ACR_CA.paa"; picture = "\ca\weapons_e\data\icons\backpack_ACR_small_CA.paa";
icon = "\ca\weapons_e\data\icons\mapIcon_backpack_CA.paa"; icon = "\ca\weapons_e\data\icons\mapIcon_backpack_CA.paa";
mapsize = 2; mapsize = 2;
model = "\ca\weapons_e\AmmoBoxes\backpack_acr.p3d"; model = "\ca\weapons_e\AmmoBoxes\backpack_acr_small.p3d";
transportMaxWeapons = 3; transportMaxWeapons = 2;
transportMaxMagazines = 16; transportMaxMagazines = 12;
}; };
class DZ_ALICE_Pack_EP1: Bag_Base_EP1 class DZ_ALICE_Pack_EP1: Bag_Base_EP1
{ {
scope = 2; scope = 2;
@@ -573,9 +566,46 @@ class Citizen1; // External class reference
icon = "\ca\weapons_e\data\icons\mapIcon_backpack_CA.paa"; icon = "\ca\weapons_e\data\icons\mapIcon_backpack_CA.paa";
mapsize = 2; mapsize = 2;
model = "\ca\weapons_e\AmmoBoxes\backpack_tk_alice.p3d"; model = "\ca\weapons_e\AmmoBoxes\backpack_tk_alice.p3d";
transportMaxWeapons = 4; transportMaxWeapons = 2;
transportMaxMagazines = 20; transportMaxMagazines = 16;
}; };
class DZ_TK_Assault_Pack_EP1 : Bag_Base_BAF
{
scope = 2;
displayName = "Survival ACU";
mapSize = 2;
picture = "\ca\weapons_e\data\icons\backpack_CIVIL_ASSAULT_CA.paa";
icon = "\ca\weapons_e\data\icons\mapIcon_backpack_CA.paa";
model = "\ca\weapons_e\AmmoBoxes\backpack_civil_assault.p3d";
transportMaxWeapons = 2;
transportMaxMagazines = 16;
};
class DZ_British_ACU : Bag_Base_BAF
{
scope = 2;
displayName = "British Assault Pack";
mapSize = 2;
model = "\ca\weapons_baf\Backpack_Small_BAF";\
picture = "\ca\weapons_baf\data\UI\backpack_BAF_CA.paa";
icon = "\ca\weapons_e\data\icons\mapIcon_backpack_CA.paa";
transportMaxWeapons = 3;
transportMaxMagazines = 18;
};
class DZ_CivilBackpack_EP1: Bag_Base_EP1
{
scope = 2;
displayName = "Czech Backpack";
picture = "\ca\weapons_e\data\icons\backpack_ACR_CA.paa";
icon = "\ca\weapons_e\data\icons\mapIcon_backpack_CA.paa";
mapsize = 2;
model = "\ca\weapons_e\AmmoBoxes\backpack_acr.p3d";
transportMaxWeapons = 6;
transportMaxMagazines = 24;
};
class DZ_Backpack_EP1: Bag_Base_EP1 class DZ_Backpack_EP1: Bag_Base_EP1
{ {
scope = 2; scope = 2;

View File

@@ -15,9 +15,11 @@ if (_canLoot) then {
_config = configFile >> "CfgBuildingLoot" >> _type; _config = configFile >> "CfgBuildingLoot" >> _type;
//Get zombie class //Get zombie class
_zombieChance = getNumber (_config >> "zombieChance"); _zombieChance = getNumber (_config >> "zombieChance");
_rnd = random 1; _rnd = random 0.5;
_chance = round(random 20);
if (_rnd < _zombieChance) then { //if (_rnd < _zombieChance) then {
if ((_chance % 2) == 0) then {
_noPlayerNear = (count ((getPosATL _obj) nearEntities ["CAManBase",30])) == 0; _noPlayerNear = (count ((getPosATL _obj) nearEntities ["CAManBase",30])) == 0;
@@ -31,14 +33,14 @@ if (_rnd < _zombieChance) then {
//diag_log ("Class: " + _type + " / Zombies: " + str(_unitTypes) + " / Walking: " + str(_num)); //diag_log ("Class: " + _type + " / Zombies: " + str(_unitTypes) + " / Walking: " + str(_num));
for "_i" from 1 to _num do for "_i" from 1 to _num do
{ {
[_originalPos,_unitTypes] call zombie_generate; [_position,_unitTypes] call zombie_generate;
}; };
}; };
}; };
/*
//Add Internal Zombies //Add Internal Zombies
_clean = count ((getPosATL _obj) nearEntities ["zZombie_Base",(sizeOf _type)]) == 0; _clean = {alive _x} count ((getPosATL _obj) nearEntities ["zZombie_Base",(sizeOf _type)]) == 0;
if (_clean) then { if (_clean) then {
_positions = getArray (_config >> "lootPos"); _positions = getArray (_config >> "lootPos");
_zombieChance = getNumber (_config >> "zombieChance"); _zombieChance = getNumber (_config >> "zombieChance");
@@ -47,11 +49,10 @@ if (_rnd < _zombieChance) then {
_rnd = random 1; _rnd = random 1;
if (_rnd < _zombieChance) then { if (_rnd < _zombieChance) then {
_iPos = _obj modelToWorld _x; _iPos = _obj modelToWorld _x;
//_iPos = [_iPos,0,20,20,0,0,0] call BIS_fnc_findSafePos;
//_iPos = position (_obj); _nearBy = {alive _x} count nearestObjects [_iPos , ["zZombie_Base"],3] > 0;
_nearBy = count nearestObjects [_iPos , ["zZombie_Base"],1] > 0;
_nearByPlayer = ({isPlayer _x} count (_iPos nearEntities ["CAManBase",30])) > 0; _nearByPlayer = ({isPlayer _x} count (_iPos nearEntities ["CAManBase",30])) > 0;
//diag_log ("BUILDING: " + _type + " / " + str(_nearBy) + " / " + str(_nearByPlayer)); diag_log ("BUILDING: " + _type + " / " + str(_nearBy) + " / " + str(_nearByPlayer));
if (!_nearByPlayer and !_nearBy) then { if (!_nearByPlayer and !_nearBy) then {
[_iPos,_unitTypes] call zombie_generate; [_iPos,_unitTypes] call zombie_generate;
@@ -60,5 +61,4 @@ if (_rnd < _zombieChance) then {
} forEach _positions; } forEach _positions;
}; };
dayz_buildingMonitor set [count dayz_buildingMonitor,_obj]; dayz_buildingMonitor set [count dayz_buildingMonitor,_obj];
*/
}; };

View File

@@ -1,22 +1,28 @@
private["_findarray","_stringarray","_findcount","_stringcount","_found","_y","_i","_x"]; //Kilzone_Kid's megafast inString function
//caseinsensitive
_findarray = toArray (_this select 0); //params [needle,haystack]
_stringarray = toArray (_this select 1); private["_needle","_haystack","_found","_haystackArr","_haystackLen","_needleLen","_hayArr"];
_findcount = count _findarray;
_stringcount = count _stringarray;
_found = false;
scopeName "main"; scopeName "main";
_needle = _this select 0;
if (_findcount <= _stringcount) then { _haystack = _this select 1;
for "_y" from 0 to (_stringcount - _findcount) do { _haystackArr = toArray _haystack;
_i = 0; _haystackLen = count _haystackArr;
{ _needleLen = count (toArray _needle);
scopeName "loop1"; _found = false;
if (_x == (_stringarray select (_y + _i))) then { if (_needleLen <= _haystackLen) then {
_i = _i + 1; _hayArr = [];
} else {breakOut "loop1";}; for "_i" from 0 to (_needleLen - 1) do {
} forEach _findarray; _hayArr set [count _hayArr, _haystackArr select _i];
if (_i == _findcount) then {_found = true; breakTo "main";}; };
for "_i" from _needleLen to _haystackLen do {
if (toString _hayArr != _needle) then {
_hayArr set [_needleLen, _haystackArr select _i];
_hayArr set [0, "x"];
_hayArr = _hayArr - ["x"];
} else {
_found = true;
breakTo "main";
}; };
}; };
_found };
_found;

View File

@@ -216,6 +216,16 @@ if (!isNull cursorTarget and !_inVehicle and (player distance cursorTarget < 4))
s_player_lockvault = -1; s_player_lockvault = -1;
}; };
//Sleep
if(cursorTarget isKindOf "TentStorage" and _canDo and _ownerID == dayz_characterID) then {
if ((s_player_sleep < 0) and (player distance cursorTarget < 3)) then {
s_player_sleep = player addAction [localize "str_actions_self_sleep", "\z\addons\dayz_code\actions\player_sleep.sqf",cursorTarget, 0, false, true, "",""];
};
} else {
player removeAction s_player_sleep;
s_player_sleep = -1;
};
//Repairing Vehicles //Repairing Vehicles
if ((dayz_myCursorTarget != cursorTarget) and !_isMan and _hasToolbox and (damage cursorTarget < 1)) then { if ((dayz_myCursorTarget != cursorTarget) and !_isMan and _hasToolbox and (damage cursorTarget < 1)) then {
_vehicle = cursorTarget; _vehicle = cursorTarget;
@@ -576,6 +586,8 @@ if (!isNull cursorTarget and !_inVehicle and (player distance cursorTarget < 4))
s_player_forceSave = -1; s_player_forceSave = -1;
player removeAction s_player_flipveh; player removeAction s_player_flipveh;
s_player_flipveh = -1; s_player_flipveh = -1;
player removeAction s_player_sleep;
s_player_sleep = -1;
player removeAction s_player_deleteBuild; player removeAction s_player_deleteBuild;
s_player_deleteBuild = -1; s_player_deleteBuild = -1;
player removeAction s_player_butcher; player removeAction s_player_butcher;

View File

@@ -6,6 +6,9 @@ _worldspace = _this select 2;
_class = _this select 3; _class = _this select 3;
_id = 0; _id = 0;
_allowed = [_object, (name player)] call check_publishobject;
if (!_allowed) exitWith { };
diag_log ("PUBLISH: Attempt " + str(_object)); diag_log ("PUBLISH: Attempt " + str(_object));
_dir = _worldspace select 0; _dir = _worldspace select 0;
_location = _worldspace select 1; _location = _worldspace select 1;

View File

@@ -4,7 +4,7 @@ _unit = _this select 0;
_distance = _this select 1; _distance = _this select 1;
_doRun = _this select 2; _doRun = _this select 2;
_pos = _this select 3; _pos = _this select 3;
_listTalk = _pos nearEntities ["zZombie_Base",_distance]; _listTalk = _pos nearEntities ["zZombie_Base",_distance * 3];
//hint str(_listTalk); //hint str(_listTalk);
@@ -20,16 +20,3 @@ _listTalk = _pos nearEntities ["zZombie_Base",_distance];
_zombie setVariable ["myDest",_pos,true]; _zombie setVariable ["myDest",_pos,true];
}; };
} forEach _listTalk; } forEach _listTalk;
_listTalk = _pos nearEntities [["DZ_Fin, DZ_Pastor"], _distance * 3];
{
_dog = _x;
//Ensure dog is tamed AND is not players own dog
if (_doRun && (_dog getVariable ["characterID", 0]) != 0) then {
_targets = _dog getVariable ["targets",[]];
if (!(_unit in _targets)) then {
_targets set [count _targets,_unit];
_dog setVariable ["targets",_targets,true];
};
}
} forEach _listTalk;

View File

@@ -1,5 +1,6 @@
private["_type","_isAir","_inVehicle","_dateNow","_maxZombies","_maxWildZombies","_age","_nearbyBuildings","_radius","_locationstypes","_nearestCity","_position","_nearbytype"]; private["_type","_isAir","_inVehicle","_dateNow","_maxZombies","_maxWildZombies","_age","_nearbyBuildings","_radius","_locationstypes","_nearestCity","_position","_nearbytype"];
_type = _this select 0; _type = _this select 0;
_Keepspawning = _this select 1;
_isAir = vehicle player iskindof "Air"; _isAir = vehicle player iskindof "Air";
_inVehicle = (vehicle player != player); _inVehicle = (vehicle player != player);
_dateNow = (DateToNumber date); _dateNow = (DateToNumber date);
@@ -7,77 +8,57 @@ _maxZombies = dayz_maxLocalZombies;
_maxWildZombies = 3; _maxWildZombies = 3;
_age = -1; _age = -1;
_nearbyBuildings = []; _nearbyBuildings = [];
_radius = 200;
_maxZombies = 20;
diag_log ("Type: " +str(_type)); diag_log ("Type: " +str(_type));
//diag_log("SPAWN CHECKING: Starting"); //diag_log("SPAWN CHECKING: Starting");
_radius = 300; _radius = 200;
_locationstypes = ["NameCityCapital","NameCity","NameVillage","NameLocal"]; _locationstypes = ["NameCityCapital","NameCity","NameVillage"];
_nearestCity = nearestLocations [getPos player, _locationstypes, _radius]; _nearestCity = nearestLocations [getPos player, _locationstypes, _radius];
_townname = text (_nearestCity select 0); _townname = text (_nearestCity select 0);
_position = getPosATL player; _position = getPosATL player;
if ((count _nearestCity) > 0) then {
_position = position (_nearestCity select 0);
};
_nearbytype = type (_nearestCity select 0); _nearbytype = type (_nearestCity select 0);
switch (_nearbytype) do { switch (_nearbytype) do {
case "NameLocal": {
_radius = 200;
_maxZombies = 30;
};
case "NameVillage": { case "NameVillage": {
_radius = 250; _radius = 250;
_maxZombies = 40; _maxZombies = 30;
}; };
case "NameCity": { case "NameCity": {
_radius = 300; _radius = 300;
_maxZombies = 45; _maxZombies = 40;
}; };
case "NameCityCapital": { case "NameCityCapital": {
_radius = 400; _radius = 400;
_maxZombies = 50; _maxZombies = 50;
}; };
default {
_radius = 200;
_maxZombies = 20;
};
}; };
/* _spawnZombies = count (_position nearEntities ["zZombie_Base",_radius]) < _maxZombies;
if ((count _nearestCity) > 0) then {
_markerstr = createMarker["markername_" +str (_townname), _position];
_markerstr setMarkerText _townname;
_markerstr setMarkerColor "ColorGreen";
_markerstr setMarkerShape "ELLIPSE";
_markerstr setMarkerBrush "Grid";
_markerstr setMarkerSize [_radius, _radius];
};
deleteMarker "Player_Marker_Radius";
_markerstr = createMarker["Player_Marker_Radius", getPosATL player];
_markerstr setMarkerColor "ColorRed";
_markerstr setMarkerShape "ELLIPSE";
_markerstr setMarkerBrush "Border";
_markerstr setMarkerSize [_radius, _radius];
*/
switch (_type) do { switch (_type) do {
case "Zeds": { case "Zeds": {
_spawnZombies = count (getPosATL player nearEntities ["zZombie_Base",_radius]) < _maxZombies;
if (_spawnZombies) then { if (_spawnZombies) then {
_nearbyBuildings = _position nearObjects ["building",_radius]; //_nearbyBuildings = nearestObjects [_position, ["building"], _radius];
//_nearbyBuildings = nearestObjects [getPosATL player, dayz_ZombieBuildings, _radius]; //Cant be used Not all zones are covered yet (wrecks, Buildings outside towns) _nearbyBuildings = nearestObjects [_position, dayz_LootBuildings, _radius];
_nearbyCount = count _nearbyBuildings;
if (_nearbyCount > 0) then {
[_radius, _position, _inVehicle, _dateNow, _age, _locationstypes, _nearestCity, _maxZombies, _nearbyBuildings] call player_spawnzedCheck; [_radius, _position, _inVehicle, _dateNow, _age, _locationstypes, _nearestCity, _maxZombies, _nearbyBuildings] call player_spawnzedCheck;
}; };
}; };
};
case "Wild": {
//[_position, _maxZombies] call wild_spawnZombies;
};
case "Loot": { case "Loot": {
_nearbyBuildings = _position nearObjects ["building",_radius]; //_nearbyBuildings = nearestObjects [_position, ["building"], _radius];
//_nearbyBuildings = nearestObjects [_position, dayz_LootBuildings, _radius]; //Cant be used Not all zones are covered yet (wrecks, Buildings outside towns) _nearbyBuildings = nearestObjects [_position, dayz_ZombieBuildings, _radius];
_nearbyCount = count _nearbyBuildings;
if (_nearbyCount > 0) then {
[_radius, _position, _inVehicle, _dateNow, _age, _locationstypes, _nearestCity, _nearbyBuildings] call player_spawnlootCheck; [_radius, _position, _inVehicle, _dateNow, _age, _locationstypes, _nearestCity, _nearbyBuildings] call player_spawnlootCheck;
}; };
}; };
};

View File

@@ -10,7 +10,6 @@ _maxZombies = _this select 7;
_nearby = _this select 8; _nearby = _this select 8;
diag_log ("Zed Started"); diag_log ("Zed Started");
_maxWildZombies = 3;
// If they just got out of a vehicle, boost their per-player zombie limit by 5 in hopes of allowing insta-spawn zombies // If they just got out of a vehicle, boost their per-player zombie limit by 5 in hopes of allowing insta-spawn zombies
if (dayz_inVehicle and !_inVehicle) then { if (dayz_inVehicle and !_inVehicle) then {
@@ -22,13 +21,12 @@ dayz_inVehicle = _inVehicle;
if (_inVehicle) then { if (_inVehicle) then {
_maxZombies = _maxZombies / 2; _maxZombies = _maxZombies / 2;
_maxWildZombies = 0;
}; };
_spawnZombies = count (_position nearEntities ["zZombie_Base",_radius]) < _maxZombies; // _spawnZombies = count (_position nearEntities ["zZombie_Base",_radius]) < _maxZombies;
// _tooManyZs = count (_position nearEntities ["zZombie_Base",_radius]) > _maxZombies; // _tooManyZs = count (_position nearEntities ["zZombie_Base",_radius]) > _maxZombies;
// _tooManyWildZs = count (_position nearEntities ["zZombie_Base",_radius]) > _maxWildZombies;
{ {
if (dayz_spawnZombies > _maxZombies) exitwith {}; // if (dayz_spawnZombies > _maxZombies) exitwith {};
_zombied = (_x getVariable ["zombieSpawn",-0.1]); _zombied = (_x getVariable ["zombieSpawn",-0.1]);
_dateNow = (DateToNumber date); _dateNow = (DateToNumber date);
_age = (_dateNow - _zombied) * 525948; _age = (_dateNow - _zombied) * 525948;
@@ -41,21 +39,3 @@ if (_inVehicle) then {
//}; //};
}; };
} forEach _nearby; } forEach _nearby;
/*
if ((count _nearby) < 1) then {
diag_log ("1");
_spawnWildZs = count (_position nearEntities ["zZombie_Base",_radius]);
if (_spawnWildZs < _maxWildZombies) then {
diag_log ("2");
if (!_tooManyWildZs) then {
diag_log ("3");
_zombiesNum = count (_position nearEntities ["zZombie_Base",(((sizeOf _type) * 2) + 10)]);
//diag_log ("ZombiesNum: " +str(_zombiesNum));
if (_zombiesNum == 0) then {
diag_log ("4");
[_position] call wild_spawnZombies;
};
};
};
};
*/

View File

@@ -20,7 +20,7 @@ if (r_player_unconscious && _vehicle == player && _type == "zombie") then {
}; };
_dir = [_unit,player] call BIS_Fnc_dirTo; _dir = [_unit,player] call BIS_Fnc_dirTo;
_unit setDir _dir; _unit setDir _dir;
[objNull, _unit, rPlayMove,_move] call RE; _unit playMove _move;
//Wait //Wait
sleep 0.3; sleep 0.3;
@@ -29,11 +29,11 @@ if (_vehicle != player) then {
_hpList = _vehicle call vehicle_getHitpoints; _hpList = _vehicle call vehicle_getHitpoints;
_hp = _hpList call BIS_fnc_selectRandom; _hp = _hpList call BIS_fnc_selectRandom;
_wound = getText(configFile >> "cfgVehicles" >> (typeOf _vehicle) >> "HitPoints" >> _hp >> "name"); _wound = getText(configFile >> "cfgVehicles" >> (typeOf _vehicle) >> "HitPoints" >> _hp >> "name");
_damage = random 0.03; _damage = random 0.08;
_chance = round(random 12); _chance = round(random 12);
if ((_wound == "Glass1") or (_wound == "Glass2") or (_wound == "Glass3") or (_wound == "Glass4") or (_wound == "Glass5") or (_wound == "Glass6")) then { if ((_wound == "Glass1") or (_wound == "Glass2") or (_wound == "Glass3") or (_wound == "Glass4") or (_wound == "Glass5") or (_wound == "Glass6")) then {
[_unit,"hit",0,false] call dayz_zombieSpeak; [_unit,"hit",2,true] call dayz_zombieSpeak;
_strH = "hit_" + (_wound); _strH = "hit_" + (_wound);
_dam = _vehicle getVariable [_strH,0]; _dam = _vehicle getVariable [_strH,0];
_total = (_dam + _damage); _total = (_dam + _damage);
@@ -63,7 +63,7 @@ if (_vehicle != player) then {
[player, _wound, _damage, _unit,"zombie"] call fnc_usec_damageHandler; [player, _wound, _damage, _unit,"zombie"] call fnc_usec_damageHandler;
//dayzHit = [player,_wound, _damage, _unit,"zombie"]; //dayzHit = [player,_wound, _damage, _unit,"zombie"];
//publicVariable "dayzHit"; //publicVariable "dayzHit";
[_unit,"hit",0,false] call dayz_zombieSpeak; [_unit,"hit",2,true] call dayz_zombieSpeak;
} else { } else {
_result = [_vehicle, _wound,_total, _unit,"zombie"] call fnc_usec_damageVehicle; _result = [_vehicle, _wound,_total, _unit,"zombie"] call fnc_usec_damageVehicle;
dayzHitV = [_vehicle,_wound,_total, _unit,"zombie"]; dayzHitV = [_vehicle,_wound,_total, _unit,"zombie"];
@@ -107,7 +107,7 @@ if (_vehicle != player) then {
[player, _wound, _damage, _unit,"zombie"] call fnc_usec_damageHandler; [player, _wound, _damage, _unit,"zombie"] call fnc_usec_damageHandler;
//dayzHit = [player,_wound, _damage, _unit,"zombie"]; //dayzHit = [player,_wound, _damage, _unit,"zombie"];
//publicVariable "dayzHit"; //publicVariable "dayzHit";
[_unit,"hit",0,false] call dayz_zombieSpeak; [_unit,"hit",2,true] call dayz_zombieSpeak;
} else { } else {
/* /*
_isZombieInside = [_unit,_building] call fnc_isInsideBuilding; _isZombieInside = [_unit,_building] call fnc_isInsideBuilding;
@@ -117,7 +117,7 @@ if (_vehicle != player) then {
[player, _wound, _damage, _unit,"zombie"] call fnc_usec_damageHandler; [player, _wound, _damage, _unit,"zombie"] call fnc_usec_damageHandler;
//dayzHit = [player,_wound, _damage, _unit,"zombie"]; //dayzHit = [player,_wound, _damage, _unit,"zombie"];
//publicVariable "dayzHit"; //publicVariable "dayzHit";
[_unit,"hit",0,false] call dayz_zombieSpeak; [_unit,"hit",2,true] call dayz_zombieSpeak;
}; };
*/ */
}; };

View File

@@ -1,6 +1,6 @@
private["_listTalk","_isZombie","_group","_eyeDir","_attacked","_continue","_type","_chance","_last","_audial","_distance","_refObj","_list","_scaleMvmt","_scalePose","_scaleLight","_anim","_activators","_nearFire","_nearFlare","_scaleAlert","_inAngle","_scaler","_initial","_tPos","_zPos","_cantSee"]; private["_listTalk","_isZombie","_group","_eyeDir","_attacked","_continue","_type","_chance","_last","_audial","_distance","_refObj","_list","_scaleMvmt","_scalePose","_scaleLight","_anim","_activators","_nearFire","_nearFlare","_scaleAlert","_inAngle","_scaler","_initial","_tPos","_zPos","_cantSee"];
_refObj = vehicle player; _refObj = vehicle player;
_listTalk = (position _refObj) nearEntities [["zZombie_Base","DZ_Pastor"],80]; _listTalk = (position _refObj) nearEntities [["zZombie_Base"],80];
_pHeight = (getPosATL _refObj) select 2; _pHeight = (getPosATL _refObj) select 2;
_attacked = false; _attacked = false;
_multiplier = 1; _multiplier = 1;

View File

@@ -1,7 +1,5 @@
private["_unit","_selection","_killer"]; private["_unit","_selection","_killer"];
Diag_log ("handlekilled");
_unit = _this select 0; _unit = _this select 0;
_killer = _this select 1; _killer = _this select 1;

View File

@@ -4,7 +4,7 @@ _target = objNull;
_lead = leader _group; _lead = leader _group;
_targetMen = []; _targetMen = [];
_targetDis = []; _targetDis = [];
_range = 300; _range = 500;
_assigned = _group getVariable ["targets",[]]; _assigned = _group getVariable ["targets",[]];
{ {
@@ -17,19 +17,19 @@ _targets = _lead nearTargets _range;
private["_obj","_dis"]; private["_obj","_dis"];
_obj = _x select 4; _obj = _x select 4;
_dis = _obj distance _lead; _dis = _obj distance _lead;
if (_obj isKindOf "Man") then { // if (_obj isKindOf "Man") then {
if (!(_obj isKindOf "zZombie_Base") and !(_obj in _targetMen)) then { if (((_obj isKindOf "Man") or (_obj isKindOf "AllVehicles")) and !(_obj isKindOf "zZombie_Base") and !(_obj in _targetMen)) then {
//process man targets //process man targets
_targetMen set [count _targetMen,_obj]; _targetMen set [count _targetMen,_obj];
_targetDis set [count _targetDis,_dis]; _targetDis set [count _targetDis,_dis];
}; };
} else { // } else {
if ((_obj isKindOf "AllVehicles") and (count crew _obj > 0) and !(_obj in _targetMen)) then { // if ((_obj isKindOf "AllVehicles") and (count crew _obj > 0) and !(_obj in _targetMen)) then {
//process vehicle targets // //process vehicle targets
_targetMen set [count _targetMen,_obj]; // _targetMen set [count _targetMen,_obj];
_targetDis set [count _targetDis,_dis]; // _targetDis set [count _targetDis,_dis];
}; // };
}; // };
} forEach _targets; } forEach _targets;
//Search for fires //Search for fires

View File

@@ -26,7 +26,7 @@ if (count _targets == 0) then {
if (isNil "_targets") exitWith {}; if (isNil "_targets") exitWith {};
//Search for objects //Search for objects
if (count _targets == 0) then { if (count _targets == 0) then {
_objects = nearestObjects [_agent,["ThrownObjects","GrenadeHandTimedWest","SmokeShell"],_range/2]; _objects = nearestObjects [_agent,["ThrownObjects","GrenadeHandTimedWest","SmokeShell"],_range];
{ {
private["_dis"]; private["_dis"];
if (!(_x in _targets)) then { if (!(_x in _targets)) then {

View File

@@ -33,7 +33,7 @@ class CfgMods
hidePicture = 0; hidePicture = 0;
hideName = 0; hideName = 0;
action = "http://www.dayzmod.com"; action = "http://www.dayzmod.com";
version = "1.7.5.D1222"; version = "1.7.5.M1D7";
hiveVersion = 0.96; //0.93 hiveVersion = 0.96; //0.93
}; };
}; };
@@ -51,6 +51,15 @@ class CfgAddons
}; };
}; };
}; };
class CfgInGameUI
{
class PeripheralVision
{
cueColor[] = {0,0,0,0};
};
};
class RscPictureGUI class RscPictureGUI
{ {
access = 0; access = 0;
@@ -82,10 +91,11 @@ class RscStructuredTextGUI: RscStructuredText
valign = "middle"; valign = "middle";
}; };
}; };
//#include "CfgWorlds.hpp"
#include "cfgMoves.hpp" #include "cfgMoves.hpp"
#include "rscTitles.hpp" #include "rscTitles.hpp"
#include "cfgVehicles.hpp" #include "cfgVehicles.hpp"
//#include "CfgWeapons.hpp"
#include "cfgLoot.hpp" #include "cfgLoot.hpp"
class CfgSurvival { class CfgSurvival {
@@ -123,7 +133,7 @@ class CfgSurvival {
class CfgBuildingLoot { class CfgBuildingLoot {
class Default { class Default {
zombieChance = 0; zombieChance = 0.2;
minRoaming = 0; minRoaming = 0;
maxRoaming = 2; maxRoaming = 2;
zombieClass[] = {"zZombie_Base","z_hunter","z_teacher","z_suit1","z_suit2","z_worker1","z_worker2","z_worker3","z_villager1","z_villager2","z_villager3"}; zombieClass[] = {"zZombie_Base","z_hunter","z_teacher","z_suit1","z_suit2","z_worker1","z_worker2","z_worker3","z_villager1","z_villager2","z_villager3"};
@@ -162,9 +172,11 @@ class CfgBuildingLoot {
{ "","generic" }, { "","generic" },
{ "LeeEnfield","weapon" }, { "LeeEnfield","weapon" },
{ "revolver_EP1","weapon" }, { "revolver_EP1","weapon" },
{ "CZ_VestPouch_EP1","object" },
{ "DZ_CivilBackpack_EP1","object" }, {"DZ_Patrol_Pack_EP1","object"}, //8
{ "DZ_ALICE_Pack_EP1","object" }, {"DZ_Assault_Pack_EP1","object"}, // 12
{"DZ_Czech_Vest_Puch","object"}, // 12-0
{ "Winchester1866","weapon" }, { "Winchester1866","weapon" },
{ "WeaponHolder_ItemTent","object" }, { "WeaponHolder_ItemTent","object" },
{ "","military" }, { "","military" },
@@ -191,9 +203,9 @@ class CfgBuildingLoot {
2, 2,
0.06, 0.06,
0.04, 0.04,
0.04, //{"CZ_VestPouch_EP1","object"}, 0.04, //8
0.03, 0.01, //12
0.02, 0.03, //12-0
0.01, 0.01,
0.01, 0.01,
0.03, 0.03,
@@ -305,9 +317,11 @@ class CfgBuildingLoot {
{ "","generic" }, { "","generic" },
{ "LeeEnfield","weapon" }, { "LeeEnfield","weapon" },
{ "revolver_EP1","weapon" }, { "revolver_EP1","weapon" },
{ "CZ_VestPouch_EP1","object" },
{ "DZ_CivilBackpack_EP1","object" }, {"DZ_Patrol_Pack_EP1","object"}, //8
{ "DZ_ALICE_Pack_EP1","object" }, {"DZ_Assault_Pack_EP1","object"}, // 12
{"DZ_Czech_Vest_Puch","object"}, // 12-0
{ "Winchester1866","weapon" }, { "Winchester1866","weapon" },
{ "WeaponHolder_ItemTent","object" }, { "WeaponHolder_ItemTent","object" },
{ "","food" }, { "","food" },
@@ -329,9 +343,9 @@ class CfgBuildingLoot {
0.05, 0.05,
0.01, 0.01,
0.01, 0.01,
0.04, //{"CZ_VestPouch_EP1","object"}, 0.04, //8
0.03, 0.01, //12
0.02, 0.03, // 12-0
0.01, 0.01,
0.01, 0.01,
0.3, 0.3,
@@ -343,7 +357,7 @@ class CfgBuildingLoot {
}; };
}; };
class HeliCrash: Default { class HeliCrash: Default {
zombieChance = 0; zombieChance = 0.4;
maxRoaming = 2; maxRoaming = 2;
zombieClass[] = {"z_soldier_pilot"}; zombieClass[] = {"z_soldier_pilot"};
lootChance = 0.5; lootChance = 0.5;
@@ -407,7 +421,7 @@ class CfgBuildingLoot {
}; };
}; };
class HeliCrash_No50s: Default { class HeliCrash_No50s: Default {
zombieChance = 0; zombieChance = 0.4;
maxRoaming = 2; maxRoaming = 2;
zombieClass[] = {"z_soldier_pilot"}; zombieClass[] = {"z_soldier_pilot"};
lootChance = 0.5; lootChance = 0.5;
@@ -516,9 +530,13 @@ class HeliCrash_No50s: Default {
{ "ItemKnife","military" }, { "ItemKnife","military" },
{ "ItemGPS","weapon" }, { "ItemGPS","weapon" },
{ "ItemMap","military" }, { "ItemMap","military" },
{ "DZ_Assault_Pack_EP1","object" },
{ "DZ_Patrol_Pack_EP1","object" }, {"DZ_ALICE_Pack_EP1","object"}, // 16
{ "DZ_Backpack_EP1","object" }, {"DZ_TK_Assault_Pack_EP1","object"}, // 16
{"DZ_British_ACU","object"}, // 18
{"DZ_CivilBackpack_EP1","object"}, // 24
{"DZ_Backpack_EP1","object"}, // 24
//Normal //Normal
{ "","medical" }, { "","medical" },
{ "","generic" }, { "","generic" },
@@ -555,9 +573,12 @@ class HeliCrash_No50s: Default {
0.10, 0.10,
0.01, 0.01,
0.05, 0.05,
0.06, //Bags
0.04, 0.08, //16
0.02, 0.08, //16
0.06, //18
0.01, //24
0.01, //DZ_Backpack_EP1 24
0.10, 0.10,
1.00, 1.00,
2.50, 2.50,
@@ -614,9 +635,11 @@ class HeliCrash_No50s: Default {
{ "ItemMap","military" }, { "ItemMap","military" },
{ "Binocular_Vector","military" }, { "Binocular_Vector","military" },
{ "DZ_Assault_Pack_EP1","object" }, {"DZ_ALICE_Pack_EP1","object"}, // 16
{ "DZ_Patrol_Pack_EP1","object" }, {"DZ_TK_Assault_Pack_EP1","object"}, // 16
{ "DZ_Backpack_EP1","object" }, {"DZ_British_ACU","object"}, // 18
{"DZ_CivilBackpack_EP1","object"}, // 24
{"DZ_Backpack_EP1","object"}, // 24
{ "","medical" }, { "","medical" },
{ "","generic" }, { "","generic" },
@@ -666,9 +689,12 @@ class HeliCrash_No50s: Default {
0.01, //ItemGPS 0.01, //ItemGPS
0.03, 0.03,
0.01, 0.01,
0.02, //Bags
0.03, 0.08, //16
0.02, 0.08, //16
0.06, //18
0.01, //24
0.01, //DZ_Backpack_EP1 24
0.30, 0.30,
1.00, 1.00,
5.00, //military 5.00, //military
@@ -804,7 +830,7 @@ class HeliCrash_No50s: Default {
lootPos[] = {{0.486084,4.95459,-4.96861},{1.08032,-0.406738,-4.96801},{-0.0354004,-10.8208,-4.96686},{-5.07788,-16.4624,-4.96759},{-6.30298,2.92969,-4.96838},{-6.26685,26.7349,-4.9772},{1.64697,23.4038,-4.97097},{7.14575,3.92529,-4.96972},{4.63599,-12.1621,-4.96971}}; lootPos[] = {{0.486084,4.95459,-4.96861},{1.08032,-0.406738,-4.96801},{-0.0354004,-10.8208,-4.96686},{-5.07788,-16.4624,-4.96759},{-6.30298,2.92969,-4.96838},{-6.26685,26.7349,-4.9772},{1.64697,23.4038,-4.97097},{7.14575,3.92529,-4.96972},{4.63599,-12.1621,-4.96971}};
}; };
class Land_A_MunicipalOffice: Residential { class Land_A_MunicipalOffice: Residential {
zombieChance = 0; zombieChance = 0.4;
minRoaming = 3; minRoaming = 3;
maxRoaming = 9; maxRoaming = 9;
zombieClass[] = {"z_soldier","z_soldier_heavy","z_policeman"}; zombieClass[] = {"z_soldier","z_soldier_heavy","z_policeman"};
@@ -876,7 +902,7 @@ class HeliCrash_No50s: Default {
lootPos[] = {{-1.77002,-1.45166,1.95942}}; lootPos[] = {{-1.77002,-1.45166,1.95942}};
}; // Qty: 183 }; // Qty: 183
class Land_KBud: Residential { class Land_KBud: Residential {
zombieChance = 0; zombieChance = 0.3;
maxRoaming = 0; maxRoaming = 0;
lootPos[] = {{-0.0170898,0.0114746,-0.66367}}; lootPos[] = {{-0.0170898,0.0114746,-0.66367}};
}; // Qty: 90 }; // Qty: 90
@@ -937,7 +963,7 @@ class HeliCrash_No50s: Default {
lootPos[] = {}; lootPos[] = {};
}; // Qty: 83 }; // Qty: 83
class Land_Misc_deerstand: Military { class Land_Misc_deerstand: Military {
zombieChance = 0; zombieChance = 0.3;
lootChance = 0.5; lootChance = 0.5;
maxRoaming = 3; maxRoaming = 3;
lootPos[] = {{-0.923828,-0.808594,1.08539},{0.419922,-0.237305,1.08539}}; lootPos[] = {{-0.923828,-0.808594,1.08539},{0.419922,-0.237305,1.08539}};
@@ -966,8 +992,8 @@ class HeliCrash_No50s: Default {
class UH1Wreck_DZ: Military { class UH1Wreck_DZ: Military {
zombieClass[] = {"z_soldier_pilot","z_soldier_heavy"}; zombieClass[] = {"z_soldier_pilot","z_soldier_heavy"};
zombieChance = 0; zombieChance = 0.3;
lootChance = 0; lootChance = 0.6;
minRoaming = 4; minRoaming = 4;
maxRoaming = 8; maxRoaming = 8;
lootPos[] = {}; lootPos[] = {};
@@ -975,8 +1001,8 @@ class HeliCrash_No50s: Default {
class UH60Wreck_DZ: Military { class UH60Wreck_DZ: Military {
zombieClass[] = {"z_soldier_pilot","z_soldier_heavy"}; zombieClass[] = {"z_soldier_pilot","z_soldier_heavy"};
zombieChance = 0; zombieChance = 0.3;
lootChance = 0; lootChance = 0.6;
minRoaming = 4; minRoaming = 4;
maxRoaming = 8; maxRoaming = 8;
lootPos[] = {}; lootPos[] = {};
@@ -990,18 +1016,18 @@ class HeliCrash_No50s: Default {
}; // Qty: 1 }; // Qty: 1
class Land_Ind_Shed_02_main: Default { class Land_Ind_Shed_02_main: Default {
zombieChance = 0; zombieChance = 0.3;
maxRoaming = 3; maxRoaming = 3;
}; // Qty: 283 }; // Qty: 283
class HouseRoaming: Residential { class HouseRoaming: Residential {
lootChance = 0; lootChance = 0.5;
zombieChance = 0; zombieChance = 0.2;
maxRoaming = 2; maxRoaming = 2;
}; };
class FarmRoaming: Farm { class FarmRoaming: Farm {
lootChance = 0; lootChance = 0.3;
zombieChance = 0; zombieChance = 0.4;
maxRoaming = 2; maxRoaming = 2;
}; };
class Land_Shed_W03: HouseRoaming {}; // Qty: 206 class Land_Shed_W03: HouseRoaming {}; // Qty: 206
@@ -1201,7 +1227,7 @@ class HeliCrash_No50s: Default {
class HMMWVWreck: Military class HMMWVWreck: Military
{ {
zombieClass[] = {"z_soldier_pilot","z_soldier_heavy"}; zombieClass[] = {"z_soldier_pilot","z_soldier_heavy"};
zombieChance = 0; zombieChance = 0.3;
lootChance = 0; lootChance = 0;
minRoaming = 1; minRoaming = 1;
maxRoaming = 2; maxRoaming = 2;
@@ -1210,7 +1236,7 @@ class HeliCrash_No50s: Default {
class UralWreck: Military class UralWreck: Military
{ {
zombieClass[] = {"z_soldier_pilot","z_soldier_heavy"}; zombieClass[] = {"z_soldier_pilot","z_soldier_heavy"};
zombieChance = 0; zombieChance = 0.3;
lootChance = 0; lootChance = 0;
minRoaming = 1; minRoaming = 1;
maxRoaming = 2; maxRoaming = 2;
@@ -1219,7 +1245,7 @@ class HeliCrash_No50s: Default {
class SKODAWreck: Residential class SKODAWreck: Residential
{ {
zombieClass[] = {"zZombie_Base","z_hunter"}; zombieClass[] = {"zZombie_Base","z_hunter"};
zombieChance = 0; zombieChance = 0.3;
lootChance = 0; lootChance = 0;
minRoaming = 1; minRoaming = 1;
maxRoaming = 2; maxRoaming = 2;
@@ -1228,7 +1254,7 @@ class HeliCrash_No50s: Default {
class UAZWreck: Residential class UAZWreck: Residential
{ {
zombieClass[] = {"zZombie_Base","z_hunter"}; zombieClass[] = {"zZombie_Base","z_hunter"};
zombieChance = 0; zombieChance = 0.3;
lootChance = 0; lootChance = 0;
minRoaming = 1; minRoaming = 1;
maxRoaming = 2; maxRoaming = 2;
@@ -1237,7 +1263,7 @@ class HeliCrash_No50s: Default {
class datsun01Wreck: Residential class datsun01Wreck: Residential
{ {
zombieClass[] = {"zZombie_Base","z_hunter"}; zombieClass[] = {"zZombie_Base","z_hunter"};
zombieChance = 0; zombieChance = 0.3;
lootChance = 0; lootChance = 0;
minRoaming = 1; minRoaming = 1;
maxRoaming = 2; maxRoaming = 2;
@@ -1246,7 +1272,7 @@ class HeliCrash_No50s: Default {
class hiluxWreck: Industrial class hiluxWreck: Industrial
{ {
zombieClass[] = {"zZombie_Base","z_hunter"}; zombieClass[] = {"zZombie_Base","z_hunter"};
zombieChance = 0; zombieChance = 0.3;
lootChance = 0; lootChance = 0;
minRoaming = 1; minRoaming = 1;
maxRoaming = 2; maxRoaming = 2;
@@ -1255,7 +1281,7 @@ class HeliCrash_No50s: Default {
class datsun02Wreck: Military class datsun02Wreck: Military
{ {
zombieClass[] = {"zZombie_Base","z_hunter"}; zombieClass[] = {"zZombie_Base","z_hunter"};
zombieChance = 0; zombieChance = 0.3;
lootChance = 0; lootChance = 0;
minRoaming = 1; minRoaming = 1;
maxRoaming = 2; maxRoaming = 2;
@@ -1264,7 +1290,7 @@ class HeliCrash_No50s: Default {
class Land_Ind_Shed_01_EP1: Default class Land_Ind_Shed_01_EP1: Default
{ {
zombieChance = 0; zombieChance = 0.3;
maxRoaming = 3; maxRoaming = 3;
}; };
class DynamicDebris: Default class DynamicDebris: Default
@@ -1272,7 +1298,7 @@ class HeliCrash_No50s: Default {
lootChance = 0.4; lootChance = 0.4;
minRoaming = 0; minRoaming = 0;
maxRoaming = 2; maxRoaming = 2;
zombieChance = 0; zombieChance = 0.3;
zombieClass[] = {"zZombie_Base","zZombie_Base","z_teacher","z_suit1","z_suit2"}; zombieClass[] = {"zZombie_Base","zZombie_Base","z_teacher","z_suit1","z_suit2"};
itemType[] = { itemType[] = {
{ "ItemWatch","generic" }, { "ItemWatch","generic" },

View File

@@ -63,6 +63,10 @@ if (!isDedicated) then {
//Wild //Wild
//wild_spawnZombies = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\wild_spawnZombies.sqf"; //wild_spawnZombies = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\wild_spawnZombies.sqf";
//Maps
//fnc_MapEventHandler = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fnc_MapEventHandler.sqf";
// //
dog_findTargetAgent = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\dog_findTargetAgent.sqf"; dog_findTargetAgent = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\dog_findTargetAgent.sqf";
@@ -87,6 +91,8 @@ if (!isDedicated) then {
player_dropWeapon = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_dropWeapon.sqf"; player_dropWeapon = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_dropWeapon.sqf";
player_setTrap = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_setTrap.sqf"; player_setTrap = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_setTrap.sqf";
object_pickup = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\object_pickup.sqf"; object_pickup = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\object_pickup.sqf";
player_flipvehicle = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_flipvehicle.sqf";
player_sleep = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_sleep.sqf";
//ui //ui
player_selectSlot = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\ui_selectSlot.sqf"; player_selectSlot = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\ui_selectSlot.sqf";
@@ -185,10 +191,10 @@ if (!isDedicated) then {
_tPos = eyePos _target; //(getPosASL _target); _tPos = eyePos _target; //(getPosASL _target);
_zPos = eyePos _agent; //(getPosASL _agent); _zPos = eyePos _agent; //(getPosASL _agent);
if ((count _tPos > 0) and (count _zPos > 0)) then { if ((count _tPos > 0) and (count _zPos > 0)) then {
_cantSee = terrainIntersectASL [(eyePos _target), (eyePos _agent)]; _cantSee = terrainIntersectASL [_tPos, _zPos];
//diag_log ("terrainIntersectASL: " + str(_cantSee)); //diag_log ("terrainIntersectASL: " + str(_cantSee));
if (!_cantSee) then { if (!_cantSee) then {
_cantSee = lineIntersects [(eyePos _target), (eyePos _agent)]; _cantSee = lineIntersects [_tPos, _zPos];
//diag_log ("lineIntersects: " + str(_cantSee)); //diag_log ("lineIntersects: " + str(_cantSee));
}; };
}; };
@@ -230,10 +236,12 @@ if (!isDedicated) then {
_btnRespawn ctrlEnable false; _btnRespawn ctrlEnable false;
}; };
abort_enable = 0 spawn {};
dayz_disableAbort = { dayz_disableAbort = {
private["_display","_btnAbort","_combattimeout"]; private["_display","_btnAbort","_combattimeout","_zAround"];
_combattimeout = player getVariable["combattimeout",0]; _combattimeout = player getVariable["combattimeout",0];
if(_combattimeout < time) exitWith {}; _zAround = (count (player nearEntities ["zZombie_Base",50]) > 0);
if (_zAround || _combattimeout > time) then {
disableSerialization; disableSerialization;
waitUntil { waitUntil {
_display = findDisplay 49; _display = findDisplay 49;
@@ -241,6 +249,35 @@ if (!isDedicated) then {
}; };
_btnAbort = _display displayCtrl 104; _btnAbort = _display displayCtrl 104;
_btnAbort ctrlEnable false; _btnAbort ctrlEnable false;
if (_zAround && _combattimeout <= time) then {
if (!scriptDone abort_enable) then {
terminate abort_enable;
sleep 0.5;
};
abort_enable = [] spawn {
private["_timeOut","_timeMax","_display","_btnAbort"];
_timeOut = 0;
_timeMax = 30;
disableSerialization;
while {_timeOut <= _timeMax} do {
scopeName "loop";
_display = findDisplay 49;
if (!isNull _display) then {
if (_timeOut == _timeMax) then {
_btnAbort = _display displayCtrl 104;
_btnAbort ctrlEnable true;
};
cutText [format ["You can Abort in %1",(_timeMax - _timeOut)], "PLAIN DOWN"];
} else {
breakOut "loop";
};
_timeOut = _timeOut + 1;
sleep 1;
};
cutText ["", "PLAIN DOWN"];
};
};
};
}; };
dayz_spaceInterrupt = { dayz_spaceInterrupt = {

View File

@@ -1,26 +1,5 @@
//Medical Event Handlers "dayzSetFuel" addPublicVariableEventHandler {(_this select 1) call local_sefFuel};
"norrnRaLW" addPublicVariableEventHandler {[_this select 1] execVM "\z\addons\dayz_code\medical\publicEH\load_wounded.sqf"};
"norrnRLact" addPublicVariableEventHandler {[_this select 1] execVM "\z\addons\dayz_code\medical\load\load_wounded.sqf"};
"norrnRDead" addPublicVariableEventHandler {[_this select 1] execVM "\z\addons\dayz_code\medical\publicEH\deadState.sqf"};
"usecBleed" addPublicVariableEventHandler {_id = (_this select 1) spawn fnc_usec_damageBleed};
"usecBandage" addPublicVariableEventHandler {(_this select 1) call player_medBandage};
"usecInject" addPublicVariableEventHandler {(_this select 1) call player_medInject};
"usecEpi" addPublicVariableEventHandler {(_this select 1) call player_medEpi};
"usecTransfuse" addPublicVariableEventHandler {(_this select 1) call player_medTransfuse};
"usecMorphine" addPublicVariableEventHandler {(_this select 1) call player_medMorphine};
"usecPainK" addPublicVariableEventHandler {(_this select 1) call player_medPainkiller};
"dayzHit" addPublicVariableEventHandler {(_this select 1) call fnc_usec_damageHandler};
"dayzHitV" addPublicVariableEventHandler {(_this select 1) call fnc_usec_damageVehicle};
"dayzHideBody" addPublicVariableEventHandler {hideBody (_this select 1)};
"dayzGutBody" addPublicVariableEventHandler {(_this select 1) spawn local_gutObject};
"dayzSetFuel" addPublicVariableEventHandler {(_this select 1) spawn local_sefFuel};
"dayzSetFix" addPublicVariableEventHandler {(_this select 1) call object_setFixServer};
"dayzDelLocal" addPublicVariableEventHandler {(_this select 1) call object_delLocal};
"dayzVehicleInit" addPublicVariableEventHandler {(_this select 1) call fnc_vehicleEventHandler};
"dayzHumanity" addPublicVariableEventHandler {(_this select 1) spawn player_humanityChange};
"dayz_serverObjectMonitor" addPublicVariableEventHandler {dayz_serverObjectMonitor = dayz_safety};
//Server only
if (isServer) then { if (isServer) then {
"dayzDeath" addPublicVariableEventHandler {(_this select 1) call server_playerDied}; "dayzDeath" addPublicVariableEventHandler {(_this select 1) call server_playerDied};
"dayzDiscoAdd" addPublicVariableEventHandler {dayz_disco set [count dayz_disco,(_this select 1)];}; "dayzDiscoAdd" addPublicVariableEventHandler {dayz_disco set [count dayz_disco,(_this select 1)];};
@@ -34,21 +13,34 @@ if (isServer) then {
"dayzTraderMenu" addPublicVariableEventHandler {(_this select 1) call server_traders}; // for all traders "dayzTraderMenu" addPublicVariableEventHandler {(_this select 1) call server_traders}; // for all traders
"dayzLogin" addPublicVariableEventHandler {(_this select 1) call server_playerLogin}; "dayzLogin" addPublicVariableEventHandler {(_this select 1) call server_playerLogin};
"dayzLogin2" addPublicVariableEventHandler {(_this select 1) call server_playerSetup}; "dayzLogin2" addPublicVariableEventHandler {(_this select 1) call server_playerSetup};
// "dayzPlayerMorph" addPublicVariableEventHandler {(_this select 1) call server_playerMorph}; "dayzPlayerMorph" addPublicVariableEventHandler {(_this select 1) call server_playerMorph};
// "dayzUpdate" addPublicVariableEventHandler {_id = (_this select 1) spawn dayz_processUpdate};
"dayzLoginRecord" addPublicVariableEventHandler {(_this select 1) call dayz_recordLogin}; "dayzLoginRecord" addPublicVariableEventHandler {(_this select 1) call dayz_recordLogin};
// "dayzCharSave" addPublicVariableEventHandler {(_this select 1) call server_playerSync};
"dayzCharDisco" addPublicVariableEventHandler {(_this select 1) call server_characterSync}; "dayzCharDisco" addPublicVariableEventHandler {(_this select 1) call server_characterSync};
"dayzSetFix" addPublicVariableEventHandler {(_this select 1) call object_setFixServer};
"dayzGutBody" addPublicVariableEventHandler {(_this select 1) spawn local_gutObject};
"usecMorphine" addPublicVariableEventHandler {
(_this select 1) select 0 setVariable["hit_legs",0];
(_this select 1) select 0 setVariable["hit_hands",0];
};
}; };
//Client only
if (!isDedicated) then { if (!isDedicated) then {
"norrnRaLW" addPublicVariableEventHandler {[_this select 1] execVM "\z\addons\dayz_code\medical\publicEH\load_wounded.sqf"};
"norrnRLact" addPublicVariableEventHandler {[_this select 1] execVM "\z\addons\dayz_code\medical\load\load_wounded.sqf"};
"usecMorphine" addPublicVariableEventHandler {(_this select 1) call player_medMorphine};
"usecBleed" addPublicVariableEventHandler {_id = (_this select 1) spawn fnc_usec_damageBleed};
"usecBandage" addPublicVariableEventHandler {(_this select 1) call player_medBandage};
"usecEpi" addPublicVariableEventHandler {(_this select 1) call player_medEpi};
"usecTransfuse" addPublicVariableEventHandler {(_this select 1) call player_medTransfuse};
"usecPainK" addPublicVariableEventHandler {(_this select 1) call player_medPainkiller};
"dayzHideBody" addPublicVariableEventHandler {hideBody (_this select 1)};
"dayzHumanity" addPublicVariableEventHandler {(_this select 1) spawn player_humanityChange};
"dayzHitV" addPublicVariableEventHandler {(_this select 1) call fnc_usec_damageVehicle};
"dayzSetDate" addPublicVariableEventHandler {setDate (_this select 1)}; "dayzSetDate" addPublicVariableEventHandler {setDate (_this select 1)};
"dayzFlies" addPublicVariableEventHandler {(_this select 1) call spawn_flies}; "dayzFlies" addPublicVariableEventHandler {(_this select 1) call spawn_flies};
"dayzRoadFlare" addPublicVariableEventHandler {(_this select 1) spawn object_roadFlare}; "dayzRoadFlare" addPublicVariableEventHandler {(_this select 1) spawn object_roadFlare};
"norrnRaDrag" addPublicVariableEventHandler {[_this select 1] execVM "\z\addons\dayz_code\medical\publicEH\animDrag.sqf"}; "norrnRaDrag" addPublicVariableEventHandler {[_this select 1] execVM "\z\addons\dayz_code\medical\publicEH\animDrag.sqf"};
"norrnRnoAnim" addPublicVariableEventHandler {[_this select 1] execVM "\z\addons\dayz_code\medical\publicEH\noAnim.sqf"};
// "changeCharacter" addPublicVariableEventHandler {(_this select 1) call player_serverModelChange};
// "dayzSwitch" addPublicVariableEventHandler {(_this select 1) call server_switchPlayer};
"dayzFire" addPublicVariableEventHandler {nul=(_this select 1) spawn BIS_Effects_Burn}; "dayzFire" addPublicVariableEventHandler {nul=(_this select 1) spawn BIS_Effects_Burn};
}; };

View File

@@ -11,6 +11,10 @@ Camo1_DZ = "Camo1_DZ";
Soldier1_DZ = "Soldier1_DZ"; Soldier1_DZ = "Soldier1_DZ";
Rocket_DZ = "Rocket_DZ"; Rocket_DZ = "Rocket_DZ";
AllPlayers = ["Soldier_Crew_PMC","Sniper1_DZ","Camo1_DZ","Soldier1_DZ","Rocket_DZ"];
AllPlayersVehicles = ["Soldier_Crew_PMC","Sniper1_DZ","Camo1_DZ","Soldier1_DZ","Rocket_DZ","AllVehicles"];
PZombie_VB = "PZombie_VB"; PZombie_VB = "PZombie_VB";
pz_policeman = "pz_policeman"; pz_policeman = "pz_policeman";
@@ -89,6 +93,7 @@ dayz_resetSelfActions = {
s_player_deleteBuild = -1; s_player_deleteBuild = -1;
s_player_forceSave = -1; s_player_forceSave = -1;
s_player_flipveh = -1; s_player_flipveh = -1;
s_player_sleep = -1;
s_player_movedog = -1; s_player_movedog = -1;
s_player_speeddog = -1; s_player_speeddog = -1;
s_player_calldog = -1; s_player_calldog = -1;

View File

@@ -17,4 +17,6 @@ _eh2 = _unit addeventhandler ["Killed",{ _this call vehicle_handleKilled } ];
if (isServer) then { if (isServer) then {
_eh3 = _unit addEventHandler ["GetOut", {[(_this select 0),"all"] call server_updateObject;}]; _eh3 = _unit addEventHandler ["GetOut", {[(_this select 0),"all"] call server_updateObject;}];
_eh4 = _unit addEventHandler ["GetIn", {[(_this select 0),"all"] call server_updateObject;}]; _eh4 = _unit addEventHandler ["GetIn", {[(_this select 0),"all"] call server_updateObject;}];
_eh5 = _unit addEventHandler ["Killed",{ _this call vehicle_handleKilled } ];
_eh6 = _unit addeventhandler ["HandleDamage",{ _this call vehicle_handleDamage } ];
}; };

View File

@@ -43,6 +43,6 @@ if (_finished) then {
_id = dayzHumanity spawn player_humanityChange; _id = dayzHumanity spawn player_humanityChange;
} else { } else {
r_interrupt = false; r_interrupt = false;
[objNull, player, rSwitchMove,""] call RE; player switchMove "";
player playActionNow "stop"; player playActionNow "stop";
}; };

View File

@@ -87,7 +87,7 @@ class RscDisplayMain : RscStandardDisplay
class DAYZ_Version : CA_Version class DAYZ_Version : CA_Version
{ {
idc = -1; idc = -1;
text = "DayZ 1.7.5.D1222"; text = "DayZ 1.7.5.M1D7";
y = "(SafeZoneH + SafeZoneY) - (1 - 0.95)"; y = "(SafeZoneH + SafeZoneY) - (1 - 0.95)";
}; };
class CA_TitleMainMenu; class CA_TitleMainMenu;

View File

@@ -639,6 +639,12 @@
<German>Turn Over %1</German> <German>Turn Over %1</German>
<Russian>Turn Over %1</Russian> <Russian>Turn Over %1</Russian>
</Key> </Key>
<Key ID="str_actions_self_sleep">
<Original>Sleep</Original>
<English>Sleep</English>
<German>Sleep</German>
<Russian>Sleep</Russian>
</Key>
<Key ID="STR_CHAR_2"> <Key ID="STR_CHAR_2">
<Original>Bandit</Original> <Original>Bandit</Original>
<English>Bandit</English> <English>Bandit</English>

View File

@@ -1085,12 +1085,9 @@ class FSM
"dayz_slowCheck = [] spawn player_spawn_2;" \n "dayz_slowCheck = [] spawn player_spawn_2;" \n
"" \n "" \n
"_world = toUpper(worldName); //toUpper(getText (configFile >> ""CfgWorlds"" >> (worldName) >> ""description""));" \n "_world = toUpper(worldName); //toUpper(getText (configFile >> ""CfgWorlds"" >> (worldName) >> ""description""));" \n
"_nearestCity = nearestLocations [getPos player, [""NameCityCapital"",""NameCity"",""NameVillage"",""NameLocal""],500];" \n "_nearestCity = (nearestLocations [getPos player, [""NameCityCapital"",""NameCity"",""NameVillage"",""NameLocal""],1000] select 0);" \n
"_town = ""Wilderness"";" \n "_town = ""Wilderness"";" \n
"" \n "if (!isNull _nearestCity) then {_town = text _nearestCity};" \n
"diag_log (""NearestCity"" + str(_nearestCity));" \n
"" \n
"if (count _nearestCity > 0) then {_town = text (_nearestCity select 0)};" \n
"" \n "" \n
"_strTime = call curTimeStr;" \n "_strTime = call curTimeStr;" \n
"_strDate = date;" \n "_strDate = date;" \n

View File

@@ -2,7 +2,7 @@
/*%FSM<HEAD>*/ /*%FSM<HEAD>*/
/* /*
item0[] = {"init",0,250,-300.000000,-250.000000,-200.000000,-200.000000,0.000000,"init"}; item0[] = {"init",0,250,-300.000000,-250.000000,-200.000000,-200.000000,0.000000,"init"};
item1[] = {"End",1,250,175.000000,-250.000000,275.000000,-200.000000,0.000000,"End"}; item1[] = {"End",1,250,50.000000,-250.000000,150.000000,-200.000000,0.000000,"End"};
item2[] = {"Not_Alive",4,218,0.000000,300.000000,100.000000,350.000000,5.000000,"Not" \n "Alive"}; item2[] = {"Not_Alive",4,218,0.000000,300.000000,100.000000,350.000000,5.000000,"Not" \n "Alive"};
item3[] = {"Nobody_Near",4,218,0.000000,375.000000,100.000000,425.000000,4.000000,"Nobody" \n "Near"}; item3[] = {"Nobody_Near",4,218,0.000000,375.000000,100.000000,425.000000,4.000000,"Nobody" \n "Near"};
item4[] = {"loiter",4,218,-300.000000,0.000000,-200.000000,50.000000,0.000000,"loiter"}; item4[] = {"loiter",4,218,-300.000000,0.000000,-200.000000,50.000000,0.000000,"loiter"};
@@ -14,8 +14,8 @@ item9[] = {"true",8,218,-300.000000,-175.000000,-200.000000,-125.000000,0.000000
item10[] = {"Begin",2,250,-300.000000,-100.000000,-200.000000,-50.000000,0.000000,"Begin"}; item10[] = {"Begin",2,250,-300.000000,-100.000000,-200.000000,-50.000000,0.000000,"Begin"};
item11[] = {"",7,210,-254.000046,-29.000004,-245.999954,-20.999996,0.000000,""}; item11[] = {"",7,210,-254.000046,-29.000004,-245.999954,-20.999996,0.000000,""};
item12[] = {"",7,210,-204.000046,146.000000,-195.999954,154.000000,0.000000,""}; item12[] = {"",7,210,-204.000046,146.000000,-195.999954,154.000000,0.000000,""};
item13[] = {"Has_Target",4,4314,-150.000000,225.000000,-50.000000,275.000000,1.000000,"Has" \n "Target"}; item13[] = {"Has_Target",4,218,-150.000000,225.000000,-50.000000,275.000000,1.000000,"Has" \n "Target"};
item14[] = {"Chase",2,250,-150.000000,300.000000,-50.000000,350.000000,0.000000,"Chase"}; item14[] = {"Chase",2,4346,-150.000000,300.000000,-50.000000,350.000000,0.000000,"Chase"};
item15[] = {"",7,210,-29.000006,146.000000,-20.999996,154.000000,0.000000,""}; item15[] = {"",7,210,-29.000006,146.000000,-20.999996,154.000000,0.000000,""};
item16[] = {"",7,210,-29.000006,196.000000,-20.999996,204.000000,0.000000,""}; item16[] = {"",7,210,-29.000006,196.000000,-20.999996,204.000000,0.000000,""};
item17[] = {"",7,210,-104.000000,196.000000,-95.999992,204.000000,0.000000,""}; item17[] = {"",7,210,-104.000000,196.000000,-95.999992,204.000000,0.000000,""};
@@ -24,10 +24,10 @@ item19[] = {"Time_Check",4,218,-275.000000,300.000000,-175.000000,350.000000,0.0
item20[] = {"No_Target",4,218,-275.000000,375.000000,-175.000000,425.000000,3.000000,"No" \n "Target"}; item20[] = {"No_Target",4,218,-275.000000,375.000000,-175.000000,425.000000,3.000000,"No" \n "Target"};
item21[] = {"",7,210,-479.000000,396.000000,-471.000000,404.000000,0.000000,""}; item21[] = {"",7,210,-479.000000,396.000000,-471.000000,404.000000,0.000000,""};
item22[] = {"",7,210,-479.000000,146.000000,-471.000000,154.000000,0.000000,""}; item22[] = {"",7,210,-479.000000,146.000000,-471.000000,154.000000,0.000000,""};
item23[] = {"",7,210,221.000000,321.000000,229.000000,329.000000,0.000000,""}; item23[] = {"",7,210,133.499985,321.000000,141.500000,329.000000,0.000000,""};
item24[] = {"",7,210,221.000000,396.000000,229.000000,404.000000,0.000000,""}; item24[] = {"",7,210,133.500000,396.000000,141.500000,404.000000,0.000000,""};
item25[] = {"Cleanup_",2,250,175.000000,200.000000,275.000000,250.000000,0.000000,"Cleanup?"}; item25[] = {"Cleanup_",2,250,-25.000000,50.000000,75.000000,100.000000,0.000000,"Cleanup?"};
item26[] = {"nobody_around",4,218,175.000000,-25.000000,275.000000,25.000000,0.000000,"nobody" \n "around"}; item26[] = {"nobody_around",4,218,50.000000,-50.000000,150.000000,0.000000,0.000000,"nobody" \n "around"};
item27[] = {"",7,210,-104.000023,396.000000,-95.999992,404.000000,0.000000,""}; item27[] = {"",7,210,-104.000023,396.000000,-95.999992,404.000000,0.000000,""};
item28[] = {"cant_see",4,218,-275.000000,450.000000,-175.000000,500.000000,2.000000,"cant" \n "see"}; item28[] = {"cant_see",4,218,-275.000000,450.000000,-175.000000,500.000000,2.000000,"cant" \n "see"};
item29[] = {"Finish_Move",2,250,-275.000000,525.000000,-175.000000,575.000000,0.000000,"Finish" \n "Move"}; item29[] = {"Finish_Move",2,250,-275.000000,525.000000,-175.000000,575.000000,0.000000,"Finish" \n "Move"};
@@ -35,34 +35,24 @@ item30[] = {"finished",4,218,-425.000000,525.000000,-325.000000,575.000000,1.000
item31[] = {"",7,210,-479.000000,546.000000,-471.000000,554.000000,0.000000,""}; item31[] = {"",7,210,-479.000000,546.000000,-471.000000,554.000000,0.000000,""};
item32[] = {"",7,210,-29.000002,546.000000,-20.999998,554.000000,0.000000,""}; item32[] = {"",7,210,-29.000002,546.000000,-20.999998,554.000000,0.000000,""};
item33[] = {"",7,210,-304.000000,146.000000,-296.000000,154.000000,0.000000,""}; item33[] = {"",7,210,-304.000000,146.000000,-296.000000,154.000000,0.000000,""};
item34[] = {"someone_here",4,218,300.000000,200.000000,400.000000,250.000000,0.000000,"someone" \n "here"}; item34[] = {"someone_here",4,218,-75.000000,-50.000000,25.000000,0.000000,0.000000,"someone" \n "here"};
item35[] = {"wait",2,250,300.000000,125.000000,400.000000,175.000000,0.000000,"wait"}; item35[] = {"too_long",4,218,-425.000000,600.000000,-325.000000,650.000000,0.000000,"too long"};
item36[] = {"time_up",4,218,300.000000,-25.000000,400.000000,25.000000,0.000000,"time" \n "up"}; item36[] = {"",7,210,-229.000000,621.000000,-221.000000,629.000000,0.000000,""};
item37[] = {"",7,210,346.000000,95.999992,354.000000,104.000000,0.000000,""}; item37[] = {"",7,210,-479.000000,621.000000,-471.000000,629.000000,0.000000,""};
item38[] = {"",7,210,221.000000,96.000008,229.000000,103.999977,0.000000,""}; item38[] = {"Reset_Targeting",2,250,-525.000000,325.000000,-425.000000,375.000000,0.000000,"Reset" \n "Targeting"};
item39[] = {"Time_Check",4,218,425.000000,125.000000,525.000000,175.000000,0.000000,"Time" \n "Check"}; item39[] = {"No_target",4,218,-525.000000,250.000000,-425.000000,300.000000,0.000000,"No target"};
item40[] = {"",7,210,346.000000,-79.000000,354.000000,-71.000000,0.000000,""}; item40[] = {"",7,210,-104.000000,471.000000,-95.999992,479.000000,0.000000,""};
item41[] = {"",7,210,221.000000,-79.000000,229.000000,-71.000000,0.000000,""}; item41[] = {"player_check",4,218,-425.000000,0.000000,-325.000000,50.000000,0.000000,"player" \n "check"};
item42[] = {"too_long",4,218,-425.000000,600.000000,-325.000000,650.000000,0.000000,"too long"}; item42[] = {"is_Dedicated",4,218,-125.000000,-250.000000,-25.000000,-200.000000,5.000000,"is" \n "Dedicated"};
item43[] = {"",7,210,-229.000000,621.000000,-221.000000,629.000000,0.000000,""};
item44[] = {"",7,210,-479.000000,621.000000,-471.000000,629.000000,0.000000,""};
item45[] = {"Reset_Targeting",2,250,-525.000000,325.000000,-425.000000,375.000000,0.000000,"Reset" \n "Targeting"};
item46[] = {"No_target",4,218,-525.000000,250.000000,-425.000000,300.000000,0.000000,"No target"};
item47[] = {"deleted",4,218,425.000000,-25.000000,525.000000,25.000000,0.000000,"deleted"};
item48[] = {"",7,210,471.000000,-79.000000,479.000000,-71.000000,0.000000,""};
item49[] = {"",7,210,471.000000,95.999977,479.000000,104.000023,0.000000,""};
item50[] = {"",7,210,-104.000000,471.000000,-95.999992,479.000000,0.000000,""};
item51[] = {"player_check",4,218,-425.000000,0.000000,-325.000000,50.000000,0.000000,"player" \n "check"};
item52[] = {"is_Dedicated",4,218,50.000000,-250.000000,150.000000,-200.000000,5.000000,"is" \n "Dedicated"};
link0[] = {0,9}; link0[] = {0,9};
link1[] = {0,52}; link1[] = {0,42};
link2[] = {2,23}; link2[] = {2,23};
link3[] = {3,24}; link3[] = {3,24};
link4[] = {4,5}; link4[] = {4,5};
link5[] = {5,6}; link5[] = {5,6};
link6[] = {5,12}; link6[] = {5,12};
link7[] = {5,18}; link7[] = {5,18};
link8[] = {5,51}; link8[] = {5,41};
link9[] = {6,5}; link9[] = {6,5};
link10[] = {7,2}; link10[] = {7,2};
link11[] = {7,8}; link11[] = {7,8};
@@ -82,48 +72,35 @@ link24[] = {17,13};
link25[] = {18,5}; link25[] = {18,5};
link26[] = {19,14}; link26[] = {19,14};
link27[] = {20,21}; link27[] = {20,21};
link28[] = {21,45}; link28[] = {21,38};
link29[] = {22,33}; link29[] = {22,33};
link30[] = {23,25}; link30[] = {23,25};
link31[] = {24,23}; link31[] = {24,23};
link32[] = {25,34}; link32[] = {25,26};
link33[] = {25,38}; link33[] = {25,34};
link34[] = {26,41}; link34[] = {26,1};
link35[] = {27,20}; link35[] = {27,20};
link36[] = {27,50}; link36[] = {27,40};
link37[] = {28,29}; link37[] = {28,29};
link38[] = {29,30}; link38[] = {29,30};
link39[] = {29,32}; link39[] = {29,32};
link40[] = {29,43}; link40[] = {29,36};
link41[] = {30,31}; link41[] = {30,31};
link42[] = {31,21}; link42[] = {31,21};
link43[] = {32,8}; link43[] = {32,8};
link44[] = {33,5}; link44[] = {33,5};
link45[] = {34,35}; link45[] = {34,5};
link46[] = {35,37}; link46[] = {35,37};
link47[] = {35,39}; link47[] = {36,35};
link48[] = {36,40}; link48[] = {37,31};
link49[] = {37,36}; link49[] = {38,17};
link50[] = {37,38}; link50[] = {38,39};
link51[] = {37,49}; link51[] = {39,22};
link52[] = {38,26}; link52[] = {40,28};
link53[] = {39,35}; link53[] = {41,5};
link54[] = {40,41}; link54[] = {42,1};
link55[] = {41,1}; globals[] = {25.000000,1,0,0,0,640,480,1,101,6316128,1,-671.713867,363.212036,624.148865,-248.208023,713,601,1};
link56[] = {42,44}; window[] = {2,-1,-1,-32000,-32000,777,66,1274,66,3,730};
link57[] = {43,42};
link58[] = {44,31};
link59[] = {45,17};
link60[] = {45,46};
link61[] = {46,22};
link62[] = {47,48};
link63[] = {48,40};
link64[] = {49,47};
link65[] = {50,28};
link66[] = {51,5};
link67[] = {52,1};
globals[] = {25.000000,1,0,0,0,640,480,1,99,6316128,1,-558.318542,127.785744,597.327209,-38.360462,626,580,1};
window[] = {0,-1,-1,-1,-1,755,44,1252,44,1,643};
*//*%FSM</HEAD>*/ *//*%FSM</HEAD>*/
class FSM class FSM
{ {
@@ -249,9 +226,6 @@ class FSM
"if (!_hasMoved) then {" \n "if (!_hasMoved) then {" \n
" _agent setVariable[""doLoiter"",true,true];" \n " _agent setVariable[""doLoiter"",true,true];" \n
"};" \n "};" \n
"if (!moveToCompleted _agent) then {" \n
" _agent moveTo (position _agent);" \n
"};" \n
"" \n "" \n
"//Enable combat timer." \n "//Enable combat timer." \n
"_target setVariable[""startcombattimer"", 1, true];" \n "_target setVariable[""startcombattimer"", 1, true];" \n
@@ -358,6 +332,7 @@ class FSM
{ {
name = "Chase"; name = "Chase";
init = /*%FSM<STATEINIT""">*/"_timeN = time;" \n init = /*%FSM<STATEINIT""">*/"_timeN = time;" \n
"_vehicle = (getPosATL vehicle player);" \n
"" \n "" \n
"if (speed _agent < 0.1) then {_countr = _countr + 1} else {_countr = 0};" \n "if (speed _agent < 0.1) then {_countr = _countr + 1} else {_countr = 0};" \n
"_target = _agent call zombie_findTargetAgent;" \n "_target = _agent call zombie_findTargetAgent;" \n
@@ -365,14 +340,24 @@ class FSM
"_targetPos = getPosATL _target;" \n "_targetPos = getPosATL _target;" \n
"" \n "" \n
"//Move to target" \n "//Move to target" \n
"if (vehicle player == player) then {" \n
" _agent moveTo _targetPos;" \n " _agent moveTo _targetPos;" \n
"_agent forceSpeed 7;" \n " _agent forceSpeed 6;" \n
"} else {" \n
" _agent moveTo _vehicle;" \n
" _agent forceSpeed 6;" \n
"};" \n
"" \n "" \n
"//Check if LOS" \n "" \n
"if (_losCheck == 2) then {" \n "if (_agent distance player <= 100) then {" \n
" _losCheck = 0;" \n
" _cantSee = [_agent,_target] call dayz_losCheck;" \n " _cantSee = [_agent,_target] call dayz_losCheck;" \n
"};" \n "};" \n
"" \n
"//Check if LOS" \n
"//if (_losCheck == 2) then {" \n
"// _losCheck = 0;" \n
"//_cantSee = [_agent,_target] call dayz_losCheck;" \n
"//};" \n
""/*%FSM</STATEINIT""">*/; ""/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/; precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links class Links
@@ -434,13 +419,23 @@ class FSM
class Cleanup_ class Cleanup_
{ {
name = "Cleanup_"; name = "Cleanup_";
init = /*%FSM<STATEINIT""">*/"_waitStart = time;" \n init = /*%FSM<STATEINIT""">*/"_list = (getposATL _agent) nearEntities [[""CAManBase"",""AllVehicles""],400];" \n
"_isSomeone = ({isPlayer _x} count _list) > 0;" \n
"" \n "" \n
"_list = (getposATL _agent) nearEntities [[""CAManBase"",""AllVehicles""],400];" \n "_waitStart = time;"/*%FSM</STATEINIT""">*/;
"_isSomeone = ({isPlayer _x} count _list) > 0;"/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/; precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links class Links
{ {
/*%FSM<LINK "someone_here">*/
class someone_here
{
priority = 0.000000;
to="Loiter";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"_isSomeone"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "nobody_around">*/ /*%FSM<LINK "nobody_around">*/
class nobody_around class nobody_around
{ {
@@ -451,16 +446,6 @@ class FSM
action=/*%FSM<ACTION""">*/"dayz_spawnZombies = dayz_spawnZombies - 1;"/*%FSM</ACTION""">*/; action=/*%FSM<ACTION""">*/"dayz_spawnZombies = dayz_spawnZombies - 1;"/*%FSM</ACTION""">*/;
}; };
/*%FSM</LINK>*/ /*%FSM</LINK>*/
/*%FSM<LINK "someone_here">*/
class someone_here
{
priority = 0.000000;
to="wait";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"_isSomeone"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
}; };
}; };
/*%FSM</STATE>*/ /*%FSM</STATE>*/
@@ -508,60 +493,6 @@ class FSM
}; };
}; };
/*%FSM</STATE>*/ /*%FSM</STATE>*/
/*%FSM<STATE "wait">*/
class wait
{
name = "wait";
init = /*%FSM<STATEINIT""">*/"_list = (getposATL _agent) nearEntities [[""CAManBase"",""AllVehicles""],300];" \n
"_isSomeone = ({isPlayer _x} count _list) > 0;" \n
"" \n
"_timeN = time;"/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
/*%FSM<LINK "time_up">*/
class time_up
{
priority = 0.000000;
to="End";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"(time - _waitStart) > 300"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "nobody_around">*/
class nobody_around
{
priority = 0.000000;
to="End";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"!_isSomeone"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/"dayz_spawnZombies = dayz_spawnZombies - 1;"/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "deleted">*/
class deleted
{
priority = 0.000000;
to="End";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"isNull _agent;"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "Time_Check">*/
class Time_Check
{
priority = 0.000000;
to="wait";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"(time - _timeN) > 30"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "Reset_Targeting">*/ /*%FSM<STATE "Reset_Targeting">*/
class Reset_Targeting class Reset_Targeting
{ {
@@ -595,9 +526,6 @@ class FSM
"if (!_hasMoved) then {" \n "if (!_hasMoved) then {" \n
" _agent setVariable[""doLoiter"",true,true];" \n " _agent setVariable[""doLoiter"",true,true];" \n
"};" \n "};" \n
"if (!moveToCompleted _agent) then {" \n
" _agent moveTo (position _agent);" \n
"};" \n
"" \n "" \n
"//Enable combat timer." \n "//Enable combat timer." \n
"_target setVariable[""startcombattimer"", 1, true];" \n "_target setVariable[""startcombattimer"", 1, true];" \n

View File

@@ -8,7 +8,7 @@ _class = _this select 3;
if (!(_object isKindOf "Building")) exitWith { if (!(_object isKindOf "Building")) exitWith {
deleteVehicle _object; deleteVehicle _object;
}; };
_allowed = [_object] call check_publishobject; _allowed = [_object, "Server"] call check_publishobject;
if (!_allowed) exitWith { }; if (!_allowed) exitWith { };
@@ -24,6 +24,10 @@ _key call server_hiveWrite;
_object setVariable ["ObjectUID", _uid,true]; _object setVariable ["ObjectUID", _uid,true];
if (_object isKindOf "TentStorage") then {
_object addMPEventHandler ["MPKilled",{_this call vehicle_handleServerKilled;}];
};
dayz_serverObjectMonitor set [count dayz_serverObjectMonitor,_object]; dayz_serverObjectMonitor set [count dayz_serverObjectMonitor,_object];
//diag_log ("PUBLISH: Created " + (_class) + " with ID " + _uid); //diag_log ("PUBLISH: Created " + (_class) + " with ID " + _uid);

View File

@@ -52,17 +52,6 @@ while {true} do {
diag_log(format["CRASHSPAWNER: Spawning '%1' with loot table '%2' NOW! (%3) at: %4", _crashName, _lootTable, time, str(_position)]); diag_log(format["CRASHSPAWNER: Spawning '%1' with loot table '%2' NOW! (%3) at: %4", _crashName, _lootTable, time, str(_position)]);
_crash = createVehicle [_crashModel,_position, [], 0, "CAN_COLLIDE"]; _crash = createVehicle [_crashModel,_position, [], 0, "CAN_COLLIDE"];
deleteMarker "Secure Helicopter Wreck";
///Add crash site markers
_crashmarker = createMarker["Secure Helicopter Wreck",_position];
_crashmarker setMarkerColor "ColorRed";
_crashmarker setMarkerType "Flag";
//_crashmarker setMarkerShape "ELLIPSE";
//_crashmarker setMarkerBrush "Grid";
_crashmarker setMarkerText "Secure Helicopter";
_crashmarker setMarkerSize [1, 1];
// Randomize the direction the wreck is facing // Randomize the direction the wreck is facing
_crash setDir round(random 360); _crash setDir round(random 360);

View File

@@ -89,6 +89,47 @@ _object_damage = {
_key call server_hiveWrite; _key call server_hiveWrite;
_object setVariable ["needUpdate",false,true]; _object setVariable ["needUpdate",false,true];
}; };
_object_killed = {
private["_hitpoints","_array","_hit","_selection","_key","_damage"];
_hitpoints = _object call vehicle_getHitpoints;
_damage = damage _object;
_array = [];
{
_hit = [_object,_x] call object_getHit;
_selection = getText (configFile >> "CfgVehicles" >> (typeOf _object) >> "HitPoints" >> _x >> "name");
if (_hit > 0) then {_array set [count _array,[_selection,_hit]]};
_hit = 1;
_object setHit ["_selection", _hit]
} forEach _hitpoints;
_damage = 1;
if (_objectID == "0") then {
_key = format["CHILD:306:%1:%2:%3:",_uid,_array,_damage];
} else {
_key = format["CHILD:306:%1:%2:%3:",_objectID,_array,_damage];
};
diag_log ("HIVE: WRITE: "+ str(_key));
_key call server_hiveWrite;
_object setVariable ["needUpdate",false,true];
};
_object_repair = {
private["_hitpoints","_array","_hit","_selection","_key","_damage"];
_hitpoints = _object call vehicle_getHitpoints;
_damage = damage _object;
_array = [];
{
_hit = [_object,_x] call object_getHit;
_selection = getText (configFile >> "CfgVehicles" >> (typeOf _object) >> "HitPoints" >> _x >> "name");
if (_hit > 0) then {_array set [count _array,[_selection,_hit]]};
_object setHit ["_selection", _hit]
} forEach _hitpoints;
_key = format["CHILD:306:%1:%2:%3:",_objectID,_array,_damage];
diag_log ("HIVE: WRITE: "+ str(_key));
_key call server_hiveWrite;
_object setVariable ["needUpdate",false,true];
};
// TODO ---------------------- // TODO ----------------------
_object setVariable ["lastUpdate",time,true]; _object setVariable ["lastUpdate",time,true];
@@ -105,15 +146,18 @@ switch (_type) do {
call _object_inventory; call _object_inventory;
}; };
case "damage": { case "damage": {
if ( (time - _lastUpdate) > 5 && !_needUpdate ) then { diag_log ("Damaged Called");
if ( (time - _lastUpdate) > 5) then {
call _object_damage; call _object_damage;
} else { } else {
if ( !_needUpdate ) then { diag_log format["DEBUG: Added to NeedUpdate=%1",_object];
needUpdate_objects set [count needUpdate_objects, _object]; needUpdate_objects set [count needUpdate_objects, _object];
}; };
}; };
case "killed": {
call _object_killed;
}; };
case "repair": { case "repair": {
call _object_damage; call _object_repair;
}; };
}; };

View File

@@ -30,25 +30,36 @@ server_spawnCrashSite = compile preprocessFileLineNumbers "\z\addons\dayz_se
vehicle_handleInteract = { vehicle_handleInteract = {
private["_object"]; private["_object"];
_object = _this select 0; _object = _this select 0;
needUpdate_objects = needUpdate_objects - [_object];
[_object, "all"] call server_updateObject; [_object, "all"] call server_updateObject;
}; };
vehicle_handleServerKilled = {
private["_unit","_killer"];
_unit = _this select 0;
_killer = _this select 1;
[_unit, "killed"] call server_updateObject;
_unit removeAllMPEventHandlers "MPKilled";
_unit removeAllEventHandlers "Killed";
_unit removeAllEventHandlers "HandleDamage";
_unit removeAllEventHandlers "GetIn";
_unit removeAllEventHandlers "GetOut";
};
check_publishobject = { check_publishobject = {
private["_allowed","_allowedObjects","_object"]; private["_allowed","_allowedObjects","_object"];
_object = _this select 0; _object = _this select 0;
_playername = _this select 1;
_allowedObjects = ["TentStorage", "VaultStorageLocked", "Hedgehog_DZ", "Sandbag1_DZ","TrapBear","Wire_cat1"]; _allowedObjects = ["TentStorage", "VaultStorageLocked", "Hedgehog_DZ", "Sandbag1_DZ","TrapBear","Wire_cat1"];
_noncombatitems = ["ThrownObjects", "RoadFlare", "ChemLight"];
_allowed = false; _allowed = false;
diag_log format ["DEBUG: Checking if Object: %1 is allowed", _object]; diag_log format ["DEBUG: Checking if Object: %1 is allowed published by %2", _object, _playername];
if ((typeOf _object) in _allowedObjects) then { if ((typeOf _object) in _allowedObjects) then {
diag_log format ["DEBUG: Object: %1 Safe",_object]; diag_log format ["DEBUG: Object: %1 published by %2 is Safe",_object, _playername];
_allowed = true;
};
if ((typeOf _object) in _noncombatitems) then {
diag_log format ["DEBUG: NONCombat: %1 Safe",_object];
_allowed = true; _allowed = true;
}; };

View File

@@ -1,11 +1,11 @@
/*%FSM<COMPILE "scriptedFSM.cfg, DayZ Server Cleanup">*/ /*%FSM<COMPILE "F:\DayZ\Tools\FSM Editor Personal Edition\scriptedFSM.cfg, DayZ Server Cleanup">*/
/*%FSM<HEAD>*/ /*%FSM<HEAD>*/
/* /*
item0[] = {"init",0,250,-75.000000,-400.000000,25.000000,-350.000000,0.000000,"init"}; item0[] = {"init",0,250,-75.000000,-400.000000,25.000000,-350.000000,0.000000,"init"};
item1[] = {"true",8,218,-75.000000,-175.000000,25.000000,-125.000000,0.000000,"true"}; item1[] = {"true",8,218,-75.000000,-175.000000,25.000000,-125.000000,0.000000,"true"};
item2[] = {"waiting",2,250,-75.000000,-100.000000,25.000000,-50.000000,0.000000,"waiting"}; item2[] = {"waiting",2,250,-75.000000,-100.000000,25.000000,-50.000000,0.000000,"waiting"};
item3[] = {"time_dead",4,218,-300.000000,-25.000000,-200.000000,25.000000,4.000000,"time" \n "dead"}; item3[] = {"time_dead",4,218,-300.000000,-25.000000,-200.000000,25.000000,4.000000,"time" \n "dead"};
item4[] = {"cleanup_dead",2,250,-300.000000,50.000000,-200.000000,100.000000,0.000000,"cleanup" \n "dead"}; item4[] = {"cleanup_dead",2,4346,-300.000000,50.000000,-200.000000,100.000000,0.000000,"cleanup" \n "dead"};
item5[] = {"time_items",4,218,0.000000,-25.000000,100.000000,25.000000,2.000000,"time" \n "items"}; item5[] = {"time_items",4,218,0.000000,-25.000000,100.000000,25.000000,2.000000,"time" \n "items"};
item6[] = {"cleanup_items",2,250,0.000000,50.000000,100.000000,100.000000,0.000000,"cleanup" \n "items"}; item6[] = {"cleanup_items",2,250,0.000000,50.000000,100.000000,100.000000,0.000000,"cleanup" \n "items"};
item7[] = {"time_sync",4,218,-150.000000,-25.000000,-50.000000,25.000000,3.000000,"time" \n "sync"}; item7[] = {"time_sync",4,218,-150.000000,-25.000000,-50.000000,25.000000,3.000000,"time" \n "sync"};
@@ -19,7 +19,7 @@ item14[] = {"prepare",2,250,-75.000000,-250.000000,25.000000,-200.000000,0.00000
item15[] = {"update_objects",2,250,150.000000,50.000000,250.000000,100.000000,0.000000,"update objects"}; item15[] = {"update_objects",2,250,150.000000,50.000000,250.000000,100.000000,0.000000,"update objects"};
item16[] = {"time_obj_update",4,218,150.000000,-25.000000,250.000000,25.000000,1.000000,"time" \n "obj update"}; item16[] = {"time_obj_update",4,218,150.000000,-25.000000,250.000000,25.000000,1.000000,"time" \n "obj update"};
item17[] = {"anti_hack",4,218,150.000000,-100.000000,250.000000,-50.000000,0.000000,"anti hack"}; item17[] = {"anti_hack",4,218,150.000000,-100.000000,250.000000,-50.000000,0.000000,"anti hack"};
item18[] = {"check_for_hacker",2,4346,150.000000,-175.000000,250.000000,-125.000000,0.000000,"check for" \n "hackers"}; item18[] = {"check_for_hacker",2,250,150.000000,-175.000000,250.000000,-125.000000,0.000000,"check for" \n "hackers"};
link0[] = {0,13}; link0[] = {0,13};
link1[] = {1,2}; link1[] = {1,2};
link2[] = {2,3}; link2[] = {2,3};
@@ -43,8 +43,8 @@ link19[] = {15,9};
link20[] = {16,15}; link20[] = {16,15};
link21[] = {17,18}; link21[] = {17,18};
link22[] = {18,1}; link22[] = {18,1};
globals[] = {25.000000,1,0,0,0,640,480,1,33,6316128,1,-380.893097,315.695129,343.738464,-460.417511,803,927,1}; globals[] = {25.000000,1,0,0,0,640,480,1,33,6316128,1,-389.695160,324.496887,564.215637,-260.262604,803,927,1};
window[] = {2,-1,-1,-1,-1,1039,132,1246,132,3,820}; window[] = {2,-1,-1,-1,-1,995,88,1202,88,3,820};
*//*%FSM</HEAD>*/ *//*%FSM</HEAD>*/
class FSM class FSM
{ {
@@ -144,77 +144,48 @@ class FSM
" diag_log (""CLEANUP: TOO MANY DEAD BODIES"");" \n " diag_log (""CLEANUP: TOO MANY DEAD BODIES"");" \n
" diag_log (""CLEANUP: PERFORMING BODY CLEANUP ON "" + str(_numDead) + "" BODIES"");" \n " diag_log (""CLEANUP: PERFORMING BODY CLEANUP ON "" + str(_numDead) + "" BODIES"");" \n
"" \n "" \n
" //Cleanup zed's & players" \n
"" \n
" _delQtyZ = 0; " \n " _delQtyZ = 0; " \n
" _numZombie = {_x isKindOf ""zZombie_Base""} count allDead;" \n " _delQtyP = 0;" \n
" {" \n " {" \n
" if (local _x) then {" \n " if (local _x) then {" \n
" if (_x isKindOf ""zZombie_Base"") then {" \n " if (_x isKindOf ""zZombie_Base"") then {" \n
" deleteVehicle _x;" \n " deleteVehicle _x;" \n
" _delQtyZ = _delQtyZ + 1;" \n " _delQtyZ = _delQtyZ + 1;" \n
" } else {" \n " } else {" \n
" _exists = _x in _deadBodies;" \n " _pos = getPosATL _x;" \n
" if(!_exists) then {" \n
" _deadBodies set [count _deadBodies,_x];" \n
" };" \n
" };" \n
" };" \n
" } forEach allDead;" \n
"" \n
" //Cleanup players" \n
" _body = objNull;" \n
" _delQtyP = 0;" \n
" _delDo = _numDead - _numZombie;" \n
" _delDo = ((_delDo min (count _deadBodies)) -1);" \n
" if (_delDo<1) then {_delDo=1};" \n
" for ""_i"" from 0 to _delDo do {" \n
" _body = _deadBodies select _i;" \n
" if(!isNil ""_body"") then {" \n
" _pos = getPosATL _body;" \n
" _sfx = nearestObject [_pos,""Sound_Flies""];" \n " _sfx = nearestObject [_pos,""Sound_Flies""];" \n
" if (!(isNull _sfx)) then {" \n " if (!(isNull _sfx)) then {" \n
" deleteVehicle _sfx;" \n " deleteVehicle _sfx;" \n
" };" \n " };" \n
" deleteVehicle _body;" \n " deleteVehicle _x;" \n
" _delQtyP = _delQtyP + 1;" \n " _delQtyP = _delQtyP + 1;" \n
" };" \n " };" \n
" _deadBodies set [_i,""DEL""];" \n " };" \n
" } forEach allDead;" \n
"" \n "" \n
" //Let's move this into the body removal sequence so uncontrolled flies are removed only if corpses are cleaned" \n
" //Check Flies" \n " //Check Flies" \n
" _isOK=-1;" \n
" _dwUSOFC=0;" \n " _dwUSOFC=0;" \n
" {" \n " {" \n
" //_isOk = {!alive _x} count (nearestObjects [_x, [""CAManBase""], 2]);" \n " if (local _x) then {" \n
" _isOk = {!alive _x} count (_x nearEntities [[""CAManBase""], 2]);" \n
" if (_isOk>-1) then {" \n
" diag_log (""DW_DEBUG _isOK: "" + str(_isOK) );" \n
" };" \n
" if ((_isOk>-1) AND (_isOK<1)) then {" \n
" //diag_log (""CLEANUP: DELETING A SOUND OF FLIES"");" \n
" _dwUSOFC=_dwUSOFC+1;" \n
" deleteVehicle _x;" \n " deleteVehicle _x;" \n
" diag_log (""CLEANUP: DELETED AN UNCONTROLLED SOUND OF FLIES:"" + str(_dwUSOFC) );" \n " _dwUSOFC=_dwUSOFC+1;" \n
" };" \n " };" \n
" diag_log (""CLEANUP: DELETED AN UNCONTROLLED SOUND OF FLIES:"" + str(_dwUSOFC) );" \n
" } forEach allMissionObjects ""Sound_Flies"";" \n " } forEach allMissionObjects ""Sound_Flies"";" \n
"" \n "" \n
"" \n
" //Let's move this into the body removal sequence so uncontrolled fireplaces are removed only if corpses are cleaned" \n
" //clean fireplaces" \n " //clean fireplaces" \n
" _dwUFPC=0;" \n " _dwUFPC=0;" \n
" {" \n " {" \n
" if (local _x) then {" \n " if (local _x) then {" \n
" //diag_log (""CLEANUP: DELETING A UNCONTROLLED FIREPLACE"");" \n
" deleteVehicle _x;" \n " deleteVehicle _x;" \n
" _dwUFPC=_dwUFPC+1;" \n " _dwUFPC=_dwUFPC+1;" \n
" diag_log (""CLEANUP: DELETED AN UNCONTROLLED FIREPLACE:"" + str(_dwUFPC) );" \n
" };" \n " };" \n
" diag_log (""CLEANUP: DELETED AN UNCONTROLLED FIREPLACE:"" + str(_dwUFPC) );" \n
" } forEach allMissionObjects ""Land_Fire_DZ"";" \n " } forEach allMissionObjects ""Land_Fire_DZ"";" \n
"" \n "" \n
" };" \n
" _deadBodies = _deadBodies - [""DEL""];" \n
"" \n
" diag_log (""CLEANUP: DELETED "" + str(_delQtyP) + "" PLAYER BODIES AND "" + str(_delQtyZ) + "" BODIES"");" \n " diag_log (""CLEANUP: DELETED "" + str(_delQtyP) + "" PLAYER BODIES AND "" + str(_delQtyZ) + "" BODIES"");" \n
"" \n
"};" \n "};" \n
""/*%FSM</STATEINIT""">*/; ""/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/; precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
@@ -246,7 +217,7 @@ class FSM
" if (local _x) then {" \n " if (local _x) then {" \n
" _qtyLoc = _qtyLoc + 1; // debugging" \n " _qtyLoc = _qtyLoc + 1; // debugging" \n
" _keep = _x getVariable [""permaLoot"",false];" \n " _keep = _x getVariable [""permaLoot"",false];" \n
" _nearby = {isPlayer _x} count (_x nearEntities [[""CAManBase""], 100]);" \n " _nearby = count (_x nearEntities [AllPlayers, 100]);" \n
" if ( (!_keep) && (_nearby==0) ) then {" \n " if ( (!_keep) && (_nearby==0) ) then {" \n
" deleteVehicle _x;" \n " deleteVehicle _x;" \n
" _delQty = _delQty + 1;" \n " _delQty = _delQty + 1;" \n

View File

@@ -53,6 +53,11 @@ diag_log "HIVE: Starting";
_ownerID = _x select 3; _ownerID = _x select 3;
_worldspace = _x select 4; _worldspace = _x select 4;
_intentory= _x select 5;
_hitPoints= _x select 6;
_fuel = _x select 7;
_damage = _x select 8;
_dir = 0; _dir = 0;
_pos = [0,0,0]; _pos = [0,0,0];
_wsDone = false; _wsDone = false;
@@ -71,11 +76,6 @@ diag_log "HIVE: Starting";
diag_log ("MOVED OBJ: " + str(_idKey) + " of class " + _type + " to pos: " + str(_pos)); diag_log ("MOVED OBJ: " + str(_idKey) + " of class " + _type + " to pos: " + str(_pos));
}; };
_intentory= _x select 5;
_hitPoints= _x select 6;
_fuel = _x select 7;
_damage = _x select 8;
if (_damage < 1) then { if (_damage < 1) then {
diag_log format["OBJ: %1 - %2", _idKey,_type]; diag_log format["OBJ: %1 - %2", _idKey,_type];
@@ -88,7 +88,11 @@ diag_log "HIVE: Starting";
clearWeaponCargoGlobal _object; clearWeaponCargoGlobal _object;
clearMagazineCargoGlobal _object; clearMagazineCargoGlobal _object;
if (_object isKindOf "TentStorage") then {
_pos set [2,0];
_object setpos _pos; _object setpos _pos;
_object addMPEventHandler ["MPKilled",{_this call vehicle_handleServerKilled;}];
};
_object setdir _dir; _object setdir _dir;
_object setDamage _damage; _object setDamage _damage;
@@ -157,10 +161,6 @@ diag_log "HIVE: Starting";
} forEach _hitpoints; } forEach _hitpoints;
_object setvelocity [0,0,1]; _object setvelocity [0,0,1];
_object setFuel _fuel; _object setFuel _fuel;
if (getDammage _object == 1) then {
_position = ([(getPosATL _object),0,100,10,0,500,0] call BIS_fnc_findSafePos);
_object setPosATL _position;
};
if(_ownerID != "0") then { if(_ownerID != "0") then {
_object setvehiclelock "locked"; _object setvehiclelock "locked";