[ЕСТЬ ОТВЕТ] Глобальное хп у блока

wolglux

Участник
Регистрация
4 Июн 2023
Сообщения
3
Вдохновился идеей с /ad ant, что есть поле, на котором спавнятся блоки, на них тыкаешь и тем самым каждую секунду наносишь урон, отображаемый через голограмму. Хп не личный для каждого и никуда не исчезает, если начать бить другой блок. Самому мне никак не приходит мысль, через что это лучше всего реализовать. Ваши идеи?
 

Mee8YT

Эксперт
Регистрация
3 Май 2023
Сообщения
357
Форматирование (BB-код):
Событие игрока - Левый клик
Если игрок - Блок равен (либо смотрит на блок, смотри что у тебя сработает){
    Присв переменную - Объединить текст (%player%_break_block_cord_txt = Игровое_значение[Местоположение целевого объекта] )
    Присв переменную - Разделить текст на элементы (МАССИВ: %player%_break_block_data_array, ТЕКСТ1: (%player%_break_block_cord_txt, ТЕКСТ2: пусто)
    Действие над массивом - Получить элемент (МАССИВ: %player%_break_block_data_array, ИНДЕКС: 1 , ВЫВОД: %player%_break_block_x)
    Действие над массивом - Получить элемент (МАССИВ: %player%_break_block_data_array, ИНДЕКС: 2 , ВЫВОД: %player%_break_block_y)
    Действие над массивом - Получить элемент (МАССИВ: %player%_break_block_data_array, ИНДЕКС: 3 , ВЫВОД: %player%_break_block_z)
    Присв переменную - Объединить текст (%player%_break_block_name = "block_" + %player%_break_block_x + "_", + %player%_break_block_y + "_" + %player%_break_block_z)
    Игровое действие - Заспавнить моба (Корда: где-то рядом с игроками, имя моба: (%player%_break_block_name)
    Присв переменную - Равно (%player%_break_stat = 0)
    Выбрать объект - Выбрать моба по условию - Если существо - Имя равно (%player%_break_block_name, ПЕРЕКЛЮЧАТЕЛИ оба нажми)
    Присв переменную - Отнять (%selected%_health -= 1)
    Если переменная - Сравнить число (%selected%_health >= 1){
        Действие игрока [ИГРОК ПО УМОЛЧАНИЮ] - Отправить сообщение ("Осталось поломать " + %selected%_health + "раз")
    }
    Иначе {
        Присв переменную - Равно (%player%_break_stat = 1)
    }
    Присв переменную - Равно (%player%_break_count = %selected%_health)
    Действие над игроком [ВЫБОРКА] - Удалить сущность
    Выбрать объект - Игрок по умолчанию
    Присв переменную - Объединить тексты (%player%_break_display_name = "&c&l " + )
    Если переменная - Равно (%player%_break_stat == 1) {
        Игровое действие - Поставить блок (Игровое_значение[Местоположение целевого объекта], воздух)
        Игровое действие - Создать голограмму (ИМЯ ГОЛОГРАММЫ: "%player%_destroy_block" КОРДА: Игровое_значение[Местоположение целевого объекта] ТЕКСТ: %player%_break_display_name)
    }
    Иначе {
        Игровое действие - Удалить голограмму ("%player%_destroy_block")
    }
}

Событие игрока - Вход
Игровое действие - Запустить цикл (breakable_block)

Цикл - breakable_block (100 тиков)
Выбрать объект - Случайный игрок
Присв переменную - Рандомное число (breakable_block.randint_x ЧИСЛО1: x_start ЧИСЛО2: x_final)
# x_start - это координата X от которой может поставиться твой блок
# x_final - это координата X до которой может поставиться твой блок
Присв переменную - Рандомное число (breakable_block.randint_z ЧИСЛО1: z_start ЧИСЛО2: z_final)
# z_start/final - аналогичный x_start/final
Присв переменную - Установить Местоположение (ПЕРЕМЕННАЯ: breakable_block.cord КОРДА: любая X: breakable_block.randint_x Y: любой Z: breakable_block.randint_z)
Игровое действие - Поставить блок (КОРДА: breakable_block.cord)
Присв переменную - Объединить текст (breakable_block.name = "block_" + breakable_block.randint_x + "_", + *любое число + "_" + breakable_block.randint_z)
Игровое действие - Заспавнить моба (корда без разницы, деспавн: выкл имя: breakable_block.name)
Выбрать объект -  последний спавн моба
Присв переменную - Равно (%selected_health% = 10) # Любое здоровье

Событие игрока - Выход
Игровое действие - Удалить голограмму ("%player%_destroy_block")
Сообщение объединено:

Я хз как там, но как я понял - тебе надо именно это
 

wolglux

Участник
Регистрация
4 Июн 2023
Сообщения
3
Отстроил код, затестил и как итог:

- с самым главным,а именно кликом какие то траблы — я тыкаю на блок и он тут же заменяется, а моб появляется и мгновенно исчезает, без сообщений и голограмм

- вот только сейчас увидел, что участок превышает лимит мобов, хд. Видимо из за цикла?
 

Mee8YT

Эксперт
Регистрация
3 Май 2023
Сообщения
357
Отстроил код, затестил и как итог:

- с самым главным,а именно кликом какие то траблы — я тыкаю на блок и он тут же заменяется, а моб появляется и мгновенно исчезает, без сообщений и голограмм

- вот только сейчас увидел, что участок превышает лимит мобов, хд. Видимо из за цикла?
мб из-за цикла
у мл в последнее время с мобами траблы, могут не пропадать
 

legendaleto

Участник
Регистрация
31 Янв 2024
Сообщения
17
Записал для тебя небольшое видео:
Настоящий герой слав это не тот кто в сияющих доспехах и в красивой позе... У меня кстати проблемы появились с твоим кодом: у меня блок дамажится по 2
 

legendaleto

Участник
Регистрация
31 Янв 2024
Сообщения
17
Записал для тебя небольшое видео:
Бро топ код спс большое только я хочу сделать глобал вайп этих блоков (их много и их хп я сохранил) но как это сделать я хз типо надо выбрать все блоки и сбросить у них эти переменные
 
Сверху