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

Эксперты в области node.js помогите мне пожалуйста (нейросеть)

Redstone ban Знаток (305), на голосовании 1 день назад
Дело вот в чем, написал код нейросети на python, и для того чтобы нейросеть взаимодействовала с майнкрафтом в данном случае 1.16.5, написан код на node.js через который она подключаеться, но проблема вообще не в этом, а в том что у меня в коде есть функции которые отвечают за постройку блоками, к сожалению именно в node.js мои знания заканчиваються на gpt напиши мне код, но даже он тупит и не может внятно что-то исправить, поэтому решил обратиться к знающим людям чтобы продолжить разработку моего личного проекта, далее я покажу основные строчки кода которые отвечают именно за строительство блоков (код python взаимодействует с node.js но никак не связан с этими проблемами тк просто отвечает за выбор блоков и места добычи и строительства)

*Изменено добыча блоков работает, не работает строительство

Поиск блоков:Выбор действия:строительство:обновления состояния нейросети:
Голосование за лучший ответ
Dlazder Мудрец (17156) 1 месяц назад
Так а зачем начал "разрабатывать", если ничего не знаешь? Или услышал что "программисты не нужны, с чат гпт можно сделать что угодно без каких либо знаний" и решил проверить на собственном опыте?
Redstone banЗнаток (305) 1 месяц назад
Зачем что-то писать если ты задаешь такие вопросы? со всем другим, я спокойно сам справляюсь) Вот тебе пища для размышлений, поставь себя на место с этими 1235 строками кода, и попробуй там не утонуть, вот лично у меня после сладких сновидений, кошмар все это вспоминать, какие там ошибки и в чем проблемы.
Dlazder Мудрец (17156) Redstone ban, со всем другим это с чем?
Александр Искусственный Интеллект (303789) 1 месяц назад
ну так скармливай ошибку той же нейронке. пусть она разгребает свои косяки...
Анонимус Просветленный (22819) 1 месяц назад
 const mineflayer = require('mineflayer'); 

// Создаем бота
const bot = mineflayer.createBot({
host: 'localhost', // IP сервера
port: 25565, // Порт сервера
username: 'Bot', // Имя бота
version: '1.16.5' // Версия Minecraft
});

let mode = 'build'; // Режим работы бота

// Слушаем событие "spawn", когда бот появляется в мире
bot.on('spawn', () => {
console.log('Бот появился в мире');
setInterval(() => {
checkHealth();
if (mode === 'build') {
buildBlocks();
} else {
gatherResources();
}
}, 10000); // Каждые 10 секунд
});

// Функция для проверки здоровья бота
function checkHealth() {
if (bot.health < 5) {
console.log('Здоровье низкое, возвращаемся к спавну');
bot.chat('Я возвращаюсь к спавну!');
bot.navigate.to(bot.spawnPoint); // Возвращаемся к спавну
}
}

// Функция для строительства блоков
async function buildBlocks() {
const startX = bot.entity.position.x; // Начальная позиция X
const startY = bot.entity.position.y; // Начальная позиция Y
const startZ = bot.entity.position.z; // Начальная позиция Z

// Убедимся, что у бота есть блоки в инвентаре
const item = bot.inventory.items().find(i => i.name === 'stone'); // Измените на нужный тип блока
if (!item) {
console.log('У бота нет блоков для строительства');
return;
}

for (let i = 0; i < 10; i++) {
const targetPosition = bot.entity.position.offset(0, i, 0); // Позиция для строительства
await placeBlock(targetPosition, item); // Ставим блок
}
}

// Функция для установки блока
function placeBlock(position, item) {
return new Promise((resolve, reject) => {
bot.placeBlock(bot.blockAt(position), new mineflayer.Vec3(0, 1, 0), (err) => {
if (err) {
console.error(`Ошибка при установке блока: ${err}`);
reject(err);
} else {
console.log(`Блок установлен на позиции (${position.x}, ${position.y}, ${position.z})`);
resolve();
}
});
});
}

// Функция для сбора ресурсов
async function gatherResources() {
const block = bot.findBlock({
matching: ['stone', 'dirt'], // Блоки, которые мы хотим собирать
maxDistance: 16
});

if (block) {
console.log(`Собираем блок: ${block.name}`);
await bot.dig(block);
} else {
console.log('Нет доступных блоков для сбора');
}
}

// Случайное перемещение
function moveRandomly() {
const x = Math.floor(Math.random() * 10) - 5; // Случайное смещение по X
const z = Math.floor(Math.random() * 10) - 5; // Случайное смещение по Z
const targetPosition = bot.entity.position.offset(x, 0, z);
bot.navigate.to(targetPosition);
}

// Переключение режимов
bot.on('chat', (username, message) => {
if (username === bot.username) return; // Игнорируем сообщения от самого бота
if (message === 'toggle') {
mode = (mode === 'build') ? 'gather' : 'build';
bot.chat(`Режим переключен на: ${mode}`);
}
});

// Обработка ошибок
bot.on('error', (err) => {
console.error(`Ошибка бота: ${err}`);
});

bot.on('end', () => {
console.log('Бот отключен');
});

// Запускаем случайное перемещение каждые 15 секунд
setInterval(moveRandomly, 15000);
Semen Kapacuk Гуру (3857) 1 месяц назад
Хорошо, что есть код, но "не работает" это не описание ошибки, должен быть либо текст ошибки, либо описание того, что выводит в консоль и почему должно быть что-то другое
Похожие вопросы