1.7.5.D1202

This commit is contained in:
A Clark
2012-12-07 20:29:23 -06:00
parent 73f951f1cf
commit 5521090b9e
74 changed files with 1258 additions and 576 deletions

View File

@@ -1,6 +1,6 @@
private["_item","_config","_onLadder","_create","_isOk","_config2","_consume"];
_item = _this;
_config = configFile >> "CfgWeapons" >> _item;
_config = configFile >> "cfgWeapons" >> _item;
_onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1;
if (_onLadder) exitWith {cutText [(localize "str_player_21") , "PLAIN DOWN"]};
@@ -13,11 +13,11 @@ call gear_ui_init;
//Add new item
_create = getArray (_config >> "ItemActions" >> "Toolbelt" >> "output") select 0;
_config2 = configFile >> "CfgWeapons" >> _create;
_config2 = configFile >> "cfgWeapons" >> _create;
//Remove magazines if needed
if (_item in ["MeleeHatchet","MeleeCrowbar"]) then {
_magType = ([] + getArray (configFile >> "CfgWeapons" >> _item >> "magazines")) select 0;
_magType = ([] + getArray (configFile >> "cfgWeapons" >> _item >> "magazines")) select 0;
_meleeNum = ({_x == _magType} count magazines player);
for "_i" from 1 to _meleeNum do {
player removeMagazine _magType;

View File

@@ -9,7 +9,7 @@ disableUserInput true;
_dialog = findDisplay 106;
_created = false;
if ( isNull _dialog ) then {
startLoadingScreen [""];
//startLoadingScreen [""];
createGearDialog [player, "RscDisplayGear"];
_dialog = findDisplay 106;
_created = true;
@@ -48,7 +48,7 @@ for "_i" from 122 to 129 do
};
if ( _created ) then {
closeDialog 0;
endLoadingScreen;
//endLoadingScreen;
};
disableUserInput false;
dayz_Magazines=_magazineArray;

View File

@@ -1,4 +1,4 @@
private["_hasFood","_item","_text","_key"];
private["_onLadder","_item","_hasfoodmag","_config","_text","_regen","_update","_id","_display","_control","_bloodVal","_ctrlBlood"];
disableserialization;
call gear_ui_init;
_onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1;

View File

@@ -0,0 +1,22 @@
private["_object","_position"];
_object = _this select 3;
_position = [position _object,0,0,0,0,0,0,position player] call BIS_fnc_findSafePos;
//Standup
//player playMove "amovpercmstpsraswrfldnon_amovpknlmstpslowwrfldnon";
//sleep 1;
//waitUntil { animationState player != "amovpercmstpsraswrfldnon_amovpknlmstpslowwrfldnon"};
//Kneel Down
player playMove "amovpknlmstpslowwrfldnon_amovpercmstpsraswrfldnon";
waitUntil { animationState player != "amovpknlmstpslowwrfldnon_amovpercmstpsraswrfldnon"};
sleep 2;
_object setpos _position;
_id = [player,20,true,(getPosATL player)] spawn player_alertZombies;
sleep 3;
//Other possibilities
//[_object,0, 0] call bis_fnc_setpitchbank;
//_object setpos [getpos _object select 0, getpos _object select 1, 0];

View File

@@ -1,4 +1,4 @@
private["_item"];
private["_item","_onLadder","_hasmeditem","_config","_text","_id"];
_item = _this;
call gear_ui_init;
_onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1;
@@ -26,7 +26,7 @@ switch (_item) do {
};
case "ItemHeatPack": {
player removeMagazine "ItemHeatPack";
dayz_temperatur = (dayz_temperatur + 5) max dayz_temperaturmax;
dayz_temperatur = (dayz_temperatur + 5) min dayz_temperaturmax;
cutText [localize "str_player_27", "PLAIN DOWN"];
};
};

View File

@@ -2,7 +2,7 @@
_item spawn player_wearClothes;
TODO: female
*/
private["_item","_isFemale","_itemNew","_item","_onLadder","_model","_hasclothesitem","_config","_text"];
private["_item","_onLadder","_hasclothesitem","_config","_text","_isFemale","_myModel","_humanity","_isBandit","_isHero","_itemNew","_model"];
_item = _this;
call gear_ui_init;
_onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1;

View File

@@ -1,4 +1,3 @@
private["_obj","_bag","_pos"];
hintSilent format["DEBUG: %1",_this];
_obj = _this select 3;
_obj spawn player_packTent;

View File

@@ -1,4 +1,4 @@
private["_hasFood","_item","_text","_qty"];
private["_playerPos","_canFill","_isPond","_isWell","_pondPos","_objectsWell","_onLadder","_hasbottleitem","_config","_item","_text","_objectsPond","_qty","_id"];
call gear_ui_init;

View File

@@ -141,13 +141,15 @@ class CfgLoot {
"ItemPainkiller",
"ItemMorphine",
"ItemEpinephrine",
"ItemAntibiotic",
"ItemHeatPack"
},
{
1,
0.8,
0.5,
0.5,
0.2,
0.3,
0.1
}
};
@@ -161,12 +163,12 @@ class CfgLoot {
"ItemAntibiotic"
},
{
0.43,
0.33,
0.17,
0.13,
0.09,
0.17,
0.02
0.12
}
};
military[] = {
@@ -176,6 +178,7 @@ class CfgLoot {
"ItemSodaCoke",
"ItemSodaPepsi",
"ItemBandage",
"ItemAntibiotic",
"ItemPainkiller",
"ItemMorphine",
"30Rnd_556x45_Stanag",
@@ -214,6 +217,7 @@ class CfgLoot {
0.01,
0.04,
0.04,
0.04,
0.01,
0.04,
0.04,

View File

@@ -320,7 +320,13 @@ class CfgVehicles {
driverCanSee = 2+16+32;
};
//AH6X_EP1
class AH6X_EP1{ scope = 0; };
class AH6X_EP1
{
scope = 0;
commanderCanSee = 2+16+32;
gunnerCanSee = 2+16+32;
driverCanSee = 2+16+32;
};
class AH6X_DZ: AH6X_EP1
{
displayName = "AH6X_DZ";

View File

@@ -1,21 +1,15 @@
private["_serial","_positions","_lootGroup","_iArray","_iItem","_iClass","_iPos","_item","_mags","_qty","_max","_tQty","_canType","_obj","_type","_nearBy","_allItems","_items","_itemType","_itemChance","_lootChance","_weights","_index"];
private["_obj","_type","_config","_positions","_lootChance","_itemType","_itemChance","_iPos2","_rnd","_nearBy","_weights","_index","_iArray","_item"];
_obj = _this select 0;
_fastRun = _this select 1;
_type = typeOf _obj;
_config = configFile >> "CfgBuildingLoot" >> _type;
_positions = [] + getArray (_config >> "lootPos");
//diag_log ("LOOTSPAWN: READ:" + str(_type));
_lootChance = getNumber (_config >> "lootChance");
_itemType = [] + getArray (_config >> "itemType");
//diag_log ("LOOTSPAWN: READ:" + str(_itemType));
_itemChance = [] + getArray (_config >> "itemChance");
//diag_log ("LOOTSPAWN: Type " + str(count _itemType) + " / Chance " + str(count _itemChance));
//diag_log ("I want to spawn loot...");
{
private["_iPos2"];
_iPos2 = _obj modelToWorld _x;
@@ -38,13 +32,10 @@ _itemChance = [] + getArray (_config >> "itemChance");
_iArray set [3,0];
_iArray call spawn_loot;
_iArray = [];
diag_log ("LOOTSPAWN");
//diag_log ("LOOTSPAWN");
};
_item setVariable ["created",(DateToNumber date),true];
};
if (!_fastRun) then {
sleep 0.1;
};
};
};
} forEach _positions;

View File

@@ -1,27 +1,21 @@
private["_serial","_positions","_min","_lootGroup","_iArray","_iItem","_iClass","_iPos","_item","_mags","_qty","_max","_tQty","_canType","_obj","_type","_nearBy","_clean","_unitTypes","_max","_isNoone","_config","_num","_originalPos","_zombieChance","_rnd","_fastRun"];
private["_obj","_type","_config","_canLoot","_originalPos","_unitTypes","_min","_max","_num","_clean","_positions","_zombieChance","_rnd","_iPos","_nearBy","_nearByPlayer"];
_obj = _this select 0;
_type = typeOf _obj;
_config = configFile >> "CfgBuildingLoot" >> _type;
_canLoot = isClass (_config);
_fastRun = _this select 1;
_originalPos = getPosATL _obj;
if (_canLoot) then {
//Get zombie class
_unitTypes = getArray (_config >> "zombieClass");
_min = getNumber (_config >> "maxRoaming");
_max = getNumber (_config >> "minRoaming");
//Walking Zombies
_num = round(random _max) max _min; // + round(_max / 3);
//diag_log ("Class: " + _type + " / Zombies: " + str(_unitTypes) + " / Walking: " + str(_num));
for "_i" from 1 to _num do
{
[_originalPos,true,_unitTypes] call zombie_generate;
if (!_fastRun) then {
sleep 0.1;
};
};
//Add Internal Zombies
_clean = {alive _x} count ((getPosATL _obj) nearEntities ["zZombie_Base",(sizeOf _type)]) == 0;
if (_clean) then {
@@ -39,9 +33,6 @@ if (_canLoot) then {
[_iPos,false,_unitTypes] call zombie_generate;
};
};
if (!_fastRun) then {
sleep 0.1;
};
} forEach _positions;
};
dayz_buildingMonitor set [count dayz_buildingMonitor,_obj];

View File

