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

28.07.21

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Тест внешней компоненты (MineCraftAddIn) [win x86 & x64]
.epf 91,86Kb ver:1.2
1
1 Скачать (4 SM) Купить за 2 750 руб.

Есть классная игра 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 Бесплатно (free)

Игра Змейка на объектах форм, а ля ООП, или что можно сотворить за час )))

20.02.2025    1282    52    starik-2005    8    

15

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

Когда охота "настоящего" ООП, но не знаешь, как его взять в 1С. Массив форм в форме нам поможет )))

18.02.2025    1139    37    starik-2005    14    

19

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

Знакомы с серией игр Football Manager? Вся суть подобных симуляторов состоит в том, чтобы путем грамотного управления и контроля за спортивным, инфраструктурным и финансовым учетом привести свой футбольный клуб к успехам. Это ли не задача для платформы 1С - помочь в контроле учета предприятия (читай футбольного клуба)?

10.01.2025    3812    93    KamranV21    4    

32

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

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

29.12.2024    660    35    miniogn    0    

6

Игры Платформа 1С v8.3 1C:Бухгалтерия Бесплатно (free)

Я Федор, ведущий разработчик 1С. На хакатоне компании команда под моим руководством перенесла игру «Герои меча и магии III» на платформу 1С. Расскажу, как устроена конфигурация «1С: Герои меча и магии» с технической точки зрения.

10.10.2024    50682    PROSTO-1C    55    

168

Игры Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия 1С:Бухгалтерия 3.0 Россия Бесплатно (free)

Классическая игра Морской бой, с необычным дизайном. Из особенностей: Поле игрока формируется автоматически, но есть возможность корректировать расстановку фигур. Пример игры в приложенном видео.

29.07.2024    1490    87    user1693438    3    

9

Игры Платформа 1С v8.3 1C:Бухгалтерия Россия Бесплатно (free)

Простейшие крестики-нолики с маленьким полем.

24.07.2024    1505    108    user2015123    0    

7

Игры Платформа 1С v8.3 1C:Бухгалтерия 1С:Бухгалтерия 3.0 Бесплатно (free)

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

15.04.2024    2101    101    user1693438    3    

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