Skip to content

API UO FunRunning es

Codex edited this page Oct 3, 2026 · 1 revision

UO.FunRunning

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

UO.CallSub · UO.FunRunning · UO.SubExists

ClassicUO • Runtime API

Comprueba si la rutina tiene una ejecución activa, incluida una pausada. Evita reiniciar un monitor existente.

Sintaxis exacta

UO.FunRunning(subrutineName:String) -> Integer

Parámetros

  • subrutineName — String subrutineName obligatorio: nombre Sub/Function del catálogo, por ejemplo WeightWatch. No es ruta, archivo, índice, código ni etiqueta cambiada con SetScriptName. Ignora mayúsculas, pero no recorta espacios. No permite pasar argumentos a la rutina.

Devuelve

Integer: 1 (True) si la ejecución existe y no está cancelada, incluidas pausas manuales o por desconexión; 0 (False) si falta, no empezó, terminó o se cancela. Válidos If UO.FunRunning(name), = 1 y = True. GetScriptState distingue ejecución (1) de pausa (2).

Comportamiento

  • Solo busca en el catálogo de esta sesión. Los nombres duplicados eligen la primera coincidencia: usar nombres únicos. Estos comandos no cargan archivos desconocidos ni buscan en el disco.
  • CallSub proporciona cero argumentos. Private, errores sintácticos, parámetros obligatorios, Basic desactivado o la regla de una sola rutina pueden rechazar el inicio; revisar estado/errores IDE. Repetir la llamada no duplica ni reanuda una ejecución activa. Tras cancelar puede esperar su limpieza. El controlador no espera a que termine la tarea.
  • FunRunning usa el nombre original y la clave, no una etiqueta renombrada. Pausar conserva la ejecución y devuelve 1. Cancelar devuelve 0 incluso durante la limpieza. Comprobación y llamada posterior no son atómicas: la tarea puede terminar entre ambas.
  • SubExists puede devolver 1 para una definición Private o inválida. Detener o cerrar la pestaña no necesariamente elimina la entrada. Recargar un archivo modificado elimina definiciones obsoletas. Una función cargada solo en otro runtime puede no estar registrada en el gestor.

Funciones internas: de la llamada al resultado

Son etapas reales de implementación; sus nombres C# no son comandos UO adicionales. Todas las funciones auxiliares Basic ejecutables aparecen completas.

1. FunRunning

String subrutineName obligatorio: nombre Sub/Function del catálogo, por ejemplo WeightWatch. No es ruta, archivo, índice, código ni etiqueta cambiada con SetScriptName. Ignora mayúsculas, pero no recorta espacios. No permite pasar argumentos a la rutina.

Integer: 1 (True) si la ejecución existe y no está cancelada, incluidas pausas manuales o por desconexión; 0 (False) si falta, no empezó, terminó o se cancela. Válidos If UO.FunRunning(name), = 1 y = True. GetScriptState distingue ejecución (1) de pausa (2).

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

2. FindProcedureByName

Solo busca en el catálogo de esta sesión. Los nombres duplicados eligen la primera coincidencia: usar nombres únicos. Estos comandos no cargan archivos desconocidos ni buscan en el disco.

SubExists puede devolver 1 para una definición Private o inválida. Detener o cerrar la pestaña no necesariamente elimina la entrada. Recargar un archivo modificado elimina definiciones obsoletas. Una función cargada solo en otro runtime puede no estar registrada en el gestor.

Código del proyecto: src/ClassicUO.Client/Game/Managers/YokoInjectionManager.cs; función FindProcedureByName.

3. FunRunning

Comprueba si la rutina tiene una ejecución activa, incluida una pausada. Evita reiniciar un monitor existente.

FunRunning usa el nombre original y la clave, no una etiqueta renombrada. Pausar conserva la ejecución y devuelve 1. Cancelar devuelve 0 incluso durante la limpieza. Comprobación y llamada posterior no son atómicas: la tarea puede terminar entre ambas.

Código del proyecto: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; función FunRunning.

Son etapas reales de implementación; sus nombres C# no son comandos UO adicionales. Todas las funciones auxiliares Basic ejecutables aparecen completas.

Ejemplos

Iniciar sin ejecución activa

# Iniciar sin ejecución activa
#
# Comprueba si la rutina tiene una ejecución activa, incluida una pausada. Evita reiniciar un
# monitor existente.
#
# Integer: 1 (True) si la ejecución existe y no está cancelada, incluidas pausas manuales o por
# desconexión; 0 (False) si falta, no empezó, terminó o se cancela. Válidos If
# UO.FunRunning(name), = 1 y = True. GetScriptState distingue ejecución (1) de pausa (2).

