Advertisement
Dusty_Nuttles

server_functions.sqf

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