2017-08-04 8 views
0

私はTextBoxに書き込むと、サーバーにあるプレーヤーの名前 が死ぬだろうが、私にこのエラーが出る。TextBoxのインデックスを作成しようとすると、無限の値になる

local screenGui = script.Parent 
local textBox = screenGui:FindFirstChild("TextBox", true) 

textBox.FocusLost:Connect(function(enterPressed) 
    --[[This function is called every time the TextBox is "unfocused". A TextBox is "focused" when the player is typing in it, and "unfocused" when they're doing something else.]] 
    --[[a parameter is passed to this function, "enterPressed". This is true if the player unfocused the TextBox by pressing enter. Another way to unfocus it is by clicking somewhere outside it.]] 

    --Try to find a player with the name of whatever is in the TextBox 
    local player = game.Players:FindFirstChild(textBox.Text) 
    if player then --Check if we found that player 
    local character = player.Character 
    local humanoid = character:FindFirstChild("Humanoid") --try to find the humanoid 

    if humanoid then --check if we found that humanoid 
     humanoid.Health = 0 --kill the humanoid 
    end 
    end 
end) 
+0

おそらく、textBoxの代わりにTextBoxを使用しますか? –

答えて

3

attempt to index local 'textBox' (a nil value)

このエラーメッセージは、あなたがtextBoxという名前nil値をインデックス化していることを示しています:

attempt to index local 'textBox' (a nil value)

は、ここに私のスクリプトです。

だから、これであなたは、インデックスtextBox、最初の行に移動:

textBox.FocusLost:Connect(function(enterPressed) 

なぜ、この行のためのテキストボックスnilがありますか?さて、その行の前に値をtextBoxに設定する場所を見てみましょう。

local textBox = screenGui:FindFirstChild("TextBox", true) 

明らかに、screenGui:FindFirstChildはnilを返します。

はここリファレンスマニュアルをhttp://wiki.roblox.com/index.php?title=API:Class/Instance/FindFirstChild&redirect=no

を参照してください、私たちは読み:

Returns the first child found with the given name, or nil if no such child exists. If the optional recursive argument is true, recursively descends the hierarchy while searching rather than only searching the immediate object.

をだから、1つを見つけることができませんので、あなたが「TextBlockの」という名前の子を持っていないリファレンスマニュアルに従って。

まず、これをゼロにすることができれば、textBoxをインデックス化することはできません。

if textBox then 
    textBox.someFancyIndex() 
end 

あなたは既にところでヒューマノイドのためにこれをやった:

local humanoid = character:FindFirstChild("Humanoid") --try to find the humanoid 

if humanoid then --check if we found that humanoid 
    humanoid.Health = 0 --kill the humanoid 
end 

なぜないテキスト欄の?

もちろん、「TextBox」という名前のオブジェクトがない理由を確認する必要があります。間違ったインスタンスを探していますか?そのオブジェクトを作成するのを忘れましたか?

あなたはそれぞれのコードを提供していないので、それはわかりません。

+1

彼はメソッド:: FindFirstChild()ではなくWaitForChild()を試すかもしれません。 Robloxは、スクリプトの実行時にアセットがロードされることを保証しません。 – Henry

関連する問題