Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Need help?

    Create a topic in the appropriate section
    Don't write everything in the chat!
  • Take a look at the marketplace

    There you can buy
    everything related to game servers
  • Don't want a ban?

    Please read our rules
    Don't disturb the order!
  • Sell or buy?

    Use services of the guarantor
    We will make your deal safe
  • 0
Sign in to follow this  
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)

Edited by aimlock (see edit history)

Share this post


Link to post
Share on other sites

4 answers to this question

Recommended Posts

  • 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()

 

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

 

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

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

Edited by BorizzK (see edit history)

Share this post


Link to post
Share on other sites



  • 1

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

Или

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

 

Edited by BorizzK (see edit history)

Share this post


Link to post
Share on other sites
  • 0
3 минуты назад, BorizzK сказал:

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

Или

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

 

Где лежит NetSyncVariable ?

Share this post


Link to post
Share on other sites
  • 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");

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.