TGViewer
Channel Public Channel
ботик

ботик

@botikst

На этом канале публикуются все истории (как и что я делаю в Майнкрафте).
Основной канал: https://t.me/botikdeadpriz
Subscribers
22
Photos
9
Videos
18
Links
2

Showing posts older than #39 · Back to latest

Older Posts 20 shown
Post #38 90
Открытие меню с помощью тега
system.runInterval(() => {
for (let player of world.getPlayers()) {
if (player.hasTag("open")) {
system.run(() => {
(player);
player.runCommand(tag @s remove "open");
});
}
}
}, 20);
Post #32 121
Калькулятор
import { world, system } from "@minecraft/server"; 
import { ModalFormData } from "@minecraft/server-ui";

function calUi(player) {
let form = new ModalFormData();
form.title(`Калькулятор`);

let working = ["+", "-", "/", "*"];

form.textField(`Первое число`, `100..`);
form.dropdown(`Действие`, working);
form.textField(`Второе число`, `100..`);

form.show(player).then(response => {
if (response.isCanceled) return;

let firstNumber = parseFloat(response.formValues[0]);
let operation = working[response.formValues[1]];
let secondNumber = parseFloat(response.formValues[2]);

let result;

switch (operation) {
case "+": result = firstNumber + secondNumber; break;
case "-": result = firstNumber - secondNumber; break;
case "/": result = firstNumber / secondNumber; break;
case "*": result = firstNumber * secondNumber; break;
default: result = "Неизвестная операция";
}

player.sendMessage(`Результат: ${result}`);
});
}

system.runInterval(() => {
for (let player of world.getPlayers()) {
if (player.hasTag("calculate")) {
system.run(() => {
calUi(player);
player.runCommandAsync(`tag @s remove calculate`);
});
}
}
}, 20);
  • 🔥 1
Post #31 95
Показатель скорборда
import { world, system } from "@minecraft/server";
import { ActionFormData, ModalFormData } from "@minecraft/server-ui"; //ModalFormData на всякий случай

function prof(player) {
let form = new ActionFormData();
form.title(`меню`);

let money = getScore(player, "Money") || 0; // обработка undefined, также можно создать и 2 3 и т.д

form.body(`Ваш баланс: ${money}`);
form.button("Закрыть");
form.show(player).then((onfulfilled) => {
if (onfulfilled.canceled != true) {
const selection = onfulfilled.selection;
if (selection == 0) {
player.runCommadnAsync(``);
}
}
});
}

function rec(player, objective, min, max) {
if (min >= max) { // Изменено условие выхода из рекурсии
return min;
}
const middle = min + Math.floor((max - min) / 2);
const p1 = world.getPlayers({ name: player.name, scoreOptions: [{ objective: objective, minScore: min, maxScore: middle }] });
if (p1.length > 0) { // Изменено условие поиска
return rec(player, objective, min, middle);
} else {
return rec(player, objective, middle + 1, max); // Добавлено смещение middle
}
}

function getScore(player, objective) {
const p1 = world.getPlayers({ name: player.name, scoreOptions: [{ objective: objective, minScore: -2147483648, maxScore: 2147483647 }] });
if (p1.length === 0) {
return 0;
}
return rec(player, objective, -2147483648, 2147483647);
}


world.beforeEvents.itemUse.subscribe((eventData) => {
if (eventData.itemStack?.typeId === "minecraft:stick") {
let player = eventData.source;
system.run(() => {
prof(player);
});
}
});
Post #30 95
Перевод денег
import { world, system } from "@minecraft/server"; 
import { ModalFormData, ActionFormData } from "@minecraft/server-ui"; //на всякий случай добавил ActionFormData, если вдруг вам понадобится ообычные менюшки

