Jump to content

Problem with zombie_generate.sqf totally out of the blue


Bob_the_K

Recommended Posts

Hi, all of a sudden I'm seeing these errors in my client-side .RPT file.  They don't appear server side at all.  I've done nothing at all with zombie_generate.sqf at all so I have no idea what's causing this unless it's an issue with variable declarations (or lack thereof) that are interfering across scripts.  I understand there was something we had to to do fix the private variables being undeclared prior to 1.63 but I was never able to actually find it on the Bohemia forums - just veiled hints in other forum posts.

 

 

Error in expression > "CfgMagazines" >> _loot >> "count");


if(_loot_count>1) the>
Error position: <_loot >> "count");
if(_loot_count>1) the>
Error Undefined variable in expression: _loot
File z\addons\dayz_code\compile\zombie_generate.sqf, line 100
Error in expression _loot = _array select (_weights select (floor(random (c>
Error position: Error Zero divisorFile z\addons\dayz_code\compile\zombie_generate.sqf, line 98Error in expression > "CfgMagazines" >> _loot >> "count");if(_loot_count>1) the> Error position: <_loot >> "count");if(_loot_count>1) the> Error Undefined variable in expression: _lootFile z\addons\dayz_code\compile\zombie_generate.sqf, line 100Error in expression _loot = _array select (_weights select (floor(random (c> Error position:
Error Zero divisor
File z\addons\dayz_code\compile\zombie_generate.sqf, line 98
Error in expression > "CfgMagazines" >> _loot >> "count");
if(_loot_count>1) the>
Error position: <_loot >> "count");
if(_loot_count>1) the>
Error Undefined variable in expression: _loot
File z\addons\dayz_code\compile\zombie_generate.sqf, line 100
Error in expression _loot = _array select (_weights select (floor(random (c>
Error position: Error Zero divisorFile z\addons\dayz_code\compile\zombie_generate.sqf, line 98Error in expression > "CfgMagazines" >> _loot >> "count");if(_loot_count>1) the> Error position: <_loot >> "count");if(_loot_count>1) the> Error Undefined variable in expression: _lootFile z\addons\dayz_code\compile\zombie_generate.sqf, line 100Error in expression _loot = _array select (_weights select (floor(random (c> Error position:
Error Zero divisor
File z\addons\dayz_code\compile\zombie_generate.sqf, line 98
Error in expression > "CfgMagazines" >> _loot >> "count");
if(_loot_count>1) the>
Error position: <_loot >> "count");
if(_loot_count>1) the>
Error Undefined variable in expression: _loot
File z\addons\dayz_code\compile\zombie_generate.sqf, line 100
Error in expression _loot = _array select (_weights select (floor(random (c>
Error position: Error Zero divisorFile z\addons\dayz_code\compile\zombie_generate.sqf, line 98["Worldspace: [273.165,[11666.1,15220.2,0.00144196]]","PLAIN DOWN"]Error in expression _veh removeEventHandler ["Fired", _EH_Fired];player_zombieCheck = compil> Error position: <_EH_Fired];player_zombieCheck = compil> Error Undefined variable in expression: _eh_firedFile mpmissions\__CUR_MP.Tavi\safezone.sqf, line 30Error in expression > "CfgMagazines" >> _loot >> "count");if(_loot_count>1) the> Error position: <_loot >> "count");if(_loot_count>1) the> Error Undefined variable in expression: _lootFile z\addons\dayz_code\compile\zombie_generate.sqf, line 100Error in expression _loot = _array select (_weights select (floor(random (c> Error position:
Error Zero divisor
File z\addons\dayz_code\compile\zombie_generate.sqf, line 98
Error in expression < = alive _agent;
_targetPos = getPosATL _target;



_agent moveTo _targetPos;
_a>
Error position: <_target;



_agent moveTo _targetPos;
_a>
Error Undefined variable in expression: _target

 

 

For what it's worth, here's zombie_generate.sqf:

 

private ["_position","_unitTypes","_radius","_method","_agent","_loot_count","_index","_weights","_loot","_array","_lootType","_favStance","_tooClose","_type","_rnd","_id","_doLoiter","_maxControlledZombies","_cantSee"];



_position = _this select 0;
_doLoiter = _this select 1; // wander around
_unitTypes = _this select 2; // class of wanted models
_maxControlledZombies = round(dayz_maxLocalZombies);

_cantSee = {
private ["_isok","_deg","_eye","_ed","_xasl","_zPos","_fov","_safeDistance","_farDistance"];

_isok = true;
_zPos = +(_this select 0);
if (count _zPos < 3) exitWith {
diag_log format["%1::_cantSee illegal pos %2", __FILE__, _zPos];
false
};
_zPos = ATLtoASL _zPos;
_fov = _this select 1; // players half field of view
_safeDistance = _this select 2; // minimum distance. closer is wrong
_farDistance = _this select 3; // distance further we won't check
_zPos set [2, (_zPos select 2) + 1.7];
{
_xasl = getPosASL _x;
if (_xasl distance _zPos < _farDistance) then {
if (_xasl distance _zPos < _safeDistance) then {
_isok = false;
}
else {
_eye = eyePos _x; // ASL
_ed = eyeDirection _x;
_ed = (_ed select 0) atan2 (_ed select 1);
_deg = [_xasl, _zPos] call BIS_fnc_dirTo;
_deg = (_deg - _ed + 720) % 360;
if (_deg > 180) then { _deg = _deg - 360; };
if ((abs(_deg) < _fov) && {( // in right angle sector?
(!(terrainIntersectASL [_zPos, _eye]) // no terrain between?
&& {(!(lineIntersects [_zPos, _eye]))}) // && no object between?
)}) then {
_isok = false;
};
};
};
if (!_isok) exitWith {false};
} count playableUnits;

_isok
};

if ((dayz_spawnZombies < _maxControlledZombies) && (dayz_CurrentNearByZombies < dayz_maxNearByZombies) && (dayz_currentGlobalZombies < dayz_maxGlobalZeds)) then {
if ([_position, dayz_cantseefov, 10, dayz_cantseeDist] call _cantSee) then {
//Check if anyone close
_tooClose = {isPlayer _x} count (_position nearEntities ["CAManBase",30]) > 0;
if (_tooClose) exitwith {
// diag_log ("Zombie_Generate: was too close to player.");
};

//Add zeds if unitTypes equals 0
if (count _unitTypes == 0) then {
if (DZE_MissionLootTable) then {
_unitTypes = []+ getArray (missionConfigFile >> "CfgBuildingLoot" >> "Default" >> "zombieClass");
} else {
_unitTypes = []+ getArray (configFile >> "CfgBuildingLoot" >> "Default" >> "zombieClass");
};
};

// lets create an agent
_type = _unitTypes call BIS_fnc_selectRandom;
_radius = 5;
_method = "NONE";
if (_doLoiter) then {
_radius = 40;
_method = "CAN_COLLIDE";
};

//Check if point is in water
if (surfaceIsWater _position) exitwith { };

_agent = createAgent [_type, _position, [], _radius, _method];
sleep 0.001;

//add to global counter
dayz_spawnZombies = dayz_spawnZombies + 1;

//Add some loot
_loot = "";
_array = [];
_rnd = random 1;
if (_rnd < 0.2) then {
_lootType = configFile >> "CfgVehicles" >> _type >> "zombieLoot";
if (isText _lootType) then {
_array = [];
{
_array set [count _array, _x select 0]
} count getArray (configFile >> "cfgLoot" >> getText(_lootType));
if (count _array > 0) then {
_index = dayz_CLBase find getText(_lootType);
_weights = dayz_CLChances select _index;
_loot = _array select (_weights select (floor(random (count _weights))));
if(!isNil "_array") then {
_loot_count = getNumber(configFile >> "CfgMagazines" >> _loot >> "count");
if(_loot_count>1) then {
_agent addMagazine [_loot, ceil(random _loot_count)];
} else {
_agent addMagazine _loot;
};
};
};
};
};

_agent setVariable["agentObject",_agent];

if (!isNull _agent) then {
// sometime Z can be seen flying in very high speed while tp. Its altitude is set underground to hide that.
/*
_agtPos = getPosASL _agent;
_agtPos set [2, -3];
_agent setPosASL _agtPos;
sleep 0.001;
_agtPos = +(_position);
_agtPos set [2, -3];
_agent setPosASL _agtPos;
sleep 0.001;
*/
_agent setDir random 360;
//_agent setPosATL _position;
sleep 0.001;

_position = getPosATL _agent;

_favStance = (
switch ceil(random(3^0.5)^2) do {
//case 3: {"DOWN"}; // prone
case 2: {"Middle"}; // Kneel
default {"UP"} // stand-up
}
);
_agent setUnitPos _favStance;

_agent setVariable ["stance", _favStance];
_agent setVariable ["BaseLocation", _position];
_agent setVariable ["doLoiter", true]; // true: Z will be wandering, false: stay still
_agent setVariable ["myDest", _position];
_agent setVariable ["newDest", _position];
[_agent, _position] call zombie_loiter;
};
//add to monitor
//dayz_zedMonitor set [count dayz_zedMonitor, _agent];

//Disable simulation
PVDZE_Server_Simulation = [_agent, false];
publicVariableServer "PVDZE_Server_Simulation";

//Start behavior
_id = [_position,_agent] execFSM "\z\AddOns\dayz_code\system\zombie_agent.fsm";
};
};

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
  • Advertisement
  • Discord

×
×
  • Create New...