Что не так в скрипте роблокс студио - Вопросы по сайтостроению

Вопрос Что не так в скрипте роблокс студио

Регистрация
30 Ноя 2013
Сообщения
100
Репутация
0
Спасибо
0
Монет
0
я написал код при касания куба должен добавица 1 а он не добавлаецся что не так вот код

local ap = 0



while true do

game.StarterGui.ScreenGui.TextLabel.Text = ap

wait(0.1)

if (workspace.Part.Touched)then

ap += 1

end

end
 
Регистрация
4 Ноя 2013
Сообщения
85
Репутация
0
Спасибо
0
Монет
0
Во-первых событие Touched: это событие, а не свойство. Его нельзя проверить в if. Нужно использовать :Connect(), чтобы подключить функцию, которая сработает при касании.
StarterGui vs PlayerGui: менять нужно TextLabel в PlayerGui игрока, а не в StarterGui. Лучше использовать LocalScript.
И тип текста: TextLabel.Text требует строку (string), а не число. Используй tostring().
 
Регистрация
12 Июл 2013
Сообщения
98
Репутация
0
Спасибо
0
Монет
0
хз может быть из-за двух end
просто синтаксис рб скриптов я не знаю
 
Регистрация
28 Июл 2013
Сообщения
86
Репутация
0
Спасибо
0
Монет
0
может получиться:
local ap = 0
local part = workspace.Part

part.Touched:Connect(function()
ap = ap + 1
game.StarterGui.ScreenGui.TextLabel.Text = ap
end)
 
Регистрация
5 Сен 2013
Сообщения
72
Репутация
2
Спасибо
0
Монет
0
В вашем коде есть несколько ошибок, из-за которых счетчик ap не увеличивается при касании куба. Вот исправленная версия и объяснение проблем:

Основные ошибки:
Touched – это событие, а не свойство. Нужно использовать :Connect() для подписки на него.

game.StarterGui не используется для текущего интерфейса. Нужно обращаться к game.Players.LocalPlayer.PlayerGui.

Бесконечный цикл while true do не нужен для обработки касаний.

Исправленный код:
lua
Copy
local ap = 0
local part = workspace.Part -- Замените "Part" на имя вашей детали

-- Получаем интерфейс игрока
local player = game.Players.LocalPlayer
local gui = player:WaitForChild("PlayerGui"):WaitForChild("ScreenGui")
local textLabel = gui:WaitForChild("TextLabel")

-- Обновляем текст
textLabel.Text = tostring(ap)

-- Обработка касания
part.Touched:Connect(function(hit)
if hit.Parent:FindFirstChild("Humanoid") then -- Проверяем, что коснулся игрок
ap += 1
textLabel.Text = tostring(ap)
end
end)
Что изменилось:
Touched теперь правильно подключен через :Connect.

Добавлена проверка Humanoid, чтобы счетчик увеличивался только при касании игрока (а не других объектов).

Работа с GUI исправлена – используется PlayerGui, а не StarterGui.

Убран бесконечный цикл – он не нужен для обработки событий.

Дополнительные советы:
Убедитесь, что:

Скрипт находится в Script (а не LocalScript), если работает с серверной частью.

Часть workspace.Part имеет правильное имя (замените Part на имя вашего куба).

В вашем ScreenGui есть TextLabel с точно таким же именем.

Если скрипт всё равно не работает, проверьте вывод ошибок в консоли Roblox Studio (View → Output).






local ap = 0
local part = workspace.Part -- Замените "Part" на имя вашей детали

-- Получаем интерфейс игрока
local player = game.Players.LocalPlayer
local gui = player:WaitForChild("PlayerGui"):WaitForChild("ScreenGui")
local textLabel = gui:WaitForChild("TextLabel")

-- Обновляем текст
textLabel.Text = tostring(ap)

-- Обработка касания
part.Touched:Connect(function(hit)
if hit.Parent:FindFirstChild("Humanoid") then -- Проверяем, что коснулся игрок
ap += 1
textLabel.Text = tostring(ap)
end
end)
 
Регистрация
29 Май 2013
Сообщения
84
Репутация
0
Спасибо
0
Монет
0
Пожалуйста имейте ввиду, что этот пользователь забанен
local ap = 0

workspace.Part.Touched:Connect(function()
ap += 1
end)
 
Сверху Снизу