Свиток антигравитации код
Creado el: 18 de enero de 2025
Creado el: 18 de enero de 2025
Thinking through
OK, let me see: I’m trying to create a script for an antigravity scroll item in LiteloaderBDS. This script should cause a levitation effect for 5 seconds and include a cooldown for repeated use.
Crafting the cooldown
I’m setting cooldowns to manage item use, like the antigravity scroll. The code ensures proper item handling and precise cooldown management for a seamless gameplay experience.
Mapping out logic
Crafting JavaScript code for an antigravity scroll with a cooldown, I focus on minecraft:paper
as the item name and a 1-minute cooldown.
Mapping cooldown logic
OK, I'm figuring out how to apply levitation for 5 seconds with a cooldown. The mention of "3 pieces" might suggest specific uses or a cooldown for multiple scrolls.
Weighing choices
I’m thinking through mc.runcmd
vs. target.addEffect
for applying the levitation effect. Documenting these options to ensure the ideal method for the antigravity scroll functionality.
Applying cooldown mechanics
I’m setting a 1-minute cooldown and using a range of 10-15 blocks. This ensures precise usage control and leverages the antigravity scroll's levitation effect efficiently.
Implementing cooldowns
I’ve crafted a JavaScript snippet for the antigravity scroll, integrating cooldown management and applying a levitation effect to nearby players within a 10-block range.
Adjusting my approach
Renaming the dictionary to "antigravityScroll" or "items" allows for multiple items and maintaining cooldown logic while skipping the "onAte" part.
Revisiting the approach
I'm thinking of removing the "onAte" part to stick strictly to the "onUseItem" logic. This ensures the cooldown process remains streamlined and effective.
Integrating cooldowns
I’m combining cooldown logic with antigravity scroll functionality. The snippet uses a cooldown variable and checks for the item type before applying a levitation effect to nearby players.
Refining the logic
Excluding the player themselves while applying the levitation effect. Using quotes for names with spaces, I’m finalizing the code snippet to ensure proper player designation.
Ensuring item control
I’m integrating cooldown logic to manage antigravity scroll usage, including verifying inventory count and systematically removing used scrolls. This approach ensures precise control and functionality.
Thought about anti-gravity scroll code для 28 секунд
Ниже пример кода для LiteLoaderBDS, который демонстрирует, как можно:
В примере предполагается, что Свиток антигравитации имеет тип minecraft:paper
(или любой другой, который вы назначите). При использовании свитка проверяется кулдаун. Если время не вышло, сообщается, когда снова можно активировать. Если кулдаун прошёл, применяем эффект к ближайшим игрокам (кроме самого использующего) на 5 секунд и обновляем время последнего использования.
// Храним данные о последнем использовании var lastUse = {}; // Список «предметов» с кулдауном. // Можно добавлять несколько через запятую. const scrolls = { "minecraft:paper": { // <-- Замените на свой id предмета, если нужно "delay": 30 * 1000, // Кулдаун 30 секунд (пример) "name": "Свиток антигравитации" } }; // Слушаем событие "onUseItem", которое срабатывает при использовании предмета mc.listen("onUseItem", (player, item) => { // Проверяем, есть ли предмет в нашем списке if (item.type in scrolls) { let scrollData = scrolls[item.type]; // Если у игрока еще не было записей в lastUse — инициализируем if (!(player.uuid in lastUse)) { lastUse[player.uuid] = {}; } // Проверяем, не на кулдауне ли сейчас if (lastUse[player.uuid][item.type]) { let timePassed = Date.now() - lastUse[player.uuid][item.type]; let timeLeft = scrollData.delay - timePassed; if (timeLeft > 0) { // Показываем, сколько времени осталось let canUse = new Date(timeLeft).toLocaleTimeString('ru-RU', { hour12: false, hourCycle: "h24", timeZone: "UTC" }); player.tell(`§cТы сможешь использовать §f${scrollData.name}§c через ${canUse}`); return false; // Прерываем, чтобы свиток не сработал } } // --- Если кулдаун не мешает, применяем эффект к ближайшим игрокам --- applyAntigravityEffect(player); // Запоминаем, когда свиток был использован lastUse[player.uuid][item.type] = Date.now(); } }); /** * Функция для применения эффекта левитации * к игрокам вокруг использующего свиток. */ function applyAntigravityEffect(player) { // Выбираем радиус, в котором будет срабатывать левитация const radius = 10; // например, 10 блоков // Получаем всех онлайн-игроков let allPlayers = mc.getOnlinePlayers(); allPlayers.forEach((target) => { // Проверяем, что игрок на том же мире и в нужном радиусе if (target.level === player.level && target.pos.distanceTo(player.pos) <= radius) { // Чтобы пользователь сам не улетал — исключаем его if (target.uuid !== player.uuid) { // Даем эффект левитации на 5 секунд (5 = время, 1 = сила) // true в конце убирает частицы (если нужно) mc.runcmd(`effect "${target.name}" levitation 5 1 true`); } } }); // Можно и самого игрока уведомить player.tell("§aВы активировали Свиток антигравитации!"); }
Кулдаун
scrolls
содержит поле delay
(в миллисекундах) и name
.Date.now()
.delay
миллисекунд, то выводим сообщение и return false
, чтобы отменить действие.Эффект
applyAntigravityEffect(player)
проходит по всем игрокам (mc.getOnlinePlayers()
), проверяет дистанцию до использующего, исключая его самого.radius
, через mc.runcmd
даём эффект левитации на 5 секунд.Таким образом, мы «используем только логику кулдауна» (как в примере с lastFood
), но уже под свиток, и добавляем код для наложения эффекта. Вы всегда можете изменить:
minecraft:paper
),30 * 1000
),10
),levitation
).Если понадобятся несколько разных свитков или предметов с кулдауном, добавляйте их в объект scrolls
через запятую и проверяйте аналогично.
Integrating cooldowns
I'm working on crafting a code snippet for LitoLoaderBDS. This involves using cooldown logic and applying a levitation effect to players within a 5-block radius when a specific item is used.
Strategizing cooldowns
I'm focusing on managing and refreshing cooldowns for specific items, using mechanisms like mc.listen
and spatial effects to ensure optimal gameplay balance and update timing.
Deploying levitation
I’m mapping out the steps to trigger a levitation effect within a 5-block radius using a specific cooldown logic and update timestamp. Progressing towards refined gameplay mechanics.
Applying levitation effects
I’m detailing a function to apply a levitation effect within a 5-block radius, matching players' levels, and including cooldown logic for the involved items.
Clarifying cooldowns
I'm gathering info on cooldown specifics—whether it's a 30 or 60-second delay. The code will track and apply the cooldown logic, affecting items like "minecraft:paper."
Consolidating code
I’m merging cooldown logic with an effect radius, referencing the given snippet. Progressing towards finalizing the code for clarity and implementation.
Implementing levitation
Working on a applyEffectInRadius
function, applying levitation to players in a 5-block radius, ensuring synchronization with the given cooldown snippet logic.
Thought about anti-gravity scroll and cooldown для 14 секунд
Ниже приведён пример кода для ядра LiteLoaderBDS, который:
lastFood
),onUseItem
(по аналогии с вашим примером для еды).Обратите внимание:
minecraft:paper
. При желании поменяйте на любой другой ID.delay
) сейчас установлен на 30 секунд — подгоните под нужное вам время.// Храним время последнего использования предметов по игрокам var lastFood = {}; // Настраиваем предметы и их кулдаун const food = { 'minecraft:paper': { 'delay': 30 * 1000, // 30 секунд кулдауна 'name': 'Свиток антигравитации' } }; // Слушаем событие "onUseItem" — игрок что-то использует (кликает правой кнопкой) mc.listen("onUseItem", (pl, item) => { // Проверяем, есть ли этот предмет в нашем списке (food) if (!(item.type in food)) return; // Если у игрока есть запись о последнем использовании // и кулдаун ещё не закончился — сообщаем об оставшемся времени if (pl.uuid in lastFood && item.type in lastFood[pl.uuid]) { let timeDiff = lastFood[pl.uuid][item.type] - Date.now() + food[item.type].delay; if (timeDiff > 0) { let canGet = new Date(timeDiff).toLocaleTimeString('ru-RU', {hour12: false, hourCycle: "h24", timeZone: "UTC"}); pl.tell(`§cТы сможешь использовать ${food[item.type].name}§c через ${canGet}`); return false; } } // Если кулдаун не мешает, выдаём эффект игрокам в радиусе 5 блоков applyLevitationInRadius(pl, 5); // Запоминаем, когда предмет был использован (для кулдауна) if (!(pl.uuid in lastFood)) { lastFood[pl.uuid] = {}; } lastFood[pl.uuid][item.type] = Date.now(); }); // Функция, выдающая эффект левитации всем игрокам в заданном радиусе function applyLevitationInRadius(centerPlayer, radius) { mc.getOnlinePlayers().forEach(target => { // Проверяем, что игрок в той же «дименшене» (мире) if (target.level === centerPlayer.level) { let dx = target.pos.x - centerPlayer.pos.x; let dz = target.pos.z - centerPlayer.pos.z; let distance = Math.sqrt(dx*dx + dz*dz); // Если расстояние <= radius, накладываем эффект if (distance <= radius) { mc.runcmd(`effect "${target.name}" levitation 5 1 true`); } } }); // Можно опционально уведомить самого использующего centerPlayer.tell(`§aВы активировали ${food['minecraft:paper'].name}!`); }
Кулдаун (логика lastFood
)
Date.now()
) с записанным в lastFood[pl.uuid][item.type]
.delay
, сообщаем, сколько осталось ждать (форматируем через toLocaleTimeString
).Date.now()
).Определение радиуса
y
, если хотите учитывать высоту.5
блоков).Применение эффекта
mc.runcmd
накладываем эффект: levitation 5 1
(5 секунд, сила 1), true
— без частиц.Таким образом, код «Свитка антигравитации» с кулдауном и радиусом готов к использованию в LiteLoaderBDS.