与NPC对话完成后,需要更改对象的透明度

时间:2018-12-30 02:05:56

标签: lua roblox

我是Roblox脚本的新手,我试图在NPC对话开始后将武器从透明更改为可见。

我在属性中将武器“ Autohyperlaser”的透明度设置为1,因此默认情况下它是透明的。我有一个名为“ Weapon_holder”的NPC,它有一个Dialog和DialogChoice子级。因此,层次结构为:

workspace.Weapon_holder.Head.Dialog.DialogChoice

我在DialogChoice对象下创建了一个脚本,该脚本具有以下代码:

local Dialog = script.Parent

Dialog.DialogChoiceSelected:Connect(function(Player, Choice)
workspace.Autohyperlaser.Handle.Transparency = 0
end)

我期望选择任何对话框选择之后,workspace.Autohyperlaser.Handle的透明度从1变为0。但是,喷枪保持透明,因此脚本不正确或未被调用。我该如何使用它?

1 个答案:

答案 0 :(得分:0)

DialogChoiceSelected事件只能在客户端触发。这是一个事件 Dialog,而不是DialogChoice。而且您必须在LocalScript中使用它,因为该事件仅是客户端的。您可以将LocalScript放入角色中,方法是将其放入StarterPlayer> StarterCharacterScripts中,或者将其放入播放器中,然后将其放入StarterPlayer> StarterPlayerScripts中,因为LocalScript仅在它们是这些或任何其他玩家后代对象的后代时才会运行。 >

对于代码,只需更改Dialog变量:

local Dialog = workspace.Weapon_holder.Head.Dialog --Since it is an event of a Dialog

Dialog.DialogChoiceSelected:Connect(function(Player, Choice)
workspace.Autohyperlaser.Handle.Transparency = 0
end)

如果LocalScript在正确的位置,则应立即将其触发。