Skip to content

API UO Exec es

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

Ejecuta un comando escrito en formato de consola, útil para construir su nombre o argumentos como texto. Una llamada directa UO.UseSkill("Hiding") suele ser más clara. No evalúa código Basic arbitrario.

Sintaxis exacta

UO.Exec(parameters:String) -> Unit

Parámetros

  • parameters — String obligatoria: nombre y argumentos separados por espacios, como useskill Hiding. Dentro del texto no se usa UO., paréntesis ni comas de llamada. En Basic se escribe UO.Exec(...). Una cadena vacía no hace nada.

Devuelve

Unit: sin valor. Descarta el resultado del comando o Function local; para obtenerlo use una llamada directa. El retorno no confirma ninguna acción del servidor.

Comportamiento

  • Las comillas simples o dobles agrupan argumentos con espacios. '' conserva un argumento vacío; '00123' sigue siendo String con ceros. Sin comillas se reconocen números; lo demás queda como texto. 2+3 no se calcula.
  • Se conservan las barras inversas de Windows/UNC. Duplique una barra final justo antes de la comilla de cierre, o use /. Una comilla interna puede duplicarse o escaparse con barra inversa. Las comillas sin cerrar causan error. Print/Msg/Say/ConsolePrint/TextPrint unen el resto como texto; ColorPrint/CharPrint separan sus argumentos iniciales.
  • Primero busca un manejador UO compatible; después una Sub/Function local del runtime con el número correcto de argumentos. La llamada local es síncrona. La forma especial exec NombreProcedimiento solicita al gestor una tarea independiente sin argumentos; un nombre desconocido en esa forma no inicia nada. No es una ruta de archivo.
  • Un comando ordinario desconocido, aridad incorrecta o comillas inválidas causan un error capturable con Try/Catch. exec exige exactamente un nombre no vacío. Repetir una tarea activa no la duplica ni reanuda. Archivos: startscript; catálogo: SubExists/FunRunning. Alias: sayu→Say, closeuo→CloseHandle, CountOnGround→CountGround, clearignorelist→IgnoreReset, canceltarget→CancelTarget, cancelmove→MoveOff.

Funciones internas: de la llamada al resultado

Son etapas de implementación del cliente, no comandos Basic adicionales. Los procedimientos auxiliares se definen completos.

1. Tokenize

Las comillas simples o dobles agrupan argumentos con espacios. '' conserva un argumento vacío; '00123' sigue siendo String con ceros. Sin comillas se reconocen números; lo demás queda como texto. 2+3 no se calcula.

Se conservan las barras inversas de Windows/UNC. Duplique una barra final justo antes de la comilla de cierre, o use /. Una comilla interna puede duplicarse o escaparse con barra inversa. Las comillas sin cerrar causan error. Print/Msg/Say/ConsolePrint/TextPrint unen el resto como texto; ColorPrint/CharPrint separan sus argumentos iniciales.

Código del proyecto: external/InjectionScript/src/InjectionScript/Runtime/InjectionRuntime.cs; función Tokenize.

2. Exec / CallNativeSubrutine

Primero busca un manejador UO compatible; después una Sub/Function local del runtime con el número correcto de argumentos. La llamada local es síncrona. La forma especial exec NombreProcedimiento solicita al gestor una tarea independiente sin argumentos; un nombre desconocido en esa forma no inicia nada. No es una ruta de archivo.

Unit: sin valor. Descarta el resultado del comando o Function local; para obtenerlo use una llamada directa. El retorno no confirma ninguna acción del servidor.

Código del proyecto: external/InjectionScript/src/InjectionScript/Runtime/InjectionRuntime.cs; función Exec / CallNativeSubrutine.

Son etapas de implementación del cliente, no comandos Basic adicionales. Los procedimientos auxiliares se definen completos.

Ejemplos

Usar una habilidad

# Usar una habilidad
#
# Ejecuta un comando escrito en formato de consola, útil para construir su nombre o argumentos
# como texto. Una llamada directa UO.UseSkill("Hiding") suele ser más clara. No evalúa código
# Basic arbitrario.
#
# Unit: sin valor. Descarta el resultado del comando o Function local; para obtenerlo use una
# llamada directa. El retorno no confirma ninguna acción del servidor.

SUB Main()
    # Hiding es el único argumento de UseSkill. Dentro del mundo se envía la solicitud; el servidor
    # decide el éxito. Equivalente directo: UO.UseSkill("Hiding").

    UO.Exec("useskill Hiding")
END SUB

Explicación de los parámetros y la ejecución:

  • Hiding es el único argumento de UseSkill. Dentro del mundo se envía la solicitud; el servidor decide el éxito. Equivalente directo: UO.UseSkill("Hiding").

Pasar un nombre a un procedimiento local

# Pasar un nombre a un procedimiento local
#
# Ejecuta un comando escrito en formato de consola, útil para construir su nombre o argumentos
# como texto. Una llamada directa UO.UseSkill("Hiding") suele ser más clara. No evalúa código
# Basic arbitrario.
#
# Unit: sin valor. Descarta el resultado del comando o Function local; para obtenerlo use una
# llamada directa. El retorno no confirma ninguna acción del servidor.

SUB Main()
    # SelectSavedRoute se define abajo y guarda el nombre de ruta. Las comillas conservan 00123.
    # Main devuelve esa cadena tras la llamada síncrona; no mueve al personaje.

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

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

Explicación de los parámetros y la ejecución:

  • SelectSavedRoute se define abajo y guarda el nombre de ruta. Las comillas conservan 00123. Main devuelve esa cadena tras la llamada síncrona; no mueve al personaje.

Iniciar un monitor independiente

# Iniciar un monitor independiente
#
# Ejecuta un comando escrito en formato de consola, útil para construir su nombre o argumentos
# como texto. Una llamada directa UO.UseSkill("Hiding") suele ser más clara. No evalúa código
# Basic arbitrario.
#
# Unit: sin valor. Descarta el resultado del comando o Function local; para obtenerlo use una
# llamada directa. El retorno no confirma ninguna acción del servidor.

SUB Main()
    # Cargue el archivo completo en gestor/IDE y ejecute Main: WeightWatch debe figurar en el
    # catálogo. Tres mediciones de peso cada 1000 ms se ejecutan independientemente. Deben
    # permitirse procedimientos simultáneos; repetir no elimina una pausa.

    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

Explicación de los parámetros y la ejecución:

  • Cargue el archivo completo en gestor/IDE y ejecute Main: WeightWatch debe figurar en el catálogo. Tres mediciones de peso cada 1000 ms se ejecutan independientemente. Deben permitirse procedimientos simultáneos; repetir no elimina una pausa.

Cargar desde una ruta con espacios

# Cargar desde una ruta con espacios
#
# Ejecuta un comando escrito en formato de consola, útil para construir su nombre o argumentos
# como texto. Una llamada directa UO.UseSkill("Hiding") suele ser más clara. No evalúa código
# Basic arbitrario.
#
# Unit: sin valor. Descarta el resultado del comando o Function local; para obtenerlo use una
# llamada directa. El retorno no confirma ninguna acción del servidor.

SUB Main()
    # Sustituya por un archivo Basic existente con Main. startscript carga el archivo y solicita
    # Main. Las comillas internas pertenecen al comando de consola. Revise errores en IDE: Exec no
    # confirma el inicio.

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

Explicación de los parámetros y la ejecución:

  • Sustituya por un archivo Basic existente con Main. startscript carga el archivo y solicita Main. Las comillas internas pertenecen al comando de consola. Revise errores en IDE: Exec no confirma el inicio.

Clone this wiki locally