Skip to content

API UO Exec ja

Codex edited this page Oct 3, 2026 · 1 revision

UO.Exec

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

UO.Exec · UO.Launch · UO.CallSub · UO.FunRunning · UO.SubExists

ClassicUO • Runtime API

コンソール形式の文字列で1つの命令を実行します。命令名や引数を動的に組み立てる用途です。通常は UO.UseSkill("Hiding") の直接呼び出しが明確です。任意の Basic ソースは評価しません。

正確な構文

UO.Exec(parameters:String) -> Unit

パラメーター

  • parameters — 必須 String:命令名と空白区切りの引数(例:useskill Hiding)。文字列内では UO.、呼び出し括弧、引数間のコンマを付けません。Basic 側では UO.Exec(...) を使います。空文字列は何もしません。

戻り値

Unit:戻り値なし。内部命令やローカル Function の結果も捨てます。値が必要なら直接呼び出してください。戻っただけではサーバー操作の完了を確認できません。

動作

  • 単一・二重引用符で空白を含む引数をまとめます。'' は空引数を保持し、'00123' は先頭ゼロ付き String のままです。引用符なしの数値は変換し、その他は文字列のままです。2+3 は計算しません。
  • Windows/UNC のバックスラッシュは保持します。閉じ引用符の直前にある末尾のバックスラッシュは二重にするか / を使います。内部の同種引用符は二重化またはバックスラッシュでエスケープします。閉じていない引用符はエラーです。Print/Msg/Say/ConsolePrint/TextPrint は残りを文字列に結合し、ColorPrint/CharPrint は先頭の引数を分離します。
  • 対応する UO ハンドラーを優先し、なければこの runtime の引数数が一致するローカル Sub/Function を探します。ローカル呼び出しは同期です。特殊形式 exec プロシージャ名 は引数なしの独立タスクをマネージャーに要求します。この形式で未知の名前なら起動しません。名前はファイルパスではありません。
  • 通常命令の不明、引数数の不一致、引用符の不正は Try/Catch で処理できます。exec は空でない名前を1つだけ取ります。既存タスクの重複作成や一時停止解除はしません。ファイルは startscript、カタログ確認は SubExists/FunRunning。別名:sayu→Say、closeuo→CloseHandle、CountOnGround→CountGround、clearignorelist→IgnoreReset、canceltarget→CancelTarget、cancelmove→MoveOff。

内部関数:呼び出しから結果まで

以下はクライアントの実装段階で、追加の Basic 命令ではありません。補助プロシージャはすべて定義されています。

1. Tokenize

単一・二重引用符で空白を含む引数をまとめます。'' は空引数を保持し、'00123' は先頭ゼロ付き String のままです。引用符なしの数値は変換し、その他は文字列のままです。2+3 は計算しません。

Windows/UNC のバックスラッシュは保持します。閉じ引用符の直前にある末尾のバックスラッシュは二重にするか / を使います。内部の同種引用符は二重化またはバックスラッシュでエスケープします。閉じていない引用符はエラーです。Print/Msg/Say/ConsolePrint/TextPrint は残りを文字列に結合し、ColorPrint/CharPrint は先頭の引数を分離します。

プロジェクトのソース: external/InjectionScript/src/InjectionScript/Runtime/InjectionRuntime.cs; 関数 Tokenize.

2. Exec / CallNativeSubrutine

対応する UO ハンドラーを優先し、なければこの runtime の引数数が一致するローカル Sub/Function を探します。ローカル呼び出しは同期です。特殊形式 exec プロシージャ名 は引数なしの独立タスクをマネージャーに要求します。この形式で未知の名前なら起動しません。名前はファイルパスではありません。

Unit:戻り値なし。内部命令やローカル Function の結果も捨てます。値が必要なら直接呼び出してください。戻っただけではサーバー操作の完了を確認できません。

プロジェクトのソース: external/InjectionScript/src/InjectionScript/Runtime/InjectionRuntime.cs; 関数 Exec / CallNativeSubrutine.

以下はクライアントの実装段階で、追加の Basic 命令ではありません。補助プロシージャはすべて定義されています。

使用例

スキルを使用

