Перейти к содержимому


Фотография

Написание CfgFunctions


Лучший Ответ Schatten , 16 November 2020 - 16:21

Как писать функции?

Функция -- это всего лишь кусок кода, хранимый в переменной. Соответственно, нужно всего лишь присвоить переменной какой-нибудь кусок кода, и ты получишь функцию.
 

Знаю можно записать в description, но возможно ли их указать в другом файле?

Можно, потом подключить с помощью директивы include.
 

Так же можно ли разделить функции клиента и сервера, т.е чтобы клиенту не подгружались функции сервера?

Можно: нужно всего лишь создавать нужные функции для определённой стороны (клиент или сервер).

Перейти к сообщению


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 7

#1 OFFLINE   Dispite

Dispite

    Ефрейтор

  • Пользователи
  • 94 сообщений
  • Откуда:Не помню

Отправлено 16 November 2020 - 16:04

Здравствуйте! Как писать функции? Знаю можно записать в description, но возможно ли их указать в другом файле? Так же можно ли разделить функции клиента и сервера, т.е чтобы клиенту не подгружались функции сервера?


  • 0

#2 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1791 сообщений
  • Откуда:Тбилиси, Грузия

Отправлено 16 November 2020 - 16:21   Лучший Ответ

Как писать функции?

Функция -- это всего лишь кусок кода, хранимый в переменной. Соответственно, нужно всего лишь присвоить переменной какой-нибудь кусок кода, и ты получишь функцию.
 

Знаю можно записать в description, но возможно ли их указать в другом файле?

Можно, потом подключить с помощью директивы include.
 

Так же можно ли разделить функции клиента и сервера, т.е чтобы клиенту не подгружались функции сервера?

Можно: нужно всего лишь создавать нужные функции для определённой стороны (клиент или сервер).


  • 1

#3 OFFLINE   Dispite

Dispite

    Ефрейтор

  • Пользователи
  • 94 сообщений
  • Откуда:Не помню

Отправлено 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" это и есть объявление сторон или лишь тэги?


  • 0

#4 OFFLINE   Dispite

Dispite

    Ефрейтор

  • Пользователи
  • 94 сообщений
  • Откуда:Не помню

Отправлено 16 November 2020 - 16:55

Понял, что это тэг


  • 0

#5 OFFLINE   Dispite

Dispite

    Ефрейтор

  • Пользователи
  • 94 сообщений
  • Откуда:Не помню

Отправлено 16 November 2020 - 17:07


Можно: нужно всего лишь создавать нужные функции для определённой стороны (клиент или сервер).


Я знаю как сделать инициализацию/вызов отдельно для каждой из сторон (запускать на сервере или клиенте). Но как создать для определённой стороны не понимаю.
  • 0

#6 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1791 сообщений
  • Откуда:Тбилиси, Грузия

Отправлено 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

  • 0

#7 OFFLINE   Dispite

Dispite

    Ефрейтор

  • Пользователи
  • 94 сообщений
  • Откуда:Не помню

Отправлено 16 November 2020 - 19:17

Schatten

, я же правильно понял, регистрация таких функций позволяет не прописывать 

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

, т.к он автоматически применяется?


Сообщение отредактировал Dispite: 16 November 2020 - 19:18

  • 0

#8 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1791 сообщений
  • Откуда:Тбилиси, Грузия

Отправлено 16 November 2020 - 19:34

я же правильно понял, регистрация таких функций позволяет не прописывать compileFinal, т.к он автоматически применяется?

Всё правильно.


  • 0




Яндекс.Метрика