-
Notifications
You must be signed in to change notification settings - Fork 0
API ArrayContains zh tw
Русский · English · Українська · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
ClassicUO • Runtime API
檢查允許或已處理的陣列中是否含有某個值。
ArrayContains(array:Any, pattern:Any) -> Integer
-
array— 要檢查的 Array;其他種類回傳 0。 -
pattern— 要在直接元素中尋找的任意值。
Integer 布林值:符合為 1/True,否則 0/False。可使用 If ArrayContains(...) 或與 True/1 比較。這不是索引或符合數量。
- 這是本機查詢,不會向伺服器發送要求、移動物品或修改陣列。範例使用固定資料,並非即時背包。
- 檢查種類後逐一比較外層元素,第一個符合便結束。Integer 1 等於 Decimal 1.0,但不等於 String "1"。字串區分大小寫。
- 巢狀 Array 與參照 Object 比較參照是否相同。Structure 是例外:相同宣告型別且各欄位值相等便相等;Array/Object 欄位仍依各自的比較規則。不會遞迴搜尋;空陣列為 0。未初始化欄位含有 Unit,可與 Unit 符合。
檢查種類後逐一比較外層元素,第一個符合便結束。Integer 1 等於 Decimal 1.0,但不等於 String "1"。字串區分大小寫。
檢查種類後逐一比較外層元素,第一個符合便結束。Integer 1 等於 Decimal 1.0,但不等於 String "1"。字串區分大小寫。
Integer 布林值:符合為 1/True,否則 0/False。可使用 If ArrayContains(...) 或與 True/1 比較。這不是索引或符合數量。
專案原始碼: external/InjectionScript/src/InjectionScript/Runtime/InjectionApi.cs; 函式 ArrayContains.
檢查種類後逐一比較外層元素,第一個符合便結束。Integer 1 等於 Decimal 1.0,但不等於 String "1"。字串區分大小寫。
巢狀 Array 與參照 Object 比較參照是否相同。Structure 是例外:相同宣告型別且各欄位值相等便相等;Array/Object 欄位仍依各自的比較規則。不會遞迴搜尋;空陣列為 0。未初始化欄位含有 Unit,可與 Unit 符合。
專案原始碼: external/InjectionScript/src/InjectionScript/Runtime/InjectionValue.cs; 函式 Equals.
巢狀 Array 與參照 Object 比較參照是否相同。Structure 是例外:相同宣告型別且各欄位值相等便相等;Array/Object 欄位仍依各自的比較規則。不會遞迴搜尋;空陣列為 0。未初始化欄位含有 Unit,可與 Unit 符合。
Integer 布林值:符合為 1/True,否則 0/False。可使用 If ArrayContains(...) 或與 True/1 比較。這不是索引或符合數量。
專案原始碼: external/InjectionScript/src/InjectionScript/Runtime/ObjectTypes/StructureObject.cs; 函式 ValueEquals.
巢狀 Array 與參照 Object 比較參照是否相同。Structure 是例外:相同宣告型別且各欄位值相等便相等;Array/Object 欄位仍依各自的比較規則。不會遞迴搜尋;空陣列為 0。未初始化欄位含有 Unit,可與 Unit 符合。
# 允許指定物品圖形
#
# 檢查允許或已處理的陣列中是否含有某個值。
#
# Integer 布林值:符合為 1/True,否則 0/False。可使用 If ArrayContains(...) 或與 True/1 比較。這不是索引或符合數量。
SUB Main()
# 清單中有 0x0EED,所以回傳 allowed。不會搜尋或移動物品。
# 這是本機查詢,不會向伺服器發送要求、移動物品或修改陣列。範例使用固定資料,並非即時背包。
Dim allowed(1)
allowed[0] = 0x0EED
allowed[1] = 0x0F7A
Dim graphic = 0x0EED
If ArrayContains(allowed, graphic) = True Then
Return "allowed"
End If
Return "skip"
END SUB參數與執行說明:
- 清單中有 0x0EED,所以回傳 allowed。不會搜尋或移動物品。
- 這是本機查詢,不會向伺服器發送要求、移動物品或修改陣列。範例使用固定資料,並非即時背包。
# 避免重複處理 serial
#
# 檢查允許或已處理的陣列中是否含有某個值。
#
# Integer 布林值:符合為 1/True,否則 0/False。可使用 If ArrayContains(...) 或與 True/1 比較。這不是索引或符合數量。
SUB Main()
# ASC 明確將十六進位字串轉成 Integer。已存在的 serial 回傳 already queued;原本的 String 不會與數字相符。
# 這是本機查詢,不會向伺服器發送要求、移動物品或修改陣列。範例使用固定資料,並非即時背包。
Dim queued(1)
queued[0] = 0x40001234
queued[1] = 0x40005678
Dim incoming = "0x40001234"
Dim serial = ASC(incoming, 0)
If serial = 0 Then
Return "invalid"
End If
If ArrayContains(queued, serial) Then
Return "already queued"
End If
Return "new"
END SUB參數與執行說明:
- ASC 明確將十六進位字串轉成 Integer。已存在的 serial 回傳 already queued;原本的 String 不會與數字相符。
- 這是本機查詢,不會向伺服器發送要求、移動物品或修改陣列。範例使用固定資料,並非即時背包。
# 路徑點的參照
#
# 檢查允許或已處理的陣列中是否含有某個值。
#
# Integer 布林值:符合為 1/True,否則 0/False。可使用 If ArrayContains(...) 或與 True/1 比較。這不是索引或符合數量。
SUB Main()
# route 包含 point,不包含 sameCoordinates。相同座標不代表同一陣列參照,所以結果為 1|0。
# 這是本機查詢,不會向伺服器發送要求、移動物品或修改陣列。範例使用固定資料,並非即時背包。
Dim point(1)
point[0] = 100
point[1] = 200
Dim sameCoordinates(1)
sameCoordinates[0] = 100
sameCoordinates[1] = 200
Dim route(0)
route[0] = point
Return CStr(ArrayContains(route, point)) & "|" & CStr(ArrayContains(route, sameCoordinates))
END SUB參數與執行說明:
- route 包含 point,不包含 sameCoordinates。相同座標不代表同一陣列參照,所以結果為 1|0。
- 這是本機查詢,不會向伺服器發送要求、移動物品或修改陣列。範例使用固定資料,並非即時背包。
ClassicUO
Bad Newbie & Basic IDE
Найти в справочнике
Клиент и скрипты
Каталоги значений
Разработка и помощь