-
Notifications
You must be signed in to change notification settings - Fork 0
API UO SubExists es
Русский · English · Українська · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
UO.CallSub · UO.FunRunning · UO.SubExists
ClassicUO • Runtime API
Busca una definición en el catálogo del gestor antes de iniciar un módulo opcional. Su presencia no implica ejecución ni que pueda iniciarse sin argumentos.
UO.SubExists(subrutineName:String) -> Integer
-
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.
Integer: 1 (True) si existe la definición; 0 (False) en otro caso. Válidos If UO.SubExists(name), = 1 y = True; 0 corresponde a False. No comprueba archivo, validez ni ejecución activa.
- 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.
Son etapas reales de implementación; sus nombres C# no son comandos UO adicionales. Todas las funciones auxiliares Basic ejecutables aparecen completas.
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 existe la definición; 0 (False) en otro caso. Válidos If UO.SubExists(name), = 1 y = True; 0 corresponde a False. No comprueba archivo, validez ni ejecución activa.
Código del proyecto: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; función SubExists.
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.
Busca una definición en el catálogo del gestor antes de iniciar un módulo opcional. Su presencia no implica ejecución ni que pueda iniciarse sin argumentos.
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/ClassicUOInjectionApiBridge.cs; función SubExists.
Son etapas reales de implementación; sus nombres C# no son comandos UO adicionales. Todas las funciones auxiliares Basic ejecutables aparecen completas.
# Iniciar una rutina disponible
#
# Busca una definición en el catálogo del gestor antes de iniciar un módulo opcional. Su
# presencia no implica ejecución ni que pueda iniciarse sin argumentos.
#
# Integer: 1 (True) si existe la definición; 0 (False) en otro caso. Válidos If
# UO.SubExists(name), = 1 y = True; 0 corresponde a False. No comprueba archivo, validez ni
# ejecución activa.
SUB Main()
# Para este resultado lógico, = True equivale a = 1. Cargar el archivo para registrar
# WeightWatch definida abajo.
# 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.SubExists("WeightWatch") = True 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 SubExplicación de los parámetros y la ejecución:
- Para este resultado lógico, = True equivale a = 1. Cargar el archivo para registrar WeightWatch definida abajo.
- 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.
# Elegir alternativa
#
# Busca una definición en el catálogo del gestor antes de iniciar un módulo opcional. Su
# presencia no implica ejecución ni que pueda iniciarse sin argumentos.
#
# Integer: 1 (True) si existe la definición; 0 (False) en otro caso. Válidos If
# UO.SubExists(name), = 1 y = True; 0 corresponde a False. No comprueba archivo, validez ni
# ejecución activa.
SUB Main()
# WeightWatch puede venir de otro archivo. Si falta, se elige ManaWatch local. Un inicio
# rechazado de la principal encontrada no activa la alternativa.
# 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.SubExists("WeightWatch") = 1 Then
UO.CallSub("WeightWatch")
ElseIf UO.SubExists("ManaWatch") Then
UO.CallSub("ManaWatch")
End If
END SUB
Sub ManaWatch()
Dim sample
For sample = 1 To 3
If UO.Connected() Then
UO.Print("Mana: " & CStr(UO.Mana()))
End If
UO.Wait(1000)
Next
End SubExplicación de los parámetros y la ejecución:
- WeightWatch puede venir de otro archivo. Si falta, se elige ManaWatch local. Un inicio rechazado de la principal encontrada no activa la alternativa.
- 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.
# Comprobar ambas definiciones
#
# Busca una definición en el catálogo del gestor antes de iniciar un módulo opcional. Su
# presencia no implica ejecución ni que pueda iniciarse sin argumentos.
#
# Integer: 1 (True) si existe la definición; 0 (False) en otro caso. Válidos If
# UO.SubExists(name), = 1 y = True; 0 corresponde a False. No comprueba archivo, validez ni
# ejecución activa.
SUB Main()
# HaveMonitors usa AndAlso. Si falta un nombre, Main no inicia ninguna. No garantiza un inicio
# simultáneo exitoso.
# 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 HaveMonitors() Then
UO.CallSub("WeightWatch")
UO.CallSub("ManaWatch")
End If
END SUB
Function HaveMonitors() As Boolean
Return UO.SubExists("WeightWatch") AndAlso UO.SubExists("ManaWatch")
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
Sub ManaWatch()
Dim sample
For sample = 1 To 3
If UO.Connected() Then
UO.Print("Mana: " & CStr(UO.Mana()))
End If
UO.Wait(1000)
Next
End SubExplicación de los parámetros y la ejecución:
- HaveMonitors usa AndAlso. Si falta un nombre, Main no inicia ninguna. No garantiza un inicio simultáneo exitoso.
- 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.
ClassicUO
Bad Newbie & Basic IDE
Найти в справочнике
Клиент и скрипты
Каталоги значений
Разработка и помощь