Помогите Как узнать координаты кровати игрока, который на ней поспал

MurlikMurlik

Активный участник
Пользователь
Баллы
96
Доброго времени суток.
Как мы все знаем, если лечь спать и проснутся, сервер возле кровати установит точку возрождения для игрока.
Если эту кровать сломать или просто загородить блоками вокруг, то метод getBedSpawnLocation() возвратит ноль.
Собственно проблема в том, что сервер каким то образом запоминает что именно на этой кровати стоит точка возрождения этого игрока. Я так понимаю, вокруг кровати некий круг, на котором стоят точки, но не больше одной, и если на этой точке будет блок, то сервер сразу же изменит координату на другую, пока не загорожу всю кровать. Как можно достать "главные" координаты кровати, а не getBedSpawnLocation()? Все перепробовал, не нашел ничего в гугле.

p.s Только начал разбираться в java и в написание плагинов, может быть что то не правильно понимаю.
 
Я так понимаю, вокруг кровати некий круг, на котором стоят точки, но не больше одной, и если на этой точке будет блок, то сервер сразу же изменит координату на другую, пока не загорожу всю кровать.
Игра в цикле перебирает блоки возле кровати и проверяет можно ли туда заспавнить игрока, зачем столько костылей? Если очень хочешь могу найти код где он это делает.
 
Игра в цикле перебирает блоки возле кровати и проверяет можно ли туда заспавнить игрока, зачем столько костылей? Если очень хочешь могу найти код где он это делает.
Хм, я писал штуку дебажную, вообщем, если установить над кроватью точку возрождения кровати, то он ее "захватит" или я не знаю как это объяснить. И еще, если между точкой будет 2 кровати к примеру, как он узнает что именно на той где я только что спал, нужно делать цикл для проверки и перебора координат? Как он это узнает? Просто судя по этой логике, он записывает точку кровати, или кровать знает своего владельца.
 
Я заплутался немного
Ну я так понимаю, есть getBedSpawnLocation(), который показывает координаты точки возрождения возле кровати и должно быть еще что то, что создает эту точку вокруг кровати, на которой игрок поспал. И именно на этой кровати, если кроватей рядом было много.
 
da7b863c97.jpg

Респавн игрока записан в самом игроке. Кровать лишь проверяется на наличие при респавне.
 
da7b863c97.jpg

Респавн игрока записан в самом игроке. Кровать лишь проверяется на наличие при респавне.
Ну я так понимаю, есть getBedSpawnLocation(), который показывает координаты точки возрождения возле кровати и должно быть еще что то, что создает эту точку вокруг кровати, на которой игрок поспал. И именно на этой кровати, если кроватей рядом было много.
Это ведь то что нужно?)
 
Отберет ближайшую койку и все. Никакой магии.
Как тогда можно по этой кровати определить ее владельца? Я уже писал сравнение координат точки возрождение и координаты блока которого игрок сломал, но там пришлось проверять по радиусу. Если рядом будут другие кровати и игрок сломает другую, которая рядом, сообщение все равно будет, даже если игрок там никогда не лежал.
Можно же обойтись как то без конфига ввиде бд, который хранит координаты кроватей игроков?
 
Как тогда можно по этой кровати определить ее владельца? Я уже писал сравнение координат точки возрождение и координаты блока которого игрок сломал, но там пришлось проверять по радиусу. Если рядом будут другие кровати и игрок сломает другую, которая рядом, сообщение все равно будет, даже если игрок там никогда не лежал.
Можно же обойтись как то без конфига ввиде бд, который хранит координаты кроватей игроков?
Ну шли сообщение при удалении последней кровати в той области.
 
Игра в цикле перебирает блоки возле кровати и проверяет можно ли туда заспавнить игрока, зачем столько костылей? Если очень хочешь могу найти код где он это делает.
тогда каким образом игра понимает, застроена ли кровать?(Именно кровать, а не спавн рядом с ним)
Чтобы проверить на доступность спавн, игре надо сначала знать, относительно какого блока собственно проверять

Поиск кровати рядом со спавном посредством перебора не будет работать, ведь в таком случае игра может находить не ту кровать, чего не происходит, не происходит как-раз из-за того, что игра проверяет доступность спавна именно относительно кровати, а не спавна на ней
 
Назад
Верх