Added SQF support

This commit is contained in:
KoffeinFlummi
2014-07-27 20:11:00 +02:00
parent c8754292f4
commit f10154a782
2 changed files with 76 additions and 0 deletions

View File

@@ -1931,6 +1931,14 @@ SCSS:
extensions: extensions:
- .scss - .scss
SQF:
type: programming
color: "#FFCB1F"
lexer: C++
extensions:
- .sqf
- .hqf
SQL: SQL:
type: data type: data
ace_mode: sql ace_mode: sql

View File

@@ -0,0 +1,68 @@
/*
* Author: commy2
*
* Execute a function on a remote machine in mp.
*
* Argument:
* 0: Function arguments (Array)
* 1: Function to execute, has to be defined on the remote machine first (String)
* 2: The function will be executed where this unit is local OR the mode were this function should be executed. (Object OR Number, optional default: 2)
* Mode 0: execute on this machine only
* Mode 1: execute on server
* Mode 2: execute on all clients + server
* Mode 3: execute on dedicated only
*
* Return value:
* Nothing
*/
private ["_arguments", "_function", "_unit", "_id"];
AGM_Core_remoteFnc = _this;
_arguments = _this select 0;
_function = call compile (_this select 1);
_unit = _this select 2;
if (isNil "_unit") then {
_unit = 2;
};
if (typeName _unit == "SCALAR") exitWith {
switch (_unit) do {
case 0 : {
_arguments call _function;
};
case 1 : {
if (isServer) then {
_arguments call _function;
} else {
publicVariableServer "AGM_Core_remoteFnc";
};
};
case 2 : {
_arguments call _function;
AGM_Core_remoteFnc set [2, 0];
publicVariable "AGM_Core_remoteFnc";
};
case 3 : {
if (isDedicated) then {
_arguments call _function;
} else {
if (!isServer) then {publicVariableServer "AGM_Core_remoteFnc"};
};
};
};
};
if (local _unit) then {
_arguments call _function;
} else {
if (isServer) then {
_id = owner _unit;
_id publicVariableClient "AGM_Core_remoteFnc";
} else {
publicVariableServer "AGM_Core_remoteFnc";
};
};