Repository navigation
ES UO Topic world geometry Part 2
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
Inicio · C# · IDE · UO API · A–Z · Ejemplos · Idiomas
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.RemoveUserStatic(object? arg0);Elimina el registro estático del usuario en ID.
-
ID- int ID, devuelto AddUserStatic; no graphic/type.
Indicador numérico int: 1: el registro se eliminó, 0: faltaba ID.
- Primer estado.UserStatics.Remove; solo si la eliminación se realiza correctamente, se llama a bridge.RemoveUserStatic(id). La eliminación no se aplica a los archivos de mapas estáticos estándar.
- La geometría personalizada local se elimina del estado actual. Los elementos del servidor y otros elementos ID no cambian.
- En un host de cliente normal, estos datos de estado se toman del administrador GetPersistentState y son comunes a los scripts/chat/macros del mismo mundo/perfil, y no pertenecen a un solo script. Otro proceso o un InjectionRuntimeState aparentemente separado tiene un estado diferente. Cargar/borrar un perfil puede reemplazarlo; guardados serial todavía se comparan con el mundo cargado.
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.RemoveUserStatic(1);
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));Parámetros y flujo de ejecución:
- Elimina el registro estático del usuario en ID.
UO.Print(UO.RemoveUserStatic(1));Parámetros y flujo de ejecución:
- Primer estado.UserStatics.Remove; solo si la eliminación se realiza correctamente, se llama a bridge.RemoveUserStatic(id). La eliminación no se aplica a los archivos de mapas estáticos estándar.
return await RunScenarioAsync();
async Task<object?> RunScenarioAsync()
{
if (Truth(UO.UserStaticExists(1)))
{
UO.Print(UO.RemoveUserStatic(1));
}
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:
- La geometría personalizada local se elimina del estado actual. Los elementos del servidor y otros elementos ID no cambian.
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 records = UO.GetUserStatics();
if (Truth(UO.GetArrayLength(records) > 0))
{
var id = records[0][0];
UO.Print(UO.RemoveUserStatic(id));
UO.Print(UO.UserStaticExists(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;
}Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.UserStaticExists(object? arg0);Comprueba la presencia de ID en los registros estáticos del usuario.
-
id— int ID AddUserStatic; no graphic/type y no serial.
Bandera numérica int: 1: la clave está en el estado. UserStatics, 0 - ausente.
- Sólo ContainsKey está marcado en el diccionario de tiempo de ejecución. No se verifican la visibilidad de un objeto en el mapa, la creación exitosa de un objeto puente y el mundo del servidor.
- Lee el estado local actual. No hay paquete, objetivo o actualización automática; las lecturas individuales pueden ver diferentes estados.
- En un host de cliente normal, estos datos de estado se toman del administrador GetPersistentState y son comunes a los scripts/chat/macros del mismo mundo/perfil, y no pertenecen a un solo script. Otro proceso o un InjectionRuntimeState aparentemente separado tiene un estado diferente. Cargar/borrar un perfil puede reemplazarlo; guardados serial todavía se comparan con el mundo cargado.
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.UserStaticExists(1);
UO.Print("UserStaticExists: " + Convert.ToString(result));Parámetros y flujo de ejecución:
- Comprueba la presencia de ID en los registros estáticos del usuario.
UO.Print(UO.UserStaticExists(1));Parámetros y flujo de ejecución:
- Sólo ContainsKey está marcado en el diccionario de tiempo de ejecución. No se verifican la visibilidad de un objeto en el mapa, la creación exitosa de un objeto puente y el mundo del servidor.
return await RunScenarioAsync();
async Task<object?> RunScenarioAsync()
{
if (Truth(UO.UserStaticExists(1)))
{
UO.Print(UO.GetUserStatic(1));
}
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:
- Lee el estado local actual. No hay paquete, objetivo o actualización automática; las lecturas individuales pueden ver diferentes estados.
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 records = UO.GetUserStatics();
if (Truth(UO.GetArrayLength(records) > 0))
{
UO.Print(UO.UserStaticExists(records[0][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;
}Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.WorldNum();Lee el número de tarjeta actual del modelo del cliente.
No hay parámetros.
int — índice de la tarjeta actual del cliente, normalmente 0=Felucca, 1=Trammel, 2=Ilshenar, 3=Malas, 4=Tokuno, 5=Ter Mur. El servidor de usuario puede utilizar un juego de tarjetas diferente. 0 es un mapa completo, no una señal de error.
- Se leen los datos locales ya recibidos. La solicitud no abre el estado y no obliga al servidor a enviar una actualización. Después de la muerte, la transición del mapa o la eliminación de un objeto, los valores pueden cambiar entre dos llamadas.
- Estas son funciones de lectura: al asignar el resultado a una variable se guarda la instantánea. No cambia las características del personaje. Los nombres no distinguen entre mayúsculas y minúsculas; utilice exactamente el formulario que se muestra con el número requerido de argumentos.
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.WorldNum();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));Parámetros y flujo de ejecución:
- La llamada sin argumentos hace referencia a self. El número de tarjeta actual se almacena en valor.
- Convertir.ToString convierte el número que se generará y no cambia el significado del resultado.
var value = UO.WorldNum();
UO.Print("WorldNum: " + Convert.ToString(value));Parámetros y flujo de ejecución:
- El valor se lee una vez sin ningún argumento. El número de tarjeta actual se utiliza en el cálculo o condición que se muestra.
- Los umbrales numéricos son ejemplos de condiciones de script y no de límites de nuevos clientes. El campo almacena las unidades de servidor y las restricciones descritas anteriormente.
return await RunScenarioAsync();
async Task<object?> RunScenarioAsync()
{
var value = UO.WorldNum();
var land = UO.GetLandscapeTile(UO.GetX(), UO.GetY(), value);
UO.Print("Land record length: " + Convert.ToString(ArrayLength(land)));
return null;
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;Parámetros y flujo de ejecución:
- Ambas llamadas sin argumento leen su valor actual. UO.Wait(1000) da una pausa de milisegundos entre disparos.
- El cambio comparado es el número de la tarjeta actual. Un ejemplo no cambia nada en el mundo y no espera sin cesar. Es posible que se pierdan los eventos ocurridos dentro de este segundo.
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 before = UO.WorldNum();
await Delay(1000);
var after = UO.WorldNum();
if (Truth(before != after))
{
UO.Print("Before: " + Convert.ToString(before) + "; after: " + Convert.ToString(after));
}
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;
}Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.X();Lee la coordenada X del modelo del cliente.
No hay parámetros.
int es la coordenada X del objeto cargado. Para un personaje/elemento mundial, esta es la celda del mundo; para un artículo en la bolsa, esta es la coordenada dentro del contenedor. Un objeto desconocido da 0, pero X=0 también es válido.
- Se leen los datos locales ya recibidos. La solicitud no abre el estado y no obliga al servidor a enviar una actualización. Después de la muerte, la transición del mapa o la eliminación de un objeto, los valores pueden cambiar entre dos llamadas.
- Estas son funciones de lectura: al asignar el resultado a una variable se guarda la instantánea. No cambia las características del personaje. Los nombres no distinguen entre mayúsculas y minúsculas; utilice exactamente el formulario que se muestra con el número requerido de argumentos.
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.X();
UO.Print("X: " + Convert.ToString(result));Parámetros y flujo de ejecución:
- La llamada sin argumentos hace referencia a self. La coordenada x se almacena en valor.
- Convertir.ToString convierte el número que se generará y no cambia el significado del resultado.
var value = UO.X();
UO.Print("X: " + Convert.ToString(value));Parámetros y flujo de ejecución:
- El valor se lee una vez sin ningún argumento. La coordenada x se utiliza en el cálculo o condición que se muestra.
- Los umbrales numéricos son ejemplos de condiciones de script y no de límites de nuevos clientes. El campo almacena las unidades de servidor y las restricciones descritas anteriormente.
return await RunScenarioAsync();
async Task<object?> RunScenarioAsync()
{
var value = UO.X();
UO.Print("Two tiles east would be X=" + Convert.ToString(value + 2));
return null;
}Parámetros y flujo de ejecución:
- Ambas llamadas sin argumento leen su valor actual. UO.Wait(1000) da una pausa de milisegundos entre disparos.
- Se compara el cambio: la coordenada X. El ejemplo no cambia nada en el mundo y no espera indefinidamente. Es posible que se pierdan los eventos ocurridos dentro de este segundo.
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 before = UO.X();
await Delay(1000);
var after = UO.X();
if (Truth(before != after))
{
UO.Print("Before: " + Convert.ToString(before) + "; after: " + Convert.ToString(after));
}
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;
}Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.Y();Lee la coordenada Y del modelo del cliente.
No hay parámetros.
int: coordenada Y del objeto cargado. Para un personaje/elemento mundial, esta es la celda del mundo, para un elemento en la bolsa, esta es la posición dentro del contenedor. Un objeto desconocido da 0.
- Se leen los datos locales ya recibidos. La solicitud no abre el estado y no obliga al servidor a enviar una actualización. Después de la muerte, la transición del mapa o la eliminación de un objeto, los valores pueden cambiar entre dos llamadas.
- Estas son funciones de lectura: al asignar el resultado a una variable se guarda la instantánea. No cambia las características del personaje. Los nombres no distinguen entre mayúsculas y minúsculas; utilice exactamente el formulario que se muestra con el número requerido de argumentos.
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.Y();
UO.Print("Y: " + Convert.ToString(result));Parámetros y flujo de ejecución:
- La llamada sin argumentos hace referencia a self. La coordenada y se almacena en valor.
- Convertir.ToString convierte el número que se generará y no cambia el significado del resultado.
var value = UO.Y();
UO.Print("Y: " + Convert.ToString(value));Parámetros y flujo de ejecución:
- El valor se lee una vez sin ningún argumento. La coordenada y se utiliza en el cálculo o condición que se muestra.
- Los umbrales numéricos son ejemplos de condiciones de script y no de límites de nuevos clientes. El campo almacena las unidades de servidor y las restricciones descritas anteriormente.
return await RunScenarioAsync();
async Task<object?> RunScenarioAsync()
{
var value = UO.Y();
UO.Print("Two tiles south would be Y=" + Convert.ToString(value + 2));
return null;
}Parámetros y flujo de ejecución:
- Ambas llamadas sin argumento leen su valor actual. UO.Wait(1000) da una pausa de milisegundos entre disparos.
- Se compara el cambio: la coordenada Y. El ejemplo no cambia nada en el mundo y no espera indefinidamente. Es posible que se pierdan los eventos ocurridos dentro de este segundo.
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 before = UO.Y();
await Delay(1000);
var after = UO.Y();
if (Truth(before != after))
{
UO.Print("Before: " + Convert.ToString(before) + "; after: " + Convert.ToString(after));
}
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;
}Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.Z();Lee la altura Z del modelo del cliente.
No hay parámetros.
int es la altura del objeto en unidades mundiales, generalmente -128...127. Este no es un número de piso ni una capa de equipo. 0 puede ser la altura real o el resultado de la ausencia de un objeto.
- Se leen los datos locales ya recibidos. La solicitud no abre el estado y no obliga al servidor a enviar una actualización. Después de la muerte, la transición del mapa o la eliminación de un objeto, los valores pueden cambiar entre dos llamadas.
- Estas son funciones de lectura: al asignar el resultado a una variable se guarda la instantánea. No cambia las características del personaje. Los nombres no distinguen entre mayúsculas y minúsculas; utilice exactamente el formulario que se muestra con el número requerido de argumentos.
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.Z();
UO.Print("Z: " + Convert.ToString(result));Parámetros y flujo de ejecución:
- La llamada sin argumentos hace referencia a self. La altura z se almacena en valor.
- Convertir.ToString convierte el número que se generará y no cambia el significado del resultado.
var value = UO.Z();
UO.Print("Z: " + Convert.ToString(value));Parámetros y flujo de ejecución:
- El valor se lee una vez sin ningún argumento. La altura z se utiliza en el cálculo o condición que se muestra.
- Los umbrales numéricos son ejemplos de condiciones de script y no de límites de nuevos clientes. El campo almacena las unidades de servidor y las restricciones descritas anteriormente.
return await RunScenarioAsync();
async Task<object?> RunScenarioAsync()
{
var value = UO.Z();
var land = UO.GetLandscapeTile(UO.GetX(), UO.GetY(), UO.WorldNum());
if (Truth(ArrayLength(land) >= 3))
{
UO.Print("Height above land: " + Convert.ToString(value - land[1]));
}
return null;
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;Parámetros y flujo de ejecución:
- Ambas llamadas sin argumento leen su valor actual. UO.Wait(1000) da una pausa de milisegundos entre disparos.
- El cambio comparado es la altura Z. El ejemplo no cambia nada en el mundo y no espera indefinidamente. Es posible que se pierdan los eventos ocurridos dentro de este segundo.
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 before = UO.Z();
await Delay(1000);
var after = UO.Z();
if (Truth(before != after))
{
UO.Print("Before: " + Convert.ToString(before) + "; after: " + Convert.ToString(after));
}
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;
}ClassicUO — Bad Newbie & C# Scripts IDE