From b8d5c7cda7d88c46d2b3712eb6943cb4a15280a7 Mon Sep 17 00:00:00 2001 From: icomrade Date: Thu, 14 Sep 2017 12:44:44 -0400 Subject: [PATCH] Change slow zombie behavior and variable thanks for the idea DieTanx. note: The only changes to the FSM were in the action field of the UnitReady condition --- CHANGE LOG 1.0.6.2.txt | 1 + SQF/dayz_code/compile/player_zombieCheck.sqf | 7 +- SQF/dayz_code/configVariables.sqf | 1 + SQF/dayz_code/system/zombie_agent.fsm | 1898 +++++++++-------- .../MPMissions/DayZ_Epoch_1.Takistan/init.sqf | 1 - .../DayZ_Epoch_10.Mountains_ACR/init.sqf | 1 - .../DayZ_Epoch_11.Chernarus/init.sqf | 1 - .../DayZ_Epoch_12.isladuala/init.sqf | 1 - .../MPMissions/DayZ_Epoch_13.Tavi/init.sqf | 1 - .../MPMissions/DayZ_Epoch_15.namalsk/init.sqf | 1 - .../DayZ_Epoch_16.Panthera2/init.sqf | 1 - .../DayZ_Epoch_17.Chernarus/init.sqf | 1 - .../DayZ_Epoch_19.FDF_Isle1_a/init.sqf | 1 - .../MPMissions/DayZ_Epoch_2.Utes/init.sqf | 1 - .../MPMissions/DayZ_Epoch_20.fapovo/init.sqf | 1 - .../MPMissions/DayZ_Epoch_21.Caribou/init.sqf | 1 - .../DayZ_Epoch_22.smd_sahrani_A2/init.sqf | 1 - .../DayZ_Epoch_23.cmr_ovaron/init.sqf | 1 - .../MPMissions/DayZ_Epoch_24.Napf/init.sqf | 1 - .../DayZ_Epoch_25.sauerland/init.sqf | 1 - .../DayZ_Epoch_26.sauerland_winter/init.sqf | 1 - .../MPMissions/DayZ_Epoch_27.ruegen/init.sqf | 1 - .../DayZ_Epoch_3.Shapur_BAF/init.sqf | 1 - .../MPMissions/DayZ_Epoch_4.Zargabad/init.sqf | 1 - .../DayZ_Epoch_5.Bootcamp_ACR/init.sqf | 1 - .../MPMissions/DayZ_Epoch_7.Lingor/init.sqf | 1 - .../DayZ_Epoch_8.ProvingGrounds_PMC/init.sqf | 1 - .../DayZ_Epoch_9.Woodland_ACR/init.sqf | 1 - 28 files changed, 991 insertions(+), 940 deletions(-) diff --git a/CHANGE LOG 1.0.6.2.txt b/CHANGE LOG 1.0.6.2.txt index 1c0243f82..172fa09f8 100644 --- a/CHANGE LOG 1.0.6.2.txt +++ b/CHANGE LOG 1.0.6.2.txt @@ -18,6 +18,7 @@ [UPDATED] Added cleanup of destroyed vehicles and CraterLong after 25 minutes in sched_corpses.sqf [UPDATED] Reverted group menu color scheme to A2OA default for consistency with game dialogs [UPDATED] Positions defined in DZE_SafeZonePosArray no longer spawn loot or zombies in their respective radius, added new compile to check positions against DZE_SafeZonePosArray "_PosInSafeZone = _positionToCheck call DZE_SafeZonePosCheck;" +[UPDATED] DZE_ZombieSpeed = [min, max]; has replaced the, now removed, DZE_slowZombies variable. set DZE_ZombieSpeed = [2,2]; for DZE_slowZombies = true; behavior. see configvariables.sqf for more info [FIXED] Kamaz refuel trucks no longer allow automatic refueling. #1855 @coresync2k @dreamforceinc [FIXED] Trees at POIs can be chopped down now. Other trees spawned with createVehicle can be added to dayz_treeTypes in variables.sqf to allow chopping them down. diff --git a/SQF/dayz_code/compile/player_zombieCheck.sqf b/SQF/dayz_code/compile/player_zombieCheck.sqf index 9b58fae9a..73f891fc7 100644 --- a/SQF/dayz_code/compile/player_zombieCheck.sqf +++ b/SQF/dayz_code/compile/player_zombieCheck.sqf @@ -1,7 +1,7 @@ private ["_attacked","_chance","_near","_targeted","_localtargets","_remotetargets","_forcedSpeed","_vehicle","_refObj", "_multiplier","_isAir","_hearingThreshold","_sightThreshold","_type","_dist","_attackDist", "_targetedBySight","_targetedBySound","_targets","_last","_entHeight","_pHeight","_delta","_attackResult","_cantSee","_tPos","_zPos", -"_targetAngle","_inAngle","_lowBlood"]; +"_targetAngle","_inAngle","_lowBlood","_speedMin","_speedMax"]; _vehicle = vehicle player; _refObj = driver _vehicle; @@ -9,9 +9,12 @@ _attacked = false; // at least one Z attacked the player _near = false; //_multiplier = 1; _isAir = _vehicle isKindOf "Air"; +_speedMin = DZE_ZombieSpeed select 0; +_speedMax = DZE_ZombieSpeed select 1; { - _forcedSpeed = getNumber (configFile >> "CfgVehicles" >> (typeOf _x) >> "forcedSpeed"); + _forcedSpeed = if ((_speedMin != _speedMax) && {(_speedMin > 0) && (_speedMax > 0)}) then {((random (DZE_ZombieSpeed select 1)) max (DZE_ZombieSpeed select 0));} else {getNumber (configFile >> "CfgVehicles" >> (typeOf _x) >> "forcedSpeed");}; + //_forcedSpeed = getNumber (configFile >> "CfgVehicles" >> (typeOf _x) >> "forcedSpeed"); //_hearingThreshold = getNumber (configFile >> "CfgVehicles" >> (typeOf _x) >> "hearingThreshold"); //_sightThreshold = getNumber (configFile >> "CfgVehicles" >> (typeOf _x) >> "sightThreshold"); diff --git a/SQF/dayz_code/configVariables.sqf b/SQF/dayz_code/configVariables.sqf index b6ed4b0bb..69738e4ab 100644 --- a/SQF/dayz_code/configVariables.sqf +++ b/SQF/dayz_code/configVariables.sqf @@ -34,6 +34,7 @@ DZE_GodModeBaseExclude = []; //Array of object class names excluded from the god DZE_salvageLocked = true; //Enable or disable salvaging of locked vehicles, useful for stopping griefing on locked vehicles. DZE_DisabledChannels = [(localize "str_channel_side"),(localize "str_channel_global"),(localize "str_channel_command")]; //List of disabled voice channels. Other channels are: "str_channel_group","str_channel_direct","str_channel_vehicle" DZE_NutritionDivisor = [1, 1, 1, 1]; //array of DIVISORS that regulate the rate of [calories, thirst, hunger, temperature] use when "working" (keep in mind that temperature raises with actions) - min values 0.1 - Larger values slow the effect, smaller values accelerate it +DZE_ZombieSpeed = [0,0]; //Default agro speed is 6 per zombie config, set array elements 0 and 1 the same for non-variable speed, set to 0 to disable. array format = [min, max]; Ex: [2, 6]; results in a range of speed between 2 and 6 (2 is the old DZE_slowZombies hard-coded speed) // Death Messages DZE_DeathMsgChat = "none"; //"none","global","side","system" Display death messages in selected chat channel. diff --git a/SQF/dayz_code/system/zombie_agent.fsm b/SQF/dayz_code/system/zombie_agent.fsm index c16a2086f..f28b43e00 100644 --- a/SQF/dayz_code/system/zombie_agent.fsm +++ b/SQF/dayz_code/system/zombie_agent.fsm @@ -1,4 +1,4 @@ -/*%FSM*/ +/*%FSM*/ /*%FSM*/ /* item0[] = {"init",0,250,50.000000,-400.000000,150.000000,-350.000000,0.000000,"init"}; @@ -15,7 +15,7 @@ item10[] = {"true",8,218,-75.000000,-400.000000,25.000000,-350.000000,0.000000," item11[] = {"Begin",2,250,-75.000000,-150.000000,25.000000,-100.000000,0.000000,"Begin"}; item12[] = {"",7,210,-1179.000122,-29.000004,-1170.999878,-20.999996,0.000000,""}; item13[] = {"",7,210,-354.000031,121.000000,-346.000000,129.000000,0.000000,""}; -item14[] = {"UnitReady",4,218,-275.000000,275.000000,-175.000000,325.000000,5.000000,"UnitReady"}; +item14[] = {"UnitReady",4,4314,-275.000000,275.000000,-175.000000,325.000000,5.000000,"UnitReady"}; item15[] = {"Chase",2,250,-150.000000,375.000000,-50.000000,425.000000,0.000000,"Chase"}; item16[] = {"Time_Check",4,218,50.000000,25.000000,150.000000,75.000000,1.000000,"Time" \n "Check"}; item17[] = {"",7,210,-29.000006,121.000000,-20.999994,129.000000,0.000000,""}; @@ -84,7 +84,7 @@ item79[] = {"NotInRange",4,218,-275.000000,350.000000,-175.000000,400.000000,1.0 item80[] = {"TimeCheck",4,218,-400.000000,275.000000,-300.000000,325.000000,0.000000,"TimeCheck"}; item81[] = {"Has_Target",4,218,-150.000000,200.000000,-50.000000,250.000000,0.000000,"Has" \n "Target"}; item82[] = {"Reset_MoveTo",2,250,-275.000000,200.000000,-175.000000,250.000000,0.000000,"Reset MoveTo"}; -item83[] = {"____FAKE____",9,3320,0.000000,0.000000,0.000000,0.000000,0.000000,"____FAKE____"}; +item83[] = {"____FAKE____",9,0,0.000000,0.000000,0.000000,0.000000,0.000000,"____FAKE____"}; link0[] = {0,10}; link1[] = {0,53}; link2[] = {2,3}; @@ -200,923 +200,993 @@ link111[] = {60,83}; link112[] = {83,60}; link113[] = {61,83}; link114[] = {83,61}; -globals[] = {25.000000,1,0,0,0,640,480,1,189,6316128,1,-713.213928,288.267639,611.326172,-131.708481,806,598,1}; -window[] = {2,-1,-1,-1,-1,727,26,1234,26,3,824}; +globals[] = {0.000000,0,0,0,0,640,480,1,189,6316128,1,-497.896179,342.204590,880.103882,-416.531311,806,1244,1}; +window[] = {2,-1,-1,-32000,-32000,1039,338,1546,338,3,824}; *//*%FSM*/ class FSM { - fsmName = "DayZ Zombie Agent"; - class States - { - /*%FSM*/ - class init - { - name = "init"; - init = /*%FSM*/"_agent = _this select 1; //Compatible with old configs like Namalsk's custom zombies" \n - "_position = _agent modelToWorld [0,0,0];" \n - "_secondHand = false;" \n - "" \n - "if (count _this > 2) then {" \n - " _secondHand = true;" \n - " diag_log (""Second Hand Zombie Initialized: "" + str(_this));" \n - "};"/*%FSM*/; - precondition = /*%FSM*/""/*%FSM*/; - class Links - { - /*%FSM*/ - class is_Dedicated + fsmName = "DayZ Zombie Agent"; + class States { - priority = 5.000000; - to="End"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"isDedicated"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; + /*%FSM*/ + class init + { + name = "init"; + itemno = 0; + init = /*%FSM*/"_agent = _this select 1; //Compatible with old configs like Namalsk's custom zombies" \n + "_position = _agent modelToWorld [0,0,0];" \n + "_secondHand = false;" \n + "" \n + "if (count _this > 2) then {" \n + " _secondHand = true;" \n + " diag_log (""Second Hand Zombie Initialized: "" + str(_this));" \n + "};"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class is_Dedicated + { + itemno = 53; + priority = 5.000000; + to="End"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"isDedicated"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class true + { + itemno = 10; + priority = 0.000000; + to="Begin"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(!isNil 'dayz_clientPreload' && {dayz_clientPreload}) && !(isNull _agent)"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class End + { + name = "End"; + itemno = 1; + init = /*%FSM*/"if (!isDedicated) then {" \n + " if (!isNull _agent) then {" \n + " deleteVehicle _agent;" \n + " //dayz_spawnZombies = dayz_spawnZombies - 1;" \n + " };" \n + "} else {" \n + " [_agent] call zombie_findOwner;" \n + "};"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + }; + }; + /*%FSM*/ + /*%FSM*/ + class Looking_for_Targ + { + name = "Looking_for_Targ"; + itemno = 3; + init = /*%FSM*/"_isAlive = alive _agent;" \n + "_target = _agent call zombie_findTargetAgent;" \n + "_timeN = diag_tickTime;" \n + "" \n + "_newDest = _agent getVariable [""myDest"",getposATL _agent];" \n + "if (!isNil ""_newDest"") then {" \n + " if (_newDest distance _myDest > 0) then {" \n + " _myDest = _newDest;" \n + " _agent moveTo _myDest;" \n + " _agent forceSpeed 2;" \n + " };" \n + "};" \n + "" \n + "//diag_log (""Zombie "" + str(_agent) + "" Wait "");"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class Nobody_Near + { + itemno = 5; + priority = 6.000000; + to="Cleanup_"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"!_isSomeone"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class Not_Alive + { + itemno = 4; + priority = 5.000000; + to="Cleanup_"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"!_isAlive"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class No_Agent + { + itemno = 63; + priority = 5.000000; + to="Cleanup_"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(isNull _agent)"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class player_check + { + itemno = 52; + priority = 2.000000; + to="Looking_for_Targ"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(diag_tickTime - _entityTime) > 30"/*%FSM*/; + action=/*%FSM*/"_entityTime = diag_tickTime;" \n + "" \n + "_list = (getposATL _agent) nearEntities [[""CAManBase"",""AllVehicles""],300];" \n + "_isSomeone = ({isPlayer _x} count _list) > 0;"/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class Time_Check + { + itemno = 16; + priority = 1.000000; + to="Looking_for_Targ"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(diag_tickTime - _timeN) > 1"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class Has_Target + { + itemno = 81; + priority = 0.000000; + to="Reset_MoveTo"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"!(isNull _target)"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Loiter + { + name = "Loiter"; + itemno = 7; + init = /*%FSM*/"_isAlive = alive _agent;" \n + "_timeN = diag_tickTime;" \n + "" \n + "//Look for target" \n + "_target = _agent call zombie_findTargetAgent;" \n + "" \n + "//Check for alert var" \n + "_newDest = _agent getVariable [""myDest"",nil];" \n + "" \n + "if ((moveToCompleted _agent) or (moveToFailed _agent) or (Speed _agent == 0)) then { " \n + " _myDest = [_agent,_position] call zombie_loiter;" \n + "};" \n + "" \n + "" \n + "//Change location to alert" \n + "if (!isNil ""_newDest"") then {" \n + " if (_newDest distance _myDest > 0) then {" \n + " _myDest = _newDest;" \n + " };" \n + "};" \n + "" \n + "" \n + "//Move to location" \n + "" \n + "if (_myDest distance (getposATL _agent) > 3) then {" \n + " //diag_log format[""Loiter - %1 - [%2,%3] - Range %4"",(typeof _agent),_myDest,_movingTo,(_myDest distance _movingTo)];" \n + "" \n + " _agent moveTo _myDest;" \n + "};" \n + "" \n + "//hintSilent (""loitering..."" + str(_agent distance (_agent getVariable [""myDest"",getposATL _agent])));" \n + "" \n + "if (_secondHand) then {" \n + " diag_log (""Zombie "" + str(_agent) + "" Loiter "" + "" distance: "" + str(_newDest distance _myDest));" \n + " _agent doMove (getPosATL player);" \n + " _agent moveTo (getPosATL player);" \n + "};"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class player_check + { + itemno = 51; + priority = 2.000000; + to="Loiter"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(diag_tickTime - _entityTime) > 30"/*%FSM*/; + action=/*%FSM*/"_entityTime = diag_tickTime;" \n + "" \n + "_list = (getposATL _agent) nearEntities [[""CAManBase"",""AllVehicles""],300];" \n + "_isSomeone = ({isPlayer _x} count _list) > 0;"/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class Time_Check + { + itemno = 19; + priority = 0.000000; + to="Loiter"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(diag_tickTime - _timeN) > 1"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Begin + { + name = "Begin"; + itemno = 11; + init = /*%FSM*/"_hasMoved = _agent getVariable[""doLoiter"",true];" \n + "" \n + "_myDest = [_agent,_position] call zombie_loiter;" \n + "_newDest = nil;" \n + "_movingTo = _myDest;" \n + "_array = [];" \n + "_waypoint = [];" \n + "" \n + "_agentReset = false;" \n + "" \n + "_bodyStay = 60;" \n + "" \n + "_agent disableAI ""FSM"";" \n + "_timeN = diag_tickTime;" \n + "" \n + "_agent setBehaviour ""CARELESS"";" \n + "_agent setSpeedMode ""FULL"";" \n + "//hint ""run local zombie"";" \n + "_isSomeone = true;" \n + "" \n + "_target = objNull;" \n + "_targetPos = [];" \n + "_countr = 0;" \n + "" \n + "//Spawn roaming script (individual to unit)" \n + "_entityTime = diag_tickTime;" \n + "" \n + "_isCarrier = false;" \n + "_chance = round(random 12);" \n + "if ((_chance % 4) == 0) then {" \n + " _isCarrier = true;" \n + "};" \n + "" \n + "//Debug" \n + "if (_secondHand) then {" \n + " diag_log (""Zombie Brain Initialized "" + str(_agent) + "" doLoiter: "" + str(_doLoiter));" \n + " [_agent,_position] call zombie_loiter;" \n + " _myDest = _agent getVariable [""myDest"",getposATL _agent];" \n + "" \n + "};" \n + ""/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class loiter + { + itemno = 66; + priority = 0.000000; + to="Loiter_1"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"_hasMoved"/*%FSM*/; + action=/*%FSM*/"" \n + "_agent forceSpeed 2;"/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class wait + { + itemno = 2; + priority = 0.000000; + to="Looking_for_Targ"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"!_hasMoved"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Chase + { + name = "Chase"; + itemno = 15; + init = /*%FSM*/"_timeN = diag_tickTime;" \n + "" \n + "_target = _agent call zombie_findTargetAgent;" \n + "_targetPos = _target modelToWorld [0,-1,0];" \n + "_isAlive = alive _agent;" \n + "_isTargetAlive = alive _target;" \n + "" \n + "" \n + "//Move to location" \n + "if (_movingTo distance _targetPos > .5) then {" \n + " _agent moveTo _targetPos;" \n + " _agent setSpeedMode ""FULL"";" \n + "};" \n + "" \n + "" \n + "//Check if LOS" \n + "if ((_agroCheck % 8) == 0) then {" \n + " _agroCheck = 0;" \n + " _cantSee = [_target,_agent] call dayz_losCheck;" \n + "};"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class Nobody_Near + { + itemno = 5; + priority = 6.000000; + to="Cleanup_"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"!_isSomeone"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class Not_Alive + { + itemno = 4; + priority = 5.000000; + to="Cleanup_"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"!_isAlive"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class No_Agent + { + itemno = 63; + priority = 5.000000; + to="Cleanup_"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(isNull _agent)"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class No_Target + { + itemno = 20; + priority = 3.000000; + to="Reset_Targeting"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(isNull _target) && ((diag_tickTime - _timeN) > 5)"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class Target_Dead + { + itemno = 56; + priority = 3.000000; + to="Reset_Targeting"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"!_isTargetAlive"/*%FSM*/; + action=/*%FSM*/"_timeN = diag_tickTime;"/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class cant_see + { + itemno = 28; + priority = 2.000000; + to="Finish_Move"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"_cantSee"/*%FSM*/; + action=/*%FSM*/"//diag_log (""Cant See"");"/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class TimeCheck + { + itemno = 62; + priority = 2.000000; + to="Chase"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(diag_tickTime - _timeN) > 2" \n + ""/*%FSM*/; + action=/*%FSM*/"_agroCheck= _agroCheck + 1;"/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class InRange + { + itemno = 77; + priority = 1.000000; + to="Attacking_Wait"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"_agent distance _targetPos < 3.1"/*%FSM*/; + action=/*%FSM*/"_agent stop true;" \n + "" \n + "_myDest = [ _agent modelToWorld [0,0,0]];" \n + "" \n + "_agent setVariable [""myDest"",(_agent modelToWorld [0,0,0])];" \n + "" \n + "_agroCheck= 0;"/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Cleanup_ + { + name = "Cleanup_"; + itemno = 25; + init = /*%FSM*/"_waitStart = diag_tickTime;" \n + "" \n + "_list = (getposATL _agent) nearEntities [[""CAManBase"",""AllVehicles""],300];" \n + "_isSomeone = ({isPlayer _x} count _list) > 0;"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class nobody_around + { + itemno = 26; + priority = 0.000000; + to="End"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"!_isSomeone"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class someone_here + { + itemno = 34; + priority = 0.000000; + to="wait"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"_isSomeone"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Finish_Move + { + name = "Finish_Move"; + itemno = 29; + init = /*%FSM*/"_timeN = diag_tickTime;" \n + "" \n + "_list = (getposATL _agent) nearEntities [[""CAManBase"",""AllVehicles""],300];" \n + "_isSomeone = ({isPlayer _x} count _list) > 0;"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class Nobody_Near + { + itemno = 5; + priority = 6.000000; + to="Cleanup_"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"!_isSomeone"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class finished + { + itemno = 30; + priority = 1.000000; + to="Reset_Targeting"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"_agent distance _targetPos < 3"/*%FSM*/; + action=/*%FSM*/"//diag_log (""Finished"");"/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class too_long + { + itemno = 42; + priority = 0.000000; + to="Reset_Targeting"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(diag_tickTime - _timeN) > 20"/*%FSM*/; + action=/*%FSM*/"//diag_log (""Timeout"");"/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Move + { + name = "Move"; + itemno = 33; + init = /*%FSM*/"_myDest = [_agent,_position] call zombie_loiter;"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class True + { + itemno = 74; + priority = 0.000000; + to="Loiter_1"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/""/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class wait + { + name = "wait"; + itemno = 35; + init = /*%FSM*/"_list = (getposATL _agent) nearEntities [[""CAManBase"",""AllVehicles""],300];" \n + "_isSomeone = ({isPlayer _x} count _list) > 0;" \n + "" \n + "_timeN = diag_tickTime;"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class time_up + { + itemno = 36; + priority = 0.000000; + to="End"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(diag_tickTime - _waitStart) > 300"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class nobody_around + { + itemno = 26; + priority = 0.000000; + to="End"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"!_isSomeone"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class deleted + { + itemno = 47; + priority = 0.000000; + to="End"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"isNull _agent;"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class Time_Check + { + itemno = 39; + priority = 0.000000; + to="wait"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(diag_tickTime - _timeN) > 30"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Reset_Targeting + { + name = "Reset_Targeting"; + itemno = 45; + init = /*%FSM*/"// reset stance to favorite one" \n + "_agent setUnitPos (_agent getVariable [""stance"", ""UP""]);" \n + "" \n + "//Lets move" \n + "_myDest = [_agent,_position] call zombie_loiter;" \n + "" \n + "//Local" \n + "_agent setVariable [""localtargets"",[],false];" \n + "" \n + "//Remote" \n + "_remotetargets = [];" \n + "_remotetargets = _agent getVariable [""remotetargets"",[]];" \n + "" \n + "//Clear remote on reset" \n + "if (isNull _agent) then {_remotetargets = [];};" \n + "if (count _remotetargets > 0) then {" \n + " _agent setVariable [""remotetargets"",[],true];" \n + "};" \n + "" \n + "//Clear Target" \n + "_target = objNull;" \n + "" \n + "//force Speed" \n + "_agent forceSpeed 2;" \n + "" \n + "" \n + "//diag_log (""Agent reset"");" \n + ""/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class loiter + { + itemno = 66; + priority = 0.000000; + to="Loiter_1"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"_hasMoved"/*%FSM*/; + action=/*%FSM*/"" \n + "_agent forceSpeed 2;"/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Loiter_1 + { + name = "Loiter_1"; + itemno = 67; + init = /*%FSM*/"_isAlive = alive _agent;" \n + "_timeN = diag_tickTime;" \n + "" \n + "//Look for target" \n + "_target = _agent call zombie_findTargetAgent;" \n + "" \n + "if (_myDest distance (getposATL _agent) > 3) then {" \n + " _agent moveTo _myDest;" \n + "};" \n + "" \n + "//diag_log (""loitering..."" + str(_agent distance (_agent getVariable [""myDest"",_myDest])));"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class Nobody_Near + { + itemno = 5; + priority = 6.000000; + to="Cleanup_"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"!_isSomeone"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class No_Agent + { + itemno = 63; + priority = 5.000000; + to="Cleanup_"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(isNull _agent)"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class Not_Alive + { + itemno = 4; + priority = 5.000000; + to="Cleanup_"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"!_isAlive"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class Failed_Move + { + itemno = 70; + priority = 3.000000; + to="Move"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"moveToFailed _agent;"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class MoveCompleted_ + { + itemno = 69; + priority = 3.000000; + to="Move"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"moveToCompleted _agent;" \n + "//_agent distance (_agent getVariable [""myDest"",getposATL _agent]) < 3"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class player_check + { + itemno = 73; + priority = 2.000000; + to="Loiter_1"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(diag_tickTime - _entityTime) > 30"/*%FSM*/; + action=/*%FSM*/"_entityTime = diag_tickTime;" \n + "" \n + "_list = (getposATL _agent) nearEntities [[""CAManBase"",""AllVehicles""],300];" \n + "_isSomeone = ({isPlayer _x} count _list) > 0;"/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class Not_moving + { + itemno = 71; + priority = 1.000000; + to="Move"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(Speed _agent == 0)" \n + ""/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class Time_Check + { + itemno = 68; + priority = 0.000000; + to="Loiter_1"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(diag_tickTime - _timeN) > 1"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class Has_Target + { + itemno = 81; + priority = 0.000000; + to="Reset_MoveTo"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"!(isNull _target)"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Attacking_Wait + { + name = "Attacking_Wait"; + itemno = 78; + init = /*%FSM*/"_targetPos = _target modelToWorld [0,-1,0];" \n + "" \n + "_timeN = diag_tickTime;" \n + ""/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class NotInRange + { + itemno = 79; + priority = 1.000000; + to="Chase"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"_agent distance _targetPos > 3.1"/*%FSM*/; + action=/*%FSM*/"_agent stop false;"/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class TimeCheck + { + itemno = 80; + priority = 0.000000; + to="Attacking_Wait"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"((diag_tickTime - _timeN) > 1)"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Reset_MoveTo + { + name = "Reset_MoveTo"; + itemno = 82; + init = /*%FSM*/"_agent moveTo (_agent modelToWorld [0,0,0]);"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class UnitReady + { + itemno = 14; + priority = 5.000000; + to="Chase"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"unitReady _agent"/*%FSM*/; + action=/*%FSM*/"//Leader cries out" \n + "if (_isSomeone) then {" \n + " [_agent,""spotted"",0,false] call dayz_zombieSpeak;" \n + "};" \n + "" \n + "if (!_hasMoved) then {" \n + " _agent setVariable[""doLoiter"",true,true];" \n + "};" \n + "" \n + "_myDest = [ _agent modelToWorld [0,0,0]];" \n + "_agent setVariable [""myDest"",(_agent modelToWorld [0,0,0])];" \n + "" \n + "//_adjustSpeed = if (DZE_slowZombies) then {2} else {_agent getVariable [""speedLimit"", 3]};" \n + "_speedMin = DZE_ZombieSpeed select 0;" \n + "_speedMax = DZE_ZombieSpeed select 1;" \n + "_adjustSpeed = if (_speedMin == _speedMax && ((_speedMin > 0) && (_speedMax > 0))) then {_speedMin} else {_agent getVariable [""speedLimit"", 3]};" \n + "" \n + "_agent forceSpeed _adjustSpeed;" \n + "" \n + "//Lets see if we can get the AI to stop running away before heading to the player" \n + "_agent moveTo (_agent modelToWorld [0,0,0]);" \n + "" \n + "_countr = 0;" \n + "_losCheck = 0;" \n + "_agroCheck = 0;" \n + "_cantSee = false;" \n + "_cantSeeAnything = false;" \n + "" \n + "" \n + "//diag_log (""Has Target"");"/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class ____FAKE____ + { + name = "____FAKE____"; + itemno = 83; + init = /*%FSM*/""/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class TargetMoved + { + itemno = 60; + priority = 3.000000; + to="____FAKE____"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(((_agent distance _target) >= 3) and ((diag_tickTime - _timeN) > 1))" \n + ""/*%FSM*/; + action=/*%FSM*/"diag_log (""TargetMoved"");"/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class MoveCompleted_ + { + itemno = 54; + priority = 3.000000; + to="____FAKE____"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"moveToCompleted _agent;" \n + "//_agent distance (_agent getVariable [""myDest"",getposATL _agent]) < 3"/*%FSM*/; + action=/*%FSM*/"_myDest = [_agent,_position] call zombie_loiter;" \n + "//_myDest = _agent getVariable [""myDest"",getposATL _agent];"/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class Failed_Move + { + itemno = 55; + priority = 3.000000; + to="____FAKE____"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"moveToFailed _agent;"/*%FSM*/; + action=/*%FSM*/"_myDest = [_agent,_position] call zombie_loiter;" \n + "//_myDest = _agent getVariable [""myDest"",getposATL _agent];" \n + ""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class Not_moving + { + itemno = 61; + priority = 1.000000; + to="____FAKE____"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(Speed _agent == 0)" \n + ""/*%FSM*/; + action=/*%FSM*/"_myDest = [_agent,_position] call zombie_loiter;"/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class End_Attack + { + itemno = 59; + priority = 0.000000; + to="____FAKE____"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(diag_tickTime - _timeAttack) > 0.3"/*%FSM*/; + action=/*%FSM*/"[_agent, ""zombie""] spawn player_zombieAttack;" \n + "_agent setVariable[""lastAttack"", diag_tickTime];"/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class Start_Attack + { + itemno = 58; + priority = 0.000000; + to="____FAKE____"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"((local _target) and (_agent distance _target <= 3.3) and ((diag_tickTime - _last) > 2) and (_delta < 1.5) and (_delta > -1.5) and (alive _target))"/*%FSM*/; + action=/*%FSM*/"[_agent, ""zombie""] spawn player_attackdelay;" \n + "_agent setVariable[""lastAttack"", diag_tickTime];" \n + "" \n + "_timeAttack = diag_ticktime;"/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class true + { + itemno = 46; + priority = 0.000000; + to="____FAKE____"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"true"/*%FSM*/; + action=/*%FSM*/"//diag_log (""Reset"");" \n + "" \n + ""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class loiter + { + itemno = 6; + priority = 0.000000; + to="Loiter"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"_hasMoved"/*%FSM*/; + action=/*%FSM*/"_myDest = [_agent,_position] call zombie_loiter;" \n + "_agent forceSpeed 2;"/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ }; - /*%FSM*/ - /*%FSM*/ - class true + initState="init"; + finalStates[] = { - priority = 0.000000; - to="Begin"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"(!isNil 'dayz_clientPreload' && {dayz_clientPreload}) && !(isNull _agent)"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; + "End", }; - /*%FSM*/ - }; - }; - /*%FSM*/ - /*%FSM*/ - class End - { - name = "End"; - init = /*%FSM*/"if (!isDedicated) then {" \n - " if (!isNull _agent) then {" \n - " deleteVehicle _agent;" \n - " //dayz_spawnZombies = dayz_spawnZombies - 1;" \n - " };" \n - "} else {" \n - " [_agent] call zombie_findOwner;" \n - "};"/*%FSM*/; - precondition = /*%FSM*/""/*%FSM*/; - class Links - { - }; - }; - /*%FSM*/ - /*%FSM*/ - class Looking_for_Targ - { - name = "Looking_for_Targ"; - init = /*%FSM*/"_isAlive = alive _agent;" \n - "_target = _agent call zombie_findTargetAgent;" \n - "_timeN = diag_tickTime;" \n - "" \n - "_newDest = _agent getVariable [""myDest"",getposATL _agent];" \n - "if (!isNil ""_newDest"") then {" \n - " if (_newDest distance _myDest > 0) then {" \n - " _myDest = _newDest;" \n - " _agent moveTo _myDest;" \n - " _agent forceSpeed 2;" \n - " };" \n - "};" \n - "" \n - "//diag_log (""Zombie "" + str(_agent) + "" Wait "");"/*%FSM*/; - precondition = /*%FSM*/""/*%FSM*/; - class Links - { - /*%FSM*/ - class Nobody_Near - { - priority = 6.000000; - to="Cleanup_"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"!_isSomeone"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class Not_Alive - { - priority = 5.000000; - to="Cleanup_"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"!_isAlive"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class No_Agent - { - priority = 5.000000; - to="Cleanup_"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"(isNull _agent)"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class player_check - { - priority = 2.000000; - to="Looking_for_Targ"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"(diag_tickTime - _entityTime) > 30"/*%FSM*/; - action=/*%FSM*/"_entityTime = diag_tickTime;" \n - "" \n - "_list = (getposATL _agent) nearEntities [[""CAManBase"",""AllVehicles""],300];" \n - "_isSomeone = ({isPlayer _x} count _list) > 0;"/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class Time_Check - { - priority = 1.000000; - to="Looking_for_Targ"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"(diag_tickTime - _timeN) > 1"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class Has_Target - { - priority = 0.000000; - to="Reset_MoveTo"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"!(isNull _target)"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - }; - }; - /*%FSM*/ - /*%FSM*/ - class Loiter - { - name = "Loiter"; - init = /*%FSM*/"_isAlive = alive _agent;" \n - "_timeN = diag_tickTime;" \n - "" \n - "//Look for target" \n - "_target = _agent call zombie_findTargetAgent;" \n - "" \n - "//Check for alert var" \n - "_newDest = _agent getVariable [""myDest"",nil];" \n - "" \n - "if ((moveToCompleted _agent) or (moveToFailed _agent) or (Speed _agent == 0)) then { " \n - " _myDest = [_agent,_position] call zombie_loiter;" \n - "};" \n - "" \n - "" \n - "//Change location to alert" \n - "if (!isNil ""_newDest"") then {" \n - " if (_newDest distance _myDest > 0) then {" \n - " _myDest = _newDest;" \n - " };" \n - "};" \n - "" \n - "" \n - "//Move to location" \n - "" \n - "if (_myDest distance (getposATL _agent) > 3) then {" \n - " //diag_log format[""Loiter - %1 - [%2,%3] - Range %4"",(typeof _agent),_myDest,_movingTo,(_myDest distance _movingTo)];" \n - "" \n - " _agent moveTo _myDest;" \n - "};" \n - "" \n - "//hintSilent (""loitering..."" + str(_agent distance (_agent getVariable [""myDest"",getposATL _agent])));" \n - "" \n - "if (_secondHand) then {" \n - " diag_log (""Zombie "" + str(_agent) + "" Loiter "" + "" distance: "" + str(_newDest distance _myDest));" \n - " _agent doMove (getPosATL player);" \n - " _agent moveTo (getPosATL player);" \n - "};"/*%FSM*/; - precondition = /*%FSM*/""/*%FSM*/; - class Links - { - /*%FSM*/ - class player_check - { - priority = 2.000000; - to="Loiter"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"(diag_tickTime - _entityTime) > 30"/*%FSM*/; - action=/*%FSM*/"_entityTime = diag_tickTime;" \n - "" \n - "_list = (getposATL _agent) nearEntities [[""CAManBase"",""AllVehicles""],300];" \n - "_isSomeone = ({isPlayer _x} count _list) > 0;"/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class Time_Check - { - priority = 0.000000; - to="Loiter"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"(diag_tickTime - _timeN) > 1"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - }; - }; - /*%FSM*/ - /*%FSM*/ - class Begin - { - name = "Begin"; - init = /*%FSM*/"_hasMoved = _agent getVariable[""doLoiter"",true];" \n - "" \n - "_myDest = [_agent,_position] call zombie_loiter;" \n - "_newDest = nil;" \n - "_movingTo = _myDest;" \n - "_array = [];" \n - "_waypoint = [];" \n - "" \n - "_agentReset = false;" \n - "" \n - "_bodyStay = 60;" \n - "" \n - "_agent disableAI ""FSM"";" \n - "_timeN = diag_tickTime;" \n - "" \n - "_agent setBehaviour ""CARELESS"";" \n - "_agent setSpeedMode ""FULL"";" \n - "//hint ""run local zombie"";" \n - "_isSomeone = true;" \n - "" \n - "_target = objNull;" \n - "_targetPos = [];" \n - "_countr = 0;" \n - "" \n - "//Spawn roaming script (individual to unit)" \n - "_entityTime = diag_tickTime;" \n - "" \n - "_isCarrier = false;" \n - "_chance = round(random 12);" \n - "if ((_chance % 4) == 0) then {" \n - " _isCarrier = true;" \n - "};" \n - "" \n - "//Debug" \n - "if (_secondHand) then {" \n - " diag_log (""Zombie Brain Initialized "" + str(_agent) + "" doLoiter: "" + str(_doLoiter));" \n - " [_agent,_position] call zombie_loiter;" \n - " _myDest = _agent getVariable [""myDest"",getposATL _agent];" \n - "" \n - "};" \n - ""/*%FSM*/; - precondition = /*%FSM*/""/*%FSM*/; - class Links - { - /*%FSM*/ - class loiter - { - priority = 0.000000; - to="Loiter_1"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"_hasMoved"/*%FSM*/; - action=/*%FSM*/"" \n - "_agent forceSpeed 2;"/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class wait - { - priority = 0.000000; - to="Looking_for_Targ"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"!_hasMoved"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - }; - }; - /*%FSM*/ - /*%FSM*/ - class Chase - { - name = "Chase"; - init = /*%FSM*/"_timeN = diag_tickTime;" \n - "" \n - "_target = _agent call zombie_findTargetAgent;" \n - "_targetPos = _target modelToWorld [0,-1,0];" \n - "_isAlive = alive _agent;" \n - "_isTargetAlive = alive _target;" \n - "" \n - "" \n - "//Move to location" \n - "if (_movingTo distance _targetPos > .5) then {" \n - " _agent moveTo _targetPos;" \n - " _agent setSpeedMode ""FULL"";" \n - "};" \n - "" \n - "" \n - "//Check if LOS" \n - "if ((_agroCheck % 8) == 0) then {" \n - " _agroCheck = 0;" \n - " _cantSee = [_target,_agent] call dayz_losCheck;" \n - "};"/*%FSM*/; - precondition = /*%FSM*/""/*%FSM*/; - class Links - { - /*%FSM*/ - class Nobody_Near - { - priority = 6.000000; - to="Cleanup_"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"!_isSomeone"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class Not_Alive - { - priority = 5.000000; - to="Cleanup_"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"!_isAlive"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class No_Agent - { - priority = 5.000000; - to="Cleanup_"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"(isNull _agent)"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class No_Target - { - priority = 3.000000; - to="Reset_Targeting"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"(isNull _target) && ((diag_tickTime - _timeN) > 5)"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class Target_Dead - { - priority = 3.000000; - to="Reset_Targeting"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"!_isTargetAlive"/*%FSM*/; - action=/*%FSM*/"_timeN = diag_tickTime;"/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class cant_see - { - priority = 2.000000; - to="Finish_Move"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"_cantSee"/*%FSM*/; - action=/*%FSM*/"//diag_log (""Cant See"");"/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class TimeCheck - { - priority = 2.000000; - to="Chase"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"(diag_tickTime - _timeN) > 2" \n - ""/*%FSM*/; - action=/*%FSM*/"_agroCheck= _agroCheck + 1;"/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class InRange - { - priority = 1.000000; - to="Attacking_Wait"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"_agent distance _targetPos < 3.1"/*%FSM*/; - action=/*%FSM*/"_agent stop true;" \n - "" \n - "_myDest = [ _agent modelToWorld [0,0,0]];" \n - "" \n - "_agent setVariable [""myDest"",(_agent modelToWorld [0,0,0])];" \n - "" \n - "_agroCheck= 0;"/*%FSM*/; - }; - /*%FSM*/ - }; - }; - /*%FSM*/ - /*%FSM*/ - class Cleanup_ - { - name = "Cleanup_"; - init = /*%FSM*/"_waitStart = diag_tickTime;" \n - "" \n - "_list = (getposATL _agent) nearEntities [[""CAManBase"",""AllVehicles""],300];" \n - "_isSomeone = ({isPlayer _x} count _list) > 0;"/*%FSM*/; - precondition = /*%FSM*/""/*%FSM*/; - class Links - { - /*%FSM*/ - class nobody_around - { - priority = 0.000000; - to="End"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"!_isSomeone"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class someone_here - { - priority = 0.000000; - to="wait"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"_isSomeone"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - }; - }; - /*%FSM*/ - /*%FSM*/ - class Finish_Move - { - name = "Finish_Move"; - init = /*%FSM*/"_timeN = diag_tickTime;" \n - "" \n - "_list = (getposATL _agent) nearEntities [[""CAManBase"",""AllVehicles""],300];" \n - "_isSomeone = ({isPlayer _x} count _list) > 0;"/*%FSM*/; - precondition = /*%FSM*/""/*%FSM*/; - class Links - { - /*%FSM*/ - class Nobody_Near - { - priority = 6.000000; - to="Cleanup_"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"!_isSomeone"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class finished - { - priority = 1.000000; - to="Reset_Targeting"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"_agent distance _targetPos < 3"/*%FSM*/; - action=/*%FSM*/"//diag_log (""Finished"");"/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class too_long - { - priority = 0.000000; - to="Reset_Targeting"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"(diag_tickTime - _timeN) > 20"/*%FSM*/; - action=/*%FSM*/"//diag_log (""Timeout"");"/*%FSM*/; - }; - /*%FSM*/ - }; - }; - /*%FSM*/ - /*%FSM*/ - class Move - { - name = "Move"; - init = /*%FSM*/"_myDest = [_agent,_position] call zombie_loiter;"/*%FSM*/; - precondition = /*%FSM*/""/*%FSM*/; - class Links - { - /*%FSM*/ - class True - { - priority = 0.000000; - to="Loiter_1"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/""/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - }; - }; - /*%FSM*/ - /*%FSM*/ - class wait - { - name = "wait"; - init = /*%FSM*/"_list = (getposATL _agent) nearEntities [[""CAManBase"",""AllVehicles""],300];" \n - "_isSomeone = ({isPlayer _x} count _list) > 0;" \n - "" \n - "_timeN = diag_tickTime;"/*%FSM*/; - precondition = /*%FSM*/""/*%FSM*/; - class Links - { - /*%FSM*/ - class time_up - { - priority = 0.000000; - to="End"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"(diag_tickTime - _waitStart) > 300"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class nobody_around - { - priority = 0.000000; - to="End"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"!_isSomeone"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class deleted - { - priority = 0.000000; - to="End"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"isNull _agent;"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class Time_Check - { - priority = 0.000000; - to="wait"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"(diag_tickTime - _timeN) > 30"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - }; - }; - /*%FSM*/ - /*%FSM*/ - class Reset_Targeting - { - name = "Reset_Targeting"; - init = /*%FSM*/"// reset stance to favorite one" \n - "_agent setUnitPos (_agent getVariable [""stance"", ""UP""]);" \n - "" \n - "//Lets move" \n - "_myDest = [_agent,_position] call zombie_loiter;" \n - "" \n - "//Local" \n - "_agent setVariable [""localtargets"",[],false];" \n - "" \n - "//Remote" \n - "_remotetargets = [];" \n - "_remotetargets = _agent getVariable [""remotetargets"",[]];" \n - "" \n - "//Clear remote on reset" \n - "if (isNull _agent) then {_remotetargets = [];};" \n - "if (count _remotetargets > 0) then {" \n - " _agent setVariable [""remotetargets"",[],true];" \n - "};" \n - "" \n - "//Clear Target" \n - "_target = objNull;" \n - "" \n - "//force Speed" \n - "_agent forceSpeed 2;" \n - "" \n - "" \n - "//diag_log (""Agent reset"");" \n - ""/*%FSM*/; - precondition = /*%FSM*/""/*%FSM*/; - class Links - { - /*%FSM*/ - class loiter - { - priority = 0.000000; - to="Loiter_1"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"_hasMoved"/*%FSM*/; - action=/*%FSM*/"" \n - "_agent forceSpeed 2;"/*%FSM*/; - }; - /*%FSM*/ - }; - }; - /*%FSM*/ - /*%FSM*/ - class Loiter_1 - { - name = "Loiter_1"; - init = /*%FSM*/"_isAlive = alive _agent;" \n - "_timeN = diag_tickTime;" \n - "" \n - "//Look for target" \n - "_target = _agent call zombie_findTargetAgent;" \n - "" \n - "if (_myDest distance (getposATL _agent) > 3) then {" \n - " _agent moveTo _myDest;" \n - "};" \n - "" \n - "//diag_log (""loitering..."" + str(_agent distance (_agent getVariable [""myDest"",_myDest])));"/*%FSM*/; - precondition = /*%FSM*/""/*%FSM*/; - class Links - { - /*%FSM*/ - class Nobody_Near - { - priority = 6.000000; - to="Cleanup_"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"!_isSomeone"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class No_Agent - { - priority = 5.000000; - to="Cleanup_"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"(isNull _agent)"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class Not_Alive - { - priority = 5.000000; - to="Cleanup_"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"!_isAlive"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class Failed_Move - { - priority = 3.000000; - to="Move"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"moveToFailed _agent;"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class MoveCompleted_ - { - priority = 3.000000; - to="Move"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"moveToCompleted _agent;" \n - "//_agent distance (_agent getVariable [""myDest"",getposATL _agent]) < 3"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class player_check - { - priority = 2.000000; - to="Loiter_1"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"(diag_tickTime - _entityTime) > 30"/*%FSM*/; - action=/*%FSM*/"_entityTime = diag_tickTime;" \n - "" \n - "_list = (getposATL _agent) nearEntities [[""CAManBase"",""AllVehicles""],300];" \n - "_isSomeone = ({isPlayer _x} count _list) > 0;"/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class Not_moving - { - priority = 1.000000; - to="Move"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"(Speed _agent == 0)" \n - ""/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class Time_Check - { - priority = 0.000000; - to="Loiter_1"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"(diag_tickTime - _timeN) > 1"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class Has_Target - { - priority = 0.000000; - to="Reset_MoveTo"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"!(isNull _target)"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - }; - }; - /*%FSM*/ - /*%FSM*/ - class Attacking_Wait - { - name = "Attacking_Wait"; - init = /*%FSM*/"_targetPos = _target modelToWorld [0,-1,0];" \n - "" \n - "_timeN = diag_tickTime;" \n - ""/*%FSM*/; - precondition = /*%FSM*/""/*%FSM*/; - class Links - { - /*%FSM*/ - class NotInRange - { - priority = 1.000000; - to="Chase"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"_agent distance _targetPos > 3.1"/*%FSM*/; - action=/*%FSM*/"_agent stop false;"/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class TimeCheck - { - priority = 0.000000; - to="Attacking_Wait"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"((diag_tickTime - _timeN) > 1)"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - }; - }; - /*%FSM*/ - /*%FSM*/ - class Reset_MoveTo - { - name = "Reset_MoveTo"; - init = /*%FSM*/"_agent moveTo (_agent modelToWorld [0,0,0]);"/*%FSM*/; - precondition = /*%FSM*/""/*%FSM*/; - class Links - { - /*%FSM*/ - class UnitReady - { - priority = 5.000000; - to="Chase"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"unitReady _agent"/*%FSM*/; - action=/*%FSM*/"//Leader cries out" \n - "if (_isSomeone) then {" \n - " [_agent,""spotted"",0,false] call dayz_zombieSpeak;" \n - "};" \n - "" \n - "if (!_hasMoved) then {" \n - " _agent setVariable[""doLoiter"",true,true];" \n - "};" \n - "" \n - "_myDest = [ _agent modelToWorld [0,0,0]];" \n - "_agent setVariable [""myDest"",(_agent modelToWorld [0,0,0])];" \n - "" \n - "_adjustSpeed = if (DZE_slowZombies) then {2} else {_agent getVariable [""speedLimit"", 3]};" \n - "_agent forceSpeed _adjustSpeed;" \n - "" \n - "//Lets see if we can get the AI to stop running away before heading to the player" \n - "_agent moveTo (_agent modelToWorld [0,0,0]);" \n - "" \n - "_countr = 0;" \n - "_losCheck = 0;" \n - "_agroCheck = 0;" \n - "_cantSee = false;" \n - "_cantSeeAnything = false;" \n - "" \n - "" \n - "//diag_log (""Has Target"");"/*%FSM*/; - }; - /*%FSM*/ - }; - }; - /*%FSM*/ - /*%FSM*/ - class ____FAKE____ - { - name = "____FAKE____"; - init = /*%FSM*/""/*%FSM*/; - precondition = /*%FSM*/""/*%FSM*/; - class Links - { - /*%FSM*/ - class TargetMoved - { - priority = 3.000000; - to="____FAKE____"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"(((_agent distance _target) >= 3) and ((diag_tickTime - _timeN) > 1))" \n - ""/*%FSM*/; - action=/*%FSM*/"diag_log (""TargetMoved"");"/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class MoveCompleted_ - { - priority = 3.000000; - to="____FAKE____"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"moveToCompleted _agent;" \n - "//_agent distance (_agent getVariable [""myDest"",getposATL _agent]) < 3"/*%FSM*/; - action=/*%FSM*/"_myDest = [_agent,_position] call zombie_loiter;" \n - "//_myDest = _agent getVariable [""myDest"",getposATL _agent];"/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class Failed_Move - { - priority = 3.000000; - to="____FAKE____"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"moveToFailed _agent;"/*%FSM*/; - action=/*%FSM*/"_myDest = [_agent,_position] call zombie_loiter;" \n - "//_myDest = _agent getVariable [""myDest"",getposATL _agent];" \n - ""/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class Not_moving - { - priority = 1.000000; - to="____FAKE____"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"(Speed _agent == 0)" \n - ""/*%FSM*/; - action=/*%FSM*/"_myDest = [_agent,_position] call zombie_loiter;"/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class End_Attack - { - priority = 0.000000; - to="____FAKE____"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"(diag_tickTime - _timeAttack) > 0.3"/*%FSM*/; - action=/*%FSM*/"[_agent, ""zombie""] spawn player_zombieAttack;" \n - "_agent setVariable[""lastAttack"", diag_tickTime];"/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class Start_Attack - { - priority = 0.000000; - to="____FAKE____"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"((local _target) and (_agent distance _target <= 3.3) and ((diag_tickTime - _last) > 2) and (_delta < 1.5) and (_delta > -1.5) and (alive _target))"/*%FSM*/; - action=/*%FSM*/"[_agent, ""zombie""] spawn player_attackdelay;" \n - "_agent setVariable[""lastAttack"", diag_tickTime];" \n - "" \n - "_timeAttack = diag_ticktime;"/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class true - { - priority = 0.000000; - to="____FAKE____"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"true"/*%FSM*/; - action=/*%FSM*/"//diag_log (""Reset"");" \n - "" \n - ""/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class loiter - { - priority = 0.000000; - to="Loiter"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"_hasMoved"/*%FSM*/; - action=/*%FSM*/"_myDest = [_agent,_position] call zombie_loiter;" \n - "_agent forceSpeed 2;"/*%FSM*/; - }; - /*%FSM*/ - }; - }; - /*%FSM*/ - }; - initState="init"; - finalStates[] = - { - "End", - }; }; /*%FSM*/ \ No newline at end of file diff --git a/Server Files/MPMissions/DayZ_Epoch_1.Takistan/init.sqf b/Server Files/MPMissions/DayZ_Epoch_1.Takistan/init.sqf index 3d4ac406c..3f5c8b170 100644 --- a/Server Files/MPMissions/DayZ_Epoch_1.Takistan/init.sqf +++ b/Server Files/MPMissions/DayZ_Epoch_1.Takistan/init.sqf @@ -56,7 +56,6 @@ DZE_BackpackAntiTheft = false; // Prevent stealing from backpacks in trader zone DZE_BuildOnRoads = false; // Allow building on roads DZE_PlayerZed = true; // Enable spawning as a player zombie when players die with infected status DZE_R3F_WEIGHT = true; // Enable R3F weight. Players carrying too much will be overburdened and forced to move slowly. -DZE_slowZombies = false; // Force zombies to always walk DZE_StaticConstructionCount = 0; // Steps required to build. If greater than 0 this applies to all objects. DZE_GodModeBase = false; // Make player built base objects indestructible DZE_requireplot = 1; // Require a plot pole to build 0 = Off, 1 = On diff --git a/Server Files/MPMissions/DayZ_Epoch_10.Mountains_ACR/init.sqf b/Server Files/MPMissions/DayZ_Epoch_10.Mountains_ACR/init.sqf index f14b6dac0..0eacd823d 100644 --- a/Server Files/MPMissions/DayZ_Epoch_10.Mountains_ACR/init.sqf +++ b/Server Files/MPMissions/DayZ_Epoch_10.Mountains_ACR/init.sqf @@ -56,7 +56,6 @@ DZE_BackpackAntiTheft = false; // Prevent stealing from backpacks in trader zone DZE_BuildOnRoads = false; // Allow building on roads DZE_PlayerZed = true; // Enable spawning as a player zombie when players die with infected status DZE_R3F_WEIGHT = true; // Enable R3F weight. Players carrying too much will be overburdened and forced to move slowly. -DZE_slowZombies = false; // Force zombies to always walk DZE_StaticConstructionCount = 0; // Steps required to build. If greater than 0 this applies to all objects. DZE_GodModeBase = false; // Make player built base objects indestructible DZE_requireplot = 1; // Require a plot pole to build 0 = Off, 1 = On diff --git a/Server Files/MPMissions/DayZ_Epoch_11.Chernarus/init.sqf b/Server Files/MPMissions/DayZ_Epoch_11.Chernarus/init.sqf index 4047c01c5..5dc1797bc 100644 --- a/Server Files/MPMissions/DayZ_Epoch_11.Chernarus/init.sqf +++ b/Server Files/MPMissions/DayZ_Epoch_11.Chernarus/init.sqf @@ -56,7 +56,6 @@ DZE_BackpackAntiTheft = false; // Prevent stealing from backpacks in trader zone DZE_BuildOnRoads = false; // Allow building on roads DZE_PlayerZed = true; // Enable spawning as a player zombie when players die with infected status DZE_R3F_WEIGHT = true; // Enable R3F weight. Players carrying too much will be overburdened and forced to move slowly. -DZE_slowZombies = false; // Force zombies to always walk DZE_StaticConstructionCount = 0; // Steps required to build. If greater than 0 this applies to all objects. DZE_GodModeBase = false; // Make player built base objects indestructible DZE_requireplot = 1; // Require a plot pole to build 0 = Off, 1 = On diff --git a/Server Files/MPMissions/DayZ_Epoch_12.isladuala/init.sqf b/Server Files/MPMissions/DayZ_Epoch_12.isladuala/init.sqf index bb9de9318..389939ba8 100644 --- a/Server Files/MPMissions/DayZ_Epoch_12.isladuala/init.sqf +++ b/Server Files/MPMissions/DayZ_Epoch_12.isladuala/init.sqf @@ -56,7 +56,6 @@ DZE_BackpackAntiTheft = false; // Prevent stealing from backpacks in trader zone DZE_BuildOnRoads = false; // Allow building on roads DZE_PlayerZed = true; // Enable spawning as a player zombie when players die with infected status DZE_R3F_WEIGHT = true; // Enable R3F weight. Players carrying too much will be overburdened and forced to move slowly. -DZE_slowZombies = false; // Force zombies to always walk DZE_StaticConstructionCount = 0; // Steps required to build. If greater than 0 this applies to all objects. DZE_GodModeBase = false; // Make player built base objects indestructible DZE_requireplot = 1; // Require a plot pole to build 0 = Off, 1 = On diff --git a/Server Files/MPMissions/DayZ_Epoch_13.Tavi/init.sqf b/Server Files/MPMissions/DayZ_Epoch_13.Tavi/init.sqf index 901a49414..f7362be7f 100644 --- a/Server Files/MPMissions/DayZ_Epoch_13.Tavi/init.sqf +++ b/Server Files/MPMissions/DayZ_Epoch_13.Tavi/init.sqf @@ -56,7 +56,6 @@ DZE_BackpackAntiTheft = false; // Prevent stealing from backpacks in trader zone DZE_BuildOnRoads = false; // Allow building on roads DZE_PlayerZed = true; // Enable spawning as a player zombie when players die with infected status DZE_R3F_WEIGHT = true; // Enable R3F weight. Players carrying too much will be overburdened and forced to move slowly. -DZE_slowZombies = false; // Force zombies to always walk DZE_StaticConstructionCount = 0; // Steps required to build. If greater than 0 this applies to all objects. DZE_GodModeBase = false; // Make player built base objects indestructible DZE_requireplot = 1; // Require a plot pole to build 0 = Off, 1 = On diff --git a/Server Files/MPMissions/DayZ_Epoch_15.namalsk/init.sqf b/Server Files/MPMissions/DayZ_Epoch_15.namalsk/init.sqf index c640d73b4..8d1d3b660 100644 --- a/Server Files/MPMissions/DayZ_Epoch_15.namalsk/init.sqf +++ b/Server Files/MPMissions/DayZ_Epoch_15.namalsk/init.sqf @@ -56,7 +56,6 @@ DZE_BackpackAntiTheft = false; // Prevent stealing from backpacks in trader zone DZE_BuildOnRoads = false; // Allow building on roads DZE_PlayerZed = true; // Enable spawning as a player zombie when players die with infected status DZE_R3F_WEIGHT = true; // Enable R3F weight. Players carrying too much will be overburdened and forced to move slowly. -DZE_slowZombies = false; // Force zombies to always walk DZE_StaticConstructionCount = 0; // Steps required to build. If greater than 0 this applies to all objects. DZE_GodModeBase = false; // Make player built base objects indestructible DZE_requireplot = 1; // Require a plot pole to build 0 = Off, 1 = On diff --git a/Server Files/MPMissions/DayZ_Epoch_16.Panthera2/init.sqf b/Server Files/MPMissions/DayZ_Epoch_16.Panthera2/init.sqf index 9cea526f1..17ed6967d 100644 --- a/Server Files/MPMissions/DayZ_Epoch_16.Panthera2/init.sqf +++ b/Server Files/MPMissions/DayZ_Epoch_16.Panthera2/init.sqf @@ -56,7 +56,6 @@ DZE_BackpackAntiTheft = false; // Prevent stealing from backpacks in trader zone DZE_BuildOnRoads = false; // Allow building on roads DZE_PlayerZed = true; // Enable spawning as a player zombie when players die with infected status DZE_R3F_WEIGHT = true; // Enable R3F weight. Players carrying too much will be overburdened and forced to move slowly. -DZE_slowZombies = false; // Force zombies to always walk DZE_StaticConstructionCount = 0; // Steps required to build. If greater than 0 this applies to all objects. DZE_GodModeBase = false; // Make player built base objects indestructible DZE_requireplot = 1; // Require a plot pole to build 0 = Off, 1 = On diff --git a/Server Files/MPMissions/DayZ_Epoch_17.Chernarus/init.sqf b/Server Files/MPMissions/DayZ_Epoch_17.Chernarus/init.sqf index 1beecffe0..ab705e3fa 100644 --- a/Server Files/MPMissions/DayZ_Epoch_17.Chernarus/init.sqf +++ b/Server Files/MPMissions/DayZ_Epoch_17.Chernarus/init.sqf @@ -56,7 +56,6 @@ DZE_BackpackAntiTheft = false; // Prevent stealing from backpacks in trader zone DZE_BuildOnRoads = false; // Allow building on roads DZE_PlayerZed = true; // Enable spawning as a player zombie when players die with infected status DZE_R3F_WEIGHT = true; // Enable R3F weight. Players carrying too much will be overburdened and forced to move slowly. -DZE_slowZombies = false; // Force zombies to always walk DZE_StaticConstructionCount = 0; // Steps required to build. If greater than 0 this applies to all objects. DZE_GodModeBase = false; // Make player built base objects indestructible DZE_requireplot = 1; // Require a plot pole to build 0 = Off, 1 = On diff --git a/Server Files/MPMissions/DayZ_Epoch_19.FDF_Isle1_a/init.sqf b/Server Files/MPMissions/DayZ_Epoch_19.FDF_Isle1_a/init.sqf index ae30fd8d1..c89536a05 100644 --- a/Server Files/MPMissions/DayZ_Epoch_19.FDF_Isle1_a/init.sqf +++ b/Server Files/MPMissions/DayZ_Epoch_19.FDF_Isle1_a/init.sqf @@ -56,7 +56,6 @@ DZE_BackpackAntiTheft = false; // Prevent stealing from backpacks in trader zone DZE_BuildOnRoads = false; // Allow building on roads DZE_PlayerZed = true; // Enable spawning as a player zombie when players die with infected status DZE_R3F_WEIGHT = true; // Enable R3F weight. Players carrying too much will be overburdened and forced to move slowly. -DZE_slowZombies = false; // Force zombies to always walk DZE_StaticConstructionCount = 0; // Steps required to build. If greater than 0 this applies to all objects. DZE_GodModeBase = false; // Make player built base objects indestructible DZE_requireplot = 1; // Require a plot pole to build 0 = Off, 1 = On diff --git a/Server Files/MPMissions/DayZ_Epoch_2.Utes/init.sqf b/Server Files/MPMissions/DayZ_Epoch_2.Utes/init.sqf index d1a16ac50..e0f9409bf 100644 --- a/Server Files/MPMissions/DayZ_Epoch_2.Utes/init.sqf +++ b/Server Files/MPMissions/DayZ_Epoch_2.Utes/init.sqf @@ -56,7 +56,6 @@ DZE_BackpackAntiTheft = false; // Prevent stealing from backpacks in trader zone DZE_BuildOnRoads = false; // Allow building on roads DZE_PlayerZed = true; // Enable spawning as a player zombie when players die with infected status DZE_R3F_WEIGHT = true; // Enable R3F weight. Players carrying too much will be overburdened and forced to move slowly. -DZE_slowZombies = false; // Force zombies to always walk DZE_StaticConstructionCount = 0; // Steps required to build. If greater than 0 this applies to all objects. DZE_GodModeBase = false; // Make player built base objects indestructible DZE_requireplot = 1; // Require a plot pole to build 0 = Off, 1 = On diff --git a/Server Files/MPMissions/DayZ_Epoch_20.fapovo/init.sqf b/Server Files/MPMissions/DayZ_Epoch_20.fapovo/init.sqf index e4084e8e3..b3b3d8e99 100644 --- a/Server Files/MPMissions/DayZ_Epoch_20.fapovo/init.sqf +++ b/Server Files/MPMissions/DayZ_Epoch_20.fapovo/init.sqf @@ -56,7 +56,6 @@ DZE_BackpackAntiTheft = false; // Prevent stealing from backpacks in trader zone DZE_BuildOnRoads = false; // Allow building on roads DZE_PlayerZed = true; // Enable spawning as a player zombie when players die with infected status DZE_R3F_WEIGHT = true; // Enable R3F weight. Players carrying too much will be overburdened and forced to move slowly. -DZE_slowZombies = false; // Force zombies to always walk DZE_StaticConstructionCount = 0; // Steps required to build. If greater than 0 this applies to all objects. DZE_GodModeBase = false; // Make player built base objects indestructible DZE_requireplot = 1; // Require a plot pole to build 0 = Off, 1 = On diff --git a/Server Files/MPMissions/DayZ_Epoch_21.Caribou/init.sqf b/Server Files/MPMissions/DayZ_Epoch_21.Caribou/init.sqf index 75121093e..a6fcb4b34 100644 --- a/Server Files/MPMissions/DayZ_Epoch_21.Caribou/init.sqf +++ b/Server Files/MPMissions/DayZ_Epoch_21.Caribou/init.sqf @@ -56,7 +56,6 @@ DZE_BackpackAntiTheft = false; // Prevent stealing from backpacks in trader zone DZE_BuildOnRoads = false; // Allow building on roads DZE_PlayerZed = true; // Enable spawning as a player zombie when players die with infected status DZE_R3F_WEIGHT = true; // Enable R3F weight. Players carrying too much will be overburdened and forced to move slowly. -DZE_slowZombies = false; // Force zombies to always walk DZE_StaticConstructionCount = 0; // Steps required to build. If greater than 0 this applies to all objects. DZE_GodModeBase = false; // Make player built base objects indestructible DZE_requireplot = 1; // Require a plot pole to build 0 = Off, 1 = On diff --git a/Server Files/MPMissions/DayZ_Epoch_22.smd_sahrani_A2/init.sqf b/Server Files/MPMissions/DayZ_Epoch_22.smd_sahrani_A2/init.sqf index e2c6b2ef4..12fd82975 100644 --- a/Server Files/MPMissions/DayZ_Epoch_22.smd_sahrani_A2/init.sqf +++ b/Server Files/MPMissions/DayZ_Epoch_22.smd_sahrani_A2/init.sqf @@ -56,7 +56,6 @@ DZE_BackpackAntiTheft = false; // Prevent stealing from backpacks in trader zone DZE_BuildOnRoads = false; // Allow building on roads DZE_PlayerZed = true; // Enable spawning as a player zombie when players die with infected status DZE_R3F_WEIGHT = true; // Enable R3F weight. Players carrying too much will be overburdened and forced to move slowly. -DZE_slowZombies = false; // Force zombies to always walk DZE_StaticConstructionCount = 0; // Steps required to build. If greater than 0 this applies to all objects. DZE_GodModeBase = false; // Make player built base objects indestructible DZE_requireplot = 1; // Require a plot pole to build 0 = Off, 1 = On diff --git a/Server Files/MPMissions/DayZ_Epoch_23.cmr_ovaron/init.sqf b/Server Files/MPMissions/DayZ_Epoch_23.cmr_ovaron/init.sqf index 658573082..f1e9309e2 100644 --- a/Server Files/MPMissions/DayZ_Epoch_23.cmr_ovaron/init.sqf +++ b/Server Files/MPMissions/DayZ_Epoch_23.cmr_ovaron/init.sqf @@ -56,7 +56,6 @@ DZE_BackpackAntiTheft = false; // Prevent stealing from backpacks in trader zone DZE_BuildOnRoads = false; // Allow building on roads DZE_PlayerZed = true; // Enable spawning as a player zombie when players die with infected status DZE_R3F_WEIGHT = true; // Enable R3F weight. Players carrying too much will be overburdened and forced to move slowly. -DZE_slowZombies = false; // Force zombies to always walk DZE_StaticConstructionCount = 0; // Steps required to build. If greater than 0 this applies to all objects. DZE_GodModeBase = false; // Make player built base objects indestructible DZE_requireplot = 1; // Require a plot pole to build 0 = Off, 1 = On diff --git a/Server Files/MPMissions/DayZ_Epoch_24.Napf/init.sqf b/Server Files/MPMissions/DayZ_Epoch_24.Napf/init.sqf index 2c42ee550..60c811fb2 100644 --- a/Server Files/MPMissions/DayZ_Epoch_24.Napf/init.sqf +++ b/Server Files/MPMissions/DayZ_Epoch_24.Napf/init.sqf @@ -56,7 +56,6 @@ DZE_BackpackAntiTheft = false; // Prevent stealing from backpacks in trader zone DZE_BuildOnRoads = false; // Allow building on roads DZE_PlayerZed = true; // Enable spawning as a player zombie when players die with infected status DZE_R3F_WEIGHT = true; // Enable R3F weight. Players carrying too much will be overburdened and forced to move slowly. -DZE_slowZombies = false; // Force zombies to always walk DZE_StaticConstructionCount = 0; // Steps required to build. If greater than 0 this applies to all objects. DZE_GodModeBase = false; // Make player built base objects indestructible DZE_requireplot = 1; // Require a plot pole to build 0 = Off, 1 = On diff --git a/Server Files/MPMissions/DayZ_Epoch_25.sauerland/init.sqf b/Server Files/MPMissions/DayZ_Epoch_25.sauerland/init.sqf index 5ebd8e08c..01d17241f 100644 --- a/Server Files/MPMissions/DayZ_Epoch_25.sauerland/init.sqf +++ b/Server Files/MPMissions/DayZ_Epoch_25.sauerland/init.sqf @@ -56,7 +56,6 @@ DZE_BackpackAntiTheft = false; // Prevent stealing from backpacks in trader zone DZE_BuildOnRoads = false; // Allow building on roads DZE_PlayerZed = true; // Enable spawning as a player zombie when players die with infected status DZE_R3F_WEIGHT = true; // Enable R3F weight. Players carrying too much will be overburdened and forced to move slowly. -DZE_slowZombies = false; // Force zombies to always walk DZE_StaticConstructionCount = 0; // Steps required to build. If greater than 0 this applies to all objects. DZE_GodModeBase = false; // Make player built base objects indestructible DZE_requireplot = 1; // Require a plot pole to build 0 = Off, 1 = On diff --git a/Server Files/MPMissions/DayZ_Epoch_26.sauerland_winter/init.sqf b/Server Files/MPMissions/DayZ_Epoch_26.sauerland_winter/init.sqf index 198044913..82a6bad89 100644 --- a/Server Files/MPMissions/DayZ_Epoch_26.sauerland_winter/init.sqf +++ b/Server Files/MPMissions/DayZ_Epoch_26.sauerland_winter/init.sqf @@ -56,7 +56,6 @@ DZE_BackpackAntiTheft = false; // Prevent stealing from backpacks in trader zone DZE_BuildOnRoads = false; // Allow building on roads DZE_PlayerZed = true; // Enable spawning as a player zombie when players die with infected status DZE_R3F_WEIGHT = true; // Enable R3F weight. Players carrying too much will be overburdened and forced to move slowly. -DZE_slowZombies = false; // Force zombies to always walk DZE_StaticConstructionCount = 0; // Steps required to build. If greater than 0 this applies to all objects. DZE_GodModeBase = false; // Make player built base objects indestructible DZE_requireplot = 1; // Require a plot pole to build 0 = Off, 1 = On diff --git a/Server Files/MPMissions/DayZ_Epoch_27.ruegen/init.sqf b/Server Files/MPMissions/DayZ_Epoch_27.ruegen/init.sqf index 65ec698e4..97a1babe5 100644 --- a/Server Files/MPMissions/DayZ_Epoch_27.ruegen/init.sqf +++ b/Server Files/MPMissions/DayZ_Epoch_27.ruegen/init.sqf @@ -56,7 +56,6 @@ DZE_BackpackAntiTheft = false; // Prevent stealing from backpacks in trader zone DZE_BuildOnRoads = false; // Allow building on roads DZE_PlayerZed = true; // Enable spawning as a player zombie when players die with infected status DZE_R3F_WEIGHT = true; // Enable R3F weight. Players carrying too much will be overburdened and forced to move slowly. -DZE_slowZombies = false; // Force zombies to always walk DZE_StaticConstructionCount = 0; // Steps required to build. If greater than 0 this applies to all objects. DZE_GodModeBase = false; // Make player built base objects indestructible DZE_requireplot = 1; // Require a plot pole to build 0 = Off, 1 = On diff --git a/Server Files/MPMissions/DayZ_Epoch_3.Shapur_BAF/init.sqf b/Server Files/MPMissions/DayZ_Epoch_3.Shapur_BAF/init.sqf index 6e66e1f48..67a4e8080 100644 --- a/Server Files/MPMissions/DayZ_Epoch_3.Shapur_BAF/init.sqf +++ b/Server Files/MPMissions/DayZ_Epoch_3.Shapur_BAF/init.sqf @@ -56,7 +56,6 @@ DZE_BackpackAntiTheft = false; // Prevent stealing from backpacks in trader zone DZE_BuildOnRoads = false; // Allow building on roads DZE_PlayerZed = true; // Enable spawning as a player zombie when players die with infected status DZE_R3F_WEIGHT = true; // Enable R3F weight. Players carrying too much will be overburdened and forced to move slowly. -DZE_slowZombies = false; // Force zombies to always walk DZE_StaticConstructionCount = 0; // Steps required to build. If greater than 0 this applies to all objects. DZE_GodModeBase = false; // Make player built base objects indestructible DZE_requireplot = 1; // Require a plot pole to build 0 = Off, 1 = On diff --git a/Server Files/MPMissions/DayZ_Epoch_4.Zargabad/init.sqf b/Server Files/MPMissions/DayZ_Epoch_4.Zargabad/init.sqf index 3d233a0d2..bf1e317ee 100644 --- a/Server Files/MPMissions/DayZ_Epoch_4.Zargabad/init.sqf +++ b/Server Files/MPMissions/DayZ_Epoch_4.Zargabad/init.sqf @@ -56,7 +56,6 @@ DZE_BackpackAntiTheft = false; // Prevent stealing from backpacks in trader zone DZE_BuildOnRoads = false; // Allow building on roads DZE_PlayerZed = true; // Enable spawning as a player zombie when players die with infected status DZE_R3F_WEIGHT = true; // Enable R3F weight. Players carrying too much will be overburdened and forced to move slowly. -DZE_slowZombies = false; // Force zombies to always walk DZE_StaticConstructionCount = 0; // Steps required to build. If greater than 0 this applies to all objects. DZE_GodModeBase = false; // Make player built base objects indestructible DZE_requireplot = 1; // Require a plot pole to build 0 = Off, 1 = On diff --git a/Server Files/MPMissions/DayZ_Epoch_5.Bootcamp_ACR/init.sqf b/Server Files/MPMissions/DayZ_Epoch_5.Bootcamp_ACR/init.sqf index b330ad1b2..b9561d3a6 100644 --- a/Server Files/MPMissions/DayZ_Epoch_5.Bootcamp_ACR/init.sqf +++ b/Server Files/MPMissions/DayZ_Epoch_5.Bootcamp_ACR/init.sqf @@ -56,7 +56,6 @@ DZE_BackpackAntiTheft = false; // Prevent stealing from backpacks in trader zone DZE_BuildOnRoads = false; // Allow building on roads DZE_PlayerZed = true; // Enable spawning as a player zombie when players die with infected status DZE_R3F_WEIGHT = true; // Enable R3F weight. Players carrying too much will be overburdened and forced to move slowly. -DZE_slowZombies = false; // Force zombies to always walk DZE_StaticConstructionCount = 0; // Steps required to build. If greater than 0 this applies to all objects. DZE_GodModeBase = false; // Make player built base objects indestructible DZE_requireplot = 1; // Require a plot pole to build 0 = Off, 1 = On diff --git a/Server Files/MPMissions/DayZ_Epoch_7.Lingor/init.sqf b/Server Files/MPMissions/DayZ_Epoch_7.Lingor/init.sqf index ba3317df7..8c0031a75 100644 --- a/Server Files/MPMissions/DayZ_Epoch_7.Lingor/init.sqf +++ b/Server Files/MPMissions/DayZ_Epoch_7.Lingor/init.sqf @@ -56,7 +56,6 @@ DZE_BackpackAntiTheft = false; // Prevent stealing from backpacks in trader zone DZE_BuildOnRoads = false; // Allow building on roads DZE_PlayerZed = true; // Enable spawning as a player zombie when players die with infected status DZE_R3F_WEIGHT = true; // Enable R3F weight. Players carrying too much will be overburdened and forced to move slowly. -DZE_slowZombies = false; // Force zombies to always walk DZE_StaticConstructionCount = 0; // Steps required to build. If greater than 0 this applies to all objects. DZE_GodModeBase = false; // Make player built base objects indestructible DZE_requireplot = 1; // Require a plot pole to build 0 = Off, 1 = On diff --git a/Server Files/MPMissions/DayZ_Epoch_8.ProvingGrounds_PMC/init.sqf b/Server Files/MPMissions/DayZ_Epoch_8.ProvingGrounds_PMC/init.sqf index 74263317e..74642238f 100644 --- a/Server Files/MPMissions/DayZ_Epoch_8.ProvingGrounds_PMC/init.sqf +++ b/Server Files/MPMissions/DayZ_Epoch_8.ProvingGrounds_PMC/init.sqf @@ -56,7 +56,6 @@ DZE_BackpackAntiTheft = false; // Prevent stealing from backpacks in trader zone DZE_BuildOnRoads = false; // Allow building on roads DZE_PlayerZed = true; // Enable spawning as a player zombie when players die with infected status DZE_R3F_WEIGHT = true; // Enable R3F weight. Players carrying too much will be overburdened and forced to move slowly. -DZE_slowZombies = false; // Force zombies to always walk DZE_StaticConstructionCount = 0; // Steps required to build. If greater than 0 this applies to all objects. DZE_GodModeBase = false; // Make player built base objects indestructible DZE_requireplot = 1; // Require a plot pole to build 0 = Off, 1 = On diff --git a/Server Files/MPMissions/DayZ_Epoch_9.Woodland_ACR/init.sqf b/Server Files/MPMissions/DayZ_Epoch_9.Woodland_ACR/init.sqf index 125e8a6d2..3d5169691 100644 --- a/Server Files/MPMissions/DayZ_Epoch_9.Woodland_ACR/init.sqf +++ b/Server Files/MPMissions/DayZ_Epoch_9.Woodland_ACR/init.sqf @@ -56,7 +56,6 @@ DZE_BackpackAntiTheft = false; // Prevent stealing from backpacks in trader zone DZE_BuildOnRoads = false; // Allow building on roads DZE_PlayerZed = true; // Enable spawning as a player zombie when players die with infected status DZE_R3F_WEIGHT = true; // Enable R3F weight. Players carrying too much will be overburdened and forced to move slowly. -DZE_slowZombies = false; // Force zombies to always walk DZE_StaticConstructionCount = 0; // Steps required to build. If greater than 0 this applies to all objects. DZE_GodModeBase = false; // Make player built base objects indestructible DZE_requireplot = 1; // Require a plot pole to build 0 = Off, 1 = On