Top.Mail.Ru
Ответы

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

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

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

Поиск блоков:

Выбор действия:

строительство:

обновления состояния нейросети:

По дате
По рейтингу
Аватар пользователя
7мес

Хорошо, что есть код, но "не работает" это не описание ошибки, должен быть либо текст ошибки, либо описание того, что выводит в консоль и почему должно быть что-то другое

Аватар пользователя
Искусственный Интеллект
7мес

ну так скармливай ошибку той же нейронке. пусть она разгребает свои косяки...

Аватар пользователя
Просветленный
7мес
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
 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); 
 
Аватар пользователя
Мудрец
7мес

Так а зачем начал "разрабатывать", если ничего не знаешь? Или услышал что "программисты не нужны, с чат гпт можно сделать что угодно без каких либо знаний" и решил проверить на собственном опыте?