From c6899c0528b18d4ec5c5b9a608e96747c0b1657a Mon Sep 17 00:00:00 2001 From: min Date: Tue, 9 Jun 2026 02:39:36 +0300 Subject: [PATCH] =?UTF-8?q?feat(wiki):=20LangTabs=20=D0=B2=D0=BE=20=D0=B2?= =?UTF-8?q?=D1=81=D0=B5=205=20=D1=81=D1=82=D0=B0=D1=82=D0=B5=D0=B9=20?= =?UTF-8?q?=D1=80=D0=B0=D0=B7=D0=B4=D0=B5=D0=BB=D0=B0=20E=20(=D0=94=D0=B2?= =?UTF-8?q?=D0=B8=D0=B6=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B8=20=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D0=BC=D0=B0=D1=86=D0=B8=D1=8F)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit E1 Управление игроком: setSpeed-множитель vs Humanoid.WalkSpeed E2 Анимации: playAnimation vs Animator:LoadAnimation E3 Твины: game.tween vs TweenService (TweenInfo + Create + Play) E4 Спавн/удаление: game.scene.spawn vs Instance.new + Destroy/Debris E5 Перемещение: game.scene.move vs .Position/CFrame Lua-примеры стандартного Roblox-стиля: workspace:WaitForChild, Vector3.new, Enum.PartType, BrickColor.new, Debris service. --- src/community/docsData.jsx | 301 +++++++++++++++++++++++++++---------- 1 file changed, 223 insertions(+), 78 deletions(-) diff --git a/src/community/docsData.jsx b/src/community/docsData.jsx index f51c53c..6f4ce46 100644 --- a/src/community/docsData.jsx +++ b/src/community/docsData.jsx @@ -1805,23 +1805,40 @@ end)`}} title: 'E1. Управление игроком: скорость, прыжок, гравитация', body: ( <> -

- Скриптом можно менять, как двигается игрок. Эти команды - принимают множитель: 1 — обычно, 2 — в два раза - сильнее, 0.5 — в два раза слабее. -

- - - - - - - - -
setSpeed(mul)скорость бега
setJumpPower(mul)сила прыжка
setGravityMul(mul)сила притяжения
setDoubleJump(true)разрешить двойной прыжок
teleport(x,y,z)мгновенно переставить
+

Скриптом можно менять, как двигается игрок.

+ +

В JS используем команды-«множители»: 1 — обычно, + 2 — в два раза сильнее, 0.5 — в два раза слабее.

+ + + + + + + + +
game.player.setSpeed(mul)скорость бега
game.player.setJumpPower(mul)сила прыжка
game.player.setGravityMul(mul)сила притяжения
game.player.setDoubleJump(true)двойной прыжок
game.player.teleport(x,y,z)мгновенно переставить
+ } + lua={<> +

В Lua скорость и прыжок — это прямые значения + в Humanoid (не множители). По умолчанию WalkSpeed=16, + JumpPower=50.

+ + + + + + + + +
humanoid.WalkSpeed = 32скорость (16 = норма)
humanoid.JumpPower = 80сила прыжка (50 = норма)
workspace.Gravity = 100гравитация (196 = норма)
humanoid:ChangeState(Enum.HumanoidStateType.Jumping)прыгнуть
hrp.CFrame = CFrame.new(x,y,z)телепорт
+ } + />

Пример — «зелье скорости» при касании сферы:

- {`game.self.onTouch(() => { + {`game.self.onTouch(() => { // ускоряем игрока в 2 раза game.player.setSpeed(2); game.ui.showText('Скорость x2 на 5 секунд!', 2); @@ -1834,11 +1851,29 @@ end)`}} game.after(5, () => { game.player.setSpeed(1); }); -});`} +});`}} + lua={{`local part = script.Parent + +part.Touched:Connect(function(hit) + local humanoid = hit.Parent:FindFirstChild("Humanoid") + if not humanoid then return end + + -- ускоряем игрока в 2 раза (16 → 32) + humanoid.WalkSpeed = 32 + print("Скорость x2 на 5 секунд!") + + -- зелье исчезает + part:Destroy() + + -- через 5 секунд скорость обратно норма + task.delay(5, function() + humanoid.WalkSpeed = 16 + end) +end)`}} + /> - Не забывай возвращать скорость обратно командой - setSpeed(1). Иначе игрок останется быстрым - навсегда — а это может сломать твой уровень. + Не забывай возвращать скорость обратно. Иначе игрок + останется быстрым навсегда — а это может сломать твой уровень. ), @@ -1848,21 +1883,47 @@ end)`}} title: 'E2. Анимации-эмоции персонажа', body: ( <> -

- Персонаж умеет показывать эмоции. Команда - game.player.playAnimation(имя) проигрывает - анимацию: 'wave' (помахать), - 'dance' (танец), 'cheer' - (радость), 'sit' (сесть). -

+

Персонаж умеет показывать эмоции.

+ + Команда game.player.playAnimation(имя) проигрывает + анимацию: 'wave' (помахать), + 'dance' (танец), 'cheer' + (радость), 'sit' (сесть). +

} + lua={

+ В Lua анимации проигрываются через Animator на Humanoid'е. + Roblox-стиль: создать Animation-объект, вызвать + Animator:LoadAnimation(anim), + потом track:Play(). +

} + /> - {`// При победе персонаж радуется + {`// При победе персонаж радуется game.player.playAnimation('cheer'); // Через 3 секунды перестать game.after(3, () => { game.player.stopAnimation(); -});`} +});`}} + lua={{`local Players = game:GetService("Players") +local player = Players.LocalPlayer +local humanoid = player.Character:WaitForChild("Humanoid") +local animator = humanoid:FindFirstChildOfClass("Animator") + +-- Создаём анимацию (упрощённый шаблон — в реальности нужен AnimationId) +local anim = Instance.new("Animation") +-- anim.AnimationId = "rbxassetid://..." -- свой Animation ID +local track = animator:LoadAnimation(anim) + +track:Play() + +-- Через 3 секунды перестать +task.delay(3, function() + track:Stop() +end)`}} + /> ), }, @@ -1873,13 +1934,14 @@ game.after(3, () => { <>

