Skip to content

ES UO Topic boats

Codex edited this page Oct 12, 2026 · 4 revisions

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

Barcos

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

Controlar el movimiento y parada de la embarcación; La disponibilidad del equipo está determinada por el barco y el servidor actual.

Secciones

Tema Comandos y explicaciones
MoveBoat UO.MoveBoat
StopBoat UO.StopBoat

Todos los comandos del tema

Control de embarcaciones

UO.MoveBoat · UO.StopBoat

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

Parámetros, resultado y todos los escenarios

UO.MoveBoat(0, 1);

UO.StopBoat

Parámetros, resultado y todos los escenarios

UO.StopBoat();

Referencia completa de comandos


UO.MoveBoat

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

Firmas de C#

void UO.MoveBoat(object? direction, object? speed);

Solicita la dirección y velocidad del barco.

Parámetros

  • direction - int, low 3 bits especifican la dirección 0..7: N,NE,E,SE,S,SW,W,NW.
  • speed - int, limitado a 0..255 y reducido a byte; 0—detener solicitud. Código de protocolo, no velocidad en celdas/segundo.

Valor devuelto

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

Comportamiento

  • Puente.MoveBoat llama a BoatMovingManager.MoveRequest((Direction)(dirección&7), abrazadera(velocidad,0,255)). El barco actual y los derechos de control están determinados por el cliente/servidor.
  • No mueve al personaje a través de Pathfinder, no espera un paso y no devuelve las coordenadas del barco. El servidor puede rechazar 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.MoveBoat");
UO.MoveBoat(0, 1);

1. Llamada directa - guión directo

Parámetros y flujo de ejecución:

  • Solicita la dirección y velocidad del barco.
UO.MoveBoat(0, 1);

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

Parámetros y flujo de ejecución:

  • Puente.MoveBoat llama a BoatMovingManager.MoveRequest((Direction)(dirección&7), abrazadera(velocidad,0,255)). El barco actual y los derechos de control están determinados por el cliente/servidor.
return  RunScenario();
 object? RunScenario()
{
    UO.MoveBoat(2, 1);
    UO.Wait(500);
    UO.StopBoat();
    return null;
}

3. Función auxiliar completa: clase de script

Parámetros y flujo de ejecución:

  • No mueve al personaje a través de Pathfinder, no espera un paso y no devuelve las coordenadas del barco. El servidor puede rechazar 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.MoveBoat(0, 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.MoveBoat(direction, speed) — UO.MoveBoat(Any,Any)

Parámetros: direction (Any), speed (Any)

Resultado: void / Unit.

Durante la llamada:

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

case "moveboat": bridge.MoveBoat(Arg(0), Arg(1)); return InjectionValue.Unit;

UO.StopBoat

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

Firmas de C#

void UO.StopBoat();

Solicita al barco que deje de moverse.

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

  • StopBoat llama a BoatMovingManager.MoveRequest con Player.Direction (o Norte sin Player) y velocidad=0. La solicitud no devuelve la posición del servidor del barco.
  • 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.StopBoat");
UO.StopBoat();

1. Llamada directa - guión directo

Parámetros y flujo de ejecución:

  • Solicita al barco que deje de moverse.
UO.StopBoat();

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

Parámetros y flujo de ejecución:

  • StopBoat llama a BoatMovingManager.MoveRequest con Player.Direction (o Norte sin Player) y velocidad=0. La solicitud no devuelve la posición del servidor del barco.
return  RunScenario();
 object? RunScenario()
{
    if (Truth(UO.IsOnline()))
    {
        UO.StopBoat();
    }

    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.StopBoat();
        UO.Wait(250);
        UO.Print(UO.GetX());
        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.StopBoat() — UO.StopBoat()

Parámetros: Sin parámetros.

Resultado: void / Unit.

Durante la llamada:

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

case "stopboat": bridge.StopBoat(); return InjectionValue.Unit;

Clone this wiki locally