diff --git a/src/api/API.js b/src/api/API.js index 8fa4139..3e27ac8 100644 --- a/src/api/API.js +++ b/src/api/API.js @@ -10,7 +10,7 @@ export const USER_addres = BASE + '/api-user'; export const ACHIVES_addres = BASE + '/api-achievs'; export const COMMENTS_addres = BASE + '/api-comments'; export const STORYS_addres = BASE + '/api-storys'; -// rbxl-importer: только для МИНа (тест-фича импорта .rbxl карт Roblox) +// rbxl-importer: импорт .rbxl карт Roblox (см. вики «Импорт из Roblox») export const RBXL_addres = BASE + '/api-rbxl'; export const NOTICES_addres = BASE + '/api-notices'; export const HELP_addres = BASE + '/api-help'; diff --git a/src/community/KubikonStudio.jsx b/src/community/KubikonStudio.jsx index 65e4d90..993b36f 100644 --- a/src/community/KubikonStudio.jsx +++ b/src/community/KubikonStudio.jsx @@ -390,18 +390,16 @@ const KubikonStudio = () => { ВИКИ - {/* Импорт Roblox .rbxl — только для МИНа (user_id=1) */} - {getCurrentUserId() === 1 && ( - - )} + {/* Импорт Roblox .rbxl — доступно всем */} + } ], }, + // ════════════════════════════════════════════════════ + // РАЗДЕЛ — ИМПОРТ ИЗ ROBLOX (.rbxl) + // ════════════════════════════════════════════════════ + { + id: 'rbxl-import', + icon: 'package', + title: 'Импорт из Roblox', + summary: 'Загрузи .rbxl-файл готовой Roblox-карты в Рублокс: геометрия, цвета и материалы переносятся хорошо, скрипты лучше отключить при первом импорте и включать постепенно.', + sections: [ + { + id: 'rbxl-overview', + title: 'I1. Что это и зачем', + body: ( + <> +

+ Импорт из Roblox — это возможность загрузить + в Рублокс готовую карту из Roblox Studio в формате + .rbxl или .rbxlx. Часть карты — геометрия, + цвета, материалы, GUI — переносится в Рублокс + автоматически. Импорт превращает её в обычный проект + Рублокса, который можно редактировать, как любой + свой проект. +

+

+ Кнопка «📦 Импорт Roblox» находится в левой + панели студии — внизу под кнопкой «ВИКИ». Откроется + модалка, куда можно перетащить .rbxl-файл. +

+

Зачем это нужно