Твин — это плавное изменение чего-либо за время. - Если просто переставить объект командой move — - он телепортируется рывком. А твин плавно доедет - из точки в точку. + Если просто переставить объект — он телепортируется рывком. + А твин плавно доедет из точки в точку.

-

Команда: game.tween(объект, что менять, настройки)

- {`// Находим платформу-лифт по имени + +

Команда: game.tween(объект, что менять, настройки)

+ {`// Находим платформу-лифт по имени const lift = game.scene.findOne('Лифт'); // Платформа за 2 секунды плавно поднимается на высоту 10 @@ -1887,27 +1949,65 @@ game.tween(lift, { y: 10 }, { duration: 2, // длительность в секундах easing: 'ease' // характер движения });`} -

- Твином можно менять позицию (x, y, z), - поворот, размер, цвет, прозрачность. -

-

Полезные настройки твина:

- - - - - - - - -
durationсколько секунд длится
easing'linear' (ровно), 'ease' (плавно), 'bounce' (с отскоком)
repeatсколько раз повторить
yoyo: trueдвигаться туда-обратно
onDoneчто сделать, когда твин закончится
- {`// Платформа вечно ездит вверх-вниз +

Полезные настройки твина:

+ + + + + + + + +
durationсколько секунд длится
easing'linear' / 'ease' / 'bounce'
repeatсколько раз повторить
yoyo: trueдвигаться туда-обратно
onDoneчто сделать, когда твин закончится
+ {`// Платформа вечно ездит вверх-вниз const plat = game.scene.findOne('Качалка'); game.tween(plat, { y: 8 }, { duration: 2, - yoyo: true, // обратно вниз - repeat: 999 // повторять почти бесконечно + yoyo: true, + repeat: 999 });`} + } + lua={<> +

В Lua используется TweenService — встроенный + сервис Roblox-стиля. Создаёшь TweenInfo и Tween, вызываешь Play.

+ {`local TweenService = game:GetService("TweenService") + +-- Находим платформу-лифт по имени +local lift = workspace:WaitForChild("Лифт") + +-- Настройка анимации: 2 сек, плавно +local info = TweenInfo.new(2, Enum.EasingStyle.Quad) + +-- Что менять: новая Position (поднимаем на 10 вверх) +local goal = { Position = lift.Position + Vector3.new(0, 10, 0) } + +-- Создаём и запускаем твин +local tween = TweenService:Create(lift, info, goal) +tween:Play()`} +

Полезные настройки TweenInfo:

+ + + + + + + + + +
1-й арг — секундысколько длится
EasingStyleLinear / Quad / Bounce / Elastic
EasingDirectionIn / Out / InOut
repeatCountсколько раз повторить (-1 = бесконечно)
reversestrue = туда-обратно
tween.Completed:Connectсобытие «закончен»
+ {`-- Платформа вечно ездит вверх-вниз +local plat = workspace:WaitForChild("Качалка") +local info = TweenInfo.new( + 2, -- секунды + Enum.EasingStyle.Quad, -- плавно + Enum.EasingDirection.InOut, + -1, -- бесконечно + true -- туда-обратно +) +local goal = { Position = plat.Position + Vector3.new(0, 8, 0) } +TweenService:Create(plat, info, goal):Play()`} + } + /> ), }, @@ -1918,33 +2018,60 @@ game.tween(plat, { y: 8 }, { <>

Спавн — создание нового объекта прямо во время игры. - Команда game.scene.spawn(тип, настройки):

- {`// Создаём золотую монетку-сферу + +

Команда game.scene.spawn(тип, настройки):

+ {`// Создаём золотую монетку-сферу const coin = game.scene.spawn('primitive:sphere', { x: 5, y: 1, z: 0, // где появится color: '#ffd700' // золотой цвет }); game.log('Создали монетку, её адрес:', coin);`} -

- Тип бывает 'block:трава', - 'primitive:cube', 'model:tree'. - Команда возвращает ref — это «адрес» объекта, - по которому к нему можно обращаться (двигать, удалять). -

-

Удаление объекта:

- {`// удалить сразу -game.scene.delete(coin); +

+ Тип бывает 'block:трава', + 'primitive:cube', 'model:tree'. + Команда возвращает ref — «адрес» объекта, + по которому к нему можно обращаться. +

+

Удаление объекта:

+ {`game.scene.delete(coin); // сразу +game.scene.deleteAfter(coin, 3); // через 3 секунды`} + + Запоминай ref в переменную. Без адреса + ты потом не сможешь объект ни подвинуть, ни удалить. + + } + lua={<> +

Команда Instance.new("Part") создаёт новый Part:

+ {`-- Создаём золотую монетку-сферу +local coin = Instance.new("Part") +coin.Shape = Enum.PartType.Ball +coin.Size = Vector3.new(1, 1, 1) +coin.Position = Vector3.new(5, 1, 0) +coin.BrickColor = BrickColor.new("Bright yellow") +coin.Anchored = true +coin.Parent = workspace -// удалить через 3 секунды -game.scene.deleteAfter(coin, 3);`} - - Запоминай ref в переменную (let coin - = ...). Без адреса ты потом не сможешь объект - ни подвинуть, ни удалить. - +print("Создали монетку:", coin)`}
+

+ Чтобы объект появился в игре — обязательно ставь + .Parent = workspace. + Anchored = true — чтобы не падал. +

+

Удаление объекта:

+ {`coin:Destroy() -- сразу + +-- через 3 секунды +game:GetService("Debris"):AddItem(coin, 3)`} + + Сохраняй ссылку на объект в переменную (local coin = ...). + Без неё ты потом не сможешь объект ни подвинуть, ни удалить. + + } + /> ), }, @@ -1954,20 +2081,38 @@ game.scene.deleteAfter(coin, 3);`}
body: ( <>

Передвинуть объект скриптом можно несколькими способами:

- - - - - - - -
game.scene.move(ref,x,y,z)мгновенно переставить
game.scene.rotate(ref,угол)повернуть
game.self.move(x,y,z)скрипт двигает сам себя
game.tween(...)плавное перемещение (E3)
+ + + game.scene.move(ref,x,y,z)мгновенно переставить + game.scene.rotate(ref,угол)повернуть + game.self.move(x,y,z)скрипт двигает сам себя + game.tween(...)плавное перемещение (E3) + + } + lua={ + + + + + + +
part.Position = Vector3.new(x,y,z)мгновенно переставить
part.CFrame = part.CFrame * CFrame.Angles(0, math.rad(45), 0)повернуть
script.Parent.Position = ...скрипт двигает сам себя
TweenService:Create(...)плавное перемещение (E3)
} + />

Пример — дверь уезжает вверх и освобождает проход:

- {`const door = game.scene.findOne('Дверь'); + {`const door = game.scene.findOne('Дверь'); // плавно поднимаем дверь на 6 единиц вверх -game.tween(door, { y: 6 }, { duration: 1 });`} +game.tween(door, { y: 6 }, { duration: 1 });`}} + lua={{`local TweenService = game:GetService("TweenService") +local door = workspace:WaitForChild("Дверь") + +-- плавно поднимаем дверь на 6 единиц вверх +local goal = { Position = door.Position + Vector3.new(0, 6, 0) } +TweenService:Create(door, TweenInfo.new(1), goal):Play()`}} + /> ), },