function Banki(player) { //скорборд money
let form = new ModalFormData();
form.title(`Перевод счета с СБ`);

let lplayersList3g16x7p5cn = [];
let lplayerNames3g16x7p5cn = [];
for (const lPlayer3g16x7p5cn of world.getAllPlayers()) {
if (!lPlayer3g16x7p5cn.hasTag('Block')) { //данный тег удаляет игрока с списка (не использовать тег, если нет 2 игрока), если в всех будет тег, то меню не будет открываться из-за отсутствие игроков в списке
lplayerNames3g16x7p5cn.push(lPlayer3g16x7p5cn.name);
lplayersList3g16x7p5cn.push(lPlayer3g16x7p5cn);
}
}

form.dropdown(`Список игроков для перевода`, lplayerNames3g16x7p5cn);
form.textField(`Введите сумму`, `Рублей. . .`);
form.show(player).then(response => {
if (response.canceled) return;

let recipientName = lplayerNames3g16x7p5cn[response.formValues[0]];
let amount = parseInt(response.formValues[1]);

if (isNaN(amount) || amount <= 0) {
player.sendMessage(`§cПожалуйста, введите корректную сумму для перевода.`);
return;
}

player.runCommandAsync(`execute as @s[scores={money=${amount}..}] at @s run scoreboard players add "${recipientName}" money ${amount}`);
player.runCommandAsync(`execute as @s[scores={money=${amount}..}] at @s run tellraw "${recipientName}" {"rawtext":[{"text":"§aВам перевели ${amount}!"}]}`);
player.runCommandAsync(`execute at @s[scores={money=${amount}..}] run scoreboard players remove @s money ${amount}`);
player.runCommandAsync(`execute as @s[scores={money=${amount}..}] at @s run tellraw @s {"rawtext":[{"text":"§aВы перевели ${recipientName} ${amount}."}]}`);
player.runCommandAsync(`execute as @s[scores={money=!${amount}..}] at @s run tellraw @s {"rawtext":[{"text":"§cУ вас недостаточно средств"}]}`);
});
}

world.beforeEvents.itemUse.subscribe((eventData) => { //с помощью предмета
if (eventData.itemStack?.typeId === "minecraft:stick") {
let player = eventData.source;
system.run(() => {
banki(player);
});
}
});

system.runInterval(() => { //с помощью тега
for (let player of world.getPlayers()) {
if (player.hasTag("open")) {
system.run(() => {
banki(player);
player.runCommandAsync(`tag @s remove open`); //удаление тега после открытие
});
}
}
}, 20);
  • 🔥 1
Post #26 104
Пример калькулятора:
Post #23 115
Пример показателя скорборда:
Post #19 111
Промокод
import { world, system } from "@minecraft/server";
import { ModalFormData } from "@minecraft/server-ui";

function promo(player) {
let form = new ModalFormData();
form.title(Промокод);

let ids = ["botik", "akima", "zero", "miras", "smetana"];
let rewards = {
"botik": { item: "minecraft:diamond", amount: 5 },
"akima": { item: "minecraft:iron_ingot", amount: 10 },
"zero": { item: "minecraft:gold_ingot", amount: 7 },
"miras": { item: "minecraft:emerald", amount: 3 },
"smetana": { item: "minecraft:apple", amount: 15 }
};

form.textField(Введите промокод, Пример: ssuliks);
form.show(player).then(response => {
if (response.canceled) return;
let input1 = response.formValues[0];

if (ids.includes(input1) && !player.hasTag(input1)) {
let reward = rewards[input1];
player.runCommandAsync(give ${player.name} ${reward.item} ${reward.amount});
player.runCommandAsync(tag ${player.name} add ${input1});
player.sendMessage(§aПромокод успешно активирован! Вы получили ${reward.amount} ${reward.item});
} else {
player.sendMessage(§cНеверный или уже использованный промокод.);
}
});
}


system.runInterval(() => {
for (let player of world.getPlayers()) {
if (player.hasTag("open")) {
system.run(() => {
promo(player);
player.runCommandAsync(tag @s remove "open");
});
}
}
}, 20);
Post #17 94
Пример промокода:
Post #15 113
Пример перевода
Post #14 109
Открыть меню

(Перевод)
(Простой гайд)
Post #10 130
Карта маньяка 3
#maniac
#map
Post #9 116
Карта маньяка 2
#maniac
#map
Post #8
Channel name was changed to «История ботика»
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →