Skip to content

ES UO Topic speech chat

Codex edited this page Oct 12, 2026 · 4 revisions

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

Habla y chat

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

Discurso de personajes, emociones, canales de chat y filtros. La impresión de mensajes locales en el cliente se encuentra en Cliente UI.

Secciones

Tema Comandos y explicaciones
Say UO.Say
SayU UO.SayU
UOSay UO.UOSay
Emote UO.EmoteAction · UO.Bow · UO.Salute
Speech Filters UO.FilterSpeech
Global Chat UO.GlobalChatSendMsg · UO.GlobalChatActiveChannel
Channels UO.GlobalChatChannelsList · UO.GlobalChatJoinChannel · UO.GlobalChatLeaveChannel
Ignore Users UO.AddChatUserIgnore · UO.ClearChatUserIgnore

Todos los comandos del tema

Discurso

UO.Say · UO.SayU · UO.UOSay · UO.UOSayColor · UO.Msg · UO.UOAMessage · UO.FixTalk

Ser emocionado

UO.Bow · UO.Salute · UO.EmoteAction

Filtros / Canales

UO.FilterSpeech · UO.AddChatUserIgnore · UO.ClearChatUserIgnore · UO.GlobalChatActiveChannel · UO.GlobalChatChannelsList · UO.GlobalChatJoinChannel · UO.GlobalChatLeaveChannel · UO.GlobalChatSendMsg

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.Say

Parámetros, resultado y todos los escenarios

if (Truth(UO.Connected()))
{
    UO.Say("bank");
}

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

UO.GlobalChatSendMsg

Parámetros, resultado y todos los escenarios

UO.GlobalChatSendMsg("Hello");

Referencia completa de comandos


UO.AddChatUserIgnore

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

Firmas de C#

void UO.AddChatUserIgnore(object? userName);

Agrega el nombre del remitente a la lista de filtrado de mensajes del registro local. El filtro opera en este cliente y no envía una solicitud al servidor.

Parámetros

  • userName es el nombre del remitente del registro. Se ignora un valor que está vacío o contiene espacios; Se eliminan los espacios de los bordes.

Valor devuelto

void. El comando no devuelve una adición exitosa.

Comportamiento

  • La comparación del nombre del remitente no distingue entre mayúsculas y minúsculas. Los mensajes de un nombre coincidente se ocultan mediante un filtro de registro local; Esto no bloquea a un jugador en el servidor. UO.ClearChatUserIgnore() borra toda la lista local de nombres. Borrar el filtro no restaura los registros que ya han sido excluidos de la visualización.

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 comando es una instrucción independiente. El mensaje anterior indica el inicio de la llamada y no confirma una acción del servidor.

UO.Print("Calling UO.AddChatUserIgnore");
UO.AddChatUserIgnore("ExampleVendor");

1. Oculte nuevas entradas de registro con este nombre en el inquilino actual. - guión directo

Parámetros y flujo de ejecución:

  • Oculte nuevas entradas de registro con este nombre en el inquilino actual.
UO.AddChatUserIgnore("ExampleVendor");

2. Pase el nombre a través de una variable de cadena. - función de guión

Parámetros y flujo de ejecución:

  • Pase el nombre a través de una variable de cadena.
return  RunScenario();
 object? RunScenario()
{
    var sender = "ExampleVendor";
    UO.AddChatUserIgnore(sender);
    return null;
}

3. Agregue dos nombres al filtro local; la llamada no los bloquea en el servidor. - clase de guión

