我是Roblox工作室的新手,正在尝试一些基本功能。我正在生成一些NPC,并希望阻止它们爬梯子。阅读文档后,看来我应该可以使用Humanoid:SetStateEnabled(Enum.HumanoidStateType.Climbing, false)
来做到这一点。我在创建NPC之后立即插入该代码,如下所示:
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
这正是我所期望的,并且请注意,它不会输出“状态更改”,因此我知道代码的其他部分都不会受到干扰。
但是,这实际上并不能阻止NPC爬升,实际上,如果我立即键入控制台(在roblox studio底部显示“运行命令”,则此命令:]]
print(workspace.Enemies.Zombie.Humanoid:GetStateEnabled(Enum.HumanoidStateType.Climbing))
输出为true
。
为什么变量不“粘”?我是否需要将此代码放在其他地方?
我是Roblox工作室的新手,正在尝试一些基本功能。我正在生成一些NPC,并希望阻止它们爬梯子。阅读文档后,......>
SetStateEnabled似乎没有复制到客户端。您的Run-a-command命令针对客户端的工作空间执行,并且仍然存在。
如果将其放在服务器上(例如,将以下内容添加到工作区脚本中:):