Skip to content

API ASC zh tw

Codex edited this page Oct 3, 2026 · 1 revision

ASC

API · BASIC

Русский · English · Українська · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

ASC · Chr · len · StrComp

ClassicUO • Runtime API

讀取字元代碼或整數設定;引數數量決定兩種不同的操作。

完整語法

ASC(text:String, defaultValue:Integer) -> Integer
ASC(value:String) -> Integer

參數

  • value / text — String:一個引數讀取第一個 UTF-16 碼元;兩個引數解析完整十進位或 0x 十六進位文字,允許正負號及前後空白。
  • defaultValue — Integer 備用值,解析失敗時傳回;僅兩引數形式必填。

傳回值

Integer:字元碼 0..65535,空字串為 0;兩引數形式傳回 Int32 或備用值。十進位溢位失敗;到 0xFFFFFFFF 的十六進位視為帶符號 32 位元,因此 0xFFFFFFFF 是 -1。不接受小數或額外字尾。

行為

  • 僅在本機處理範例資料並傳回值;不傳送聊天、不停止腳本、不移動物品,也不連線至伺服器。
  • 不是成功旗標。讀取 Unicode 而非當地 ANSI;emoji 傳回第一個代理碼元。備用值可能等於有效結果,應選在設定允許範圍之外。

內部函式:從呼叫到結果

一個引數讀取 text[0] 或零;兩個引數呼叫 TryStr2Int,再傳回解析值或備用值。

1. BasicAsc / Asc / NumberConversions.TryStr2Int

一個引數讀取 text[0] 或零;兩個引數呼叫 TryStr2Int,再傳回解析值或備用值。

Integer:字元碼 0..65535,空字串為 0;兩引數形式傳回 Int32 或備用值。十進位溢位失敗;到 0xFFFFFFFF 的十六進位視為帶符號 32 位元,因此 0xFFFFFFFF 是 -1。不接受小數或額外字尾。

專案原始碼: external/InjectionScript/src/InjectionScript/Runtime/InjectionApi.cs; 函式 BasicAsc / Asc / NumberConversions.TryStr2Int.

不是成功旗標。讀取 Unicode 而非當地 ANSI;emoji 傳回第一個代理碼元。備用值可能等於有效結果,應選在設定允許範圍之外。

範例

讀取一位數字

# 讀取一位數字
#
# 讀取字元代碼或整數設定;引數數量決定兩種不同的操作。
#
# Integer:字元碼 0..65535,空字串為 0;兩引數形式傳回 Int32 或備用值。十進位溢位失敗;到 0xFFFFFFFF 的十六進位視為帶符號 32 位元,因此
# 0xFFFFFFFF 是 -1。不接受小數或額外字尾。

SUB Main()
    # ASC("7") = 55;確認在 48..57 後減去 48,傳回 7。
    # 僅在本機處理範例資料並傳回值;不傳送聊天、不停止腳本、不移動物品,也不連線至伺服器。

    Dim code = ASC("7")
    If code >= 48 AndAlso code <= 57 Then
        Return code - 48
    End If
    Return -1
END SUB

參數與執行說明:

  • ASC("7") = 55;確認在 48..57 後減去 48,傳回 7。
  • 僅在本機處理範例資料並傳回值;不傳送聊天、不停止腳本、不移動物品,也不連線至伺服器。

讀取物品圖形設定

# 讀取物品圖形設定
#
# 讀取字元代碼或整數設定;引數數量決定兩種不同的操作。
#
# Integer:字元碼 0..65535,空字串為 0;兩引數形式傳回 Int32 或備用值。十進位溢位失敗;到 0xFFFFFFFF 的十六進位視為帶符號 32 位元,因此
# 0xFFFFFFFF 是 -1。不接受小數或額外字尾。

SUB Main()
    # "0x0EED" 解析為 3821;本例用 -1 表示無效設定,不會移動物品。
    # 僅在本機處理範例資料並傳回值;不傳送聊天、不停止腳本、不移動物品,也不連線至伺服器。

    Dim graphicText = "0x0EED"
    Dim graphic = ASC(graphicText, -1)
    If graphic = -1 Then
        Return "invalid graphic"
    End If
    Return graphic
END SUB

參數與執行說明:

  • "0x0EED" 解析為 3821;本例用 -1 表示無效設定,不會移動物品。
  • 僅在本機處理範例資料並傳回值;不傳送聊天、不停止腳本、不移動物品,也不連線至伺服器。

驗證數量

# 驗證數量
#
# 讀取字元代碼或整數設定;引數數量決定兩種不同的操作。
#
# Integer:字元碼 0..65535,空字串為 0;兩引數形式傳回 Int32 或備用值。十進位溢位失敗;到 0xFFFFFFFF 的十六進位視為帶符號 32 位元,因此
# 0xFFFFFFFF 是 -1。不接受小數或額外字尾。

SUB Main()
    # ReadQuantity 要求 1..100:"invalid" 傳回 -1,"50" 則為 50;不改動物品堆疊。
    # 僅在本機處理範例資料並傳回值;不傳送聊天、不停止腳本、不移動物品,也不連線至伺服器。

    Return ReadQuantity("invalid", 1, 100)
END SUB

Function ReadQuantity(text, minimum, maximum)
    Dim quantity = ASC(text, -1)
    If quantity < minimum OrElse quantity > maximum Then
        Return -1
    End If
    Return quantity
End Function

參數與執行說明:

  • ReadQuantity 要求 1..100:"invalid" 傳回 -1,"50" 則為 50;不改動物品堆疊。
  • 僅在本機處理範例資料並傳回值;不傳送聊天、不停止腳本、不移動物品,也不連線至伺服器。

Clone this wiki locally