mirror of
https://github.com/EpochModTeam/DayZ-Epoch.git
synced 2026-07-03 23:21:55 +03:00
1.7.5.D1202
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
private["_item","_config","_onLadder","_create","_isOk","_config2","_consume"];
|
private["_item","_config","_onLadder","_create","_isOk","_config2","_consume"];
|
||||||
_item = _this;
|
_item = _this;
|
||||||
_config = configFile >> "CfgWeapons" >> _item;
|
_config = configFile >> "cfgWeapons" >> _item;
|
||||||
|
|
||||||
_onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1;
|
_onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1;
|
||||||
if (_onLadder) exitWith {cutText [(localize "str_player_21") , "PLAIN DOWN"]};
|
if (_onLadder) exitWith {cutText [(localize "str_player_21") , "PLAIN DOWN"]};
|
||||||
@@ -13,11 +13,11 @@ call gear_ui_init;
|
|||||||
|
|
||||||
//Add new item
|
//Add new item
|
||||||
_create = getArray (_config >> "ItemActions" >> "Toolbelt" >> "output") select 0;
|
_create = getArray (_config >> "ItemActions" >> "Toolbelt" >> "output") select 0;
|
||||||
_config2 = configFile >> "CfgWeapons" >> _create;
|
_config2 = configFile >> "cfgWeapons" >> _create;
|
||||||
|
|
||||||
//Remove magazines if needed
|
//Remove magazines if needed
|
||||||
if (_item in ["MeleeHatchet","MeleeCrowbar"]) then {
|
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);
|
_meleeNum = ({_x == _magType} count magazines player);
|
||||||
for "_i" from 1 to _meleeNum do {
|
for "_i" from 1 to _meleeNum do {
|
||||||
player removeMagazine _magType;
|
player removeMagazine _magType;
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ disableUserInput true;
|
|||||||
_dialog = findDisplay 106;
|
_dialog = findDisplay 106;
|
||||||
_created = false;
|
_created = false;
|
||||||
if ( isNull _dialog ) then {
|
if ( isNull _dialog ) then {
|
||||||
startLoadingScreen [""];
|
//startLoadingScreen [""];
|
||||||
createGearDialog [player, "RscDisplayGear"];
|
createGearDialog [player, "RscDisplayGear"];
|
||||||
_dialog = findDisplay 106;
|
_dialog = findDisplay 106;
|
||||||
_created = true;
|
_created = true;
|
||||||
@@ -48,7 +48,7 @@ for "_i" from 122 to 129 do
|
|||||||
};
|
};
|
||||||
if ( _created ) then {
|
if ( _created ) then {
|
||||||
closeDialog 0;
|
closeDialog 0;
|
||||||
endLoadingScreen;
|
//endLoadingScreen;
|
||||||
};
|
};
|
||||||
disableUserInput false;
|
disableUserInput false;
|
||||||
dayz_Magazines=_magazineArray;
|
dayz_Magazines=_magazineArray;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
private["_hasFood","_item","_text","_key"];
|
private["_onLadder","_item","_hasfoodmag","_config","_text","_regen","_update","_id","_display","_control","_bloodVal","_ctrlBlood"];
|
||||||
disableserialization;
|
disableserialization;
|
||||||
call gear_ui_init;
|
call gear_ui_init;
|
||||||
_onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1;
|
_onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1;
|
||||||
|
|||||||
@@ -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];
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
private["_item"];
|
private["_item","_onLadder","_hasmeditem","_config","_text","_id"];
|
||||||
_item = _this;
|
_item = _this;
|
||||||
call gear_ui_init;
|
call gear_ui_init;
|
||||||
_onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1;
|
_onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1;
|
||||||
@@ -26,7 +26,7 @@ switch (_item) do {
|
|||||||
};
|
};
|
||||||
case "ItemHeatPack": {
|
case "ItemHeatPack": {
|
||||||
player removeMagazine "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"];
|
cutText [localize "str_player_27", "PLAIN DOWN"];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
_item spawn player_wearClothes;
|
_item spawn player_wearClothes;
|
||||||
TODO: female
|
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;
|
_item = _this;
|
||||||
call gear_ui_init;
|
call gear_ui_init;
|
||||||
_onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1;
|
_onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1;
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
private["_obj","_bag","_pos"];
|
private["_obj","_bag","_pos"];
|
||||||
hintSilent format["DEBUG: %1",_this];
|
|
||||||
_obj = _this select 3;
|
_obj = _this select 3;
|
||||||
_obj spawn player_packTent;
|
_obj spawn player_packTent;
|
||||||
|
|||||||
@@ -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;
|
call gear_ui_init;
|
||||||
|
|
||||||
|
|||||||
@@ -141,13 +141,15 @@ class CfgLoot {
|
|||||||
"ItemPainkiller",
|
"ItemPainkiller",
|
||||||
"ItemMorphine",
|
"ItemMorphine",
|
||||||
"ItemEpinephrine",
|
"ItemEpinephrine",
|
||||||
|
"ItemAntibiotic",
|
||||||
"ItemHeatPack"
|
"ItemHeatPack"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
1,
|
0.8,
|
||||||
0.5,
|
0.5,
|
||||||
0.5,
|
0.5,
|
||||||
0.2,
|
0.2,
|
||||||
|
0.3,
|
||||||
0.1
|
0.1
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -161,12 +163,12 @@ class CfgLoot {
|
|||||||
"ItemAntibiotic"
|
"ItemAntibiotic"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
0.43,
|
0.33,
|
||||||
0.17,
|
0.17,
|
||||||
0.13,
|
0.13,
|
||||||
0.09,
|
0.09,
|
||||||
0.17,
|
0.17,
|
||||||
0.02
|
0.12
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
military[] = {
|
military[] = {
|
||||||
@@ -176,6 +178,7 @@ class CfgLoot {
|
|||||||
"ItemSodaCoke",
|
"ItemSodaCoke",
|
||||||
"ItemSodaPepsi",
|
"ItemSodaPepsi",
|
||||||
"ItemBandage",
|
"ItemBandage",
|
||||||
|
"ItemAntibiotic",
|
||||||
"ItemPainkiller",
|
"ItemPainkiller",
|
||||||
"ItemMorphine",
|
"ItemMorphine",
|
||||||
"30Rnd_556x45_Stanag",
|
"30Rnd_556x45_Stanag",
|
||||||
@@ -214,6 +217,7 @@ class CfgLoot {
|
|||||||
0.01,
|
0.01,
|
||||||
0.04,
|
0.04,
|
||||||
0.04,
|
0.04,
|
||||||
|
0.04,
|
||||||
0.01,
|
0.01,
|
||||||
0.04,
|
0.04,
|
||||||
0.04,
|
0.04,
|
||||||
|
|||||||
@@ -320,7 +320,13 @@ class CfgVehicles {
|
|||||||
driverCanSee = 2+16+32;
|
driverCanSee = 2+16+32;
|
||||||
};
|
};
|
||||||
//AH6X_EP1
|
//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
|
class AH6X_DZ: AH6X_EP1
|
||||||
{
|
{
|
||||||
displayName = "AH6X_DZ";
|
displayName = "AH6X_DZ";
|
||||||
|
|||||||
@@ -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;
|
_obj = _this select 0;
|
||||||
_fastRun = _this select 1;
|
|
||||||
|
|
||||||
_type = typeOf _obj;
|
_type = typeOf _obj;
|
||||||
_config = configFile >> "CfgBuildingLoot" >> _type;
|
_config = configFile >> "CfgBuildingLoot" >> _type;
|
||||||
|
|
||||||
_positions = [] + getArray (_config >> "lootPos");
|
_positions = [] + getArray (_config >> "lootPos");
|
||||||
//diag_log ("LOOTSPAWN: READ:" + str(_type));
|
//diag_log ("LOOTSPAWN: READ:" + str(_type));
|
||||||
_lootChance = getNumber (_config >> "lootChance");
|
_lootChance = getNumber (_config >> "lootChance");
|
||||||
_itemType = [] + getArray (_config >> "itemType");
|
_itemType = [] + getArray (_config >> "itemType");
|
||||||
//diag_log ("LOOTSPAWN: READ:" + str(_itemType));
|
//diag_log ("LOOTSPAWN: READ:" + str(_itemType));
|
||||||
_itemChance = [] + getArray (_config >> "itemChance");
|
_itemChance = [] + getArray (_config >> "itemChance");
|
||||||
|
|
||||||
//diag_log ("LOOTSPAWN: Type " + str(count _itemType) + " / Chance " + str(count _itemChance));
|
//diag_log ("LOOTSPAWN: Type " + str(count _itemType) + " / Chance " + str(count _itemChance));
|
||||||
|
|
||||||
//diag_log ("I want to spawn loot...");
|
//diag_log ("I want to spawn loot...");
|
||||||
|
|
||||||
{
|
{
|
||||||
private["_iPos2"];
|
private["_iPos2"];
|
||||||
_iPos2 = _obj modelToWorld _x;
|
_iPos2 = _obj modelToWorld _x;
|
||||||
@@ -38,13 +32,10 @@ _itemChance = [] + getArray (_config >> "itemChance");
|
|||||||
_iArray set [3,0];
|
_iArray set [3,0];
|
||||||
_iArray call spawn_loot;
|
_iArray call spawn_loot;
|
||||||
_iArray = [];
|
_iArray = [];
|
||||||
diag_log ("LOOTSPAWN");
|
//diag_log ("LOOTSPAWN");
|
||||||
};
|
};
|
||||||
_item setVariable ["created",(DateToNumber date),true];
|
_item setVariable ["created",(DateToNumber date),true];
|
||||||
};
|
};
|
||||||
if (!_fastRun) then {
|
|
||||||
sleep 0.1;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
} forEach _positions;
|
} forEach _positions;
|
||||||
@@ -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;
|
_obj = _this select 0;
|
||||||
_type = typeOf _obj;
|
_type = typeOf _obj;
|
||||||
_config = configFile >> "CfgBuildingLoot" >> _type;
|
_config = configFile >> "CfgBuildingLoot" >> _type;
|
||||||
_canLoot = isClass (_config);
|
_canLoot = isClass (_config);
|
||||||
_fastRun = _this select 1;
|
|
||||||
_originalPos = getPosATL _obj;
|
_originalPos = getPosATL _obj;
|
||||||
if (_canLoot) then {
|
if (_canLoot) then {
|
||||||
//Get zombie class
|
//Get zombie class
|
||||||
_unitTypes = getArray (_config >> "zombieClass");
|
_unitTypes = getArray (_config >> "zombieClass");
|
||||||
_min = getNumber (_config >> "maxRoaming");
|
_min = getNumber (_config >> "maxRoaming");
|
||||||
_max = getNumber (_config >> "minRoaming");
|
_max = getNumber (_config >> "minRoaming");
|
||||||
|
|
||||||
//Walking Zombies
|
//Walking Zombies
|
||||||
_num = round(random _max) max _min; // + round(_max / 3);
|
_num = round(random _max) max _min; // + round(_max / 3);
|
||||||
//diag_log ("Class: " + _type + " / Zombies: " + str(_unitTypes) + " / Walking: " + str(_num));
|
//diag_log ("Class: " + _type + " / Zombies: " + str(_unitTypes) + " / Walking: " + str(_num));
|
||||||
for "_i" from 1 to _num do
|
for "_i" from 1 to _num do
|
||||||
{
|
{
|
||||||
[_originalPos,true,_unitTypes] call zombie_generate;
|
[_originalPos,true,_unitTypes] call zombie_generate;
|
||||||
if (!_fastRun) then {
|
|
||||||
sleep 0.1;
|
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
//Add Internal Zombies
|
//Add Internal Zombies
|
||||||
_clean = {alive _x} count ((getPosATL _obj) nearEntities ["zZombie_Base",(sizeOf _type)]) == 0;
|
_clean = {alive _x} count ((getPosATL _obj) nearEntities ["zZombie_Base",(sizeOf _type)]) == 0;
|
||||||
if (_clean) then {
|
if (_clean) then {
|
||||||
@@ -39,9 +33,6 @@ if (_canLoot) then {
|
|||||||
[_iPos,false,_unitTypes] call zombie_generate;
|
[_iPos,false,_unitTypes] call zombie_generate;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
if (!_fastRun) then {
|
|
||||||
sleep 0.1;
|
|
||||||
};
|
|
||||||
} forEach _positions;
|
} forEach _positions;
|
||||||
};
|
};
|
||||||
dayz_buildingMonitor set [count dayz_buildingMonitor,_obj];
|
dayz_buildingMonitor set [count dayz_buildingMonitor,_obj];
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ scriptName "Functions\misc\fn_damageHandler.sqf";
|
|||||||
- Function
|
- Function
|
||||||
- [unit, selectionName, damage, source, projectile] call fnc_usec_damageHandler;
|
- [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;
|
_unit = _this select 0;
|
||||||
_hit = _this select 1;
|
_hit = _this select 1;
|
||||||
_damage = _this select 2;
|
_damage = _this select 2;
|
||||||
@@ -47,9 +47,6 @@ if (_unit == player) then {
|
|||||||
if (_hit == "") then {
|
if (_hit == "") then {
|
||||||
if ((_source != player) and _isPlayer) then {
|
if ((_source != player) and _isPlayer) then {
|
||||||
//Enable aggressor Actions
|
//Enable aggressor Actions
|
||||||
if (_source isKindOf "CAManBase") then {
|
|
||||||
_source setVariable["startcombattimer",1];
|
|
||||||
};
|
|
||||||
_canHitFree = player getVariable ["freeTarget",false];
|
_canHitFree = player getVariable ["freeTarget",false];
|
||||||
_isBandit = (typeOf player) == "Bandit1_DZ";
|
_isBandit = (typeOf player) == "Bandit1_DZ";
|
||||||
if (!_canHitFree and !_isBandit) then {
|
if (!_canHitFree and !_isBandit) then {
|
||||||
@@ -108,11 +105,12 @@ if (_hit in USEC_MinorWounds) then {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
|
||||||
if (_unit == player) then {
|
if (_unit == player) then {
|
||||||
player sideChat str(_damage);
|
//incombat
|
||||||
|
_unit setVariable["startcombattimer", 1, false];
|
||||||
};
|
};
|
||||||
*/
|
|
||||||
if (_damage > 0.1) then {
|
if (_damage > 0.1) then {
|
||||||
if (_unit == player) then {
|
if (_unit == player) then {
|
||||||
//shake the cam, frighten them!
|
//shake the cam, frighten them!
|
||||||
@@ -131,7 +129,7 @@ if (_damage > 0.4) then { //0.25
|
|||||||
_isHit = _unit getVariable[_wound,false];
|
_isHit = _unit getVariable[_wound,false];
|
||||||
if (_unit == player) then {
|
if (_unit == player) then {
|
||||||
_rndPain = (random 10);
|
_rndPain = (random 10);
|
||||||
_rndInfection = (random 1000);
|
_rndInfection = (random 500);
|
||||||
_hitPain = (_rndPain < _damage);
|
_hitPain = (_rndPain < _damage);
|
||||||
if ((_isHeadHit) or (_damage > 1.2 and _hitPain)) then {
|
if ((_isHeadHit) or (_damage > 1.2 and _hitPain)) then {
|
||||||
_hitPain = true;
|
_hitPain = true;
|
||||||
|
|||||||
@@ -1,59 +1,22 @@
|
|||||||
/*
|
private["_findarray","_stringarray","_findcount","_stringcount","_found","_y","_i","_x"];
|
||||||
File: inString.sqf
|
|
||||||
Author: Mika Hannola
|
|
||||||
|
|
||||||
Description:
|
_findarray = toArray (_this select 0);
|
||||||
Find a string within a string.
|
_stringarray = toArray (_this select 1);
|
||||||
|
|
||||||
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;
|
|
||||||
_findcount = count _findarray;
|
_findcount = count _findarray;
|
||||||
_stringcount = count _stringarray;
|
_stringcount = count _stringarray;
|
||||||
_found = false;
|
_found = false;
|
||||||
|
|
||||||
scopeName "main";
|
scopeName "main";
|
||||||
if (_findcount <= _stringcount and !_found) then
|
|
||||||
{
|
if (_findcount <= _stringcount) then {
|
||||||
for "_y" from 0 to (_stringcount - _findcount) do
|
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;
|
|
||||||
_i = 0;
|
_i = 0;
|
||||||
{
|
{
|
||||||
if (_x != _match select _i) then
|
scopeName "loop1";
|
||||||
{
|
if (_x == (_stringarray select (_y + _i))) then {
|
||||||
_found = false;
|
|
||||||
};
|
|
||||||
_i = _i + 1;
|
_i = _i + 1;
|
||||||
|
} else {breakOut "loop1";};
|
||||||
} forEach _findarray;
|
} forEach _findarray;
|
||||||
if (_found) then {breakTo "main";};
|
if (_i == _findcount) then {_found = true; breakTo "main";};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
_found;
|
_found
|
||||||
@@ -4,7 +4,7 @@ scriptName "Functions\misc\fn_selfActions.sqf";
|
|||||||
- Function
|
- Function
|
||||||
- [] call fnc_usec_selfActions;
|
- [] 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;
|
_vehicle = vehicle player;
|
||||||
_inVehicle = (_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
|
if (!isNull cursorTarget and !_inVehicle and (player distance cursorTarget < 4)) then { //Has some kind of target
|
||||||
_isHarvested = cursorTarget getVariable["meatHarvested",false];
|
_isHarvested = cursorTarget getVariable["meatHarvested",false];
|
||||||
_isVehicle = cursorTarget isKindOf "AllVehicles";
|
_isVehicle = cursorTarget isKindOf "AllVehicles";
|
||||||
|
_isVehicletype = typeOf cursorTarget in ["ATV_US_EP1","ATV_CZ_EP1"];
|
||||||
_isMan = cursorTarget isKindOf "Man";
|
_isMan = cursorTarget isKindOf "Man";
|
||||||
_traderType = typeOf cursorTarget;
|
_traderType = typeOf cursorTarget;
|
||||||
_ownerID = cursorTarget getVariable ["characterID","0"];
|
_ownerID = cursorTarget getVariable ["characterID","0"];
|
||||||
@@ -54,6 +55,7 @@ if (!isNull cursorTarget and !_inVehicle and (player distance cursorTarget < 4))
|
|||||||
_isTent = cursorTarget isKindOf "TentStorage";
|
_isTent = cursorTarget isKindOf "TentStorage";
|
||||||
_isFuel = false;
|
_isFuel = false;
|
||||||
_isAlive = alive cursorTarget;
|
_isAlive = alive cursorTarget;
|
||||||
|
_canmove = canmove cursorTarget;
|
||||||
_text = getText (configFile >> "CfgVehicles" >> typeOf cursorTarget >> "displayName");
|
_text = getText (configFile >> "CfgVehicles" >> typeOf cursorTarget >> "displayName");
|
||||||
if (_hasFuelE) then {
|
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");
|
_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;
|
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
|
//Allow player to fill jerrycan
|
||||||
if(_hasFuelE and _isFuel and _canDo) then {
|
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;
|
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
|
//Packing my tent
|
||||||
if(cursorTarget isKindOf "TentStorage" and _canDo and _ownerID == dayz_characterID) then {
|
if(cursorTarget isKindOf "TentStorage" and _canDo and _ownerID == dayz_characterID) then {
|
||||||
if ((s_player_packtent < 0) and (player distance cursorTarget < 3)) 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 {
|
if (s_player_parts_crtl < 0) then {
|
||||||
|
|
||||||
// [_trader_id, _category, ];
|
// [_trader_id, _category, ];
|
||||||
_buy = player addAction ["Buy Vehicle", "\z\addons\dayz_code\actions\buy_db.sqf",[41], 99, true, false, "",""];
|
_buy = player addAction ["Buy Car", "\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, "",""];
|
_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,_buy];
|
||||||
s_player_parts set [count s_player_parts,_sell];
|
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;
|
s_player_parts_crtl = 1;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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;
|
_looptime = _this;
|
||||||
|
|
||||||
@@ -56,7 +56,7 @@ Missing:
|
|||||||
private["_vel","_speed"];
|
private["_vel","_speed"];
|
||||||
_vel = velocity player;
|
_vel = velocity player;
|
||||||
_speed = round((_vel distance [0,0,0]) * 3.5);
|
_speed = round((_vel distance [0,0,0]) * 3.5);
|
||||||
_difference = (_moving_factor * (_speed / 20)) min 1;
|
_difference = (_moving_factor * (_speed / 20)) min 7;
|
||||||
};
|
};
|
||||||
|
|
||||||
//fire
|
//fire
|
||||||
@@ -124,21 +124,31 @@ Missing:
|
|||||||
|
|
||||||
//rain
|
//rain
|
||||||
if(_raining && !_isinvehicle && !_isinbuilding) then {
|
if(_raining && !_isinvehicle && !_isinbuilding) then {
|
||||||
_difference = _difference + _rain_factor;
|
_difference = _difference + (rain * _rain_factor);
|
||||||
};
|
};
|
||||||
|
|
||||||
//night
|
//night
|
||||||
private ["_daytime"];
|
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};
|
_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);
|
_difference = _difference + (((_night_factor * -1) / (_sunrise^2)) * ((_daytime - 24)^2) + _night_factor);
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
//wind
|
//wind
|
||||||
if(((wind select 0) > 4 || (wind select 1) > 4) && !_isinvehicle && !_isinbuilding ) then {
|
if(((wind select 0) > 4 || (wind select 1) > 4) && !_isinvehicle && !_isinbuilding ) then {
|
||||||
_difference = _difference + _wind_factor;
|
_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
|
//Calculate Change Value Basic Factor Looptime Correction Adjust Value to current used temperatur scala
|
||||||
_difference = _difference * SleepTemperatur / (60 / _looptime) * ((dayz_temperaturmax - dayz_temperaturmin) / 100);
|
_difference = _difference * SleepTemperatur / (60 / _looptime) * ((dayz_temperaturmax - dayz_temperaturmin) / 100);
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
//Alert Zed's to noise of shot
|
||||||
_pos = _this select 0;
|
_unit = _this select 0;
|
||||||
_distance = _this select 1;
|
_distance = _this select 1;
|
||||||
_doRun = _this select 2;
|
_doRun = _this select 2;
|
||||||
_pos = _this select 3;
|
_pos = _this select 3;
|
||||||
|
|||||||
@@ -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];
|
_list = getposATL player nearEntities [["CAAnimalBase"],dayz_animalDistance];
|
||||||
|
|
||||||
if (count _list < dayz_maxAnimals) then {
|
if (count _list < dayz_maxAnimals) then {
|
||||||
|
|||||||
@@ -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);
|
_vel = velocity (vehicle player);
|
||||||
_speed = (_vel distance [0,0,0]);
|
_speed = (_vel distance [0,0,0]);
|
||||||
_pos = getPosATL player;
|
_pos = getPosATL player;
|
||||||
|
|||||||
@@ -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, weapon, muzzle, mode, ammo, magazine, projectile]
|
||||||
_unit = _this select 0;
|
_unit = _this select 0;
|
||||||
_weapon = _this select 1;
|
_weapon = _this select 1;
|
||||||
@@ -12,10 +12,9 @@ _distance = round(_audible * 10 * _caliber);
|
|||||||
|
|
||||||
dayz_disAudial = _distance;
|
dayz_disAudial = _distance;
|
||||||
dayz_firedCooldown = time;
|
dayz_firedCooldown = time;
|
||||||
// Put everyone in range of the bullet into combat
|
|
||||||
//_id = _this spawn player_projectileNear;
|
|
||||||
// Color in the combat icon
|
// Color in the combat icon
|
||||||
dayz_combat = 1;
|
dayz_combat = 1;
|
||||||
|
|
||||||
if (_ammo isKindOf "Melee") exitWith {
|
if (_ammo isKindOf "Melee") exitWith {
|
||||||
_unit playActionNow "GestureSwing";
|
_unit playActionNow "GestureSwing";
|
||||||
};
|
};
|
||||||
@@ -41,7 +40,6 @@ if (_ammo isKindOf "SmokeShell") then {
|
|||||||
} forEach _listTalk;
|
} forEach _listTalk;
|
||||||
} else {
|
} else {
|
||||||
_id = [_unit,_distance,true,(getPosATL player)] spawn player_alertZombies;
|
_id = [_unit,_distance,true,(getPosATL player)] spawn player_alertZombies;
|
||||||
|
|
||||||
//Check if need to place arrow
|
//Check if need to place arrow
|
||||||
if (_ammo isKindOf "Bolt") then {
|
if (_ammo isKindOf "Bolt") then {
|
||||||
_id = _this spawn player_crossbowBolt;
|
_id = _this spawn player_crossbowBolt;
|
||||||
|
|||||||
@@ -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];
|
_objects = nearestObjects [getPosATL player, ["Car", "Helicopter", "Motorcycle", "Ship", "TentStorage","VaultStorage"], 10];
|
||||||
{
|
{
|
||||||
dayzUpdateVehicle = [_x,"all"];
|
dayzUpdateVehicle = [_x,"all"];
|
||||||
publicVariableServer "dayzUpdateVehicle";
|
publicVariableServer "dayzUpdateVehicle";
|
||||||
} foreach _objects;
|
} foreach _objects;
|
||||||
|
|
||||||
private["_dialog","_magazineArray","_control","_item","_val","_max"];
|
|
||||||
|
|
||||||
disableSerialization;
|
disableSerialization;
|
||||||
_dialog = _this select 0;
|
_dialog = _this select 0;
|
||||||
_magazineArray = [];
|
_magazineArray = [];
|
||||||
|
|||||||
@@ -1,76 +1,114 @@
|
|||||||
_isAir = vehicle player iskindof "Air";
|
_isAir = vehicle player iskindof "Air";
|
||||||
_inVehicle = (vehicle player != player);
|
_inVehicle = (vehicle player != player);
|
||||||
_fastRun = _this select 0;
|
|
||||||
_dateNow = (DateToNumber date);
|
_dateNow = (DateToNumber date);
|
||||||
|
_maxZombies = dayz_maxLocalZombies;
|
||||||
|
|
||||||
_age = -1;
|
_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;
|
_position = getPosATL player;
|
||||||
//waitUntil{_position nearObjectsReady 200};
|
|
||||||
_nearby = _position nearObjects ["building",200]; //nearestObjects [player, ["building"], 200];
|
_nearbytype = type (_nearestCity select 0);
|
||||||
_tooManyZs = {alive _x} count (_position nearEntities ["zZombie_Base",400]) > dayz_maxLocalZombies;
|
_nearby = _position nearObjects ["Building",_radius];
|
||||||
{
|
|
||||||
_type = typeOf _x;
|
switch (_nearbytype) do {
|
||||||
_config = configFile >> "CfgBuildingLoot" >> _type;
|
default {
|
||||||
_canLoot = isClass (_config);
|
_maxZombies = 20;
|
||||||
if (_canLoot) then {
|
};
|
||||||
_dis = _x distance player;
|
case "NameLocal": {
|
||||||
if ((_dis < 120) and (_dis > 30)) then {
|
_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]);
|
_looted = (_x getVariable ["looted",-0.1]);
|
||||||
_cleared = (_x getVariable ["cleared",true]);
|
_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);
|
_dateNow = (DateToNumber date);
|
||||||
_age = (_dateNow - _looted) * 525948;
|
_age = (_dateNow - _looted) * 525948;
|
||||||
//diag_log ("SPAWN LOOT: " + _type + " Building is " + str(_age) + " old" );
|
//diag_log ("SPAWN LOOT: " + _type + " Building is " + str(_age) + " old" );
|
||||||
if ((_age > 10) and (!_cleared) and !_inVehicle) then {
|
if (_age > 8) then {
|
||||||
_nearByObj = nearestObjects [(getPosATL _x), ["WeaponHolder","WeaponHolderBase"],((sizeOf _type)+5)];
|
//diag_log("SPAWN LOOT: Spawning loot");
|
||||||
{deleteVehicle _x} forEach _nearByObj;
|
|
||||||
_x setVariable ["cleared",true,true];
|
|
||||||
_x setVariable ["looted",_dateNow,true];
|
|
||||||
};
|
|
||||||
if ((_age > 10) and (_cleared) and !_inVehicle) then {
|
|
||||||
//Register
|
//Register
|
||||||
_x setVariable ["looted",_dateNow,true];
|
_x setVariable ["looted",_dateNow,true];
|
||||||
//cleanup
|
//cleanup
|
||||||
_handle = [_x,_fastRun] spawn building_spawnLoot;
|
//_nearByObj = (getPosATL _x) nearObjects ["ReammoBox",((sizeOf _type)+5)];
|
||||||
waitUntil{scriptDone _handle};
|
//{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 (_canZombie) then {
|
||||||
if (!_tooManyZs) then {
|
if (dayz_spawnZombies < _maxZombies) then {
|
||||||
private["_zombied"];
|
if (!_tooManyZs) then {
|
||||||
_zombied = (_x getVariable ["zombieSpawn",-0.1]);
|
private["_zombied"];
|
||||||
_dateNow = (DateToNumber date);
|
_zombied = (_x getVariable ["zombieSpawn",-0.1]);
|
||||||
_age = (_dateNow - _zombied) * 525948;
|
_dateNow = (DateToNumber date);
|
||||||
if (_age > 5) then {
|
_age = (_dateNow - _zombied) * 525948;
|
||||||
_bPos = getPosATL _x;
|
//diag_log(format["Date: %1 | ZombieSpawn: %2 | age: %3 | building: %4 (%5)", _dateNow, _zombied, _age, str(_x), _dis]);
|
||||||
_zombiesNum = {alive _x} count (_bPos nearEntities ["zZombie_Base",(((sizeOf _type) * 2) + 10)]);
|
if (_age > 1) then {
|
||||||
if (_zombiesNum == 0) then {
|
_bPos = getPosATL _x;
|
||||||
//Randomize Zombies
|
_zombiesNum = count (_bPos nearEntities ["zZombie_Base",(((sizeOf _type) * 2) + 10)]);
|
||||||
_x setVariable ["zombieSpawn",_dateNow,true];
|
if (_zombiesNum == 0) then {
|
||||||
_handle = [_x,_fastRun] spawn building_spawnZombies;
|
//Randomize Zombies
|
||||||
waitUntil{scriptDone _handle};
|
_x setVariable ["zombieSpawn",_dateNow,true];
|
||||||
//} else {
|
[_x] call building_spawnZombies;
|
||||||
//_x setVariable ["zombieSpawn",_dateNow,true];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
} else {
|
|
||||||
dayz_spawnWait = time;
|
|
||||||
dayz_spawnZombies = 0;
|
|
||||||
};
|
};
|
||||||
|
//} else {
|
||||||
|
//dayz_spawnWait = time;
|
||||||
|
//dayz_spawnZombies = 0;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
if (!_fastRun) then {
|
} forEach _nearby;
|
||||||
sleep 0.1;
|
|
||||||
};
|
|
||||||
} forEach _nearby;
|
|
||||||
};
|
|
||||||
@@ -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;
|
disableSerialization;
|
||||||
|
|
||||||
_foodVal = 1 - (dayz_hunger / SleepFood);
|
_foodVal = 1 - (dayz_hunger / SleepFood);
|
||||||
_thirstVal = 1 - (dayz_thirst / SleepWater);
|
_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'
|
_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 {
|
if (uiNamespace getVariable ['DZ_displayUI', 0] == 1) exitWith {
|
||||||
@@ -21,7 +21,7 @@ _ctrlThirst = _display displayCtrl 1302;
|
|||||||
_ctrlTemp = _display displayCtrl 1306; //TeeChange
|
_ctrlTemp = _display displayCtrl 1306; //TeeChange
|
||||||
_ctrlEar = _display displayCtrl 1304;
|
_ctrlEar = _display displayCtrl 1304;
|
||||||
_ctrlEye = _display displayCtrl 1305;
|
_ctrlEye = _display displayCtrl 1305;
|
||||||
_ctrlHumanity = _display displayCtrl 1207;
|
//_ctrlHumanity = _display displayCtrl 1207;
|
||||||
_ctrlCombat = _display displayCtrl 1307;
|
_ctrlCombat = _display displayCtrl 1307;
|
||||||
_ctrlFracture = _display displayCtrl 1203;
|
_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];
|
_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];
|
_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];
|
_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];
|
_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];
|
_humanity = player getVariable["humanity",0];
|
||||||
_guiHumanity = 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 = [_foodVal,_thirstVal];
|
||||||
_array
|
_array
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
//[unit, weapon, muzzle, mode, ammo, magazine, projectile]
|
//[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
|
//Init
|
||||||
//[unit, firer, distance, weapon, muzzle, mode, ammo]
|
//[unit, firer, distance, weapon, muzzle, mode, ammo]
|
||||||
_unit = _this select 0;
|
_unit = _this select 0;
|
||||||
@@ -20,12 +20,13 @@ private["_unit","_magazine","_used","_quantity","_magsNet","_magsWhole","_key","
|
|||||||
_recordable = false;
|
_recordable = false;
|
||||||
|
|
||||||
// Both the firer and those nearby (<=8m) go into "combat" to prevent ALT-F4
|
// 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 {
|
if (_distance <= 8) then {
|
||||||
_unit setVariable["startcombattimer", 1, true];
|
_unit setVariable["startcombattimer", 1, false];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
if (_inVehicle) exitWith{};
|
if (_inVehicle) exitWith{};
|
||||||
if (_firer == player) exitWith{};
|
if (_firer == player) exitWith{};
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
_unit = _this;
|
||||||
_vehicle = (vehicle player);
|
_vehicle = (vehicle player);
|
||||||
|
|
||||||
_targets = _unit getVariable ["targets",[]];
|
_targets = _unit getVariable ["targets",[]];
|
||||||
if (!(_vehicle in _targets) and ((random 1) < 0.9)) exitWith {};
|
//if (!(_vehicle in _targets)) exitWith {};
|
||||||
|
|
||||||
//Do the attack
|
//Do the attack
|
||||||
_move = "ZombieStandingAttack1";
|
_move = "ZombieStandingAttack1";
|
||||||
_rnd = 0;
|
_rnd = 0;
|
||||||
_wound = "";
|
_wound = "";
|
||||||
if (r_player_unconscious) then {
|
if (r_player_unconscious && _vehicle == player) then {
|
||||||
|
_unit doMove (getPos player);
|
||||||
_rnd = round(random 4) + 1;
|
_rnd = round(random 4) + 1;
|
||||||
_move = "ZombieFeed" + str(_rnd);
|
_move = "ZombieFeed" + str(_rnd);
|
||||||
} else {
|
} else {
|
||||||
|
_unit doMove (getPos player);
|
||||||
_rnd = round(random 9) + 1;
|
_rnd = round(random 9) + 1;
|
||||||
_move = "ZombieStandingAttack" + str(_rnd);
|
_move = "ZombieStandingAttack" + str(_rnd);
|
||||||
};
|
};
|
||||||
@@ -27,46 +29,41 @@ if (_vehicle != player) then {
|
|||||||
_hpList = _vehicle call vehicle_getHitpoints;
|
_hpList = _vehicle call vehicle_getHitpoints;
|
||||||
_hp = _hpList call BIS_fnc_selectRandom;
|
_hp = _hpList call BIS_fnc_selectRandom;
|
||||||
_wound = getText(configFile >> "cfgVehicles" >> (typeOf _vehicle) >> "HitPoints" >> _hp >> "name");
|
_wound = getText(configFile >> "cfgVehicles" >> (typeOf _vehicle) >> "HitPoints" >> _hp >> "name");
|
||||||
_total = 0;
|
_damage = random 0.03;
|
||||||
|
_chance = round(random 12);
|
||||||
|
|
||||||
if(["Glass",_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 {
|
||||||
_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 {
|
|
||||||
[_unit,"hit",0,false] call dayz_zombieSpeak;
|
[_unit,"hit",0,false] call dayz_zombieSpeak;
|
||||||
_damage = 0.01;
|
|
||||||
_strH = "hit_" + (_wound);
|
_strH = "hit_" + (_wound);
|
||||||
_dam = _vehicle getVariable [_strH,0];
|
_dam = _vehicle getVariable [_strH,0];
|
||||||
_total = (_dam + _damage);
|
_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 {
|
} else {
|
||||||
//Did he hit?
|
//Did he hit?
|
||||||
if ((_unit distance player) <= 3) then {
|
if ((_unit distance player) <= 3) then {
|
||||||
@@ -87,8 +84,8 @@ if (_vehicle != player) then {
|
|||||||
_damage = 0.1 + random (1.2);
|
_damage = 0.1 + random (1.2);
|
||||||
//diag_log ("START DAM: Player Hit on " + _wound + " for " + str(_damage));
|
//diag_log ("START DAM: Player Hit on " + _wound + " for " + str(_damage));
|
||||||
[player, _wound, _damage, _unit,"zombie"] call fnc_usec_damageHandler;
|
[player, _wound, _damage, _unit,"zombie"] call fnc_usec_damageHandler;
|
||||||
dayzHit = [player,_wound, _damage, _unit,"zombie"];
|
//dayzHit = [player,_wound, _damage, _unit,"zombie"];
|
||||||
publicVariable "dayzHit";
|
//publicVariable "dayzHit";
|
||||||
[_unit,"hit",0,false] call dayz_zombieSpeak;
|
[_unit,"hit",0,false] call dayz_zombieSpeak;
|
||||||
} else {
|
} else {
|
||||||
/*
|
/*
|
||||||
@@ -97,8 +94,8 @@ if (_vehicle != player) then {
|
|||||||
_damage = 0.1 + random (1.2);
|
_damage = 0.1 + random (1.2);
|
||||||
//diag_log ("START DAM: Player Hit on " + _wound + " for " + str(_damage));
|
//diag_log ("START DAM: Player Hit on " + _wound + " for " + str(_damage));
|
||||||
[player, _wound, _damage, _unit,"zombie"] call fnc_usec_damageHandler;
|
[player, _wound, _damage, _unit,"zombie"] call fnc_usec_damageHandler;
|
||||||
dayzHit = [player,_wound, _damage, _unit,"zombie"];
|
//dayzHit = [player,_wound, _damage, _unit,"zombie"];
|
||||||
publicVariable "dayzHit";
|
//publicVariable "dayzHit";
|
||||||
[_unit,"hit",0,false] call dayz_zombieSpeak;
|
[_unit,"hit",0,false] call dayz_zombieSpeak;
|
||||||
};
|
};
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -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;
|
_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;
|
_pHeight = (getPosATL _refObj) select 2;
|
||||||
_attacked = false;
|
_attacked = false;
|
||||||
|
|
||||||
|
|||||||
@@ -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]
|
// [_itemType,_weights]
|
||||||
_iItem = _this select 0;
|
_iItem = _this select 0;
|
||||||
_iClass = _this select 1;
|
_iClass = _this select 1;
|
||||||
@@ -12,7 +12,7 @@ switch (_iClass) do {
|
|||||||
_itemType = _arrayLootSpawn select 0;
|
_itemType = _arrayLootSpawn select 0;
|
||||||
_weights = _arrayLootSpawn call fnc_buildWeightedArray;
|
_weights = _arrayLootSpawn call fnc_buildWeightedArray;
|
||||||
_qty = 0;
|
_qty = 0;
|
||||||
_max = ceil(random 4) + 1;
|
_max = ceil(random 2) + 1;
|
||||||
//diag_log ("LOOTSPAWN: QTY: " + str(_max) + " ARRAY: " + str(_arrayLootSpawn));
|
//diag_log ("LOOTSPAWN: QTY: " + str(_max) + " ARRAY: " + str(_arrayLootSpawn));
|
||||||
while {_qty < _max} do {
|
while {_qty < _max} do {
|
||||||
private["_tQty","_indexLootSpawn","_canType"];
|
private["_tQty","_indexLootSpawn","_canType"];
|
||||||
@@ -36,7 +36,7 @@ switch (_iClass) do {
|
|||||||
_item addWeaponCargoGlobal [_iItem,1];
|
_item addWeaponCargoGlobal [_iItem,1];
|
||||||
_mags = [] + getArray (configFile >> "cfgWeapons" >> _iItem >> "magazines");
|
_mags = [] + getArray (configFile >> "cfgWeapons" >> _iItem >> "magazines");
|
||||||
if (count _mags > 0) then {
|
if (count _mags > 0) then {
|
||||||
_item addMagazineCargoGlobal [(_mags select 0),(round(random 3))];
|
_item addMagazineCargoGlobal [(_mags select 0),(round(random 1))];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
case "magazine": {
|
case "magazine": {
|
||||||
|
|||||||
@@ -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;
|
_group = _this;
|
||||||
_target = objNull;
|
_target = objNull;
|
||||||
_lead = leader _group;
|
_lead = leader _group;
|
||||||
_targetMen = [];
|
_targetMen = [];
|
||||||
_targetDis = [];
|
_targetDis = [];
|
||||||
_range = 500;
|
_range = 300;
|
||||||
|
|
||||||
_assigned = _group getVariable ["targets",[]];
|
_assigned = _group getVariable ["targets",[]];
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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;
|
_position = _this select 0;
|
||||||
_doLoiter = _this select 1;
|
_doLoiter = _this select 1;
|
||||||
_unitTypes = _this select 2;
|
_unitTypes = _this select 2;
|
||||||
@@ -57,7 +57,8 @@ if (!_doLoiter) then {
|
|||||||
if (_nearByPlayer) then {
|
if (_nearByPlayer) then {
|
||||||
_attempt = 0;
|
_attempt = 0;
|
||||||
while {_nearByPlayer} do {
|
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;
|
_agent setPos _position;
|
||||||
_nearByPlayer = ({isPlayer _x} count (_position nearEntities ["CAManBase",30])) > 0;
|
_nearByPlayer = ({isPlayer _x} count (_position nearEntities ["CAManBase",30])) > 0;
|
||||||
_attempt = _attempt + 1;
|
_attempt = _attempt + 1;
|
||||||
|
|||||||
+50
-24
@@ -33,7 +33,7 @@ class CfgMods
|
|||||||
hidePicture = 0;
|
hidePicture = 0;
|
||||||
hideName = 0;
|
hideName = 0;
|
||||||
action = "http://www.dayzmod.com";
|
action = "http://www.dayzmod.com";
|
||||||
version = "1.7.4.4";
|
version = "1.7.5.D1207";
|
||||||
hiveVersion = 0.96; //0.93
|
hiveVersion = 0.96; //0.93
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -100,23 +100,23 @@ class CfgSurvival {
|
|||||||
};
|
};
|
||||||
class Meat {
|
class Meat {
|
||||||
class Default {
|
class Default {
|
||||||
yield = 2;
|
yield = 1;
|
||||||
};
|
};
|
||||||
class Cow: Default {
|
class Cow: Default {
|
||||||
yield = 8;
|
yield = 6;
|
||||||
};
|
};
|
||||||
class Cow01: Cow{};
|
class Cow01: Cow{};
|
||||||
class Cow02: Cow{};
|
class Cow02: Cow{};
|
||||||
class Cow03: Cow{};
|
class Cow03: Cow{};
|
||||||
class Cow04: Cow{};
|
class Cow04: Cow{};
|
||||||
class Goat: Default {
|
class Goat: Default {
|
||||||
yield = 3;
|
yield = 4;
|
||||||
};
|
};
|
||||||
class Sheep: Default {
|
class Sheep: Default {
|
||||||
yield = 5;
|
yield = 3;
|
||||||
};
|
};
|
||||||
class WildBoar: Default {
|
class WildBoar: Default {
|
||||||
yield = 4;
|
yield = 2;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -356,6 +356,7 @@ class CfgBuildingLoot {
|
|||||||
{ "Mk_48_DZ","weapon" },
|
{ "Mk_48_DZ","weapon" },
|
||||||
{ "M249_DZ","weapon" },
|
{ "M249_DZ","weapon" },
|
||||||
//{"BAF_L85A2_RIS_CWS","weapon"},
|
//{"BAF_L85A2_RIS_CWS","weapon"},
|
||||||
|
{"BAF_L85A2_RIS_Holo","weapon"},
|
||||||
{ "DMR","weapon" },
|
{ "DMR","weapon" },
|
||||||
{ "","military" },
|
{ "","military" },
|
||||||
{ "","medical" },
|
{ "","medical" },
|
||||||
@@ -365,6 +366,11 @@ class CfgBuildingLoot {
|
|||||||
{ "AmmoBoxSmall_762","object" },
|
{ "AmmoBoxSmall_762","object" },
|
||||||
{ "Skin_Camo1_DZ","magazine" },
|
{ "Skin_Camo1_DZ","magazine" },
|
||||||
{ "Skin_Sniper1_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_Rocket_DZ","magazine" },
|
||||||
{ "Skin_Soldier1_DZ","magazine" }
|
{ "Skin_Soldier1_DZ","magazine" }
|
||||||
};
|
};
|
||||||
@@ -377,16 +383,21 @@ class CfgBuildingLoot {
|
|||||||
0.01, //{"BAF_AS50_scoped","weapon"},
|
0.01, //{"BAF_AS50_scoped","weapon"},
|
||||||
0.03, //{"Mk_48_DZ","weapon"},
|
0.03, //{"Mk_48_DZ","weapon"},
|
||||||
0.05, //{"M249_DZ","weapon"},
|
0.05, //{"M249_DZ","weapon"},
|
||||||
//0.01, //{"BAF_L85A2_RIS_CWS","weapon"},
|
0.01, //{"BAF_L85A2_RIS_CWS","weapon"}, BAF_L85A2_RIS_Holo
|
||||||
0.10, //{"DMR","weapon"},
|
0.06, //{"DMR","weapon"},
|
||||||
1, //{"","military"},
|
1, //{"","military"},
|
||||||
0.5, //{"","medical"},
|
0.5, //{"","medical"},
|
||||||
0.1, //{"MedBox0","object"},
|
0.1, //{"MedBox0","object"},
|
||||||
0.01, //{"NVGoggles","weapon"}
|
0.02, //{"NVGoggles","weapon"}
|
||||||
0.1,
|
0.1, //AmmoBoxSmall_556
|
||||||
0.1,
|
0.1, //AmmoBoxSmall_762
|
||||||
0.08,
|
0.08, //Skin_Camo1_DZ
|
||||||
0.05,
|
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.01,
|
||||||
0.05
|
0.05
|
||||||
};
|
};
|
||||||
@@ -405,8 +416,8 @@ class CfgBuildingLoot {
|
|||||||
};
|
};
|
||||||
itemChance[] = {
|
itemChance[] = {
|
||||||
0.2,
|
0.2,
|
||||||
0.5,
|
1,
|
||||||
0.5
|
0.2
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
class Military: Default {
|
class Military: Default {
|
||||||
@@ -450,7 +461,9 @@ class CfgBuildingLoot {
|
|||||||
{ "","military" },
|
{ "","military" },
|
||||||
//{"Body","object"},
|
//{"Body","object"},
|
||||||
{ "ItemEtool","weapon" },
|
{ "ItemEtool","weapon" },
|
||||||
{"ItemSandbag","magazine"}
|
{"ItemSandbag","magazine"},
|
||||||
|
{"Sa58P_EP1","weapon"},
|
||||||
|
{"Sa58V_EP1","weapon"}
|
||||||
};
|
};
|
||||||
itemChance[] = {
|
itemChance[] = {
|
||||||
0.05,
|
0.05,
|
||||||
@@ -486,7 +499,9 @@ class CfgBuildingLoot {
|
|||||||
2.50,
|
2.50,
|
||||||
//0.20,
|
//0.20,
|
||||||
0.05,
|
0.05,
|
||||||
0.02
|
0.02,
|
||||||
|
0.03,
|
||||||
|
0.03
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
class MilitarySpecial: Default {
|
class MilitarySpecial: Default {
|
||||||
@@ -501,7 +516,7 @@ class CfgBuildingLoot {
|
|||||||
{ "M16A2GL","weapon" },
|
{ "M16A2GL","weapon" },
|
||||||
{ "M249_DZ","weapon" },
|
{ "M249_DZ","weapon" },
|
||||||
{ "M9SD","weapon" },
|
{ "M9SD","weapon" },
|
||||||
{ "M136","weapon" },
|
//{"M136","weapon"},
|
||||||
{ "AK_74","weapon" },
|
{ "AK_74","weapon" },
|
||||||
{ "M4A1_Aim","weapon" },
|
{ "M4A1_Aim","weapon" },
|
||||||
{ "AKS_74_kobra","weapon" },
|
{ "AKS_74_kobra","weapon" },
|
||||||
@@ -526,21 +541,28 @@ class CfgBuildingLoot {
|
|||||||
//Ammo
|
//Ammo
|
||||||
{ "AmmoBoxSmall_556","object" },
|
{ "AmmoBoxSmall_556","object" },
|
||||||
{ "AmmoBoxSmall_762","object" },
|
{ "AmmoBoxSmall_762","object" },
|
||||||
{ "NVGoggles","weapon" },
|
|
||||||
|
//{"NVGoggles","weapon"},
|
||||||
{ "Binocular","weapon" },
|
{ "Binocular","weapon" },
|
||||||
{ "ItemFlashlightRed","military" },
|
{ "ItemFlashlightRed","military" },
|
||||||
{ "ItemKnife","military" },
|
{ "ItemKnife","military" },
|
||||||
{ "ItemGPS","weapon" },
|
{ "ItemGPS","weapon" },
|
||||||
{ "ItemMap","military" },
|
{ "ItemMap","military" },
|
||||||
{ "Binocular_Vector","military" },
|
{ "Binocular_Vector","military" },
|
||||||
|
|
||||||
{ "DZ_Assault_Pack_EP1","object" },
|
{ "DZ_Assault_Pack_EP1","object" },
|
||||||
{ "DZ_Patrol_Pack_EP1","object" },
|
{ "DZ_Patrol_Pack_EP1","object" },
|
||||||
{ "DZ_Backpack_EP1","object" },
|
{ "DZ_Backpack_EP1","object" },
|
||||||
|
|
||||||
{ "","medical" },
|
{ "","medical" },
|
||||||
{ "","generic" },
|
{ "","generic" },
|
||||||
{ "","military" },
|
{ "","military" },
|
||||||
//{"Body","object"},
|
//{"Body","object"},
|
||||||
{"PipeBomb","magazine"},
|
{"PipeBomb","magazine"},
|
||||||
|
{"Sa58V_RCO_EP1","weapon"},
|
||||||
|
{"Sa58V_CCO_EP1","weapon"},
|
||||||
|
{"G36_C_SD_camo","weapon"},
|
||||||
|
{"M40A3","weapon"},
|
||||||
{ "Skin_Soldier1_DZ","magazine" }
|
{ "Skin_Soldier1_DZ","magazine" }
|
||||||
};
|
};
|
||||||
itemChance[] = {
|
itemChance[] = {
|
||||||
@@ -548,7 +570,7 @@ class CfgBuildingLoot {
|
|||||||
0.05,
|
0.05,
|
||||||
0.01,
|
0.01,
|
||||||
0.02,
|
0.02,
|
||||||
0.01,
|
//0.01, //m136
|
||||||
0.10,
|
0.10,
|
||||||
0.02,
|
0.02,
|
||||||
0.10,
|
0.10,
|
||||||
@@ -572,11 +594,11 @@ class CfgBuildingLoot {
|
|||||||
0.08,
|
0.08,
|
||||||
0.04,
|
0.04,
|
||||||
0.02,
|
0.02,
|
||||||
0.01,
|
//0.01, //NVGoggles
|
||||||
0.10,
|
0.10,
|
||||||
0.05,
|
0.05,
|
||||||
0.15,
|
0.15,
|
||||||
0.01,
|
0.01, //ItemGPS
|
||||||
0.03,
|
0.03,
|
||||||
0.01,
|
0.01,
|
||||||
0.02,
|
0.02,
|
||||||
@@ -584,9 +606,13 @@ class CfgBuildingLoot {
|
|||||||
0.02,
|
0.02,
|
||||||
0.30,
|
0.30,
|
||||||
1.00,
|
1.00,
|
||||||
5.00,
|
5.00, //military
|
||||||
//0.20,
|
//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
|
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.
@@ -48,7 +48,6 @@ if (!isDedicated) then {
|
|||||||
player_throwObject = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_throwObject.sqf";
|
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_alertZombies = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_alertZombies.sqf";
|
||||||
player_fireMonitor = compile preprocessFileLineNumbers "\z\addons\dayz_code\system\fire_monitor.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";
|
player_tameDog = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_tameDog.sqf";
|
||||||
|
|
||||||
//Objects
|
//Objects
|
||||||
@@ -98,18 +97,39 @@ if (!isDedicated) then {
|
|||||||
// TODO: need move it in player_monitor.fsm
|
// TODO: need move it in player_monitor.fsm
|
||||||
// allow player disconnect from server, if loading hang, kicked by BE etc.
|
// allow player disconnect from server, if loading hang, kicked by BE etc.
|
||||||
[] spawn {
|
[] spawn {
|
||||||
private["_timeOut"];
|
private["_timeOut","_display","_control1","_control2"];
|
||||||
|
disableSerialization;
|
||||||
_timeOut = 0;
|
_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;
|
_timeOut = _timeOut + 1;
|
||||||
sleep 1;
|
sleep 0.1;
|
||||||
};
|
};
|
||||||
if ( !dayz_preloadFinished ) then {
|
|
||||||
endLoadingScreen;
|
endLoadingScreen;
|
||||||
|
if ( !dayz_clientPreload ) then {
|
||||||
|
|
||||||
|
diag_log "DEBUG: loadscreen guard ended with timeout.";
|
||||||
disableUserInput false;
|
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;
|
player enableSimulation false;
|
||||||
};
|
} else { diag_log "DEBUG: loadscreen guard ended."; };
|
||||||
};
|
};
|
||||||
dayz_losChance = {
|
dayz_losChance = {
|
||||||
private["_agent","_maxDis","_dis","_val","_maxExp","_myExp"];
|
private["_agent","_maxDis","_dis","_val","_maxExp","_myExp"];
|
||||||
@@ -203,6 +223,7 @@ if (!isDedicated) then {
|
|||||||
_btnRespawn ctrlEnable false;
|
_btnRespawn ctrlEnable false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
dayz_disableAbort = {
|
dayz_disableAbort = {
|
||||||
private["_display","_btnAbort","_combattimeout"];
|
private["_display","_btnAbort","_combattimeout"];
|
||||||
_combattimeout = player getVariable["combattimeout",0];
|
_combattimeout = player getVariable["combattimeout",0];
|
||||||
@@ -215,6 +236,7 @@ if (!isDedicated) then {
|
|||||||
_btnAbort = _display displayCtrl 104;
|
_btnAbort = _display displayCtrl 104;
|
||||||
_btnAbort ctrlEnable false;
|
_btnAbort ctrlEnable false;
|
||||||
};
|
};
|
||||||
|
*/
|
||||||
|
|
||||||
dayz_spaceInterrupt = {
|
dayz_spaceInterrupt = {
|
||||||
private ["_dikCode", "_handled"];
|
private ["_dikCode", "_handled"];
|
||||||
|
|||||||
@@ -22,22 +22,21 @@
|
|||||||
|
|
||||||
//Server only
|
//Server only
|
||||||
if (isServer) then {
|
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)];};
|
"dayzDiscoAdd" addPublicVariableEventHandler {dayz_disco set [count dayz_disco,(_this select 1)];};
|
||||||
"dayzDiscoRem" addPublicVariableEventHandler {dayz_disco = dayz_disco - [(_this select 1)];};
|
"dayzDiscoRem" addPublicVariableEventHandler {dayz_disco = dayz_disco - [(_this select 1)];};
|
||||||
"dayzPlayerSave" addPublicVariableEventHandler {(_this select 1) call server_playerSync;};
|
"dayzPlayerSave" addPublicVariableEventHandler {(_this select 1) call server_playerSync;};
|
||||||
"dayzPublishObj" addPublicVariableEventHandler {(_this select 1) call server_publishObj};
|
"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
|
"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
|
"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};
|
"dayzLogin" addPublicVariableEventHandler {(_this select 1) call server_playerLogin};
|
||||||
"dayzLogin2" addPublicVariableEventHandler {(_this select 1) call server_playerSetup};
|
"dayzLogin2" addPublicVariableEventHandler {(_this select 1) call server_playerSetup};
|
||||||
"dayzPlayerMorph" addPublicVariableEventHandler {(_this select 1) call server_playerMorph};
|
// "dayzPlayerMorph" addPublicVariableEventHandler {(_this select 1) call server_playerMorph};
|
||||||
"dayzUpdate" addPublicVariableEventHandler {_id = (_this select 1) spawn dayz_processUpdate};
|
// "dayzUpdate" addPublicVariableEventHandler {_id = (_this select 1) spawn dayz_processUpdate};
|
||||||
"dayzLoginRecord" addPublicVariableEventHandler {_id = (_this select 1) spawn dayz_recordLogin};
|
"dayzLoginRecord" addPublicVariableEventHandler {(_this select 1) call dayz_recordLogin};
|
||||||
"dayzCharSave" addPublicVariableEventHandler {(_this select 1) call server_playerSync};
|
// "dayzCharSave" addPublicVariableEventHandler {(_this select 1) call server_playerSync};
|
||||||
"dayzCharDisco" addPublicVariableEventHandler {(_this select 1) call server_characterSync};
|
"dayzCharDisco" addPublicVariableEventHandler {(_this select 1) call server_characterSync};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -48,8 +47,7 @@ if (!isDedicated) then {
|
|||||||
"dayzRoadFlare" addPublicVariableEventHandler {(_this select 1) spawn object_roadFlare};
|
"dayzRoadFlare" addPublicVariableEventHandler {(_this select 1) spawn object_roadFlare};
|
||||||
"norrnRaDrag" addPublicVariableEventHandler {[_this select 1] execVM "\z\addons\dayz_code\medical\publicEH\animDrag.sqf"};
|
"norrnRaDrag" addPublicVariableEventHandler {[_this select 1] execVM "\z\addons\dayz_code\medical\publicEH\animDrag.sqf"};
|
||||||
"norrnRnoAnim" addPublicVariableEventHandler {[_this select 1] execVM "\z\addons\dayz_code\medical\publicEH\noAnim.sqf"};
|
"norrnRnoAnim" addPublicVariableEventHandler {[_this select 1] execVM "\z\addons\dayz_code\medical\publicEH\noAnim.sqf"};
|
||||||
"changeCharacter" addPublicVariableEventHandler {(_this select 1) call player_serverModelChange};
|
// "changeCharacter" addPublicVariableEventHandler {(_this select 1) call player_serverModelChange};
|
||||||
"dayzSwitch" addPublicVariableEventHandler {(_this select 1) call server_switchPlayer};
|
// "dayzSwitch" addPublicVariableEventHandler {(_this select 1) call server_switchPlayer};
|
||||||
"dayzFire" addPublicVariableEventHandler {nul=(_this select 1) spawn BIS_Effects_Burn};
|
"dayzFire" addPublicVariableEventHandler {nul=(_this select 1) spawn BIS_Effects_Burn};
|
||||||
//"dayz_combatLog" addPublicVariableEventHandler {nul=(_this select 1) spawn player_combatLogged};
|
|
||||||
};
|
};
|
||||||
@@ -71,6 +71,7 @@ dayz_resetSelfActions = {
|
|||||||
s_build_Wire_cat1 = -1;
|
s_build_Wire_cat1 = -1;
|
||||||
s_player_deleteBuild = -1;
|
s_player_deleteBuild = -1;
|
||||||
s_player_forceSave = -1;
|
s_player_forceSave = -1;
|
||||||
|
s_player_flipveh = -1;
|
||||||
};
|
};
|
||||||
call dayz_resetSelfActions;
|
call dayz_resetSelfActions;
|
||||||
|
|
||||||
@@ -191,14 +192,13 @@ if(isnil "dayz_maxLocalZombies") then {
|
|||||||
|
|
||||||
dayz_spawnPos = getPosATL player;
|
dayz_spawnPos = getPosATL player;
|
||||||
|
|
||||||
if(isDedicated) then {
|
|
||||||
dayz_disco = [];
|
|
||||||
};
|
|
||||||
|
|
||||||
if(isServer) then {
|
if(isServer) then {
|
||||||
|
dayz_disco = [];
|
||||||
dayz_players = [];
|
dayz_players = [];
|
||||||
dead_bodyCleanup = [];
|
dead_bodyCleanup = [];
|
||||||
needUpdate_objects = [];
|
needUpdate_objects = [];
|
||||||
|
botPlayers = [];
|
||||||
};
|
};
|
||||||
|
|
||||||
if(!isDedicated) then {
|
if(!isDedicated) then {
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ class RscDisplayMain : RscStandardDisplay
|
|||||||
class DAYZ_Version : CA_Version
|
class DAYZ_Version : CA_Version
|
||||||
{
|
{
|
||||||
idc = -1;
|
idc = -1;
|
||||||
text = "DayZ 1.7.4.4";
|
text = "DayZ 1.7.5.D1207";
|
||||||
y = "(SafeZoneH + SafeZoneY) - (1 - 0.95)";
|
y = "(SafeZoneH + SafeZoneY) - (1 - 0.95)";
|
||||||
};
|
};
|
||||||
class CA_TitleMainMenu;
|
class CA_TitleMainMenu;
|
||||||
@@ -1136,7 +1136,7 @@ class RscTitles
|
|||||||
class RscPicture_1301: RscPictureGUI
|
class RscPicture_1301: RscPictureGUI
|
||||||
{
|
{
|
||||||
idc = 1301;
|
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;
|
x = 0.955313 * safezoneW + safezoneX;
|
||||||
y = 0.93 * safezoneH + safezoneY;
|
y = 0.93 * safezoneH + safezoneY;
|
||||||
w = 0.06;
|
w = 0.06;
|
||||||
@@ -1145,7 +1145,7 @@ class RscTitles
|
|||||||
class RscPicture_1300: RscPictureGUI
|
class RscPicture_1300: RscPictureGUI
|
||||||
{
|
{
|
||||||
idc = 1300;
|
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;
|
x = 0.955313 * safezoneW + safezoneX;
|
||||||
y = 0.86 * safezoneH + safezoneY;
|
y = 0.86 * safezoneH + safezoneY;
|
||||||
w = 0.06;
|
w = 0.06;
|
||||||
@@ -1154,7 +1154,7 @@ class RscTitles
|
|||||||
class RscPicture_1302: RscPictureGUI
|
class RscPicture_1302: RscPictureGUI
|
||||||
{
|
{
|
||||||
idc = 1302;
|
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;
|
x = 0.955313 * safezoneW + safezoneX;
|
||||||
y = 0.79 * safezoneH + safezoneY;
|
y = 0.79 * safezoneH + safezoneY;
|
||||||
w = 0.06;
|
w = 0.06;
|
||||||
@@ -1163,7 +1163,7 @@ class RscTitles
|
|||||||
class RscPicture_1306: RscPictureGUI
|
class RscPicture_1306: RscPictureGUI
|
||||||
{
|
{
|
||||||
idc = 1306;
|
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;
|
x = 0.955313 * safezoneW + safezoneX;
|
||||||
y = 0.72 * safezoneH + safezoneY;
|
y = 0.72 * safezoneH + safezoneY;
|
||||||
w = 0.06;
|
w = 0.06;
|
||||||
@@ -1209,7 +1209,7 @@ class RscTitles
|
|||||||
|
|
||||||
{
|
{
|
||||||
idc = 1701;
|
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;
|
x = 0.945313 * safezoneW + safezoneX;
|
||||||
y = 0.95 * safezoneH + safezoneY;
|
y = 0.95 * safezoneH + safezoneY;
|
||||||
w = 0.04;
|
w = 0.04;
|
||||||
@@ -1218,7 +1218,7 @@ class RscTitles
|
|||||||
class RscPicture_1702: RscPictureGUI
|
class RscPicture_1702: RscPictureGUI
|
||||||
{
|
{
|
||||||
idc = 1702;
|
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;
|
x = 0.945313 * safezoneW + safezoneX;
|
||||||
y = 0.816666 * safezoneH + safezoneY;
|
y = 0.816666 * safezoneH + safezoneY;
|
||||||
w = 0.04;
|
w = 0.04;
|
||||||
|
|||||||
+28
-22
@@ -16,7 +16,7 @@
|
|||||||
<Key ID="STR_INTRO_3"> <!-- use \n for linebreak (have them regularly!) -->
|
<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>
|
<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>
|
<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>
|
<Russian>12 марта 2013 г., прионное заболевание\nраспространяется среди населения всего земного шара,\nвызывая общую пандемию</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_INTRO_4"> <!-- use \n for linebreak (have them regularly!) -->
|
<Key ID="STR_INTRO_4"> <!-- use \n for linebreak (have them regularly!) -->
|
||||||
@@ -164,7 +164,7 @@
|
|||||||
<Key ID="str_build_01">
|
<Key ID="str_build_01">
|
||||||
<Original>You have constructed a %1</Original>
|
<Original>You have constructed a %1</Original>
|
||||||
<English>You have constructed a %1</English>
|
<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>
|
<Russian>Вы построили %1.</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="str_fireplace_02">
|
<Key ID="str_fireplace_02">
|
||||||
@@ -254,7 +254,7 @@
|
|||||||
<Key ID="str_player_11">
|
<Key ID="str_player_11">
|
||||||
<Original>You need to sit in the driver seat before you can repair this vehicle</Original>
|
<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>
|
<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>
|
<Russian>Для ремонта требуется занять место водителя хотя бы раз.</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="str_player_12">
|
<Key ID="str_player_12">
|
||||||
@@ -266,19 +266,19 @@
|
|||||||
<Key ID="str_player_13">
|
<Key ID="str_player_13">
|
||||||
<Original>Waiting for character to create</Original>
|
<Original>Waiting for character to create</Original>
|
||||||
<English>Waiting for character to create</English>
|
<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>
|
<Russian>Пожалуйста, выйдите в окно выбора игрока чтобы продолжить игру</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="str_player_14">
|
<Key ID="str_player_14">
|
||||||
<Original>Retrying to Authenticate</Original>
|
<Original>Retrying to Authenticate</Original>
|
||||||
<English>Retrying to Authenticate</English>
|
<English>Retrying to Authenticate</English>
|
||||||
<German>Versuche erneut zu Authendifizieren</German>
|
<German>Versuche erneut zu Authentifizieren</German>
|
||||||
<Russian>Попытка аутентификации</Russian>
|
<Russian>Попытка аутентификации</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="str_player_15">
|
<Key ID="str_player_15">
|
||||||
<Original>Requesting Authentication</Original>
|
<Original>Requesting Authentication</Original>
|
||||||
<English>Requesting Authentication</English>
|
<English>Requesting Authentication</English>
|
||||||
<German>Empfange Authendifisierung</German>
|
<German>Empfange Authentifizierung</German>
|
||||||
<Russian>Запрос аутентификации</Russian>
|
<Russian>Запрос аутентификации</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="str_player_16">
|
<Key ID="str_player_16">
|
||||||
@@ -296,7 +296,7 @@
|
|||||||
<Key ID="str_player_18">
|
<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>
|
<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>
|
<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>
|
<Russian>Вы используете неверную версию DAYZ_CODE, пожалуйста, скачайте данный файл с dayzmod.com/downloads (Ваша версия %1, версия на сервере %2)</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="str_player_20">
|
<Key ID="str_player_20">
|
||||||
@@ -320,13 +320,13 @@
|
|||||||
<Key ID="str_player_23">
|
<Key ID="str_player_23">
|
||||||
<Original>You must be in a forest and close to a tree to harvest wood.</Original>
|
<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>
|
<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>
|
<Russian>Вы должны находится в лесу и подойти к дереву, чтобы нарубить дров.</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="str_player_24">
|
<Key ID="str_player_24">
|
||||||
<Original>You do not have enough room in your inventory to do that.</Original>
|
<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>
|
<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>
|
<Russian>У вас недостаточно места в инвентаре.</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="str_player_25">
|
<Key ID="str_player_25">
|
||||||
@@ -344,25 +344,25 @@
|
|||||||
<Key ID="str_player_27">
|
<Key ID="str_player_27">
|
||||||
<Original>You have applied a heatpack to your body successfully.</Original>
|
<Original>You have applied a heatpack to your body successfully.</Original>
|
||||||
<English>You have applied a heatpack to your body successfully.</English>
|
<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>
|
<Russian>Вы успешно применили на вашем теле согревающий комплект.</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="str_player_28">
|
<Key ID="str_player_28">
|
||||||
<Original>You cannot reload that combination, you need %1 %2 magazines.</Original>
|
<Original>You cannot reload that combination, you need %1 %2 magazines.</Original>
|
||||||
<English>You cannot reload that combination, you need %1 %2 magazines.</English>
|
<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>
|
<Russian>Вы не можете перезарядить эту комбинацию. Вам необходимо иметь магазины %1 %2.</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="str_player_29">
|
<Key ID="str_player_29">
|
||||||
<Original>You have successfully reloaded %1 %2 magazines.</Original>
|
<Original>You have successfully reloaded %1 %2 magazines.</Original>
|
||||||
<English>You have successfully reloaded %1 %2 magazines.</English>
|
<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>
|
<Russian>Магазины %1 %2 перезаряжены.</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="str_player_30">
|
<Key ID="str_player_30">
|
||||||
<Original>%1 must be on your person to move it to/from your toolbelt.</Original>
|
<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>
|
<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>
|
<Russian>Для перемещения с/на пояс, предмет %1 должен быть у вас.</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="str_player_31">
|
<Key ID="str_player_31">
|
||||||
@@ -374,25 +374,25 @@
|
|||||||
<Key ID="str_player_beinglooted">
|
<Key ID="str_player_beinglooted">
|
||||||
<Original>%1 is already being looted by someone else.</Original>
|
<Original>%1 is already being looted by someone else.</Original>
|
||||||
<English>%1 is already being looted by someone else.</English>
|
<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>
|
<Russian>%1 уже кто-то обыскивает.</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="str_player_beingpacked">
|
<Key ID="str_player_beingpacked">
|
||||||
<Original>That tent is already being packed.</Original>
|
<Original>That tent is already being packed.</Original>
|
||||||
<English>That tent is already being packed.</English>
|
<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>
|
<Russian>Эту палатку уже упаковывают.</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="str_player_studybody">
|
<Key ID="str_player_studybody">
|
||||||
<Original>His name was %1, it appears he died from %2</Original>
|
<Original>His name was %1, it appears he died from %2</Original>
|
||||||
<English>His name was %1, it appears he died from %2</English>
|
<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>
|
<Russian>Его звали %1, похоже что он умер от %2</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="str_death_shothead">
|
<Key ID="str_death_shothead">
|
||||||
<Original>a gunshot to the head</Original>
|
<Original>a gunshot to the head</Original>
|
||||||
<English>a gunshot to the head</English>
|
<English>a gunshot to the head</English>
|
||||||
<German>ein schuss auf den Kopf</German>
|
<German>einen Schuss in den Kopf</German>
|
||||||
<Russian>попадания пули в голову</Russian>
|
<Russian>попадания пули в голову</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="str_death_shotheavy">
|
<Key ID="str_death_shotheavy">
|
||||||
@@ -404,7 +404,7 @@
|
|||||||
<Key ID="str_death_bled">
|
<Key ID="str_death_bled">
|
||||||
<Original>blood loss</Original>
|
<Original>blood loss</Original>
|
||||||
<English>blood loss</English>
|
<English>blood loss</English>
|
||||||
<German>blutverlust</German>
|
<German>hohen Blutverlust</German>
|
||||||
<Russian>потери крови</Russian>
|
<Russian>потери крови</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="str_death_dehyd">
|
<Key ID="str_death_dehyd">
|
||||||
@@ -428,7 +428,7 @@
|
|||||||
<Key ID="str_death_unknown">
|
<Key ID="str_death_unknown">
|
||||||
<Original>an unknown cause</Original>
|
<Original>an unknown cause</Original>
|
||||||
<English>an unknown cause</English>
|
<English>an unknown cause</English>
|
||||||
<German>ein unbekannter Grund</German>
|
<German>einen unbekannten Grund</German>
|
||||||
<Russian>неизвестной причины</Russian>
|
<Russian>неизвестной причины</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
</Package>
|
</Package>
|
||||||
@@ -442,7 +442,7 @@
|
|||||||
<Key ID="STR_UI_GENDER_DESC">
|
<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>
|
<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>
|
<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>
|
<Russian>Пожалуйста, выберите пол вашего персонажа. Учтите, вы не сможете изменить его в течении игры, до тех пор, пока не погибнете.</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_UI_GENDER_MALE">
|
<Key ID="STR_UI_GENDER_MALE">
|
||||||
@@ -516,7 +516,7 @@
|
|||||||
<Key ID="str_actions_medical_02">
|
<Key ID="str_actions_medical_02">
|
||||||
<Original>Check Pulse</Original>
|
<Original>Check Pulse</Original>
|
||||||
<English>Check Pulse</English>
|
<English>Check Pulse</English>
|
||||||
<German>Puls fühlen</German>
|
<German>Puls überprüfen</German>
|
||||||
<Russian>Проверить пульс</Russian>
|
<Russian>Проверить пульс</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="str_actions_medical_03">
|
<Key ID="str_actions_medical_03">
|
||||||
@@ -630,9 +630,15 @@
|
|||||||
<Key ID="str_actions_save">
|
<Key ID="str_actions_save">
|
||||||
<Original>Save %1</Original>
|
<Original>Save %1</Original>
|
||||||
<English>Save %1</English>
|
<English>Save %1</English>
|
||||||
<German>% Save</German>
|
<German>% speichern</German>
|
||||||
<Russian>Сохранить %1</Russian>
|
<Russian>Сохранить %1</Russian>
|
||||||
</Key>
|
</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">
|
<Key ID="STR_CHAR_2">
|
||||||
<Original>Bandit</Original>
|
<Original>Bandit</Original>
|
||||||
<English>Bandit</English>
|
<English>Bandit</English>
|
||||||
|
|||||||
@@ -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>*/
|
/*%FSM<HEAD>*/
|
||||||
/*
|
/*
|
||||||
item0[] = {"init",0,250,-75.000000,-350.000000,25.000000,-300.000000,0.000000,"init"};
|
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"};
|
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"};
|
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"};
|
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"};
|
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"};
|
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"};
|
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"};
|
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};
|
link57[] = {50,49};
|
||||||
link58[] = {51,52};
|
link58[] = {51,52};
|
||||||
link59[] = {52,29};
|
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};
|
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,-1,-1,934,154,1125,154,3,972};
|
window[] = {2,-1,-1,-32000,-32000,802,22,993,22,3,972};
|
||||||
*//*%FSM</HEAD>*/
|
*//*%FSM</HEAD>*/
|
||||||
class FSM
|
class FSM
|
||||||
{
|
{
|
||||||
@@ -131,8 +131,9 @@ class FSM
|
|||||||
"" \n
|
"" \n
|
||||||
"0 fadeSound 0;" \n
|
"0 fadeSound 0;" \n
|
||||||
"//player setPosATL [-2148,6655,0];" \n
|
"//player setPosATL [-2148,6655,0];" \n
|
||||||
"" \n
|
"progressLoadingScreen 0.1;" \n
|
||||||
"_timeStart = time;" \n
|
"_timeStart = time;" \n
|
||||||
|
"player enableSimulation false;" \n
|
||||||
""/*%FSM</STATEINIT""">*/;
|
""/*%FSM</STATEINIT""">*/;
|
||||||
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
||||||
class Links
|
class Links
|
||||||
@@ -188,7 +189,9 @@ class FSM
|
|||||||
init = /*%FSM<STATEINIT""">*/"endLoadingScreen;" \n
|
init = /*%FSM<STATEINIT""">*/"endLoadingScreen;" \n
|
||||||
"diag_log (""PLOGIN: Initating"");" \n
|
"diag_log (""PLOGIN: Initating"");" \n
|
||||||
"" \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""">*/;
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
||||||
class Links
|
class Links
|
||||||
{
|
{
|
||||||
@@ -200,7 +203,6 @@ class FSM
|
|||||||
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
||||||
condition=/*%FSM<CONDITION""">*/"!isnil ""bis_fnc_init"""/*%FSM</CONDITION""">*/;
|
condition=/*%FSM<CONDITION""">*/"!isnil ""bis_fnc_init"""/*%FSM</CONDITION""">*/;
|
||||||
action=/*%FSM<ACTION""">*/"dayz_forceSave = {" \n
|
action=/*%FSM<ACTION""">*/"dayz_forceSave = {" \n
|
||||||
" //dayzCharSave = [player,dayz_Magazines,true];" \n
|
|
||||||
"" \n
|
"" \n
|
||||||
" createGearDialog [player, ""RscDisplayGear""];" \n
|
" createGearDialog [player, ""RscDisplayGear""];" \n
|
||||||
"_dialog = findDisplay 106;" \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
|
" 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
|
" //diag_log str(dayzCharDisco); " \n
|
||||||
"" \n
|
"" \n
|
||||||
" //publicVariableServer ""dayzCharSave"";" \n
|
|
||||||
" publicVariableServer ""dayzCharDisco"";" \n
|
" publicVariableServer ""dayzCharDisco"";" \n
|
||||||
" if (isServer) then {" \n
|
" // remove isServer from player space" \n
|
||||||
" //dayzCharSave call server_playerSync;" \n
|
|
||||||
" dayzCharDisco call server_characterSync;" \n
|
|
||||||
" };" \n
|
|
||||||
" dayz_lastSave = time;" \n
|
" dayz_lastSave = time;" \n
|
||||||
" dayz_Magazines = [];" \n
|
" dayz_Magazines = [];" \n
|
||||||
"};"/*%FSM</ACTION""">*/;
|
"};"/*%FSM</ACTION""">*/;
|
||||||
@@ -322,7 +320,8 @@ class FSM
|
|||||||
name = "Collect";
|
name = "Collect";
|
||||||
init = /*%FSM<STATEINIT""">*/"diag_log (""PLOGIN: Player Ready"");" \n
|
init = /*%FSM<STATEINIT""">*/"diag_log (""PLOGIN: Player Ready"");" \n
|
||||||
"" \n
|
"" \n
|
||||||
"0 cutText [""Getting Player ID"", ""BLACK FADED"",60];" \n
|
"dayz_loadScreenMsg = (localize ""str_player_13""); " \n
|
||||||
|
"progressLoadingScreen 0.3;" \n
|
||||||
"" \n
|
"" \n
|
||||||
"_playerUID = getPlayerUID player;"/*%FSM</STATEINIT""">*/;
|
"_playerUID = getPlayerUID player;"/*%FSM</STATEINIT""">*/;
|
||||||
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
||||||
@@ -392,7 +391,7 @@ class FSM
|
|||||||
init = /*%FSM<STATEINIT""">*/"endLoadingScreen;" \n
|
init = /*%FSM<STATEINIT""">*/"endLoadingScreen;" \n
|
||||||
"selectNoPlayer;" \n
|
"selectNoPlayer;" \n
|
||||||
"_myTime = time;" \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""">*/;
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
||||||
class Links
|
class Links
|
||||||
{
|
{
|
||||||
@@ -413,19 +412,38 @@ class FSM
|
|||||||
class Request
|
class Request
|
||||||
{
|
{
|
||||||
name = "Request";
|
name = "Request";
|
||||||
init = /*%FSM<STATEINIT""">*/"startLoadingScreen ["""",""DayZ_loadingScreen""];" \n
|
init = /*%FSM<STATEINIT""">*/"//startLoadingScreen ["""",""DayZ_loadingScreen""];" \n
|
||||||
"" \n
|
"" \n
|
||||||
"diag_log (""PLOGIN: Requesting Authentication... ("" + _playerUID + "")"");" \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
|
"" \n
|
||||||
"_msg = [];" \n
|
"_msg = [];" \n
|
||||||
"" \n
|
"" \n
|
||||||
"dayzLogin = [_playerUID,player];" \n
|
"dayzLogin = [_playerUID,player];" \n
|
||||||
"dayzPlayerLogin = [];" \n
|
"dayzPlayerLogin = [];" \n
|
||||||
"publicVariableServer ""dayzLogin"";" \n
|
"publicVariableServer ""dayzLogin"";" \n
|
||||||
"if (isServer) then {" \n
|
"penaltyTimeout = true;" \n
|
||||||
" dayzLogin call server_playerLogin;" \n
|
"" \n
|
||||||
"};"/*%FSM</STATEINIT""">*/;
|
"[] 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""">*/;
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
||||||
class Links
|
class Links
|
||||||
{
|
{
|
||||||
@@ -446,7 +464,8 @@ class FSM
|
|||||||
class Parse_Login
|
class Parse_Login
|
||||||
{
|
{
|
||||||
name = "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
|
"_inventory = _msg select 1;" \n
|
||||||
"_backpack = _msg select 2;" \n
|
"_backpack = _msg select 2;" \n
|
||||||
"_survival = _msg select 3;" \n
|
"_survival = _msg select 3;" \n
|
||||||
@@ -464,7 +483,8 @@ class FSM
|
|||||||
" diag_log (""PLAYER RESULT: "" + str(_isHiveOk));" \n
|
" diag_log (""PLAYER RESULT: "" + str(_isHiveOk));" \n
|
||||||
"};" \n
|
"};" \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
|
"diag_log (""PLOGIN: authenticated with : "" + str(_msg));" \n
|
||||||
"" \n
|
"" \n
|
||||||
"//Not Equal Failure" \n
|
"//Not Equal Failure" \n
|
||||||
@@ -531,7 +551,7 @@ class FSM
|
|||||||
"selectNoPlayer;" \n
|
"selectNoPlayer;" \n
|
||||||
"" \n
|
"" \n
|
||||||
"_myTime = time;" \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""">*/;
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
||||||
class Links
|
class Links
|
||||||
{
|
{
|
||||||
@@ -633,12 +653,11 @@ class FSM
|
|||||||
"" \n
|
"" \n
|
||||||
"dayzPlayerLogin2 = [];" \n
|
"dayzPlayerLogin2 = [];" \n
|
||||||
"dayzLogin2 = [_charID,player,_playerUID];" \n
|
"dayzLogin2 = [_charID,player,_playerUID];" \n
|
||||||
"publicVariable ""dayzLogin2"";" \n
|
"publicVariableServer ""dayzLogin2"";" \n
|
||||||
"if (isServer) then {" \n
|
"// remove isServer from player space" \n
|
||||||
" dayzLogin2 spawn server_playerSetup;" \n
|
|
||||||
"};" \n
|
|
||||||
"" \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""">*/;
|
"diag_log ""Attempting Phase two..."";"/*%FSM</STATEINIT""">*/;
|
||||||
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
||||||
class Links
|
class Links
|
||||||
@@ -660,7 +679,7 @@ class FSM
|
|||||||
class Phase_Two
|
class Phase_Two
|
||||||
{
|
{
|
||||||
name = "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
|
"diag_log ""Finished..."";" \n
|
||||||
"" \n
|
"" \n
|
||||||
"_worldspace = dayzPlayerLogin2 select 0;" \n
|
"_worldspace = dayzPlayerLogin2 select 0;" \n
|
||||||
@@ -808,12 +827,12 @@ class FSM
|
|||||||
class Position
|
class Position
|
||||||
{
|
{
|
||||||
name = "Position";
|
name = "Position";
|
||||||
init = /*%FSM<STATEINIT""">*/"endLoadingScreen;" \n
|
init = /*%FSM<STATEINIT""">*/"" \n
|
||||||
"startLoadingScreen ["""",""DayZ_loadingScreen""];" \n
|
|
||||||
"//Location" \n
|
"//Location" \n
|
||||||
"_myLoc = getPosATL player;" \n
|
"_myLoc = getPosATL player;" \n
|
||||||
"" \n
|
"" \n
|
||||||
"0 cutText [""Setup Completed, please wait..."", ""BLACK FADED"",60];" \n
|
"dayz_loadScreenMsg = ""Setup Completed, please wait..."";" \n
|
||||||
|
"progressLoadingScreen 0.9;" \n
|
||||||
"" \n
|
"" \n
|
||||||
"//GUI" \n
|
"//GUI" \n
|
||||||
"3 cutRsc [""playerStatusGUI"", ""PLAIN"",0];" \n
|
"3 cutRsc [""playerStatusGUI"", ""PLAIN"",0];" \n
|
||||||
@@ -873,7 +892,7 @@ class FSM
|
|||||||
"" \n
|
"" \n
|
||||||
"dayz_clientPreload = true;" \n
|
"dayz_clientPreload = true;" \n
|
||||||
"3 fadeSound 1;" \n
|
"3 fadeSound 1;" \n
|
||||||
"0 cutText ["""", ""BLACK IN"", 3];" \n
|
"1 cutText ["""", ""PLAIN""];" \n
|
||||||
"0 fadeMusic 0.5;" \n
|
"0 fadeMusic 0.5;" \n
|
||||||
"" \n
|
"" \n
|
||||||
"//Check mission objects" \n
|
"//Check mission objects" \n
|
||||||
@@ -902,7 +921,7 @@ class FSM
|
|||||||
init = /*%FSM<STATEINIT""">*/"endLoadingScreen;" \n
|
init = /*%FSM<STATEINIT""">*/"endLoadingScreen;" \n
|
||||||
"selectNoPlayer;" \n
|
"selectNoPlayer;" \n
|
||||||
"_myTime = time;" \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""">*/;
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
||||||
class Links
|
class Links
|
||||||
{
|
{
|
||||||
@@ -1012,7 +1031,9 @@ class FSM
|
|||||||
class Initialize
|
class Initialize
|
||||||
{
|
{
|
||||||
name = "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
|
"dayz_medicalH = [] execVM ""\z\addons\dayz_code\medical\init_medical.sqf""; //Medical Monitor Script (client only)" \n
|
||||||
"[player] call fnc_usec_damageHandle;" \n
|
"[player] call fnc_usec_damageHandle;" \n
|
||||||
"if (r_player_unconscious) then {" \n
|
"if (r_player_unconscious) then {" \n
|
||||||
@@ -1020,6 +1041,8 @@ class FSM
|
|||||||
" player playActionNow ""Die"";" \n
|
" player playActionNow ""Die"";" \n
|
||||||
"};" \n
|
"};" \n
|
||||||
"player allowDamage true;" \n
|
"player allowDamage true;" \n
|
||||||
|
"player enableSimulation true;" \n
|
||||||
|
"0 cutText ["""", ""BLACK IN"",3];" \n
|
||||||
"" \n
|
"" \n
|
||||||
"//Add core tools" \n
|
"//Add core tools" \n
|
||||||
"player addWeapon ""Loot"";" \n
|
"player addWeapon ""Loot"";" \n
|
||||||
@@ -1046,6 +1069,7 @@ class FSM
|
|||||||
" _array = player call world_surfaceNoise;" \n
|
" _array = player call world_surfaceNoise;" \n
|
||||||
" dayz_surfaceNoise = _array select 1;" \n
|
" dayz_surfaceNoise = _array select 1;" \n
|
||||||
" dayz_surfaceType = _array select 0;" \n
|
" dayz_surfaceType = _array select 0;" \n
|
||||||
|
"" \n
|
||||||
" call player_checkStealth;" \n
|
" call player_checkStealth;" \n
|
||||||
" dayz_statusArray = [] call player_updateGui;" \n
|
" dayz_statusArray = [] call player_updateGui;" \n
|
||||||
" if (!isNull cursorTarget and !dayz_heartBeat) then {" \n
|
" if (!isNull cursorTarget and !dayz_heartBeat) then {" \n
|
||||||
@@ -1082,12 +1106,16 @@ class FSM
|
|||||||
" _charID = _this select 1;" \n
|
" _charID = _this select 1;" \n
|
||||||
" _runOnce = false;" \n
|
" _runOnce = false;" \n
|
||||||
" while {true} do {" \n
|
" while {true} do {" \n
|
||||||
" _handle = [false] spawn player_spawnCheck;" \n
|
"" \n
|
||||||
" waitUntil{scriptDone _handle};" \n
|
" ods(""dayz_lootCheck"");" \n
|
||||||
|
"" \n
|
||||||
|
" call player_spawnCheck; " \n
|
||||||
|
"" \n
|
||||||
" call stream_locationCheck;" \n
|
" call stream_locationCheck;" \n
|
||||||
" sleep 2;" \n
|
" sleep 10;" \n
|
||||||
" };" \n
|
" };" \n
|
||||||
"};" \n
|
"};" \n
|
||||||
|
"// TODO: questionably" \n
|
||||||
"{ _x call fnc_vehicleEventHandler; } forEach vehicles;" \n
|
"{ _x call fnc_vehicleEventHandler; } forEach vehicles;" \n
|
||||||
"{ nul = [_x,2,0,false,false] spawn BIS_Effects_Burn; } forEach allMissionObjects ""UH1Wreck_DZ"";" \n
|
"{ nul = [_x,2,0,false,false] spawn BIS_Effects_Burn; } forEach allMissionObjects ""UH1Wreck_DZ"";" \n
|
||||||
""/*%FSM</STATEINIT""">*/;
|
""/*%FSM</STATEINIT""">*/;
|
||||||
@@ -1127,7 +1155,7 @@ class FSM
|
|||||||
{
|
{
|
||||||
name = "Enable_Sim";
|
name = "Enable_Sim";
|
||||||
init = /*%FSM<STATEINIT""">*/"_myAnim = getNumber(configFile >> ""CfgPatches"" >> ""dayz_anim"" >> ""isUpdated"");" \n
|
init = /*%FSM<STATEINIT""">*/"_myAnim = getNumber(configFile >> ""CfgPatches"" >> ""dayz_anim"" >> ""isUpdated"");" \n
|
||||||
"player enableSimulation true;"/*%FSM</STATEINIT""">*/;
|
""/*%FSM</STATEINIT""">*/;
|
||||||
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
||||||
class Links
|
class Links
|
||||||
{
|
{
|
||||||
@@ -1159,8 +1187,8 @@ class FSM
|
|||||||
{
|
{
|
||||||
name = "Gender_Selection";
|
name = "Gender_Selection";
|
||||||
init = /*%FSM<STATEINIT""">*/"dayz_selectGender = ""Survivor2_DZ"";" \n
|
init = /*%FSM<STATEINIT""">*/"dayz_selectGender = ""Survivor2_DZ"";" \n
|
||||||
|
"1 cutText ["""", ""BLACK"",0];" \n
|
||||||
"endLoadingScreen;" \n
|
"endLoadingScreen;" \n
|
||||||
"0 cutText ["""", ""BLACK FADED"",60];" \n
|
|
||||||
"createDialog ""RscDisplayGenderSelect"";"/*%FSM</STATEINIT""">*/;
|
"createDialog ""RscDisplayGenderSelect"";"/*%FSM</STATEINIT""">*/;
|
||||||
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
||||||
class Links
|
class Links
|
||||||
@@ -1206,7 +1234,7 @@ class FSM
|
|||||||
init = /*%FSM<STATEINIT""">*/"endLoadingScreen;" \n
|
init = /*%FSM<STATEINIT""">*/"endLoadingScreen;" \n
|
||||||
"selectNoPlayer;" \n
|
"selectNoPlayer;" \n
|
||||||
"_myTime = time;" \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""">*/;
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
||||||
class Links
|
class Links
|
||||||
{
|
{
|
||||||
@@ -1233,7 +1261,7 @@ class FSM
|
|||||||
"_zombies = (getPosATL player) nearEntities [""zZombie_Base"",30];" \n
|
"_zombies = (getPosATL player) nearEntities [""zZombie_Base"",30];" \n
|
||||||
"{deleteVehicle _x} forEach _zombies;" \n
|
"{deleteVehicle _x} forEach _zombies;" \n
|
||||||
"" \n
|
"" \n
|
||||||
"endLoadingScreen;"/*%FSM</STATEINIT""">*/;
|
"//endLoadingScreen;"/*%FSM</STATEINIT""">*/;
|
||||||
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
||||||
class Links
|
class Links
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -134,8 +134,8 @@ link71[] = {54,32};
|
|||||||
link72[] = {55,7};
|
link72[] = {55,7};
|
||||||
link73[] = {56,3};
|
link73[] = {56,3};
|
||||||
link74[] = {57,1};
|
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};
|
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,802,22,1230,22,3,1001};
|
window[] = {2,-1,-1,-1,-1,846,66,1274,66,3,1001};
|
||||||
*//*%FSM</HEAD>*/
|
*//*%FSM</HEAD>*/
|
||||||
class FSM
|
class FSM
|
||||||
{
|
{
|
||||||
@@ -467,7 +467,7 @@ class FSM
|
|||||||
"" \n
|
"" \n
|
||||||
"//Move to target" \n
|
"//Move to target" \n
|
||||||
"_agent moveTo _targetPos;" \n
|
"_agent moveTo _targetPos;" \n
|
||||||
"_agent forceSpeed 5;" \n
|
"_agent forceSpeed 6;" \n
|
||||||
"" \n
|
"" \n
|
||||||
"//Check if LOS" \n
|
"//Check if LOS" \n
|
||||||
"if (_losCheck == 2) then {" \n
|
"if (_losCheck == 2) then {" \n
|
||||||
|
|||||||
@@ -0,0 +1,140 @@
|
|||||||
|
/***********************************************************
|
||||||
|
most of the code is taken from fn_damageHandler.sqf
|
||||||
|
PROCESS DAMAGE TO A BOT
|
||||||
|
- Function
|
||||||
|
- [unit, selectionName, damage, source, projectile] call disco_damageHandler;
|
||||||
|
************************************************************/
|
||||||
|
private["_unit","_hit","_damage","_unconscious","_source","_ammo","_type","_isMinor","_isHeadHit","_inVehicle","_isPlayer",
|
||||||
|
"_humanityHit","_myKills","_characterID","_player_blood","_method"];
|
||||||
|
_unit = _this select 0;
|
||||||
|
_hit = _this select 1;
|
||||||
|
_damage = _this select 2;
|
||||||
|
_unconscious = _unit getVariable ["NORRN_unconscious", false];
|
||||||
|
_source = _this select 3;
|
||||||
|
_ammo = _this select 4;
|
||||||
|
_type = [_damage,_ammo] call fnc_usec_damageType;
|
||||||
|
_isMinor = (_hit in USEC_MinorWounds);
|
||||||
|
_isHeadHit = (_hit == "head_hit");
|
||||||
|
_inVehicle = (vehicle _unit != _unit);
|
||||||
|
_isPlayer = (isPlayer _source);
|
||||||
|
_humanityHit = 0;
|
||||||
|
_myKills = 0;
|
||||||
|
_characterID = _unit getVariable["CharacterID","0"];
|
||||||
|
_player_blood = _unit getVariable["USEC_BloodQty",12000];
|
||||||
|
_method = "";
|
||||||
|
|
||||||
|
private["_strH","_dam","_total","_totalDmg"];
|
||||||
|
_strH = "hit_" + (_hit);
|
||||||
|
_dam = _unit getVariable [_strH,0];
|
||||||
|
if ( _dam > 1 ) then { _dam = 1 };
|
||||||
|
// total damage for part
|
||||||
|
_total = _dam + _damage;
|
||||||
|
_unit setVariable [_strH,_total,true];
|
||||||
|
|
||||||
|
if (_characterID == "0") exitWith
|
||||||
|
{
|
||||||
|
diag_log "DEBUG: disco_damageHandler: CharacterID is 0";
|
||||||
|
};
|
||||||
|
|
||||||
|
// calculate damage for all parts
|
||||||
|
_totalDmg = 0;
|
||||||
|
{
|
||||||
|
_strH = "hit_" + _x;
|
||||||
|
_dam = _unit getVariable[_strH,0];
|
||||||
|
_totalDmg = _totalDmg + _dam;
|
||||||
|
} forEach USEC_woundHit;
|
||||||
|
|
||||||
|
private["_scale"];
|
||||||
|
//PVP Damage
|
||||||
|
_scale = 200;
|
||||||
|
if (_total > 0.4) then {
|
||||||
|
// maybe need to tune _scale value, 850 as in original
|
||||||
|
_scale = _scale + 850;
|
||||||
|
if (_isHeadHit) then {
|
||||||
|
_scale = _scale + 500;
|
||||||
|
};
|
||||||
|
// seems need different scale for type 1,2
|
||||||
|
switch (_type) do {
|
||||||
|
case 1: {_scale = _scale + 200};
|
||||||
|
case 2: {_scale = _scale + 200};
|
||||||
|
};
|
||||||
|
//Cause blood loss
|
||||||
|
_player_blood = _player_blood - (_total * _scale);
|
||||||
|
};
|
||||||
|
|
||||||
|
//Record Damage to Minor parts (legs, arms)
|
||||||
|
if ( (_hit == "legs") && (_total == 1) ) then { _unit setVariable ["hit_legs",1,true]; };
|
||||||
|
if ( (_hit == "hands") && (_total == 1) ) then { _unit setVariable ["hit_hands",1,true]; };
|
||||||
|
|
||||||
|
private["_wound","_isHit","_rndPain","_isInjured","_rndInfection","_rndPain","_hitPain","_inPain","_hitInfection"];
|
||||||
|
// common damage first
|
||||||
|
if (_totalDmg > 4) then {
|
||||||
|
if ( _type == 0 ) then {
|
||||||
|
// TODO: add appropriate _method and message when study
|
||||||
|
_method = "unknown";
|
||||||
|
};
|
||||||
|
if ( _type == 1 ) then {
|
||||||
|
//TODO: add message when study
|
||||||
|
_method = "explosion";
|
||||||
|
};
|
||||||
|
if ( _type == 2 ) then {
|
||||||
|
//serious ballistic damage
|
||||||
|
_method = "shotheavy";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
if ((_total > 1) and _isHeadHit) then {
|
||||||
|
// head hit
|
||||||
|
_method = "shothead";
|
||||||
|
};
|
||||||
|
if ( _player_blood < 50 ) then {
|
||||||
|
// blood loss
|
||||||
|
_method = "bleed";
|
||||||
|
};
|
||||||
|
if ( _method !="" ) then {
|
||||||
|
// process death
|
||||||
|
[_unit,_source,_method] spawn disco_playerDeath;
|
||||||
|
} else {
|
||||||
|
// still alive?
|
||||||
|
if (_total > 0.4) then { //0.25
|
||||||
|
/* BLEEDING */
|
||||||
|
_wound = _hit call fnc_usec_damageGetWound;
|
||||||
|
_isHit = _unit getVariable[_wound,false];
|
||||||
|
// diag_log format["DEBUG: wound:%1 [%2]",_wound,_isHit];
|
||||||
|
_rndPain = (random 10);
|
||||||
|
_rndInfection = (random 1000);
|
||||||
|
_hitPain = (_rndPain < _total);
|
||||||
|
if (_isHeadHit or _hitPain) then {
|
||||||
|
_hitPain = true;
|
||||||
|
};
|
||||||
|
_hitInfection = (_rndInfection < 1);
|
||||||
|
if (_isHit) then {
|
||||||
|
//Make hit worse
|
||||||
|
_player_blood = _player_blood - 50;
|
||||||
|
};
|
||||||
|
if (_hitInfection) then {
|
||||||
|
//Set Infection if not already
|
||||||
|
_unit setVariable["USEC_infected",true,true];
|
||||||
|
|
||||||
|
};
|
||||||
|
if (_hitPain) then {
|
||||||
|
//Set Pain if not already
|
||||||
|
_unit setVariable["USEC_inPain",true,true];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
private["_isInjured"];
|
||||||
|
if(!_isHit) then {
|
||||||
|
//Create Wound
|
||||||
|
// diag_log format["DEBUG: spawn bleed %1",_wound];
|
||||||
|
_unit setVariable[_wound,true,true];
|
||||||
|
[_unit,_wound,_hit] spawn fnc_usec_damageBleed;
|
||||||
|
usecBleed = [_unit,_wound,_hit];
|
||||||
|
publicVariable "usecBleed";
|
||||||
|
//Set Injured if not already
|
||||||
|
_isInjured = _unit getVariable["USEC_injured",false];
|
||||||
|
if (!_isInjured) then {
|
||||||
|
_unit setVariable["USEC_injured",true,true];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
_unit setVariable["USEC_BloodQty",_player_blood,true];
|
||||||
|
};
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
/*
|
||||||
|
[_object,_source,_method] spawn disco_playerDeath;
|
||||||
|
*/
|
||||||
|
private["_object","_source","_method","_key","_playerID","_characterID","_playerName","_isDead"];
|
||||||
|
_object = _this select 0;
|
||||||
|
_source = _this select 1;
|
||||||
|
_method = _this select 2;
|
||||||
|
_playerID = _object getVariable["playerID","0"]; //playerUID
|
||||||
|
_characterID = _object getVariable["characterID","0"]; //characterID
|
||||||
|
_playerName = _object getVariable["bodyName","unknown"];
|
||||||
|
_isDead = _object getVariable["USEC_isDead",false];
|
||||||
|
_humanity = 0;
|
||||||
|
_wait = 0;
|
||||||
|
|
||||||
|
_object removeAllEventHandlers "HandleDamage";
|
||||||
|
|
||||||
|
if (!_isDead) then {
|
||||||
|
_id = [_characterID,0,_object,_playerID,_playerName,_source,_method] spawn server_playerDied;
|
||||||
|
_object setDamage 1;
|
||||||
|
_object setVariable["USEC_isDead",true,true];
|
||||||
|
dayzFlies = _object;
|
||||||
|
publicVariable "dayzFlies";
|
||||||
|
_id = [_object,50,true,getPosATL _object] spawn player_alertZombies;
|
||||||
|
|
||||||
|
private["_canHitFree","_isBandit","_myKills","_humanity","_killsH","_wait","_killsB"];
|
||||||
|
if (!isNull _source) then {
|
||||||
|
if (_source != _object) then {
|
||||||
|
_canHitFree = _object getVariable ["freeTarget",false];
|
||||||
|
_isBandit = (typeOf _object) == "Bandit1_DZ";
|
||||||
|
_myKills = ((_object getVariable ["humanKills",0]) / 30) * 1000;
|
||||||
|
if (!_canHitFree and !_isBandit) then {
|
||||||
|
//Process Morality Hit
|
||||||
|
_humanity = -(2000 - _myKills);
|
||||||
|
_killsH = _source getVariable ["humanKills",0];
|
||||||
|
_source setVariable ["humanKills",(_killsH + 1),true];
|
||||||
|
_wait = 300;
|
||||||
|
} else {
|
||||||
|
//Process Morality Hit
|
||||||
|
//_humanity = _myKills * 100;
|
||||||
|
_killsB = _source getVariable ["banditKills",0];
|
||||||
|
_source setVariable ["banditKills",(_killsB + 1),true];
|
||||||
|
_wait = 0;
|
||||||
|
};
|
||||||
|
if (_humanity < 0) then {
|
||||||
|
_wait = 0;
|
||||||
|
};
|
||||||
|
if (!_canHitFree and !_isBandit) then {
|
||||||
|
dayzHumanity = [_source,_humanity,_wait];
|
||||||
|
publicVariable "dayzHumanity";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
_object setVariable ["deathType",_method,true];
|
||||||
|
};
|
||||||
@@ -0,0 +1,218 @@
|
|||||||
|
/*
|
||||||
|
[_object,_playerID,_characterID,_penalty] spawn disco_playerMorph;
|
||||||
|
*/
|
||||||
|
private["_object","_playerID","_characterID","_playerName","_model","_position","_dir","_currentAnim","_penalty"];
|
||||||
|
_object = _this select 0;
|
||||||
|
// TODO: check
|
||||||
|
_playerID = _this select 1; //playerUID
|
||||||
|
_characterID = _this select 2; //characterID
|
||||||
|
|
||||||
|
_penalty = _this select 3;
|
||||||
|
_playerName = _object getVariable["bodyName","unknown"]; //name _object;
|
||||||
|
_model = typeOf _object;
|
||||||
|
_position = getPosATL _object;
|
||||||
|
_dir = getDir _object;
|
||||||
|
_currentAnim = animationState _object;
|
||||||
|
|
||||||
|
_object removeAllEventHandlers "FiredNear";
|
||||||
|
_object removeAllEventHandlers "HandleDamage";
|
||||||
|
_object removeAllEventHandlers "Killed";
|
||||||
|
_object removeAllEventHandlers "Fired";
|
||||||
|
|
||||||
|
private["_updates","_humanity","_legs","_arms","_medical","_worldspace","_zombieKills","_headShots","_humanKills","_banditKills","_temp"];
|
||||||
|
// TODO: check
|
||||||
|
_updates = _object getVariable["updatePlayer",[false,false,false,false,false]];
|
||||||
|
_updates set [0,true];
|
||||||
|
_object setVariable["updatePlayer",_updates,true];
|
||||||
|
|
||||||
|
_humanity = _object getVariable["humanity",0];
|
||||||
|
_temp = round(_object getVariable ["temperature",100]);
|
||||||
|
_worldspace = [round(_dir),_position];
|
||||||
|
_zombieKills = _object getVariable ["zombieKills",0];
|
||||||
|
_headShots = _object getVariable ["headShots",0];
|
||||||
|
_humanKills = _object getVariable ["humanKills",0];
|
||||||
|
_banditKills = _object getVariable ["banditKills",0];
|
||||||
|
_medical = _object call player_sumMedical;
|
||||||
|
_messing = _object getVariable ["messing",[0,0]];
|
||||||
|
|
||||||
|
//BackUp Weapons and Mags
|
||||||
|
private ["_weapons","_magazines","_primweapon","_secweapon"];
|
||||||
|
_weapons = weapons _object;
|
||||||
|
_magazines = magazines _object;
|
||||||
|
_primweapon = primaryWeapon _object;
|
||||||
|
_secweapon = secondaryWeapon _object;
|
||||||
|
|
||||||
|
//Checks
|
||||||
|
if(!(_primweapon in _weapons) && _primweapon != "") then {
|
||||||
|
_weapons = _weapons + [_primweapon];
|
||||||
|
};
|
||||||
|
|
||||||
|
if(!(_secweapon in _weapons) && _secweapon != "") then {
|
||||||
|
_weapons = _weapons + [_secweapon];
|
||||||
|
};
|
||||||
|
|
||||||
|
if(count _magazines == 0) then {
|
||||||
|
_magazines = magazines _object;
|
||||||
|
};
|
||||||
|
|
||||||
|
//BackUp Backpack
|
||||||
|
private ["_newBackpackType","_backpackWpn","_backpackMag"];
|
||||||
|
_newBackpackType = typeOf (unitBackpack _object);
|
||||||
|
if(_newBackpackType != "") then {
|
||||||
|
_backpackWpn = getWeaponCargo unitBackpack _object;
|
||||||
|
_backpackMag = getMagazineCargo unitBackpack _object;
|
||||||
|
};
|
||||||
|
|
||||||
|
//Get Muzzle
|
||||||
|
private ["_currentWpn","_muzzles"];
|
||||||
|
_currentWpn = "";
|
||||||
|
_muzzles = getArray(configFile >> "cfgWeapons" >> _currentWpn >> "muzzles");
|
||||||
|
if (count _muzzles > 1) then {
|
||||||
|
_currentWpn = currentMuzzle _object;
|
||||||
|
};
|
||||||
|
|
||||||
|
private ["_primary"];
|
||||||
|
_doLoop = 0;
|
||||||
|
while {_doLoop < 5} do {
|
||||||
|
_key = format["CHILD:101:%1:%2:%3:",_playerID,dayZ_instance,_playerName];
|
||||||
|
_primary = [_key,false,dayZ_hivePipeAuth] call server_hiveReadWrite;
|
||||||
|
if (count _primary > 0) then {
|
||||||
|
if ((_primary select 0) != "ERROR") then {
|
||||||
|
_doLoop = 9;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
_doLoop = _doLoop + 1;
|
||||||
|
};
|
||||||
|
private ["_group","_newUnit"];
|
||||||
|
// get ammo from DB
|
||||||
|
_magazines = (_primary select 4) select 1;
|
||||||
|
|
||||||
|
//Create New Character
|
||||||
|
_group = createGroup civilian;
|
||||||
|
_newUnit = _group createUnit [_model,[0,0,0],[],0,"NONE"];
|
||||||
|
sleep 0.1;
|
||||||
|
|
||||||
|
//Clear New Character
|
||||||
|
{_newUnit removeMagazine _x;} forEach (magazines _newUnit);
|
||||||
|
removeAllWeapons _newUnit;
|
||||||
|
|
||||||
|
//Equip New Charactar
|
||||||
|
{ _newUnit addMagazine _x } forEach _magazines;
|
||||||
|
{ _newUnit addWeapon _x } forEach _weapons;
|
||||||
|
if(_primweapon != (primaryWeapon _newUnit)) then { _newUnit addWeapon _primweapon };
|
||||||
|
if(_secweapon != (secondaryWeapon _newUnit) && _secweapon != "") then { _newUnit addWeapon _secweapon };
|
||||||
|
|
||||||
|
//Add and Fill BackPack
|
||||||
|
private["_newBackpack","_countr","_backpackmagTypes","_backpackmagQtys"];
|
||||||
|
if (!isNil "_newBackpackType") then {
|
||||||
|
if (_newBackpackType != "") then {
|
||||||
|
_newUnit addBackpack _newBackpackType;
|
||||||
|
_newBackpack = unitBackpack _newUnit;
|
||||||
|
//Fill backpack contents
|
||||||
|
//Weapons
|
||||||
|
_backpackWpnTypes = [];
|
||||||
|
_backpackWpnQtys = [];
|
||||||
|
if (count _backpackWpn > 0) then {
|
||||||
|
_backpackWpnTypes = _backpackWpn select 0;
|
||||||
|
_backpackWpnQtys = _backpackWpn select 1;
|
||||||
|
};
|
||||||
|
_countr = 0;
|
||||||
|
{
|
||||||
|
_newBackpack addWeaponCargoGlobal [_x,(_backpackWpnQtys select _countr)];
|
||||||
|
_countr = _countr + 1;
|
||||||
|
} forEach _backpackWpnTypes;
|
||||||
|
//magazines
|
||||||
|
_backpackmagTypes = [];
|
||||||
|
_backpackmagQtys = [];
|
||||||
|
if (count _backpackmag > 0) then {
|
||||||
|
_backpackmagTypes = _backpackMag select 0;
|
||||||
|
_backpackmagQtys = _backpackMag select 1;
|
||||||
|
};
|
||||||
|
_countr = 0;
|
||||||
|
{
|
||||||
|
_newBackpack addmagazineCargoGlobal [_x,(_backpackmagQtys select _countr)];
|
||||||
|
_countr = _countr + 1;
|
||||||
|
} forEach _backpackmagTypes;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
//set medical values
|
||||||
|
private["_fractures"];
|
||||||
|
if (count _medical > 0) then {
|
||||||
|
_newUnit setVariable["USEC_isDead",(_medical select 0),true];
|
||||||
|
_newUnit setVariable["NORRN_unconscious", (_medical select 1), true];
|
||||||
|
_newUnit setVariable["USEC_infected",(_medical select 2),true];
|
||||||
|
_newUnit setVariable["USEC_injured",(_medical select 3),true];
|
||||||
|
_newUnit setVariable["USEC_inPain",(_medical select 4),true];
|
||||||
|
_newUnit setVariable["USEC_isCardiac",(_medical select 5),true];
|
||||||
|
_newUnit setVariable["USEC_lowBlood",(_medical select 6),true];
|
||||||
|
_newUnit setVariable["USEC_BloodQty",(_medical select 7),true];
|
||||||
|
_newUnit setVariable["unconsciousTime",(_medical select 10),true];
|
||||||
|
//Add Wounds
|
||||||
|
{
|
||||||
|
_newUnit setVariable[_x,true,true];
|
||||||
|
[_newUnit,_x,0] spawn fnc_usec_damageBleed;
|
||||||
|
usecBleed = [_newUnit,_x,0];
|
||||||
|
publicVariable "usecBleed";
|
||||||
|
} forEach (_medical select 8);
|
||||||
|
//Add fractures
|
||||||
|
_fractures = (_medical select 9);
|
||||||
|
_newUnit setVariable ["hit_legs",(_fractures select 0),true];
|
||||||
|
_newUnit setVariable ["hit_hands",(_fractures select 1),true];
|
||||||
|
} else {
|
||||||
|
//Reset Fractures
|
||||||
|
_newUnit setVariable ["hit_legs",0,true];
|
||||||
|
_newUnit setVariable ["hit_hands",0,true];
|
||||||
|
_newUnit setVariable ["USEC_injured",false,true];
|
||||||
|
_newUnit setVariable ["USEC_inPain",false,true];
|
||||||
|
};
|
||||||
|
//General Stats
|
||||||
|
_newUnit setVariable["characterID",_characterID,true];
|
||||||
|
_newUnit setVariable["worldspace",_worldspace,true];
|
||||||
|
_newUnit setVariable["bodyName",_playerName,true];
|
||||||
|
//_newUnit setVariable["playerID",_playerID,true];
|
||||||
|
_newUnit setVariable["temperature",_temp,true];
|
||||||
|
_newUnit setVariable["messing",_messing,true];
|
||||||
|
|
||||||
|
//Move to position
|
||||||
|
_newUnit allowDamage true;
|
||||||
|
deleteVehicle _object;
|
||||||
|
deleteGroup (group _object);
|
||||||
|
_newUnit setDir _dir;
|
||||||
|
_newUnit setPosATL _position;
|
||||||
|
_newUnit playActionNow "Die";
|
||||||
|
_newUnit disableConversation true;
|
||||||
|
_newUnit setCaptive false;
|
||||||
|
// _newUnit disableAi "ANIM";
|
||||||
|
|
||||||
|
// äëÿ ÷åãî ýòî äåëàåòñÿ?
|
||||||
|
//_newUnit addWeapon "Loot";
|
||||||
|
//_newUnit addWeapon "Flare";
|
||||||
|
botPlayers = botPlayers + [_playerID];
|
||||||
|
private["_mydamage_eh1"];
|
||||||
|
_mydamage_eh1 = _newUnit addeventhandler ["HandleDamage",{ _this call disco_damageHandler;0 }];
|
||||||
|
|
||||||
|
diag_log format["DEBUG: Player %1 [%2] added to botPlayers: %3",_playerName,_playerID,botPlayers];
|
||||||
|
|
||||||
|
private["_doLoop","_isDead"];
|
||||||
|
_isDead = _newUnit getVariable["USEC_isDead",false];
|
||||||
|
_doLoop = 0;
|
||||||
|
while { _doLoop < _penalty && !_isDead } do {
|
||||||
|
_isDead = _newUnit getVariable["USEC_isDead",false];
|
||||||
|
_doLoop = _doLoop + 1;
|
||||||
|
sleep 1;
|
||||||
|
};
|
||||||
|
_newUnit removeAllEventHandlers "handleDamage";
|
||||||
|
|
||||||
|
if (!_isDead) then {
|
||||||
|
private["_playerBackp"];
|
||||||
|
_medical = _newUnit call player_sumMedical;
|
||||||
|
_newBackpack = unitBackpack _newUnit;
|
||||||
|
_playerBackp = [typeOf _newBackpack,getWeaponCargo _newBackpack,getMagazineCargo _newBackpack];
|
||||||
|
// _group = group _newUnit;
|
||||||
|
deleteVehicle _newUnit;
|
||||||
|
deleteGroup _group;
|
||||||
|
//Send to HIVE backpack and medical only
|
||||||
|
[_characterID,_worldspace,[],_playerBackp,_medical,[],""] call server_characterSync;
|
||||||
|
};
|
||||||
|
botPlayers = botPlayers - [_playerID];
|
||||||
|
diag_log format["DEBUG: Player %1 [%2] removed from botPlayers: %3",_playerName,_playerID,botPlayers];
|
||||||
@@ -15,14 +15,9 @@ if (vehicle _object != _object) then {
|
|||||||
_object action ["eject", vehicle _object];
|
_object action ["eject", vehicle _object];
|
||||||
};
|
};
|
||||||
|
|
||||||
if (59 in _playerIDtoarray) exitWith { diag_log ("Exited"); };
|
if (59 in _playerIDtoarray) exitWith { };
|
||||||
|
|
||||||
if ((_timeout - time) > 0) then {
|
if ((_timeout - time) > 0) then {
|
||||||
//_playerName call player_combatLogged;
|
|
||||||
private["_playerName","_center","_group"];
|
|
||||||
_playerName = name player;
|
|
||||||
_timeout = _object getVariable["combattimeout",0];
|
|
||||||
|
|
||||||
diag_log format["COMBAT LOGGED: %1 (%2)", _playerName,_timeout];
|
diag_log format["COMBAT LOGGED: %1 (%2)", _playerName,_timeout];
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -35,6 +30,10 @@ if (!isNull _object) then {
|
|||||||
(nearestObjects [getPosATL _object, ["Car", "Helicopter", "Motorcycle", "Ship", "TentStorage", "VaultStorage"], 10]);
|
(nearestObjects [getPosATL _object, ["Car", "Helicopter", "Motorcycle", "Ship", "TentStorage", "VaultStorage"], 10]);
|
||||||
if (alive _object) then {
|
if (alive _object) then {
|
||||||
[_object,[],true] call server_playerSync;
|
[_object,[],true] call server_playerSync;
|
||||||
|
if ((_timeout - time) > 0) then {
|
||||||
|
// spawn bot, if player in combat mode
|
||||||
|
[_object,_playerID,_characterID,30] spawn disco_playerMorph;
|
||||||
|
};
|
||||||
_id = [_playerID,_characterID,2] spawn dayz_recordLogin;
|
_id = [_playerID,_characterID,2] spawn dayz_recordLogin;
|
||||||
_myGroup = group _object;
|
_myGroup = group _object;
|
||||||
deleteVehicle _object;
|
deleteVehicle _object;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
private["_int","_newModel","_doLoop","_wait","_hiveVer","_isHiveOk","_playerID","_playerObj","_randomSpot","_publishTo","_primary","_secondary","_key","_result","_charID","_playerObj","_playerName","_finished","_spawnPos","_spawnDir","_items","_counter","_magazines","_weapons","_group","_backpack","_worldspace","_direction","_newUnit","_score","_position","_isNew","_inventory","_backpack","_medical","_survival","_stats","_state"];
|
private["_botActive","_int","_newModel","_doLoop","_wait","_hiveVer","_isHiveOk","_playerID","_playerObj","_randomSpot","_publishTo","_primary","_secondary","_key","_result","_charID","_playerObj","_playerName","_finished","_spawnPos","_spawnDir","_items","_counter","_magazines","_weapons","_group","_backpack","_worldspace","_direction","_newUnit","_score","_position","_isNew","_inventory","_backpack","_medical","_survival","_stats","_state"];
|
||||||
//Set Variables
|
//Set Variables
|
||||||
|
|
||||||
diag_log ("STARTING LOGIN: " + str(_this));
|
diag_log ("STARTING LOGIN: " + str(_this));
|
||||||
@@ -27,6 +27,7 @@ _state = [];
|
|||||||
_direction = 0;
|
_direction = 0;
|
||||||
_model = "";
|
_model = "";
|
||||||
_newUnit = objNull;
|
_newUnit = objNull;
|
||||||
|
_botActive = false;
|
||||||
|
|
||||||
if (_playerID == "") then {
|
if (_playerID == "") then {
|
||||||
_playerID = getPlayerUID _playerObj;
|
_playerID = getPlayerUID _playerObj;
|
||||||
@@ -35,8 +36,14 @@ if (_playerID == "") then {
|
|||||||
if ((_playerID == "") or (isNil "_playerID")) exitWith {
|
if ((_playerID == "") or (isNil "_playerID")) exitWith {
|
||||||
diag_log ("LOGIN FAILED: Player [" + _playerName + "] has no login ID");
|
diag_log ("LOGIN FAILED: Player [" + _playerName + "] has no login ID");
|
||||||
};
|
};
|
||||||
|
// spawn a waituntil if bot still on server, then run server_playerLogin later again
|
||||||
|
_botActive = _playerID in botPlayers;
|
||||||
|
if (_botActive) then { _this spawn server_waitForBotFinished;};
|
||||||
|
if (_botActive) exitWith{};
|
||||||
|
penaltyTimeout = false;
|
||||||
|
(owner _playerObj) publicVariableClient "penaltyTimeout";
|
||||||
|
|
||||||
endLoadingScreen;
|
//??? endLoadingScreen;
|
||||||
diag_log ("LOGIN ATTEMPT: " + str(_playerID) + " " + _playerName);
|
diag_log ("LOGIN ATTEMPT: " + str(_playerID) + " " + _playerName);
|
||||||
|
|
||||||
//Do Connection Attempt
|
//Do Connection Attempt
|
||||||
@@ -103,7 +110,7 @@ if (!_isNew) then {
|
|||||||
|
|
||||||
//Wait for HIVE to be free
|
//Wait for HIVE to be free
|
||||||
_key = format["CHILD:203:%1:%2:%3:",_charID,[_wpns,_mags],[_bcpk,[],[]]];
|
_key = format["CHILD:203:%1:%2:%3:",_charID,[_wpns,_mags],[_bcpk,[],[]]];
|
||||||
_key spawn server_hiveWrite;
|
_key call server_hiveWrite;
|
||||||
|
|
||||||
};
|
};
|
||||||
diag_log ("LOGIN LOADED: " + str(_playerObj) + " Type: " + (typeOf _playerObj));
|
diag_log ("LOGIN LOADED: " + str(_playerObj) + " Type: " + (typeOf _playerObj));
|
||||||
@@ -117,8 +124,5 @@ if (_hiveVer >= dayz_hiveVersionNo) then {
|
|||||||
//Server publishes variable to clients and WAITS
|
//Server publishes variable to clients and WAITS
|
||||||
//_playerObj setVariable ["publish",[_charID,_inventory,_backpack,_survival,_isNew,dayz_versionNo,_model,_isHiveOk,_newPlayer],true];
|
//_playerObj setVariable ["publish",[_charID,_inventory,_backpack,_survival,_isNew,dayz_versionNo,_model,_isHiveOk,_newPlayer],true];
|
||||||
|
|
||||||
_clientID = owner _playerObj;
|
|
||||||
dayzPlayerLogin = [_charID,_inventory,_backpack,_survival,_isNew,dayz_versionNo,_model,_isHiveOk,_newPlayer];
|
dayzPlayerLogin = [_charID,_inventory,_backpack,_survival,_isNew,dayz_versionNo,_model,_isHiveOk,_newPlayer];
|
||||||
_clientID publicVariableClient "dayzPlayerLogin";
|
(owner _playerObj) publicVariableClient "dayzPlayerLogin";
|
||||||
|
|
||||||
//_playerObj enableSimulation false;
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
private ["_characterID","_doLoop","_playerID","_playerObj","_randomSpot","_primary","_key","_worldspace","_score","_position","_pos","_isIsland","_medical","_stats","_state","_dummy","_debug","_distance","_hit","_fractures","_w","_findSpot","_humanity","_clientID","_lastinstance"];
|
private["_characterID","_playerObj","_playerID","_dummy","_worldspace","_state","_doLoop","_key","_primary","_medical","_stats","_humanity","_lastinstance","_randomSpot","_position","_debug","_distance","_hit","_fractures","_score","_findSpot","_mkr","_counter","_isNear","_isZero","_pos","_isIsland","_w","_clientID"];
|
||||||
//Wait for HIVE to be free
|
//Wait for HIVE to be free
|
||||||
//diag_log ("SETUP: attempted with " + str(_this));
|
//diag_log ("SETUP: attempted with " + str(_this));
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
private ["_characterID","_temp","_currentWpn","_magazines","_force","_isNewPos","_humanity","_isNewGear","_currentModel","_modelChk","_playerPos","_playerGear","_playerBackp","_backpack","_killsB","_killsH","_medical","_isNewMed","_character","_timeSince","_charPos","_isInVehicle","_distanceFoot","_lastPos","_kills","_headShots","_timeGross","_timeLeft","_onLadder","_isTerminal","_currentAnim","_muzzles","_array","_key","_lastTime","_config","_currentState","_pos"];
|
private["_character","_magazines","_force","_characterID","_charPos","_isInVehicle","_timeSince","_humanity","_debug","_distance","_isNewMed","_isNewPos","_isNewGear","_playerPos","_playerGear","_playerBackp","_medical","_distanceFoot","_lastPos","_backpack","_kills","_killsB","_killsH","_headShots","_lastTime","_timeGross","_timeLeft","_currentWpn","_currentAnim","_config","_onLadder","_isTerminal","_wpnDisabled","_currentModel","_modelChk","_muzzles","_temp","_currentState","_array","_key","_pos"];
|
||||||
//[player,array]
|
//[player,array]
|
||||||
//diag_log ("UPDATE: " + str(_this) );
|
//diag_log ("UPDATE: " + str(_this) );
|
||||||
|
|
||||||
|
|||||||
@@ -5,10 +5,12 @@ _object = _this select 1;
|
|||||||
_worldspace = _this select 2;
|
_worldspace = _this select 2;
|
||||||
_class = _this select 3;
|
_class = _this select 3;
|
||||||
|
|
||||||
|
|
||||||
if (!(_object isKindOf "Building")) exitWith {
|
if (!(_object isKindOf "Building")) exitWith {
|
||||||
deleteVehicle _object;
|
deleteVehicle _object;
|
||||||
};
|
};
|
||||||
|
_allowed = [_object] call check_publishobject;
|
||||||
|
if (!_allowed) exitWith { };
|
||||||
|
|
||||||
|
|
||||||
//diag_log ("PUBLISH: Attempt " + str(_object));
|
//diag_log ("PUBLISH: Attempt " + str(_object));
|
||||||
|
|
||||||
|
|||||||
@@ -82,6 +82,7 @@ _object_damage = {
|
|||||||
_hit = [_object,_x] call object_getHit;
|
_hit = [_object,_x] call object_getHit;
|
||||||
_selection = getText (configFile >> "CfgVehicles" >> (typeOf _object) >> "HitPoints" >> _x >> "name");
|
_selection = getText (configFile >> "CfgVehicles" >> (typeOf _object) >> "HitPoints" >> _x >> "name");
|
||||||
if (_hit > 0) then {_array set [count _array,[_selection,_hit]]};
|
if (_hit > 0) then {_array set [count _array,[_selection,_hit]]};
|
||||||
|
_object setHit ["_selection", _hit]
|
||||||
} forEach _hitpoints;
|
} forEach _hitpoints;
|
||||||
_key = format["CHILD:306:%1:%2:%3:",_objectID,_array,_damage];
|
_key = format["CHILD:306:%1:%2:%3:",_objectID,_array,_damage];
|
||||||
diag_log ("HIVE: WRITE: "+ str(_key));
|
diag_log ("HIVE: WRITE: "+ str(_key));
|
||||||
|
|||||||
@@ -1,5 +1,11 @@
|
|||||||
waituntil {!isnil "bis_fnc_init"};
|
waituntil {!isnil "bis_fnc_init"};
|
||||||
|
|
||||||
|
BIS_MPF_remoteExecutionServer = {
|
||||||
|
if ((_this select 1) select 2 == "JIPrequest") then {
|
||||||
|
[nil,(_this select 1) select 0,"loc",rJIPEXEC,[any,any,"per","execVM","ca\Modules\Functions\init.sqf"]] call RE;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
BIS_Effects_Burn = {};
|
BIS_Effects_Burn = {};
|
||||||
object_spawnDamVehicle = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_spawnDamVehicle.sqf";
|
object_spawnDamVehicle = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_spawnDamVehicle.sqf";
|
||||||
server_playerLogin = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerLogin.sqf";
|
server_playerLogin = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerLogin.sqf";
|
||||||
@@ -15,8 +21,17 @@ local_deleteObj = compile preprocessFileLineNumbers "\z\addons\dayz_code\comp
|
|||||||
local_createObj = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\local_createObj.sqf"; //Creates the object in DB
|
local_createObj = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\local_createObj.sqf"; //Creates the object in DB
|
||||||
server_playerSync = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerSync.sqf";
|
server_playerSync = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerSync.sqf";
|
||||||
zombie_findOwner = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\zombie_findOwner.sqf";
|
zombie_findOwner = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\zombie_findOwner.sqf";
|
||||||
|
//server_updateNearbyObjects = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_updateNearbyObjects.sqf";
|
||||||
|
disco_playerMorph = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\disco_playerMorph.sqf";
|
||||||
|
disco_damageHandler = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\disco_damageHandler.sqf";
|
||||||
|
disco_playerDeath = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\disco_playerDeath.sqf";
|
||||||
|
|
||||||
server_updateNearbyObjects = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_updateNearbyObjects.sqf";
|
server_waitForBotFinished = {
|
||||||
|
private ["_playerId"];
|
||||||
|
_playerID = _this select 0;
|
||||||
|
waituntil{sleep 1; !(_playerID in botPlayers)};
|
||||||
|
_this call server_playerLogin;
|
||||||
|
};
|
||||||
|
|
||||||
vehicle_handleInteract = {
|
vehicle_handleInteract = {
|
||||||
private["_object"];
|
private["_object"];
|
||||||
@@ -24,8 +39,26 @@ vehicle_handleInteract = {
|
|||||||
[_object, "all"] call server_updateObject;
|
[_object, "all"] call server_updateObject;
|
||||||
};
|
};
|
||||||
|
|
||||||
player_combatLogged = {
|
check_publishobject = {
|
||||||
|
private["_allowed","_allowedObjects","_object"];
|
||||||
|
|
||||||
|
_object = _this select 0;
|
||||||
|
_allowedObjects = ["TentStorage", "Hedgehog_DZ", "Sandbag1_DZ","TrapBear","Wire_cat1"];
|
||||||
|
_noncombatitems = ["ThrownObjects", "RoadFlare", "ChemLight"];
|
||||||
|
_allowed = false;
|
||||||
|
|
||||||
|
diag_log format ["DEBUG: Checking if Object: %1 is allowed", _object];
|
||||||
|
|
||||||
|
if ((typeOf _object) in _allowedObjects) then {
|
||||||
|
diag_log format ["DEBUG: Object: %1 Safe",_object];
|
||||||
|
_allowed = true;
|
||||||
|
};
|
||||||
|
if ((typeOf _object) in _noncombatitems) then {
|
||||||
|
diag_log format ["DEBUG: NONCombat: %1 Safe",_object];
|
||||||
|
_allowed = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
_allowed;
|
||||||
};
|
};
|
||||||
|
|
||||||
//event Handlers
|
//event Handlers
|
||||||
@@ -37,7 +70,21 @@ eh_localCleanup = {
|
|||||||
private["_type","_unit"];
|
private["_type","_unit"];
|
||||||
_unit = _this select 0;
|
_unit = _this select 0;
|
||||||
_type = typeOf _unit;
|
_type = typeOf _unit;
|
||||||
|
_myGroupUnit = group _unit;
|
||||||
|
_unit removeAllMPEventHandlers "mpkilled";
|
||||||
|
_unit removeAllMPEventHandlers "mphit";
|
||||||
|
_unit removeAllMPEventHandlers "mprespawn";
|
||||||
|
_unit removeAllEventHandlers "FiredNear";
|
||||||
|
_unit removeAllEventHandlers "HandleDamage";
|
||||||
|
_unit removeAllEventHandlers "Killed";
|
||||||
|
_unit removeAllEventHandlers "Fired";
|
||||||
|
_unit removeAllEventHandlers "GetOut";
|
||||||
|
_unit removeAllEventHandlers "GetIn";
|
||||||
|
_unit removeAllEventHandlers "Local";
|
||||||
|
clearVehicleInit _unit;
|
||||||
deleteVehicle _unit;
|
deleteVehicle _unit;
|
||||||
|
deleteGroup _myGroupUnit;
|
||||||
|
_unit = nil;
|
||||||
diag_log ("CLEANUP: DELETED A " + str(_type) );
|
diag_log ("CLEANUP: DELETED A " + str(_type) );
|
||||||
};
|
};
|
||||||
}];
|
}];
|
||||||
|
|||||||
@@ -4,30 +4,29 @@
|
|||||||
item0[] = {"init",0,250,-75.000000,-400.000000,25.000000,-350.000000,0.000000,"init"};
|
item0[] = {"init",0,250,-75.000000,-400.000000,25.000000,-350.000000,0.000000,"init"};
|
||||||
item1[] = {"true",8,218,-75.000000,-175.000000,25.000000,-125.000000,0.000000,"true"};
|
item1[] = {"true",8,218,-75.000000,-175.000000,25.000000,-125.000000,0.000000,"true"};
|
||||||
item2[] = {"waiting",2,250,-75.000000,-100.000000,25.000000,-50.000000,0.000000,"waiting"};
|
item2[] = {"waiting",2,250,-75.000000,-100.000000,25.000000,-50.000000,0.000000,"waiting"};
|
||||||
item3[] = {"too_many_dead",4,218,-150.000000,-25.000000,-50.000000,25.000000,2.000000,"too many" \n "dead"};
|
item3[] = {"time_dead",4,218,-300.000000,-25.000000,-200.000000,25.000000,4.000000,"time" \n "dead"};
|
||||||
item4[] = {"cleanup_dead",2,250,-150.000000,50.000000,-50.000000,100.000000,0.000000,"cleanup" \n "dead"};
|
item4[] = {"cleanup_dead",2,250,-300.000000,50.000000,-200.000000,100.000000,0.000000,"cleanup" \n "dead"};
|
||||||
item5[] = {"too_many_objects",4,218,-25.000000,-25.000000,75.000000,25.000000,0.000000,"too many" \n "objects"};
|
item5[] = {"time_items",4,218,0.000000,-25.000000,100.000000,25.000000,2.000000,"time" \n "items"};
|
||||||
item6[] = {"cleanup_objects",2,250,-25.000000,50.000000,75.000000,100.000000,0.000000,"cleanup" \n "objects"};
|
item6[] = {"cleanup_items",2,250,0.000000,50.000000,100.000000,100.000000,0.000000,"cleanup" \n "items"};
|
||||||
item7[] = {"time_sync",4,218,-275.000000,-25.000000,-175.000000,25.000000,1.000000,"time" \n "sync"};
|
item7[] = {"time_sync",4,218,-150.000000,-25.000000,-50.000000,25.000000,3.000000,"time" \n "sync"};
|
||||||
item8[] = {"sync_the_time",2,250,-275.000000,50.000000,-175.000000,100.000000,0.000000,"sync" \n "the time"};
|
item8[] = {"sync_the_time",2,250,-150.000000,50.000000,-50.000000,100.000000,0.000000,"sync" \n "the time"};
|
||||||
item9[] = {"true",8,218,-75.000000,125.000000,25.000000,175.000000,0.000000,"true"};
|
item9[] = {"true",8,218,-75.000000,125.000000,25.000000,175.000000,0.000000,"true"};
|
||||||
item10[] = {"general_cleanup",2,250,-75.000000,200.000000,25.000000,250.000000,0.000000,"general" \n "cleanup"};
|
item10[] = {"general_cleanup",2,250,-75.000000,200.000000,25.000000,250.000000,0.000000,"general" \n "cleanup"};
|
||||||
item11[] = {"",7,210,-304.000000,220.999985,-296.000000,229.000015,0.000000,""};
|
item11[] = {"",7,210,-341.500000,220.999985,-333.500000,229.000015,0.000000,""};
|
||||||
item12[] = {"",7,210,-304.000000,-154.000000,-296.000000,-146.000000,0.000000,""};
|
item12[] = {"",7,210,-341.500000,-154.000000,-333.500000,-146.000000,0.000000,""};
|
||||||
item13[] = {"",7,210,221.000000,-79.000000,229.000000,-71.000000,0.000000,""};
|
item13[] = {"initialized",4,218,-75.000000,-325.000000,25.000000,-275.000000,0.000000,"initialized"};
|
||||||
item14[] = {"",7,210,221.000000,146.000000,229.000000,154.000000,0.000000,""};
|
item14[] = {"prepare",2,250,-75.000000,-250.000000,25.000000,-200.000000,0.000000,"prepare"};
|
||||||
item15[] = {"initialized",4,218,-75.000000,-325.000000,25.000000,-275.000000,0.000000,"initialized"};
|
item15[] = {"update_objects",2,250,150.000000,50.000000,250.000000,100.000000,0.000000,"update objects"};
|
||||||
item16[] = {"prepare",2,250,-75.000000,-250.000000,25.000000,-200.000000,0.000000,"prepare"};
|
item16[] = {"time_obj_update",4,218,150.000000,-25.000000,250.000000,25.000000,1.000000,"time" \n "obj update"};
|
||||||
item17[] = {"update_objects",2,4346,100.000000,50.000000,200.000000,100.000000,0.000000,"update objects"};
|
item17[] = {"anti_hack",4,218,150.000000,-100.000000,250.000000,-50.000000,0.000000,"anti hack"};
|
||||||
item18[] = {"need_update",4,218,100.000000,-25.000000,200.000000,25.000000,1.000000,"need update"};
|
item18[] = {"check_for_hacker",2,4346,150.000000,-175.000000,250.000000,-125.000000,0.000000,"check for" \n "hackers"};
|
||||||
item19[] = {"",7,210,221.000000,-79.000000,229.000000,-71.000000,0.000000,""};
|
link0[] = {0,13};
|
||||||
link0[] = {0,15};
|
|
||||||
link1[] = {1,2};
|
link1[] = {1,2};
|
||||||
link2[] = {2,3};
|
link2[] = {2,3};
|
||||||
link3[] = {2,5};
|
link3[] = {2,5};
|
||||||
link4[] = {2,7};
|
link4[] = {2,7};
|
||||||
link5[] = {2,13};
|
link5[] = {2,16};
|
||||||
link6[] = {2,18};
|
link6[] = {2,17};
|
||||||
link7[] = {3,4};
|
link7[] = {3,4};
|
||||||
link8[] = {4,9};
|
link8[] = {4,9};
|
||||||
link9[] = {5,6};
|
link9[] = {5,6};
|
||||||
@@ -39,14 +38,13 @@ link14[] = {10,11};
|
|||||||
link15[] = {11,12};
|
link15[] = {11,12};
|
||||||
link16[] = {12,1};
|
link16[] = {12,1};
|
||||||
link17[] = {13,14};
|
link17[] = {13,14};
|
||||||
link18[] = {13,19};
|
link18[] = {14,1};
|
||||||
link19[] = {14,9};
|
link19[] = {15,9};
|
||||||
link20[] = {15,16};
|
link20[] = {16,15};
|
||||||
link21[] = {16,1};
|
link21[] = {17,18};
|
||||||
link22[] = {17,9};
|
link22[] = {18,1};
|
||||||
link23[] = {18,17};
|
globals[] = {25.000000,1,0,0,0,640,480,1,33,6316128,1,-380.893097,315.695129,343.738464,-460.417511,803,927,1};
|
||||||
globals[] = {25.000000,1,0,0,0,640,480,1,24,6316128,1,-396.580658,354.272186,463.204498,-386.553192,911,1031,1};
|
window[] = {2,-1,-1,-1,-1,1039,132,1246,132,3,820};
|
||||||
window[] = {2,-1,-1,-1,-1,1020,322,1651,78,3,929};
|
|
||||||
*//*%FSM</HEAD>*/
|
*//*%FSM</HEAD>*/
|
||||||
class FSM
|
class FSM
|
||||||
{
|
{
|
||||||
@@ -78,60 +76,58 @@ class FSM
|
|||||||
class waiting
|
class waiting
|
||||||
{
|
{
|
||||||
name = "waiting";
|
name = "waiting";
|
||||||
init = /*%FSM<STATEINIT""">*/"//diag_log ""CLEANUP: Waiting for next task"";" \n
|
init = /*%FSM<STATEINIT""">*/""/*%FSM</STATEINIT""">*/;
|
||||||
"_numDead = {local _x} count allDead;" \n
|
|
||||||
""/*%FSM</STATEINIT""">*/;
|
|
||||||
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
||||||
class Links
|
class Links
|
||||||
{
|
{
|
||||||
/*%FSM<LINK "too_many_dead">*/
|
/*%FSM<LINK "time_dead">*/
|
||||||
class too_many_dead
|
class time_dead
|
||||||
{
|
{
|
||||||
priority = 2.000000;
|
priority = 4.000000;
|
||||||
to="cleanup_dead";
|
to="cleanup_dead";
|
||||||
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
||||||
condition=/*%FSM<CONDITION""">*/"(_numDead > 300)"/*%FSM</CONDITION""">*/;
|
condition=/*%FSM<CONDITION""">*/"(time - _lastDeadCheck) > 600"/*%FSM</CONDITION""">*/;
|
||||||
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
action=/*%FSM<ACTION""">*/"_lastDeadCheck = time;"/*%FSM</ACTION""">*/;
|
||||||
};
|
};
|
||||||
/*%FSM</LINK>*/
|
/*%FSM</LINK>*/
|
||||||
/*%FSM<LINK "time_sync">*/
|
/*%FSM<LINK "time_sync">*/
|
||||||
class time_sync
|
class time_sync
|
||||||
{
|
{
|
||||||
priority = 1.000000;
|
priority = 3.000000;
|
||||||
to="sync_the_time";
|
to="sync_the_time";
|
||||||
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
||||||
condition=/*%FSM<CONDITION""">*/"((time - _lastUpdate) > 300)"/*%FSM</CONDITION""">*/;
|
condition=/*%FSM<CONDITION""">*/"(time - _lastTimeSync) > 300"/*%FSM</CONDITION""">*/;
|
||||||
action=/*%FSM<ACTION""">*/"_lastUpdate = time;"/*%FSM</ACTION""">*/;
|
action=/*%FSM<ACTION""">*/"_lastTimeSync = time;"/*%FSM</ACTION""">*/;
|
||||||
};
|
};
|
||||||
/*%FSM</LINK>*/
|
/*%FSM</LINK>*/
|
||||||
/*%FSM<LINK "need_update">*/
|
/*%FSM<LINK "time_items">*/
|
||||||
class need_update
|
class time_items
|
||||||
|
{
|
||||||
|
priority = 2.000000;
|
||||||
|
to="cleanup_items";
|
||||||
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
||||||
|
condition=/*%FSM<CONDITION""">*/"(time - _lastItemCheck) > 60"/*%FSM</CONDITION""">*/;
|
||||||
|
action=/*%FSM<ACTION""">*/"_lastItemCheck = time;"/*%FSM</ACTION""">*/;
|
||||||
|
};
|
||||||
|
/*%FSM</LINK>*/
|
||||||
|
/*%FSM<LINK "time_obj_update">*/
|
||||||
|
class time_obj_update
|
||||||
{
|
{
|
||||||
priority = 1.000000;
|
priority = 1.000000;
|
||||||
to="update_objects";
|
to="update_objects";
|
||||||
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
||||||
condition=/*%FSM<CONDITION""">*/"( (count needUpdate_objects) > 0 && (time-_lastNeedUpdate>10) )"/*%FSM</CONDITION""">*/;
|
condition=/*%FSM<CONDITION""">*/"(time-_lastObjectUpdateCheck) > 10"/*%FSM</CONDITION""">*/;
|
||||||
action=/*%FSM<ACTION""">*/"_lastNeedUpdate = time;"/*%FSM</ACTION""">*/;
|
action=/*%FSM<ACTION""">*/"_lastObjectUpdateCheck = time;"/*%FSM</ACTION""">*/;
|
||||||
};
|
};
|
||||||
/*%FSM</LINK>*/
|
/*%FSM</LINK>*/
|
||||||
/*%FSM<LINK "true">*/
|
/*%FSM<LINK "anti_hack">*/
|
||||||
class true
|
class anti_hack
|
||||||
{
|
{
|
||||||
priority = 0.000000;
|
priority = 0.000000;
|
||||||
to="general_cleanup";
|
to="check_for_hacker";
|
||||||
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
||||||
condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
|
condition=/*%FSM<CONDITION""">*/"(time-_timeHackCheck) > 1"/*%FSM</CONDITION""">*/;
|
||||||
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
action=/*%FSM<ACTION""">*/"_timeHackCheck = time;"/*%FSM</ACTION""">*/;
|
||||||
};
|
|
||||||
/*%FSM</LINK>*/
|
|
||||||
/*%FSM<LINK "too_many_objects">*/
|
|
||||||
class too_many_objects
|
|
||||||
{
|
|
||||||
priority = 0.000000;
|
|
||||||
to="cleanup_objects";
|
|
||||||
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
||||||
condition=/*%FSM<CONDITION""">*/"((time - _timeNem) > 60)"/*%FSM</CONDITION""">*/;
|
|
||||||
action=/*%FSM<ACTION""">*/"_timeNem = time;"/*%FSM</ACTION""">*/;
|
|
||||||
};
|
};
|
||||||
/*%FSM</LINK>*/
|
/*%FSM</LINK>*/
|
||||||
};
|
};
|
||||||
@@ -141,80 +137,85 @@ class FSM
|
|||||||
class cleanup_dead
|
class cleanup_dead
|
||||||
{
|
{
|
||||||
name = "cleanup_dead";
|
name = "cleanup_dead";
|
||||||
init = /*%FSM<STATEINIT""">*/"diag_log (""CLEANUP: TOO MANY DEAD BODIES"");" \n
|
init = /*%FSM<STATEINIT""">*/"_numDead = {local _x} count allDead;" \n
|
||||||
"" \n
|
"" \n
|
||||||
"diag_log (""CLEANUP: PERFORMING BODY CLEANUP ON "" + str(_numDead) + "" BODIES"");" \n
|
"if (_numDead > 300) then { " \n
|
||||||
"" \n
|
"" \n
|
||||||
"_delQtyZ = 0;" \n
|
" diag_log (""CLEANUP: TOO MANY DEAD BODIES"");" \n
|
||||||
"_numZombie = {_x isKindOf ""zZombie_Base""} count allDead;" \n
|
" diag_log (""CLEANUP: PERFORMING BODY CLEANUP ON "" + str(_numDead) + "" BODIES"");" \n
|
||||||
"{" \n
|
"" \n
|
||||||
" if (local _x) then {" \n
|
" _delQtyZ = 0; " \n
|
||||||
" if (_x isKindOf ""zZombie_Base"") then {" \n
|
" _numZombie = {_x isKindOf ""zZombie_Base""} count allDead;" \n
|
||||||
" deleteVehicle _x;" \n
|
" {" \n
|
||||||
" _delQtyZ = _delQtyZ + 1;" \n
|
" if (local _x) then {" \n
|
||||||
" } else {" \n
|
" if (_x isKindOf ""zZombie_Base"") then {" \n
|
||||||
" _exists = _x in _deadBodies;" \n
|
" deleteVehicle _x;" \n
|
||||||
" if(!_exists) then {" \n
|
" _delQtyZ = _delQtyZ + 1;" \n
|
||||||
" _deadBodies set [count _deadBodies,_x];" \n
|
" } else {" \n
|
||||||
|
" _exists = _x in _deadBodies;" \n
|
||||||
|
" if(!_exists) then {" \n
|
||||||
|
" _deadBodies set [count _deadBodies,_x];" \n
|
||||||
|
" };" \n
|
||||||
" };" \n
|
" };" \n
|
||||||
" };" \n
|
" };" \n
|
||||||
" };" \n
|
" } forEach allDead;" \n
|
||||||
"} forEach allDead;" \n
|
|
||||||
"" \n
|
"" \n
|
||||||
"//Cleanup players" \n
|
" //Cleanup players" \n
|
||||||
"_body = objNull;" \n
|
" _body = objNull;" \n
|
||||||
"_delQtyP = 0;" \n
|
" _delQtyP = 0;" \n
|
||||||
"_delDo = _numDead - _numZombie;" \n
|
" _delDo = _numDead - _numZombie;" \n
|
||||||
"_delDo = ((_delDo min (count _deadBodies)) -1);" \n
|
" _delDo = ((_delDo min (count _deadBodies)) -1);" \n
|
||||||
"if (_delDo<1) then {_delDo=1};" \n
|
" if (_delDo<1) then {_delDo=1};" \n
|
||||||
"for ""_i"" from 0 to _delDo do {" \n
|
" for ""_i"" from 0 to _delDo do {" \n
|
||||||
" _body = _deadBodies select _i;" \n
|
" _body = _deadBodies select _i;" \n
|
||||||
" if(!isNil ""_body"") then {" \n
|
" if(!isNil ""_body"") then {" \n
|
||||||
" _pos = getPosATL _body;" \n
|
" _pos = getPosATL _body;" \n
|
||||||
" _sfx = nearestObject [_pos,""Sound_Flies""];" \n
|
" _sfx = nearestObject [_pos,""Sound_Flies""];" \n
|
||||||
" if (!(isNull _sfx)) then {" \n
|
" if (!(isNull _sfx)) then {" \n
|
||||||
" deleteVehicle _sfx;" \n
|
" deleteVehicle _sfx;" \n
|
||||||
|
" };" \n
|
||||||
|
" deleteVehicle _body;" \n
|
||||||
|
" _delQtyP = _delQtyP + 1;" \n
|
||||||
" };" \n
|
" };" \n
|
||||||
" deleteVehicle _body;" \n
|
" _deadBodies set [_i,""DEL""];" \n
|
||||||
" _delQtyP = _delQtyP + 1;" \n
|
|
||||||
" };" \n
|
|
||||||
" _deadBodies set [_i,""DEL""];" \n
|
|
||||||
"" \n
|
"" \n
|
||||||
"//Let's move this into the body removal sequence so uncontrolled flies are removed only if corpses are cleaned" \n
|
" //Let's move this into the body removal sequence so uncontrolled flies are removed only if corpses are cleaned" \n
|
||||||
"//Check Flies" \n
|
" //Check Flies" \n
|
||||||
"_isOK=-1;" \n
|
" _isOK=-1;" \n
|
||||||
"_dwUSOFC=0;" \n
|
" _dwUSOFC=0;" \n
|
||||||
"{" \n
|
" {" \n
|
||||||
" //_isOk = {!alive _x} count (nearestObjects [_x, [""CAManBase""], 2]);" \n
|
" //_isOk = {!alive _x} count (nearestObjects [_x, [""CAManBase""], 2]);" \n
|
||||||
" _isOk = {!alive _x} count (_x nearEntities [[""CAManBase""], 2]);" \n
|
" _isOk = {!alive _x} count (_x nearEntities [[""CAManBase""], 2]);" \n
|
||||||
" if (_isOk>-1) then {" \n
|
" if (_isOk>-1) then {" \n
|
||||||
" diag_log (""DW_DEBUG _isOK: "" + str(_isOK) );" \n
|
" diag_log (""DW_DEBUG _isOK: "" + str(_isOK) );" \n
|
||||||
" };" \n
|
" };" \n
|
||||||
" if ((_isOk>-1) AND (_isOK<1)) then {" \n
|
" if ((_isOk>-1) AND (_isOK<1)) then {" \n
|
||||||
" //diag_log (""CLEANUP: DELETING A SOUND OF FLIES"");" \n
|
" //diag_log (""CLEANUP: DELETING A SOUND OF FLIES"");" \n
|
||||||
"_dwUSOFC=_dwUSOFC+1;" \n
|
" _dwUSOFC=_dwUSOFC+1;" \n
|
||||||
" deleteVehicle _x;" \n
|
" deleteVehicle _x;" \n
|
||||||
" diag_log (""CLEANUP: DELETED AN UNCONTROLLED SOUND OF FLIES:"" + str(_dwUSOFC) );" \n
|
" diag_log (""CLEANUP: DELETED AN UNCONTROLLED SOUND OF FLIES:"" + str(_dwUSOFC) );" \n
|
||||||
" };" \n
|
" };" \n
|
||||||
"} forEach allMissionObjects ""Sound_Flies"";" \n
|
" } forEach allMissionObjects ""Sound_Flies"";" \n
|
||||||
"" \n
|
"" \n
|
||||||
"" \n
|
"" \n
|
||||||
"//Let's move this into the body removal sequence so uncontrolled fireplaces are removed only if corpses are cleaned" \n
|
" //Let's move this into the body removal sequence so uncontrolled fireplaces are removed only if corpses are cleaned" \n
|
||||||
"//clean fireplaces" \n
|
" //clean fireplaces" \n
|
||||||
"_dwUFPC=0;" \n
|
" _dwUFPC=0;" \n
|
||||||
"{" \n
|
" {" \n
|
||||||
" if (local _x) then {" \n
|
" if (local _x) then {" \n
|
||||||
" //diag_log (""CLEANUP: DELETING A UNCONTROLLED FIREPLACE"");" \n
|
" //diag_log (""CLEANUP: DELETING A UNCONTROLLED FIREPLACE"");" \n
|
||||||
" deleteVehicle _x;" \n
|
" deleteVehicle _x;" \n
|
||||||
"_dwUFPC=_dwUFPC+1;" \n
|
" _dwUFPC=_dwUFPC+1;" \n
|
||||||
" diag_log (""CLEANUP: DELETED AN UNCONTROLLED FIREPLACE:"" + str(_dwUFPC) );" \n
|
" diag_log (""CLEANUP: DELETED AN UNCONTROLLED FIREPLACE:"" + str(_dwUFPC) );" \n
|
||||||
|
" };" \n
|
||||||
|
" } forEach allMissionObjects ""Land_Fire_DZ"";" \n
|
||||||
|
"" \n
|
||||||
" };" \n
|
" };" \n
|
||||||
"} forEach allMissionObjects ""Land_Fire_DZ"";" \n
|
" _deadBodies = _deadBodies - [""DEL""];" \n
|
||||||
|
"" \n
|
||||||
|
" diag_log (""CLEANUP: DELETED "" + str(_delQtyP) + "" PLAYER BODIES AND "" + str(_delQtyZ) + "" BODIES"");" \n
|
||||||
"" \n
|
"" \n
|
||||||
"};" \n
|
"};" \n
|
||||||
"_deadBodies = _deadBodies - [""DEL""];" \n
|
|
||||||
"" \n
|
|
||||||
"diag_log (""CLEANUP: DELETED "" + str(_delQtyP) + "" PLAYER BODIES AND "" + str(_delQtyZ) + "" BODIES"");" \n
|
|
||||||
""/*%FSM</STATEINIT""">*/;
|
""/*%FSM</STATEINIT""">*/;
|
||||||
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
||||||
class Links
|
class Links
|
||||||
@@ -232,25 +233,27 @@ class FSM
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
/*%FSM</STATE>*/
|
/*%FSM</STATE>*/
|
||||||
/*%FSM<STATE "cleanup_objects">*/
|
/*%FSM<STATE "cleanup_items">*/
|
||||||
class cleanup_objects
|
class cleanup_items
|
||||||
{
|
{
|
||||||
name = "cleanup_objects";
|
name = "cleanup_items";
|
||||||
init = /*%FSM<STATEINIT""">*/"_missionObjs = allMissionObjects ""WeaponHolder"";" \n
|
init = /*%FSM<STATEINIT""">*/"_missionObjs = allMissionObjects ""WeaponHolder"";" \n
|
||||||
"_qty = count _missionObjs;" \n
|
"_qty = count _missionObjs;" \n
|
||||||
"" \n
|
|
||||||
"//diag_log (""CLEANUP: PERFORMING ITEM CLEANUP: TOTAL "" + str(_qty) + "" LOOT BAGS"");" \n
|
"//diag_log (""CLEANUP: PERFORMING ITEM CLEANUP: TOTAL "" + str(_qty) + "" LOOT BAGS"");" \n
|
||||||
"_delQty = 0;" \n
|
"_delQty = 0;" \n
|
||||||
|
"_qtyLoc = 0;" \n
|
||||||
"{" \n
|
"{" \n
|
||||||
" if (local _x) then {" \n
|
" if (local _x) then {" \n
|
||||||
|
" _qtyLoc = _qtyLoc + 1; // debugging" \n
|
||||||
" _keep = _x getVariable [""permaLoot"",false];" \n
|
" _keep = _x getVariable [""permaLoot"",false];" \n
|
||||||
" _nearby = {isPlayer _x} count (_x nearEntities [[""CAManBase""], 100]);" \n
|
" _nearby = {isPlayer _x} count (_x nearEntities [[""CAManBase""], 100]);" \n
|
||||||
" if ( (!_keep) && (_nearby==0) ) then {" \n
|
" if ( (!_keep) && (_nearby==0) ) then {" \n
|
||||||
" deleteVehicle _x;" \n
|
" deleteVehicle _x;" \n
|
||||||
" _delQty = _delQty + 1;" \n
|
" _delQty = _delQty + 1;" \n
|
||||||
" };" \n
|
" };" \n
|
||||||
" };" \n
|
" };" \n
|
||||||
"} forEach _missionObjs;" \n
|
"} forEach _missionObjs;" \n
|
||||||
|
"" \n
|
||||||
"if (_delQty > 0) then {" \n
|
"if (_delQty > 0) then {" \n
|
||||||
" diag_log (""CLEANUP: DELETED "" + str(_delQty) + "" LOOT BAGS"");" \n
|
" diag_log (""CLEANUP: DELETED "" + str(_delQty) + "" LOOT BAGS"");" \n
|
||||||
"};" \n
|
"};" \n
|
||||||
@@ -287,8 +290,8 @@ class FSM
|
|||||||
" setDate _date;" \n
|
" setDate _date;" \n
|
||||||
" dayzSetDate = _date;" \n
|
" dayzSetDate = _date;" \n
|
||||||
" publicVariable ""dayzSetDate"";" \n
|
" publicVariable ""dayzSetDate"";" \n
|
||||||
" diag_log (""TIME SYNC: Local Time set to "" + str(_date));" \n
|
" diag_log (""TIME SYNC: Local Time set to "" + str(_date));" \n
|
||||||
"};" \n
|
" };" \n
|
||||||
"};" \n
|
"};" \n
|
||||||
""/*%FSM</STATEINIT""">*/;
|
""/*%FSM</STATEINIT""">*/;
|
||||||
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
||||||
@@ -330,36 +333,8 @@ class FSM
|
|||||||
" } forEach allMissionObjects ""ReammoBox"";" \n
|
" } forEach allMissionObjects ""ReammoBox"";" \n
|
||||||
"*/" \n
|
"*/" \n
|
||||||
"" \n
|
"" \n
|
||||||
"//Check for hackers" \n
|
"dayz_serverObjectMonitor = _safety;" \n
|
||||||
" {" \n
|
""/*%FSM</STATEINIT""">*/;
|
||||||
" if(vehicle _x != _x && !(vehicle _x in _safety) && (typeOf vehicle _x) != ""ParachuteWest"") then {" \n
|
|
||||||
" diag_log (""CLEANUP: KILLING A HACKER "" + (name _x) + "" "" + str(_x) + "" IN "" + (typeOf vehicle _x));" \n
|
|
||||||
" (vehicle _x) setDamage 1;" \n
|
|
||||||
" _x setDamage 1;" \n
|
|
||||||
" };" \n
|
|
||||||
" } forEach allUnits;" \n
|
|
||||||
"" \n
|
|
||||||
"/*" \n
|
|
||||||
"//Let's move this into the body removal sequence so uncontrolled flies are removed only if corpses are cleaned" \n
|
|
||||||
"//Check Flies" \n
|
|
||||||
"_isOK=-1;" \n
|
|
||||||
"_dwUSOFC=0;" \n
|
|
||||||
"{" \n
|
|
||||||
" //_isOk = {!alive _x} count (nearestObjects [_x, [""CAManBase""], 2]);" \n
|
|
||||||
" _isOk = {!alive _x} count (_x nearEntities [[""CAManBase""], 2]);" \n
|
|
||||||
" if (_isOk>-1) then {" \n
|
|
||||||
" diag_log (""DW_DEBUG _isOK: "" + str(_isOK) );" \n
|
|
||||||
" };" \n
|
|
||||||
" if ((_isOk>-1) AND (isOK<1)) then {" \n
|
|
||||||
" //diag_log (""CLEANUP: DELETING A SOUND OF FLIES"");" \n
|
|
||||||
"_dwUSOFC=_dwUSOFC+1;" \n
|
|
||||||
" deleteVehicle _x;" \n
|
|
||||||
" diag_log (""CLEANUP: DELETED AN UNCONTROLLED SOUND OF FLIES:"" + str(_dwUSOFC) );" \n
|
|
||||||
" };" \n
|
|
||||||
"} forEach allMissionObjects ""Sound_Flies"";" \n
|
|
||||||
"*/" \n
|
|
||||||
"" \n
|
|
||||||
"dayz_serverObjectMonitor = _safety;"/*%FSM</STATEINIT""">*/;
|
|
||||||
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
||||||
class Links
|
class Links
|
||||||
{
|
{
|
||||||
@@ -384,10 +359,12 @@ class FSM
|
|||||||
"" \n
|
"" \n
|
||||||
"_safety = dayz_serverObjectMonitor;" \n
|
"_safety = dayz_serverObjectMonitor;" \n
|
||||||
"" \n
|
"" \n
|
||||||
"_lastUpdate = time;" \n
|
"_lastTimeSync = time;" \n
|
||||||
"_timeNem = time;" \n
|
"_lastDeadCheck = time;" \n
|
||||||
|
"_lastItemCheck = time;" \n
|
||||||
|
"_lastObjectUpdateCheck = time;" \n
|
||||||
|
"_timeHackCheck = time;" \n
|
||||||
"_deadBodies = [];" \n
|
"_deadBodies = [];" \n
|
||||||
"_lastNeedUpdate = time;" \n
|
|
||||||
"_maxBodies = 15;" \n
|
"_maxBodies = 15;" \n
|
||||||
""/*%FSM</STATEINIT""">*/;
|
""/*%FSM</STATEINIT""">*/;
|
||||||
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
||||||
@@ -410,13 +387,16 @@ class FSM
|
|||||||
class update_objects
|
class update_objects
|
||||||
{
|
{
|
||||||
name = "update_objects";
|
name = "update_objects";
|
||||||
init = /*%FSM<STATEINIT""">*/"diag_log format[""DEBUG: needUpdate_objects=%1"",needUpdate_objects];" \n
|
init = /*%FSM<STATEINIT""">*/"if ((count needUpdate_objects) > 0) then {" \n
|
||||||
"{" \n
|
|
||||||
"// _x setVariable [""needUpdate"",false,true];" \n
|
|
||||||
" needUpdate_objects = needUpdate_objects - [_x];" \n
|
|
||||||
" [_x,""all""] spawn server_updateObject;" \n
|
|
||||||
"" \n
|
"" \n
|
||||||
"} forEach needUpdate_objects;" \n
|
" diag_log format[""DEBUG: needUpdate_objects=%1"",needUpdate_objects];" \n
|
||||||
|
"" \n
|
||||||
|
" {" \n
|
||||||
|
" //_x setVariable [""needUpdate"",false,true];" \n
|
||||||
|
" needUpdate_objects = needUpdate_objects - [_x];" \n
|
||||||
|
" [_x,""all""] call server_updateObject; //should be call!!!" \n
|
||||||
|
" } forEach needUpdate_objects;" \n
|
||||||
|
"};" \n
|
||||||
""/*%FSM</STATEINIT""">*/;
|
""/*%FSM</STATEINIT""">*/;
|
||||||
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
||||||
class Links
|
class Links
|
||||||
@@ -434,6 +414,37 @@ class FSM
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
/*%FSM</STATE>*/
|
/*%FSM</STATE>*/
|
||||||
|
/*%FSM<STATE "check_for_hacker">*/
|
||||||
|
class check_for_hacker
|
||||||
|
{
|
||||||
|
name = "check_for_hacker";
|
||||||
|
init = /*%FSM<STATEINIT""">*/"//Check for hackers" \n
|
||||||
|
" {" \n
|
||||||
|
" if(vehicle _x != _x) then {" \n
|
||||||
|
" if (!(vehicle _x in _safety) && ((typeOf vehicle _x) != ""ParachuteWest"")) then {" \n
|
||||||
|
" diag_log (""CLEANUP: KILLING A HACKER "" + (name _x) + "" "" + str(_x) + "" IN "" + (typeOf vehicle _x));" \n
|
||||||
|
" (vehicle _x) setDamage 1;" \n
|
||||||
|
" _x setDamage 1;" \n
|
||||||
|
" };" \n
|
||||||
|
" };" \n
|
||||||
|
" } forEach allUnits;" \n
|
||||||
|
""/*%FSM</STATEINIT""">*/;
|
||||||
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
||||||
|
class Links
|
||||||
|
{
|
||||||
|
/*%FSM<LINK "true">*/
|
||||||
|
class true
|
||||||
|
{
|
||||||
|
priority = 0.000000;
|
||||||
|
to="waiting";
|
||||||
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
||||||
|
condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
|
||||||
|
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
||||||
|
};
|
||||||
|
/*%FSM</LINK>*/
|
||||||
|
};
|
||||||
|
};
|
||||||
|
/*%FSM</STATE>*/
|
||||||
};
|
};
|
||||||
initState="init";
|
initState="init";
|
||||||
finalStates[] =
|
finalStates[] =
|
||||||
|
|||||||
@@ -144,7 +144,6 @@ diag_log "HIVE: Starting";
|
|||||||
_countr = _countr + 1;
|
_countr = _countr + 1;
|
||||||
} forEach _objWpnTypes;
|
} forEach _objWpnTypes;
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
if (_object isKindOf "AllVehicles") then {
|
if (_object isKindOf "AllVehicles") then {
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user