Здравствуйте! Как писать функции? Знаю можно записать в description, но возможно ли их указать в другом файле? Так же можно ли разделить функции клиента и сервера, т.е чтобы клиенту не подгружались функции сервера?
Написание CfgFunctions
Лучший Ответ Schatten , 16 November 2020 - 16:21
Как писать функции?
Функция -- это всего лишь кусок кода, хранимый в переменной. Соответственно, нужно всего лишь присвоить переменной какой-нибудь кусок кода, и ты получишь функцию.
Знаю можно записать в description, но возможно ли их указать в другом файле?
Можно, потом подключить с помощью директивы include.
Так же можно ли разделить функции клиента и сервера, т.е чтобы клиенту не подгружались функции сервера?
Можно: нужно всего лишь создавать нужные функции для определённой стороны (клиент или сервер).
Перейти к сообщению#1 OFFLINE
Отправлено 16 November 2020 - 16:04
#2 OFFLINE
Отправлено 16 November 2020 - 16:21 Лучший Ответ
Как писать функции?
Функция -- это всего лишь кусок кода, хранимый в переменной. Соответственно, нужно всего лишь присвоить переменной какой-нибудь кусок кода, и ты получишь функцию.
Знаю можно записать в description, но возможно ли их указать в другом файле?
Можно, потом подключить с помощью директивы include.
Так же можно ли разделить функции клиента и сервера, т.е чтобы клиенту не подгружались функции сервера?
Можно: нужно всего лишь создавать нужные функции для определённой стороны (клиент или сервер).
#3 OFFLINE
Отправлено 16 November 2020 - 16:43
Schatten, видел пример для ExtDB3
class CfgFunctions { class HP { class Client { file = "client"; class DBSUC {}; //DataBaseSaveUnitClient class DBLUC {}; //DataBaseLoadUnitClient }; class Server { file = "server"; class ToQu {}; //ToQuery }; }; };
"Class Client" и "Class Server" это и есть объявление сторон или лишь тэги?
#4 OFFLINE
Отправлено 16 November 2020 - 16:55
Понял, что это тэг
#5 OFFLINE
Отправлено 16 November 2020 - 17:07
Можно: нужно всего лишь создавать нужные функции для определённой стороны (клиент или сервер).
Я знаю как сделать инициализацию/вызов отдельно для каждой из сторон (запускать на сервере или клиенте). Но как создать для определённой стороны не понимаю.
#6 OFFLINE
Отправлено 16 November 2020 - 17:14
Понял, что это тэг
Да, это название класса, которое всего лишь в файле разделяет клиентские и серверные функции. Чтобы реально разделить, нужно это делать вручную как-то так:
if (isServer) then { serverFunc = compileFinal (preprocessFileLineNumbers "\serverFunc.sqf"); } else { clientFunc = compileFinal (preprocessFileLineNumbers "\clientFunc.sqf"); };
Можно также использовать это:
Но как создать для определённой стороны не понимаю.
Под стороной я имел ввиду клиент или сервер, а не сторону юнита.
Сообщение отредактировал Schatten: 16 November 2020 - 17:16
#8 OFFLINE
Отправлено 16 November 2020 - 19:34
я же правильно понял, регистрация таких функций позволяет не прописывать compileFinal, т.к он автоматически применяется?
Всё правильно.