Я очень новичок в студии Roblox и пытаюсь заставить работать базовую c функциональность. Я порождаю некоторых неигровых персонажей и хотел бы помешать им подниматься по лестнице. После прочтения документации кажется, что я смогу сделать это, используя Humanoid:SetStateEnabled(Enum.HumanoidStateType.Climbing, false)
. Я вставляю этот код сразу после создания NP C следующим образом:
local function spawnEnemy()
local enemy = ServerStorage.Enemies.Zombie:Clone()
enemy.Parent = workspace.Enemies
print("Setting climbing to false")
enemy.Humanoid:SetStateEnabled(Enum.HumanoidStateType.Climbing, false)
print(enemy.Humanoid:GetStateEnabled(Enum.HumanoidStateType.Climbing))
enemy.Humanoid.StateEnabledChanged:Connect(function()
print("state changed")
end)
end
Вывод при запуске игры выглядит следующим образом:
Setting climbing to false
false
Это как раз то, что я ожидал, а также заметил, что он не выдает «состояние изменено», так что я знаю, что никакая другая часть кода не мешает.
Однако это не мешает NP C подниматься, и на самом деле, если я сразу наберу в консоли (где в нижней части Roblox Studio написано «Выполнить команду») эта команда:
print(workspace.Enemies.Zombie.Humanoid:GetStateEnabled(Enum.HumanoidStateType.Climbing))
Вывод будет true
.
Почему переменная не «прилипает»? Нужно ли размещать этот код где-нибудь еще?