Вы используете устаревший браузер

Ваш браузер устарел, и поэтому некоторые важные функции этого сайта могут не работать. Пожалуйста, обновитесь до более современного браузера. :(

Я пытаюсь сделать стелс, но возникла проблема

    Niodorato
    не в сети

    Новички

    Звание: Зелёный

    Трофеев: 1

    Сообщений: 8

    Мы с другом делаем карту в майнкрафте, и в ней планируем сделать сегмент с варденом, от которого нужно прятаться в шкафу, когда он агрессивен. Однако мы не можем сделать спадание агра у вардена.

    Сначала мы хотели сделать так, чтобы, когда игрок попадает на определенный блок, его режим игры быстро менялся, но майнкрафт не позволяет просто быстро переключать режим, поэтому мы сделали так, чтобы этот блок менялся на другой блок, который, в свою очередь, уже изменил режим игрока назад, а затем снова вернул первый. И так выходило, что блок 1 переключал гейммод, затем менялся на блок 2, и блок 2 в свою же очередь менял гейммод игрока обратно, а сам превращался в блок 1. Однако иногда возникали ситуации, когда мы могли переключиться на другой режим, но не могли вернуться к обычному, поэтому выбрали другой метод.
    Мы сделали так, что когда игрок попадал в определенный блок, варден телепортировался в другое место (где он умирал), и на его месте уже появлялся другой страж. Однако мы не учли, что, на самом деле, они могут появляться так бесконечно, из-за чего мы крашнули сервер (у нас уже была мысль, что мы потеряли мир лол). Из-за этого мы также отказались от этой идеи.
    Собственно, у нас есть вопрос - как еще мы можем реализовать стелс? Как можно убрать агр у вардена?

    #1 | 3 октября 2022 - 23:31

    Caman86
    не в сети

    ТруЪ Олдфаги-с

    Звание: Чоткий паря

    Трофеев: 12

    Сообщений: 1943

    Симпатий: 329

    Niodorato,
    Для этого существуют теги, а точнее EntityData. На вики написаны все необходимые вещи.
    Изменять всё это дело лучше через команду /data.

    Мои сборки:
    MystMag (1.12.2)
    ReachForTheStars (1.12.2)
    TechGears (1.16.5)

    #2 | 4 октября 2022 - 02:50

    Niodorato
    не в сети

    Новички

    Звание: Зелёный

    Трофеев: 1

    Сообщений: 8

    Caman86,
    Спасибо огромное, и правда сработало.

    #3 | 4 октября 2022 - 08:58

    Niodorato
    не в сети

    Новички

    Звание: Зелёный

    Трофеев: 1

    Сообщений: 8

    Caman86,
    Всё оказалось не так просто по началу, как вообще казалось. Да, при становлении на блок варден переставал реагировать на игрока и забывал его, однако после того, как игрок сойдёт с этого блока - варден моментально вспомнит игрока, и снова станет за ним бежать. Я пробовал как и менять значение на 0, так и удалять его - всё бестолку. Менял я suspects и anger.
    И всё же - нет другого способа сделать так, что бы варден после становления на блок не вспоминал игрока до тех пор, пока он опять же не издаст звук?

    #4 | 9 октября 2022 - 18:23

    Caman86
    не в сети

    ТруЪ Олдфаги-с

    Звание: Чоткий паря

    Трофеев: 12

    Сообщений: 1943

    Симпатий: 329

    Niodorato,
    Покажи команду обнуления. По твоему описанию это похоже либо на баг, либо на то, что ты неправильно (в данном контексте) используешь команду.

    Мои сборки:
    MystMag (1.12.2)
    ReachForTheStars (1.12.2)
    TechGears (1.16.5)

    #5 | 10 октября 2022 - 02:25

    Niodorato
    не в сети

    Новички

    Звание: Зелёный

    Трофеев: 1

    Сообщений: 8

    /execute at @a as @e[type=warden,name="Варден"] if block ~ ~-2 ~ minecraft:copper_ore run data merge entity @s {PersistenceRequired:0b,Brain:{memories:{"dig_cooldown":{value:{},ttl:1200L}}}
    ,suspects:0,CustomName:'{"text":"Варден"}'}
    /execute at @a as @e[type=warden,name="Варден"] if block ~ ~-2 ~ minecraft:copper_ore run data remove entity @s suspects

    #6 | 10 октября 2022 - 18:40

    Caman86
    не в сети

    ТруЪ Олдфаги-с

    Звание: Чоткий паря

    Трофеев: 12

    Сообщений: 1943

    Симпатий: 329

    Niodorato,
    suspects - TAG_LIST. Т.е. ты должен ставить ему значение не 0, а {}.
    Я бы удалял не suspects, а anger и memory{minecraft:angry_at} (он, вроде как, для вардена тоже актуален).

    PersistenceRequired ставить надо на 1, если я правильно понял что ты хочешь сделать (чтобы моб не деспавнился от тиков мира, только вручную (через команду kill, например) его можно убить).
    Сообщение отредактировал Caman86 10 октября 2022 - 20:09

    Мои сборки:
    MystMag (1.12.2)
    ReachForTheStars (1.12.2)
    TechGears (1.16.5)

    #7 | 10 октября 2022 - 20:08

    Niodorato
    не в сети

    Новички

    Звание: Зелёный

    Трофеев: 1

    Сообщений: 8

    Caman86,
    И снова у меня посыпалось всё. По сути да, после становления на блок он перестаёт агрессировать, но вот если уйти с блока - он останется во всё таком же мирном состоянии, а через пару секунд либо может сразу уйти под землю, либо перед этим просто замрёт и перестанет вообще что-либо делать.
    Вот команда, которую я пробовал: /execute at @a as @e[type=warden,name="Варден"] if block ~ ~-2 ~ minecraft:copper_ore run data merge entity @s {PersistenceRequired:1b,Brain:{memories: {"angry_at":{value:3}, "dig_cooldown":{value:1,ttl:1200L}}},anger:{},CustomName:'{"text":"Варден
    "}'}
    Просто тут конкретно надо, что бы он забывал в момент становления на блок и всё то время, пока игрок снова не привлечёт его внимания, но тут всё одна фигня выходит по итогу.

    Niodorato,
    Прошу прощения, в angry_at и dig_cooldown value стоит на {}.
    Сообщение отредактировал Niodorato 18 октября 2022 - 22:35

    #8 | 18 октября 2022 - 22:32

    Caman86
    не в сети

    ТруЪ Олдфаги-с

    Звание: Чоткий паря

    Трофеев: 12

    Сообщений: 1943

    Симпатий: 329

    Niodorato,
    digCooldown ставь побольше (макс. значение там может быть просто ооочень огромным, ведь это тип данных Long). Сейчас он уходит после 1200 тиков (1200/20 = 60 секунд).
    anger ставь тогда не меньше 0, думаю 50 должно хватить. Это будет показывать то, насколько он заинтересован игроком.
    Если я правильно понял, он совсем не реагирует? Даже если прямо перед ним попорыгать?
    Сообщение отредактировал Caman86 19 октября 2022 - 02:51

    Мои сборки:
    MystMag (1.12.2)
    ReachForTheStars (1.12.2)
    TechGears (1.16.5)

    #9 | 19 октября 2022 - 02:44

    Niodorato
    не в сети

    Новички

    Звание: Зелёный

    Трофеев: 1

    Сообщений: 8

    Caman86,

    Я слегка поигрался со значением anger, и понял кое что. Когда оно 1 или выше - то варден после схождения с блока ВСЕГДА на тебя реагирует и рычит, но опять же не может побежать за игроком, или убить его - ибо он по какой то причине сразу же после схождения с блока так же и перестаёт издавать признаки жизни. Например, его можно спокойно бить а ему пофигу будет.

    Однако при значении anger {}, после схождения с блока, он начнёт слегка передвигаться, а затем через секунд 5 зароется. Причём это вообще не зависит от параметра digCooldown, он сам по себе уползает просто. Причём во время передвижения он всё так же равнодушен к игроку - его можно в это время легко побить.

    #10 | 19 октября 2022 - 09:27

    Caman86
    не в сети

    ТруЪ Олдфаги-с

    Звание: Чоткий паря

    Трофеев: 12

    Сообщений: 1943

    Симпатий: 329

    Niodorato,
    Интересно как.
    Попробуй обнулять не лист anger, а значение anger внтури suspects.

    Мои сборки:
    MystMag (1.12.2)
    ReachForTheStars (1.12.2)
    TechGears (1.16.5)

    #11 | 19 октября 2022 - 10:47

    Niodorato
    не в сети

    Новички

    Звание: Зелёный

    Трофеев: 1

    Сообщений: 8

    Caman86,
    Ладно, я в итоге отчаялся, и, думаю, что даже прошлый вариант мне подойдёт. Тут всё же проблема именно в закапывании, хоть у него есть и кулдаун, но он всё равно как то сам по себе это делает, а это уже фиг проконтролируешь командными блоками (а если и можно - то я задолбался с этим разбираться, честно).
    Спасибо за ответы, и жаль, что это ни к чему не привело.

    #12 | 19 октября 2022 - 12:15

    Caman86
    не в сети

    ТруЪ Олдфаги-с

    Звание: Чоткий паря

    Трофеев: 12

    Сообщений: 1943

    Симпатий: 329

    Niodorato,
    С /data modify entity [UUID] anger set value {suspects:[],anger:0} работает идеально. Если твой варден не будет меняться, попробуй этот вариант.
    У меня команда выглядит так (блок под игроком медная руда - не под блоком под игроком):
    /execute at @a if block ~ ~-1 ~ minecraft:copper_ore run data modify entity 042d5a79-f6e4-42fd-81f0-727edc89a61c anger set value {suspects:[],anger:0}

    Мои сборки:
    MystMag (1.12.2)
    ReachForTheStars (1.12.2)
    TechGears (1.16.5)

    #13 | 19 октября 2022 - 14:44

    Niodorato
    не в сети

    Новички

    Звание: Зелёный

    Трофеев: 1

    Сообщений: 8

    Caman86,
    ДА, это именно то!
    Огромная благодарность за помощь, теперь оно и правда полностью работает (хоть я и с прошлого сообщения уже реально отчаялся и думал, что это никак не реализовать).

    #14 | 19 октября 2022 - 15:02

Статистика форума

Создано тем
14350
Написано сообщений
872106
Пользователей
377845
Новый участник
k4rnei

Администраторы | Главные редакторы | Модератор | Дедушки | Журналисты | HENTAI BOY | Goldфаги | Журналисты-олдфаги | ТруЪ Олдфаги-с | ТруЪ Плагинщик | Олдфаги | true Художник | Модератор бездны | Картоделы | XXXL ПХЛ | Просто хорошие люди | Посетители | Новички

Последние сообщения с форума