Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
  • Нужна помощь?

    Создайте тему в соответствующем разделе
    Не нужно писать всё в чат!
  • Загляните на торговую площадку

    Там вы можете купить
    всё что касается игровых серверов
  • Не хотите бан?

    Пожалуйста, ознакомьтесь с нашими правилами
    Не нарушайте порядок!
  • Продаёте или покупаете?

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной
  • 0
aimlock

Передать информацию состояния mdf с сервера на клиент

У меня есть MDF болезни (находится на сервере), есть функция проверки активации этой MDF (клиент) :
 

if(GetModifiersManager().IsModifierActive(MODMedicalModifiers.MDF_NUMBER_SUCK));

Проблема в том что проверка этой функции проходит на сервере при внедрении например :

Print("Eta huina seichas delaet work");

Но не проходит на клиенте.
Пробывал задавать переменную bool и прописывал условия через MDF OnTick что переменная становилась true. И на клиенте при условие этой переменной (==true). Выполнял другие функции. Но эта переменная изменяется только на сервере, на клиенте она остается статичной.

В общем нужно : с сервера передать инфу о состояние переменной bool (которая будет изменена с помощью серверного mdf) или же просто передать информацию о состоянии активности mdf этой болезни (1 условие : IsModifierActive)

Изменено пользователем aimlock (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендованные сообщения

  • 0

Ну погляди штатные скрипты и как там все устроено

MODMedicalModifiers - это энумератор?

 

Тогда в нужном классе

Обьявляешь переменную int m_modifier_suck;

в конструкторе

или в modded Init() в PlayerBase что лучше

 

RegisterNetSyncVariableInt("m_modifier_suck",минзначение - например 0, макс значение - например MODMedicalModifiers.MDF_NUMBER_SUCK );

 

и например на сервере в классе PlayerBase

m_modifier_suck = MODMedicalModifiers.MDF_NUMBER_SUCK; //модификатор активен

SetSynchDirty();

 

переменная m_modifier_suck на клиенте примет значение равное MODMedicalModifiers.MDF_NUMBER_SUCK

или обнуляешь и делаешь то же

m_modifier_suck = 0; //не активен

SetSynchDirty();

 

А реальный перехват изменения этой переменной на клиенте в OnVariableSynchronized()

 

Просто не ясно что ты сделать хочешь

 

Лучше конечно РПЦ так как чем больше переменных сетевых зарегено тем больше данных летит при каждой синхре

А РПЦ только когда тебе это надо

Изменено пользователем BorizzK (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах



  • 1

RPC (что угодно можно передать в обе стороны)

Или

NetSyncVariable - только на клиента с сервера - только типы  int, float, bool

 

Изменено пользователем BorizzK (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
3 минуты назад, BorizzK сказал:

RPC (что угодно можно передать в обе стороны)

Или

NetSyncVariable - только на клиента с сервера - только типы  int, float, bool

 

Где лежит NetSyncVariable ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
37 минут назад, BorizzK сказал:

Ну погляди штатные скрипты и как там все устроено

MODMedicalModifiers - это энумератор?

 

Тогда в нужном классе

Обьявляешь переменную int m_modifier_suck;

в конструкторе

или в modded Init() в PlayerBase что лучше

 

RegisterNetSyncVariableInt("m_modifier_suck",минзначение - например 0, макс значение - например MODMedicalModifiers.MDF_NUMBER_SUCK );

 

и например на сервере в классе PlayerBase

m_modifier_suck = MODMedicalModifiers.MDF_NUMBER_SUCK; //модификатор активен

SetSynchDirty();

 

переменная m_modifier_suck на клиенте примет значение равное MODMedicalModifiers.MDF_NUMBER_SUCK

или обнуляешь и делаешь то же

m_modifier_suck = 0; //не активен

SetSynchDirty();

 

А реальный перехват изменения этой переменной на клиенте в OnVariableSynchronized()

 

Просто не ясно что ты сделать хочешь

 

Лучше конечно РПЦ так как чем больше переменных сетевых зарегено тем больше данных летит при каждой синхре

А РПЦ только когда тебе это надо

Спасибо очень помог, сделал через RegisterNetSyncVariableBool("bleat1");

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×
×
  • Создать...

Важная информация

Используя этот сайт, вы автоматически обязуетесь соблюдать наши Правила и Политика конфиденциальности.
Чтобы сделать этот веб-сайт лучше, мы разместили cookies на вашем устройстве. Вы можете изменить свои настройки cookies, в противном случае мы будем считать, что вы согласны с этим.