1.0.0.2 pre test

+ [FIXED] Can now refuel and siphon while swimming again. Must stay at
same position for 6 seconds.
+ [FIXED] Refuel sound now only plays when an actual refuel/siphon takes
place.
+ [FIXED] Check fuel levels again just before refuel or siphon actions.
+ [FIXED] Player Zombies can now no longer pickup "Take %" objects.
+ [FIXED] Dogs now correctly consume any available raw meat.
+ [FIXED] Machete now spawns correctly, it was missing
WeaponHolder_ItemMachete config.
+ [UPDATED] Updated batttleye scripts.
+ [CHANGED] Gutting zombies and animals now double checks for
"meatHarvested" after animation and before action.
+ [CHANGED] Survivor2_DZ was not in the list of AllPlayers.
+ [CHANGED] Lowered alert radius when gutting zombies to 50m instead of
100m.
+ [CHANGED] Moved all clothes to cfgloots to reduce spawn chances as we
add more. (clothes, militaryclothes, specialclothes)
+ [CHANGED] HMMWV URAL and UAZ road debris now has its own military loot
tables that include sandbags.
+ [CHANGED] New vehicle spawns now have a new damage system using a
random percent between min and max variables. Defaults:
(DynamicVehicleDamageLow = 0; DynamicVehicleDamageHigh = 100;)
+ [CHANGED] Animal count was too low was 5 now 8. Can be overridden with
dayz_maxAnimals set inside mission init.sqf.
+ [ADDED] Taming dogs now has a 50% chance to fail and consume meat,
Chance to tame without failure increases with number of days alive
(dayz_skilllevel).
+ [ADDED] Added spawnMarkerCount variable override to use more spawn
marker locations. (default=4)
+ [ADDED] Added medic animation requirement for gutting zombies and
animals so you can now walk away to cancel gutting process.
+ [ADDED] Added old bandit skin back in as Skin_Bandit2_DZ as a drop on
Residential.
+ [ADDED] New vehicle spawns now have a chance to spawn 0-3 loot
randomly from all cfgloots.
+ [ADDED] Added new desert themed domed camping tent (ItemTentDomed)
that holds 75 mags, 12 weapons, and 7 backpacks - thanks to vRNemesis
for model and texture.
+ [ADDED] Added server side ability to enabled taming dogs and can be
enabled by setting dayz_tameDogs = true; within mission init.sqf.
(default: false)
+ [ADDED] Added parachute spawning players as a server side option
enable server side with the variable dayz_paraSpawn = true; within
mission init.sqf. (default: false)
+ [ADDED] Randomly spawning (like helicopter crashes) Mass Grave with
8-16 zombies and 2x more loot.
+ [REMOVED] Commented out remaining unused call to stream_locationCheck.
+ [INFO] Changes can be made to all zombie spawn variables via the
mission init.sqf (defaults: dayz_maxLocalZombies = 40;
dayz_maxGlobalZombies =30; dayz_maxZeds = 500;)
+ [INFO] DZEdebug = true; (default: false) will enable debug so that
road debris and new vehicle spawns are visible via map markers. Also
debug will enable "Save to arma.RPT" that allows access of a tool to
obtain lootpos information for buildings used for adding support for
additional maps.
This commit is contained in:
vbawol
2013-04-10 08:54:13 -05:00
parent f93113b067
commit dd20524793
53 changed files with 2523 additions and 333 deletions

View File

@@ -29,13 +29,23 @@ if (_killerName != "nil") then
}
else
{
_message = format["%1 was killed by %2 with weapon %3",_victimName, _killerName, _weapon];
_message = format["%1 was killed by %2 with weapon %3 from %4m",_victimName, _killerName, _weapon, _distance];
_loc_message = format["PKILL: %1 was killed by %2 with weapon %3 from %4m", _victimName, _killerName, _weapon, _distance];
};
diag_log _loc_message;
// [nil, nil, rspawn, [_killer, _message], { (_this select 0) globalChat (_this select 1) }] call RE;
// [nil, nil, rHINT, _message] call RE;
if(DZE_DeathMsgGlobal) then {
[nil, nil, rspawn, [_killer, _message], { (_this select 0) globalChat (_this select 1) }] call RE;
};
if(DZE_DeathMsgSide) then {
[nil, nil, rspawn, [_killer, _message], { (_this select 0) sideChat (_this select 1) }] call RE;
};
if(DZE_DeathMsgTitleTextLocal) then {
[nil,nil,"loc",rTITLETEXT,_message,"PLAIN DOWN"] call RE;
};
if(DZE_DeathMsgTitleText) then {
[nil,nil,"per",rTITLETEXT,_message,"PLAIN DOWN"] call RE;
};
// build array to store death messages to allow viewing at message board in trader citys.
PlayerDeaths set [count PlayerDeaths,_message];

View File