SUB Main()
    # FunRunning = 0 permite solicitar el inicio. La pausa devuelve 1 y no se elimina.
    # Guardar cada ejemplo por separado, cargarlo en IDE/gestor e iniciar Main para registrar las
    # rutinas. WeightWatch/ManaWatch están definidas por completo: tres muestras de peso/maná,
    # Wait(1000) = 1000 ms, salida solo dentro del mundo. Son monitores finitos; las pausas alargan
    # el tiempo. Permitir rutinas simultáneas para las dos tareas.

    If Not UO.FunRunning("WeightWatch") Then
        UO.CallSub("WeightWatch")
    End If
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:

  • FunRunning = 0 permite solicitar el inicio. La pausa devuelve 1 y no se elimina.
  • Guardar cada ejemplo por separado, cargarlo en IDE/gestor e iniciar Main para registrar las rutinas. WeightWatch/ManaWatch están definidas por completo: tres muestras de peso/maná, Wait(1000) = 1000 ms, salida solo dentro del mundo. Son monitores finitos; las pausas alargan el tiempo. Permitir rutinas simultáneas para las dos tareas.

Distinguir ejecución y pausa

# Distinguir ejecución y pausa
#
# Comprueba si la rutina tiene una ejecución activa, incluida una pausada. Evita reiniciar un
# monitor existente.
#
# Integer: 1 (True) si la ejecución existe y no está cancelada, incluidas pausas manuales o por
# desconexión; 0 (False) si falta, no empezó, terminó o se cancela. Válidos If
# UO.FunRunning(name), = 1 y = True. GetScriptState distingue ejecución (1) de pausa (2).

SUB Main()
    # NamedRunState busca la etiqueta WeightWatch y devuelve GetScriptState: 1, 2 o 0. Supone
    # etiqueta única sin renombrar y lista estable. Tras SetScriptName buscar nueva etiqueta o ruta;
    # FunRunning sigue usando el nombre fuente.
    # Guardar cada ejemplo por separado, cargarlo en IDE/gestor e iniciar Main para registrar las
    # rutinas. WeightWatch/ManaWatch están definidas por completo: tres muestras de peso/maná,
    # Wait(1000) = 1000 ms, salida solo dentro del mundo. Son monitores finitos; las pausas alargan
    # el tiempo. Permitir rutinas simultáneas para las dos tareas.

    If UO.FunRunning("WeightWatch") Then
        Return NamedRunState("WeightWatch")
    End If
    Return 0
END SUB

Function NamedRunState(name) As Integer
    Dim indices = UO.GetScriptsList()
    For Each index In indices
        If UO.GetScriptName(index) = name Then
            Return UO.GetScriptState(index)
        End If
    Next
    Return 0
End Function

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:

  • NamedRunState busca la etiqueta WeightWatch y devuelve GetScriptState: 1, 2 o 0. Supone etiqueta única sin renombrar y lista estable. Tras SetScriptName buscar nueva etiqueta o ruta; FunRunning sigue usando el nombre fuente.
  • Guardar cada ejemplo por separado, cargarlo en IDE/gestor e iniciar Main para registrar las rutinas. WeightWatch/ManaWatch están definidas por completo: tres muestras de peso/maná, Wait(1000) = 1000 ms, salida solo dentro del mundo. Son monitores finitos; las pausas alargan el tiempo. Permitir rutinas simultáneas para las dos tareas.

Detener un único monitor

# Detener un único monitor
#
# Comprueba si la rutina tiene una ejecución activa, incluida una pausada. Evita reiniciar un
# monitor existente.
#
# Integer: 1 (True) si la ejecución existe y no está cancelada, incluidas pausas manuales o por
# desconexión; 0 (False) si falta, no empezó, terminó o se cancela. Válidos If
# UO.FunRunning(name), = 1 y = True. GetScriptState distingue ejecución (1) de pausa (2).

SUB Main()
    # Terminate recibe el nombre original WeightWatch y cancela esa tarea, incluso pausada. Las
    # demás continúan. Ejecutar Main como controlador separado.
    # Guardar cada ejemplo por separado, cargarlo en IDE/gestor e iniciar Main para registrar las
    # rutinas. WeightWatch/ManaWatch están definidas por completo: tres muestras de peso/maná,
    # Wait(1000) = 1000 ms, salida solo dentro del mundo. Son monitores finitos; las pausas alargan
    # el tiempo. Permitir rutinas simultáneas para las dos tareas.

    If UO.FunRunning("WeightWatch") Then
        UO.Terminate("WeightWatch")
    End If
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:

  • Terminate recibe el nombre original WeightWatch y cancela esa tarea, incluso pausada. Las demás continúan. Ejecutar Main como controlador separado.
  • Guardar cada ejemplo por separado, cargarlo en IDE/gestor e iniciar Main para registrar las rutinas. WeightWatch/ManaWatch están definidas por completo: tres muestras de peso/maná, Wait(1000) = 1000 ms, salida solo dentro del mundo. Son monitores finitos; las pausas alargan el tiempo. Permitir rutinas simultáneas para las dos tareas.

Clone this wiki locally