Parámetros y flujo de ejecución:

  • Agregue dos nombres al filtro local; la llamada no los bloquea en el servidor.
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()
    {
        UO.AddChatUserIgnore("ExampleVendor");
        UO.AddChatUserIgnore("ExamplePlayer");
        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.AddChatUserIgnore(userName) — UO.AddChatUserIgnore(Any)

Parámetros: userName (Any)

Resultado: void / Unit.

Durante la llamada:

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

case "addchatuserignore": bridge.AddChatUserIgnore(Text(0)); return InjectionValue.Unit;

UO.Bow

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

Firmas de C#

void UO.Bow();

Envía la acción del personaje del arco a través de GameActions.EmoteAction.

Parámetros

No hay parámetros.

Valor devuelto

void: sin valor de retorno.

Comportamiento

  • Esta es la animación/acción del personaje. El comando no devuelve una confirmación del servidor y no espera a que finalice la animación.

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 comando es una instrucción independiente. El mensaje anterior indica el inicio de la llamada y no confirma una acción del servidor.

UO.Print("Calling UO.Bow");
UO.Bow();

1. Arco - guión directo

Parámetros y flujo de ejecución:

  • Envía una reverencia.
UO.Bow();

2. Arco al conectar - función de script

Parámetros y flujo de ejecución:

  • La verificación de la conexión precede al envío de la acción.
return  RunScenario();
 object? RunScenario()
{
    if (Truth(UO.Connected()))
    {
        UO.Bow();
    }

    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. Hola procedimiento - Clase de script

Parámetros y flujo de ejecución:

  • El procedimiento completamente declarado envía la misma acción.
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()
    {
        Greet();
        return null;
    }

    void Greet()
    {
        UO.Bow();
    }
}

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.Bow() — UO.Bow()

Parámetros: Sin parámetros.

Resultado: void / Unit.

Durante la llamada:

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

case "bow": bridge.Bow(); return InjectionValue.Unit;

UO.ClearChatUserIgnore

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

Firmas de C#

void UO.ClearChatUserIgnore();

Elimina todos los filtros de nombre del remitente que no distinguen entre mayúsculas y minúsculas JournalManager.

Parámetros

No hay parámetros.

Valor devuelto

void: sin valor de retorno.

Comportamiento

  • La eliminación de filtros no elimina las entradas del historial ni cancela los filtros de texto AddJournalIgnore.

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 comando es una instrucción independiente. El mensaje anterior indica el inicio de la llamada y no confirma una acción del servidor.

UO.Print("Calling UO.ClearChatUserIgnore");
UO.ClearChatUserIgnore();

1. Estado claro: guión directo

Parámetros y flujo de ejecución:

  • Elimina todos los filtros de nombre del remitente que no distinguen entre mayúsculas y minúsculas JournalManager.
UO.ClearChatUserIgnore();

2. Borrar después de la configuración: función de script

Parámetros y flujo de ejecución:

  • Vuelva a habilitar la visualización de mensajes en nombre del Proveedor.
return  RunScenario();
 object? RunScenario()
{
    UO.AddChatUserIgnore("Vendor");
    UO.ClearChatUserIgnore();
    return null;
}

3. Volver a purgar: clase de secuencia de comandos

Parámetros y flujo de ejecución:

  • Borrar un conjunto vacío es aceptable y no crea una nueva configuración.
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()
    {
        UO.ClearChatUserIgnore();
        UO.ClearChatUserIgnore();
        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.ClearChatUserIgnore() — UO.ClearChatUserIgnore()

Parámetros: Sin parámetros.

Resultado: void / Unit.

Durante la llamada:

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

case "clearchatuserignore": bridge.ClearChatUserIgnore(); return InjectionValue.Unit;

UO.EmoteAction

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

Firmas de C#

void UO.EmoteAction(object? action);

Envía el nombre de la cadena de acción/animación del personaje a GameActions.EmoteAction.

Parámetros

  • action: nombre de la acción, como reverencia o saludo; convertido a string. El reconocimiento de acciones lo realiza GameActions.

Valor devuelto

void: sin valor de retorno.

Comportamiento

  • Esta es una acción de personaje, no imprimir una frase en una revista. El comando no devuelve una confirmación del servidor y no espera la animación.

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 comando es una instrucción independiente. El mensaje anterior indica el inicio de la llamada y no confirma una acción del servidor.

UO.Print("Calling UO.EmoteAction");
UO.EmoteAction("bow");

1. Arco - guión directo

Parámetros y flujo de ejecución:

  • El nombre de la acción es arco.
UO.EmoteAction("bow");

2. Bienvenido - función de script

Parámetros y flujo de ejecución:

  • Se pasa el saludo del nombre de la acción.
return  RunScenario();
 object? RunScenario()
{
    UO.EmoteAction("salute");
    return null;
}

3. Nombre de la variable - clase de script

Parámetros y flujo de ejecución:

  • La cadena de acción se pasa sin asignar un objetivo de objeto.
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 action = "bow";
        UO.EmoteAction(action);
        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.EmoteAction(action) — UO.EmoteAction(Any)

Parámetros: action (Any)

Resultado: void / Unit.

Durante la llamada:

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

case "emoteaction": bridge.EmoteAction(Text(0)); break;

UO.FilterSpeech

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

Firmas de C#

void UO.FilterSpeech();
void UO.FilterSpeech(object? enabled);

Habilita o deshabilita el filtro de voz del cliente.

Parámetros

  • enabled — Valor opcional: sin argumento, el filtro está activado; 0 se apaga, int distinto de cero se enciende.

Valor devuelto

void: sin valor de retorno.

Comportamiento

  • Escribe el indicador normalizado en el estado de tiempo de ejecución y lo pasa al administrador. El filtro afecta el procesamiento del cliente; los eventos del servidor y otras configuraciones de registro permanecen separados.

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 comando es una instrucción independiente. El mensaje anterior indica el inicio de la llamada y no confirma una acción del servidor.

UO.Print("Calling UO.FilterSpeech");
UO.FilterSpeech();

1. Habilitar sin argumento - script directo

Parámetros y flujo de ejecución:

  • Un número cero de argumentos significa incluir, no leer.
UO.FilterSpeech();

2. Apagar - función de script

Parámetros y flujo de ejecución:

  • Un 0 explícito desactiva el filtro del cliente.
return  RunScenario();
 object? RunScenario()
{
    UO.FilterSpeech(0);
    return null;
}

3. Activar y luego desactivar: clase de script

Parámetros y flujo de ejecución:

  • El filtro se enciende y claramente vuelve al estado apagado.
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()
    {
        UO.FilterSpeech(1);
        UO.FilterSpeech(0);
        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.FilterSpeech() — UO.FilterSpeech()

Parámetros: Sin parámetros.

Resultado: void / Unit.

Durante la llamada:

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

case "filterspeech": state.SpeechFilter = arguments.Length == 0 || Arg(0) != 0 ? 1 : 0; bridge.SetSpeechFilter(state.SpeechFilter); break;

UO.FilterSpeech(enabled) — UO.FilterSpeech(Any)

Parámetros: enabled (Any)

Resultado: void / Unit.

Durante la llamada:

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

case "filterspeech": state.SpeechFilter = arguments.Length == 0 || Arg(0) != 0 ? 1 : 0; bridge.SetSpeechFilter(state.SpeechFilter); break;

UO.FixTalk

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

Firmas de C#

void UO.FixTalk();

Imprime un aviso de que ClassicUO no requiere el parche de cliente nativo heredado FixTalk.

Parámetros

No hay parámetros.

Valor devuelto

void: sin valor de retorno.

Comportamiento

  • La rama ExecuteLegacyManualAlias solo llama a SystemMessage. No corrige el movimiento, la voz, los contenedores ni el protocolo de red.

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 comando es una instrucción independiente. El mensaje anterior indica el inicio de la llamada y no confirma una acción del servidor.

UO.Print("Calling UO.FixTalk");
UO.FixTalk();

1. Aviso de compatibilidad: secuencia de comandos directa

Parámetros y flujo de ejecución:

  • El mensaje describe la falta de necesidad del parche antiguo.
UO.FixTalk();

2. Procedimiento de llamada: función de script

Parámetros y flujo de ejecución:

  • El procedimiento de compatibilidad no cambia el mundo del juego.
return  RunScenario();
 object? RunScenario()
{
    CompatibilityNotice();
    return null;
}

void CompatibilityNotice()
{
    UO.FixTalk();
}

3. Continuación de guión - Clase de guión

Parámetros y flujo de ejecución:

  • Después del mensaje de diagnóstico, la ejecución continúa.
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()
    {
        UO.FixTalk();
        UO.Print("continued");
        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.FixTalk() — UO.FixTalk()

Parámetros: Sin parámetros.

Resultado: void / Unit.

Durante la llamada:

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

case "boxhack":

                case "fixtalk":

                case "fixwalk":

                    SystemMessage($"{name}: obsolete native-client patch; ClassicUO does not require it.");

                    break;

UO.GlobalChatActiveChannel

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

Firmas de C#

dynamic UO.GlobalChatActiveChannel();

Lee ChatManager.CurrentChannelName.

Parámetros

No hay parámetros.

Valor devuelto

string - CurrentChannelName o una línea vacía si el canal no está seleccionado.

Comportamiento

  • Lee ChatManager.CurrentChannelName. Línea vacía: sin nombre, sin código de error; el canal en sí no se ingresa.
  • 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.

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

1. Llamada directa - guión directo

Parámetros y flujo de ejecución:

  • Lee ChatManager.CurrentChannelName.
UO.Print(UO.GlobalChatActiveChannel());

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

Parámetros y flujo de ejecución:

  • Lee ChatManager.CurrentChannelName. Línea vacía: sin nombre, sin código de error; el canal en sí no se ingresa.
return  RunScenario();
 object? RunScenario()
{
    var channel = UO.GlobalChatActiveChannel();
    if (Truth(Len(channel) > 0))
    {
        UO.Print(channel);
    }

    return null;
}

int Len(object? value) => Convert.ToString(value)?.Length ?? 0;
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.GlobalChatActiveChannel();
        UO.Wait(500);
        var after = UO.GlobalChatActiveChannel();
        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.GlobalChatActiveChannel() — UO.GlobalChatActiveChannel()

Parámetros: Sin parámetros.

Resultado: dynamic / Any.

Durante la llamada:

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

case "globalchatactivechannel": return new InjectionValue(bridge.GlobalChatActiveChannel());

UO.GlobalChatChannelsList

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

Firmas de C#

dynamic UO.GlobalChatChannelsList();

Bridge devuelve ChatManager.Channels.Keys.OrderBy(nombre => nombre).

Parámetros

No hay parámetros.

Valor devuelto

Matriz de cadenas de nombres de canales, ordenadas por nombre. Una tabla local vacía produce una matriz vacía.

Comportamiento

  • Bridge devuelve ChatManager.Channels.Keys.OrderBy(nombre => nombre). El cliente conoce la lista y es posible que no esté completa hasta que el servidor se actualice.
  • 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.

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

1. Llamada directa - guión directo

Parámetros y flujo de ejecución:

  • Bridge devuelve ChatManager.Channels.Keys.OrderBy(nombre => nombre).
var channels = UO.GlobalChatChannelsList();
UO.Print(UO.GetArrayLength(channels));

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

Parámetros y flujo de ejecución:

  • Bridge devuelve ChatManager.Channels.Keys.OrderBy(nombre => nombre). El cliente conoce la lista y es posible que no esté completa hasta que el servidor se actualice.
return  RunScenario();
 object? RunScenario()
{
    var channels = UO.GlobalChatChannelsList();
    if (Truth(UO.GetArrayLength(channels) > 0))
    {
        UO.Print(channels[0]);
    }

    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.GlobalChatChannelsList();
        UO.Wait(500);
        var after = UO.GlobalChatChannelsList();
        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.GlobalChatChannelsList() — UO.GlobalChatChannelsList()

Parámetros: Sin parámetros.

Resultado: dynamic / Any.

Durante la llamada:

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

case "globalchatchannelslist": return StringArray(bridge.GlobalChatChannels());

UO.GlobalChatJoinChannel

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

Firmas de C#

void UO.GlobalChatJoinChannel(object? chName);

Solicita la entrada al canal de chat global.

Parámetros

  • chName — Texto a través de ToString; guardado como transmitido.

Valor devuelto

void - sin valor. Llame en una línea separada; la finalización no confirma la acción del servidor.

Comportamiento

  • Envía un Send_ChatJoinCommand con el nombre del canal proporcionado. La presencia de un canal y el permiso para ingresar lo determina el servidor. El nombre del canal activo local se lee por separado.
  • Bridge envía la solicitud en la transmisión del juego. Se aplican las reglas del servidor; No hay espera de confirmación incorporada.

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 comando es una instrucción independiente. El mensaje anterior indica el inicio de la llamada y no confirma una acción del servidor.

UO.Print("Calling UO.GlobalChatJoinChannel");
UO.GlobalChatJoinChannel("General");

1. Llamada directa - guión directo

Parámetros y flujo de ejecución:

  • Solicita la entrada al canal de chat global.
UO.GlobalChatJoinChannel("General");

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

Parámetros y flujo de ejecución:

  • Envía un Send_ChatJoinCommand con el nombre del canal proporcionado. La presencia de un canal y el permiso para ingresar lo determina el servidor. El nombre del canal activo local se lee por separado.
return  RunScenario();
 object? RunScenario()
{
    var message = "General";
    if (Truth(UO.IsOnline()))
    {
        UO.GlobalChatJoinChannel(message);
    }

    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:

  • Bridge envía la solicitud en la transmisión del juego. Se aplican las reglas del servidor; No hay espera de confirmación incorporada.
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()
    {
        SendText("General");
        return null;
    }

    void SendText(dynamic message)
    {
        if (Truth(Len(message) > 0))
        {
            UO.GlobalChatJoinChannel(message);
        }
    }

    int Len(object? value) => Convert.ToString(value)?.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.GlobalChatJoinChannel(chName) — UO.GlobalChatJoinChannel(Any)

Parámetros: chName (Any)

Resultado: void / Unit.

Durante la llamada:

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

case "globalchatjoinchannel": bridge.GlobalChatJoin(Text(0)); return InjectionValue.Unit;

UO.GlobalChatLeaveChannel

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

Firmas de C#

void UO.GlobalChatLeaveChannel();

Solicitudes para abandonar el canal de chat global.

Parámetros

No hay parámetros.

Valor devuelto

void - sin valor. Llame en una línea separada; la finalización no confirma la acción del servidor.

Comportamiento

  • GlobalChatLeave envía Send_ChatLeaveChannelCommand. El nombre del canal local cambiará después de que se procesen los datos del chat.
  • En los ejemplos, UO.Wait especifica solo una pausa del script; el final de la pausa no prueba que el servidor haya completado la solicitud.

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 comando es una instrucción independiente. El mensaje anterior indica el inicio de la llamada y no confirma una acción del servidor.

UO.Print("Calling UO.GlobalChatLeaveChannel");
UO.GlobalChatLeaveChannel();

1. Llamada directa - guión directo

Parámetros y flujo de ejecución:

  • Solicitudes para abandonar el canal de chat global.
UO.GlobalChatLeaveChannel();

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

Parámetros y flujo de ejecución:

  • GlobalChatLeave envía Send_ChatLeaveChannelCommand. El nombre del canal local cambiará después de que se procesen los datos del chat.
return  RunScenario();
 object? RunScenario()
{
    UO.Print(UO.GlobalChatActiveChannel());
    UO.GlobalChatLeaveChannel();
    return null;
}

3. Función auxiliar completa: clase de script

Parámetros y flujo de ejecución:

  • En los ejemplos, UO.Wait especifica solo una pausa del script; el final de la pausa no prueba que el servidor haya completado la solicitud.
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()
    {
        UO.GlobalChatLeaveChannel();
        UO.Wait(500);
        UO.Print(UO.GlobalChatActiveChannel());
        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.GlobalChatLeaveChannel() — UO.GlobalChatLeaveChannel()

Parámetros: Sin parámetros.

Resultado: void / Unit.

Durante la llamada:

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

case "globalchatleavechannel": bridge.GlobalChatLeave(); return InjectionValue.Unit;

UO.GlobalChatSendMsg

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

Firmas de C#

void UO.GlobalChatSendMsg(object? msgText);

Envía un mensaje al chat global.

Parámetros

  • msgText — Texto a través de ToString; guardado como transmitido.

Valor devuelto

void - sin valor. Llame en una línea separada; la finalización no confirma la acción del servidor.

Comportamiento

  • Envía un Send_ChatMessageCommand con el texto transmitido. El canal utiliza el estado de chat cliente/servidor; el equipo no elige el canal por sí mismo.
  • Bridge envía la solicitud en la transmisión del juego. Se aplican las reglas del servidor; No hay espera de confirmación incorporada.

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 comando es una instrucción independiente. El mensaje anterior indica el inicio de la llamada y no confirma una acción del servidor.

UO.Print("Calling UO.GlobalChatSendMsg");
UO.GlobalChatSendMsg("Hello");

1. Llamada directa - guión directo

Parámetros y flujo de ejecución:

  • Envía un mensaje al chat global.
UO.GlobalChatSendMsg("Hello");

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

Parámetros y flujo de ejecución:

  • Envía un Send_ChatMessageCommand con el texto transmitido. El canal utiliza el estado de chat cliente/servidor; el equipo no elige el canal por sí mismo.
return  RunScenario();
 object? RunScenario()
{
    var message = "Hello";
    if (Truth(UO.IsOnline()))
    {
        UO.GlobalChatSendMsg(message);
    }

    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:

  • Bridge envía la solicitud en la transmisión del juego. Se aplican las reglas del servidor; No hay espera de confirmación incorporada.
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()
    {
        SendText("Hello");
        return null;
    }

    void SendText(dynamic message)
    {
        if (Truth(Len(message) > 0))
        {
            UO.GlobalChatSendMsg(message);
        }
    }

    int Len(object? value) => Convert.ToString(value)?.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.GlobalChatSendMsg(msgText) — UO.GlobalChatSendMsg(Any)

Parámetros: msgText (Any)

Resultado: void / Unit.

Durante la llamada:

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

case "globalchatsendmsg": bridge.GlobalChatSend(Text(0)); return InjectionValue.Unit;

UO.Msg

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

Firmas de C#

void UO.Msg(object? message);

Muestra un mensaje local sobre el progreso del script o la condición de detención. Lo ves tú, no otros jugadores.

Parámetros

Valor devuelto

Una llamada a un método con un tipo de retorno void se escribe como una declaración independiente C#; el resultado no se puede asignar ni comprobar. Completar la declaración no constituye una confirmación por parte del servidor del juego.

Comportamiento

  • El mensaje va al área inferior izquierda de la ventana del juego y al registro local. Hay una copia disponible en la salida IDE. En el registro general del manager, habilita el filtro de mensajes de script: la entrada está disponible sin la ventana del juego. El filtro de mensajes del sistema del servidor no selecciona dichos registros. El paquete de voz de la red no se envía. Para la inscripción sobre la cabeza hay UO.CharPrint.
  • UO.Print agrega una nueva entrada al registro de mensajes del juego: primero lea o guarde la cadena/resultado de búsqueda deseado, luego registre el mensaje de diagnóstico. En un bucle rápido, registre mensajes cuando se produzcan cambios en lugar de cada iteración.
  • Sin color, se utiliza hue 0x03B2. UO.Print(text, color) acepta texto primero; UO.ColorPrint(color, text) – color primero.
  • A pesar del nombre del Servidor o de la similitud con un mensaje de red, el comando sólo imprime texto local. Para hablar con el mundo, use UO.Say.
  • UO.Print · UO.CharPrint · UO.Say · UO.ConColor

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 comando es una instrucción independiente sin valor de retorno (void). El texto del mensaje aparece directamente en la llamada.

UO.Msg("Hello from C#");

1. Breve reportaje - guión directo

Parámetros y flujo de ejecución:

  • procesado=12: número de demostración de elementos ya procesados. Convert.ToString lo convierte en una cadena. Este ejemplo sólo informa un número; no transfiere los objetos en sí.
var processed = 12;
UO.Msg("Processed item entries: " + Convert.ToString(processed));

2. Advertencia de sobrecarga: función de secuencia de comandos

Parámetros y flujo de ejecución:

  • Se leen el peso y el máximo del personaje. Un máximo cero/desconocido no se considera una sobrecarga. Si el peso >= máximo, se imprime una línea y termina Principal; Los artículos no se desechan.
return  RunScenario();
 object? RunScenario()
{
    var weight = UO.Weight();
    var maximum = UO.MaxWeight();
    if (Truth(maximum > 0) && Truth(weight >= maximum))
    {
        UO.Msg("Too heavy: " + Convert.ToString(weight) + "/" + Convert.ToString(maximum));
        return null;
    }

    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. Informar únicamente de cambios de peso: clase de secuencia de comandos

Parámetros y flujo de ejecución:

  • Main recuerda el peso, espera 1000 milisegundos y llama al ReportWeight completamente declarado. El asistente imprime solo si el peso ha cambiado y devuelve el nuevo peso para la siguiente verificación. No crea por sí solo un bucle infinito.
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 previous = UO.Weight();
        UO.Wait(1000);
        previous = ReportWeight(previous, UO.Weight());
        return null;
    }

    dynamic ReportWeight(dynamic previous, dynamic current)
    {
        if (Truth(previous != current))
        {
            UO.Msg("Weight changed: " + Convert.ToString(current));
        }

        return current;
    }

    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.Msg(message) — UO.Msg(String)

Parámetros: message (String)

Resultado: void / Unit.

Durante la llamada:

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

public void Msg(string message) => bridge.ServerPrint(message);

UO.Salute

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

Firmas de C#

void UO.Salute();

Solicita una animación de saludo.

Parámetros

No hay parámetros.

Valor devuelto

void - sin valor. Llame en una línea separada; la finalización no confirma la acción del servidor.

Comportamiento

  • Salute llama a GameActions.EmoteAction("saludo") a través de Invoke. Esta es una acción de personaje, no texto UO.Say.
  • En los ejemplos, UO.Wait especifica solo una pausa del script; el final de la pausa no prueba que el servidor haya completado la solicitud.

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 comando es una instrucción independiente. El mensaje anterior indica el inicio de la llamada y no confirma una acción del servidor.

UO.Print("Calling UO.Salute");
UO.Salute();

1. Llamada directa - guión directo

Parámetros y flujo de ejecución:

  • Solicita una animación de saludo.
UO.Salute();

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

Parámetros y flujo de ejecución:

  • Salute llama a GameActions.EmoteAction("saludo") a través de Invoke. Esta es una acción de personaje, no texto UO.Say.
return  RunScenario();
 object? RunScenario()
{
    if (Truth(UO.IsOnline()))
    {
        UO.Salute();
    }

    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:

  • En los ejemplos, UO.Wait especifica solo una pausa del script; el final de la pausa no prueba que el servidor haya completado la solicitud.
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()
    {
        UO.Salute();
        UO.Wait(1000);
        UO.Print("Salute requested");
        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.Salute() — UO.Salute()

Parámetros: Sin parámetros.

Resultado: void / Unit.

Durante la llamada:

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

case "salute": bridge.Salute(); return InjectionValue.Unit;

UO.Say

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

Firmas de C#

void UO.Say(object? message);

Envía el discurso normal del personaje al servidor: por ejemplo, una dirección a un banquero o una orden a una mascota.

Parámetros

Valor devuelto

Una llamada a un método con un tipo de retorno void se escribe como una declaración independiente C#; el resultado no se puede asignar ni comprobar. Completar la declaración no constituye una confirmación por parte del servidor del juego.

Comportamiento

  • Para la versión del protocolo 2.0.0 y posteriores, el cliente envía voz Unicode; para el mayor - ASCII discurso. El nombre SayU no obliga al antiguo protocolo a Unicode. Sin un color explícito, se toma SpeechHue del perfil; 0xFFFF en UO.UOSayColor también selecciona este color. El texto se envía al servidor, pero el script no lo ejecuta como código.
  • UO.Print · UO.CharPrint · UO.Say · UO.ConColor

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 comando es una instrucción independiente. El mensaje anterior indica el inicio de la llamada y no confirma una acción del servidor.

UO.Print("Calling UO.Say");
UO.Say("bank");

1. Póngase en contacto con un banquero - guión directo

Parámetros y flujo de ejecución:

  • Connected se comprueba antes del envío. banco es una línea de expresión, no el nombre API. Para abrir un banco normalmente se necesita un NPC adecuado cerca; si el servidor usa una frase diferente, reemplácela.
if (Truth(UO.Connected()))
{
    UO.Say("bank");
}

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

2. Comando a una mascota seleccionada por nombre - función de script

Parámetros y flujo de ejecución:

  • petName es el nombre de tu mascota, aquí Sombra. Constituye una línea. Sombra, sígueme. Esta es una orden para que tu mascota te siga, en lugar de UO.Follow, que mueve a tu personaje.
return  RunScenario();
 object? RunScenario()
{
    var petName = "Shadow";
    if (Truth(UO.Connected()))
    {
        UO.Say(petName + " follow me");
    }

    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. Preguntar al banco sólo cuando esté sobrecargado - clase de script

Parámetros y flujo de ejecución:

  • RequestBankIfHeavy comprueba la conexión y el peso máximo positivo fiable. Solo cuando está sobrecargado envía banco y devuelve 1 como señal de solicitud enviada. 0: solicitud no enviada. Este resultado pertenece al asistente, no al comando de voz.
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()
    {
        return RequestBankIfHeavy();
        return null;
    }

    dynamic RequestBankIfHeavy()
    {
        if (!(Truth(UO.Connected())))
        {
            return 0;
        }

        var maximum = UO.MaxWeight();
        if (Truth(maximum <= 0) || Truth(UO.Weight() < maximum))
        {
            return 0;
        }

        UO.Say("bank");
        return 1;
    }

    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.Say(message) — UO.Say(String)

Parámetros: message (String)

Resultado: void / Unit.

Durante la llamada:

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

public void Say(string message) => bridge.Say(message);

UO.SayU

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

Firmas de C#

void UO.SayU(object? text);

Envía el discurso normal del personaje al servidor: por ejemplo, una dirección a un banquero o una orden a una mascota.

Parámetros

Valor devuelto

Una llamada a un método con un tipo de retorno void se escribe como una declaración independiente C#; el resultado no se puede asignar ni comprobar. Completar la declaración no constituye una confirmación por parte del servidor del juego.

Comportamiento

  • Para la versión del protocolo 2.0.0 y posteriores, el cliente envía voz Unicode; para el mayor - ASCII discurso. El nombre SayU no obliga al antiguo protocolo a Unicode. Sin un color explícito, se toma SpeechHue del perfil; 0xFFFF en UO.UOSayColor también selecciona este color. El texto se envía al servidor, pero el script no lo ejecuta como código.
  • UO.Print · UO.CharPrint · UO.Say · UO.ConColor

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 comando es una instrucción independiente. El mensaje anterior indica el inicio de la llamada y no confirma una acción del servidor.

UO.Print("Calling UO.SayU");
UO.SayU("bank");

1. Póngase en contacto con un banquero - guión directo

Parámetros y flujo de ejecución:

  • Connected se comprueba antes del envío. banco es una línea de expresión, no el nombre API. Para abrir un banco normalmente se necesita un NPC adecuado cerca; si el servidor usa una frase diferente, reemplácela.
if (Truth(UO.Connected()))
{
    UO.SayU("bank");
}

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

2. Comando a una mascota seleccionada por nombre - función de script

Parámetros y flujo de ejecución:

  • petName es el nombre de tu mascota, aquí Sombra. Constituye una línea. Sombra, sígueme. Esta es una orden para que tu mascota te siga, en lugar de UO.Follow, que mueve a tu personaje.
return  RunScenario();
 object? RunScenario()
{
    var petName = "Shadow";
    if (Truth(UO.Connected()))
    {
        UO.SayU(petName + " follow me");
    }

    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. Preguntar al banco sólo cuando esté sobrecargado - clase de script

Parámetros y flujo de ejecución:

  • RequestBankIfHeavy comprueba la conexión y el peso máximo positivo fiable. Solo cuando está sobrecargado envía banco y devuelve 1 como señal de solicitud enviada. 0: solicitud no enviada. Este resultado pertenece al asistente, no al comando de voz.
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()
    {
        return RequestBankIfHeavy();
        return null;
    }

    dynamic RequestBankIfHeavy()
    {
        if (!(Truth(UO.Connected())))
        {
            return 0;
        }

        var maximum = UO.MaxWeight();
        if (Truth(maximum <= 0) || Truth(UO.Weight() < maximum))
        {
            return 0;
        }

        UO.SayU("bank");
        return 1;
    }

    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.SayU(text) — UO.SayU(Any)

Parámetros: text (Any)

Resultado: void / Unit.

Durante la llamada:

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

case "sayu": Say(arguments.Length > 0 ? arguments[0].ToString() : string.Empty); break;

UO.UOAMessage

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

Firmas de C#

void UO.UOAMessage(object? text);

Imprime un mensaje local en ClassicUO con hue configurado en UO.FontColor. Adecuado para notificaciones de script sobre inventario, estado de ruta o finalización de etapa.

Parámetros

Valor devuelto

void: No devuelve texto, índice de registro ni true/false. La llamada realiza una salida local; No se devuelve ninguna confirmación de visualización.

Comportamiento

  • Utiliza el estado.FontColor del tiempo de ejecución actual, originalmente 0x03B2. La grabación pasa por el área inferior de mensajes y el registro del cliente, así como por la salida IDE.
  • No envía voz al servidor, no genera una ventana emergente, no envía un mensaje a otro jugador. El UO.Print normal tiene su propio color.
  • Para el color de un mensaje sin cambiar de estado.FontColor puedes usar UO.Print(text,color).

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 comando es una instrucción independiente sin valor de retorno (void). El texto del mensaje aparece directamente en la llamada.

UO.UOAMessage("Hello from C#");

1. Alerta de inventario destacado: secuencia de comandos directa

Parámetros y flujo de ejecución:

  • 0x0021 — índice hue; El tono final depende de la ficha de tonos del cliente. El mensaje es visible localmente; no lo dice el personaje.
UO.FontColor(0x0021);
var first = UO.FindList("0x0EED", "backpack");
if (Truth(first == ""))
{
    UO.UOAMessage("No gold in the loaded backpack");
}
else
{
    UO.UOAMessage("Gold units: " + Convert.ToString(UO.FindFullQuantity()));
}

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

2. Procedimiento general de notificación de color: función de secuencia de comandos

Parámetros y flujo de ejecución:

  • Aviso completo acepta texto y hue. El último hue instalado permanece para el próximo UOAMessage de este tiempo de ejecución. No hay FontColor() incorporado para leer aquí.
return  RunScenario();
 object? RunScenario()
{
    Notice("Supplies checked", 0x0044);
    Notice("Restock needed", 0x0021);
    return null;
}

void Notice(dynamic text, dynamic hue)
{
    UO.FontColor(hue);
    UO.UOAMessage(text);
}

3. Volver al color base conocido: clase de secuencia de comandos

Parámetros y flujo de ejecución:

  • 0x03B2: valor inicial FontColor del nuevo tiempo de ejecución. Finalmente devuelve exactamente la base seleccionada en el manejo normal de finalización/error; no restaura el valor anterior desconocido.
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 baseHue = 0x03B2;
        try
        {
            UO.FontColor(0x0021);
            UO.UOAMessage("Check the route before moving");
        }
        finally
        {
            UO.FontColor(baseHue);
        }

        UO.UOAMessage("Ready");
        UO.Print("Regular Print keeps its own color");
        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.UOAMessage(text) — UO.UOAMessage(Any)

Parámetros: text (Any)

Resultado: void / Unit.

Durante la llamada:

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

case "uoamessage": bridge.Print(state.FontColor, Text(0)); break;

UO.UOSay

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

Firmas de C#

void UO.UOSay(object? text);

Envía el discurso normal del personaje al servidor: por ejemplo, una dirección a un banquero o una orden a una mascota.

Parámetros

Valor devuelto

Una llamada a un método con un tipo de retorno void se escribe como una declaración independiente C#; el resultado no se puede asignar ni comprobar. Completar la declaración no constituye una confirmación por parte del servidor del juego.

Comportamiento

  • Para la versión del protocolo 2.0.0 y posteriores, el cliente envía voz Unicode; para el mayor - ASCII discurso. El nombre SayU no obliga al antiguo protocolo a Unicode. Sin un color explícito, se toma SpeechHue del perfil; 0xFFFF en UO.UOSayColor también selecciona este color. El texto se envía al servidor, pero el script no lo ejecuta como código.
  • UO.Print · UO.CharPrint · UO.Say · UO.ConColor

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 comando es una instrucción independiente. El mensaje anterior indica el inicio de la llamada y no confirma una acción del servidor.

UO.Print("Calling UO.UOSay");
UO.UOSay("bank");

1. Póngase en contacto con un banquero - guión directo

Parámetros y flujo de ejecución:

  • Connected se comprueba antes del envío. banco es una línea de expresión, no el nombre API. Para abrir un banco normalmente se necesita un NPC adecuado cerca; si el servidor usa una frase diferente, reemplácela.
if (Truth(UO.Connected()))
{
    UO.UOSay("bank");
}

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

2. Comando a una mascota seleccionada por nombre - función de script

Parámetros y flujo de ejecución:

  • petName es el nombre de tu mascota, aquí Sombra. Constituye una línea. Sombra, sígueme. Esta es una orden para que tu mascota te siga, en lugar de UO.Follow, que mueve a tu personaje.
return  RunScenario();
 object? RunScenario()
{
    var petName = "Shadow";
    if (Truth(UO.Connected()))
    {
        UO.UOSay(petName + " follow me");
    }

    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. Preguntar al banco sólo cuando esté sobrecargado - clase de script

Parámetros y flujo de ejecución:

  • RequestBankIfHeavy comprueba la conexión y el peso máximo positivo fiable. Solo cuando está sobrecargado envía banco y devuelve 1 como señal de solicitud enviada. 0: solicitud no enviada. Este resultado pertenece al asistente, no al comando de voz.
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()
    {
        return RequestBankIfHeavy();
        return null;
    }

    dynamic RequestBankIfHeavy()
    {
        if (!(Truth(UO.Connected())))
        {
            return 0;
        }

        var maximum = UO.MaxWeight();
        if (Truth(maximum <= 0) || Truth(UO.Weight() < maximum))
        {
            return 0;
        }

        UO.UOSay("bank");
        return 1;
    }

    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.UOSay(text) — UO.UOSay(Any)

Parámetros: text (Any)

Resultado: void / Unit.

Durante la llamada:

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

case "uosay": Say(Text(0)); return InjectionValue.Unit;

UO.UOSayColor

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

Firmas de C#

void UO.UOSayColor(object? text, object? color);

Envía el discurso normal del personaje al servidor: por ejemplo, una dirección a un banquero o una orden a una mascota.

Parámetros

  • color - UO hue, no RGB. Número o cadena hexadecimal; el puente utiliza los bits 16 bajos. No confundir con graphic/type. 0x0044 en el ejemplo es el hue seleccionado. Para la versión del protocolo 2.0.0 y posteriores, el cliente envía voz Unicode; para el mayor - ASCII discurso. El nombre SayU no fuerza el protocolo antiguo a Unicode. Sin un color evidente, se toma SpeechHue del perfil; 0xFFFF en UO.UOSayColor también selecciona este color. El texto se envía al servidor, pero el script no lo ejecuta como código.

Valor devuelto

Una llamada a un método con un tipo de retorno void se escribe como una declaración independiente C#; el resultado no se puede asignar ni comprobar. Completar la declaración no constituye una confirmación por parte del servidor del juego.

Comportamiento

  • Para la versión del protocolo 2.0.0 y posteriores, el cliente envía voz Unicode; para el mayor - ASCII discurso. El nombre SayU no obliga al antiguo protocolo a Unicode. Sin un color explícito, se toma SpeechHue del perfil; 0xFFFF en UO.UOSayColor también selecciona este color. El texto se envía al servidor, pero el script no lo ejecuta como código.
  • UO.Print · UO.CharPrint · UO.Say · UO.ConColor

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 comando es una instrucción independiente. El mensaje anterior indica el inicio de la llamada y no confirma una acción del servidor.

UO.Print("Calling UO.UOSayColor");
UO.UOSayColor("bank", 0x0044);

1. Póngase en contacto con un banquero - guión directo

Parámetros y flujo de ejecución:

  • Connected se comprueba antes del envío. banco es una línea de expresión, no el nombre API. Para abrir un banco normalmente se necesita un NPC adecuado cerca; si el servidor usa una frase diferente, reemplácela.
if (Truth(UO.Connected()))
{
    UO.UOSayColor("bank", 0x0044);
}

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

2. Comando a una mascota seleccionada por nombre - función de script

Parámetros y flujo de ejecución:

  • petName es el nombre de tu mascota, aquí Sombra. Constituye una línea. Sombra, sígueme. Esta es una orden para que tu mascota te siga, en lugar de UO.Follow, que mueve a tu personaje.
return  RunScenario();
 object? RunScenario()
{
    var petName = "Shadow";
    if (Truth(UO.Connected()))
    {
        UO.UOSayColor(petName + " follow me", 0x0044);
    }

    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. Preguntar al banco sólo cuando esté sobrecargado - clase de script

Parámetros y flujo de ejecución:

  • RequestBankIfHeavy comprueba la conexión y el peso máximo positivo fiable. Solo cuando está sobrecargado envía banco y devuelve 1 como señal de solicitud enviada. 0: solicitud no enviada. Este resultado pertenece al asistente, no al comando de voz.
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()
    {
        return RequestBankIfHeavy();
        return null;
    }

    dynamic RequestBankIfHeavy()
    {
        if (!(Truth(UO.Connected())))
        {
            return 0;
        }

        var maximum = UO.MaxWeight();
        if (Truth(maximum <= 0) || Truth(UO.Weight() < maximum))
        {
            return 0;
        }

        UO.UOSayColor("bank", 0x0044);
        return 1;
    }

    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.UOSayColor(text, color) — UO.UOSayColor(Any,Any)

Parámetros: text (Any), color (Any)

Resultado: void / Unit.

Durante la llamada:

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

case "uosaycolor": bridge.Say(Text(0), Arg(1)); return InjectionValue.Unit;

Clone this wiki locally