Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите со скриптом в Roblox Studio

Лев Хомяк Ученик (95), на голосовании 1 неделю назад
Почему когда я получаю меч по кнопке в гуи и когда я беру меч в руки бить я им не могу

local player = game.Players.LocalPlayer

script.Parent.MouseButton1Click:Connect(function()
if player.leaderstats.Gems.Value >= 0 then
player.leaderstats.Gems.Value = player.leaderstats.Gems.Value - 0
local clonar = game.ReplicatedStorage.Tools .ClassicSword:Clone()
clonar.Parent = player.Backpack
end
end)
Голосование за лучший ответ
Димка Зубарев Мастер (1082) 1 месяц назад
Тулскрипт



local tool = script.Parent

tool.Activated:Connect(function()
local character = tool.Parent
if not character or character:IsA("Tool") then return end

local humanoid = character:FindFirstChildOfClass("Humanoid")
if not humanoid then return end

local hitPart = game.Players.LocalPlayer.Character:FindFirstChild("RightHand")
if not hitPart then return end

local raycastParams = RaycastParams.new ()
raycastParams.FilterDescendantsInstances = {character}

local rayOrigin = hitPart.Position
local rayDirection = (hitPart.CFrame.LookVector * 5)

local result = workspace:Raycast(rayOrigin, rayDirection, raycastParams)

if result and result.Instance then
print("Hit: " .. result.Instance.Name )
-- Здесь можно добавить код для нанесения урона или других действий
end
end)




Локалскрипт



local player = game.Players.LocalPlayer
local mouse = player:GetMouse()

script.Parent.Equipped:Connect(function()
mouse.Icon = "rbxassetid://path/to/sword/icon" -- Замените на путь к вашему значку
mouse.KeyDown:Connect(function(key)
if key == "q" then -- Кнопка для атаки
script.Parent:Activate()
end
end)
end)

script.Parent.Unequipped:Connect(function()
mouse.Icon = ""
end)



Посмотри в скрипте меч активирован?





local player = game.Players.LocalPlayer

script.Parent.MouseButton1Click:Connect(function()
if player.leaderstats.Gems.Value >= 0 then
player.leaderstats.Gems.Value = player.leaderstats.Gems.Value - 0
local clonar = game.ReplicatedStorage.Tools.ClassicSword:Clone()
clonar.Parent = player.Backpack

wait(0.1) -- Добавляем небольшую задержку
clonar:Activate()

-- Активация меча после получения
clonar.Equipped:Connect(function()
print("Меч активирован")
-- Добавьте здесь дополнительные настройки или функции для меча, если необходимо
end)
end
end)




И проверь свойства меча



clonar.CanBeDropped = true
clonar.Enabled = true
Лев ХомякУченик (95) 1 месяц назад
Всё равно меч как бы берется в руку, но бить я им не могу
Димка Зубарев Мастер (1082) Лев Хомяк, обновил ответ
Cogni Просветленный (47304) 1 месяц назад
Проверь, что при клонировании меча его серверные скрипты и компоненты (например, Handle с правильно настроенными событиями столкновения) остаются активными и что меч экипирован в Character (а не просто находится в Backpack), так как локальные скрипты в инструменте могут не запускаться без корректного серверного контекста.
Лев ХомякУченик (95) 1 месяц назад
Короче я изменил SwordScript c обычного скрипта на серверный. Теперь бить могу, но Валюту с них не получаю(я ее получал при помощи creator который появляется в Humanoid в NPC когда по тому наносят урон)
Вот скрипт на деньги с нпс:

local humanoid = script.Parent.Humanoid

humanoid.Died:Connect(function()
local creator = humanoid:FindFirstChild("creator")
local leaderstats = creator.Value:FindFirstChild("leaderstats")
leaderstats.Gems.Value = leaderstats.Gems.Value + 5
wait(0.1)

script:Remove()
end)
Cogni Просветленный (47304) Лев Хомяк, Проверь, что при нанесении урона SwordScript создает объект "creator" с ссылкой на игрока в Humanoid NPC, чтобы leaderstats находился; замени script:Remove() на script:Destroy(), чтобы скрипт корректно завершался, иначе при смерти NPC не начисляется валюта.
Похожие вопросы