@@ -1,4 +1,4 @@
private["_characterID","_playerObj","_playerID","_dummy","_worldspace","_state","_doLoop","_key","_primary","_medical","_stats","_humanity","_lastinstance","_friendlies","_randomSpot","_position","_debug","_distance","_hit","_fractures","_score","_findSpot","_mkr","_counter","_isNear","_isZero","_pos","_isIsland","_w","_clientID"];
private ["_characterID","_playerObj","_playerID","_dummy","_worldspace","_state","_doLoop","_key","_primary","_medical","_stats","_humanity","_lastinstance","_friendlies","_randomSpot","_position","_debug","_distance","_hit","_fractures","_score","_findSpot","_pos","_isIsland","_w","_clientID","_spawnMC"];
//Wait for HIVE to be free
//diag_log ("SETUP: attempted with " + str(_this));
@@ -197,7 +197,12 @@ if (_randomSpot) then {
if(isnil "spawnShoremode") then {
spawnShoremode = 1;
};
if(isnil "spawnMarkerCount") then {
spawnMarkerCount = 4;
};
// The wiki states floor has a uniform distribution but will not reach the last number so we add +1
_spawnMC = spawnMarkerCount + 1;
//spawn into random
_findSpot = true;
@@ -205,11 +210,12 @@ if (_randomSpot) then {
while {_findSpot} do {
_counter = 0;
while {_counter < 20 and _findSpot} do {
_mkr = "spawn" + str(round(random 4));
// switched to floor
_mkr = "spawn" + str(floor(random _spawnMC));
_position = ([(getMarkerPos _mkr),0,spawnArea,10,0,2000,spawnShoremode] call BIS_fnc_findSafePos);
_isNear = count (_position nearEntities ["Man",100]) == 0;
_isZero = ((_position select 0) == 0) and ((_position select 1) == 0);
//Island Check //TeeChange
//Island Check //TeeChange
_pos = _position;
_isIsland = false; //Can be set to true during the Check
for [{_w=0},{_w<=150},{_w=_w+2}] do {

View File

@@ -22,13 +22,18 @@ while {true} do {
_timeToSpawn = time + _frequency + _timeAdjust;
//Adding some Random systems
_crashModel = ["UH60Wreck_DZ","UH1Wreck_DZ"] call BIS_fnc_selectRandom;
_crashModel = ["UH60Wreck_DZ","UH1Wreck_DZ","Mass_grave"] call BIS_fnc_selectRandom;
//Crash loot just uncomment the one you wish to use by default with 50cals is enabled.
//Table including 50 cals
_lootTable = ["Military","HeliCrash","MilitarySpecial"] call BIS_fnc_selectRandom;
//Table without 50 cals
//_lootTable = ["Military","HeliCrash_No50s","MilitarySpecial"] call BIS_fnc_selectRandom;
if(_crashModel == "Mass_grave") then {
_lootTable = "MassGrave";
} else {
//Crash loot just uncomment the one you wish to use by default with 50cals is enabled.
//Table including 50 cals
_lootTable = ["Military","HeliCrash","MilitarySpecial"] call BIS_fnc_selectRandom;
//Table without 50 cals
//_lootTable = ["Military","HeliCrash_No50s","MilitarySpecial"] call BIS_fnc_selectRandom;
};
_crashName = getText (configFile >> "CfgVehicles" >> _crashModel >> "displayName");
@@ -74,6 +79,13 @@ while {true} do {
_crash setVariable ["ObjectID",1,true];
_num = round(random _randomizedLoot) + _guaranteedLoot;
if(_crashModel == "Mass_grave") then {
_spawnFire = false;
_num = _num * 2;
};
if (_spawnFire) then {
//["dayzFire",[_crash,2,time,false,_fadeFire]] call broadcastRpcCallAll;
dayzFire = [_crash,2,time,false,_fadeFire];
@@ -81,11 +93,11 @@ while {true} do {
_crash setvariable ["fadeFire",_fadeFire,true];
};
_num = round(random _randomizedLoot) + _guaranteedLoot;
_config = configFile >> "CfgBuildingLoot" >> _lootTable;
_itemTypes = [] + getArray (_config >> "itemType");
_index = dayz_CBLBase find "HeliCrash";
_index = dayz_CBLBase find _lootTable;
_weights = dayz_CBLChances select _index;
_cntWeights = count _weights;

View File

@@ -8,7 +8,6 @@ _type = _this select 1;
_parachuteWest = typeOf _object == "ParachuteWest";
_isNotOk = false;
_firstTime = false;
_removeCounter = 0;
_objectID = _object getVariable ["ObjectID","0"];
_uid = _object getVariable ["ObjectUID","0"];
@@ -33,12 +32,14 @@ if (!_parachuteWest) then {
// Loop to wait it out
_counter = _object getVariable ["markedForRemoval","0"];
_removeCounter = _object setVariable ["markedForRemoval",(_counter + 1)];
_removeCounter = _counter + 1;
_object setVariable ["markedForRemoval",(_counter + 1)];
};
};
if (_isNotOk and _removeCounter < 10) exitWith { diag_log(format["About to remove vehicle: %1 - %2 / 10", typeOf _object, _removeCounter]); };
if (_isNotOk and _removeCounter >= 10) exitWith { deleteVehicle _object; };
if (_isNotOk and _removeCounter < 5) exitWith { diag_log(format["About to remove vehicle: %1 - %2 / 10", typeOf _object, _removeCounter]); };
if (_isNotOk and _removeCounter >= 5) exitWith { deleteVehicle _object; };
_lastUpdate = _object getVariable ["lastUpdate",time];

View File

@@ -205,8 +205,6 @@ spawn_vehicles = {
} else {
// Spawn around buildings and 50% near roads
if((random 1) > 0.5) then {
waitUntil{!isNil "BIS_fnc_selectRandom"};
_position = RoadList call BIS_fnc_selectRandom;
@@ -220,8 +218,6 @@ spawn_vehicles = {
} else {
waitUntil{!isNil "BIS_fnc_selectRandom"};
_position = BuildingList call BIS_fnc_selectRandom;
@@ -260,6 +256,24 @@ spawn_vehicles = {
clearWeaponCargoGlobal _veh;
clearMagazineCargoGlobal _veh;
// Add 0-3 loots to vehicle using random cfgloots
_allCfgLoots = [] + (getArray (configFile >> "cfgLoot"));
_num = floor(random 4);
for "_x" from 1 to _num do {
_iClass = _allCfgLoots call BIS_fnc_selectRandom;
_itemTypes = [] + ((getArray (configFile >> "cfgLoot" >> _iClass)) select 0);
_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;
_item addMagazineCargoGlobal [_itemType,1];
};
[_veh,[_dir,_objPosition],_vehicle,true,"0"] call server_publishVeh;
};
};
@@ -269,11 +283,10 @@ spawn_vehicles = {
spawn_roadblocks = {
private["_position","_veh","_num","_config","_itemType","_itemChance","_weights","_index","_iArray","_isRoad","_roadlist","_istoomany"];
_WreckList = ["SKODAWreck","HMMWVWreck","UralWreck","datsun01Wreck","hiluxWreck","datsun02Wreck","UAZWreck","Land_Misc_Garb_Heap_EP1","Fort_Barricade_EP1","Rubbish2"];
_WreckLoot = ["DynamicDebris"];
waitUntil{!isNil "BIS_fnc_selectRandom"};
if (isDedicated) then {
waitUntil{!isNil "BIS_fnc_selectRandom"};
_position = RoadList call BIS_fnc_selectRandom;
_position = _position modelToWorld [0,0,0];
@@ -295,10 +308,14 @@ spawn_roadblocks = {
_marker setMarkerType "DOT";
};
waitUntil{!isNil "BIS_fnc_selectRandom"};
_spawnveh = _WreckList call BIS_fnc_selectRandom;
waitUntil{!isNil "BIS_fnc_selectRandom"};
_spawnloot = _WreckLoot call BIS_fnc_selectRandom;
if(_spawnveh == "HMMWVWreck" or _spawnveh == "UralWreck" or _spawnveh == "UAZWreck") then {
_spawnloot = "DynamicDebrisMilitary";
} else {
_spawnloot = "DynamicDebris";
};
diag_log("DEBUG: Spawning a crashed " + _spawnveh + " with " + _spawnloot + " at " + str(_position));
_veh = createVehicle [_spawnveh,_position, [], 0, "CAN_COLLIDE"];
@@ -341,36 +358,28 @@ spawn_roadblocks = {
};
// Damage generator fuction
if(isnil "DynamicVehicleDamageLow") then {
DynamicVehicleDamageLow = 0;
};
if(isnil "DynamicVehicleDamageHigh") then {
DynamicVehicleDamageHigh = 100;
};
// Damage generator function
generate_new_damage = {
private ["_damage","_rnd"];
_rnd = random 1;
if(_rnd > 0.5) then {
_damage = 0;
} else {
_rnd = random 1;
if(_rnd > 0.5) then {
_damage = 0.50;
} else {
_damage = 1;
};
};
private ["_damage"];
_damage = (random ((DynamicVehicleDamageHigh-DynamicVehicleDamageLow)+DynamicVehicleDamageLow))/100;
_damage;
};
// Damage generator fuction
generate_exp_damage = {
private ["_damage","_rnd"];
_rnd = random 1;
if(_rnd > 0.5) then {
_damage = 0;
} else {
_rnd = random 1;
if(_rnd > 0.5) then {
_damage = 0.50;
} else {
_damage = 0.85;
};
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;
};