Advertisement
Dusty_Nuttles

server_functions.sqf

May 15th, 2013
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.51 KB | None | 0 0
  1. waituntil {!isnil "bis_fnc_init"};
  2.  
  3. BIS_MPF_remoteExecutionServer = {
  4. if ((_this select 1) select 2 == "JIPrequest") then {
  5. [nil,(_this select 1) select 0,"loc",rJIPEXEC,[any,any,"per","execVM","ca\Modules\Functions\init.sqf"]] call RE;
  6. };
  7. };
  8.  
  9. BIS_Effects_Burn = {};
  10. server_playerLogin = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerLogin.sqf";
  11. server_playerSetup = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerSetup.sqf";
  12. server_onPlayerDisconnect = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_onPlayerDisconnect.sqf";
  13. server_updateObject = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_updateObject.sqf";
  14. server_playerDied = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerDied.sqf";
  15. server_publishObj = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_publishObject.sqf"; //Creates the object in DB
  16. server_deleteObj = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_deleteObj.sqf"; //Removes the object from the DB
  17. server_playerSync = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerSync.sqf";
  18. zombie_findOwner = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\zombie_findOwner.sqf";
  19. server_updateNearbyObjects = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_updateNearbyObjects.sqf";
  20. server_spawnCrashSite = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_spawnCrashSite.sqf";
  21.  
  22. ///////////////////////////mmmyum custom
  23. server_airRaid = compile preprocessFileLineNumbers "z\addons\dayz_server\compile\server_airRaid.sqf";
  24.  
  25. //Get instance name (e.g. dayz_1.chernarus)
  26. fnc_instanceName = {
  27. "dayz_" + str(dayz_instance) + "." + worldName
  28. };
  29.  
  30. vehicle_handleInteract = {
  31. private["_object"];
  32. _object = _this select 0;
  33. needUpdate_objects = needUpdate_objects - [_object];
  34. [_object, "all"] call server_updateObject;
  35. };
  36.  
  37. vehicle_handleServerKilled = {
  38. private["_unit","_killer"];
  39. _unit = _this select 0;
  40. _killer = _this select 1;
  41.  
  42. [_unit, "killed"] call server_updateObject;
  43.  
  44. _unit removeAllMPEventHandlers "MPKilled";
  45. _unit removeAllEventHandlers "Killed";
  46. _unit removeAllEventHandlers "HandleDamage";
  47. _unit removeAllEventHandlers "GetIn";
  48. _unit removeAllEventHandlers "GetOut";
  49. };
  50.  
  51. check_publishobject = {
  52. private["_allowed","_allowedObjects","_object"];
  53.  
  54. _object = _this select 0;
  55. _playername = _this select 1;
  56. _allowedObjects = ["TentStorage", "Hedgehog_DZ", "Sandbag1_DZ","TrapBear","Wire_cat1"];
  57. _allowed = false;
  58.  
  59. diag_log format ["DEBUG: Checking if Object: %1 is allowed published by %2", _object, _playername];
  60.  
  61. if ((typeOf _object) in _allowedObjects) then {
  62. diag_log format ["DEBUG: Object: %1 published by %2 is Safe",_object, _playername];
  63. _allowed = true;
  64. };
  65.  
  66. _allowed
  67. };
  68.  
  69. //event Handlers
  70. eh_localCleanup = {
  71. private ["_object"];
  72. _object = _this select 0;
  73. _object addEventHandler ["local", {
  74. if(_this select 1) then {
  75. private["_type","_unit"];
  76. _unit = _this select 0;
  77. _type = typeOf _unit;
  78. _myGroupUnit = group _unit;
  79. _unit removeAllMPEventHandlers "mpkilled";
  80. _unit removeAllMPEventHandlers "mphit";
  81. _unit removeAllMPEventHandlers "mprespawn";
  82. _unit removeAllEventHandlers "FiredNear";
  83. _unit removeAllEventHandlers "HandleDamage";
  84. _unit removeAllEventHandlers "Killed";
  85. _unit removeAllEventHandlers "Fired";
  86. _unit removeAllEventHandlers "GetOut";
  87. _unit removeAllEventHandlers "GetIn";
  88. _unit removeAllEventHandlers "Local";
  89. clearVehicleInit _unit;
  90. deleteVehicle _unit;
  91. deleteGroup _myGroupUnit;
  92. _unit = nil;
  93. diag_log ("CLEANUP: DELETED A " + str(_type) );
  94. };
  95. }];
  96. };
  97.  
  98. server_hiveWrite = {
  99. private["_data"];
  100. //diag_log ("ATTEMPT WRITE: " + _this);
  101. _data = "HiveExt" callExtension _this;
  102. //diag_log ("WRITE: " +str(_data));
  103. };
  104.  
  105. server_hiveReadWrite = {
  106. private["_key","_resultArray","_data"];
  107. _key = _this;
  108. //diag_log ("ATTEMPT READ/WRITE: " + _key);
  109. _data = "HiveExt" callExtension _key;
  110. //diag_log ("READ/WRITE: " +str(_data));
  111. _resultArray = call compile format ["%1",_data];
  112. _resultArray
  113. };
  114.  
  115. server_characterSync = {
  116. private ["_characterID","_playerPos","_playerGear","_playerBackp","_medical","_currentState","_currentModel","_key"];
  117. _characterID = _this select 0;
  118. _playerPos = _this select 1;
  119. _playerGear = _this select 2;
  120. _playerBackp = _this select 3;
  121. _medical = _this select 4;
  122. _currentState = _this select 5;
  123. _currentModel = _this select 6;
  124.  
  125. _key = format["CHILD:201:%1:%2:%3:%4:%5:%6:%7:%8:%9:%10:%11:%12:%13:%14:%15:%16:",_characterID,_playerPos,_playerGear,_playerBackp,_medical,false,false,0,0,0,0,_currentState,0,0,_currentModel,0];
  126. //diag_log ("HIVE: WRITE: "+ str(_key) + " / " + _characterID);
  127. _key call server_hiveWrite;
  128. };
  129.  
  130. //onPlayerConnected "[_uid,_name] spawn server_onPlayerConnect;";
  131. onPlayerDisconnected "[_uid,_name] call server_onPlayerDisconnect;";
  132.  
  133. server_getDiff = {
  134. private["_variable","_object","_vNew","_vOld","_result"];
  135. _variable = _this select 0;
  136. _object = _this select 1;
  137. _vNew = _object getVariable[_variable,0];
  138. _vOld = _object getVariable[(_variable + "_CHK"),_vNew];
  139. _result = 0;
  140. if (_vNew < _vOld) then {
  141. //JIP issues
  142. _vNew = _vNew + _vOld;
  143. _object getVariable[(_variable + "_CHK"),_vNew];
  144. } else {
  145. _result = _vNew - _vOld;
  146. _object setVariable[(_variable + "_CHK"),_vNew];
  147. };
  148. _result
  149. };
  150.  
  151. server_getDiff2 = {
  152. private["_variable","_object","_vNew","_vOld","_result"];
  153. _variable = _this select 0;
  154. _object = _this select 1;
  155. _vNew = _object getVariable[_variable,0];
  156. _vOld = _object getVariable[(_variable + "_CHK"),_vNew];
  157. _result = _vNew - _vOld;
  158. _object setVariable[(_variable + "_CHK"),_vNew];
  159. _result
  160. };
  161.  
  162. dayz_objectUID = {
  163. private["_position","_dir","_key","_object"];
  164. _object = _this;
  165. _position = getPosATL _object;
  166. _dir = direction _object;
  167. _key = [_dir,_position] call dayz_objectUID2;
  168. _key
  169. };
  170.  
  171. dayz_objectUID2 = {
  172. private["_position","_dir","_key"];
  173. _dir = _this select 0;
  174. _key = "";
  175. _position = _this select 1;
  176. {
  177. _x = _x * 10;
  178. if ( _x < 0 ) then { _x = _x * -10 };
  179. _key = _key + str(round(_x));
  180. } forEach _position;
  181. _key = _key + str(round(_dir));
  182. _key
  183. };
  184.  
  185. dayz_recordLogin = {
  186. private["_key"];
  187. _key = format["CHILD:103:%1:%2:%3:",_this select 0,_this select 1,_this select 2];
  188. _key call server_hiveWrite;
  189. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement