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

Вопрос Как реализовать открытие меню взаимодействия и появление кнопки "G" на теле игрока, когда тот находиться в поле зрения игрока?

Dapy

Новый участник
20 Июн 2022
5
0
6
Как реализовать открытие меню взаимодействия и появление кнопки "G" на теле игрока, когда тот находиться в поле зрения игрока либо когда он находить на какой то дистации?
 

Harland David Sanders

🍔 ChefBurger
Команда форума
High developer
10 Сен 2020
3,590
2,749
219
Проходимся циклом по массиву - mp.players
Находим игроков в стриме, сравниваем позицию локального игрока и других с помощью - getDistanceBetweenCoords (если необходимо, не забываем сравнить виртуальный мир).
Ну и в самом конце рисуем на ближайшего игрока текст клавиши с помощью - mp.game.graphics.drawText
Тоже самое делаем в бинде на клавишу (проверяем мало ли игрок успел убежать или еще что нибудь случилось...) ну и выполняем нужные действия (открываем менюшку или что там у тебя на уме).
 
Реакции: test442321 и XDeveluxe

Dapy

Новый участник
20 Июн 2022
5
0
6
Спасибо за ответ. Если есть то можно глянуть на пример кода.
 

XDeveluxe

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
2,766
1,574
211
28
Я не думаю, что дважды проходиться по одному и тому же массиву в двух местах есть норма. Как идея - выписать отдельной переменной клиенту, которая и будет хранить сущность игрока, на котором G уже отрисовано (или null, если никого) и при взаимодействии с кнопкой уже работать с этой же сущностью. В таком случае не придётся лишний раз обрабатывать этот момент.
 
Реакции: Harland David Sanders

XDeveluxe

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
2,766
1,574
211
28
Спасибо за ответ. Если есть то можно глянуть на пример кода.
Фактически, в словах уже весь пример кода, тебе нужны минимальные знания, чтобы использовать то, что предложил Харланд.
 

Dapy

Новый участник
20 Июн 2022
5
0
6
Вроде бы сделал. Но при этом у меня вешается текст и на моего персонажа
 

XDeveluxe

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
2,766
1,574
211
28
Вроде бы сделал. Но при этом у меня вешается текст и на моего персонажа
Используй localplayer.streamedPlayers массив, он, вроде как, не должен включать в себя локального персонажа, только других игроков.
Если всё же включает - просто внутри массива скипай локального персонажа проверкой.
 

Harland David Sanders

🍔 ChefBurger
Команда форума
High developer
10 Сен 2020
3,590
2,749
219
ну или можешь в рендере поставить условие на пропуск локального игрока..
 

emil3977

Новый участник
15 Июл 2021
3
0
38
А как получить игрока, на которого направлен взгляд?
 

X-Clusiv

Модератор
Команда форума
Moderator
BackEnd developer
4 Окт 2020
708
319
161
30
Еще один способ определения игрока рядом это mp.raycasting.testPointToPoint. Пускать лучь из камеры в "центр"(По направлению камеры) и если камера смотрит на какого либо игрока, запоминать его выводить на нем G.
 
Последнее редактирование:
Реакции: trasher