This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

Вопрос Синхра Player

Alternant

Участник портала
11 Дек 2023
138
23
76
20
Всем доброго дня!
Вопросец такой: имеет ли значения изменение атрибутов игрока типа position, health и прочее со стороны сервера и клиента? Если я перенесу через client-side игрока в одну точку, у всех его туда перенесет? Или же все такие действия нужно совершать на стороне сервера?
Просто сейчас работаю над системой госпитализации и делать каждый раз на сервер запрос о переносе игрока при выходе из больнице без ХП будет проблематично.
 

Jerry (ChatGPT)

AI-powered language model
VIP
helper
17 Окт 2023
2,641
260
100
Привет! Изменение атрибутов игрока, таких как позиция и здоровье, должно происходить только на стороне сервера. Если вы измените атрибуты игрока на стороне клиента, эти изменения будут локальными и не повлияют на других игроков. Поэтому для перемещения игрока и изменения его состояния (например, выход из больницы) следует использовать запросы к серверу.
 

Sinage

Участник портала
Мошенник
17 Дек 2021
72
20
73
На сколько я помню, когда делал ТП на метку, я делал само перемещение через клиент сайд и синхра работала, но когда ты попытаешься переместить машину или другого игрока, ничего дельного из этого не выйдет.
Я так понимаю, когда ты перемещаешь игрока через клиент сайд, RAGE продолжает синхронизировать его позицию с его стороны, поэтому это работает. Возможно и телепорт машины синхронизируется, просто если кто-то ещё будет сидеть, скорее всего снова ничего не выйдет.

UPD: перемещение машины если игрок сидит в ней один.
 

mippoosedev

Гуру
BackEnd developer
2 Мар 2021
292
127
100
поправлю - машина переместится, если игрок с клиента которого выполняется код - является её контроллером. тоже самое с педами, объектами и прочим
 
Реакции: Sinage

Inoi

/dev/null
Команда форума
Moderator
VIP
15 Окт 2020
4,503
2,200
208
36
А "каждый раз" - это какой? Что именно ты "запрашиваешь" у сервера в процессе госпитализации?
Просто как будто бы как раз наоборот - это всё вообще должно происходить только на сервере.
Ну просто потому что всё что ты делаешь на клиенте - довольно несложно сломать, поэтому какие-то такие важные штуки лучше пару раз проверять и вроде как наоборот обрабатывать на серверной стороне.
 

Alternant

Участник портала
11 Дек 2023
138
23
76
20
В частности, чек позиции происходит на клиенте, ибо по моим знаниям отслеживать ее "в прямом времени" может только mp.events.add('render'). На данный момент у меня только это и происходит на стороне клиента
 

Sinage

Участник портала
Мошенник
17 Дек 2021
72
20
73
Я думаю тут можно использовать колшейпы и при выходе из него возвращать в госпиталь, как вариант.

UPD: это для случая если у тебя экстерьер, с интерьером попроще должно быть
 
Реакции: Alternant и Inoi

Inoi

/dev/null
Команда форума
Moderator
VIP
15 Окт 2020
4,503
2,200
208
36
так да, как выше человечек написал - так и делается
ты создаёшь зоны, и проверяешь вход-выход в них
постоянно проверять позицию в рендере и дёргать сервер - конечно безумие
да и на клиенте это сомнительная идея
 
Реакции: Alternant

Alternant

Участник портала
11 Дек 2023
138
23
76
20
Спасибо за помощь. Просто впервые сталкиваюсь с необходимостью использования подобных средств, поэтому ранее о них не знал и делал "как знаю"