- Регистрация
- 3 Май 2023
- Сообщения
- 73
Как сделать рамдомную установку блоков из списка
А можно тоже самое но на куби у меня куб 9x9 мне его надо заполнить. Это для авто шахты
Способ 1:
Создание массива:Событие чата → [Если имя равно (EndermanHack19) → [Если сообщение равно (@create blocks) → Создать/очистить массив (blocks) () → Установить предмет (%player%_item) (Магма)→ Добавить в конец массива (blocks) (%player%_item) → Установить предмет (%player%_item) (Алмазная руда) → Добавить в конец массива (blocks) (%player%_item) → ... По аналогии со всеми блоками ] ]
Поставка случайного блока:Событие ... → Получить размер массива (blocks) (%player%_count_blocks) → Установить случайное число (%player%_count_blocks) (1) (%player%_count_blocks) → Получить элемент массива (blocks) (%player%_count_blocks) (%player%_item) → Поставить блок (%player%_item) () () () (местоположение, куда ставить блок)
Значения:blocks - Массив (Постоянный)%player%_count_blocks - Динамическая переменная (Не сохранено)%player%_item - Динамическая переменная (Не сохранено)При первом заходе в игру напиши @create blocks, после чего создастся массив. Массив достаточно создать 1 раз, при повторном заходе в игру его можно не создавать.
Способ 2:
Создание функции:Функция (set_block) → Установить случайное число (%player%_num) (1) (10) → [Если значение (%player%_num) == (1) → Поставить блок () (Магма) () () (местоположение, куда ставить блок) ] → [Если значение (%player%_num) == (2) → Поставить блок () (Алмазная руда) () () (местоположение, куда ставить блок) ] → ... По аналогии со всеми блоками
Поставка блока:Событие ... → Вызвать функцию (set_block)
Значения:%player%_num - Динамическая переменная (Не сохранено)
Кстати можно упростить этот вариантСпособ 1:
Создание массива:Событие чата → [Если имя равно (EndermanHack19) → [Если сообщение равно (@create blocks) → Создать/очистить массив (blocks) () → Установить предмет (%player%_item) (Магма)→ Добавить в конец массива (blocks) (%player%_item) → Установить предмет (%player%_item) (Алмазная руда) → Добавить в конец массива (blocks) (%player%_item) → ... По аналогии со всеми блоками ] ]
Поставка случайного блока:Событие ... → Получить размер массива (blocks) (%player%_count_blocks) → Установить случайное число (%player%_count_blocks) (1) (%player%_count_blocks) → Получить элемент массива (blocks) (%player%_count_blocks) (%player%_item) → Поставить блок (%player%_item) () () () (местоположение, куда ставить блок)
Функция ->
Установить предмет();
...
#так со всеми блоками
Функция ->
Случайное значение(block = все переменные с блоками);
Поставить блок(block)
А можно тоже самое но на куби у меня куб 9x9 мне его надо заполнить. Это для авто шахты
Функция(fill_random):
Установить(%player%_fill_function = "in_process")
Получить значения из местоположения(%player%_top_southeast_point_X, %player%_top_southeast_point, Значение=X)
Получить значения из местоположения(%player%_block_pointer_X, %player%_block_pointer, Значение=X)
Если значение(%player%_block_pointer_X > %player%_top_southeast_point_X):
Получить значения из местоположения(%player%_bottom_northwest_point_X, %player%_bottom_northwest_point, Значение=X)
Установить значения в местоположение(%player%_block_pointer, %player%_block_pointer, X = %player%_bottom_northwest_point_X, Z += 1)
Получить значения из местоположения(%player%_block_pointer_Z, %player%_block_pointer, Значение=Z)
Получить значения из местоположения(%player%_top_southeast_point_Z, %player%_top_southeast_point, Значение=Z)
Если значение(%player%_block_pointer_Z > %player%_top_southeast_point_Z):
Получить значения из местоположения(%player%_bottom_northwest_point_Z, %player%_bottom_northwest_point, Значение=Z)
Установить значения в местоположение(%player%_block_pointer, %player%_block_pointer, X = %player%_bottom_northwest_point_X, Y += 1, Z = %player%_bottom_northwest_point_Z)
Получить значения из местоположения(%player%_block_pointer_Y, %player%_block_pointer, Значение=Y)
Получить значения из местоположения(%player%_top_southeast_point_Y, %player%_top_southeast_point, Значение=Y)
Если значение(%player%_block_pointer_Y > %player%_top_southeast_point_Y):
Установить(%player%_fill_function = "done")
Сообщение("Done.")
Если значение(%player%_fill_function != "done"):
Получить размер массива (blocks, %player%_count_blocks)
Установить случайное число (%player%_count_blocks, 1, %player%_count_blocks)
Получить элемент массива (blocks, %player%_count_blocks, %player%_item)
Поставить блок(%player%_item, местоположение=%player%_block_pointer)
Установить значения в местоположение(%player%_block_pointer, %player%_block_pointer, X += 1)
Ждать(1 тик)
Вызвать функцию(fill_random)
Событие игрока(Событие чата):
Если имя равно(EndermanHack19):
Если сообщение равно(@upgrade automine):
Если значение(%player%_fill_function != "in_process"):
Установить(%player%_bottom_northwest_point = нижний северо-западный угол области/куба)
Установить(%player%_top_southeast_point = верхний юго-восточный угол области/куба)
Установить(%player%_block_pointer = %player%_bottom_northwest_point)
Вызвать функцию(fill_random)
Сообщение("Заполнение началось.")
Иначе:
Сообщение("Ошибка! Функция заполнения уже запущена.")