現在我對 lua 真的很陌生,需要一點幫助這個腳本檢查播放器 UI 上的一些文本,如果它等于一件事,它就會起作用,例如:game:GetService("Players").LocalPlayer.PlayerGui.Main.Border.ClassLabel.Text == "UNIVERSELORD"
但是如果我添加或game:GetService("Players").LocalPlayer.PlayerGui.Main.Border.ClassLabel.Text == "UNIVERSELORD" or "TANKTOP"它最終會這樣做,無論如何它都不起作用什么,我不知道為什么,如果我只輸入一個名字它會起作用,我將不勝感激,謝謝!
uj5u.com熱心網友回復:
由于缺乏詳細資訊,您幾天前已經關閉了相同的問題。不清楚為什么要在文本中添加“或”,因此您需要清楚地解釋并提供一個帶有一些背景關系的示例,以便這種用法有意義。
就“或”陳述句而言,它不會產生您想要的結果,因為它回傳第一個計算為 non- 的結果false,因此當您有1 or 2運算式時,結果為1,因為它是從左到右計算的這是一個非false結果。同樣,在您的情況下,運算式"UNIVERSELORD" or "TANKTOP"的計算結果為"UNIVERSELORD",因為它false是遇到的第一個非值。
不幸的是沒有人能告訴你什么改變它來,因為沒有在你的目標的問題足夠的細節。可能是XY 問題。
[更新]根據您的評論,您需要將其拆分or為兩個完整的比較:game:GetService("Players").LocalPlayer.PlayerGui.Main.Border.ClassLabel.Text == "UNIVERSELORD" or game:GetService("Players").LocalPlayer.PlayerGui.Main.Border.ClassLabel.Text == "TANKTOP"
uj5u.com熱心網友回復:
在 Lua 中,任何不為真nil或被false認為為真的值。
所以在
if (game:GetService("Players").LocalPlayer.PlayerGui.Main.Border.ClassLabel.Text == "UNIVERSELORD" or "TANKTOP") then
getgenv().Spinloop = false print("Stopped!") return 0;
end
"TANKTOP" 是一個字串,因此是一個真值。
or-ing 任何具有真值的東西始終為真。所以是否game:GetService("Players").LocalPlayer.PlayerGui.Main.Border.ClassLabel.Text等于并不重要"UNIVERSELORD"。結果總是正確的。因此,無論文本值如何,始終滿足您的 if 條件。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/382319.html
上一篇:索引的基本字串切片
