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

Логика events

qweqweqwe123123123

Новый участник
24 Июн 2025
12
2
13
Привет, подскажите пожалуйста

По приколу пишу систему - поздороваться с игроком
Столкнулся с тем, что очень много куча разные ивентов...
Не сильно шарю в ragemp, поэтому подскажите пожалуйста, если можно сделать проще...

Суть:
Игрок 1 подходит к игроку 2, наводится на него и через raycasting игрок 1 получает entity игрока 2
У игрока 1 появляется менюшка на G кнопку и кликает - "поздороваться с игроком".
Получается:
У игрока 1 из CEF летит событие на клиент, а на клиенте 1го игрока уже есть entity 2го игрока и соответственно entity.remoteId

Вопрос !
Могу ли из клиента 1го игрока вызывать событие сразу на клиент 2го игрока ?

Потому что получается у меня вот так...
1) У игрока 1 из CEF летит событие на клиент, а на клиенте 1го игрока уже есть entity 2го игрока и соответственно entity.remoteId
2) Далее из клиента игрока 1 я отправляю событие на сервер и entity.remoteId
3) На сервере const target = mp.players.at(targetId); ищу target
4) На сервере по target отправляю снова событие , но уже на клиент 2
5) Ну и далее логика стандартная... на клиенте 2 я отправляю событие на его CEF о нотификации, готов ли он поздороваться с игроком или нет

ps. может какой нибудь subscripbe поставить на клиент ?

pss. кстати, с этими событиями про нофикациями - треш, потому что эти события еще можно принять, отклонить, по сроку времени они тоже должны отклонится, там событий просто сотни получаются. Казалось бы... лишь простые нотификации, но ивентов сотни... ) А еще эти анимации на клиенте надо синхронизировать... еще надо heading синхронизировать... треееееш)
 

Jerry (ChatGPT)

AI-powered language model
VIP
helper
17 Окт 2023
2,587
250
100
Привет! Да, можно сделать проще. Вместо того чтобы отправлять события через сервер от игрока 1 к игроку 2, ты можешь напрямую отправлять событие с клиента 1 игроку 2 через entity.remoteId. Таким образом избежишь лишней нагрузки на сервер и уменьшишь количество необходимых событий. Вместо того чтобы многократно отправлять события для нотификаций, можешь использовать флаги настройки, чтобы отобразить лишь необходимую информацию. Надеюсь, эти рекомендации помогут упростить твою систему!
 

XDeveluxe

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
3,076
1,792
211
28
Нет, это была бы дыра в системе безопасности.
С клиента вызывается ивент только на сервере, а уже с сервера - на любом желаемом тебе клиенте.
 

qweqweqwe123123123

Новый участник
24 Июн 2025
12
2
13
спасибо, понял

Подскажи еще пожалуйста, серверные анимации.. они бесконечны... ну типа... у меня не получается прокрутить их 1 раз, как я это делаю на клиентских анимаций. Я знаю, что есть флаги, но я почти все флаги перепробовал, ну не работает ))) анимации снова и снова на сервере запускаются и приходится ставить setTimeout и player.stopAnimation делать

вопрос)
я правильно понимаю, что серверные анимация нельзя запустить 1 раз, а надо всегда ставить setTimeout и player.stopAnimation делать ?
если не прав, жду код примера

вопрос 2)
Когда я запускаю на сервере player.stopAnimation() , и если в этот момент бежит игрок, то он резко останавливается. Это можно как-то пофиксить ? Ну чтобы я останавливал анимацию, но бег игрока не прекращался
 

XDeveluxe

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
3,076
1,792
211
28
У анимаций есть флаги, с помощью них ты можешь заставить анимацию остановиться на последнем фрейме анимации, но даже так - анимация застынет и тебе нужно будет её сбросить, так что да, ты не можешь запустить 1 раз и всё, тебе нужно всё равно потом дать вторую задачу - остановку анимации.
Нет, остановка анимации полностью останавливает все анимации персонажа и возвращает его в базовое состояние. Бег - тоже анимация, просто устанавливаешь её не ты, а движок игры при нажатии Shift'а, поэтому бег тоже будет останавливаться.
 

Similar threads