+ + + Импорт работает с файлами до 50 МБ. Этого + хватает для большинства карт. Очень большие карты + с тысячами объектов могут импортироваться долго + (20–60 секунд). + + + ), + }, + { + id: 'rbxl-how-to-use', + title: 'I2. Как импортировать карту', + body: ( + <> +

Шаг 1. Получи .rbxl-файл

+

+ В Roblox Studio открой свою карту и сохрани её + через меню File → Save to File. Получится файл + с расширением .rbxl (бинарный) или + .rbxlx (текстовый XML). Оба формата подходят. +

+ + Если у тебя нет своей карты, можно скачать + любую opensource Roblox-карту с GitHub — + их там много (поиск «roblox places .rbxl»). + Классика — карта Crossroads. + + +

Шаг 2. Загрузи в студию

+ + Открой студию Рублокса и нажми кнопку + «📦 Импорт Roblox» в левой панели. + + + Перетащи .rbxl-файл в окно модалки или нажми + «Выбрать файл». Кликни «Анализировать». + Это займёт 5–30 секунд: сервер читает структуру карты, + считает объекты, скрипты, ассеты и показывает отчёт. + + + В отчёте увидишь, сколько в карте Part-ов, моделей, + скриптов, текстур и какие будут предупреждения. + Например: «найдены неподдерживаемые сетки», «много + BillboardGui — может тормозить» и т.п. + + +

Шаг 3. Настрой режим импорта

+

+ Перед созданием проекта выбери, как обращаться + со скриптами и GUI карты: +

+ + +

Шаг 4. Создай проект

+ + Введи название игры. Под этим именем карта появится + в твоих проектах. + + + Нажми «Создать игру». Сервер скачает текстуры + и сетки с Roblox CDN, соберёт проект и переведёт тебя + в редактор. + + + Нажми Запустить и осмотри + карту вживую. + + + ), + }, + { + id: 'rbxl-graphics-vs-scripts', + title: 'I3. Графика хорошо, скрипты — осторожно', + body: ( + <> +

+ Главное, что нужно знать про импорт: графика + переносится хорошо, скрипты — нет. Это связано + с тем, что движок Рублокса (Babylon.js) и движок + Roblox — разные. Геометрия и материалы — это + «стандартный 3D», он одинаков везде. А скрипты + опираются на сотни Roblox-API, которые в Рублоксе + реализованы лишь частично. +

+ +

Что переносится хорошо

+ + +

Что переносится так себе

+ + +

Что точно не переносится

+ + + ), + }, + { + id: 'rbxl-recommended-flow', + title: 'I4. Правильный порядок: сначала графика, потом скрипты', + body: ( + <> +

+ Импорт хорошо работает в два прохода. Не + пытайся всё запустить сразу — карта может встать + колом из-за ошибок в чужих скриптах. Делай так: +

+ +

Проход 1. Импорт без скриптов

+ + Перед созданием проекта выбери в режиме скриптов + «Отключены». + + + Создай проект. Запусти игру и пройдись по карте. + Смотри только на графику: + + + + Если что-то выглядит криво — это хорошо: + твой проект не сломан скриптами, можно спокойно + поправить геометрию руками в редакторе. + + +

Проход 2. Аккуратно включай скрипты

+

+ После того как графика тебя устраивает, можно + по одному включать скрипты карты. Это + делается уже в редакторе проекта, в панели + «Скрипты»: +

+ + Открой панель скриптов. У каждого скрипта рядом + с названием есть тумблер «Включён». + По умолчанию после импорта все они выключены. + + + Включай скрипты по одному, начиная с самых + простых — те, что висят на Touched-частях + (кнопки, телепорты, ловушки). Запускай игру, + смотри, всё ли работает. + + + Если включил скрипт и игра зависла или замусорила + консоль ошибками — выключи его обратно. Это + нормально. У этого скрипта, скорее всего, есть + Roblox-API, которого у нас нет. + + + Для важных скриптов, которые не работают, можно + либо переписать их под Рублокс (у нас простой + JS-API через game.*), либо + заменить на свой скрипт с похожей логикой. + + + + Не расстраивайся, если из 200 скриптов сразу + заработает только 50. Это нормально — большие + Roblox-карты опираются на сложные сервисы. Зато + графика уже на месте, и тебе остаётся написать + несколько коротких скриптов на привычном JS. + + + ), + }, + { + id: 'rbxl-tips-and-tricks', + title: 'I5. Советы и частые проблемы', + body: ( + <> +

Частые ошибки

+ + +

Что делать после импорта

+ + + + Импорт — это стартовая площадка, а не готовый + продукт. Лучше всего он работает, когда ты берёшь + из Roblox-карты только геометрию, а механики + и интерактив пишешь сам на нашем JS-API + (через game.*). Так получится игра, + которая стабильно работает у тебя и у игроков. + + +

Что почитать дальше

+

+ Если хочешь узнать, как переписать импортированный + Roblox-скрипт под наш движок — посмотри раздел + «Скрипты» в вики (D-G) и сравни Roblox-API + с нашим game.*. Многое делается похоже, + только короче. +

+ + ), + }, + ], + }, + // ════════════════════════════════════════════════════ // РАЗДЕЛ — СОВМЕСТНОЕ РЕДАКТИРОВАНИЕ (Team Create) // ════════════════════════════════════════════════════ diff --git a/src/components/RbxlImportModal.jsx b/src/components/RbxlImportModal.jsx index 2247a42..f569146 100644 --- a/src/components/RbxlImportModal.jsx +++ b/src/components/RbxlImportModal.jsx @@ -1,7 +1,7 @@ /** * RbxlImportModal — модалка импорта .rbxl Roblox-карт в Rublox. * - * Доступна ТОЛЬКО МИНу (user_id === 1) — это тест-фича. + * Доступна всем пользователям (см. вики «Импорт из Roblox» о нюансах). * * Поток: * 1. Юзер дропает или выбирает .rbxl файл. @@ -13,8 +13,6 @@ import React, { useState, useRef } from 'react'; import { analyzeRbxl, createRbxlProject } from '../api/rbxlImporterApi.js'; -const ALLOWED_USER_ID = 1; // МИН - const MAX_SIZE = 50 * 1024 * 1024; // 50 MB export default function RbxlImportModal({ open, onClose, currentUserId, onCreated }) { @@ -37,18 +35,6 @@ export default function RbxlImportModal({ open, onClose, currentUserId, onCreate if (!open) return null; - if (currentUserId !== ALLOWED_USER_ID) { - return ( -
-
e.stopPropagation()}> -

Импорт из Roblox

-

Эта тест-функция доступна только администратору.

- -
-
- ); - } - const reset = () => { setFile(null); setReport(null); setPreviewHash(null); setTitle(''); setError(null); setAnalyzing(false); setCreating(false);