# スキルを使用
#
# コンソール形式の文字列で1つの命令を実行します。命令名や引数を動的に組み立てる用途です。通常は UO.UseSkill("Hiding") の直接呼び出しが明確です。任意の Basic
# ソースは評価しません。
#
# Unit:戻り値なし。内部命令やローカル Function の結果も捨てます。値が必要なら直接呼び出してください。戻っただけではサーバー操作の完了を確認できません。

SUB Main()
    # Hiding が UseSkill の唯一の引数です。ワールド内でスキル要求を送り、成功はサーバーが決めます。直接形式:UO.UseSkill("Hiding")。

    UO.Exec("useskill Hiding")
END SUB

パラメーターと実行の説明:

  • Hiding が UseSkill の唯一の引数です。ワールド内でスキル要求を送り、成功はサーバーが決めます。直接形式:UO.UseSkill("Hiding")。

ローカル処理に名前を渡す

# ローカル処理に名前を渡す
#
# コンソール形式の文字列で1つの命令を実行します。命令名や引数を動的に組み立てる用途です。通常は UO.UseSkill("Hiding") の直接呼び出しが明確です。任意の Basic
# ソースは評価しません。
#
# Unit:戻り値なし。内部命令やローカル Function の結果も捨てます。値が必要なら直接呼び出してください。戻っただけではサーバー操作の完了を確認できません。

SUB Main()
    # 下で定義する SelectSavedRoute が経路名を保存します。引用符で 00123 を保持し、同期呼び出し後 Main がその文字列を返します。名前を保存する例で、移動はしません。

    UO.Exec("SelectSavedRoute '00123'")
    Return UO.GetGlobal("manual", "savedRoute")
END SUB

Sub SelectSavedRoute(name)
    UO.SetGlobal("manual", "savedRoute", name)
End Sub

パラメーターと実行の説明:

  • 下で定義する SelectSavedRoute が経路名を保存します。引用符で 00123 を保持し、同期呼び出し後 Main がその文字列を返します。名前を保存する例で、移動はしません。

独立した監視を起動

# 独立した監視を起動
#
# コンソール形式の文字列で1つの命令を実行します。命令名や引数を動的に組み立てる用途です。通常は UO.UseSkill("Hiding") の直接呼び出しが明確です。任意の Basic
# ソースは評価しません。
#
# Unit:戻り値なし。内部命令やローカル Function の結果も捨てます。値が必要なら直接呼び出してください。戻っただけではサーバー操作の完了を確認できません。

SUB Main()
    # ファイル全体を IDE/マネージャーで読み込んで Main を実行し、WeightWatch
    # をカタログへ登録します。重量を1000ミリ秒間隔で3回測定します。同時実行を許可してください。再呼び出しでも一時停止は解除しません。

    UO.Exec("exec WeightWatch")
END SUB

Sub WeightWatch()
    Dim sample
    For sample = 1 To 3
        If UO.Connected() Then
            UO.Print("Weight: " & CStr(UO.Weight()))
        End If
        UO.Wait(1000)
    Next
End Sub

パラメーターと実行の説明:

  • ファイル全体を IDE/マネージャーで読み込んで Main を実行し、WeightWatch をカタログへ登録します。重量を1000ミリ秒間隔で3回測定します。同時実行を許可してください。再呼び出しでも一時停止は解除しません。

空白を含むパスから起動

# 空白を含むパスから起動
#
# コンソール形式の文字列で1つの命令を実行します。命令名や引数を動的に組み立てる用途です。通常は UO.UseSkill("Hiding") の直接呼び出しが明確です。任意の Basic
# ソースは評価しません。
#
# Unit:戻り値なし。内部命令やローカル Function の結果も捨てます。値が必要なら直接呼び出してください。戻っただけではサーバー操作の完了を確認できません。

SUB Main()
    # Main を持つ実在の Basic ファイルに置き換えます。startscript が読み込みと Main 起動を要求します。内側の引用符はコンソール形式用です。Exec
    # は起動確認を返さないため IDE のエラーを確認してください。

    UO.Exec("startscript 'C:\UO Scripts\Gather.bas'")
END SUB

パラメーターと実行の説明:

  • Main を持つ実在の Basic ファイルに置き換えます。startscript が読み込みと Main 起動を要求します。内側の引用符はコンソール形式用です。Exec は起動確認を返さないため IDE のエラーを確認してください。

Clone this wiki locally