Майнкрафт и 1С

28.07.21

Задачи пользователя - Игры

Создай свой мир через 1С.

Скачать исходный код

Наименование Файл Версия Размер
Тест внешней компоненты (MineCraftAddIn) [win x86 & x64]
.epf 91,86Kb
1
.epf 1.2 91,86Kb 1 Скачать

Есть классная игра MINECRAFT. Думаю, что она не нуждается в представлении.

Так вот, строить вручную большие и/или однотипные объекты из блоков там достаточно долго. Для этого придумано много средств автоматизации.

Если вас пугают такие страшные слова, как Python, Java, C++, тогда welcome сюда!

Теперь можно управлять игрой прямо из встроенного языка программирования 1С:Предприятие.

В прикрепленных файлах находится внешняя обработка, которая является ключом к успеху инструментом для взаимодействия с миром Майнкрафта.

 

Но обо всем по порядку.

 

Что нам нужно:

1) Оригинальная игра Minecraft (купите лицензию!)

2) Модифицированный сервер игры (НЕ оригинальный), который поддерживает плагины. Я использую Spigot

3) Плагин RaspberryJuice для взаимодействия с игрой извне

4) Внешняя обработка из данной статьи, в которой содержится нативная внешняя компонента для передачи команд в игру.

5) Свободно распространяемый драйвер умелыеруки.sys

6) Немного времени, чтобы всё это настроить

 

Пристегнитесь и полетели...

Для упрощения создадим bat'ник для запуска игрового сервера примерно со следующим содержимым

%path_to_java% -Xmx2048M -Xms2048M -jar spigot-Х.Y.Z.jar nogui

%path_to_java% - это путь к рантайму виртуальной машины Ява (Джава, если вам так удобнее)

Много памяти для Java лишним не будет, но всё равно нужно понимать, для чего нужны параметры Xmx и Xms (у себя я ставлю 4096M или даже 8192M, если за раз необходимо возводить 1М+ блоков)

Заметьте, что с релиза игры 1.17 требуется версия Java 16+

скачать можно здесь , и желательно прописать путь к java в переменную PATH для удобства вызова (инсталлятор это умеет делать)

 

При первом запуске батника создадутся необходимые директории и файлы

в файле eula.txt нужно на всё согласиться:

eula=true

в файле server.properties нужно поменять для ... для... , ну вы поняли, о чём я )

online-mode=false

В папку plugins закидываем raspberryjuice-1.12.1.jar - он хоть и старый и уже не поддерживается, но работает даже с майнкрафтом версии 1.17.1

в файле plugins\RaspberryJuice\config.yml можно поменять номер порта, также можно изменить отсчет координат игрового мира на абсолютные (по умолчанию стоит от последнего места респауна)

 

Повторно запускаем игровой сервер, первоначальный запуск длится чуть дольше за счет генерации мира

Запускаем клиент игры, заходим в "Сетевая игра" и подключаемся к своему локальному или нелокальному серверу

Сразу можно изменить режим игры на Креатив для конкретного игрока (информация выходит за рамки данной статьи), чтобы можно было спокойно строить.

Далее открываем внешнюю обработку в конфигураторе и/или в режиме предприятия и наслаждаемся пробуем творить!

Обработка создана с использованием асинхронности (из новых возможностей платформы 8.3.18), поэтому в именах методов и свойств добавляется "Асинх". Для работы в более ранних версиях платформ просто уберите "Асинх" и избавьтесь от "ожиданий".

 

Внешняя компонента реализует следующие методы:

 
 Connect (Подключиться)
 
 Disconnect (Отключиться)
 
 GetBlock (ПолучитьБлок)
 
 GetBlockWithData (ПолучитьБлокСДанными)
 
 SetBlock (УстановитьБлок)
 
 SetBlocks (УстановитьНесколькоБлоков)
 
 GetPlayerIDs (ПолучитьИдентификаторыИгроков)
 
 WorldSetting (НастройкаМира)
 
 SaveCheckpoint (СохранитьКонтрольнуюТочку)
 
 RestoreCheckpoint (ВосстановитьКонтрольнуюТочку)
 
 PostToChat (ОтправитьВЧат)
 
 GetTile (ПолучитьПозициюБлока)
 
 SetTile (УстановитьПозициюБлока)
 
 GetPos (ПолучитьПозицию) 
 
 SetPos (УстановитьПозицию)
 
 GetDirection (ПолучитьНаправление)
 
 SetDirection (УстановитьНаправление)
 
 GetRotation (ПолучитьВращение)
 
 SetRotation (УстановитьВращение)
 
 GetPitch (ПолучитьНаклон)
 
 SetPitch (УстановитьНаклон)
 
 PlayerSetting (НастройкаИгрока)

