Достижение за посещение структуры

Версия Minecraft
1.12.2

GoogleTan

Картошка :3
1,354
43
310
У меня есть структура, при посещении которой я хочу выдавать достижение. Как это можно сделать?
 

tox1cozZ

aka Agravaine
8,456
598
2,893
При генерации добавляешь коробку своей структуры в WSD. В апдейте игрока раз в 10 секунд, например, проверяешь нет ли ачивки и проходишь по списку, смотришь находится ли игрок в коробке. Если да - выдаешь ачивку.
 

GoogleTan

Картошка :3
1,354
43
310
А если я имею доступ к провайдеру? Там я видела частями как делается ачивка с городом, но там надо MapGenBase, а переделать свою структуру не удалось(попыток было немного, так что может просто накосячила).
 

Sainthozier

Стрелочник
623
11
369
Чекай ачивку find_fortress, которую триггерит PositionTrigger. Хотя вряд ли разберёшься, попробуй сделать, как написал @tox1cozZ.
А если лень париться, можешь и свой триггер запилить, какой-то супер изичный и дырявый. Например, если ты юзаешь в своей структуре уникальные блоки какие-то, которые нельзя скрафтить/получить обычным образом, то можешь выдавать ачивку, когда игрок находит этот блок. Посмотри в сторону EnterBlockTrigger, у меня сейчас нет возможности чекнуть что он там делает, возможно подойдёт.
 
7,099
324
1,510
Вообще, есть такая штука как
Java:
((WorldServer) event.getWorld()).getChunkProvider()
    .isInsideStructure(event.getWorld(), "<structure name>", player.getPosition())
В ванили его захардкодили, но если у тебя кастомный провайдер, то ты можешь переопределить этот метод(isInsideStructure) для поддержки любых зареганных структур
 
Сверху