Repository navigation
ES UO Topic boats
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
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.
| Tema | Comandos y explicaciones |
|---|---|
| MoveBoat | UO.MoveBoat |
| StopBoat | UO.StopBoat |
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.
Parámetros, resultado y todos los escenarios
UO.MoveBoat(0, 1);Parámetros, resultado y todos los escenarios
UO.StopBoat();Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.MoveBoat(object? direction, object? speed);Solicita la dirección y velocidad del barco.
-
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.
void - sin valor. Llame en una línea separada; la finalización no confirma la acción del servidor.
- 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.
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.
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);Parámetros y flujo de ejecución:
- Solicita la dirección y velocidad del barco.
UO.MoveBoat(0, 1);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;
}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;
}
}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.
Parámetros: direction (Any), speed (Any)
Resultado: void / Unit.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.MoveBoat:bridge.MoveBoat(Arg(0), Arg(1)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0).
Código interno de implementación; no es un script independiente.
case "moveboat": bridge.MoveBoat(Arg(0), Arg(1)); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.StopBoat();Solicita al barco que deje de moverse.
No hay parámetros.
void - sin valor. Llame en una línea separada; la finalización no confirma la acción del servidor.
- 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.
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.
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();Parámetros y flujo de ejecución:
- Solicita al barco que deje de moverse.
UO.StopBoat();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;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;
}
}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.
Parámetros: Sin parámetros.
Resultado: void / Unit.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.StopBoat:bridge.StopBoat().
Código interno de implementación; no es un script independiente.
case "stopboat": bridge.StopBoat(); return InjectionValue.Unit;ClassicUO — Bad Newbie & C# Scripts IDE