Repository navigation
ES UO Topic party
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
Inicio · C# · IDE · UO API · A–Z · Ejemplos · Idiomas
Invitaciones de grupo, miembros, salidas y mensajes. Estas transacciones difieren del discurso general y del intercambio comercial.
| Tema | Comandos y explicaciones |
|---|---|
| InParty | UO.InParty |
| Invite | UO.InviteToParty |
| Accept | UO.PartyAcceptInvite |
| Decline | UO.PartyDeclineInvite |
| Leave | UO.PartyLeave |
| Remove Member | UO.RemoveFromParty |
| Members List | UO.PartyMembersList |
| PartySay | UO.PartySay |
| Mensaje de fiesta privada | UO.PartyPrivateMessageTo |
UO.InParty · UO.InviteToParty · UO.PartyAcceptInvite · UO.PartyDeclineInvite · UO.PartyLeave · UO.RemoveFromParty · UO.PartyMembersList · UO.PartyCanLootMe · UO.PartySay · UO.PartyPrivateMessageTo
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
var members = UO.PartyMembersList();
UO.Print(UO.GetArrayLength(members));Parámetros, resultado y todos los escenarios
UO.PartySay("Ready");Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.InParty();Comprueba la presencia de un grupo actual según el estado de Parte del cliente.
No hay parámetros.
int 1: un líder serial distinto de cero es conocido en el Partido. int 0 - no hay líder. Este no es el número de participantes ni el índice de su propio personaje en la lista.
El resultado del comando es una bandera numérica: 1 significa una condición cumplida, 0 significa una condición no cumplida. Después de var resultado = comando(...) verifique si (resultado! = 0) o si (resultado == 0). Guarde el resultado de una llamada: una llamada repetida puede realizar la acción nuevamente o leer el estado que ya cambió.
- Se lee el modelo del cliente local; No hay solicitudes al servidor, ni esperas ni movimientos.
- El resultado se refiere al momento de la lectura. Después de UO.Wait u otra acción, el objeto y sus indicadores pueden cambiar.
- Este cliente verifica Party.Leader, no solo el número de líneas de lista no vacías. Si se acepta la invitación, el estado cambiará después de la actualización del servidor.
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 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.InParty();
UO.Print("InParty: " + Convert.ToString(result));Parámetros y flujo de ejecución:
- No hay argumentos. El grupo del personaje actual está marcado.
- El equipo no crea un grupo y no acepta la invitación.
if (Truth(UO.InParty()))
{
UO.Print("Party is active");
}
else
{
UO.Print("No active party");
}
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:
- inParty es numérico bool, no el número de participantes.
- La reutilización de una variable no vuelve a leer el grupo modificado.
return RunScenario();
object? RunScenario()
{
var inParty = UO.InParty();
UO.Print("Party 1/0: " + Convert.ToString(inParty));
return null;
}Parámetros y flujo de ejecución:
- No más de 10 pausas durante 200 ms; El ciclo está limitado a aproximadamente dos segundos más la ejecución del comando.
- Esperar no envía invitaciones ni garantiza la membresía en el grupo.
return await new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenarioAsync();
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;
}
async public Task<object?> RunScenarioAsync()
{
var attempts = 0;
while (Truth(UO.InParty() == 0) && Truth(attempts < 10))
{
await Delay(200);
attempts = attempts + 1;
}
if (Truth(UO.InParty()))
{
UO.Print("Party state received");
}
else
{
UO.Print("Party still absent");
}
return null;
}
Task Delay(object? milliseconds) => WaitAsync(checked((int)Convert.ToDouble(milliseconds)));
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
}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: int / Integer.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.InParty:bridge.InParty().
Código interno de implementación; no es un script independiente.
case "inparty": return new InjectionValue(bridge.InParty());Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.InviteToParty(object? objID);Solicita una invitación para que un personaje se una al grupo.
-
objID— Objeto serial/ID: int, cadena numérica/hexadecimal o alias establecido, por ejemplo "lasttarget". Esto no es graphic/type. Verifique el objeto cargado antes de actuar.
void - sin valor. Llame en una línea separada; la finalización no confirma la acción del servidor.
- PartyInvite pasa el serial a través de _manager.QueueTarget, luego llama a RequestPartyInviteByTarget. Primero, se prepara la cola del objetivo y luego se envía la solicitud de invitació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.
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.InviteToParty");
UO.InviteToParty(UO.GetSerial("lasttarget"));Parámetros y flujo de ejecución:
- Solicita una invitación para que un personaje se una al grupo.
var id = UO.GetSerial("lasttarget");
if (Truth(UO.Exists(id)))
{
UO.InviteToParty(id);
}
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:
- PartyInvite pasa el serial a través de _manager.QueueTarget, luego llama a RequestPartyInviteByTarget. Primero, se prepara la cola del objetivo y luego se envía la solicitud de invitación.
return RunScenario();
object? RunScenario()
{
var id = UO.GetSerial("self");
if (Truth(UO.Exists(id)))
{
UO.InviteToParty(id);
}
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:
- 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()
{
ApplyToLoaded(UO.GetSerial("lasttarget"));
return null;
}
void ApplyToLoaded(dynamic id)
{
if (Truth(UO.Exists(id)))
{
UO.InviteToParty(id);
}
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
}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: objID (Any)
Resultado: void / Unit.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.PartyInvite:bridge.PartyInvite(Arg(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0).
Código interno de implementación; no es un script independiente.
case "invitetoparty": bridge.PartyInvite(Arg(0)); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.PartyAcceptInvite();Acepta la invitación guardada al grupo.
No hay parámetros.
void - sin valor. Llame en una línea separada; la finalización no confirma la acción del servidor.
- PartyAcceptInvite si Party.Inviter es distinto de cero, envía RequestPartyAccept, asigna localmente Leader=Inviter y borra Inviter. Sin invitación no hay acció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.
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.PartyAcceptInvite");
UO.PartyAcceptInvite();Parámetros y flujo de ejecución:
- Acepta la invitación guardada al grupo.
UO.PartyAcceptInvite();Parámetros y flujo de ejecución:
- PartyAcceptInvite si Party.Inviter es distinto de cero, envía RequestPartyAccept, asigna localmente Leader=Inviter y borra Inviter. Sin invitación no hay acción.
return RunScenario();
object? RunScenario()
{
UO.PartyAcceptInvite();
UO.Print(UO.InParty());
return null;
}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.PartyAcceptInvite();
UO.Wait(500);
UO.Print(UO.GetArrayLength(UO.PartyMembersList()));
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.PartyAcceptInvite:bridge.PartyAcceptInvite().
Código interno de implementación; no es un script independiente.
case "partyacceptinvite": bridge.PartyAcceptInvite(); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.PartyCanLootMe(object? value);Cambia si los miembros del grupo pueden quitar objetos de un cadáver.
-
value- 0 se apaga; cualquier número entero distinto de cero incluye.
void - sin valor. Llame en una línea separada; la finalización no confirma la acción del servidor.
- PartyCanLoot configura localmente Party.CanLoot y llama a RequestPartyLootState (habilitado). El valor distinto de cero se activa, 0 se desactiva. El servidor todavía verifica las reglas.
- Bridge envía la solicitud en la transmisión del juego. Se aplican las reglas del servidor; No hay espera de confirmación incorporada.
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.PartyCanLootMe");
UO.PartyCanLootMe(1);Parámetros y flujo de ejecución:
- Cambia si los miembros del grupo pueden quitar objetos de un cadáver.
UO.PartyCanLootMe(1);Parámetros y flujo de ejecución:
- PartyCanLoot configura localmente Party.CanLoot y llama a RequestPartyLootState (habilitado). El valor distinto de cero se activa, 0 se desactiva. El servidor todavía verifica las reglas.
return RunScenario();
object? RunScenario()
{
UO.PartyCanLootMe(0);
return null;
}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()
{
ApplyMode(1);
return null;
}
void ApplyMode(dynamic mode)
{
UO.PartyCanLootMe(mode);
}
}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: value (Any)
Resultado: void / Unit.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.PartyCanLoot:bridge.PartyCanLoot(Arg(0) != 0). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0).
Código interno de implementación; no es un script independiente.
case "partycanlootme": bridge.PartyCanLoot(Arg(0) != 0); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.PartyDeclineInvite();Rechaza una invitación de grupo guardada.
No hay parámetros.
void - sin valor. Llame en una línea separada; la finalización no confirma la acción del servidor.
- PartyDeclineInvite si Party.Inviter no es cero, envía Send_PartyDecline y borra Inviter. Sin invitación no hay acció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.
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.PartyDeclineInvite");
UO.PartyDeclineInvite();Parámetros y flujo de ejecución:
- Rechaza una invitación de grupo guardada.
UO.PartyDeclineInvite();Parámetros y flujo de ejecución:
- PartyDeclineInvite si Party.Inviter no es cero, envía Send_PartyDecline y borra Inviter. Sin invitación no hay acción.
return RunScenario();
object? RunScenario()
{
UO.PartyDeclineInvite();
UO.Print(UO.InParty());
return null;
}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.PartyDeclineInvite();
UO.Wait(500);
UO.Print(UO.GetArrayLength(UO.PartyMembersList()));
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.PartyDeclineInvite:bridge.PartyDeclineInvite().
Código interno de implementación; no es un script independiente.
case "partydeclineinvite": bridge.PartyDeclineInvite(); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.PartyLeave();Solicita al personaje actual que abandone el grupo.
No hay parámetros.
void - sin valor. Llame en una línea separada; la finalización no confirma la acción del servidor.
- PartyLeave si hay un Jugador, llama a GameActions.RequestPartyQuit(_world.Player); sin Player no envía nada.
- 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.PartyLeave");
UO.PartyLeave();Parámetros y flujo de ejecución:
- Solicita al personaje actual que abandone el grupo.
UO.PartyLeave();Parámetros y flujo de ejecución:
- PartyLeave si hay un Jugador, llama a GameActions.RequestPartyQuit(_world.Player); sin Player no envía nada.
return RunScenario();
object? RunScenario()
{
if (Truth(UO.InParty()))
{
UO.PartyLeave();
}
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.PartyLeave();
UO.Wait(500);
UO.Print(UO.InParty());
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.PartyLeave:bridge.PartyLeave().
Código interno de implementación; no es un script independiente.
case "partyleave": bridge.PartyLeave(); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.PartyMembersList();Bridge filtra las entradas Party.Members que no están vacías y las almacena serial en orden de lista.
No hay parámetros.
Matriz de miembros int serial de Party.Members local. Se excluyen las entradas vacías/Serial=0. La matriz puede estar vacía.
- Bridge filtra las entradas Party.Members que no están vacías y las almacena serial en orden de lista. La llamada no actualiza el grupo desde el servidor y no invita a miembros.
- Lee el estado local actual. No hay paquete, objetivo o actualización automática; las lecturas individuales pueden ver diferentes estados.
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 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.PartyMembersList();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));Parámetros y flujo de ejecución:
- Bridge filtra las entradas Party.Members que no están vacías y las almacena serial en orden de lista.
var members = UO.PartyMembersList();
UO.Print(UO.GetArrayLength(members));Parámetros y flujo de ejecución:
- Bridge filtra las entradas Party.Members que no están vacías y las almacena serial en orden de lista. La llamada no actualiza el grupo desde el servidor y no invita a miembros.
return RunScenario();
object? RunScenario()
{
var members = UO.PartyMembersList();
if (Truth(UO.GetArrayLength(members) > 0))
{
UO.Print(Hex(members[0]));
}
return null;
}
string Hex(object? value) => Convert.ToInt64(value).ToString("X");
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:
- 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.PartyMembersList();
UO.Wait(500);
var after = UO.PartyMembersList();
UO.Print(before);
UO.Print(after);
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: dynamic / Any.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.PartyMembersList:bridge.PartyMembersList().
Código interno de implementación; no es un script independiente.
case "partymemberslist":
return new InjectionValue(bridge.PartyMembersList().Select(serial => new InjectionValue(serial)).ToArray());Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.PartyPrivateMessageTo(object? objID, object? msg);Envía un mensaje privado a un miembro del grupo.
-
objID— Objeto serial/ID: int, cadena numérica/hexadecimal o alias establecido, por ejemplo "lasttarget". Esto no es graphic/type. Verifique el objeto cargado antes de actuar. -
msg— Texto a través de ToString; guardado como transmitido.
void - sin valor. Llame en una línea separada; la finalización no confirma la acción del servidor.
- PartySay obtiene Texto(1) y Arg(0); GameActions.SayParty(texto, serial) dirige el mensaje al serial transmitido. El orden es primero ObjID y luego Msg.
- Bridge envía la solicitud en la transmisión del juego. Se aplican las reglas del servidor; No hay espera de confirmación incorporada.
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.PartyPrivateMessageTo");
UO.PartyPrivateMessageTo("lasttarget", "Ready");Parámetros y flujo de ejecución:
- Envía un mensaje privado a un miembro del grupo.
UO.PartyPrivateMessageTo("lasttarget", "Ready");Parámetros y flujo de ejecución:
- PartySay obtiene Texto(1) y Arg(0); GameActions.SayParty(texto, serial) dirige el mensaje al serial transmitido. El orden es primero ObjID y luego Msg.
return RunScenario();
object? RunScenario()
{
var id = UO.GetSerial("lasttarget");
if (Truth(UO.Exists(id)))
{
UO.PartyPrivateMessageTo(id, "Ready");
}
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:
- 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()
{
SendPartyMessage(UO.GetSerial("lasttarget"), "Ready");
return null;
}
void SendPartyMessage(dynamic id, dynamic message)
{
if (Truth(id != "0x00000000") && Truth(Len(message) > 0))
{
UO.PartyPrivateMessageTo(id, 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;
}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: objID (Any), msg (Any)
Resultado: void / Unit.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.PartySay:bridge.PartySay(Text(1), Arg(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Text:Text(1). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0).
Código interno de implementación; no es un script independiente.
case "partyprivatemessageto": bridge.PartySay(Text(1), Arg(0)); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.PartySay(object? msg);Envía un mensaje a todo el grupo.
-
msg— Texto a través de ToString; guardado como transmitido.
void - sin valor. Llame en una línea separada; la finalización no confirma la acción del servidor.
- Llamadas GameActions.SayParty(texto, 0). Nulo serial significa mensaje grupal; La composición y entrega del grupo están determinadas por el servidor.
- Bridge envía la solicitud en la transmisión del juego. Se aplican las reglas del servidor; No hay espera de confirmación incorporada.
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.PartySay");
UO.PartySay("Ready");Parámetros y flujo de ejecución:
- Envía un mensaje a todo el grupo.
UO.PartySay("Ready");Parámetros y flujo de ejecución:
- Llamadas GameActions.SayParty(texto, 0). Nulo serial significa mensaje grupal; La composición y entrega del grupo están determinadas por el servidor.
return RunScenario();
object? RunScenario()
{
var message = "Ready";
if (Truth(UO.IsOnline()))
{
UO.PartySay(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;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("Ready");
return null;
}
void SendText(dynamic message)
{
if (Truth(Len(message) > 0))
{
UO.PartySay(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;
}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: msg (Any)
Resultado: void / Unit.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.PartySay:bridge.PartySay(Text(0), 0). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Text:Text(0).
Código interno de implementación; no es un script independiente.
case "partysay": bridge.PartySay(Text(0), 0); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.RemoveFromParty(object? objID);Solicita la eliminación de un miembro del grupo vía serial.
-
objID— Objeto serial/ID: int, cadena numérica/hexadecimal o alias establecido, por ejemplo "lasttarget". Esto no es graphic/type. Verifique el objeto cargado antes de actuar.
void - sin valor. Llame en una línea separada; la finalización no confirma la acción del servidor.
- PartyRemove llama a RequestPartyRemoveMember. La resolución depende del rol del personaje y del servidor actual; La lista de participantes no se modifica sincrónicamente con este comando.
- Bridge envía la solicitud en la transmisión del juego. Se aplican las reglas del servidor; No hay espera de confirmación incorporada.
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.RemoveFromParty");
UO.RemoveFromParty(UO.GetSerial("lasttarget"));Parámetros y flujo de ejecución:
- Solicita la eliminación de un miembro del grupo vía serial.
var id = UO.GetSerial("lasttarget");
if (Truth(UO.Exists(id)))
{
UO.RemoveFromParty(id);
}
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:
- PartyRemove llama a RequestPartyRemoveMember. La resolución depende del rol del personaje y del servidor actual; La lista de participantes no se modifica sincrónicamente con este comando.
return RunScenario();
object? RunScenario()
{
var id = UO.GetSerial("self");
if (Truth(UO.Exists(id)))
{
UO.RemoveFromParty(id);
}
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:
- 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()
{
ApplyToLoaded(UO.GetSerial("lasttarget"));
return null;
}
void ApplyToLoaded(dynamic id)
{
if (Truth(UO.Exists(id)))
{
UO.RemoveFromParty(id);
}
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
}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: objID (Any)
Resultado: void / Unit.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.PartyRemove:bridge.PartyRemove(Arg(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0).
Código interno de implementación; no es un script independiente.
case "removefromparty": bridge.PartyRemove(Arg(0)); return InjectionValue.Unit;ClassicUO — Bad Newbie & C# Scripts IDE