Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Можно ли сделать так что бы игрока с определенной team нельзя было бить рукой?

Артём Аветисян Ученик (94), закрыт 18 часов назад
Можно ли сделать так что бы игрока с определенной team нельзя было бить рукой? Я делаю мини игру в майнкрафте на командных блоках. Мне нужно что бы игрока с team "Maniak" нельзя было бить рукой. Что бы бить можно было только золотой мотыгой или железной мотыгой.
Лучший ответ
Mirae On Гуру (4654) 21 час назад
ку, не уверен если актуально, но можешь попробовать вот так:
Первый способ.
1. /scoreboard teams add noPvP
2. /scoreboard teams option noPvP friendlyFire false
3. /scoreboard teams join noPvP @a
4. /execute as @a[nbt={SelectedItem:{id:"minecraft:wooden_hoe"}}] run scoreboard teams leave noPvP @s
5. /execute as @a[nbt=!{SelectedItem:{id:"minecraft:wooden_hoe"}}] run scoreboard teams join noPvP @s

----------
Команда 1 создает команду (team) под названием "noPvP"

Команда 2 отключает дружественный огонь (friendlyFire) - игроки в одной команде не могут атаковать друг друга

Команда 3 добавляет всех игроков в эту команду по умолчанию

Команда 4 проверяет, держит ли игрок деревянную мотыгу (wooden_hoe) и если да - удаляет его из команды, позволяя атаковать других

Команда 5 возвращает игрока в команду, когда он перестает держать мотыгу, снова защищая его от PvP

Команду 4 в повторяющийся или цикличный не помню
Команду 5 в аналогично

minecraft:wooden_hoe - предмет, можешь заменить
---------

Второй способ

1. /scoreboard teams add Maniak
2. /scoreboard teams option Maniak friendlyFire false
3. /execute as @a[team=Maniak] run attribute @s generic.attack_damage base set 0 -- Повторяющийся командный блок (Always Active) -- защита от ударов рукой
4. /execute as @a[team=Maniak,nbt={SelectedItem:{id:"minecraft:wooden_hoe"}}] run attribute @s generic.attack_damage base set 1 -- Цепочный командный блок (Conditional, Always Active) ( пробуй разные, я не помню)) (если несколько предметов - замени wooden_hoe и дублируй команду) -- урон, если игрок держит мотыгу
5. /execute as @a at @s unless entity @s[nbt={SelectedItem:{id:"minecraft:golden_hoe"}}] unless entity @s[nbt={SelectedItem:{id:"minecraft:iron_hoe"}}] run damage @e[team=Maniak,distance=..3] 0 entity @s -- Разрешаем бить Maniak, в нашем случае золотая и железная мотыга. -- Повторяющийся командный блок (Always Active)
Артём Аветисян Ученик (94) 21 час назад
Это не совсем то что нужно но я попробую сделать что то на подобе, просто у меня 2 единственные роли: Maniak и Survivors и мне нужно что бы игроки команды survivors могли бить игрока команды Maniak только железной или золотой мотыгой.
Mirae On Гуру (4654) Артём Аветисян , можешь вот так попробовать обнуляем базовый урон survivors чтобы без мотыги не били повторяющийся командный блок /execute as @a[team=Survivors] run attribute @s generic.attack_damage base set 0 возвращаем урон, если держат мотыгу цепочный командный блок (Conditional, Always Active) /execute as @a[team=Survivors,nbt={SelectedItem:{id:"minecraft:iron_hoe"}}] run attribute @s generic.attack_damage base set 4 /execute as @a[team=Survivors,nbt={SelectedItem:{id:"minecraft:golden_hoe"}}] run attribute @s generic.attack_damage base set 4
Остальные ответы
Alta Parrott Мастер (1038) 21 час назад
ну короче берёшь командный блок и делаешь чтоб у maniak защита рука не дамажит только мотыги
Анна Субхонкулова Мастер (1915) 21 час назад
ну типо да можно через /tag и /execute и /damage только руками нельзя прям сделать
Edythe Dolan Знаток (390) 21 час назад
короче ставь команду чтоб у maniak был эффект invulnerable от руки а хилку для мотыги
Артём Аветисян Ученик (94) 20 часов назад
14:05:24 INFO]: [@: Entity 'as' cannot be found]
[14:05:24 INFO]: [@: Entity 'as' cannot be found]
[14:05:24 INFO]: [@: Entity 'as' cannot be found]
[14:05:24 INFO]: [@: Entity 'as' cannot be found]
[14:05:24 INFO]: [@: Entity 'as' cannot be found]
[14:05:25 INFO]: [@: Entity 'as' cannot be found]
[14:05:25 INFO]: [@: Entity 'as' cannot be found]
В командной строке сервера спам того что это ентити as не найдено. Может надо чуть изменить команду?
Артём Аветисян Ученик (94) 20 часов назад
ой
не в тот комент
Angla Cheesman Знаток (439) 20 часов назад
да можно просто командой /team add и через /execute запретить урон рукой а мотыгой оставить
Camellia Woodward Профи (655) 20 часов назад
делай проверку на урон если команда maniak и предмет не мотыга просто отменяй урон
Guy Loaiza Знаток (406) 20 часов назад
делай через команду /entitydata или /tag маньяку эффект невидимости чтоб рукой не билось мотыгой можно
Noreen Judd Знаток (462) 20 часов назад
можно делай командный блок чтоб у maniaк был эффект невидимости только от кулаков остальные предметы работают
оксана кленц Знаток (252) 19 часов назад
Dont Hit Teammates. Он позволяет настроить список игроков, по которым не будут проходить удары, в том числе удары товарищей по команде и вот команда /team modify <команда> friendlyFire false скачай мод
Trey Batchelor Знаток (360) 19 часов назад
можно просто через командные блоки дать маньяку эффект бессмертия от руки а мотыгой разрешить
Adan Gillian Мастер (1227) 19 часов назад
можно сделать через командные блоки чтоб если бьешь рукой по маньяку урон не шел
Степан Руденко Ученик (171) 13 часов назад
можно сделать через командные блоки чтоб если бьешь рукой по маньяку урон не шел
Похожие вопросы