и свойства:

 
 Version (Версия)

 

Вот таким простым кодом:

Координаты = Компонента.ПолучитьПозициюБлока();
мнКоорд = СтрРазделить(Координаты, ",", Ложь);

РазмерОснования = 100;
РасстояниеОтМеня = 10;
БлокИД = 24; // песчанник

х = Число(мнКоорд[0]);
у = Число(мнКоорд[1]);
з = Число(мнКоорд[2])-РазмерОснования-РасстояниеОтМеня;

Для аппликата = 0 По РазмерОснования Цикл
	Для абсцисса = -(РазмерОснования-аппликата) По (РазмерОснования-аппликата) Цикл
		Для ордината = -(РазмерОснования-аппликата) По (РазмерОснования-аппликата) Цикл
			Компонента.УстановитьБлок(х+абсцисса, у+аппликата, з+ордината, БлокИД);
		КонецЦикла;
	КонецЦикла;
КонецЦикла;

За считанные секунды можно построить пирамиду Хеопса 1с-ника (в ней всего-то 1'373'701 блоков):

Пирамида из песчанника

 

Можно в 1 клик создать говорящие аналоговые часы, в которых стрелки двигаются и отображают системное время.

Идущие часы

 

Хотите еще больше приключений в Minecraft - попробуйте пройти собственный лабиринт любого произвольного размера:

 

Также есть функция очистки участка. Можете подготовить территорию к застройке или посмотреть, как выглядит шахта лифта мир игры в разрезе:

 

Можно запрограммировать всё, что вам захочется в мире Minecraft

 

Протестировано на платформе 8.3.19.1229.

 

Выражаю благодарность Infactum за хороший шаблон внешней компоненты!

 

 
 История изменений:

 

P.S. Готов принять конструктивную критику, пожелания, дополнения по улучшению данного продукта. Если нужно добавить поддержку Linux, пишите в комментах.

minecraft майнкрафт игры игра внешняя компонента TCP клиент алгоритм программирование обучение

См. также

Пасьянс Паук

Игры Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Классическая игра пасьянс Паук, на платформе 1С.

15.04.2024    739    36    user1693438    1    

10

Классическая игра "Змейка" на 1С (управляемые формы)

Игры Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Бесплатно (free)

Игра "Змейка" в классическом варианте на управляемых формах в 1С. Собирайте яблоки и ставьте рекорд!

09.02.2024    2909    161    emilyabochkova    12    

24

Ключворды в 1С

Игры Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Создавайте новые ключворды или разгадывайте существующие.

1 стартмани

05.02.2024    1643    1    alexpvs    0    

6

Игра "5 букв"

Игры Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Абонемент ($m)

Игра "5 Букв", сделанная на 1С. В игре загадано слово, существительное в единственном числе. Нужно отгадать загаданное слово.

1 стартмани

29.12.2023    1108    2    APTEM_SLV    9    

7

Пятнашки

Игры Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Цель - обучение хитростям нашей всеми любимой 1С.

28.11.2023    900    34    user1834118    0    

6

Кар магедон

Игры Платформа 1С v8.3 Конфигурации 1cv8 1С:ERP Управление предприятием 2 Россия Бесплатно (free)

Держись, российский геймдев, я уже еду. Бета тест, можно оформлять предзаказы, будет донатный магазин с модельками российского автопрома (по цене реальных авто).

01.11.2023    1767    39    user1834118    7    

11

Турнир по 1С. Танки на СКД

Игры Платформа 1С v8.3 Абонемент ($m)

Предлагаю свою версию турнира. Особенность этого турнира в том, что тут нет правильных или неправильных решений. Есть твое решение и решение твоих соперников. У кого решение лучше тот и победит.

1 стартмани

09.10.2023    1848    1    opx    1    

13

Плоский "Кубик Рубика"

Игры Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Вы можете собрать кубик Рубика? Я - только с помощью инструкции:). Попробуйте справиться с его плоским аналогом.

1 стартмани

29.05.2023    2084    7    Alxby    3    

13
Оставьте свое сообщение