@@ -4,7 +4,7 @@ scriptName "Functions\misc\fn_damageHandler.sqf";
- Function
- [unit, selectionName, damage, source, projectile] call fnc_usec_damageHandler;
************************************************************/
private["_unit","_humanityHit","_myKills","_isBandit","_hit","_damage","_isPlayer","_unconscious","_wound","_isHit","_isInjured","_type","_hitPain","_inPain","_isDead","_isCardiac","_killerID","_evType","_recordable","_inVehicle","_isHeadHit","_isMinor","_scale","_canHitFree"];
private["_unit","_hit","_damage","_unconscious","_source","_ammo","_type","_isMinor","_isHeadHit","_inVehicle","_evType","_recordable","_isPlayer","_humanityHit","_myKills","_sourceZombie","_display","_control","_canHitFree","_isBandit","_id","_scale","_wound","_isHit","_rndPain","_rndInfection","_hitPain","_hitInfection","_isInjured","_lowBlood","_isCardiac"];
_unit = _this select 0;
_hit = _this select 1;
_damage = _this select 2;
@@ -47,9 +47,6 @@ if (_unit == player) then {
if (_hit == "") then {
if ((_source != player) and _isPlayer) then {
//Enable aggressor Actions
if (_source isKindOf "CAManBase") then {
_source setVariable["startcombattimer",1];
};
_canHitFree = player getVariable ["freeTarget",false];
_isBandit = (typeOf player) == "Bandit1_DZ";
if (!_canHitFree and !_isBandit) then {
@@ -108,11 +105,12 @@ if (_hit in USEC_MinorWounds) then {
};
};
/*
if (_unit == player) then {
player sideChat str(_damage);
//incombat
_unit setVariable["startcombattimer", 1, false];
};
*/
if (_damage > 0.1) then {
if (_unit == player) then {
//shake the cam, frighten them!
@@ -131,7 +129,7 @@ if (_damage > 0.4) then { //0.25
_isHit = _unit getVariable[_wound,false];
if (_unit == player) then {
_rndPain = (random 10);
_rndInfection = (random 1000);
_rndInfection = (random 500);
_hitPain = (_rndPain < _damage);
if ((_isHeadHit) or (_damage > 1.2 and _hitPain)) then {
_hitPain = true;

View File

@@ -1,59 +1,22 @@
/*
File: inString.sqf
Author: Mika Hannola
private["_findarray","_stringarray","_findcount","_stringcount","_found","_y","_i","_x"];
Description:
Find a string within a string.
Parameter(s):
_this select 0: BOOL - when true, displays all units, otherwise just player positions
_this select 0: <string> string to be found
_this select 1: <string> string to search from
_this select 2 (Optional): search is case sensitive (default: false)
Returns:
Boolean (true when string is found).
How to use:
BIS_fnc_inString = compile preprocessFile "inString.sqf"; //Compile the function
_found = ["string","String",true] call BIS_fnc_inString; //Find a string within a string
*/
private ["_casesensitive","_find","_string","_findarray","_stringarray","_findcount","_stringcount","_found","_match","_y","_i","_x"];
_find = _this select 0;
_string = _this select 1;
//modification : default _casesensitive is false
_casesensitive = false;
if(count(_this) > 2) then {_casesensitive = _this select 2;};
_findarray = toArray _find;
_stringarray = toArray _string;
_findarray = toArray (_this select 0);
_stringarray = toArray (_this select 1);
_findcount = count _findarray;
_stringcount = count _stringarray;
_found = false;
scopeName "main";
if (_findcount <= _stringcount and !_found) then
{
for "_y" from 0 to (_stringcount - _findcount) do
{
_match = [];
for "_i" from 0 to (_findcount - 1) do
{
_match set [count _match,_stringarray select (_y + _i)];
};
_found = true;
if (_findcount <= _stringcount) then {
for "_y" from 0 to (_stringcount - _findcount) do {
_i = 0;
{
if (_x != _match select _i) then
{
_found = false;
};
scopeName "loop1";
if (_x == (_stringarray select (_y + _i))) then {
_i = _i + 1;
} else {breakOut "loop1";};
} forEach _findarray;
if (_found) then {breakTo "main";};
if (_i == _findcount) then {_found = true; breakTo "main";};
};
};
_found;
_found

View File

@@ -4,7 +4,7 @@ scriptName "Functions\misc\fn_selfActions.sqf";
- Function
- [] call fnc_usec_selfActions;
************************************************************/
private["_menClose","_hasBandage","_hasEpi","_hasMorphine","_hasBlood","_vehicle","_inVehicle","_color","_part","_traderType"];
private["_vehicle","_inVehicle","_bag","_classbag","_isWater","_hasAntiB","_hasFuelE","_hasRawMeat","_hasKnife","_hasToolbox","_hasTent","_onLadder","_nearLight","_canPickLight","_canDo","_text","_isHarvested","_isVehicle","_isVehicletype","_isMan","_traderType","_ownerID","_isAnimal","_isZombie","_isDestructable","_isTent","_isFuel","_isAlive","_canmove","_Unlock","_lock","_allFixed","_hitpoints","_damage","_part","_cmpt","_color","_string","_handle","_trader_id","_category","_buy","_sell","_buy2","_sell2","_buy3","_sell3","_buy1","_sell1","_buy4","_sell4","_buy5","_sell5","_zparts1","_zparts2","_zparts3","_zparts4","_zparts5","_zparts6","_zparts7","_metals1","_metals2","_metals4","_metals3"];
_vehicle = vehicle player;
_inVehicle = (_vehicle != player);
@@ -45,6 +45,7 @@ if (_canPickLight and !dayz_hasLight) then {
if (!isNull cursorTarget and !_inVehicle and (player distance cursorTarget < 4)) then { //Has some kind of target
_isHarvested = cursorTarget getVariable["meatHarvested",false];
_isVehicle = cursorTarget isKindOf "AllVehicles";
_isVehicletype = typeOf cursorTarget in ["ATV_US_EP1","ATV_CZ_EP1"];
_isMan = cursorTarget isKindOf "Man";
_traderType = typeOf cursorTarget;
_ownerID = cursorTarget getVariable ["characterID","0"];
@@ -54,6 +55,7 @@ if (!isNull cursorTarget and !_inVehicle and (player distance cursorTarget < 4))
_isTent = cursorTarget isKindOf "TentStorage";
_isFuel = false;
_isAlive = alive cursorTarget;
_canmove = canmove cursorTarget;
_text = getText (configFile >> "CfgVehicles" >> typeOf cursorTarget >> "displayName");
if (_hasFuelE) then {
_isFuel = (cursorTarget isKindOf "Land_Ind_TankSmall") or (cursorTarget isKindOf "Land_fuel_tank_big") or (cursorTarget isKindOf "Land_fuel_tank_stairs") or (cursorTarget isKindOf "Land_fuel_tank_stairs_ep1") or (cursorTarget isKindOf "Land_wagon_tanker") or (cursorTarget isKindOf "Land_fuelstation") or (cursorTarget isKindOf "Land_fuelstation_army");
@@ -101,6 +103,15 @@ if (!isNull cursorTarget and !_inVehicle and (player distance cursorTarget < 4))
s_player_forceSave = -1;
};
*/
//flip vehicle
if ((_isVehicletype) and !_canmove and _isAlive and (player distance cursorTarget >= 2)) then {
if (s_player_flipveh < 0) then {
s_player_flipveh = player addAction [format[localize "str_actions_flipveh",_text], "\z\addons\dayz_code\actions\player_flipvehicle.sqf",cursorTarget, 1, true, true, "", ""];
};
} else {
player removeAction s_player_flipveh;
s_player_flipveh = -1;
};
//Allow player to fill jerrycan
if(_hasFuelE and _isFuel and _canDo) then {
@@ -144,14 +155,6 @@ if (!isNull cursorTarget and !_inVehicle and (player distance cursorTarget < 4))
s_player_fireout = -1;
};
//place tent
//if(_hasTent and _canDo) then {
// s_player_placetent = player addAction [localize "Place Tent", "\z\addons\dayz_code\actions\tent_pitch.sqf",cursorTarget, 0, false, true, "", ""];
//} else {
// player removeAction s_player_placetent;
// s_player_placetent = -1;
//};
//Packing my tent
if(cursorTarget isKindOf "TentStorage" and _canDo and _ownerID == dayz_characterID) then {
if ((s_player_packtent < 0) and (player distance cursorTarget < 3)) then {
@@ -411,11 +414,60 @@ if (!isNull cursorTarget and !_inVehicle and (player distance cursorTarget < 4))
if (s_player_parts_crtl < 0) then {
// [_trader_id, _category, ];
_buy = player addAction ["Buy Vehicle", "\z\addons\dayz_code\actions\buy_db.sqf",[41], 99, true, false, "",""];
_sell = player addAction ["Sell Vehicle", "\z\addons\dayz_code\actions\sell_db.sqf",[41], 98, true, false, "",""];
_buy = player addAction ["Buy Car", "\z\addons\dayz_code\actions\buy_db.sqf",[41], 99, true, false, "",""];
_sell = player addAction ["Sell Car", "\z\addons\dayz_code\actions\sell_db.sqf",[41], 98, true, false, "",""];
_buy1 = player addAction ["Buy Truck", "\z\addons\dayz_code\actions\buy_db.sqf",[42], 99, true, false, "",""];
_sell1 = player addAction ["Sell Truck", "\z\addons\dayz_code\actions\sell_db.sqf",[42], 98, true, false, "",""];
_buy2 = player addAction ["Buy Offroad", "\z\addons\dayz_code\actions\buy_db.sqf",[43], 99, true, false, "",""];
_sell2 = player addAction ["Sell Offroad", "\z\addons\dayz_code\actions\sell_db.sqf",[43], 98, true, false, "",""];
_buy2 = player addAction ["Buy Helicopter", "\z\addons\dayz_code\actions\buy_db.sqf",[44], 99, true, false, "",""];
_sell2 = player addAction ["Sell Helicopter", "\z\addons\dayz_code\actions\sell_db.sqf",[44], 98, true, false, "",""];
_buy2 = player addAction ["Buy Helicopter", "\z\addons\dayz_code\actions\buy_db.sqf",[44], 99, true, false, "",""];
_sell2 = player addAction ["Sell Helicopter", "\z\addons\dayz_code\actions\sell_db.sqf",[44], 98, true, false, "",""];
s_player_parts set [count s_player_parts,_buy];
s_player_parts set [count s_player_parts,_sell];
s_player_parts set [count s_player_parts,_buy1];
s_player_parts set [count s_player_parts,_sell1];
s_player_parts set [count s_player_parts,_buy2];
s_player_parts set [count s_player_parts,_sell2];
s_player_parts_crtl = 1;
};
};
//auto_trader_2
if (_isMan and _traderType == auto_trader_2) then {
if (s_player_parts_crtl < 0) then {
// [_trader_id, _category, ];
_buy = player addAction ["Buy Car", "\z\addons\dayz_code\actions\buy_db.sqf",[41], 99, true, false, "",""];
_sell = player addAction ["Sell Car", "\z\addons\dayz_code\actions\sell_db.sqf",[41], 98, true, false, "",""];
_buy1 = player addAction ["Buy Truck", "\z\addons\dayz_code\actions\buy_db.sqf",[42], 99, true, false, "",""];
_sell1 = player addAction ["Sell Truck", "\z\addons\dayz_code\actions\sell_db.sqf",[42], 98, true, false, "",""];
_buy2 = player addAction ["Buy Offroad", "\z\addons\dayz_code\actions\buy_db.sqf",[43], 99, true, false, "",""];
_sell2 = player addAction ["Sell Offroad", "\z\addons\dayz_code\actions\sell_db.sqf",[43], 98, true, false, "",""];
_buy2 = player addAction ["Buy Helicopter", "\z\addons\dayz_code\actions\buy_db.sqf",[44], 99, true, false, "",""];
_sell2 = player addAction ["Sell Helicopter", "\z\addons\dayz_code\actions\sell_db.sqf",[44], 98, true, false, "",""];
_buy2 = player addAction ["Buy Helicopter", "\z\addons\dayz_code\actions\buy_db.sqf",[45], 99, true, false, "",""];
_sell2 = player addAction ["Sell Helicopter", "\z\addons\dayz_code\actions\sell_db.sqf",[45], 98, true, false, "",""];
s_player_parts set [count s_player_parts,_buy];
s_player_parts set [count s_player_parts,_sell];
s_player_parts set [count s_player_parts,_buy1];
s_player_parts set [count s_player_parts,_sell1];
s_player_parts set [count s_player_parts,_buy2];
s_player_parts set [count s_player_parts,_sell2];
s_player_parts_crtl = 1;
};

View File

@@ -19,7 +19,7 @@ Missing:
*/
private ["_looptime","_sun_factor","_building_factor","_vehicle_factor","_fire_factor","_water_factor","_rain_factor","_night_factor","_wind_factor","_difference","_hasfireffect","_isinbuilding","_isinvehicle","_raining","_sunrise","_building"];
private["_looptime","_vehicle_factor","_moving_factor","_fire_factor","_rain_factor","_night_factor","_wind_factor","_building_factor","_sun_factor","_water_factor","_difference","_hasfireffect","_isinbuilding","_isinvehicle","_raining","_sunrise","_vel","_speed","_fireplaces","_building","_daytime","_height_mod","_temp"];
_looptime = _this;
@@ -56,7 +56,7 @@ Missing:
private["_vel","_speed"];
_vel = velocity player;
_speed = round((_vel distance [0,0,0]) * 3.5);
_difference = (_moving_factor * (_speed / 20)) min 1;
_difference = (_moving_factor * (_speed / 20)) min 7;
};
//fire
@@ -124,21 +124,31 @@ Missing:
//rain
if(_raining && !_isinvehicle && !_isinbuilding) then {
_difference = _difference + _rain_factor;
_difference = _difference + (rain * _rain_factor);
};
//night
private ["_daytime"];
if((daytime < _sunrise || daytime < (24 - _sunrise)) && !_isinvehicle && !_isinbuilding) then {
if((daytime < _sunrise || daytime > (24 - _sunrise)) && !_isinvehicle) then {
_daytime = if(daytime < 12) then {daytime + 24} else {daytime};
if(_isinbuilding) then {
_difference = _difference + ((((_night_factor * -1) / (_sunrise^2)) * ((_daytime - 24)^2) + _night_factor)) / 2;
} else {
_difference = _difference + (((_night_factor * -1) / (_sunrise^2)) * ((_daytime - 24)^2) + _night_factor);
};
};
//wind
if(((wind select 0) > 4 || (wind select 1) > 4) && !_isinvehicle && !_isinbuilding ) then {
_difference = _difference + _wind_factor;
};
//height
if (!_isinvehicle && overcast >= 0.6) then {
_height_mod = ((getPosASL player select 2) / 100) / 2;
_difference = _difference - _height_mod;
};
//Calculate Change Value Basic Factor Looptime Correction Adjust Value to current used temperatur scala
_difference = _difference * SleepTemperatur / (60 / _looptime) * ((dayz_temperaturmax - dayz_temperaturmin) / 100);

View File

@@ -1,6 +1,6 @@
private["_unit","_distance","_i","_listTalk","_zombie","_targets","_pos"];
private["_unit","_distance","_doRun","_pos","_listTalk","_zombie","_targets"];
//Alert Zed's to noise of shot
_pos = _this select 0;
_unit = _this select 0;
_distance = _this select 1;
_doRun = _this select 2;
_pos = _this select 3;

View File

@@ -1,5 +1,5 @@
private["_list","_Pos","_randrefpoint","_PosList","_PosSelect","_Pos","_list","_animalssupported","_type","_root","_favouritezones","_GroupMarker","_agent","_id","_tame"];
private["_list","_animalssupported","_type","_root","_favouritezones","_randrefpoint","_PosList","_PosSelect","_Pos","_GroupMarker","_agent","_id","_pos","_tame"];
_list = getposATL player nearEntities [["CAAnimalBase"],dayz_animalDistance];
if (count _list < dayz_maxAnimals) then {

View File

@@ -1,4 +1,4 @@
private["_vel","_speed","_scalePose","_scaleMvmt","_scaleLight","_scaleAlert","_anim","_anim4","_initial","_isDay","_nearFlare","_nearFire","_nearLight","_scaler","_pos"];
private["_vel","_speed","_pos","_scalePose","_scaleMvmt","_scaleLight","_scaleAlert","_anim","_anim4","_initial","_scaleSound","_nearFlare","_scaler","_nearLight","_nearFire","_building","_isPlayerInside","_audial"];
_vel = velocity (vehicle player);
_speed = (_vel distance [0,0,0]);
_pos = getPosATL player;

View File

@@ -1,4 +1,4 @@
private["_unit","_ammo","_audible","_distance","_listTalk","_weapon"];
private["_unit","_weapon","_ammo","_projectile","_audible","_caliber","_distance","_i","_listTalk","_group","_targets","_id"];
//[unit, weapon, muzzle, mode, ammo, magazine, projectile]
_unit = _this select 0;
_weapon = _this select 1;
@@ -12,10 +12,9 @@ _distance = round(_audible * 10 * _caliber);
dayz_disAudial = _distance;
dayz_firedCooldown = time;
// Put everyone in range of the bullet into combat
//_id = _this spawn player_projectileNear;
// Color in the combat icon
dayz_combat = 1;
if (_ammo isKindOf "Melee") exitWith {
_unit playActionNow "GestureSwing";
};
@@ -41,7 +40,6 @@ if (_ammo isKindOf "SmokeShell") then {
} forEach _listTalk;
} else {
_id = [_unit,_distance,true,(getPosATL player)] spawn player_alertZombies;
//Check if need to place arrow
if (_ammo isKindOf "Bolt") then {
_id = _this spawn player_crossbowBolt;

View File

@@ -1,12 +1,10 @@
private ["_objects"];
private["_objects","_dialog","_magazineArray","_control","_i","_item","_val","_max"];
_objects = nearestObjects [getPosATL player, ["Car", "Helicopter", "Motorcycle", "Ship", "TentStorage","VaultStorage"], 10];
{
dayzUpdateVehicle = [_x,"all"];
publicVariableServer "dayzUpdateVehicle";
} foreach _objects;
private["_dialog","_magazineArray","_control","_item","_val","_max"];
disableSerialization;
_dialog = _this select 0;
_magazineArray = [];

View File

@@ -1,76 +1,114 @@
_isAir = vehicle player iskindof "Air";
_inVehicle = (vehicle player != player);
_fastRun = _this select 0;
_dateNow = (DateToNumber date);
_maxZombies = dayz_maxLocalZombies;
_age = -1;
if (!_inVehicle) then {
// If they just got out of a vehicle, boost their per-player zombie limit by 5 in hopes of allowing insta-spawn zombies
if (dayz_inVehicle and !_inVehicle) then {
dayz_spawnWait = -300;
//_maxZombies = _maxZombies + 2;
};
dayz_inVehicle = _inVehicle;
//if (((time - dayz_spawnWait) < dayz_spawnDelay) or ((time - dayz_lootWait) < dayz_lootDelay)) exitWith {diag_log("Skipping Check since neither loot or zombies are ready");};
//if (((time - dayz_spawnWait) < dayz_spawnDelay) and ((time - dayz_lootWait) < dayz_lootDelay)) exitWith {};
//diag_log("SPAWN CHECKING: Starting");
_locationstypes = ["NameCityCapital","NameCity","NameVillage","NameLocal"];
_nearestCity = nearestLocations [getPos player, _locationstypes, 600];
//_nearestCity = [_locationstypes,[position player,600],false] call bis_fnc_locations;
//diag_log ("0: " +str(_nearestCity));
//_position = position (_nearestCity select 0);
_radius = 160;
_position = getPosATL player;
//waitUntil{_position nearObjectsReady 200};
_nearby = _position nearObjects ["building",200]; //nearestObjects [player, ["building"], 200];
_tooManyZs = {alive _x} count (_position nearEntities ["zZombie_Base",400]) > dayz_maxLocalZombies;
{
_type = typeOf _x;
_config = configFile >> "CfgBuildingLoot" >> _type;
_canLoot = isClass (_config);
if (_canLoot) then {
_dis = _x distance player;
if ((_dis < 120) and (_dis > 30)) then {
_nearbytype = type (_nearestCity select 0);
_nearby = _position nearObjects ["Building",_radius];
switch (_nearbytype) do {
default {
_maxZombies = 20;
};
case "NameLocal": {
_maxZombies = 40;
};
case "NameVillage": {
_maxZombies = 60;
};
case "NameCity": {
_maxZombies = 80;
};
case "NameCityCapital": {
_maxZombies = 100;
};
};
if (_inVehicle) then {
_maxZombies = _maxZombies / 2;
};
_tooManyZs = count (_position nearEntities ["zZombie_Base",60]) > _maxZombies;
//diag_log("Too Many Zeds: " +str(_tooManyZs));
//diag_log(format["SPAWN CHECK: Building count is %1", count _nearby]);
{
//diag_log("SPAWN CHECK: Start of Loop");
_type = typeOf _x;
_config = configFile >> "CfgBuildingLoot" >> _type;
_canZombie = isClass (_config);
_canLoot = ((count (getArray (_config >> "lootPos"))) > 0);
_dis = _x distance player;
if ((!_inVehicle) and (_canLoot)) then {
//diag_log("SPAWN LOOT: " + _type + " Building is lootable");
//dayz_serverSpawnLoot = [_dis, _x];
//publicVariableServer "dayz_serverSpawnLoot";
_keepAwayDist = ((sizeOf _type)+5);
_isNoone = {isPlayer _x} count (_x nearEntities ["CAManBase",_keepAwayDist]) == 0;
//diag_log(format["SPAWN LOOT: isNoone: %1 | keepAwayDist %2 | %3", str(_isNoone), _keepAwayDist, _type]);
if (_isNoone) then {
_looted = (_x getVariable ["looted",-0.1]);
_cleared = (_x getVariable ["cleared",true]);
/*
if(isServer) then {
_dateNow = (DateToNumber date);
_age = (_dateNow - _looted) * 525948;
} else {
_dateNow = serverTime;
_age = (_dateNow * 60) - _looted;
};
*/
_dateNow = (DateToNumber date);
_age = (_dateNow - _looted) * 525948;
//diag_log ("SPAWN LOOT: " + _type + " Building is " + str(_age) + " old" );
if ((_age > 10) and (!_cleared) and !_inVehicle) then {
_nearByObj = nearestObjects [(getPosATL _x), ["WeaponHolder","WeaponHolderBase"],((sizeOf _type)+5)];
{deleteVehicle _x} forEach _nearByObj;
_x setVariable ["cleared",true,true];
_x setVariable ["looted",_dateNow,true];
};
if ((_age > 10) and (_cleared) and !_inVehicle) then {
if (_age > 8) then {
//diag_log("SPAWN LOOT: Spawning loot");
//Register
_x setVariable ["looted",_dateNow,true];
//cleanup
_handle = [_x,_fastRun] spawn building_spawnLoot;
waitUntil{scriptDone _handle};
//_nearByObj = (getPosATL _x) nearObjects ["ReammoBox",((sizeOf _type)+5)];
//{deleteVehicle _x} forEach _nearByObj;
dayz_lootWait = time;
[_x] call building_spawnLoot;
};
};
if ((time - dayz_spawnWait) > dayz_spawnDelay) then {
if (dayz_spawnZombies < dayz_maxLocalZombies) then {
if (!_tooManyZs) then {
private["_zombied"];
_zombied = (_x getVariable ["zombieSpawn",-0.1]);
_dateNow = (DateToNumber date);
_age = (_dateNow - _zombied) * 525948;
if (_age > 5) then {
_bPos = getPosATL _x;
_zombiesNum = {alive _x} count (_bPos nearEntities ["zZombie_Base",(((sizeOf _type) * 2) + 10)]);
if (_zombiesNum == 0) then {
//Randomize Zombies
_x setVariable ["zombieSpawn",_dateNow,true];
_handle = [_x,_fastRun] spawn building_spawnZombies;
waitUntil{scriptDone _handle};
//} else {
//_x setVariable ["zombieSpawn",_dateNow,true];
};
};
if (_canZombie) then {
if (dayz_spawnZombies < _maxZombies) then {
if (!_tooManyZs) then {
private["_zombied"];
_zombied = (_x getVariable ["zombieSpawn",-0.1]);
_dateNow = (DateToNumber date);
_age = (_dateNow - _zombied) * 525948;
//diag_log(format["Date: %1 | ZombieSpawn: %2 | age: %3 | building: %4 (%5)", _dateNow, _zombied, _age, str(_x), _dis]);
if (_age > 1) then {
_bPos = getPosATL _x;
_zombiesNum = count (_bPos nearEntities ["zZombie_Base",(((sizeOf _type) * 2) + 10)]);
if (_zombiesNum == 0) then {
//Randomize Zombies
_x setVariable ["zombieSpawn",_dateNow,true];
[_x] call building_spawnZombies;
};
};
} else {
dayz_spawnWait = time;
dayz_spawnZombies = 0;
};
//} else {
//dayz_spawnWait = time;
//dayz_spawnZombies = 0;
};
};
if (!_fastRun) then {
sleep 0.1;
};
} forEach _nearby;
};
} forEach _nearby;

View File

@@ -1,9 +1,9 @@
private["_display","_ctrlBlood","_bloodVal","_ctrlFood","_ctrlThirst","_foodVal","_ctrlTemp","_tempVal","_array"];
private["_foodVal","_thirstVal","_tempVal","_combatVal","_array","_display","_ctrlBlood","_ctrlBleed","_bloodVal","_ctrlFood","_ctrlThirst","_ctrlTemp","_ctrlEar","_ctrlEye","_ctrlHumanity","_ctrlCombat","_ctrlFracture","_bloodLvl","_thirstLvl","_foodLvl","_blood","_thirst","_food","_temp","_tempImg","_tempLvl","_ca","_visualtext","_visual","_audibletext","_audible","_humanity","_guiHumanity","_humanityText"];
disableSerialization;
_foodVal = 1 - (dayz_hunger / SleepFood);
_thirstVal = 1 - (dayz_thirst / SleepWater);
_tempVal = (dayz_temperatur / dayz_temperaturnormal); //TeeChange
_tempVal = 1 - ((dayz_temperatur - dayz_temperaturmin)/(dayz_temperaturmax - dayz_temperaturmin)); // Normalise to [0,1]
_combatVal = 1 - dayz_combat; // May change later to be a range of red/green to loosely indicate 'time left in combat'
if (uiNamespace getVariable ['DZ_displayUI', 0] == 1) exitWith {
@@ -21,7 +21,7 @@ _ctrlThirst = _display displayCtrl 1302;
_ctrlTemp = _display displayCtrl 1306; //TeeChange
_ctrlEar = _display displayCtrl 1304;
_ctrlEye = _display displayCtrl 1305;
_ctrlHumanity = _display displayCtrl 1207;
//_ctrlHumanity = _display displayCtrl 1207;
_ctrlCombat = _display displayCtrl 1307;
_ctrlFracture = _display displayCtrl 1203;
@@ -29,9 +29,108 @@ _ctrlFracture = _display displayCtrl 1203;
_ctrlBlood ctrlSetTextColor [(Dayz_GUI_R + (0.3 * (1-_bloodVal))),(Dayz_GUI_G * _bloodVal),(Dayz_GUI_B * _bloodVal), 0.5];
_ctrlFood ctrlSetTextColor [(Dayz_GUI_R + (0.3 * (1-_foodVal))),(Dayz_GUI_G * _foodVal),(Dayz_GUI_B * _foodVal), 0.5];
_ctrlThirst ctrlSetTextColor [(Dayz_GUI_R + (0.3 * (1-_thirstVal))),(Dayz_GUI_G * _thirstVal),(Dayz_GUI_B * _thirstVal), 0.5];
_ctrlTemp ctrlSetTextColor [(Dayz_GUI_R + (0.3 * _tempVal)),(Dayz_GUI_G * _tempVal),(Dayz_GUI_B + (0.25 * (1/_tempVal))), 0.5]; //TeeChange Coulor should change into red if value is higher as normale temp and into blue if coulor is lower as normal temp
_ctrlTemp ctrlSetTextColor [(Dayz_GUI_R + (0.3 * (1-_tempVal))), (Dayz_GUI_G * _tempVal), _tempVal, 0.5]; // Color ranges from iceblue (cold) to red (hot)
_ctrlCombat ctrlSetTextColor [(Dayz_GUI_R + (0.3 * (1-_combatVal))),(Dayz_GUI_G * _combatVal),(Dayz_GUI_B * _combatVal), 0.5];
/*
Blood: round((r_player_blood / 2) / 1000) = _bloodLvl (6 = full, 1 = empty)
Thirst: round(_thirstVal / 0.25) = _thirstLvl (4 = full, 0 = empty)
Hunger: round(_foodVal / 0.25) = _foodLvl (4 = full, 0 = empty)
Temp: round(dayz_temperatur) = tempLvl (>= 36 = full <= 28 = empty)
*/
_blood = "";
_thirst = "";
_food = "";
_temp = "";
_tempImg = 0;
_bloodLvl = round((r_player_blood / 2) / 1000);
_thirstLvl = round(_thirstVal / 0.25);
_foodLvl = round(_foodVal / 0.25);
_tempLvl = round(dayz_temperatur);
/*
diag_log format["DEBUG: bloodlvl: %1 r_player_blood: %2 bloodval: %3",_bloodLvl, r_player_blood, _bloodVal];
diag_log format["DEBUG: thirstlvl: %1 dayz_thirst: %2 thirstval: %3",_thirstLvl, dayz_thirst, _thirstVal];
diag_log format["DEBUG: foodlvl: %1 dayz_hunger: %2 foodval: %3",_foodLvl, dayz_hunger, _foodVal];
diag_log format["DEBUG: templvl: %1 dayz_temperatur: %2 tempval: %3",_tempLvl, dayz_temperatur, _tempVal];
*/
if (_bloodLvl == 0) then {
_blood = "\z\addons\dayz_code\gui\status_blood_inside_1_ca.paa";
} else {
_blood = "\z\addons\dayz_code\gui\status_blood_inside_" + str(_bloodLvl) + "_ca.paa";
};
_thirst = "\z\addons\dayz_code\gui\status_thirst_inside_" + str(_thirstLvl) + "_ca.paa";
_food = "\z\addons\dayz_code\gui\status_food_inside_" + str(_foodLvl) + "_ca.paa";
if ( _tempLvl >= 36 ) then { _tempImg = 4 };
if ( _tempLvl > 33 and _tempLvl < 36 ) then { _tempImg = 3 };
if ( _tempLvl >= 30 and _tempLvl <= 33 ) then { _tempImg = 2 };
if ( _tempLvl > 28 and _tempLvl < 30 ) then { _tempImg = 1 };
if ( _tempLvl <= 28 ) then { _tempImg = 0 };
_temp = "\z\addons\dayz_code\gui\status_temp_" + str(_tempImg) + "_ca.paa";
_ctrlBlood ctrlSetText _blood;
_ctrlThirst ctrlSetText _thirst;
_ctrlFood ctrlSetText _food;
_ctrlTemp ctrlSetText _temp;
/*
Visual:
*/
_visualtext = "";
_visual = round((dayz_disVisual / 100) * 4) min 5;
if (_visual > 0) then {_visualtext = "\z\addons\dayz_code\gui\val_" + str(_visual) + "_ca.paa"};
_ctrlEye ctrlSetText _visualtext;
/*
Audible:
*/
_audibletext = "";
_audible = round((dayz_disAudial / 50) * 4) min 5;
if (_audible > 0) then {_audibletext = "\z\addons\dayz_code\gui\val_" + str(_audible) + "_ca.paa"};
_ctrlEar ctrlSetText _audibletext;
/*
Fracture:
*/
if (!canStand player) then {
if (!(ctrlShown _ctrlFracture)) then {
r_fracture_legs = true;
_ctrlFracture ctrlShow true;
};
};
/*
Flashing:
*/
if (_combatVal == 0) then {
_ctrlCombat call player_guiControlFlash;
};
if (_bloodVal < 0.2) then {
_ctrlBlood call player_guiControlFlash;
};
if (_thirstVal < 0.2) then {
_ctrlThirst call player_guiControlFlash;
};
if (_foodVal < 0.2) then {
_ctrlFood call player_guiControlFlash;
};
if (_tempVal > 0.8) then { //TeeChange
_ctrlTemp call player_guiControlFlash;
};
if (r_player_injured) then {
_ctrlBleed call player_guiControlFlash;
};
/*
_humanity = player getVariable["humanity",0];
_guiHumanity = 0;
@@ -50,47 +149,5 @@ if(_humanity != dayz_lastHumanity) then {
};
*/
_visualtext = "";
_visual = round((dayz_disVisual / 100) * 4) min 5;
if (_visual > 0) then {_visualtext = "\z\addons\dayz_code\gui\val_" + str(_visual) + "_ca.paa"};
_audibletext = "";
_audible = round((dayz_disAudial / 50) * 4) min 5;
if (_audible > 0) then {_audibletext = "\z\addons\dayz_code\gui\val_" + str(_audible) + "_ca.paa"};
_ctrlEye ctrlSetText _visualtext;
_ctrlEar ctrlSetText _audibletext;
if (_combatVal == 0) then {
_ctrlCombat call player_guiControlFlash;
};
if (_bloodVal < 0.2) then {
_ctrlBlood call player_guiControlFlash;
};
if (_thirstVal < 0.2) then {
_ctrlThirst call player_guiControlFlash;
};
if (_foodVal < 0.2) then {
_ctrlFood call player_guiControlFlash;
};
if (_tempVal < 0.833) then { //TeeChange
_ctrlTemp call player_guiControlFlash;
};
if (r_player_injured) then {
_ctrlBleed call player_guiControlFlash;
};
if (!canStand player) then {
if (!(ctrlShown _ctrlFracture)) then {
r_fracture_legs = true;
_ctrlFracture ctrlShow true;
};
};
_array = [_foodVal,_thirstVal];
_array

View File

@@ -1,5 +1,5 @@
//[unit, weapon, muzzle, mode, ammo, magazine, projectile]
private["_unit","_magazine","_used","_quantity","_magsNet","_magsWhole","_key","_result","_evType","_recordable","_inVehicle","_isPlayer","_isRocket","_dmgDistance","_isBallistic","_handled"];
private["_unit","_firer","_distance","_weapon","_ammo","_killerID","_handled","_arc","_isBallistic","_dmgDistance","_isRocket","_isPlayer","_inVehicle","_evType","_recordable","_turretDir","_weaponDir","_pos1","_pos2","_facing","_firingArc","_isInFront","_isInRear","_id"];
//Init
//[unit, firer, distance, weapon, muzzle, mode, ammo]
_unit = _this select 0;
@@ -20,12 +20,13 @@ private["_unit","_magazine","_used","_quantity","_magsNet","_magsWhole","_key","
_recordable = false;
// Both the firer and those nearby (<=8m) go into "combat" to prevent ALT-F4
_firer setVariable["startcombattimer", 1, true];
//diag_log ("DEBUG: AMMO TYPE: " +str(_ammo));
_firer setVariable["startcombattimer", 1, false];
if (_distance <= 8) then {
_unit setVariable["startcombattimer", 1, true];
_unit setVariable["startcombattimer", 1, false];
};
if (_inVehicle) exitWith{};
if (_firer == player) exitWith{};

View File

@@ -1,18 +1,20 @@
private["_unit","_targets","_move","_damage","_wound","_sound","_local","_dir","_hpList","_hp","_strH","_dam","_total","_result","_vehicle","_tPos","_zPos","_cantSee","_inAngle"];
private["_unit","_vehicle","_targets","_move","_rnd","_wound","_dir","_hpList","_hp","_damage","_chance","_strH","_dam","_total","_result","_tPos","_zPos","_inAngle","_cantSee","_isZombieInside","_building","_isPlayerInside"];
_unit = _this;
_vehicle = (vehicle player);
_targets = _unit getVariable ["targets",[]];
if (!(_vehicle in _targets) and ((random 1) < 0.9)) exitWith {};
//if (!(_vehicle in _targets)) exitWith {};
//Do the attack
_move = "ZombieStandingAttack1";
_rnd = 0;
_wound = "";
if (r_player_unconscious) then {
if (r_player_unconscious && _vehicle == player) then {
_unit doMove (getPos player);
_rnd = round(random 4) + 1;
_move = "ZombieFeed" + str(_rnd);
} else {
_unit doMove (getPos player);
_rnd = round(random 9) + 1;
_move = "ZombieStandingAttack" + str(_rnd);
};
@@ -27,46 +29,41 @@ if (_vehicle != player) then {
_hpList = _vehicle call vehicle_getHitpoints;
_hp = _hpList call BIS_fnc_selectRandom;
_wound = getText(configFile >> "cfgVehicles" >> (typeOf _vehicle) >> "HitPoints" >> _hp >> "name");
_total = 0;
_damage = random 0.03;
_chance = round(random 12);
if(["Glass",_hp,false] call fnc_inString) then {
_damage = 0.03;
_strH = "hit_" + (_wound);
_dam = _vehicle getVariable [_strH,0];
_total = (_dam + _damage);
};
if(["Wheel",_hp,false] call fnc_inString) then {
_damage = 0.02;
_strH = "hit_" + (_wound);
_dam = _vehicle getVariable [_strH,0];
_total = (_dam + _damage);
};
if(["Body",_hp,false] call fnc_inString) then {
_damage = 0.01;
_strH = "hit_" + (_wound);
_dam = _vehicle getVariable [_strH,0];
_total = (_dam + _damage);
};
if(["Engine",_hp,false] call fnc_inString) then {
_damage = 0.01;
_strH = "hit_" + (_wound);
_dam = _vehicle getVariable [_strH,0];
_total = (_dam + _damage);
};
if(["Fuel",_hp,false] call fnc_inString) then {
if ((_wound == "Glass1") or (_wound == "Glass2") or (_wound == "Glass3") or (_wound == "Glass4") or (_wound == "Glass5") or (_wound == "Glass6")) then {
[_unit,"hit",0,false] call dayz_zombieSpeak;
_damage = 0.01;
_strH = "hit_" + (_wound);
_dam = _vehicle getVariable [_strH,0];
_total = (_dam + _damage);
//diag_log ("Hitpoints " +str(_wound) +str(_total));
//_result = [_vehicle, _wound,_total, _unit,"zombie"] call fnc_usec_damageVehicle;
//dayzHitV = [_vehicle,_wound,_total, _unit,"zombie"];
//publicVariable "dayzHitV";
if (_total >= 1) then {
if ((_chance % 4) == 0) then {
if ((_vehicle isKindOf "ATV_Base_EP1") or (_vehicle isKindOf "Motorcycle")) then { player action ["eject", _vehicle] };
};
if (r_player_blood < (r_player_bloodTotal * 0.8)) then {
_wound = DAYZ_woundHit call BIS_fnc_selectRandomWeighted;
} else {
_wound = DAYZ_woundHit_ok call BIS_fnc_selectRandomWeighted;
};
_damage = 0.1 + random (1.2);
//diag_log ("START DAM: Player Hit on " + _wound + " for " + str(_damage));
[player, _wound, _damage, _unit,"zombie"] call fnc_usec_damageHandler;
//dayzHit = [player,_wound, _damage, _unit,"zombie"];
//publicVariable "dayzHit";
[_unit,"hit",0,false] call dayz_zombieSpeak;
} else {
_result = [_vehicle, _wound,_total, _unit,"zombie"] call fnc_usec_damageVehicle;
dayzHitV = [_vehicle,_wound,_total, _unit,"zombie"];
publicVariable "dayzHitV";
};
};
if(_total > 0) then {
[_unit,"hit",0,false] call dayz_zombieSpeak;
_result = [_vehicle, _wound,_total, _unit,"zombie"] call fnc_usec_damageVehicle;
dayzHitV = [_vehicle,_wound,_total, _unit,"zombie"];
publicVariable "dayzHitV";
};
} else {
//Did he hit?
if ((_unit distance player) <= 3) then {
@@ -87,8 +84,8 @@ if (_vehicle != player) then {
_damage = 0.1 + random (1.2);
//diag_log ("START DAM: Player Hit on " + _wound + " for " + str(_damage));
[player, _wound, _damage, _unit,"zombie"] call fnc_usec_damageHandler;
dayzHit = [player,_wound, _damage, _unit,"zombie"];
publicVariable "dayzHit";
//dayzHit = [player,_wound, _damage, _unit,"zombie"];
//publicVariable "dayzHit";
[_unit,"hit",0,false] call dayz_zombieSpeak;
} else {
/*
@@ -97,8 +94,8 @@ if (_vehicle != player) then {
_damage = 0.1 + random (1.2);
//diag_log ("START DAM: Player Hit on " + _wound + " for " + str(_damage));
[player, _wound, _damage, _unit,"zombie"] call fnc_usec_damageHandler;
dayzHit = [player,_wound, _damage, _unit,"zombie"];
publicVariable "dayzHit";
//dayzHit = [player,_wound, _damage, _unit,"zombie"];
//publicVariable "dayzHit";
[_unit,"hit",0,false] call dayz_zombieSpeak;
};
*/

View File

@@ -1,6 +1,7 @@
private["_listTalk","_isZombie","_group","_eyeDir","_attacked","_chance","_last","_audial","_distance","_refObj","_list","_scaleMvmt","_scalePose","_scaleLight","_anim","_activators","_nearFire","_nearFlare","_scaleAlert","_inAngle","_scaler","_initial","_tPos","_zPos","_cantSee"];
private["_refObj","_listTalk","_pHeight","_attacked","_list","_dist","_group","_chance","_last","_entHeight","_delta","_isZInside","_building","_isPlayerInside","_targets","_cantSee","_tPos","_zPos","_eyeDir","_inAngle","_lowBlood"];
_refObj = vehicle player;
_listTalk = (position _refObj) nearEntities ["zZombie_Base",200];
//_listTalk = (position _refObj) nearEntities ["zZombie_Base",200];
_listTalk = (position _refObj) nearEntities ["zZombie_Base",100];
_pHeight = (getPosATL _refObj) select 2;
_attacked = false;

View File

@@ -1,4 +1,4 @@
private["_itemType","_iPos","_indexLootSpawn","_iArray","_iItem","_iClass","_item","_qty","_max","_tQty","_arrayLootSpawn","_canType"];
private["_itemType","_weights","_iItem","_iClass","_iPos","_radius","_item","_arrayLootSpawn","_qty","_max","_tQty","_indexLootSpawn","_canType","_mags","_ipos"];
// [_itemType,_weights]
_iItem = _this select 0;
_iClass = _this select 1;
@@ -12,7 +12,7 @@ switch (_iClass) do {
_itemType = _arrayLootSpawn select 0;
_weights = _arrayLootSpawn call fnc_buildWeightedArray;
_qty = 0;
_max = ceil(random 4) + 1;
_max = ceil(random 2) + 1;
//diag_log ("LOOTSPAWN: QTY: " + str(_max) + " ARRAY: " + str(_arrayLootSpawn));
while {_qty < _max} do {
private["_tQty","_indexLootSpawn","_canType"];
@@ -36,7 +36,7 @@ switch (_iClass) do {
_item addWeaponCargoGlobal [_iItem,1];
_mags = [] + getArray (configFile >> "cfgWeapons" >> _iItem >> "magazines");
if (count _mags > 0) then {
_item addMagazineCargoGlobal [(_mags select 0),(round(random 3))];
_item addMagazineCargoGlobal [(_mags select 0),(round(random 1))];
};
};
case "magazine": {

View File

@@ -1,10 +1,10 @@
private["_group","_target","_targetMen","_targetDis","_c","_man","_manDis","_targets","_lead","_leadheight","_nearEnts","_rnd","_assigned"];
private["_group","_target","_lead","_targetMen","_targetDis","_range","_assigned","_targets","_obj","_dis","_fires","_rnd","_man","_manDis","_c"];
_group = _this;
_target = objNull;
_lead = leader _group;
_targetMen = [];
_targetDis = [];
_range = 500;
_range = 300;
_assigned = _group getVariable ["targets",[]];
{

View File

@@ -1,4 +1,4 @@
private["_position","_doLoiter","_unitTypes","_isNoone","_loot","_array","_agent","_type","_radius","_method","_nearByPlayer","_attempt","_myDest","_newDest","_lootType"];
private["_position","_doLoiter","_unitTypes","_isNoone","_loot","_array","_agent","_type","_radius","_method","_nearByPlayer","_attempt","_isAlive","_myDest","_newDest","_rnd","_lootType","_id"];
_position = _this select 0;
_doLoiter = _this select 1;
_unitTypes = _this select 2;
@@ -57,7 +57,8 @@ if (!_doLoiter) then {
if (_nearByPlayer) then {
_attempt = 0;
while {_nearByPlayer} do {
_position = [_position,0,20,10,0,20,0] call BIS_fnc_findSafePos;
//_position = [_position,0,20,10,0,20,0] call BIS_fnc_findSafePos; Orignal
_position = [_position,0,20,20,0,20,0] call BIS_fnc_findSafePos;
_agent setPos _position;
_nearByPlayer = ({isPlayer _x} count (_position nearEntities ["CAManBase",30])) > 0;
_attempt = _attempt + 1;

View File

@@ -33,7 +33,7 @@ class CfgMods
hidePicture = 0;
hideName = 0;
action = "http://www.dayzmod.com";
version = "1.7.4.4";
version = "1.7.5.D1207";
hiveVersion = 0.96; //0.93
};
};
@@ -100,23 +100,23 @@ class CfgSurvival {
};
class Meat {
class Default {
yield = 2;
yield = 1;
};
class Cow: Default {
yield = 8;
yield = 6;
};
class Cow01: Cow{};
class Cow02: Cow{};
class Cow03: Cow{};
class Cow04: Cow{};
class Goat: Default {
yield = 3;
yield = 4;
};
class Sheep: Default {
yield = 5;
yield = 3;
};
class WildBoar: Default {
yield = 4;
yield = 2;
};
};
};
@@ -356,6 +356,7 @@ class CfgBuildingLoot {
{ "Mk_48_DZ","weapon" },
{ "M249_DZ","weapon" },
//{"BAF_L85A2_RIS_CWS","weapon"},
{"BAF_L85A2_RIS_Holo","weapon"},
{ "DMR","weapon" },
{ "","military" },
{ "","medical" },
@@ -365,6 +366,11 @@ class CfgBuildingLoot {
{ "AmmoBoxSmall_762","object" },
{ "Skin_Camo1_DZ","magazine" },
{ "Skin_Sniper1_DZ","magazine" },
{"G36C","weapon"},
{"G36C_camo","weapon"},
//{"G36_C_SD_camo","weapon"},
{"G36A_camo","weapon"},
{"G36K_camo","weapon"},
{ "Skin_Rocket_DZ","magazine" },
{ "Skin_Soldier1_DZ","magazine" }
};
@@ -377,16 +383,21 @@ class CfgBuildingLoot {
0.01, //{"BAF_AS50_scoped","weapon"},
0.03, //{"Mk_48_DZ","weapon"},
0.05, //{"M249_DZ","weapon"},
//0.01, //{"BAF_L85A2_RIS_CWS","weapon"},
0.10, //{"DMR","weapon"},
0.01, //{"BAF_L85A2_RIS_CWS","weapon"}, BAF_L85A2_RIS_Holo
0.06, //{"DMR","weapon"},
1, //{"","military"},
0.5, //{"","medical"},
0.1, //{"MedBox0","object"},
0.01, //{"NVGoggles","weapon"}
0.1,
0.1,
0.08,
0.05,
0.02, //{"NVGoggles","weapon"}
0.1, //AmmoBoxSmall_556
0.1, //AmmoBoxSmall_762
0.08, //Skin_Camo1_DZ
0.05, //Skin_Sniper1_DZ
0.03, //G36C"
0.02, //G36C_camo
//0.01, //G36_C_SD_camo
0.02, //G36A_camo
0.02, //G36K_camo
0.01,
0.05
};
@@ -405,8 +416,8 @@ class CfgBuildingLoot {
};
itemChance[] = {
0.2,
0.5,
0.5
1,
0.2
};
};
class Military: Default {
@@ -450,7 +461,9 @@ class CfgBuildingLoot {
{ "","military" },
//{"Body","object"},
{ "ItemEtool","weapon" },
{"ItemSandbag","magazine"}
{"ItemSandbag","magazine"},
{"Sa58P_EP1","weapon"},
{"Sa58V_EP1","weapon"}
};
itemChance[] = {
0.05,
@@ -486,7 +499,9 @@ class CfgBuildingLoot {
2.50,
//0.20,
0.05,
0.02
0.02,
0.03,
0.03
};
};
class MilitarySpecial: Default {
@@ -501,7 +516,7 @@ class CfgBuildingLoot {
{ "M16A2GL","weapon" },
{ "M249_DZ","weapon" },
{ "M9SD","weapon" },
{ "M136","weapon" },
//{"M136","weapon"},
{ "AK_74","weapon" },
{ "M4A1_Aim","weapon" },
{ "AKS_74_kobra","weapon" },
@@ -526,21 +541,28 @@ class CfgBuildingLoot {
//Ammo
{ "AmmoBoxSmall_556","object" },
{ "AmmoBoxSmall_762","object" },
{ "NVGoggles","weapon" },
//{"NVGoggles","weapon"},
{ "Binocular","weapon" },
{ "ItemFlashlightRed","military" },
{ "ItemKnife","military" },
{ "ItemGPS","weapon" },
{ "ItemMap","military" },
{ "Binocular_Vector","military" },
{ "DZ_Assault_Pack_EP1","object" },
{ "DZ_Patrol_Pack_EP1","object" },
{ "DZ_Backpack_EP1","object" },
{ "","medical" },
{ "","generic" },
{ "","military" },
//{"Body","object"},
{"PipeBomb","magazine"},
{"Sa58V_RCO_EP1","weapon"},
{"Sa58V_CCO_EP1","weapon"},
{"G36_C_SD_camo","weapon"},
{"M40A3","weapon"},
{ "Skin_Soldier1_DZ","magazine" }
};
itemChance[] = {
@@ -548,7 +570,7 @@ class CfgBuildingLoot {
0.05,
0.01,
0.02,
0.01,
//0.01, //m136
0.10,
0.02,
0.10,
@@ -572,11 +594,11 @@ class CfgBuildingLoot {
0.08,
0.04,
0.02,
0.01,
//0.01, //NVGoggles
0.10,
0.05,
0.15,
0.01,
0.01, //ItemGPS
0.03,
0.01,
0.02,
@@ -584,9 +606,13 @@ class CfgBuildingLoot {
0.02,
0.30,
1.00,
5.00,
5.00, //military
//0.20,
0.01,
0.01, //PipeBomb
0.01, //Sa58V_RCO_EP1
0.01, //Sa58V_CCO_EP1
0.01, //{"G36_C_SD_camo","weapon"},
0.02, // M40A3
0.05
};
};

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -48,7 +48,6 @@ if (!isDedicated) then {
player_throwObject = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_throwObject.sqf";
player_alertZombies = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_alertZombies.sqf";
player_fireMonitor = compile preprocessFileLineNumbers "\z\addons\dayz_code\system\fire_monitor.sqf";
//player_combatLogged = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_combatLogged.sqf";
player_tameDog = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_tameDog.sqf";
//Objects
@@ -98,18 +97,39 @@ if (!isDedicated) then {
// TODO: need move it in player_monitor.fsm
// allow player disconnect from server, if loading hang, kicked by BE etc.
[] spawn {
private["_timeOut"];
private["_timeOut","_display","_control1","_control2"];
disableSerialization;
_timeOut = 0;
while { _timeOut < 60 } do {
dayz_loadScreenMsg = "";
diag_log "DEBUG: loadscreen guard started.";
_display = uiNameSpace getVariable "BIS_loadingScreen";
_control1 = _display displayctrl 8400;
_control2 = _display displayctrl 102;
// 40 sec timeout
while { _timeOut < 400 && !dayz_clientPreload } do {
if ( isNull _display ) then {
waitUntil { !dialog; };
startLoadingScreen ["","RscDisplayLoadCustom"];
_display = uiNameSpace getVariable "BIS_loadingScreen";
_control1 = _display displayctrl 8400;
_control2 = _display displayctrl 102;
};
if ( dayz_loadScreenMsg != "" ) then {
_control1 ctrlSetText dayz_loadScreenMsg;
dayz_loadScreenMsg = "";
};
_control2 ctrlSetText format["%1",round(_timeOut*0.1)];
_timeOut = _timeOut + 1;
sleep 1;
sleep 0.1;
};
if ( !dayz_preloadFinished ) then {
endLoadingScreen;
if ( !dayz_clientPreload ) then {
diag_log "DEBUG: loadscreen guard ended with timeout.";
disableUserInput false;
cutText ["Something went wrong! disconnect and try again!", "BLACK OUT",1];
1 cutText ["Something went wrong! disconnect and try again!", "PLAIN"];
player enableSimulation false;
};
} else { diag_log "DEBUG: loadscreen guard ended."; };
};
dayz_losChance = {
private["_agent","_maxDis","_dis","_val","_maxExp","_myExp"];
@@ -203,6 +223,7 @@ if (!isDedicated) then {
_btnRespawn ctrlEnable false;
};
/*
dayz_disableAbort = {
private["_display","_btnAbort","_combattimeout"];
_combattimeout = player getVariable["combattimeout",0];
@@ -215,6 +236,7 @@ if (!isDedicated) then {
_btnAbort = _display displayCtrl 104;
_btnAbort ctrlEnable false;
};
*/
dayz_spaceInterrupt = {
private ["_dikCode", "_handled"];

View File

@@ -22,22 +22,21 @@
//Server only
if (isServer) then {
"dayzDeath" addPublicVariableEventHandler {_id = (_this select 1) spawn server_playerDied};
"dayzDeath" addPublicVariableEventHandler {(_this select 1) call server_playerDied};
"dayzDiscoAdd" addPublicVariableEventHandler {dayz_disco set [count dayz_disco,(_this select 1)];};
"dayzDiscoRem" addPublicVariableEventHandler {dayz_disco = dayz_disco - [(_this select 1)];};
"dayzPlayerSave" addPublicVariableEventHandler {(_this select 1) call server_playerSync;};
"dayzPublishObj" addPublicVariableEventHandler {(_this select 1) call server_publishObj};
"dayzUpdateVehicle" addPublicVariableEventHandler {(_this select 1) call server_updateObject};
"dayzDeleteObj" addPublicVariableEventHandler {(_this select 1) call local_deleteObj};
"dayzPublishVeh" addPublicVariableEventHandler {(_this select 1) call server_publishVeh}; // for vehicle traders
// "dayzPublishBank" addPublicVariableEventHandler {(_this select 1) call server_publishBank};
"dayzTraderMenu" addPublicVariableEventHandler {(_this select 1) call server_traders}; // for all traders
"dayzUpdateVehicle" addPublicVariableEventHandler {_id = (_this select 1) spawn server_updateObject};
"dayzDeleteObj" addPublicVariableEventHandler {_id = (_this select 1) spawn local_deleteObj};
"dayzLogin" addPublicVariableEventHandler {(_this select 1) call server_playerLogin};
"dayzLogin2" addPublicVariableEventHandler {(_this select 1) call server_playerSetup};
"dayzPlayerMorph" addPublicVariableEventHandler {(_this select 1) call server_playerMorph};
"dayzUpdate" addPublicVariableEventHandler {_id = (_this select 1) spawn dayz_processUpdate};
"dayzLoginRecord" addPublicVariableEventHandler {_id = (_this select 1) spawn dayz_recordLogin};
"dayzCharSave" addPublicVariableEventHandler {(_this select 1) call server_playerSync};
// "dayzPlayerMorph" addPublicVariableEventHandler {(_this select 1) call server_playerMorph};
// "dayzUpdate" addPublicVariableEventHandler {_id = (_this select 1) spawn dayz_processUpdate};
"dayzLoginRecord" addPublicVariableEventHandler {(_this select 1) call dayz_recordLogin};
// "dayzCharSave" addPublicVariableEventHandler {(_this select 1) call server_playerSync};
"dayzCharDisco" addPublicVariableEventHandler {(_this select 1) call server_characterSync};
};
@@ -48,8 +47,7 @@ if (!isDedicated) then {
"dayzRoadFlare" addPublicVariableEventHandler {(_this select 1) spawn object_roadFlare};
"norrnRaDrag" addPublicVariableEventHandler {[_this select 1] execVM "\z\addons\dayz_code\medical\publicEH\animDrag.sqf"};
"norrnRnoAnim" addPublicVariableEventHandler {[_this select 1] execVM "\z\addons\dayz_code\medical\publicEH\noAnim.sqf"};
"changeCharacter" addPublicVariableEventHandler {(_this select 1) call player_serverModelChange};
"dayzSwitch" addPublicVariableEventHandler {(_this select 1) call server_switchPlayer};
// "changeCharacter" addPublicVariableEventHandler {(_this select 1) call player_serverModelChange};
// "dayzSwitch" addPublicVariableEventHandler {(_this select 1) call server_switchPlayer};
"dayzFire" addPublicVariableEventHandler {nul=(_this select 1) spawn BIS_Effects_Burn};
//"dayz_combatLog" addPublicVariableEventHandler {nul=(_this select 1) spawn player_combatLogged};
};

View File

@@ -71,6 +71,7 @@ dayz_resetSelfActions = {
s_build_Wire_cat1 = -1;
s_player_deleteBuild = -1;
s_player_forceSave = -1;
s_player_flipveh = -1;
};
call dayz_resetSelfActions;
@@ -191,14 +192,13 @@ if(isnil "dayz_maxLocalZombies") then {
dayz_spawnPos = getPosATL player;
if(isDedicated) then {
dayz_disco = [];
};
if(isServer) then {
dayz_disco = [];
dayz_players = [];
dead_bodyCleanup = [];
needUpdate_objects = [];
botPlayers = [];
};
if(!isDedicated) then {

View File

@@ -87,7 +87,7 @@ class RscDisplayMain : RscStandardDisplay
class DAYZ_Version : CA_Version
{
idc = -1;
text = "DayZ 1.7.4.4";
text = "DayZ 1.7.5.D1207";
y = "(SafeZoneH + SafeZoneY) - (1 - 0.95)";
};
class CA_TitleMainMenu;
@@ -1136,7 +1136,7 @@ class RscTitles
class RscPicture_1301: RscPictureGUI
{
idc = 1301;
text = "\z\addons\dayz_code\gui\status_food_inside_ca.paa";
//text = "\z\addons\dayz_code\gui\status_food_inside_ca.paa";
x = 0.955313 * safezoneW + safezoneX;
y = 0.93 * safezoneH + safezoneY;
w = 0.06;
@@ -1145,7 +1145,7 @@ class RscTitles
class RscPicture_1300: RscPictureGUI
{
idc = 1300;
text = "\z\addons\dayz_code\gui\status_blood_inside_ca.paa";
//text = "\z\addons\dayz_code\gui\status_blood_inside_ca.paa";
x = 0.955313 * safezoneW + safezoneX;
y = 0.86 * safezoneH + safezoneY;
w = 0.06;
@@ -1154,7 +1154,7 @@ class RscTitles
class RscPicture_1302: RscPictureGUI
{
idc = 1302;
text = "\z\addons\dayz_code\gui\status_thirst_inside_ca.paa";
//text = "\z\addons\dayz_code\gui\status_thirst_inside_ca.paa";
x = 0.955313 * safezoneW + safezoneX;
y = 0.79 * safezoneH + safezoneY;
w = 0.06;
@@ -1163,7 +1163,7 @@ class RscTitles
class RscPicture_1306: RscPictureGUI
{
idc = 1306;
text = "\z\addons\dayz_code\gui\status_temp_ca.paa";
//text = "\z\addons\dayz_code\gui\status_temp_ca.paa";
x = 0.955313 * safezoneW + safezoneX;
y = 0.72 * safezoneH + safezoneY;
w = 0.06;
@@ -1209,7 +1209,7 @@ class RscTitles
{
idc = 1701;
text = "\z\addons\dayz_code\gui\status_food_inside_ca.paa";
//text = "\z\addons\dayz_code\gui\status_food_inside_ca.paa";
x = 0.945313 * safezoneW + safezoneX;
y = 0.95 * safezoneH + safezoneY;
w = 0.04;
@@ -1218,7 +1218,7 @@ class RscTitles
class RscPicture_1702: RscPictureGUI
{
idc = 1702;
text = "\z\addons\dayz_code\gui\status_thirst_inside_ca.paa";
//text = "\z\addons\dayz_code\gui\status_thirst_inside_ca.paa";
x = 0.945313 * safezoneW + safezoneX;
y = 0.816666 * safezoneH + safezoneY;
w = 0.04;

View File

@@ -16,7 +16,7 @@
<Key ID="STR_INTRO_3"> <!-- use \n for linebreak (have them regularly!) -->
<Original>On 12 March 2013, a prion disease\nand spreads among the worlds population\ntriggering a global pandemic</Original>
<English>On 12 March 2013, a prion disease\nand spreads among the worlds population\ntriggering a global pandemic</English>
<German>Am 12. Mä 2013 breitet sich\neine Prionenkrankheit unter der Weltbevölkerung aus\nund löst eine globale Pandemie aus</German>
<German>Am 12. März 2013 breitet sich\neine Prionenkrankheit unter der Weltbevölkerung aus\nund löst eine globale Pandemie aus</German>
<Russian>12 марта 2013 г., прионное заболевание\nраспространяется среди населения всего земного шара,\nвызывая общую пандемию</Russian>
</Key>
<Key ID="STR_INTRO_4"> <!-- use \n for linebreak (have them regularly!) -->
@@ -164,7 +164,7 @@
<Key ID="str_build_01">
<Original>You have constructed a %1</Original>
<English>You have constructed a %1</English>
<German>You have constructed a %1</German>
<German>Du hast eine(n) %1 gebaut</German>
<Russian>Вы построили %1.</Russian>
</Key>
<Key ID="str_fireplace_02">
@@ -254,7 +254,7 @@
<Key ID="str_player_11">
<Original>You need to sit in the driver seat before you can repair this vehicle</Original>
<English>You need to sit in the driver seat before you can repair this vehicle</English>
<German>You need to sit in the driver seat before you can repair this vehicle</German>
<German>Sie müssen im Fahrersitz sitzen um dieses Fahrzeug reparieren zu können.</German>
<Russian>Для ремонта требуется занять место водителя хотя бы раз.</Russian>
</Key>
<Key ID="str_player_12">
@@ -266,19 +266,19 @@
<Key ID="str_player_13">
<Original>Waiting for character to create</Original>
<English>Waiting for character to create</English>
<German>Warte auf den Spieler um zu erstellen</German>
<German>Warte darauf, einen neuen Charakter um zu erstellen</German>
<Russian>Пожалуйста, выйдите в окно выбора игрока чтобы продолжить игру</Russian>
</Key>
<Key ID="str_player_14">
<Original>Retrying to Authenticate</Original>
<English>Retrying to Authenticate</English>
<German>Versuche erneut zu Authendifizieren</German>
<German>Versuche erneut zu Authentifizieren</German>
<Russian>Попытка аутентификации</Russian>
</Key>
<Key ID="str_player_15">
<Original>Requesting Authentication</Original>
<English>Requesting Authentication</English>
<German>Empfange Authendifisierung</German>
<German>Empfange Authentifizierung</German>
<Russian>Запрос аутентификации</Russian>
</Key>
<Key ID="str_player_16">
@@ -296,7 +296,7 @@
<Key ID="str_player_18">
<Original>You are running an incorrect version of DAYZ_CODE, please download this file from dayzmod.com/downloads (You are running version %1 and the server is running version %2)</Original>
<English>You are running an incorrect version of DAYZ_CODE, please download this file from dayzmod.com/downloads (You are running version %1 and the server is running version %2)</English>
<German>Du hast eine falsche version von DAYZ_CODE, bitte lade dir die neuste version runter www.dayzmod.com/downloads</German>
<German>Du hast eine falsche Version von DAYZ_CODE, bitte lade dir die neuste Version von www.dayzmod.com/downloads runter </German>
<Russian>Вы используете неверную версию DAYZ_CODE, пожалуйста, скачайте данный файл с dayzmod.com/downloads (Ваша версия %1, версия на сервере %2)</Russian>
</Key>
<Key ID="str_player_20">
@@ -320,13 +320,13 @@
<Key ID="str_player_23">
<Original>You must be in a forest and close to a tree to harvest wood.</Original>
<English>You must be in a forest and close to a tree to harvest wood.</English>
<German>Sie müssen in einem Wald sein und nah an einem Baum zum Holz ernten.</German>
<German>Sie müssen in einem Wald und nah an einem Baum sein, um Holz zu hacken.</German>
<Russian>Вы должны находится в лесу и подойти к дереву, чтобы нарубить дров.</Russian>
</Key>
<Key ID="str_player_24">
<Original>You do not have enough room in your inventory to do that.</Original>
<English>You do not have enough room in your inventory to do that.</English>
<German>Sie haben noch genug Platz in Ihrem Inventar, das zu tun.</German>
<German>Sie haben nicht genug Platz in Ihrem Inventar um das zu tun.</German>
<Russian>У вас недостаточно места в инвентаре.</Russian>
</Key>
<Key ID="str_player_25">
@@ -344,25 +344,25 @@
<Key ID="str_player_27">
<Original>You have applied a heatpack to your body successfully.</Original>
<English>You have applied a heatpack to your body successfully.</English>
<German>You have applied a heatpack to your body successfully.</German>
<German>Sie haben das Heatpack erfolgreich appliziert</German>
<Russian>Вы успешно применили на вашем теле согревающий комплект.</Russian>
</Key>
<Key ID="str_player_28">
<Original>You cannot reload that combination, you need %1 %2 magazines.</Original>
<English>You cannot reload that combination, you need %1 %2 magazines.</English>
<German>You cannot reload that combination, you need %1 %2 magazines.</German>
<German>Sie können diese Munition nicht kombinieren, sie brauchen %1 %2 Magazine.</German>
<Russian>Вы не можете перезарядить эту комбинацию. Вам необходимо иметь магазины %1 %2.</Russian>
</Key>
<Key ID="str_player_29">
<Original>You have successfully reloaded %1 %2 magazines.</Original>
<English>You have successfully reloaded %1 %2 magazines.</English>
<German>You have successfully reloaded %1 %2 magazines.</German>
<German>Sie haben erfolgreich %1 %2 Magazine hergestellt.</German>
<Russian>Магазины %1 %2 перезаряжены.</Russian>
</Key>
<Key ID="str_player_30">
<Original>%1 must be on your person to move it to/from your toolbelt.</Original>
<English>%1 must be on your person to move it to/from your toolbelt.</English>
<German>%1 must be on your person to move it to/from your toolbelt.</German>
<German>%1 muss in ihrem Inventar sein um es aus/in ihren Werkzeuggürtel zu packen.</German>
<Russian>Для перемещения с/на пояс, предмет %1 должен быть у вас.</Russian>
</Key>
<Key ID="str_player_31">
@@ -374,25 +374,25 @@
<Key ID="str_player_beinglooted">
<Original>%1 is already being looted by someone else.</Original>
<English>%1 is already being looted by someone else.</English>
<German>%1 is already being looted by someone else.</German>
<German>%1 wurde von einer anderen Person gelooted.</German>
<Russian>%1 уже кто-то обыскивает.</Russian>
</Key>
<Key ID="str_player_beingpacked">
<Original>That tent is already being packed.</Original>
<English>That tent is already being packed.</English>
<German>That tent is already being packed.</German>
<German>Dieses Zelt wurde bereits eingepackt.</German>
<Russian>Эту палатку уже упаковывают.</Russian>
</Key>
<Key ID="str_player_studybody">
<Original>His name was %1, it appears he died from %2</Original>
<English>His name was %1, it appears he died from %2</English>
<German>%1 wurde von %2 getötet</German>
<German>Sein Name war %1, er ist durch %2 gestorben</German>
<Russian>Его звали %1, похоже что он умер от %2</Russian>
</Key>
<Key ID="str_death_shothead">
<Original>a gunshot to the head</Original>
<English>a gunshot to the head</English>
<German>ein schuss auf den Kopf</German>
<German>einen Schuss in den Kopf</German>
<Russian>попадания пули в голову</Russian>
</Key>
<Key ID="str_death_shotheavy">
@@ -404,7 +404,7 @@
<Key ID="str_death_bled">
<Original>blood loss</Original>
<English>blood loss</English>
<German>blutverlust</German>
<German>hohen Blutverlust</German>
<Russian>потери крови</Russian>
</Key>
<Key ID="str_death_dehyd">
@@ -428,7 +428,7 @@
<Key ID="str_death_unknown">
<Original>an unknown cause</Original>
<English>an unknown cause</English>
<German>ein unbekannter Grund</German>
<German>einen unbekannten Grund</German>
<Russian>неизвестной причины</Russian>
</Key>
</Package>
@@ -442,7 +442,7 @@
<Key ID="STR_UI_GENDER_DESC">
<Original>Please select the gender you wish to play as. Your gender will be bound to this unique character and cannot be changed until you die.</Original>
<English>Please select the gender you wish to play as. Your gender will be bound to this unique character and cannot be changed until you die.</English>
<German>Bitte wählen Sie das Geschlecht, die Sie als zu spielen. Ihr Geschlecht wird zu dieser einzigartigen Charakter gebunden und kann nicht geändert werden, bis Sie sterben.</German>
<German>Bitte wählen Sie das Geschlecht aus, mit dem sie Spielen wollen. Ihr Geschlecht wird an diesen einzigartigen Charakter gebunden und kann nicht geändert werden, bis sie sterben.</German>
<Russian>Пожалуйста, выберите пол вашего персонажа. Учтите, вы не сможете изменить его в течении игры, до тех пор, пока не погибнете.</Russian>
</Key>
<Key ID="STR_UI_GENDER_MALE">
@@ -516,7 +516,7 @@
<Key ID="str_actions_medical_02">
<Original>Check Pulse</Original>
<English>Check Pulse</English>
<German>Puls fühlen</German>
<German>Puls überprüfen</German>
<Russian>Проверить пульс</Russian>
</Key>
<Key ID="str_actions_medical_03">
@@ -630,9 +630,15 @@
<Key ID="str_actions_save">
<Original>Save %1</Original>
<English>Save %1</English>
<German>% Save</German>
<German>% speichern</German>
<Russian>Сохранить %1</Russian>
</Key>
<Key ID="str_actions_flipveh">
<Original>Turn Over %1</Original>
<English>Turn Over %1</English>
<German>Turn Over %1</German>
<Russian>Turn Over %1</Russian>
</Key>
<Key ID="STR_CHAR_2">
<Original>Bandit</Original>
<English>Bandit</English>

View File

@@ -1,4 +1,4 @@
/*%FSM<COMPILE "D:\Bohemia Interactive\Tools\FSM Editor Personal Edition\scriptedFSM.cfg, DayZ Player Monitor">*/
/*%FSM<COMPILE "F:\DayZ\Tools\FSM Editor Personal Edition\scriptedFSM.cfg, DayZ Player Monitor">*/
/*%FSM<HEAD>*/
/*
item0[] = {"init",0,250,-75.000000,-350.000000,25.000000,-300.000000,0.000000,"init"};
@@ -34,9 +34,9 @@ item29[] = {"Load_In",2,250,-75.000000,850.000000,25.000000,900.000000,0.000000,
item30[] = {"Bad_Version",4,218,50.000000,650.000000,150.000000,700.000000,0.000000,"Bad" \n "Version"};
item31[] = {"ERROR__Bad_Versi",2,250,175.000000,650.000000,275.000000,700.000000,0.000000,"ERROR:" \n "Bad Version"};
item32[] = {"Display_Ready",4,218,-175.000000,900.000000,-75.000000,950.000000,0.000000,"Display" \n "Ready"};
item33[] = {"Preload_Display",2,4346,-75.000000,950.000000,25.000000,1000.000000,0.000000,"Preload" \n "Display"};
item33[] = {"Preload_Display",2,250,-75.000000,950.000000,25.000000,1000.000000,0.000000,"Preload" \n "Display"};
item34[] = {"Preload_Done",4,218,-175.000000,1000.000000,-75.000000,1050.000000,0.000000,"Preload" \n "Done"};
item35[] = {"Initialize",2,250,-75.000000,1050.000000,25.000000,1100.000000,0.000000,"Initialize"};
item35[] = {"Initialize",2,4346,-75.000000,1050.000000,25.000000,1100.000000,0.000000,"Initialize"};
item36[] = {"Finish",1,250,-75.000000,1150.000000,25.000000,1200.000000,0.000000,"Finish"};
item37[] = {"True",8,218,25.000000,1100.000000,125.000000,1150.000000,0.000000,"True"};
item38[] = {"Too_Long",4,218,300.000000,150.000000,400.000000,200.000000,0.000000,"Too" \n "Long"};
@@ -114,8 +114,8 @@ link56[] = {49,50};
link57[] = {50,49};
link58[] = {51,52};
link59[] = {52,29};
globals[] = {25.000000,1,0,0,0,640,480,1,81,6316128,1,-440.765930,455.171539,1392.221191,828.390381,955,601,1};
window[] = {2,-1,-1,-1,-1,934,154,1125,154,3,972};
globals[] = {25.000000,1,0,0,0,640,480,1,81,6316128,1,-536.745972,551.148315,1344.204346,288.206512,955,927,1};
window[] = {2,-1,-1,-32000,-32000,802,22,993,22,3,972};
*//*%FSM</HEAD>*/
class FSM
{
@@ -131,8 +131,9 @@ class FSM
"" \n
"0 fadeSound 0;" \n
"//player setPosATL [-2148,6655,0];" \n
"" \n
"progressLoadingScreen 0.1;" \n
"_timeStart = time;" \n
"player enableSimulation false;" \n
""/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
@@ -188,7 +189,9 @@ class FSM
init = /*%FSM<STATEINIT""">*/"endLoadingScreen;" \n
"diag_log (""PLOGIN: Initating"");" \n
"" \n
"0 cutText [localize ""str_player_13"", ""BLACK FADED"",60];"/*%FSM</STATEINIT""">*/;
"dayz_loadScreenMsg = (localize ""str_player_13""); " \n
"progressLoadingScreen 0.2;" \n
""/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
@@ -200,7 +203,6 @@ class FSM
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"!isnil ""bis_fnc_init"""/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/"dayz_forceSave = {" \n
" //dayzCharSave = [player,dayz_Magazines,true];" \n
"" \n
" createGearDialog [player, ""RscDisplayGear""];" \n
"_dialog = findDisplay 106;" \n
@@ -281,12 +283,8 @@ class FSM
" dayzCharDisco = [dayz_characterID,_playerPos,[weapons player,_magazineArray],[typeOf (unitbackpack player),getWeaponCargo (unitbackpack player),getMagazineCargo (unitbackpack player)],_medical,_currentState,_currentModel];" \n
" //diag_log str(dayzCharDisco); " \n
"" \n
" //publicVariableServer ""dayzCharSave"";" \n
" publicVariableServer ""dayzCharDisco"";" \n
" if (isServer) then {" \n
" //dayzCharSave call server_playerSync;" \n
" dayzCharDisco call server_characterSync;" \n
" };" \n
" // remove isServer from player space" \n
" dayz_lastSave = time;" \n
" dayz_Magazines = [];" \n
"};"/*%FSM</ACTION""">*/;
@@ -322,7 +320,8 @@ class FSM
name = "Collect";
init = /*%FSM<STATEINIT""">*/"diag_log (""PLOGIN: Player Ready"");" \n
"" \n
"0 cutText [""Getting Player ID"", ""BLACK FADED"",60];" \n
"dayz_loadScreenMsg = (localize ""str_player_13""); " \n
"progressLoadingScreen 0.3;" \n
"" \n
"_playerUID = getPlayerUID player;"/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
@@ -392,7 +391,7 @@ class FSM
init = /*%FSM<STATEINIT""">*/"endLoadingScreen;" \n
"selectNoPlayer;" \n
"_myTime = time;" \n
"0 cutText [localize ""str_player_14"", ""BLACK FADED"",15];"/*%FSM</STATEINIT""">*/;
"1 cutText [localize ""str_player_14"", ""PLAIN"",15];"/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
@@ -413,19 +412,38 @@ class FSM
class Request
{
name = "Request";
init = /*%FSM<STATEINIT""">*/"startLoadingScreen ["""",""DayZ_loadingScreen""];" \n
init = /*%FSM<STATEINIT""">*/"//startLoadingScreen ["""",""DayZ_loadingScreen""];" \n
"" \n
"diag_log (""PLOGIN: Requesting Authentication... ("" + _playerUID + "")"");" \n
"0 cutText [localize ""str_player_15"", ""BLACK FADED"",60];" \n
"dayz_loadScreenMsg = (localize ""str_player_15"");" \n
"progressLoadingScreen 0.5;" \n
"" \n
"_msg = [];" \n
"" \n
"dayzLogin = [_playerUID,player];" \n
"dayzPlayerLogin = [];" \n
"publicVariableServer ""dayzLogin"";" \n
"if (isServer) then {" \n
" dayzLogin call server_playerLogin;" \n
"};"/*%FSM</STATEINIT""">*/;
"penaltyTimeout = true;" \n
"" \n
"[] spawn {" \n
" private[""_doLoop""];" \n
" _doLoop = 0;" \n
" sleep 1;" \n
"" \n
" while { penaltyTimeout && _doLoop < 60 } do {" \n
"// diag_log ""DEBUG: penalty timeout running.""; " \n
" _doLoop=_doLoop + 1;" \n
"// TODO: localize this msg " \n
" dayz_loadScreenMsg = format[""Combatmode timeout: %1"",_doLoop]; " \n
" progressLoadingScreen (_doLoop/60);" \n
" sleep 1;" \n
" };" \n
" dayz_loadScreenMsg = "" ""; " \n
"};" \n
"" \n
"" \n
"// remove isServer from player space" \n
""/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
@@ -446,7 +464,8 @@ class FSM
class Parse_Login
{
name = "Parse_Login";
init = /*%FSM<STATEINIT""">*/"_charID = _msg select 0;" \n
init = /*%FSM<STATEINIT""">*/"progressLoadingScreen 0.6;" \n
"_charID = _msg select 0;" \n
"_inventory = _msg select 1;" \n
"_backpack = _msg select 2;" \n
"_survival = _msg select 3;" \n
@@ -464,7 +483,8 @@ class FSM
" diag_log (""PLAYER RESULT: "" + str(_isHiveOk));" \n
"};" \n
"" \n
"0 cutText [localize ""str_player_17"", ""BLACK FADED"",60];" \n
"dayz_loadScreenMsg = (localize ""str_player_17""); " \n
"progressLoadingScreen 0.7;" \n
"diag_log (""PLOGIN: authenticated with : "" + str(_msg));" \n
"" \n
"//Not Equal Failure" \n
@@ -531,7 +551,7 @@ class FSM
"selectNoPlayer;" \n
"" \n
"_myTime = time;" \n
"0 cutText [""This server is running an incorrect version of the server side application. You cannot play on this server. If you are the server admin please contact DayZ staff."", ""BLACK FADED"",5];"/*%FSM</STATEINIT""">*/;
"1 cutText [""This server is running an incorrect version of the server side application. You cannot play on this server. If you are the server admin please contact DayZ staff."", ""PLAIN"",5];"/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
@@ -633,12 +653,11 @@ class FSM
"" \n
"dayzPlayerLogin2 = [];" \n
"dayzLogin2 = [_charID,player,_playerUID];" \n
"publicVariable ""dayzLogin2"";" \n
"if (isServer) then {" \n
" dayzLogin2 spawn server_playerSetup;" \n
"};" \n
"publicVariableServer ""dayzLogin2"";" \n
"// remove isServer from player space" \n
"" \n
"0 cutText [""Requesting Character data from server"", ""BLACK FADED"",60];" \n
"dayz_loadScreenMsg = ""Requesting Character data from server"";" \n
"progressLoadingScreen 0.8;" \n
"diag_log ""Attempting Phase two..."";"/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
@@ -660,7 +679,7 @@ class FSM
class Phase_Two
{
name = "Phase_Two";
init = /*%FSM<STATEINIT""">*/"0 cutText [""Character Data received from server"", ""BLACK FADED"",60];" \n
init = /*%FSM<STATEINIT""">*/"dayz_loadScreenMsg = ""Character Data received from server""; " \n
"diag_log ""Finished..."";" \n
"" \n
"_worldspace = dayzPlayerLogin2 select 0;" \n
@@ -808,12 +827,12 @@ class FSM
class Position
{
name = "Position";
init = /*%FSM<STATEINIT""">*/"endLoadingScreen;" \n
"startLoadingScreen ["""",""DayZ_loadingScreen""];" \n
init = /*%FSM<STATEINIT""">*/"" \n
"//Location" \n
"_myLoc = getPosATL player;" \n
"" \n
"0 cutText [""Setup Completed, please wait..."", ""BLACK FADED"",60];" \n
"dayz_loadScreenMsg = ""Setup Completed, please wait..."";" \n
"progressLoadingScreen 0.9;" \n
"" \n
"//GUI" \n
"3 cutRsc [""playerStatusGUI"", ""PLAIN"",0];" \n
@@ -873,7 +892,7 @@ class FSM
"" \n
"dayz_clientPreload = true;" \n
"3 fadeSound 1;" \n
"0 cutText ["""", ""BLACK IN"", 3];" \n
"1 cutText ["""", ""PLAIN""];" \n
"0 fadeMusic 0.5;" \n
"" \n
"//Check mission objects" \n
@@ -902,7 +921,7 @@ class FSM
init = /*%FSM<STATEINIT""">*/"endLoadingScreen;" \n
"selectNoPlayer;" \n
"_myTime = time;" \n
"cutText [format[localize ""str_player_18"",dayz_versionNo,_version], ""BLACK""];"/*%FSM</STATEINIT""">*/;
"1 cutText [format[localize ""str_player_18"",dayz_versionNo,_version], ""PLAIN""];"/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
@@ -1012,7 +1031,9 @@ class FSM
class Initialize
{
name = "Initialize";
init = /*%FSM<STATEINIT""">*/"//Medical" \n
init = /*%FSM<STATEINIT""">*/"#define ods(arg1) ""armaperflib"" callextension arg1" \n
"" \n
"//Medical" \n
"dayz_medicalH = [] execVM ""\z\addons\dayz_code\medical\init_medical.sqf""; //Medical Monitor Script (client only)" \n
"[player] call fnc_usec_damageHandle;" \n
"if (r_player_unconscious) then {" \n
@@ -1020,6 +1041,8 @@ class FSM
" player playActionNow ""Die"";" \n
"};" \n
"player allowDamage true;" \n
"player enableSimulation true;" \n
"0 cutText ["""", ""BLACK IN"",3];" \n
"" \n
"//Add core tools" \n
"player addWeapon ""Loot"";" \n
@@ -1046,6 +1069,7 @@ class FSM
" _array = player call world_surfaceNoise;" \n
" dayz_surfaceNoise = _array select 1;" \n
" dayz_surfaceType = _array select 0;" \n
"" \n
" call player_checkStealth;" \n
" dayz_statusArray = [] call player_updateGui;" \n
" if (!isNull cursorTarget and !dayz_heartBeat) then {" \n
@@ -1082,12 +1106,16 @@ class FSM
" _charID = _this select 1;" \n
" _runOnce = false;" \n
" while {true} do {" \n
" _handle = [false] spawn player_spawnCheck;" \n
" waitUntil{scriptDone _handle};" \n
"" \n
" ods(""dayz_lootCheck"");" \n
"" \n
" call player_spawnCheck; " \n
"" \n
" call stream_locationCheck;" \n
" sleep 2;" \n
" sleep 10;" \n
" };" \n
"};" \n
"// TODO: questionably" \n
"{ _x call fnc_vehicleEventHandler; } forEach vehicles;" \n
"{ nul = [_x,2,0,false,false] spawn BIS_Effects_Burn; } forEach allMissionObjects ""UH1Wreck_DZ"";" \n
""/*%FSM</STATEINIT""">*/;
@@ -1127,7 +1155,7 @@ class FSM
{
name = "Enable_Sim";
init = /*%FSM<STATEINIT""">*/"_myAnim = getNumber(configFile >> ""CfgPatches"" >> ""dayz_anim"" >> ""isUpdated"");" \n
"player enableSimulation true;"/*%FSM</STATEINIT""">*/;
""/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
@@ -1159,8 +1187,8 @@ class FSM
{
name = "Gender_Selection";
init = /*%FSM<STATEINIT""">*/"dayz_selectGender = ""Survivor2_DZ"";" \n
"1 cutText ["""", ""BLACK"",0];" \n
"endLoadingScreen;" \n
"0 cutText ["""", ""BLACK FADED"",60];" \n
"createDialog ""RscDisplayGenderSelect"";"/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
@@ -1206,7 +1234,7 @@ class FSM
init = /*%FSM<STATEINIT""">*/"endLoadingScreen;" \n
"selectNoPlayer;" \n
"_myTime = time;" \n
"0 cutText [""You have an outdated version of 'dayz_anim' please download the correct version"", ""BLACK FADED"",15];"/*%FSM</STATEINIT""">*/;
"1 cutText [""You have an outdated version of 'dayz_anim' please download the correct version"", ""PLAIN"",15];"/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
@@ -1233,7 +1261,7 @@ class FSM
"_zombies = (getPosATL player) nearEntities [""zZombie_Base"",30];" \n
"{deleteVehicle _x} forEach _zombies;" \n
"" \n
"endLoadingScreen;"/*%FSM</STATEINIT""">*/;
"//endLoadingScreen;"/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{

View File

@@ -134,8 +134,8 @@ link71[] = {54,32};
link72[] = {55,7};
link73[] = {56,3};
link74[] = {57,1};
globals[] = {25.000000,1,0,0,0,640,480,1,97,6316128,1,-848.842712,436.361816,737.753784,-47.213638,984,601,1};
window[] = {2,-1,-1,-1,-1,802,22,1230,22,3,1001};
globals[] = {25.000000,1,0,0,0,640,480,1,97,6316128,1,-662.298340,610.054138,759.015137,-18.102575,984,601,1};
window[] = {2,-1,-1,-1,-1,846,66,1274,66,3,1001};
*//*%FSM</HEAD>*/
class FSM
{
@@ -467,7 +467,7 @@ class FSM
"" \n
"//Move to target" \n
"_agent moveTo _targetPos;" \n
"_agent forceSpeed 5;" \n
"_agent forceSpeed 6;" \n
"" \n
"//Check if LOS" \n
"if (_losCheck == 2) then {" \n