Ветераны, такой к вам вопрос про RemoteExec:
На сервере есть функция Func
На клиенте её нету.
Исполнит ли клиент эту функцию, если сервер ему прикажет?
Суть проблемы вообще такая...
Не палить клиенту функцию, но заставить ее исполнить.
Это возможно?
Функции определены локально, если у вас есть функция A то не факт, что она есть на другом клиенте, и если её там нету, то вы можете хоть с бубном танцевать - удаленно вы просто так ее не вызовите
Но это возможно: вам как-то нужно определить код этой функции на клиентах (Можете передавать код функций во время загрузки миссий и на клиенте уже определять их по этим данным с сервера, но как вы понимаете - это будет экстремальная нагрузка для канала передачи данных как сервера, так и клиента (А при одновременном подключении большого числа клиентов может и вовсе положить сервер)
Где-то в ините игрока на сервере:
[“func1”, “hint ‘func1’”] remoteExecCall [“MyTag_fnc_myFunction”, _clientID, false];
[“func2”, “hint ‘func2’”] remoteExecCall [“MyTag_fnc_myFunction”, _clientID, false];
На клиенте fn_myFunction:
params [
[“_funcName”, “”, [“”]],
[“_funcCode”, “”, [“”]]
];
missionNamespace setVariable [_funcName, compileFinal _funcCode];
После чего, можно будет эту функцию вызывать удаленно, но без возможности писать скрипты в миссии при подключению к серверу код этих функций никак не узнать (Можно еще хакать, но хто другая тема)
[“Hello World!”] remoteExecCall [“func1”, _clientID, false];
Сообщение отредактировал vlad333000: 20 November 2017 - 00:26