mirror of
https://github.com/EpochModTeam/DayZ-Epoch.git
synced 2025-12-14 12:12:34 +03:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
@@ -4,15 +4,16 @@
|
||||
* [NEW] Gear is only accessible in vehicles with "G" key due to removal of Arma Map Menus.@Skaronator
|
||||
|
||||
* [ADDED] Craftable Gunrack with 6 x PartWoodLumber makes GunRack_DZ that holds 20 weapons. @dayz10k
|
||||
* [ADDED] Craftable Base Fire Barrel FireBarrel_DZ @dayz10k
|
||||
* [ADDED] Craftable Base Fire Barrel FireBarrel_DZ with an emtpy Fuel Barrel, Full Jerry Can, and 4x WoodPile. @dayz10k
|
||||
* [ADDED] Vehicle upgrade system with 4 stages: 1=performance, 2=armor, 3=cargo, and 4=fuel. To upgrade a vehicle you must first find the lvl 1 performance manual and two engine parts then right click next to your vehicle.
|
||||
* [ADDED] Added Player Names that killed Objects to diag_log @Torndeco
|
||||
* [ADDED] Added Player Worldspace location to Connect/Disconnect/Combat Log RPT messages. @dayz10k
|
||||
* [ADDED] dayz_sellDistance is now splitted in "dayz_sellDistance_boat", "dayz_sellDistance_vehicle" and "dayz_sellDistance_air" - @Skaronator
|
||||
* [ADDED] Surrender (options > controls > "Surrender") action now drops your weapons and places your hands on your head. While surrendered other players can access your gear.
|
||||
* [ADDED] Remove nearest tanktrap with right click option on toolbox @dayz10k
|
||||
* [ADDED] Faster in string function by Killzone Kid http://killzonekid.com/arma-scripting-tutorials-how-to-find-a-string-within-a-string/
|
||||
* [ADDED] Halo jump option from a helicopter when above 400m. @zabn
|
||||
* [ADDED] Localization support added. @zabn
|
||||
* [ADDED] Localization support added. @zabn @dayz10k
|
||||
* [ADDED] Added dutch translations. @JoSchaap
|
||||
* [ADDED] Added Russian translations. @VeryBigBro
|
||||
* [ADDED] Added French translations. @th4z
|
||||
@@ -23,7 +24,6 @@
|
||||
* [ADDED] Destroy tent option when you have a full jerry can and matches. @vbawol
|
||||
* [ADDED] Tag friendly system now stores your 5 most recent friends with your life. Building on another friends plot and you are already tagged you still need to look at the owner once to complete the handshake so that you can start building. Server admins can disable this with DZE_FriendlySaving = false; in the init.sqf @zabn @vbawol
|
||||
* [ADDED] Player can now get crushed if they get out to close to a wall or building. Successful wall glitches now result in death ONLY if your get out position intersects a building. @vbawol
|
||||
* [ADDED] Can now build Fire Barrels (Land_Fire_barrel) with an emtpy Fuel Barrel, Full Jerry Can, and 4x WoodPile. @dayz10k
|
||||
* [ADDED] Can now maintain lightpoles with a lightbub. @vbawol @dayz10k
|
||||
* [ADDED] Directly Disconnect (back to lobby) if you press abort > yes - @Skaronator
|
||||
|
||||
|
||||
16
SQF/dayz_code/compile/local_roadDebris.sqf
Normal file
16
SQF/dayz_code/compile/local_roadDebris.sqf
Normal file
@@ -0,0 +1,16 @@
|
||||
private ["_spawnveh","_position","_direction","_veh"];
|
||||
{
|
||||
_spawnveh = _x select 0;
|
||||
_position = _x select 1;
|
||||
_direction = _x select 2;
|
||||
|
||||
//diag_log("DEBUG: Spawning a crashed " + _spawnveh + " with " + _spawnloot + " at " + str(_position));
|
||||
|
||||
_veh = _spawnveh createVehicleLocal _position;
|
||||
_veh enableSimulation false;
|
||||
|
||||
// Randomize placement a bit
|
||||
_veh setDir _direction;
|
||||
_veh setpos _position;
|
||||
|
||||
} forEach _this;
|
||||
@@ -64,6 +64,8 @@ if (!isDedicated) then {
|
||||
object_roadFlare = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_roadFlare.sqf";
|
||||
object_setpitchbank = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_setpitchbank.sqf";
|
||||
object_monitorGear = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_monitorGear.sqf";
|
||||
|
||||
local_roadDebris = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\local_roadDebris.sqf";
|
||||
|
||||
//Zombies
|
||||
zombie_findTargetAgent = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\zombie_findTargetAgent.sqf";
|
||||
@@ -123,6 +125,55 @@ if (!isDedicated) then {
|
||||
onPreloadStarted "dayz_preloadFinished = false;";
|
||||
onPreloadFinished "dayz_preloadFinished = true;";
|
||||
|
||||
|
||||
//This is still needed but the fsm should terminate if any errors pop up.
|
||||
[] spawn {
|
||||
private["_timeOut","_display","_control1","_control2"];
|
||||
disableSerialization;
|
||||
_timeOut = 0;
|
||||
dayz_loadScreenMsg = "";
|
||||
diag_log "DEBUG: loadscreen guard started.";
|
||||
_display = uiNameSpace getVariable "BIS_loadingScreen";
|
||||
if (!isNil "_display") then {
|
||||
_control1 = _display displayctrl 8400;
|
||||
_control2 = _display displayctrl 102;
|
||||
};
|
||||
|
||||
waitUntil {!dayz_DisplayGenderSelect};
|
||||
|
||||
// 120 sec timeout (12000 * 0.01)
|
||||
while { _timeOut < 12000 } do {
|
||||
if (dayz_clientPreload && dayz_authed) exitWith { diag_log "PLOGIN: Login loop completed!"; };
|
||||
if (!isNil "_display") then {
|
||||
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.01)];
|
||||
};
|
||||
|
||||
_timeOut = _timeOut + 1;
|
||||
|
||||
if (_timeOut >= 12000) then {
|
||||
1 cutText [localize "str_player_login_timeout", "PLAIN DOWN"];
|
||||
sleep 10;
|
||||
endLoadingScreen;
|
||||
endMission "END1";
|
||||
};
|
||||
|
||||
sleep 0.01;
|
||||
};
|
||||
};
|
||||
|
||||
// TODO: need move it in player_monitor.fsm
|
||||
// allow player disconnect from server, if loading hang, kicked by BE etc.
|
||||
[] spawn {
|
||||
|
||||
@@ -66,6 +66,7 @@ if (!isDedicated) then {
|
||||
"PVDZE_obj_Fire" addPublicVariableEventHandler {nul=(_this select 1) spawn BIS_Effects_Burn};
|
||||
"PVDZE_plr_FriendRQ" addPublicVariableEventHandler {cutText[(_this select 1),"PLAIN DOWN"];};
|
||||
|
||||
"PVDZE_obj_Debris" addPublicVariableEventHandler {(_this select 1) call local_roadDebris};
|
||||
|
||||
"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"};
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/*%FSM<COMPILE "C:\Program Files (x86)\Bohemia Interactive\Tools\FSM Editor Personal Edition\scriptedFSM.cfg, DayZ Player Monitor">*/
|
||||
/*%FSM<COMPILE "F:\Program Files (x86)\Bohemia Interactive\Tools\FSM Editor Personal Edition\scriptedFSM.cfg, DayZ Player Monitor">*/
|
||||
/*%FSM<HEAD>*/
|
||||
/*
|
||||
item0[] = {"init",0,250,-75.000000,-350.000000,25.000000,-300.000000,0.000000,"init"};
|
||||
@@ -152,8 +152,8 @@ link77[] = {66,59};
|
||||
link78[] = {67,15};
|
||||
link79[] = {68,69};
|
||||
link80[] = {69,20};
|
||||
globals[] = {25.000000,1,0,0,0,640,480,1,131,6316128,1,-592.955444,422.624878,1469.107178,428.394379,888,911,1};
|
||||
window[] = {2,-1,-1,-1,-1,980,200,1572,200,3,906};
|
||||
globals[] = {25.000000,1,0,0,0,640,480,1,131,6316128,1,-592.955444,422.624878,1027.017090,306.503998,888,630,1};
|
||||
window[] = {2,-1,-1,-1,-1,858,78,1370,78,3,906};
|
||||
*//*%FSM</HEAD>*/
|
||||
class FSM
|
||||
{
|
||||
@@ -472,9 +472,7 @@ class FSM
|
||||
class Request
|
||||
{
|
||||
name = "Request";
|
||||
init = /*%FSM<STATEINIT""">*/"//startLoadingScreen ["""",""DayZ_loadingScreen""];" \n
|
||||
"" \n
|
||||
"diag_log (""PLOGIN: Requesting Authentication... ("" + _playerUID + "")"");" \n
|
||||
init = /*%FSM<STATEINIT""">*/"diag_log (""PLOGIN: Requesting Authentication... ("" + _playerUID + "")"");" \n
|
||||
"dayz_loadScreenMsg = (localize ""str_player_15"");" \n
|
||||
"" \n
|
||||
"progressLoadingScreen 0.7;" \n
|
||||
@@ -762,17 +760,15 @@ class FSM
|
||||
"" \n
|
||||
"_worldspace = dayzPlayerLogin2 select 0;" \n
|
||||
"_state = dayzPlayerLogin2 select 1;" \n
|
||||
"PVDZE_plr_SetWeather = dayzPlayerLogin2 select 2;" \n
|
||||
"PVDZE_plr_SetDate = dayzPlayerLogin2 select 3;" \n
|
||||
"DZE_FreshSpawn = dayzPlayerLogin2 select 4;" \n
|
||||
"DZE_FreshSpawn = dayzPlayerLogin2 select 2;" \n
|
||||
"" \n
|
||||
"_setDir = _worldspace select 0;" \n
|
||||
"_setPos = _worldspace select 1;" \n
|
||||
"" \n
|
||||
"if(dayz_paraSpawn and !(player isKindOf ""PZombie_VB"") and DZE_FreshSpawn) then {" \n
|
||||
" player setPosATL [(_setPos select 0),(_setPos select 1),1000];" \n
|
||||
" player setDir _setDir;" \n
|
||||
" [player,1000] spawn BIS_fnc_halo;" \n
|
||||
" player setPosATL [(_setPos select 0),(_setPos select 1),2000];" \n
|
||||
" [player,2000] spawn BIS_fnc_halo;" \n
|
||||
"} else {" \n
|
||||
"" \n
|
||||
" // make protective box" \n
|
||||
@@ -942,10 +938,7 @@ class FSM
|
||||
class Position
|
||||
{
|
||||
name = "Position";
|
||||
init = /*%FSM<STATEINIT""">*/"endLoadingScreen;" \n
|
||||
"startLoadingScreen ["""",""DayZ_loadingScreen""];" \n
|
||||
"" \n
|
||||
"//Location" \n
|
||||
init = /*%FSM<STATEINIT""">*/"//Location" \n
|
||||
"_myLoc = getPosATL player;" \n
|
||||
"" \n
|
||||
"dayz_loadScreenMsg = ""Setup Completed, please wait..."";" \n
|
||||
@@ -1186,23 +1179,7 @@ class FSM
|
||||
class Initialize
|
||||
{
|
||||
name = "Initialize";
|
||||
init = /*%FSM<STATEINIT""">*/"#define ods(arg1) ""armaperflib"" callextension arg1" \n
|
||||
"" \n
|
||||
"if (!isNil ""PVDZE_plr_SetDate"") then {" \n
|
||||
" setDate PVDZE_plr_SetDate;" \n
|
||||
"};" \n
|
||||
"" \n
|
||||
"if (!isNil ""PVDZE_plr_SetDate"") then {" \n
|
||||
" 0 setOvercast (zeroCurrentWeather select 0);" \n
|
||||
" 0 setFog (zeroCurrentWeather select 1);" \n
|
||||
" setWind [((zeroCurrentWeather select 2) select 0),((zeroCurrentWeather select 2) select 1),true];" \n
|
||||
" 0 setRain (zeroCurrentWeather select 3);" \n
|
||||
"};" \n
|
||||
"" \n
|
||||
"" \n
|
||||
"diag_log (""Local Time: "" +str(PVDZE_plr_SetDate));" \n
|
||||
"" \n
|
||||
"//Medical" \n
|
||||
init = /*%FSM<STATEINIT""">*/"//Medical" \n
|
||||
"dayz_medicalH = [] execVM ""\z\addons\dayz_code\medical\init_medical.sqf""; //Medical Monitor Script (client only)" \n
|
||||
"[player] call fnc_usec_damageHandle;" \n
|
||||
"if (r_player_unconscious) then {" \n
|
||||
|
||||
@@ -5613,6 +5613,15 @@
|
||||
<Dutch>Kg</Dutch>
|
||||
<French>Kg</French>
|
||||
<Czech>Kg</Czech>
|
||||
</Key>
|
||||
<Key ID="str_player_login_timeout">
|
||||
<English>Login timed out!\nDisconnect and try again!</English>
|
||||
<German>Login timed out!\nDisconnect and try again!</German>
|
||||
<Russian>Время ожидания входа истекло!\nОтключитесь и попробуйте снова!</Russian>
|
||||
<Spanish>Tiempo de inicio de sesión excedido.\nDesconectate y prueba de nuevo.</Spanish>
|
||||
<Dutch>Login timed out!\nDisconnect and try again!</Dutch>
|
||||
<French>Délai de connexion dépassé\nVeuillez vous déconnecter et essayer à nouveau.</French>
|
||||
<Czech>Dovolený čas pro přihlášení vypršel.\nOdpojte se a zkuste to znovu!</Czech>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
|
||||
@@ -30,7 +30,7 @@ if (!isNull _playerObj) then {
|
||||
_playerObj setVariable["NORRN_unconscious",true, true];
|
||||
_playerObj setVariable["unconsciousTime",300,true];
|
||||
|
||||
diag_log format["COMBAT LOGGED: %1 (%2)", _playerName,_timeout];
|
||||
diag_log format["COMBAT LOGGED: %1 (%2) at location %3", _playerName,_timeout,(getPosATL _playerObj)];
|
||||
//diag_log format["SET UNCONCIOUSNESS: %1", _playerName];
|
||||
|
||||
// Message whole server when player combat logs
|
||||
@@ -38,7 +38,7 @@ if (!isNull _playerObj) then {
|
||||
[nil,nil,"per",rTITLETEXT,_message,"PLAIN DOWN"] call RE;
|
||||
};
|
||||
|
||||
diag_log format["DISCONNECT: %1 (%2) Object: %3, _characterID: %4", _playerName,_playerUID,_playerObj,_characterID];
|
||||
diag_log format["DISCONNECT: %1 (%2) Object: %3, _characterID: %4 at loc %5", _playerName,_playerUID,_playerObj,_characterID, (getPosATL _playerObj)];
|
||||
|
||||
_id = [_playerUID,_characterID,2] spawn dayz_recordLogin;
|
||||
|
||||
@@ -63,4 +63,4 @@ if (!isNull _playerObj) then {
|
||||
[_x,"gear"] call server_updateObject;
|
||||
} foreach (nearestObjects [_playerPos, dayz_updateObjects, 10]);
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -128,7 +128,7 @@ if (!_isNew) then {
|
||||
};
|
||||
|
||||
#ifdef DZE_SERVER_DEBUG
|
||||
diag_log ("LOGIN LOADED: " + str(_playerObj) + " Type: " + (typeOf _playerObj));
|
||||
diag_log ("LOGIN LOADED: " + str(_playerObj) + " Type: " + (typeOf _playerObj) + " at location: " + (getPosATL _playerObj));
|
||||
#endif
|
||||
|
||||
_isHiveOk = false;
|
||||
@@ -142,4 +142,4 @@ if (worldName == "chernarus") then {
|
||||
};
|
||||
|
||||
dayzPlayerLogin = [_charID,_inventory,_backpack,_survival,_isNew,dayz_versionNo,_model,_isHiveOk,_newPlayer,_isInfected];
|
||||
(owner _playerObj) publicVariableClient "dayzPlayerLogin";
|
||||
(owner _playerObj) publicVariableClient "dayzPlayerLogin";
|
||||
|
||||
@@ -233,10 +233,23 @@ _playerObj setVariable["humanity_CHK",_humanity];
|
||||
//_playerObj setVariable["state",_state,true];
|
||||
_playerObj setVariable["lastPos",getPosATL _playerObj];
|
||||
|
||||
dayzPlayerLogin2 = [_worldspace,_state,PVDZE_plr_SetWeather,PVDZE_plr_SetDate,_randomSpot];
|
||||
_clientID = owner _playerObj;
|
||||
_clientID publicVariableClient "dayzPlayerLogin2";
|
||||
dayzPlayerLogin2 = [_worldspace,_state,_randomSpot];
|
||||
|
||||
// PVDZE_plr_SetWeather,PVDZE_plr_SetDate
|
||||
|
||||
PVDZE_obj_Debris = DZE_LocalRoadBlocks;
|
||||
_clientID = owner _playerObj;
|
||||
if (!isNull _playerObj) then {
|
||||
_clientID publicVariableClient "dayzPlayerLogin2";
|
||||
|
||||
// send road blocks
|
||||
_clientID publicVariableClient "PVDZE_obj_Debris";
|
||||
|
||||
_clientID publicVariableClient "PVDZE_plr_SetDate";
|
||||
|
||||
_clientID publicVariableClient "PVDZE_plr_SetWeather";
|
||||
|
||||
};
|
||||
//record time started
|
||||
_playerObj setVariable ["lastTime",time];
|
||||
//_playerObj setVariable ["model_CHK",typeOf _playerObj];
|
||||
|
||||
@@ -380,6 +380,7 @@ spawn_ammosupply = {
|
||||
};
|
||||
};
|
||||
|
||||
DZE_LocalRoadBlocks = [];
|
||||
|
||||
spawn_roadblocks = {
|
||||
private ["_position","_veh","_istoomany","_marker","_spawnveh","_WreckList"];
|
||||
@@ -412,15 +413,19 @@ spawn_roadblocks = {
|
||||
_marker setMarkerText str(_spawnveh);
|
||||
};
|
||||
|
||||
// fill array with classes and positions [class,pos,dir]
|
||||
DZE_LocalRoadBlocks set [count DZE_LocalRoadBlocks,[_spawnveh,_position,round(random 360)]];
|
||||
|
||||
//diag_log("DEBUG: Spawning a crashed " + _spawnveh + " with " + _spawnloot + " at " + str(_position));
|
||||
_veh = createVehicle [_spawnveh,_position, [], 0, "CAN_COLLIDE"];
|
||||
_veh enableSimulation false;
|
||||
|
||||
//_veh = createVehicle [_spawnveh,_position, [], 0, "CAN_COLLIDE"];
|
||||
//_veh enableSimulation false;
|
||||
|
||||
// Randomize placement a bit
|
||||
_veh setDir round(random 360);
|
||||
_veh setpos _position;
|
||||
//_veh setDir round(random 360);
|
||||
//_veh setpos _position;
|
||||
|
||||
_veh setVariable ["ObjectID","1",true];
|
||||
//_veh setVariable ["ObjectID","1",true];
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
@@ -184,10 +184,10 @@ class FSM
|
||||
{
|
||||
name = "sync_time__and_w";
|
||||
init = /*%FSM<STATEINIT""">*/"if (DZE_DiagFpsSlow) then {" \n
|
||||
" [] call dze_diag_fps;" \n
|
||||
" call dze_diag_fps;" \n
|
||||
"};" \n
|
||||
"[] call server_timeSync;" \n
|
||||
"[] call server_weather;" \n
|
||||
"call server_timeSync;" \n
|
||||
"call server_weather;" \n
|
||||
""/*%FSM</STATEINIT""">*/;
|
||||
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
||||
class Links
|
||||
|
||||
@@ -13,35 +13,11 @@ diag_log "HIVE: Starting";
|
||||
|
||||
waituntil{isNil "sm_done"}; // prevent server_monitor be called twice (bug during login of the first player)
|
||||
|
||||
//Set the Time
|
||||
//Send request
|
||||
_key = "CHILD:307:";
|
||||
_result = _key call server_hiveReadWrite;
|
||||
_outcome = _result select 0;
|
||||
if(_outcome == "PASS") then {
|
||||
_date = _result select 1;
|
||||
|
||||
if(dayz_fullMoonNights) then {
|
||||
//date setup
|
||||
//_year = _date select 0;
|
||||
//_month = _date select 1;
|
||||
//_day = _date select 2;
|
||||
_hour = _date select 3;
|
||||
_minute = _date select 4;
|
||||
|
||||
//Force full moon nights
|
||||
_date = [2013,8,3,_hour,_minute];
|
||||
};
|
||||
|
||||
if(isDedicated) then {
|
||||
setDate _date;
|
||||
PVDZE_plr_SetDate = _date;
|
||||
publicVariable "PVDZE_plr_SetDate";
|
||||
};
|
||||
|
||||
diag_log ("HIVE: Local Time set to " + str(_date));
|
||||
};
|
||||
//Set Time
|
||||
call server_timeSync;
|
||||
|
||||
// set Weather
|
||||
call server_weather;
|
||||
|
||||
// Custom Configs
|
||||
if(isnil "MaxVehicleLimit") then {
|
||||
@@ -323,7 +299,7 @@ if (isServer and isNil "sm_done") then {
|
||||
// spawn_roadblocks
|
||||
diag_log ("HIVE: Spawning # of Debris: " + str(MaxDynamicDebris));
|
||||
for "_x" from 1 to MaxDynamicDebris do {
|
||||
[] spawn spawn_roadblocks;
|
||||
[] call spawn_roadblocks;
|
||||
};
|
||||
// spawn_ammosupply at server start 1% of roadblocks
|
||||
diag_log ("HIVE: Spawning # of Ammo Boxes: " + str(MaxAmmoBoxes));
|
||||
|
||||
Reference in New Issue
Block a user