Cakeov Опубликовано 9 июля, 2025 Поделиться Опубликовано 9 июля, 2025 Я хотел сделать сборку для игры со своим другом, основной её механникой должна быть технологическая гонка, и каждые 50 минут, должен происходить рейд, привязанный к игроку, рейд должен быть считатся проигранным если уничтожены все блоки одного типа(в моём случае это механизмы из create), и не требовать эффекта bad omen, сначала я хотел попробовать сделать это через epic siege mod, но там это сделать нельзя, зато я сделал так чтобы мобы атаковали эти самые блоки. Потом я попробовал делать это через Kubejs, но так, как я незнаю языка, то просил deepseek мне писать коды, они нормально запускаются, kubejs пишет что ошибок нету, в логах появится сообщения от kubejs, с содержанием "Test", это для проверки того, что он работает. Но за пределами логов, ничего не происходит, сообщения в чате не появляются, мобы не спавняться. Может кто-то знает что делать чтобы оно работало? Ну или если по наглеть то написать мне код на работу такого рейда и мобов которые идут напрямую к блокам(можно указать любой, я потом поправлю список). Но как я понимаю второе это из области фантастики. Версия kubejs 6.5 Наработки от deepseek (есть несостыковки с 6.5 Из-за изменений синтаксиса, и использованием старых библиотек deepseek'ом) console.log('RAID SYSTEM: Script loaded'); // Правильный синтаксис для KubeJS 6.5 ServerEvents.tick(event => { // Проверяем каждые 15 секунд (300 тиков = 15 сек) if (event.server.ticks % 300 !== 0) return; // Для каждого игрока event.server.players.forEach(player => { try { // Спавним разбойника в 5 блоках от игрока const pillager = player.level.createEntity('minecraft:pillager'); pillager.setPos( player.x + (Math.random() * 10 - 5), player.y, player.z + (Math.random() * 10 - 5) ); pillager.patrolLeader = true; player.level.addFreshEntity(pillager); // Сообщение игроку player.tell('Raid started!'); // Логирование console.log('Spawned pillager for ' + player.name.string); } catch (e) { console.error('Raid error: ' + e); } }); }); // 1. Импорт необходимых методов const { onServerTick } = require('kubejs/server'); // 2. Настройки рейдов const RAID_INTERVAL = 15 * 20; // 15 секунд в тиках const LOSE_BLOCKS = [ 'create:shaft', 'create:cogwheel', 'create:large_cogwheel' ]; // 3. Новый синтаксис обработки тиков onServerTick(event => { if (event.server.ticks % RAID_INTERVAL !== 0) return; const players = event.server.players; if (players.length === 0) return; players.forEach(player => { const pos = player.blockPosition(); // Спавн капитана рейда player.level.spawnEntity('minecraft:pillager', pos.x + 5, pos.y, pos.z + 5); player.tell('§cРейд начался!'); // Проверка условий поражения const area = player.level.getBlockScan(pos, 30); const blocksDestroyed = LOSE_BLOCKS.every(blockId => !area.find(b => b.id === blockId) ); if (blocksDestroyed) { player.tell('§cВы проиграли! Шестерёнки уничтожены!'); player.potionEffects.add('minecraft:darkness', 200, 0); } }); }); console.log('ESM Raids: Скрипт загружен!'); Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
В теме 1 сообщение
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти