Skip to content

ES UO Topic localization

Codex edited this page Oct 12, 2026 · 4 revisions

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

Localización

Inicio · C# · IDE · UO API · A–Z · Ejemplos · Idiomas

Recuperar texto cliloc localizado e información de codificación. Los nombres de los comandos API no se traducen al cambiar el idioma.

Secciones

Tema Comandos y explicaciones
Cliloc UO.GetCliloc
Cliloc by ID UO.GetClilocByID
Codepage UO.GetUserCodepage

Todos los comandos del tema

Localización

UO.GetCliloc · UO.GetClilocByID · UO.GetUserCodepage

Ejemplos sobre el tema.

Cada tarjeta de comando tiene varios escenarios independientes: código directo, funciones y clases. A continuación se muestran escenarios breves seleccionados; restricciones y análisis completos están en las cartas.

UO.GetCliloc

Parámetros, resultado y todos los escenarios

var item = UO.FindType(0x0EED, -1, "backpack");
if (Truth(item != ""))
{
    UO.Print(UO.GetCliloc(item));
}

bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;

UO.GetClilocByID

Parámetros, resultado y todos los escenarios

var text = UO.GetClilocByID(1042971, "");
UO.Print(text);

Referencia completa de comandos


UO.GetCliloc

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

Firmas de C#

dynamic UO.GetCliloc(object? objID);

Lee el texto de propiedades del objeto terminado de OPL. GetTooltip y GetCliloc son sinónimos.

Parámetros

  • objID: objeto serial/ID obligatorio, no type ni cliloc. Acepta int, cadena decimal/hexadecimal, self, backpack, lasttarget, buscar elemento o nombre AddObject. 0 significa sin objeto.

Valor devuelto

string: nombre y texto de las propiedades, separados por avance de línea, o solo la parte que no está vacía. Cadena vacía si ObjID=0 o si no se reciben propiedades. Este es un texto ya preparado; numérico ID cliloc y los parámetros son devueltos por GetTooltipRec.

Comportamiento

  • Si la entrada ya existe en OPL, su texto se devuelve inmediatamente. Si no hay entrada, se envía una solicitud de propiedad y se espera una respuesta hasta 200 ms con una verificación cada 10 ms. Una pausa no garantiza una respuesta.
  • Necesitamos un objeto accesible y soporte para propiedades por parte del servidor. Un resultado vacío no es prueba de la ausencia del objeto: use Exists solo.
  • El texto puede contener marcas del servidor. No analice propiedades numéricas por posición de línea; use GetTooltipRec para esto.

Scripts independientes de C#

Cada ejemplo se puede guardar como un archivo independiente .csx y ejecutar en IDE. Las funciones de objeto UO y de espera proporcionan el anfitrión de la sesión de juego actual. Reemplace los nombres, coordenadas y direcciones de la demostración serial por los suyos propios.

Ejemplo sencillo

Ejecuta este código en un archivo .csx independiente. Los argumentos aparecen en la llamada; sustituye los nombres, seriales y direcciones de ejemplo por los tuyos.

El resultado de una sola llamada se muestra en el diario. Un número no se convierte en bool; para un array se muestra su cantidad de elementos.

object? result = UO.GetCliloc("backpack");
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));

1. Propiedades de un artículo en una mochila - guión directo

Parámetros y flujo de ejecución:

  • FindType: oro 0x0EED, cualquier hue=-1, contenido directo backpack. ObjID=elemento - encontrado serial.
  • El resultado del getter es el texto, no la cantidad de oro. Para cantidad, utilice FindCount(artículo).
var item = UO.FindType(0x0EED, -1, "backpack");
if (Truth(item != ""))
{
    UO.Print(UO.GetCliloc(item));
}

bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;

2. Manejar sin respuesta: función de secuencia de comandos

Parámetros y flujo de ejecución:

  • ObjID=lasttarget debe apuntar al objeto deseado.
  • Una cadena vacía se procesa por separado; No es necesario repetir automáticamente la solicitud en un bucle sin fin.
return  RunScenario();
 object? RunScenario()
{
    var text = UO.GetCliloc("lasttarget");
    if (Truth(text == ""))
    {
        UO.Print("No properties received");
    }
    else
    {
        UO.Print(text);
    }

    return null;
}

bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;

3. Guardar texto hasta la siguiente acción - clase de script

Parámetros y flujo de ejecución:

  • id y save son variables separadas: el ID único del objeto y una instantánea de su texto.
  • guardado no cambiará automáticamente si las propiedades en el servidor cambian más adelante.
return  new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
    private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
    private readonly Func<int, Task> WaitAsync;
    private readonly string[] Args;
    private readonly CancellationToken Cancellation;
    private readonly Action Checkpoint;
    public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
    {
        UO = api;
        WaitAsync = wait;
        Args = args;
        Cancellation = cancellation;
        Checkpoint = checkpoint;
    }

     public object? RunScenario()
    {
        var id = UO.GetSerial("lasttarget");
        var saved = UO.GetCliloc(id);
        UO.Print("Object: 0x" + Hex(id));
        UO.Print(saved);
        return null;
    }

    string Hex(object? value) => Convert.ToInt64(value).ToString("X");
}

Implementación del comando

C# distingue mayúsculas y minúsculas. Use el nombre UO exacto. Compare indicadores numéricos con 0; use bool solo si la firma devuelve bool.

UO.GetCliloc(objID) — UO.GetCliloc(Any)

Parámetros: objID (Any)

Resultado: dynamic / Any.

Durante la llamada:

Código interno de implementación; no es un script independiente.

case "getcliloc":

                case "gettooltip":

                    return new InjectionValue(bridge.GetTooltip(Arg(0)));

UO.GetClilocByID

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

Firmas de C#

dynamic UO.GetClilocByID(object? clilocID, object? @params);

Traduce la plantilla cliloc de los archivos del juego y sustituye los parámetros pasados.

Parámetros

  • clilocID - Obligatorio int - ID de un mensaje localizado, no serial de un objeto y no graphic. Por ejemplo, el número de la fila [0] del resultado GetTooltipRec.
  • params — Matriz obligatoria de sustituciones en orden 1_..., 2_.... Se permite un valor escalar: se convierte en una matriz de una cadena. Para una plantilla sin parámetros, puede pasar una cadena vacía. El elemento #number hace referencia a otro cliloc. Los elementos se convierten en cadenas; Es preferible pasar cadenas explícitamente.

Valor devuelto

string: plantilla traducida con sustituciones de Params. Si no hay ningún cargador cliloc, se devuelve una cadena vacía. Si se desconoce ID, el ClilocLoader cargado devuelve el texto de diagnóstico MegaCliloc: falta con este número y parámetros sustituidos. No devuelve cliloc ID ni un signo de éxito.

Comportamiento

  • Para las propiedades del objeto, primero GetTooltipRec(ObjID): el número de mensaje y el objeto son diferentes ID. Para obtener texto listo para usar de todas las propiedades, use GetTooltip(ObjID).

Scripts independientes de C#

Cada ejemplo se puede guardar como un archivo independiente .csx y ejecutar en IDE. Las funciones de objeto UO y de espera proporcionan el anfitrión de la sesión de juego actual. Reemplace los nombres, coordenadas y direcciones de la demostración serial por los suyos propios.

Ejemplo sencillo

Ejecuta este código en un archivo .csx independiente. Los argumentos aparecen en la llamada; sustituye los nombres, seriales y direcciones de ejemplo por los tuyos.

El resultado de una sola llamada se muestra en el diario. Un número no se convierte en bool; para un array se muestra su cantidad de elementos.

object? result = UO.GetClilocByID(1042971, "");
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));

1. Plantilla sin comodines - script directo

Parámetros y flujo de ejecución:

  • ClilocID=1042971 — número de ejemplo; reemplázalo con lo que necesites. Params es una cadena vacía que se pasa como un único valor vacío.
  • Para un patrón sin marcadores comodín, un parámetro vacío no cambia el texto. Si la plantilla espera datos, pase una matriz como en el siguiente ejemplo.
var text = UO.GetClilocByID(1042971, "");
UO.Print(text);

2. Pasar dos valores: función de script

Parámetros y flujo de ejecución:

  • ClilocID=1042971 es un ejemplo de plantilla. args[0] y args[1] ocupan las posiciones del primer y segundo parámetro.
  • La declaración de la variable de índice [1] crea dos elementos: 0 a 1. Utilice la plantilla ID, que espera los parámetros adecuados.
return  RunScenario();
 object? RunScenario()
{
    dynamic[] args = new dynamic[checked((int)(1) + 1)];
    args[0] = "iron";
    args[1] = "ingot";
    UO.Print(UO.GetClilocByID(1042971, args));
    return null;
}

3. Traducir la primera propiedad inmobiliaria - clase de script

Parámetros y flujo de ejecución:

  • El primer argumento son las propiedades clilocID; el segundo es su conjunto de Params ya preparado.
  • Se comprueba la presencia de al menos un registro. Todos los parámetros se reciben del servidor y se transmiten junto con su ID.
return  new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
    private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
    private readonly Func<int, Task> WaitAsync;
    private readonly string[] Args;
    private readonly CancellationToken Cancellation;
    private readonly Action Checkpoint;
    public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
    {
        UO = api;
        WaitAsync = wait;
        Args = args;
        Cancellation = cancellation;
        Checkpoint = checkpoint;
    }

     public object? RunScenario()
    {
        var rows = UO.GetTooltipRec("lasttarget");
        if (Truth(ArrayLength(rows) > 0))
        {
            var row = rows[0];
            UO.Print(UO.GetClilocByID(row[0], row[1]));
        }

        return null;
    }

    int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;
    bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
}

Implementación del comando

C# distingue mayúsculas y minúsculas. Use el nombre UO exacto. Compare indicadores numéricos con 0; use bool solo si la firma devuelve bool.

UO.GetClilocByID(clilocID, params) — UO.GetClilocByID(Any,Any)

Parámetros: clilocID (Any), params (Any)

Resultado: dynamic / Any.

Durante la llamada:

Código interno de implementación; no es un script independiente.

case "getclilocbyid":

                    return new InjectionValue(bridge.GetClilocById(Arg(0), StringArrayArg(1)));

UO.GetUserCodepage

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

Firmas de C#

int UO.GetUserCodepage();

Devuelve Codificación.Predeterminada.CodePage sin leer la configuración del perfil.

Parámetros

No hay parámetros.

Valor devuelto

int — Codificación.Predeterminada.CodePage del proceso actual. Esta es la codificación .NET, no la codificación de voz seleccionada UO.

Comportamiento

  • Devuelve Codificación.Predeterminada.CodePage sin leer la configuración del perfil. El valor depende del entorno .NET; no se puede considerar Windows garantizado ANSI.
  • Lee el estado local actual. No hay paquete, objetivo o actualización automática; las lecturas individuales pueden ver diferentes estados.

Scripts independientes de C#

Cada ejemplo se puede guardar como un archivo independiente .csx y ejecutar en IDE. Las funciones de objeto UO y de espera proporcionan el anfitrión de la sesión de juego actual. Reemplace los nombres, coordenadas y direcciones de la demostración serial por los suyos propios.

Ejemplo sencillo

Ejecuta este código en un archivo .csx independiente. Los argumentos aparecen en la llamada; sustituye los nombres, seriales y direcciones de ejemplo por los tuyos.

El resultado de una sola llamada se muestra en el diario. Un número no se convierte en bool; para un array se muestra su cantidad de elementos.

var result = UO.GetUserCodepage();
UO.Print("GetUserCodepage: " + Convert.ToString(result));

1. Llamada directa - guión directo

Parámetros y flujo de ejecución:

  • Devuelve Codificación.Predeterminada.CodePage sin leer la configuración del perfil.
UO.Print(UO.GetUserCodepage());

2. Opción explícita: función de script

Parámetros y flujo de ejecución:

  • Devuelve Codificación.Predeterminada.CodePage sin leer la configuración del perfil. El valor depende del entorno .NET; no se puede considerar Windows garantizado ANSI.
return  RunScenario();
 object? RunScenario()
{
    var codepage = UO.GetUserCodepage();
    if (Truth(codepage == 65001))
    {
        UO.Print("UTF-8");
    }

    return null;
}

bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;

3. Función auxiliar completa: clase de script

Parámetros y flujo de ejecución:

  • Lee el estado local actual. No hay paquete, objetivo o actualización automática; las lecturas individuales pueden ver diferentes estados.
return  new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
    private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
    private readonly Func<int, Task> WaitAsync;
    private readonly string[] Args;
    private readonly CancellationToken Cancellation;
    private readonly Action Checkpoint;
    public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
    {
        UO = api;
        WaitAsync = wait;
        Args = args;
        Cancellation = cancellation;
        Checkpoint = checkpoint;
    }

     public object? RunScenario()
    {
        var before = UO.GetUserCodepage();
        UO.Wait(500);
        var after = UO.GetUserCodepage();
        UO.Print(before);
        UO.Print(after);
        return null;
    }
}

Implementación del comando

C# distingue mayúsculas y minúsculas. Use el nombre UO exacto. Compare indicadores numéricos con 0; use bool solo si la firma devuelve bool.

UO.GetUserCodepage() — UO.GetUserCodepage()

Parámetros: Sin parámetros.

Resultado: int / Integer.

Durante la llamada:

Código interno de implementación; no es un script independiente.

public int GetUserCodepage() => Encoding.Default.CodePage;

Clone this wiki locally