debug(g4): print имена children workspace и состояние двери
Откатил метатаблицу Vector3 (она ломала TweenService instanceof RbxVector3).
This commit is contained in:
parent
a4f2f0800b
commit
c006f58b70
@ -337,12 +337,23 @@ UserInputService.InputBegan:Connect(function(input, gp)
|
|||||||
part.Color = Color3.fromRGB(100, 255, 100) -- зелёная
|
part.Color = Color3.fromRGB(100, 255, 100) -- зелёная
|
||||||
|
|
||||||
-- Находим дверь по имени и поднимаем её
|
-- Находим дверь по имени и поднимаем её
|
||||||
|
print("[g4] looking for door...")
|
||||||
local door = workspace:FindFirstChild("Дверь")
|
local door = workspace:FindFirstChild("Дверь")
|
||||||
|
print("[g4] door=", tostring(door))
|
||||||
|
if not door then
|
||||||
|
-- Перебираем всех children и пишем имена для отладки
|
||||||
|
for i, child in ipairs(workspace:GetChildren()) do
|
||||||
|
print("[g4] child", i, "name=", child.Name)
|
||||||
|
end
|
||||||
|
end
|
||||||
if door then
|
if door then
|
||||||
local dp = door.Position
|
local dp = door.Position
|
||||||
|
print("[g4] door pos=", dp.X, dp.Y, dp.Z)
|
||||||
local goal = { Position = Vector3.new(dp.X, dp.Y + 6, dp.Z) }
|
local goal = { Position = Vector3.new(dp.X, dp.Y + 6, dp.Z) }
|
||||||
TweenService:Create(door, TweenInfo.new(1.2), goal):Play()
|
local tween = TweenService:Create(door, TweenInfo.new(1.2), goal)
|
||||||
|
tween:Play()
|
||||||
door.CanCollide = false
|
door.CanCollide = false
|
||||||
|
print("[g4] tween started")
|
||||||
end
|
end
|
||||||
end)`,
|
end)`,
|
||||||
g4_finish: `-- === Скрипт финиша (Lua) ===
|
g4_finish: `-- === Скрипт финиша (Lua) ===
|
||||||
|
|||||||
@ -1741,69 +1741,6 @@ export function registerRobloxShim(lua, opts) {
|
|||||||
end
|
end
|
||||||
wait = rbx_wait
|
wait = rbx_wait
|
||||||
|
|
||||||
-- ═══════════════════════════════════════════════════════════════
|
|
||||||
-- Метатаблица для Vector3 — операторы +, -, *, /, унарный -
|
|
||||||
-- wasmoon не создаёт __add автоматически для JS-классов.
|
|
||||||
-- Оборачиваем Vector3.new чтобы возвращаемая таблица имела __add.
|
|
||||||
-- ═══════════════════════════════════════════════════════════════
|
|
||||||
do
|
|
||||||
local _origV3New = Vector3.new
|
|
||||||
local v3meta = {}
|
|
||||||
local function makeV3(x, y, z)
|
|
||||||
local v = _origV3New(x or 0, y or 0, z or 0)
|
|
||||||
-- v — это userdata от wasmoon. Делаем proxy-таблицу с метой.
|
|
||||||
local t = setmetatable({}, v3meta)
|
|
||||||
rawset(t, '_v', v)
|
|
||||||
rawset(t, 'X', v.X); rawset(t, 'Y', v.Y); rawset(t, 'Z', v.Z)
|
|
||||||
rawset(t, 'Magnitude', v.Magnitude or math.sqrt(x*x+y*y+z*z))
|
|
||||||
return t
|
|
||||||
end
|
|
||||||
local function asV3(v)
|
|
||||||
if type(v) == 'table' and rawget(v, 'X') ~= nil then return v end
|
|
||||||
if v == nil then return makeV3(0,0,0) end
|
|
||||||
return makeV3(v.X or 0, v.Y or 0, v.Z or 0)
|
|
||||||
end
|
|
||||||
v3meta.__add = function(a, b)
|
|
||||||
a = asV3(a); b = asV3(b)
|
|
||||||
return makeV3(a.X + b.X, a.Y + b.Y, a.Z + b.Z)
|
|
||||||
end
|
|
||||||
v3meta.__sub = function(a, b)
|
|
||||||
a = asV3(a); b = asV3(b)
|
|
||||||
return makeV3(a.X - b.X, a.Y - b.Y, a.Z - b.Z)
|
|
||||||
end
|
|
||||||
v3meta.__mul = function(a, b)
|
|
||||||
if type(b) == 'number' then a = asV3(a); return makeV3(a.X*b, a.Y*b, a.Z*b) end
|
|
||||||
if type(a) == 'number' then b = asV3(b); return makeV3(b.X*a, b.Y*a, b.Z*a) end
|
|
||||||
a = asV3(a); b = asV3(b)
|
|
||||||
return makeV3(a.X*b.X, a.Y*b.Y, a.Z*b.Z)
|
|
||||||
end
|
|
||||||
v3meta.__div = function(a, b)
|
|
||||||
if type(b) == 'number' then a = asV3(a); return makeV3(a.X/b, a.Y/b, a.Z/b) end
|
|
||||||
a = asV3(a); b = asV3(b)
|
|
||||||
return makeV3(a.X/b.X, a.Y/b.Y, a.Z/b.Z)
|
|
||||||
end
|
|
||||||
v3meta.__unm = function(a)
|
|
||||||
a = asV3(a); return makeV3(-a.X, -a.Y, -a.Z)
|
|
||||||
end
|
|
||||||
v3meta.__eq = function(a, b)
|
|
||||||
a = asV3(a); b = asV3(b)
|
|
||||||
return a.X == b.X and a.Y == b.Y and a.Z == b.Z
|
|
||||||
end
|
|
||||||
v3meta.__tostring = function(a)
|
|
||||||
a = asV3(a)
|
|
||||||
return string.format("%g, %g, %g", a.X, a.Y, a.Z)
|
|
||||||
end
|
|
||||||
Vector3 = setmetatable({
|
|
||||||
new = makeV3,
|
|
||||||
zero = makeV3(0,0,0),
|
|
||||||
one = makeV3(1,1,1),
|
|
||||||
xAxis = makeV3(1,0,0),
|
|
||||||
yAxis = makeV3(0,1,0),
|
|
||||||
zAxis = makeV3(0,0,1),
|
|
||||||
FromNormalId = function() return makeV3(0,0,0) end,
|
|
||||||
}, {})
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Roblox legacy globals
|
-- Roblox legacy globals
|
||||||
tick = function() return os.time() end -- секунды с epoch
|
tick = function() return os.time() end -- секунды с epoch
|
||||||
time = function() return os.clock() * 1000 end -- ms аптайм
|
time = function() return os.clock() * 1000 end -- ms аптайм
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user