mirror of
https://github.com/EpochModTeam/DayZ-Epoch.git
synced 2025-12-20 10:26:28 +03:00
0.69 + 1.7.5.M1D15
This commit is contained in:
21
dayz_server/compile/server_deleteObj.sqf
Normal file
21
dayz_server/compile/server_deleteObj.sqf
Normal file
@@ -0,0 +1,21 @@
|
||||
/*
|
||||
[_objectID,_objectUID] call server_deleteObj;
|
||||
*/
|
||||
private["_id","_uid","_key"];
|
||||
_id = _this select 0;
|
||||
_uid = _this select 1;
|
||||
|
||||
if (isServer) then {
|
||||
//remove from database
|
||||
if (parseNumber _id > 0) then {
|
||||
//Send request
|
||||
_key = format["CHILD:304:%1:",_id];
|
||||
_key call server_hiveWrite;
|
||||
diag_log format["DELETE: Deleted by ID: %1",_id];
|
||||
} else {
|
||||
//Send request
|
||||
_key = format["CHILD:310:%1:",_uid];
|
||||
_key call server_hiveWrite;
|
||||
diag_log format["DELETE: Deleted by UID: %1",_uid];
|
||||
};
|
||||
};
|
||||
@@ -1,11 +1,32 @@
|
||||
private ["_qty","_item","_meat","_loop","_timer"];
|
||||
private["_item","_qty","_type","_meat","_loop"];
|
||||
_item = _this select 0;
|
||||
_qty = _this select 1;
|
||||
_type = typeOf _item;
|
||||
_meat = 0;
|
||||
_loop = true;
|
||||
if (local _item) then {
|
||||
for "_x" from 1 to _qty do {
|
||||
_item addMagazine "FoodSteakRaw";
|
||||
diag_log ("Item Type: " +str(_item));
|
||||
switch (_type) do {
|
||||
case "Cow": {
|
||||
_item addMagazine "FoodSteakRaw";
|
||||
};
|
||||
case "Goat": {
|
||||
_item addMagazine "FoodSteakRaw";
|
||||
};
|
||||
case "Sheep": {
|
||||
_item addMagazine "FoodSteakRaw";
|
||||
};
|
||||
case "WildBoar": {
|
||||
_item addMagazine "FoodboarRaw";
|
||||
};
|
||||
case "hen": {
|
||||
_item addMagazine "FoodSteakRaw";
|
||||
};
|
||||
case "Rabbit": {
|
||||
_item addMagazine "FoodSteakRaw";
|
||||
};
|
||||
};
|
||||
};
|
||||
sleep 2;
|
||||
_timer = time;
|
||||
@@ -15,9 +36,11 @@ if (local _item) then {
|
||||
if ((time - _timer) > 300) then {_loop = false};
|
||||
sleep 1;
|
||||
};
|
||||
dayzHideBody = _item;
|
||||
publicVariable "dayzHideBody";
|
||||
hideBody _item;
|
||||
["dayzHideBody",_item] call broadcastRpcCallAll;
|
||||
sleep 10;
|
||||
deleteVehicle _item;
|
||||
} else {
|
||||
_ehLoc = "client";
|
||||
if (isServer) then { _ehLoc = "server"; };
|
||||
diag_log format["gutObject EH on %1 item not local ! Type: %2",_ehLoc,str(_item)];
|
||||
};
|
||||
24
dayz_server/compile/server_gutObjectZ.sqf
Normal file
24
dayz_server/compile/server_gutObjectZ.sqf
Normal file
@@ -0,0 +1,24 @@
|
||||
private["_item","_qty","_type","_meat","_loop"];
|
||||
_item = _this select 0;
|
||||
_qty = _this select 1;
|
||||
_type = typeOf _item;
|
||||
_meat = 0;
|
||||
_loop = true;
|
||||
if (local _item) then {
|
||||
_item addMagazine "ItemZombieParts";
|
||||
sleep 2;
|
||||
_timer = time;
|
||||
while {_loop} do {
|
||||
_meat = count magazines _item;
|
||||
if (_meat == 0) then {_loop = false};
|
||||
if ((time - _timer) > 300) then {_loop = false};
|
||||
sleep 1;
|
||||
};
|
||||
["dayzHideBody",_item] call broadcastRpcCallAll;
|
||||
sleep 10;
|
||||
deleteVehicle _item;
|
||||
} else {
|
||||
_ehLoc = "client";
|
||||
if (isServer) then { _ehLoc = "server"; };
|
||||
diag_log format["gutObject EH on %1 item not local ! Type: %2",_ehLoc,str(_item)];
|
||||
};
|
||||
@@ -12,8 +12,6 @@ if (count _this > 2) then {
|
||||
dayz_players = dayz_players - [_this select 2];
|
||||
};
|
||||
|
||||
//waitUntil{allowConnection};
|
||||
|
||||
//Variables
|
||||
_inventory = [];
|
||||
_backpack = [];
|
||||
@@ -45,7 +43,7 @@ diag_log ("LOGIN ATTEMPT: " + str(_playerID) + " " + _playerName);
|
||||
_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;
|
||||
_primary = _key call server_hiveReadWrite;
|
||||
if (count _primary > 0) then {
|
||||
if ((_primary select 0) != "ERROR") then {
|
||||
_doLoop = 9;
|
||||
|
||||
@@ -34,7 +34,7 @@ _state = [];
|
||||
_doLoop = 0;
|
||||
while {_doLoop < 5} do {
|
||||
_key = format["CHILD:102:%1:",_characterID];
|
||||
_primary = [_key,false,dayZ_hivePipeAuth] call server_hiveReadWrite;
|
||||
_primary = _key call server_hiveReadWrite;
|
||||
if (count _primary > 0) then {
|
||||
if ((_primary select 0) != "ERROR") then {
|
||||
_doLoop = 9;
|
||||
@@ -116,9 +116,7 @@ if (count _medical > 0) then {
|
||||
//Add Wounds
|
||||
{
|
||||
_playerObj setVariable[_x,true,true];
|
||||
[_playerObj,_x,_hit] spawn fnc_usec_damageBleed;
|
||||
usecBleed = [_playerObj,_x,0];
|
||||
publicVariable "usecBleed";
|
||||
["usecBleed",[_playerObj,_x,_hit]] call broadcastRpcCallAll;
|
||||
} forEach (_medical select 8);
|
||||
|
||||
//Add fractures
|
||||
|
||||
@@ -4,10 +4,13 @@ private["_character","_magazines","_force","_characterID","_charPos","_isInVehic
|
||||
|
||||
//waituntil {(typeName(_this) == "ARRAY");sleep 0.01;}; //seems to cause often infinite waits (but not for first n players)
|
||||
|
||||
if ( typeName(_this) == "OBJECT" ) then {
|
||||
//this only happens when we don't follow the correct parameter format...
|
||||
//(like supplying just the player object instead of the array in player_eat.sqf)
|
||||
//i've fixed this in player_eat so i can comment this part out
|
||||
/*if ( typeName(_this) == "OBJECT" ) then {
|
||||
_this = [_this,[],true];
|
||||
//diag_log ("DW_DEBUG: #manual fix _this: " + str(_this));
|
||||
};
|
||||
};*/
|
||||
|
||||
//correct
|
||||
//"UPDATE: [B 1-1-B:1 (THE BEAST) REMOTE,[],true]"
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
private["_position","_num","_config","_itemType","_itemChance","_weights","_index","_iArray","_crashModel","_lootTable","_guaranteedLoot","_randomizedLoot","_frequency","_variance","_spawnChance","_spawnMarker","_spawnRadius","_spawnFire","_permanentFire","_crashName"];
|
||||
|
||||
waitUntil{!isNil "BIS_fnc_selectRandom"};
|
||||
|
||||
//_crashModel = _this select 0;
|
||||
//_lootTable = _this select 1;
|
||||
_guaranteedLoot = _this select 0;
|
||||
@@ -78,9 +76,7 @@ while {true} do {
|
||||
_crash setVariable ["ObjectID",1,true];
|
||||
|
||||
if (_spawnFire) then {
|
||||
dayzFire = [_crash,2,time,false,_fadeFire];
|
||||
publicVariable "dayzFire";
|
||||
nul=dayzFire spawn BIS_Effects_Burn;
|
||||
["dayzFire",[_crash,2,time,false,_fadeFire]] call broadcastRpcCallAll;
|
||||
_crash setvariable ["fadeFire",_fadeFire,true];
|
||||
};
|
||||
|
||||
@@ -92,8 +88,6 @@ while {true} do {
|
||||
_weights = dayz_CBLChances select _index;
|
||||
_cntWeights = count _weights;
|
||||
|
||||
waituntil {!isnil "fnc_buildWeightedArray"};
|
||||
|
||||
for "_x" from 1 to _num do {
|
||||
//create loot
|
||||
_index = floor(random _cntWeights);
|
||||
|
||||
8
dayz_server/config.cpp
Normal file
8
dayz_server/config.cpp
Normal file
@@ -0,0 +1,8 @@
|
||||
class CfgPatches {
|
||||
class dayz_server {
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = 0.1;
|
||||
requiredAddons[] = {"dayz_code"};
|
||||
};
|
||||
};
|
||||
27
dayz_server/init/publicEH_server.sqf
Normal file
27
dayz_server/init/publicEH_server.sqf
Normal file
@@ -0,0 +1,27 @@
|
||||
//register client->server rpc
|
||||
registerServerRpc = {
|
||||
if (isServer) then {
|
||||
_this call registerBroadcastRpc;
|
||||
};
|
||||
};
|
||||
|
||||
["dayzDeath", { (_this select 1) call server_playerDied; } ] call registerServerRpc;
|
||||
["dayzDiscoAdd", { dayz_disco set [count dayz_disco,(_this select 1)]; } ] call registerServerRpc;
|
||||
["dayzDiscoRem", { dayz_disco = dayz_disco - [(_this select 1)]; } ] call registerServerRpc;
|
||||
["dayzPlayerSave", { (_this select 1) call server_playerSync; } ] call registerServerRpc;
|
||||
["dayzPublishObj", { (_this select 1) call server_publishObj; } ] call registerServerRpc;
|
||||
["dayzUpdateVehicle", { (_this select 1) call server_updateObject; } ] call registerServerRpc;
|
||||
["dayzDeleteObj", { (_this select 1) call server_deleteObj; } ] call registerServerRpc;
|
||||
["dayzLogin", { (_this select 1) call server_playerLogin; } ] call registerServerRpc;
|
||||
["dayzLogin2", { (_this select 1) call server_playerSetup; } ] call registerServerRpc;
|
||||
//missing sqf for server_playerMorph
|
||||
//["dayzPlayerMorph", { (_this select 1) call server_playerMorph; } ] call registerServerRpc;
|
||||
["dayzLoginRecord", { (_this select 1) call dayz_recordLogin; } ] call registerServerRpc;
|
||||
["dayzCharDisco", { (_this select 1) call server_characterSync; } ] call registerServerRpc;
|
||||
["dayzGutBody", { (_this select 1) spawn server_gutObject; } ] call registerServerRpc;
|
||||
// DayZ Epoch Custom
|
||||
["dayzGutBodyZ", { (_this select 1) spawn server_gutObjectZ; } ] call registerServerRpc;
|
||||
["dayzPublishVeh", { (_this select 1) spawn server_publishVeh; } ] call registerServerRpc;
|
||||
["dayzTradeObject", { (_this select 1) spawn server_tradeObj; } ] call registerServerRpc;
|
||||
["dayzTraderMenu", { (_this select 1) spawn server_traders; } ] call registerServerRpc;
|
||||
|
||||
@@ -7,21 +7,18 @@ BIS_MPF_remoteExecutionServer = {
|
||||
};
|
||||
|
||||
BIS_Effects_Burn = {};
|
||||
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_playerSetup = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerSetup.sqf";
|
||||
server_onPlayerDisconnect = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_onPlayerDisconnect.sqf";
|
||||
server_updateObject = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_updateObject.sqf";
|
||||
server_playerDied = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerDied.sqf";
|
||||
server_publishObj = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_publishObject.sqf";
|
||||
server_publishObj = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_publishObject.sqf"; //Creates the object in DB
|
||||
server_deleteObj = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_deleteObj.sqf"; //Removes the object from the DB
|
||||
server_gutObject = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_gutObject.sqf"; //Generated on the server when gutting an object
|
||||
server_gutObjectZ = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_gutObjectZ.sqf"; //Generated on the server when gutting an object
|
||||
server_publishVeh = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_publishVehicle.sqf"; // Custom to add vehicles
|
||||
|
||||
server_tradeObj = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_tradeObject.sqf";
|
||||
|
||||
server_tradeObj = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_tradeObject.sqf";
|
||||
server_traders = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_traders.sqf";
|
||||
local_publishObj = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\local_publishObj.sqf"; //Creates the object in DB
|
||||
local_deleteObj = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\local_deleteObj.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";
|
||||
zombie_findOwner = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\zombie_findOwner.sqf";
|
||||
server_updateNearbyObjects = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_updateNearbyObjects.sqf";
|
||||
@@ -63,7 +60,7 @@ check_publishobject = {
|
||||
_allowed = true;
|
||||
};
|
||||
|
||||
_allowed;
|
||||
_allowed
|
||||
};
|
||||
|
||||
//event Handlers
|
||||
@@ -95,6 +92,23 @@ eh_localCleanup = {
|
||||
}];
|
||||
};
|
||||
|
||||
server_hiveWrite = {
|
||||
private["_data"];
|
||||
//diag_log ("ATTEMPT WRITE: " + _this);
|
||||
_data = "HiveExt" callExtension _this;
|
||||
diag_log ("WRITE: " + _data);
|
||||
};
|
||||
|
||||
server_hiveReadWrite = {
|
||||
private["_key","_resultArray","_data"];
|
||||
_key = _this;
|
||||
//diag_log ("ATTEMPT READ/WRITE: " + _key);
|
||||
_data = "HiveExt" callExtension _key;
|
||||
diag_log ("READ/WRITE: " + _data);
|
||||
_resultArray = call compile format ["%1",_data];
|
||||
_resultArray
|
||||
};
|
||||
|
||||
server_characterSync = {
|
||||
private ["_characterID","_playerPos","_playerGear","_playerBackp","_medical","_currentState","_currentModel","_key"];
|
||||
_characterID = _this select 0;
|
||||
@@ -110,28 +124,9 @@ server_characterSync = {
|
||||
_key call server_hiveWrite;
|
||||
};
|
||||
|
||||
//was missing for server
|
||||
fnc_buildWeightedArray = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_buildWeightedArray.sqf"; //Checks which actions for nearby casualty
|
||||
|
||||
//onPlayerConnected "[_uid,_name] spawn server_onPlayerConnect;";
|
||||
onPlayerDisconnected "[_uid,_name] call server_onPlayerDisconnect;";
|
||||
|
||||
server_hiveWrite = {
|
||||
private["_data"];
|
||||
//diag_log ("ATTEMPT WRITE: " + _this);
|
||||
_data = "HiveEXT" callExtension _this;
|
||||
diag_log ("WRITE: " + _data);
|
||||
};
|
||||
|
||||
server_hiveReadWrite = {
|
||||
private["_key","_resultArray","_data"];
|
||||
_key = _this select 0;
|
||||
//diag_log ("ATTEMPT READ/WRITE: " + _key);
|
||||
_data = "HiveEXT" callExtension _key;
|
||||
diag_log ("READ/WRITE: " + _data);
|
||||
_resultArray = call compile format ["%1;",_data];
|
||||
_resultArray;
|
||||
};
|
||||
|
||||
// Setup globals allow overwrite from init.sqf
|
||||
if(isnil "dayz_MapArea") then {
|
||||
@@ -144,38 +139,6 @@ if(isnil "HeliCrashArea") then {
|
||||
HeliCrashArea = dayz_MapArea / 2;
|
||||
};
|
||||
|
||||
|
||||
spawn_heliCrash = {
|
||||
private["_position","_veh","_config","_itemType","_itemTypes","_weights","_cntWeights","_index","_num","_i"];
|
||||
|
||||
_position = [getMarkerPos "center",0,HeliCrashArea,10,0,2000,0] call BIS_fnc_findSafePos;
|
||||
_veh = createVehicle ["UH1Wreck_DZ",_position, [], 0, "CAN_COLLIDE"];
|
||||
dayz_serverObjectMonitor set [count dayz_serverObjectMonitor,_veh];
|
||||
_veh setVariable ["ObjectID",1,true];
|
||||
dayzFire = [_veh,2,time,false,false];
|
||||
publicVariable "dayzFire";
|
||||
|
||||
_config = configFile >> "CfgBuildingLoot" >> "HeliCrash";
|
||||
_itemTypes = [] + getArray (_config >> "itemType");
|
||||
_index = dayz_CBLCounts find (count _itemTypes);
|
||||
_weights = dayz_CBLChances select _index;
|
||||
_cntWeights = count _weights;
|
||||
_num = round(random 4) + 3;
|
||||
for "_i" from 1 to _num do {
|
||||
//create loot
|
||||
_index = floor(random _cntWeights);
|
||||
_index = _weights select _index;
|
||||
_itemType = _itemTypes select _index;
|
||||
[_itemType select 0, _itemType select 1, _position, 5] call spawn_loot;
|
||||
_nearby = _position nearObjects ["WeaponHolder", 5];
|
||||
{
|
||||
_x setVariable ["permaLoot",true];
|
||||
} forEach _nearBy;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
|
||||
// Get all buildings and roads only once
|
||||
MarkerPosition = getMarkerPos "center";
|
||||
RoadList = MarkerPosition nearRoads DynamicVehicleArea;
|
||||
@@ -462,6 +425,5 @@ dayz_objectUID2 = {
|
||||
dayz_recordLogin = {
|
||||
private["_key"];
|
||||
_key = format["CHILD:103:%1:%2:%3:",_this select 0,_this select 1,_this select 2];
|
||||
diag_log ("HIVE: WRITE: "+ str(_key));
|
||||
_key call server_hiveWrite;
|
||||
};
|
||||
|
||||
@@ -251,16 +251,14 @@ class FSM
|
||||
name = "sync_the_time";
|
||||
init = /*%FSM<STATEINIT""">*/"//Send request" \n
|
||||
"_key = ""CHILD:307:"";" \n
|
||||
"_result = [_key] call server_hiveReadWrite;" \n
|
||||
"_result = _key call server_hiveReadWrite;" \n
|
||||
"_outcome = _result select 0;" \n
|
||||
"if(_outcome == ""PASS"") then {" \n
|
||||
" _date = _result select 1; " \n
|
||||
" _dateNum = dateToNumber(_date); " \n
|
||||
" _diff = ( _dateNum - dateToNumber (date) )*365*24*60;" \n
|
||||
" if ( abs(_diff)>5 ) then {" \n
|
||||
" setDate _date;" \n
|
||||
" dayzSetDate = _date;" \n
|
||||
" publicVariable ""dayzSetDate"";" \n
|
||||
" [""dayzSetDate"",_date] call broadcastRpcCallAll;" \n
|
||||
" diag_log (""TIME SYNC: Local Time set to "" + str(_date));" \n
|
||||
" };" \n
|
||||
"};" \n
|
||||
|
||||
@@ -9,7 +9,7 @@ if ((count playableUnits == 0) and !isDedicated) then {
|
||||
isSinglePlayer = true;
|
||||
};
|
||||
|
||||
waitUntil{initialized};
|
||||
waitUntil{initialized}; //means all the functions are now defined
|
||||
|
||||
diag_log "HIVE: Starting";
|
||||
|
||||
@@ -17,12 +17,11 @@ diag_log "HIVE: Starting";
|
||||
/* STREAM OBJECTS */
|
||||
//Send the key
|
||||
_key = format["CHILD:302:%1:",dayZ_instance];
|
||||
_data = "HiveEXT" callExtension _key;
|
||||
_result = _key call server_hiveReadWrite;
|
||||
|
||||
diag_log "HIVE: Request sent";
|
||||
|
||||
//Process result
|
||||
_result = call compile format ["%1",_data];
|
||||
_status = _result select 0;
|
||||
|
||||
_myArray = [];
|
||||
@@ -31,8 +30,7 @@ diag_log "HIVE: Starting";
|
||||
//Stream Objects
|
||||
diag_log ("HIVE: Commence Object Streaming...");
|
||||
for "_i" from 1 to _val do {
|
||||
_data = "HiveEXT" callExtension _key;
|
||||
_result = call compile format ["%1",_data];
|
||||
_result = _key call server_hiveReadWrite;
|
||||
|
||||
_status = _result select 0;
|
||||
_myArray set [count _myArray,_result];
|
||||
@@ -184,14 +182,12 @@ diag_log "HIVE: Starting";
|
||||
//Set the Time
|
||||
//Send request
|
||||
_key = "CHILD:307:";
|
||||
_result = [_key] call server_hiveReadWrite;
|
||||
_result = _key call server_hiveReadWrite;
|
||||
_outcome = _result select 0;
|
||||
if(_outcome == "PASS") then {
|
||||
_date = _result select 1;
|
||||
if(isDedicated) then {
|
||||
setDate _date;
|
||||
dayzSetDate = _date;
|
||||
publicVariable "dayzSetDate";
|
||||
["dayzSetDate",_date] call broadcastRpcCallAll;
|
||||
};
|
||||
|
||||
diag_log ("HIVE: Local Time set to " + str(_date));
|
||||
@@ -201,7 +197,6 @@ diag_log "HIVE: Starting";
|
||||
if (isDedicated) then {
|
||||
endLoadingScreen;
|
||||
};
|
||||
hiveInUse = false;
|
||||
|
||||
if (isDedicated) then {
|
||||
_id = [] execFSM "\z\addons\dayz_server\system\server_cleanup.fsm";
|
||||
@@ -242,7 +237,6 @@ for "_x" from 1 to MaxDynamicDebris do {
|
||||
|
||||
allowConnection = true;
|
||||
|
||||
|
||||
// [_guaranteedLoot, _randomizedLoot, _frequency, _variance, _spawnChance, _spawnMarker, _spawnRadius, _spawnFire, _fadeFire]
|
||||
nul = [3, 4, (50 * 60), (15 * 60), 0.75, 'center', 4000, true, false] spawn server_spawnCrashSite;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user