Skip to content

FR UO Topic search

Codex edited this page Oct 12, 2026 · 4 revisions

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

Recherche

Accueil · C# · IDE · UO API · A–Z · Exemples · Langues

Sélection d'une zone de recherche et de filtres, traitement du résultat, liste des éléments trouvés et exceptions. Vérifiez la valeur « non trouvé » sur la fiche de commande : serial, quantité et liste - résultats différents.

Sections

Sujet Commandes et explications
Rechercher des articles UO.FindType · UO.FindTypeEx · UO.FindTypesArrayEx · UO.FindAnyType
Rechercher des mobiles UO.FindMobile · UO.FindType
Rechercher des joueurs UO.FindMobile · UO.FindType
Rechercher NPC UO.FindMobile · UO.FindType
Rechercher des monstres UO.FindMobile · UO.FindType
Recherche par série UO.Exists · UO.GetSerial
Recherche par type UO.FindType · UO.FindTypeEx · UO.FindTypesArrayEx
Recherche par Notoriety UO.FindByNotoriety · UO.FindNotoriety
Recherche par distance UO.FindDistance · UO.FindType
Recherche par coordonnées UO.FindAtCoord
Recherche par Z UO.FindVertical · UO.FindType
Rechercher Ground UO.FindType · UO.CountGround
Rechercher des conteneurs UO.FindTypeEx · UO.OpenContainer
FindList UO.AddFindList · UO.FindList · UO.GetFindedList · UO.GetFoundItems · UO.FindItem · UO.FindCount · UO.FindQuantity · UO.FindFullQuantity
Ignore Lists UO.Ignore · UO.IgnoreOff · UO.IgnoreReset · UO.AddIgnoreList · UO.SelectIgnoreList
Bad Objects UO.SetBadObject · UO.ClearBadObjectList
Bad Locations UO.SetBadLocation · UO.ClearBadLocationList

Toutes les commandes du thème

Rechercher des articles

UO.FindType · UO.FindTypeEx · UO.FindTypesArrayEx · UO.FindAnyType · UO.FindAtCoord · UO.FindItem · UO.FindCount · UO.FindQuantity · UO.FindFullQuantity · UO.Count · UO.CountEx · UO.CountGround · UO.GetWorldItems · UO.GetFoundItems · UO.GetFindedList

Rechercher des mobiles

UO.FindMobile · UO.FindMan · UO.FindByNotoriety · UO.FindNotoriety

Recherche par Distance / Z

UO.FindDistance · UO.FindVertical

FindList

UO.AddFindList · UO.ClearFindList · UO.DeleteFindList · UO.FindList · UO.InfoFindList · UO.MFGI

Ignore Listes

UO.Ignore · UO.IgnoreOff · UO.IgnoreReset · UO.AddIgnoreList · UO.ClearIgnoreList · UO.DeleteIgnoreList · UO.SelectIgnoreList · UO.GetIgnoreList

Mauvais objets

UO.SetBadObject · UO.ClearBadObjectList

Mauvais emplacements

UO.SetBadLocation · UO.ClearBadLocationList

Exemples sur le sujet

Chaque carte de commande possède plusieurs scénarios indépendants : code direct, fonctions et classes. Vous trouverez ci-dessous une sélection de courts scénarios ; des restrictions et une analyse complète sont à prévoir.

UO.FindType

Paramètres, résultat et tous les scénarios

var gold = UO.FindType(0x0EED, -1, "backpack");
if (Truth(gold == ""))
{
    UO.Print("Gold was not found in the loaded backpack");
}
else
{
    UO.Print("Gold serial: " + gold);
    UO.Info(gold);
}

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

UO.FindFullQuantity

Paramètres, résultat et tous les scénarios

var found = UO.FindType(0x0EED, -1, "backpack");
var value = UO.FindFullQuantity();
UO.Print(Convert.ToString(value));

Parties de la référence

1 · 2

Référence complète des commandes


UO.AddFindList

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

Signatures C#

void UO.AddFindList(object? list, object? @type);
void UO.AddFindList(object? list, object? @type, object? color);

Ajoute la règle type/hue à l'ensemble nommé pour UO.FindList. L'ensemble permet de rechercher à plusieurs reprises plusieurs types d'objets ou de mobiles et de définir la priorité des types par ordre d'addition.

Paramètres

  • list — Le nom de l'ensemble de règles, par exemple "butin". Passez la chaîne sans le | : ce caractère est utilisé comme séparateur au sein de l'enregistrement. Le nom n'est pas sensible à la casse. Il ne s'agit pas d'un conteneur serial ou d'un tableau d'éléments trouvés.
  • type - Graphique/type d'un élément ou body mobile, pas son serial. Généralement int 0..65535, y compris 0x0EED ; -1 ou 0xFFFF signifie n'importe quel type lors de la recherche. Fournissez une valeur par entrée. Plusieurs types sont ajoutés par des appels séparés.
  • color — Teinte d'un objet/corps, pas RGB. int 0..65535; 0 - régulier hue 0, -1 ou 0xFFFF - n'importe lequel. Dans AddFindList, sauter la couleur signifie n'importe quel hue lors de la recherche.

Valeur de retour

void : Aucune valeur de retour. N'attribuez pas l'appel à une variable et ne le testez pas sur true/1. L'état des définitions peut être déduit UO.InfoFindList() ; la recherche elle-même est lancée séparément via UO.FindList().

Comportement

  • Les définitions sont dans l'état d'exécution du script donné. Un autre environnement d'exécution indépendant possède son propre ensemble ; la fermeture de la fenêtre IDE n'efface pas ces règles. Il ne s'agit pas d'un fichier de paramètres ni d'une liste d'objets de jeu globaux.
  • AddFindList ajoute l'entrée à la fin ; les répétitions ne sont pas supprimées. Pour réapprovisionner votre kit, appelez d'abord ClearFindList("name"). La modification des définitions n'efface pas les FindItem/FindCount/GetFoundItems qui ont déjà été reçus.
  • L'enregistrement stocke les champs de texte. Le littéral numérique 0x0EED est stocké sous "3821", la chaîne "0x0EED" est stockée sous "0x0EED". La recherche convertit les deux options en nombre et DeleteFindList compare le texte stocké. Utilisez le même formulaire lors de l’ajout et de la suppression.
  • Le nom inconnu dans FindList n'est pas un ensemble enregistré vide : le moteur tente de l'analyser comme une liste de types numériques. Un nom non numérique provoque une erreur de conversion. Après avoir supprimé la dernière entrée, créez un nouvel ensemble avant de rechercher ce nom.
  • Les arguments sont stockés immédiatement ; la vérification numérique type/hue est effectuée à FindList. AddFindList ne recherche pas, ne transporte pas d'objets et n'ajoute pas serial à Ignore.

Scripts C# autonomes

Chaque exemple peut être enregistré dans un fichier séparé .csx et exécuté dans IDE. Les fonctions d'objet UO et d'attente fournissent l'hôte de la session de jeu en cours. Remplacez les noms, coordonnées et adresses de la démo serial par les vôtres.

Exemple simple

Exécutez ce code dans un fichier .csx séparé. Les arguments sont visibles dans l’appel ; remplacez les noms, serials et adresses d’exemple par les vôtres.

La commande forme une instruction séparée. Le message précédent indique le début de l’appel et ne confirme aucune action du serveur.

UO.Print("Calling UO.AddFindList");
UO.AddFindList("simple_loot", 0x0EED);

1. Préparez votre propre ensemble de butin et obtenez des résultats - script direct

Paramètres et déroulement de l’exécution :

  • 0x0EED est de l'or, 0x0F7A est le deuxième graphic de l'ensemble. Pour les autres données du serveur, remplacez les graphiques. La procédure complète BuildLoot est donnée ci-dessus.
  • FindCount(item) lit le nombre d'unités d'une pile particulière ; GetFoundItems contient un serial distinct. Cet exemple n'effectue aucun transfert.
BuildLoot();
var first = UO.FindList("loot", "ground", 2, -1, false, 5, false);
if (Truth(first == ""))
{
    UO.Print("No matching loot nearby");
    return null;
}
var items = UO.GetFoundItems();
foreach (var item in items)
{
    UO.Print(UO.GetName(item) + " | stack: " + Convert.ToString(UO.FindCount(item)));
}

void BuildLoot()
{
    UO.ClearFindList("loot");
    UO.AddFindList("loot", 0x0EED, -1);
    UO.AddFindList("loot", 0x0F7A, -1);
}

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

2. Rechercher uniquement un article de la couleur souhaitée dans le sac à dos - fonction script

Paramètres et déroulement de l’exécution :

  • 0x0044 filtres hue ; ce n'est pas serial. backpack recherche le contenu direct du sac à dos. AddObject enregistre l'objet sélectionné sous un nom dans ce runtime.
return  RunScenario();
 object? RunScenario()
{
    UO.ClearFindList("colored");
    UO.AddFindList("colored", 0x0EED, 0x0044);
    var first = UO.FindList("colored", "backpack");
    if (Truth(first != ""))
    {
        UO.AddObject("colored_item", first);
    }

    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. Types de corps et valeurs de notoriété multiples – classe de script

Paramètres et déroulement de l’exécution :

  • Dans chaque entrée, la couleur manquante signifie n'importe quel hue. La ligne « 5|6 » autorise deux codes de notoriété ; ce filtre exclut les éléments réguliers. La recherche n'attaque ni ne lance Follow.
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.ClearFindList("watch");
        UO.AddFindList("watch", 0x0190);
        UO.AddFindList("watch", 0x0191);
        var nearby = UO.FindList("watch", "ground", 12, "5|6", true, 10);
        if (Truth(nearby != ""))
        {
            UO.AddObject("watched_mobile", nearby);
        }

        return null;
    }

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

Implémentation de la commande

C# distingue les majuscules. Utilisez le nom UO exact. Comparez les indicateurs numériques à 0 ; utilisez bool seulement si la signature renvoie bool.

UO.AddFindList(list, type) — UO.AddFindList(Any,Any)

Paramètres: list (Any), type (Any)

Résultat: void / Unit.

Pendant un appel:

Code interne de l’implémentation ; ce n’est pas un script autonome.

case "adddir":

                case "addfindlist":

                case "addgate":

                case "addrecall":

                case "addstep":

                    LegacyList(name).Add(string.Join("|", arguments.Select(value => value.ToString())));

                    break;

UO.AddFindList(list, type, color) — UO.AddFindList(Any,Any,Any)

Paramètres: list (Any), type (Any), color (Any)

Résultat: void / Unit.

Pendant un appel:

Code interne de l’implémentation ; ce n’est pas un script autonome.

case "adddir":

                case "addfindlist":

                case "addgate":

                case "addrecall":

                case "addstep":

                    LegacyList(name).Add(string.Join("|", arguments.Select(value => value.ToString())));

                    break;

UO.AddIgnoreList

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

Signatures C#

void UO.AddIgnoreList(object? list, object? @type);
void UO.AddIgnoreList(object? list, object? @type, object? color);

Prépare un ensemble nommé d'éléments qui doivent être ignorés lors de la recherche : par exemple, ne sélectionnez pas l'or ou ne sélectionnez pas les éléments d'une certaine couleur. La règle est spécifiée par type et hue, elle s'applique donc à tous les objets appropriés, y compris ceux qui sont apparus plus tard. Après le réglage, activez la numérotation via SelectIgnoreList.

Paramètres

  • list — Nom arbitraire non vide, par exemple "loot_skip". Le nom n'est pas sensible à la casse. Ce n'est pas le nom de l'élément, ni le conteneur serial, ni le nom de FindList.
  • type - Graphique/type d'un article ou body mobile. Par exemple, 0x0EED est de l'or, 0x0191 est un corps humain féminin. Nombre ou chaîne numérique ("0x0EED", "3821"); -1/autre négatif/0xFFFF - tout type. Les valeurs supérieures à 65535 ne sont pas autorisées. Pour plusieurs type, ajoutez plusieurs règles.
  • color - Teinte : 0 - non coloré uniquement, 0x0044 - exemple de couleur exacte ; négatif ou 0xFFFF - n'importe lequel. Les valeurs supérieures à 65535 ne sont pas autorisées. Dans Ajouter, la valeur par défaut est 1. Le type et hue au sein d'une même règle sont connectés par une condition AND ; règles différentes - OU.

Valeur de retour

void - aucune valeur. Utiliser sur une ligne séparée sans var result = et sans vérifier =true. La commande modifie le filtre local ; ne renvoie pas le nombre d'éléments et n'envoie rien au serveur.

Comportement

  • S'ajoute à la liste spécifiée par le PREMIER argument, quelle que soit la liste actuellement sélectionnée. Les paires répétées numériquement identiques ne sont pas dupliquées.
  • La liste nommée contient les règles graphic/type + hue, et la liste régulière Ignore contient la serial spécifique. Ce sont des filtres différents : ils sont combinés lorsque la recherche les prend en charge. Les objets restent visibles et accessibles pour diriger UseObject/MoveItem ; ce n'est pas Hide ou interdiction d'actions.
  • Le nom de la liste n'est pas sensible à la casse ; les espaces de bord sont supprimés. Une liste nommée est active, initialement par défaut. AddIgnoreList ne le sélectionne pas automatiquement. SelectIgnoreList("") désactive uniquement le filtre nommé.
  • Les règles s'appliquent aux nouvelles recherches, y compris aux éléments téléchargés APRÈS leur ajout. Le tableau déjà reçu et le résultat précédent FindCount ne sont recalculés qu'après une nouvelle recherche. Ne sélectionnez pas une liste avec la règle -1,-1 sauf si vous souhaitez tout exclure.
  • Le filtre prend en compte FindType/FindTypeEx/FindTypesArrayEx, FindList, FindAtCoord, FindNotoriety, Count/CountEx et les sélections étendues GetMobiles, GetWorldItems, UseType, WaitTarget, Attack/AttackNearest/FindMan. includeIgnored=true, le cas échéant, contourne à la fois serial et type/hue. L'énumération complète GetContent/GetEquipment, GetWorldItems() sans arguments, et l'énumération verbale FindMobile(humain, proche,...) n'utilisent pas ces règles.
  • GetIgnoreList renvoie uniquement serial explicitement ajouté ; les lignes de la liste nommée ne sont pas incluses dans ce tableau. IgnoreReset efface l'intégralité du filtre serial, IgnoreOff(serial) supprime une exception serial ; les règles nommées sont conservées. ClearIgnoreList() sans arguments efface les deux vues.
  • L'état appartient à l'état général des scripts du profil client ; le changement affecte les autres scripts ayant cet état. Les paramètres sont inclus dans l'instantané enregistré. Après avoir modifié les règles, un autre script peut déjà effectuer une recherche avec l'instantané précédemment pris - la prochaine recherche verra la mise à jour.

Scripts C# autonomes

Chaque exemple peut être enregistré dans un fichier séparé .csx et exécuté dans IDE. Les fonctions d'objet UO et d'attente fournissent l'hôte de la session de jeu en cours. Remplacez les noms, coordonnées et adresses de la démo serial par les vôtres.

Exemple simple

Exécutez ce code dans un fichier .csx séparé. Les arguments sont visibles dans l’appel ; remplacez les noms, serials et adresses d’exemple par les vôtres.

La commande forme une instruction séparée. Le message précédent indique le début de l’appel et ne confirme aucune action du serveur.

UO.Print("Calling UO.AddIgnoreList");
UO.AddIgnoreList("simple_skip", 0x0EED);

1. Évitez toutes les piles d'or lors de la recherche sur le terrain - script direct

Paramètres et déroulement de l’exécution :

  • loot_skip — définit le nom. La couleur manquante signifie n'importe quel hue. FindType renvoie la chaîne hexadécimale ID ou la chaîne vide ; ici, le résultat est stocké sous next_loot et l'élément n'est pas déplacé. La recherche d'un terrain peut également trouver mobile.
UO.AddIgnoreList("loot_skip", 0x0EED);
UO.SelectIgnoreList("loot_skip");
var item = UO.FindType(-1, -1, "ground");
if (Truth(item == ""))
{
    UO.Print("No unignored ground object found");
    return null;
}
UO.AddObject("next_loot", item);

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

2. Exclure une seule couleur de la robe - fonction script

Paramètres et déroulement de l’exécution :

  • Robes 0x1F03 - graphic ; 0x0044 est un exemple de couleur protégée. Robu d'une autre recherche hue le permet. Il s'agit d'une protection contre la sélection par recherche filtrante, et non contre le MoveItem direct par le ID connu.
return  RunScenario();
 object? RunScenario()
{
    UO.AddIgnoreList("keep_colored", 0x1F03, 0x0044);
    UO.SelectIgnoreList("keep_colored");
    var robe = UO.FindType(0x1F03, -1, "backpack");
    if (Truth(robe != ""))
    {
        UO.AddObject("candidate_robe", robe);
    }

    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. Créez deux ensembles indépendants et incluez-en un : la classe de script

Paramètres et déroulement de l’exécution :

  • Les règles sont stockées dans les deux listes. Pour exclure à la fois l'or et les robes, ajoutez les deux type à la même liste.
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.AddIgnoreList("skip_gold", 0x0EED);
        UO.AddIgnoreList("skip_robes", 0x1F03);
        UO.SelectIgnoreList("skip_gold");
        UO.SelectIgnoreList("skip_robes");
        return null;
    }
}

Implémentation de la commande

C# distingue les majuscules. Utilisez le nom UO exact. Comparez les indicateurs numériques à 0 ; utilisez bool seulement si la signature renvoie bool.

UO.AddIgnoreList(list, type) — UO.AddIgnoreList(Any,Any)

Paramètres: list (Any), type (Any)

Résultat: void / Unit.

Pendant un appel:

Code interne de l’implémentation ; ce n’est pas un script autonome.

case "addignorelist":

                    state.IgnoreTypeLists.Add(Text(0), ResolveType(arguments[1]),

                        arguments.Length > 2 ? NumberConversions.ToInt(arguments[2]) : -1);

                    break;

UO.AddIgnoreList(list, type, color) — UO.AddIgnoreList(Any,Any,Any)

Paramètres: list (Any), type (Any), color (Any)

Résultat: void / Unit.

Pendant un appel:

Code interne de l’implémentation ; ce n’est pas un script autonome.

case "addignorelist":

                    state.IgnoreTypeLists.Add(Text(0), ResolveType(arguments[1]),

                        arguments.Length > 2 ? NumberConversions.ToInt(arguments[2]) : -1);

                    break;

UO.ClearBadLocationList

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

Signatures C#

void UO.ClearBadLocationList();

Supprime toutes les paires enregistrées par SetBadLocation.

Paramètres

Il n'y a pas de paramètres.

Valeur de retour

void - aucune valeur de retour. Appelez sur une ligne séparée ; ce n'est pas true/false ou le nombre d'étapes.

Comportement

  • Ne change pas la carte, les personnages ou les obstacles sur le serveur. Seule la liste d'exécution de l'application est effacée.
  • Le tableau de chemins déjà reçu et l'instantané des interdictions de l'itinéraire en cours ne sont pas modifiés. Pour un nouveau résultat, répétez la demande de chemin ou recommencez le mouvement. La liste SetBadObject est effacée séparément.

Scripts C# autonomes

Chaque exemple peut être enregistré dans un fichier séparé .csx et exécuté dans IDE. Les fonctions d'objet UO et d'attente fournissent l'hôte de la session de jeu en cours. Remplacez les noms, coordonnées et adresses de la démo serial par les vôtres.

Exemple simple

Exécutez ce code dans un fichier .csx séparé. Les arguments sont visibles dans l’appel ; remplacez les noms, serials et adresses d’exemple par les vôtres.

La commande forme une instruction séparée. Le message précédent indique le début de l’appel et ne confirme aucune action du serveur.

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

1. Clear list - direct script

Paramètres et déroulement de l’exécution :

  • Il n'y a pas de paramètres.
  • Il n'y a pas de valeur de retour.
UO.ClearBadLocationList();

2. Démarrer un nouvel ensemble d'interdictions - fonction de script

Paramètres et déroulement de l’exécution :

  • Tout d'abord, les paires précédentes sont supprimées, puis une nouvelle est ajoutée.
  • Il ne s’agit pas d’un obstacle physique ni d’un changement de carte client.
return  RunScenario();
 object? RunScenario()
{
    UO.ClearBadLocationList();
    UO.SetBadLocation(1445, 1690);
    return null;
}

3. Répéter le calcul après le nettoyage - classe de scénario

Paramètres et déroulement de l’exécution :

  • L'objectif est de quatre cellules à l'est, Optimized=true, Accuracy=0.
  • Un tableau vide après l'effacement peut être dû à une obstruction courante ou à une limite de recherche.
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.ClearBadLocationList();
        var path = UO.GetPathArray(UO.GetX() + 4, UO.GetY(), true, 0);
        if (Truth(ArrayLength(path) == 0))
        {
            UO.Print("No complete path under current constraints");
        }

        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;
}

Implémentation de la commande

C# distingue les majuscules. Utilisez le nom UO exact. Comparez les indicateurs numériques à 0 ; utilisez bool seulement si la signature renvoie bool.

UO.ClearBadLocationList() — UO.ClearBadLocationList()

Paramètres: Aucun paramètre.

Résultat: void / Unit.

Pendant un appel:

Code interne de l’implémentation ; ce n’est pas un script autonome.

case "clearbadlocationlist": state.BadLocations.Clear(); return InjectionValue.Unit;

UO.ClearBadObjectList

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

Signatures C#

void UO.ClearBadObjectList();

Supprime toutes les règles type/hue/radius ajoutées par SetBadObject dans le runtime actuel.

Paramètres

Il n'y a pas de paramètres.

Valeur de retour

void - aucune valeur de retour. Appelez sur une ligne séparée ; ce n'est pas true/false ou le nombre d'étapes.

Comportement

  • Il n'y a pas de paramètres. Rappeler lorsque la liste est vide est sûr.
  • Ne nettoie pas SetBadLocation et n’élimine pas les obstructions naturelles. Une nouvelle demande de mouvement ou de chemin utilise la liste effacée ; l'itinéraire précédemment démarré enregistre son propre instantané.

Scripts C# autonomes

Chaque exemple peut être enregistré dans un fichier séparé .csx et exécuté dans IDE. Les fonctions d'objet UO et d'attente fournissent l'hôte de la session de jeu en cours. Remplacez les noms, coordonnées et adresses de la démo serial par les vôtres.

Exemple simple

Exécutez ce code dans un fichier .csx séparé. Les arguments sont visibles dans l’appel ; remplacez les noms, serials et adresses d’exemple par les vôtres.

La commande forme une instruction séparée. Le message précédent indique le début de l’appel et ne confirme aucune action du serveur.

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

1. Réinitialiser les règles d'article - Script direct

Paramètres et déroulement de l’exécution :

  • Il n’y a pas d’arguments ; l'appel est enregistré sur une ligne distincte.
  • Il n'y a aucun résultat true/false et il n'y a pas de nombre de règles supprimées.
UO.ClearBadObjectList();

2. Remplacer l'ensemble de règles - Fonction de script

Paramètres et déroulement de l’exécution :

  • Après l'effacement, seul type=0x398C de n'importe quelle couleur est ajouté.
  • Radius=2 exclut un carré 5×5 autour des éléments appropriés dans l'itinéraire suivant.
return  RunScenario();
 object? RunScenario()
{
    UO.ClearBadObjectList();
    UO.SetBadObject(0x398C, -1, 2);
    return null;
}

3. Recalculer le chemin après réinitialisation complète des interdictions d'application - classe de script

Paramètres et déroulement de l’exécution :

  • Les deux listes sont indépendantes : les deux commandes sont appelées pour réinitialiser les deux.
  • Les trois carrés à l’est sont un exemple de cible. La praticabilité de la carte, l'altitude et la limite de recherche sont préservées ; un tableau vide est toujours un résultat valide.
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.ClearBadObjectList();
        UO.ClearBadLocationList();
        var path = UO.GetPathArray(UO.GetX() + 3, UO.GetY(), true, 0);
        UO.Print(Convert.ToString(ArrayLength(path)));
        return null;
    }

    int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;
}

Implémentation de la commande

C# distingue les majuscules. Utilisez le nom UO exact. Comparez les indicateurs numériques à 0 ; utilisez bool seulement si la signature renvoie bool.

UO.ClearBadObjectList() — UO.ClearBadObjectList()

Paramètres: Aucun paramètre.

Résultat: void / Unit.

Pendant un appel:

Code interne de l’implémentation ; ce n’est pas un script autonome.

case "clearbadobjectlist": state.BadObjects.Clear(); return InjectionValue.Unit;

UO.ClearFindList

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

Signatures C#

void UO.ClearFindList();
void UO.ClearFindList(object? list);

Supprime les définitions d'un ensemble de recherche nommé ou de tous les ensembles AddFindList du runtime actuel. Utilisé avant de reconfigurer les filtres pour empêcher l’accumulation de règles.

Paramètres

  • list — Le nom de l'ensemble de règles, par exemple "butin". Passez la chaîne sans le | : ce caractère est utilisé comme séparateur au sein de l'enregistrement. Le nom n'est pas sensible à la casse. Il ne s'agit pas d'un conteneur serial ou d'un tableau d'éléments trouvés. Si l'argument est manquant, TOUTES les définitions de AddFindList dans ce runtime sont supprimées.

Valeur de retour

void : Aucune valeur de retour. N'attribuez pas l'appel à une variable et ne le testez pas sur true/1. L'état des définitions peut être déduit UO.InfoFindList() ; la recherche elle-même est lancée séparément via UO.FindList().

Comportement

  • Les définitions sont dans l'état d'exécution du script donné. Un autre environnement d'exécution indépendant possède son propre ensemble ; la fermeture de la fenêtre IDE n'efface pas ces règles. Il ne s'agit pas d'un fichier de paramètres ni d'une liste d'objets de jeu globaux.
  • AddFindList ajoute l'entrée à la fin ; les répétitions ne sont pas supprimées. Pour réapprovisionner votre kit, appelez d'abord ClearFindList("name"). La modification des définitions n'efface pas les FindItem/FindCount/GetFoundItems qui ont déjà été reçus.
  • L'enregistrement stocke les champs de texte. Le littéral numérique 0x0EED est stocké sous "3821", la chaîne "0x0EED" est stockée sous "0x0EED". La recherche convertit les deux options en nombre et DeleteFindList compare le texte stocké. Utilisez le même formulaire lors de l’ajout et de la suppression.
  • Le nom inconnu dans FindList n'est pas un ensemble enregistré vide : le moteur tente de l'analyser comme une liste de types numériques. Un nom non numérique provoque une erreur de conversion. Après avoir supprimé la dernière entrée, créez un nouvel ensemble avant de rechercher ce nom.
  • Un nom inexistant est en sécurité : rien n'est supprimé. La commande ne supprime pas les éléments du jeu, n'efface pas Ignore et n'annule pas le mouvement.

Scripts C# autonomes

Chaque exemple peut être enregistré dans un fichier séparé .csx et exécuté dans IDE. Les fonctions d'objet UO et d'attente fournissent l'hôte de la session de jeu en cours. Remplacez les noms, coordonnées et adresses de la démo serial par les vôtres.

Exemple simple

Exécutez ce code dans un fichier .csx séparé. Les arguments sont visibles dans l’appel ; remplacez les noms, serials et adresses d’exemple par les vôtres.

La commande forme une instruction séparée. Le message précédent indique le début de l’appel et ne confirme aucune action du serveur.

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

1. Reconfiguration d'un ensemble - script direct

Paramètres et déroulement de l’exécution :

  • À l’intérieur de BuildLoot, seul le butin est effacé. Les autres ensembles nommés de ce script sont conservés.
BuildLoot();
BuildLoot();
UO.InfoFindList();

void BuildLoot()
{
    UO.ClearFindList("loot");
    UO.AddFindList("loot", 0x0EED, -1);
    UO.AddFindList("loot", 0x0F7A, -1);
}

2. Remplacer l'ensemble saisonnier, conserver la fonction de script de rechange

Paramètres et déroulement de l’exécution :

  • Le registre SEASON n'est pas important. il reste des réserves ; en saison, il n'y a désormais que les nouveaux type/hue. Après le nettoyage, l'enregistrement est d'abord ajouté, puis la recherche par nom est autorisée.
return  RunScenario();
 object? RunScenario()
{
    UO.AddFindList("reserve", 0x0EED);
    UO.AddFindList("season", 0x0F7A);
    UO.ClearFindList("SEASON");
    UO.AddFindList("season", 0x0EED, 0x0044);
    UO.InfoFindList();
    return null;
}

3. Réinitialisation complète avant le nouveau mode script - classe de script

Paramètres et déroulement de l’exécution :

  • ClearFindList() affecte toutes les définitions du runtime actuel, donc un formulaire auto-nommé est généralement préférable pour une procédure de bibliothèque.
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.AddFindList("old_loot", 0x0EED);
        UO.AddFindList("old_watch", 0x0190);
        UO.AddFindList("old_watch", 0x0191);
        UO.ClearFindList();
        UO.AddFindList("current", 0x0F7A, -1);
        var found = UO.FindList("current", "backpack");
        if (Truth(found != ""))
        {
            UO.AddObject("current_supply", found);
        }

        return null;
    }

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

Implémentation de la commande

C# distingue les majuscules. Utilisez le nom UO exact. Comparez les indicateurs numériques à 0 ; utilisez bool seulement si la signature renvoie bool.

UO.ClearFindList() — UO.ClearFindList()

Paramètres: Aucun paramètre.

Résultat: void / Unit.

Pendant un appel:

Code interne de l’implémentation ; ce n’est pas un script autonome.

case "clearfindlist":

                    if (arguments.Length == 0) LegacyList("AddFindList").Clear();

                    else LegacyList("AddFindList").RemoveAll(value => value.Split('|')[0]

                        .Equals(Text(0), StringComparison.OrdinalIgnoreCase));

                    break;

UO.ClearFindList(list) — UO.ClearFindList(Any)

Paramètres: list (Any)

Résultat: void / Unit.

Pendant un appel:

Code interne de l’implémentation ; ce n’est pas un script autonome.

case "clearfindlist":

                    if (arguments.Length == 0) LegacyList("AddFindList").Clear();

                    else LegacyList("AddFindList").RemoveAll(value => value.Split('|')[0]

                        .Equals(Text(0), StringComparison.OrdinalIgnoreCase));

                    break;

UO.ClearIgnoreList

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

Signatures C#

void UO.ClearIgnoreList();
void UO.ClearIgnoreList(object? list);

Réinitialise les exceptions de recherche. Avec un nom - un seul ensemble type/hue. Aucun argument - tous les ensembles nommés et tous les serial ajoutés via Ignore. Il est utile de démarrer un nouveau tri avec des règles claires.

Paramètres

  • list — Nom arbitraire non vide, par exemple "loot_skip". Le nom n'est pas sensible à la casse. Ce n'est pas le nom de l'élément, ni le conteneur serial, ni le nom de FindList. Facultatif. Son absence signifie une réinitialisation générale, et pas seulement de la liste active.

Valeur de retour

void - aucune valeur. Utiliser sur une ligne séparée sans var result = et sans vérifier =true. La commande modifie le filtre local ; ne renvoie pas le nombre d'éléments et n'envoie rien au serveur.

Comportement

  • ClearIgnoreList("name") est équivalent en résultat à DeleteIgnoreList("name"). Une chaîne vide n'est pas autorisée ici ; pour désactiver sans supprimer, utilisez SelectIgnoreList("").
  • La liste nommée contient les règles graphic/type + hue, et la liste régulière Ignore contient la serial spécifique. Ce sont des filtres différents : ils sont combinés lorsque la recherche les prend en charge. Les objets restent visibles et accessibles pour diriger UseObject/MoveItem ; ce n'est pas Hide ou interdiction d'actions.
  • Le nom de la liste n'est pas sensible à la casse ; les espaces de bord sont supprimés. Une liste nommée est active, initialement par défaut. AddIgnoreList ne le sélectionne pas automatiquement. SelectIgnoreList("") désactive uniquement le filtre nommé.
  • Les règles s'appliquent aux nouvelles recherches, y compris aux éléments téléchargés APRÈS leur ajout. Le tableau déjà reçu et le résultat précédent FindCount ne sont recalculés qu'après une nouvelle recherche. Ne sélectionnez pas une liste avec la règle -1,-1 sauf si vous souhaitez tout exclure.
  • Le filtre prend en compte FindType/FindTypeEx/FindTypesArrayEx, FindList, FindAtCoord, FindNotoriety, Count/CountEx et les sélections étendues GetMobiles, GetWorldItems, UseType, WaitTarget, Attack/AttackNearest/FindMan. includeIgnored=true, le cas échéant, contourne à la fois serial et type/hue. L'énumération complète GetContent/GetEquipment, GetWorldItems() sans arguments, et l'énumération verbale FindMobile(humain, proche,...) n'utilisent pas ces règles.
  • GetIgnoreList renvoie uniquement serial explicitement ajouté ; les lignes de la liste nommée ne sont pas incluses dans ce tableau. IgnoreReset efface l'intégralité du filtre serial, IgnoreOff(serial) supprime une exception serial ; les règles nommées sont conservées. ClearIgnoreList() sans arguments efface les deux vues.
  • L'état appartient à l'état général des scripts du profil client ; le changement affecte les autres scripts ayant cet état. Les paramètres sont inclus dans l'instantané enregistré. Après avoir modifié les règles, un autre script peut déjà effectuer une recherche avec l'instantané précédemment pris - la prochaine recherche verra la mise à jour.

Scripts C# autonomes

Chaque exemple peut être enregistré dans un fichier séparé .csx et exécuté dans IDE. Les fonctions d'objet UO et d'attente fournissent l'hôte de la session de jeu en cours. Remplacez les noms, coordonnées et adresses de la démo serial par les vôtres.

Exemple simple

Exécutez ce code dans un fichier .csx séparé. Les arguments sont visibles dans l’appel ; remplacez les noms, serials et adresses d’exemple par les vôtres.

La commande forme une instruction séparée. Le message précédent indique le début de l’appel et ne confirme aucune action du serveur.

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

1. Effacer l'ensemble temporaire, conserver le reste - script direct

Paramètres et déroulement de l’exécution :

  • Supprimé temporairement, Keep continue d'exclure les robes. La liste régulière serial n'est pas effacée.
UO.AddIgnoreList("temporary", 0x0EED);
UO.AddIgnoreList("keep", 0x1F03);
UO.ClearIgnoreList("temporary");
UO.SelectIgnoreList("keep");

2. Démarrer la recherche sans exceptions précédentes - fonction de script

Paramètres et déroulement de l’exécution :

  • Sans arguments, les deux types d'exceptions sont levées. Les anciennes variables/tableaux ne sont pas effacés. Le nouveau FindType régénère le résultat.
return  RunScenario();
 object? RunScenario()
{
    UO.ClearIgnoreList();
    var item = UO.FindType(0x0EED, -1, "ground");
    if (Truth(item != ""))
    {
        UO.AddObject("fresh_gold", item);
    }

    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. Remplacer le contenu de l'ensemble - Classe de script

Paramètres et déroulement de l’exécution :

  • Les anciennes règles de tri ont été supprimées avant que de nouvelles soient ajoutées : tout l'or et uniquement la coloration 0x0044 sur la robe. Entre des commandes distinctes, un autre script peut voir un état intermédiaire.
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.ClearIgnoreList("sorting");
        UO.AddIgnoreList("sorting", 0x0EED);
        UO.AddIgnoreList("sorting", 0x1F03, 0x0044);
        UO.SelectIgnoreList("sorting");
        return null;
    }
}

Implémentation de la commande

C# distingue les majuscules. Utilisez le nom UO exact. Comparez les indicateurs numériques à 0 ; utilisez bool seulement si la signature renvoie bool.

UO.ClearIgnoreList() — UO.ClearIgnoreList()

Paramètres: Aucun paramètre.

Résultat: void / Unit.

Pendant un appel:

Code interne de l’implémentation ; ce n’est pas un script autonome.

case "clearignorelist":

                    if (arguments.Length == 0)

                    {

                        IgnoreReset();

                        state.IgnoreTypeLists.Clear();

                    }

                    else

                        state.IgnoreTypeLists.Remove(Text(0));

                    break;

UO.ClearIgnoreList(list) — UO.ClearIgnoreList(Any)

Paramètres: list (Any)

Résultat: void / Unit.

Pendant un appel:

Code interne de l’implémentation ; ce n’est pas un script autonome.

case "clearignorelist":

                    if (arguments.Length == 0)

                    {

                        IgnoreReset();

                        state.IgnoreTypeLists.Clear();

                    }

                    else

                        state.IgnoreTypeLists.Remove(Text(0));

                    break;

UO.Count

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

Signatures C#

int UO.Count(object? @type);
int UO.Count(object? @type, object? color);
int UO.Count(object? @type, object? color, object? container);

Effectue une recherche et résume les unités des éléments trouvés.

Paramètres

  • type - Graphique/type d'un élément (par exemple 0x0EED), pas serial. -1 ou 0xFFFF - n'importe quel type.
  • color — Teinte de l'élément ; -1 ou 0xFFFF - n'importe quelle couleur. Dans Count(type) et CountGround(type), la valeur par défaut est 1.
  • container - Dans Count(type,color,container) : my ou numérique -1 - tous les éléments dont le propriétaire racine est self (y compris l'équipement et les sacs imbriqués) ; backpack/serial — le contenu du conteneur spécifié est récursif ; UO.Ground(), explicite 0/"0", ground ou 1 - objets et Mobile au sol. Dans CountEx, les numériques -1 et 0xFFFFFFFF signifient également le sol, mais le concret serial ne signifie que le contenu direct. CountEx prend backpack et nomme AddObject ; un nom inconnu provoque une erreur de script. Vérifiez le serial résultant avant d'appeler : un null explicite sélectionne le sol plutôt que le conteneur manquant.

Valeur de retour

int — somme max(1, Montant) des éléments trouvés ; Chaque mobile ajoute 1. 0 aucune correspondance. Il s'agit du nombre d'unités et non du nombre de piles. FindItem, FindCount, FindFullQuantity et GetFoundItems sont mis à jour en même temps.

Comportement

  • Count, avec un ou deux arguments, recherche les éléments appartenant à self, y compris l'équipement et les sacs imbriqués. CountGround recherche toujours un terrain, y compris les mobiles correspondants, mais excluant self.
  • Count(type,color,serial) contourne les sacs imbriqués, CountEx(type,color,serial) - uniquement le contenu direct. Les contraintes FindDistance/FindVertical s'appliquent au terrain ; Ignore s'applique aux objets trouvés.
  • Le résultat dépend du contenu des conteneurs déjà reçus. Il n’y a pas d’ouverture automatique ni de demande de serveur pour un inventaire complet.

Scripts C# autonomes

Chaque exemple peut être enregistré dans un fichier séparé .csx et exécuté dans IDE. Les fonctions d'objet UO et d'attente fournissent l'hôte de la session de jeu en cours. Remplacez les noms, coordonnées et adresses de la démo serial par les vôtres.

Exemple simple

Exécutez ce code dans un fichier .csx séparé. Les arguments sont visibles dans l’appel ; remplacez les noms, serials et adresses d’exemple par les vôtres.

Le résultat d’un seul appel est affiché dans le journal. Un nombre n’est pas converti en bool ; un tableau est affiché par son nombre d’éléments.

var result = UO.Count(0x0EED, -1, "backpack");
UO.Print("Count: " + Convert.ToString(result));

1. Calculer les unités d'or - script direct

Paramètres et déroulement de l’exécution :

  • type=0x0EED, couleur=-1. Zone - sac à dos ; considérons la différence de récursivité Count/CountEx.
  • Un pied de 1000 dast unités = 1000, pas 1.
var units = UO.Count(0x0EED, -1, "backpack");
UO.Print("Units: " + Convert.ToString(units));

2. Afficher les unités et le nombre d'objets séparément - Fonction de script

Paramètres et déroulement de l’exécution :

  • FindCount est lu immédiatement après Count, avant une autre recherche.
  • Deux piles de 50 donnent des objets 2 et des unités 100.
return  RunScenario();
 object? RunScenario()
{
    var units = UO.Count(0x0EED, -1, "backpack");
    var items = UO.FindCount();
    UO.Print(Convert.ToString(items) + " items, " + Convert.ToString(units) + " units");
    return null;
}

3. Continuer seulement s'il y a suffisamment de quantité - classe de scénario

Paramètres et déroulement de l’exécution :

  • 100 est le seuil d'unités dans cet exemple.
  • Il s'agit d'une vérification instantanée et non d'une réservation d'articles. Les quantités peuvent changer entre la révision et le transfert.
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 units = UO.Count(0x0EED, -1, "backpack");
        if (Truth(units >= 100))
        {
            UO.Print("Enough units known to the client");
        }
        else
        {
            UO.Print("Not enough known units");
        }

        return null;
    }

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

Implémentation de la commande

C# distingue les majuscules. Utilisez le nom UO exact. Comparez les indicateurs numériques à 0 ; utilisez bool seulement si la signature renvoie bool.

UO.Count(type) — UO.Count(Any)

Paramètres: type (Any)

Résultat: int / Integer.

Pendant un appel:

Code interne de l’implémentation ; ce n’est pas un script autonome.

public int Count(InjectionValue type) 

            => Count(ResolveType(type), -1, -1);

UO.Count(type, color) — UO.Count(Any,Any)

Paramètres: type (Any), color (Any)

Résultat: int / Integer.

Pendant un appel:

Code interne de l’implémentation ; ce n’est pas un script autonome.

public int Count(InjectionValue type, InjectionValue color) 

            => Count(ResolveType(type), NumberConversions.ToInt(color), 0);

UO.Count(type, color, container) — UO.Count(Any,Any,Any)

Paramètres: type (Any), color (Any), container (Any)

Résultat: int / Integer.

Pendant un appel:

Code interne de l’implémentation ; ce n’est pas un script autonome.

public int Count(InjectionValue type, InjectionValue color, InjectionValue container)

            => Count(ResolveType(type), NumberConversions.ToInt(color), ConvertContainer(container));

UO.CountEx

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

Signatures C#

int UO.CountEx(object? objType, object? color, object? container);

Effectue une recherche et résume les unités des éléments trouvés.

Paramètres

  • objType - Graphique/type d'un élément (par exemple 0x0EED), pas serial. -1 ou 0xFFFF - n'importe quel type.
  • color — Teinte de l'élément ; -1 ou 0xFFFF - n'importe quelle couleur. Dans Count(type) et CountGround(type), la valeur par défaut est 1.
  • container - Dans Count(type,color,container) : my ou numérique -1 - tous les éléments dont le propriétaire racine est self (y compris l'équipement et les sacs imbriqués) ; backpack/serial — le contenu du conteneur spécifié est récursif ; UO.Ground(), explicite 0/"0", ground ou 1 - objets et Mobile au sol. Dans CountEx, les numériques -1 et 0xFFFFFFFF signifient également le sol, mais le concret serial ne signifie que le contenu direct. CountEx prend backpack et nomme AddObject ; un nom inconnu provoque une erreur de script. Vérifiez le serial résultant avant d'appeler : un null explicite sélectionne le sol plutôt que le conteneur manquant.

Valeur de retour

int — somme max(1, Montant) des éléments trouvés ; Chaque mobile ajoute 1. 0 aucune correspondance. Il s'agit du nombre d'unités et non du nombre de piles. FindItem, FindCount, FindFullQuantity et GetFoundItems sont mis à jour en même temps.

Comportement

  • Count, avec un ou deux arguments, recherche les éléments appartenant à self, y compris l'équipement et les sacs imbriqués. CountGround recherche toujours un terrain, y compris les mobiles correspondants, mais excluant self.
  • Count(type,color,serial) contourne les sacs imbriqués, CountEx(type,color,serial) - uniquement le contenu direct. Les contraintes FindDistance/FindVertical s'appliquent au terrain ; Ignore s'applique aux objets trouvés.
  • Le résultat dépend du contenu des conteneurs déjà reçus. Il n’y a pas d’ouverture automatique ni de demande de serveur pour un inventaire complet.

Scripts C# autonomes

Chaque exemple peut être enregistré dans un fichier séparé .csx et exécuté dans IDE. Les fonctions d'objet UO et d'attente fournissent l'hôte de la session de jeu en cours. Remplacez les noms, coordonnées et adresses de la démo serial par les vôtres.

Exemple simple

Exécutez ce code dans un fichier .csx séparé. Les arguments sont visibles dans l’appel ; remplacez les noms, serials et adresses d’exemple par les vôtres.

Le résultat d’un seul appel est affiché dans le journal. Un nombre n’est pas converti en bool ; un tableau est affiché par son nombre d’éléments.

var result = UO.CountEx(0x0EED, -1, "backpack");
UO.Print("CountEx: " + Convert.ToString(result));

1. Calculer les unités d'or - script direct

Paramètres et déroulement de l’exécution :

  • type=0x0EED, couleur=-1. Zone - sac à dos ; considérons la différence de récursivité Count/CountEx.
  • Un pied de 1000 dast unités = 1000, pas 1.
var units = UO.CountEx(0x0EED, -1, "backpack");
UO.Print("Units: " + Convert.ToString(units));

2. Afficher les unités et le nombre d'objets séparément - Fonction de script

Paramètres et déroulement de l’exécution :

  • FindCount est lu immédiatement après Count, avant une autre recherche.
  • Deux piles de 50 donnent des objets 2 et des unités 100.
return  RunScenario();
 object? RunScenario()
{
    var units = UO.CountEx(0x0EED, -1, "backpack");
    var items = UO.FindCount();
    UO.Print(Convert.ToString(items) + " items, " + Convert.ToString(units) + " units");
    return null;
}

3. Continuer seulement s'il y a suffisamment de quantité - classe de scénario

Paramètres et déroulement de l’exécution :

  • 100 est le seuil d'unités dans cet exemple.
  • Il s'agit d'une vérification instantanée et non d'une réservation d'articles. Les quantités peuvent changer entre la révision et le transfert.
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 units = UO.CountEx(0x0EED, -1, "backpack");
        if (Truth(units >= 100))
        {
            UO.Print("Enough units known to the client");
        }
        else
        {
            UO.Print("Not enough known units");
        }

        return null;
    }

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

Implémentation de la commande

C# distingue les majuscules. Utilisez le nom UO exact. Comparez les indicateurs numériques à 0 ; utilisez bool seulement si la signature renvoie bool.

UO.CountEx(objType, color, container) — UO.CountEx(Any,Any,Any)

Paramètres: objType (Any), color (Any), container (Any)

Résultat: int / Integer.

Pendant un appel:

Code interne de l’implémentation ; ce n’est pas un script autonome.

case "countex":

                    bridge.FindType(ResolveType(arguments[0]), Arg(1), StealthContainer(2), -1, false);

                    return new InjectionValue(bridge.FindFullQuantity());

UO.CountGround

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

Signatures C#

int UO.CountGround(object? @type);
int UO.CountGround(object? @type, object? color);

Effectue une recherche et résume les unités des éléments trouvés.

Paramètres

  • type - Graphique/type d'un élément (par exemple 0x0EED), pas serial. -1 ou 0xFFFF - n'importe quel type.
  • color — Teinte de l'élément ; -1 ou 0xFFFF - n'importe quelle couleur. Dans Count(type) et CountGround(type), la valeur par défaut est 1.

Valeur de retour

int — somme max(1, Montant) des éléments trouvés ; Chaque mobile ajoute 1. 0 aucune correspondance. Il s'agit du nombre d'unités et non du nombre de piles. FindItem, FindCount, FindFullQuantity et GetFoundItems sont mis à jour en même temps.

Comportement

  • Count, avec un ou deux arguments, recherche les éléments appartenant à self, y compris l'équipement et les sacs imbriqués. CountGround recherche toujours un terrain, y compris les mobiles correspondants, mais excluant self.
  • Count(type,color,serial) contourne les sacs imbriqués, CountEx(type,color,serial) - uniquement le contenu direct. Les contraintes FindDistance/FindVertical s'appliquent au terrain ; Ignore s'applique aux objets trouvés.
  • Le résultat dépend du contenu des conteneurs déjà reçus. Il n’y a pas d’ouverture automatique ni de demande de serveur pour un inventaire complet.

Scripts C# autonomes

Chaque exemple peut être enregistré dans un fichier séparé .csx et exécuté dans IDE. Les fonctions d'objet UO et d'attente fournissent l'hôte de la session de jeu en cours. Remplacez les noms, coordonnées et adresses de la démo serial par les vôtres.

Exemple simple

Exécutez ce code dans un fichier .csx séparé. Les arguments sont visibles dans l’appel ; remplacez les noms, serials et adresses d’exemple par les vôtres.

Le résultat d’un seul appel est affiché dans le journal. Un nombre n’est pas converti en bool ; un tableau est affiché par son nombre d’éléments.

var result = UO.CountGround(0x0EED, -1);
UO.Print("CountGround: " + Convert.ToString(result));

1. Calculer les unités d'or - script direct

Paramètres et déroulement de l’exécution :

  • type=0x0EED, couleur=-1. La zone est le terrain à côté du personnage.
  • Un pied de 1000 dast unités = 1000, pas 1.
var units = UO.CountGround(0x0EED, -1);
UO.Print("Units: " + Convert.ToString(units));

2. Afficher les unités et le nombre d'objets séparément - Fonction de script

Paramètres et déroulement de l’exécution :

  • FindCount est lu immédiatement après Count, avant une autre recherche.
  • Deux piles de 50 donnent des objets 2 et des unités 100.
return  RunScenario();
 object? RunScenario()
{
    var units = UO.CountGround(0x0EED, -1);
    var items = UO.FindCount();
    UO.Print(Convert.ToString(items) + " items, " + Convert.ToString(units) + " units");
    return null;
}

3. Continuer seulement s'il y a suffisamment de quantité - classe de scénario

Paramètres et déroulement de l’exécution :

  • 100 est le seuil d'unités dans cet exemple.
  • Il s'agit d'une vérification instantanée et non d'une réservation d'articles. Les quantités peuvent changer entre la révision et le transfert.
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 units = UO.CountGround(0x0EED, -1);
        if (Truth(units >= 100))
        {
            UO.Print("Enough units known to the client");
        }
        else
        {
            UO.Print("Not enough known units");
        }

        return null;
    }

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

Implémentation de la commande

C# distingue les majuscules. Utilisez le nom UO exact. Comparez les indicateurs numériques à 0 ; utilisez bool seulement si la signature renvoie bool.

UO.CountGround(type) — UO.CountGround(Any)

Paramètres: type (Any)

Résultat: int / Integer.

Pendant un appel:

Code interne de l’implémentation ; ce n’est pas un script autonome.

public int CountGround(InjectionValue type)

            => CountGround(type, new InjectionValue(-1));

UO.CountGround(type, color) — UO.CountGround(Any,Any)

Paramètres: type (Any), color (Any)

Résultat: int / Integer.

Pendant un appel:

Code interne de l’implémentation ; ce n’est pas un script autonome.

public int CountGround(InjectionValue type, InjectionValue color)

            => bridge.Count(ResolveType(type), NumberConversions.ToInt(color), 1);

UO.DeleteFindList

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

Signatures C#

void UO.DeleteFindList(object? list);
void UO.DeleteFindList(object? list, object? @type);
void UO.DeleteFindList(object? list, object? @type, object? color);

Supprime toutes les définitions qui correspondent au préfixe list, list/type ou list/type/color spécifié. Vous permet de supprimer un type d'élément ou un hue spécifique, tout en conservant le reste des règles définies.

Paramètres

  • list — Le nom de l'ensemble de règles, par exemple "butin". Passez la chaîne sans le | : ce caractère est utilisé comme séparateur au sein de l'enregistrement. Le nom n'est pas sensible à la casse. Il ne s'agit pas d'un conteneur serial ou d'un tableau d'éléments trouvés.
  • type - Graphique/type d'un élément ou body mobile, pas son serial. Généralement int 0..65535, y compris 0x0EED ; -1 ou 0xFFFF signifie n'importe quel type lors de la recherche. Fournissez une valeur par entrée. Plusieurs types sont ajoutés par des appels séparés. Pour supprimer, le texte du champ est comparé ; sauter supprime toutes les entrées de nom.
  • color — Teinte d'un objet/corps, pas RGB. int 0..65535; 0 - régulier hue 0, -1 ou 0xFFFF - n'importe lequel. Dans AddFindList, sauter la couleur signifie n'importe quel hue lors de la recherche. Pour la suppression, il s'agit d'un champ littéral, pas d'un caractère générique : -1 supprime uniquement les entrées avec -1 explicitement stockées. L'omission de la couleur supprime toutes les entrées de liste/type indépendamment de hue.

Valeur de retour

void : Aucune valeur de retour. N'attribuez pas l'appel à une variable et ne le testez pas sur true/1. L'état des définitions peut être déduit UO.InfoFindList() ; la recherche elle-même est lancée séparément via UO.FindList().

Comportement

  • Les définitions sont dans l'état d'exécution du script donné. Un autre environnement d'exécution indépendant possède son propre ensemble ; la fermeture de la fenêtre IDE n'efface pas ces règles. Il ne s'agit pas d'un fichier de paramètres ni d'une liste d'objets de jeu globaux.
  • AddFindList ajoute l'entrée à la fin ; les répétitions ne sont pas supprimées. Pour réapprovisionner votre kit, appelez d'abord ClearFindList("name"). La modification des définitions n'efface pas les FindItem/FindCount/GetFoundItems qui ont déjà été reçus.
  • L'enregistrement stocke les champs de texte. Le littéral numérique 0x0EED est stocké sous "3821", la chaîne "0x0EED" est stockée sous "0x0EED". La recherche convertit les deux options en nombre et DeleteFindList compare le texte stocké. Utilisez le même formulaire lors de l’ajout et de la suppression.
  • Le nom inconnu dans FindList n'est pas un ensemble enregistré vide : le moteur tente de l'analyser comme une liste de types numériques. Un nom non numérique provoque une erreur de conversion. Après avoir supprimé la dernière entrée, créez un nouvel ensemble avant de rechercher ce nom.
  • DeleteFindList(list,type,-1) ne supprime pas l'enregistrement à deux paramètres AddFindList(list,type) : il ne possède pas de troisième champ. Les doublons correspondants sont tous supprimés ; une correspondance inexistante ne change rien.

Scripts C# autonomes

Chaque exemple peut être enregistré dans un fichier séparé .csx et exécuté dans IDE. Les fonctions d'objet UO et d'attente fournissent l'hôte de la session de jeu en cours. Remplacez les noms, coordonnées et adresses de la démo serial par les vôtres.

Exemple simple

Exécutez ce code dans un fichier .csx séparé. Les arguments sont visibles dans l’appel ; remplacez les noms, serials et adresses d’exemple par les vôtres.

La commande forme une instruction séparée. Le message précédent indique le début de l’appel et ne confirme aucune action du serveur.

UO.AddFindList("simple_loot", 0x0EED);
UO.Print("Calling UO.DeleteFindList");
UO.DeleteFindList("simple_loot");

1. Exclure toutes les couleurs du même type - script direct

Paramètres et déroulement de l’exécution :

  • Deux arguments suppriment les deux entrées dorées : à la fois hue et hue 0x0044.
UO.ClearFindList("loot");
UO.AddFindList("loot", 0x0EED, -1);
UO.AddFindList("loot", 0x0EED, 0x0044);
UO.AddFindList("loot", 0x0F7A);
UO.DeleteFindList("loot", 0x0EED);
var found = UO.FindList("loot", "backpack");
if (Truth(found != ""))
{
    UO.AddObject("remaining_supply", found);
}

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

2. Supprimez un seul hue - fonction de script

Paramètres et déroulement de l’exécution :

  • Trois arguments : couleurs, graphic or, spécifique hue. Il ne reste plus que hue 0. Dans d'autres ensembles, ce graphic n'est pas supprimé.
return  RunScenario();
 object? RunScenario()
{
    UO.ClearFindList("colors");
    UO.AddFindList("colors", 0x0EED, 0);
    UO.AddFindList("colors", 0x0EED, 0x0044);
    UO.DeleteFindList("colors", 0x0EED, 0x0044);
    UO.InfoFindList();
    return null;
}

3. Supprimer l'ensemble entier et créer un remplacement - Classe de script

Paramètres et déroulement de l’exécution :

  • Un argument supprime toutes les anciennes entrées. Si les règles ont été spécifiées par la ligne "0x0190", supprimez-les avec la même ligne ou supprimez l'ensemble par son nom.
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.AddFindList("old", 0x0190);
        UO.AddFindList("old", 0x0191);
        UO.DeleteFindList("OLD");
        UO.AddFindList("new_watch", 0x0190, -1);
        UO.AddFindList("new_watch", 0x0191, -1);
        UO.InfoFindList();
        return null;
    }
}

Implémentation de la commande

C# distingue les majuscules. Utilisez le nom UO exact. Comparez les indicateurs numériques à 0 ; utilisez bool seulement si la signature renvoie bool.

UO.DeleteFindList(list) — UO.DeleteFindList(Any)

Paramètres: list (Any)

Résultat: void / Unit.

Pendant un appel:

Code interne de l’implémentation ; ce n’est pas un script autonome.

case "deletefindlist":

                    LegacyList("AddFindList").RemoveAll(value => LegacyListEntryMatches(value,

                        arguments));

                    break;

UO.DeleteFindList(list, type) — UO.DeleteFindList(Any,Any)

Paramètres: list (Any), type (Any)

Résultat: void / Unit.

Pendant un appel:

Code interne de l’implémentation ; ce n’est pas un script autonome.

case "deletefindlist":

                    LegacyList("AddFindList").RemoveAll(value => LegacyListEntryMatches(value,

                        arguments));

                    break;

UO.DeleteFindList(list, type, color) — UO.DeleteFindList(Any,Any,Any)

Paramètres: list (Any), type (Any), color (Any)

Résultat: void / Unit.

Pendant un appel:

Code interne de l’implémentation ; ce n’est pas un script autonome.

case "deletefindlist":

                    LegacyList("AddFindList").RemoveAll(value => LegacyListEntryMatches(value,

                        arguments));

                    break;

UO.DeleteIgnoreList

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

Signatures C#

void UO.DeleteIgnoreList(object? list);
void UO.DeleteIgnoreList(object? list, object? @type);
void UO.DeleteIgnoreList(object? list, object? @type, object? color);

Supprime l'intégralité du filtre nommé ou les règles sélectionnées qu'il contient. À utiliser lorsqu'un type ou un hue particulier doit être autorisé à nouveau dans la recherche, en conservant les autres exceptions.

Paramètres

  • list — Nom arbitraire non vide, par exemple "loot_skip". Le nom n'est pas sensible à la casse. Ce n'est pas le nom de l'élément, ni le conteneur serial, ni le nom de FindList.
  • type - Graphique/type d'un article ou body mobile. Par exemple, 0x0EED est de l'or, 0x0191 est un corps humain féminin. Nombre ou chaîne numérique ("0x0EED", "3821"); -1/autre négatif/0xFFFF - tout type. Les valeurs supérieures à 65535 ne sont pas autorisées. Pour plusieurs type, ajoutez plusieurs règles. S'il n'est pas transféré, supprimez toute la liste ; si elles sont adoptées sans couleur, toutes les règles sont exactement celles-ci type.
  • color - Teinte : 0 - non coloré uniquement, 0x0044 - exemple de couleur exacte ; négatif ou 0xFFFF - n'importe lequel. Les valeurs supérieures à 65535 ne sont pas autorisées. Dans Ajouter, la valeur par défaut est 1. Le type et hue au sein d'une même règle sont connectés par une condition AND ; règles différentes - OU. Lors de la suppression, définit le masque de règle exact ; -1 supprime la règle "n'importe quelle couleur" plutôt que toutes les couleurs individuelles.

Valeur de retour

void - aucune valeur. Utiliser sur une ligne séparée sans var result = et sans vérifier =true. La commande modifie le filtre local ; ne renvoie pas le nombre d'éléments et n'envoie rien au serveur.

Comportement

  • Le nombre 3821 et la chaîne "0x0EED" indiquent un type. Supprimer une règle inexistante ne change rien. Le nom de la liste sélectionnée est conservé même si la liste elle-même est supprimée ; il devient vide.
  • La liste nommée contient les règles graphic/type + hue, et la liste régulière Ignore contient la serial spécifique. Ce sont des filtres différents : ils sont combinés lorsque la recherche les prend en charge. Les objets restent visibles et accessibles pour diriger UseObject/MoveItem ; ce n'est pas Hide ou interdiction d'actions.
  • Le nom de la liste n'est pas sensible à la casse ; les espaces de bord sont supprimés. Une liste nommée est active, initialement par défaut. AddIgnoreList ne le sélectionne pas automatiquement. SelectIgnoreList("") désactive uniquement le filtre nommé.
  • Les règles s'appliquent aux nouvelles recherches, y compris aux éléments téléchargés APRÈS leur ajout. Le tableau déjà reçu et le résultat précédent FindCount ne sont recalculés qu'après une nouvelle recherche. Ne sélectionnez pas une liste avec la règle -1,-1 sauf si vous souhaitez tout exclure.
  • Le filtre prend en compte FindType/FindTypeEx/FindTypesArrayEx, FindList, FindAtCoord, FindNotoriety, Count/CountEx et les sélections étendues GetMobiles, GetWorldItems, UseType, WaitTarget, Attack/AttackNearest/FindMan. includeIgnored=true, le cas échéant, contourne à la fois serial et type/hue. L'énumération complète GetContent/GetEquipment, GetWorldItems() sans arguments, et l'énumération verbale FindMobile(humain, proche,...) n'utilisent pas ces règles.
  • GetIgnoreList renvoie uniquement serial explicitement ajouté ; les lignes de la liste nommée ne sont pas incluses dans ce tableau. IgnoreReset efface l'intégralité du filtre serial, IgnoreOff(serial) supprime une exception serial ; les règles nommées sont conservées. ClearIgnoreList() sans arguments efface les deux vues.
  • L'état appartient à l'état général des scripts du profil client ; le changement affecte les autres scripts ayant cet état. Les paramètres sont inclus dans l'instantané enregistré. Après avoir modifié les règles, un autre script peut déjà effectuer une recherche avec l'instantané précédemment pris - la prochaine recherche verra la mise à jour.

Scripts C# autonomes

Chaque exemple peut être enregistré dans un fichier séparé .csx et exécuté dans IDE. Les fonctions d'objet UO et d'attente fournissent l'hôte de la session de jeu en cours. Remplacez les noms, coordonnées et adresses de la démo serial par les vôtres.

Exemple simple

Exécutez ce code dans un fichier .csx séparé. Les arguments sont visibles dans l’appel ; remplacez les noms, serials et adresses d’exemple par les vôtres.

La commande forme une instruction séparée. Le message précédent indique le début de l’appel et ne confirme aucune action du serveur.

UO.AddIgnoreList("simple_skip", 0x0EED);
UO.Print("Calling UO.DeleteIgnoreList");
UO.DeleteIgnoreList("simple_skip");

1. Supprimer l'ensemble entier - script direct

Paramètres et déroulement de l’exécution :

  • Seul le temporaire est supprimé. Les autres listes et Ignore(serial) sont conservées.
UO.AddIgnoreList("temporary", 0x0EED);
UO.SelectIgnoreList("temporary");
UO.DeleteIgnoreList("temporary");
var gold = UO.FindType(0x0EED, -1, "ground");

2. Autoriser toutes les colorations du même type - fonction script

Paramètres et déroulement de l’exécution :

  • Les deux règles vestimentaires ont été supprimées, mais la règle d’or demeure. La règle générale -1,type-any d'un autre type, si elle est ajoutée, n'est pas elle-même supprimée.
return  RunScenario();
 object? RunScenario()
{
    UO.AddIgnoreList("sort", 0x1F03, 0);
    UO.AddIgnoreList("sort", 0x1F03, 0x0044);
    UO.AddIgnoreList("sort", 0x0EED);
    UO.DeleteIgnoreList("sort", 0x1F03);
    UO.SelectIgnoreList("sort");
    return null;
}

3. Supprimer la règle de couleur exacte uniquement - Classe de script

Paramètres et déroulement de l’exécution :

  • 68 = 0x0044 : les formes numériques sont les mêmes. Les robes non teintes restent exclues. S'il existe également une règle de ce type avec hue=-1, elle continuera à exclure la couleur 68.
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.AddIgnoreList("robes", 0x1F03, 0);
        UO.AddIgnoreList("robes", 0x1F03, 0x0044);
        UO.DeleteIgnoreList("robes", "0x1F03", 68);
        UO.SelectIgnoreList("robes");
        var robe = UO.FindType(0x1F03, 0x0044, "backpack");
        return null;
    }
}

Implémentation de la commande

C# distingue les majuscules. Utilisez le nom UO exact. Comparez les indicateurs numériques à 0 ; utilisez bool seulement si la signature renvoie bool.

UO.DeleteIgnoreList(list) — UO.DeleteIgnoreList(Any)

Paramètres: list (Any)

Résultat: void / Unit.

Pendant un appel:

Code interne de l’implémentation ; ce n’est pas un script autonome.

case "deleteignorelist":

                    state.IgnoreTypeLists.Remove(Text(0), arguments.Length > 1 ? ResolveType(arguments[1]) : (int?)null,

                        arguments.Length > 2 ? NumberConversions.ToInt(arguments[2]) : (int?)null);

                    break;

UO.DeleteIgnoreList(list, type) — UO.DeleteIgnoreList(Any,Any)

Paramètres: list (Any), type (Any)

Résultat: void / Unit.

Pendant un appel:

Code interne de l’implémentation ; ce n’est pas un script autonome.

case "deleteignorelist":

                    state.IgnoreTypeLists.Remove(Text(0), arguments.Length > 1 ? ResolveType(arguments[1]) : (int?)null,

                        arguments.Length > 2 ? NumberConversions.ToInt(arguments[2]) : (int?)null);

                    break;

UO.DeleteIgnoreList(list, type, color) — UO.DeleteIgnoreList(Any,Any,Any)

Paramètres: list (Any), type (Any), color (Any)

Résultat: void / Unit.

Pendant un appel:

Code interne de l’implémentation ; ce n’est pas un script autonome.

case "deleteignorelist":

                    state.IgnoreTypeLists.Remove(Text(0), arguments.Length > 1 ? ResolveType(arguments[1]) : (int?)null,

                        arguments.Length > 2 ? NumberConversions.ToInt(arguments[2]) : (int?)null);

                    break;

UO.FindAnyType

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

Signatures C#

int UO.FindAnyType(object? distance, object? @type);
int UO.FindAnyType(object? distance, object? @type, object? type2);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17, object? type18);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17, object? type18, object? type19);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17, object? type18, object? type19, object? type20);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17, object? type18, object? type19, object? type20, object? type21);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17, object? type18, object? type19, object? type20, object? type21, object? type22);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17, object? type18, object? type19, object? type20, object? type21, object? type22, object? type23);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17, object? type18, object? type19, object? type20, object? type21, object? type22, object? type23, object? type24);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17, object? type18, object? type19, object? type20, object? type21, object? type22, object? type23, object? type24, object? type25);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17, object? type18, object? type19, object? type20, object? type21, object? type22, object? type23, object? type24, object? type25, object? type26);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17, object? type18, object? type19, object? type20, object? type21, object? type22, object? type23, object? type24, object? type25, object? type26, object? type27);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17, object? type18, object? type19, object? type20, object? type21, object? type22, object? type23, object? type24, object? type25, object? type26, object? type27, object? type28);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17, object? type18, object? type19, object? type20, object? type21, object? type22, object? type23, object? type24, object? type25, object? type26, object? type27, object? type28, object? type29);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17, object? type18, object? type19, object? type20, object? type21, object? type22, object? type23, object? type24, object? type25, object? type26, object? type27, object? type28, object? type29, object? type30);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17, object? type18, object? type19, object? type20, object? type21, object? type22, object? type23, object? type24, object? type25, object? type26, object? type27, object? type28, object? type29, object? type30, object? type31);

Trouve le mobile chargé le plus proche avec l'un des corps graphic donnés. Utilisé pour rechercher un type spécifique de créature. Cette équipe ne recherche pas d'objets dans le coffre ou au sol : elle nécessite FindType/FindList.

Paramètres

  • distance — Rayon horizontal en cellules incluses : 5 permet la distance 0..5. La distance est max(abs(dx),abs(dy)), donc la diagonale adjacente est également 1. Par défaut ou si le nombre est négatif, c'est UO.FindDistance() qui est utilisé plutôt qu'une recherche illimitée. 0 laisse la même cellule X/Y. Pas la longueur du parcours ; les obstacles et les sols ne sont pas vérifiés par ce paramètre.
  • type — Graphique du corps mobile, pas du serial et non de l'objet graphic. Numéro 0..65534 ou chaîne hexadécimale, par exemple 0x003B. Plusieurs valeurs sont combinées sous forme de OR : le nombre 5, la chaîne "5|6" ou un tableau plat de nombres/chaînes numériques. Vous pouvez mélanger des tableaux plats et des arguments individuels. L'ordre des valeurs ne fixe pas de priorité. Les jetons non numériques sont exclus ; un masque complètement erroné ne trouve rien. Les tableaux imbriqués ne sont pas des nombres et sont ignorés en tant qu'éléments non valides ; les masques multidimensionnels ne sont pas pris en charge.
  • type2 — Masque supplémentaire facultatif type ; mêmes formes que type. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • type3 — Masque supplémentaire facultatif type ; mêmes formes que type. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • type4 — Masque supplémentaire facultatif type ; mêmes formes que type. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • type5 — Masque supplémentaire facultatif type ; mêmes formes que type. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • type6 — Masque supplémentaire facultatif type ; mêmes formes que type. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • type7 — Masque supplémentaire facultatif type ; mêmes formes que type. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • type8 — Masque supplémentaire facultatif type ; mêmes formes que type. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • type9 — Masque supplémentaire facultatif type ; mêmes formes que type. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • type10 — Masque supplémentaire facultatif type ; mêmes formes que type. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • type11 — Masque supplémentaire facultatif type ; mêmes formes que type. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • type12 — Masque supplémentaire facultatif type ; mêmes formes que type. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • type13 — Masque supplémentaire facultatif type ; mêmes formes que type. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • type14 — Masque supplémentaire facultatif type ; mêmes formes que type. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • type15 — Masque supplémentaire facultatif type ; mêmes formes que type. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • type16 — Masque supplémentaire facultatif type ; mêmes formes que type. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • type17 — Masque supplémentaire facultatif type ; mêmes formes que type. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • type18 — Masque supplémentaire facultatif type ; mêmes formes que type. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • type19 — Masque supplémentaire facultatif type ; mêmes formes que type. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • type20 — Masque supplémentaire facultatif type ; mêmes formes que type. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • type21 — Masque supplémentaire facultatif type ; mêmes formes que type. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • type22 — Masque supplémentaire facultatif type ; mêmes formes que type. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • type23 — Masque supplémentaire facultatif type ; mêmes formes que type. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • type24 — Masque supplémentaire facultatif type ; mêmes formes que type. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • type25 — Masque supplémentaire facultatif type ; mêmes formes que type. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • type26 — Masque supplémentaire facultatif type ; mêmes formes que type. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • type27 — Masque supplémentaire facultatif type ; mêmes formes que type. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • type28 — Masque supplémentaire facultatif type ; mêmes formes que type. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • type29 — Masque supplémentaire facultatif type ; mêmes formes que type. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • type30 — Masque supplémentaire facultatif type ; mêmes formes que type. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • type31 — Masque supplémentaire facultatif type ; mêmes formes que type. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.

Valeur de retour

int - serial du mobile sélectionné ou 0 s'il n'y en a pas. Il s'agit de ID, et non de graphic/type, le nombre d'objets trouvés ou true/false : utilisez if (found != 0) { ... }, not found == true. Un ID trouvé peut être transmis à UO.AddObject, UO.Attack ou UO.Follow, mais chaque action de jeu est appelée séparément.

Comportement

  • La recherche ne lit que les mobiles déjà téléchargés par le client ; les enregistrements détruits et Ignore sont exclus. L'appel lui-même n'ouvre pas la cible, n'attaque pas, ne va pas vers la cible et ne demande pas d'objets distants au serveur.
  • La distance est géométrique max(abs(dx),abs(dy)), et non la longueur de l'itinéraire. La proximité ne garantit pas l'absence de mur ni l'accessibilité d'un autre étage. La condition peut changer au retour.
  • La vie, la furtivité et la ligne de vue ne sont pas automatiquement vérifiées. S'ils sont importants, utilisez GetMobiles avec aliveOnly/visibleOnly ou vos propres chèques. Avoir un serveur avec le statut Ennemi ne rend aucun NPC éligible.
  • Ne change pas FindItem, FindCount ou GetFoundItems. Ces champs peuvent contenir les résultats d'une autre commande précédente : utilisez directement le ID renvoyé.
  • Des arguments 2 à 32 : distance et au masque 31 type. Un tableau plat vous permet de transmettre plus de valeurs. Chaque valeur suivante après type est toujours body/type, pas hue ou notoriété.
  • Il n'y a pas de filtre Z, de notoriété, de race de joueur ou de classe vestimentaire pour cette commande. Self n'est PAS exclu : si votre propre graphic est inclus dans le masque et que self n'est pas dans Ignore, vous pouvez obtenir votre serial à une distance de 0.
  • Sélectionne le plus proche ; une distance égale est autorisée par un serial plus petit. -1/any/0xFFFF/empty masque sans types concrets donne 0 : La commande nécessite au moins un type explicite. Les caractères génériques type presque spécifiques sont ignorés.

Scripts C# autonomes

Chaque exemple peut être enregistré dans un fichier séparé .csx et exécuté dans IDE. Les fonctions d'objet UO et d'attente fournissent l'hôte de la session de jeu en cours. Remplacez les noms, coordonnées et adresses de la démo serial par les vôtres.

Exemple simple

Exécutez ce code dans un fichier .csx séparé. Les arguments sont visibles dans l’appel ; remplacez les noms, serials et adresses d’exemple par les vôtres.

Le résultat d’un seul appel est affiché dans le journal. Un nombre n’est pas converti en bool ; un tableau est affiché par son nombre d’éléments.

var result = UO.FindAnyType(10, 0x003B);
UO.Print("FindAnyType: " + Convert.ToString(result));

1. Enregistrez la créature la plus proche du type souhaité - script direct

Paramètres et déroulement de l’exécution :

  • 0x003B - body, pas ID. Créature de retour - ID du mobile spécifique trouvé. L'équipe ne vérifie pas Z, la santé ou l'agressivité.
var creature = UO.FindAnyType(10, 0x003B);
if (Truth(creature != 0))
{
    UO.AddObject("creature", creature);
    UO.Print("Distance: " + Convert.ToString(UO.GetDistance(creature)));
}

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

2. Tableau de vues et vue supplémentaire - Fonction de script

Paramètres et déroulement de l’exécution :

  • les corps et les 0x000C séparés sont combinés. Si self est trouvé, cet exemple ignorera simplement l'action ; il ne cherche pas le prochain candidat. Pour exclure self dans la requête elle-même, utilisez le filtre correspondant GetMobiles.
return  RunScenario();
 object? RunScenario()
{
    dynamic[] bodies = new dynamic[checked((int)(0) + 1)];
    bodies[0] = 0x003B;
    var creature = UO.FindAnyType(18, bodies, 0x000C);
    if (Truth(creature != 0) && Truth(creature != Asc(UO.GetSerial("self"), 0)))
    {
        UO.AddObject("observed_creature", creature);
    }

    return null;
}

int Asc(object? value, int fallback = 0)
{
    string text = Convert.ToString(value) ?? "";
    if (text.StartsWith("0x", StringComparison.OrdinalIgnoreCase))
        return int.TryParse(text[2..], System.Globalization.NumberStyles.HexNumber, System.Globalization.CultureInfo.InvariantCulture, out int hex) ? hex : fallback;
    return int.TryParse(text, out int number) ? number : fallback;
}

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

3. Distance de retour jusqu'à la vue souhaitée la plus proche - classe de script

Paramètres et déroulement de l’exécution :

  • body - graphic, rayon - limite de recherche X/Y. L'assistant renvoie la distance ou son propre code -1 ; UO.FindAnyType renvoie lui-même serial ou 0.
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 distance = DistanceToBody(0x003B, 8);
        if (Truth(distance >= 0) && Truth(distance <= 3))
        {
            UO.Print("Creature is within three cells");
        }

        return null;
    }

    dynamic DistanceToBody(dynamic body, dynamic radius)
    {
        var found = UO.FindAnyType(radius, body);
        if (Truth(found == 0))
        {
            return -1;
        }

        return UO.GetDistance(found);
    }

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

Implémentation de la commande

C# distingue les majuscules. Utilisez le nom UO exact. Comparez les indicateurs numériques à 0 ; utilisez bool seulement si la signature renvoie bool.

UO.FindAnyType(distance, type) — UO.FindAnyType(Any,Any)

Paramètres: distance (Any), type (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))

UO.FindAnyType(distance, type, type2) — UO.FindAnyType(Any,Any,Any)

Paramètres: distance (Any), type (Any), type2 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))

UO.FindAnyType(distance, type, type2, type3) — UO.FindAnyType(Any,Any,Any,Any)

Paramètres: distance (Any), type (Any), type2 (Any), type3 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))

UO.FindAnyType(distance, type, type2, type3, type4) — UO.FindAnyType(Any,Any,Any,Any,Any)

Paramètres: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))

UO.FindAnyType(distance, type, type2, type3, type4, type5) — UO.FindAnyType(Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))

UO.FindAnyType(distance, type, type2, type3, type4, type5, type6) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))

UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))

UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))

UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))

UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))

UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))

UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))

UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))

UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))

UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))

UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))

UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))

UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17, type18) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any), type18 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))

UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17, type18, type19) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any), type18 (Any), type19 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))

UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17, type18, type19, type20) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any), type18 (Any), type19 (Any), type20 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))

UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17, type18, type19, type20, type21) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any), type18 (Any), type19 (Any), type20 (Any), type21 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))

UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17, type18, type19, type20, type21, type22) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any), type18 (Any), type19 (Any), type20 (Any), type21 (Any), type22 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))

UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17, type18, type19, type20, type21, type22, type23) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any), type18 (Any), type19 (Any), type20 (Any), type21 (Any), type22 (Any), type23 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))

UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17, type18, type19, type20, type21, type22, type23, type24) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any), type18 (Any), type19 (Any), type20 (Any), type21 (Any), type22 (Any), type23 (Any), type24 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))

UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17, type18, type19, type20, type21, type22, type23, type24, type25) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any), type18 (Any), type19 (Any), type20 (Any), type21 (Any), type22 (Any), type23 (Any), type24 (Any), type25 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))

UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17, type18, type19, type20, type21, type22, type23, type24, type25, type26) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any), type18 (Any), type19 (Any), type20 (Any), type21 (Any), type22 (Any), type23 (Any), type24 (Any), type25 (Any), type26 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))

UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17, type18, type19, type20, type21, type22, type23, type24, type25, type26, type27) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any), type18 (Any), type19 (Any), type20 (Any), type21 (Any), type22 (Any), type23 (Any), type24 (Any), type25 (Any), type26 (Any), type27 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))

UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17, type18, type19, type20, type21, type22, type23, type24, type25, type26, type27, type28) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any), type18 (Any), type19 (Any), type20 (Any), type21 (Any), type22 (Any), type23 (Any), type24 (Any), type25 (Any), type26 (Any), type27 (Any), type28 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))

UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17, type18, type19, type20, type21, type22, type23, type24, type25, type26, type27, type28, type29) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any), type18 (Any), type19 (Any), type20 (Any), type21 (Any), type22 (Any), type23 (Any), type24 (Any), type25 (Any), type26 (Any), type27 (Any), type28 (Any), type29 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))

UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17, type18, type19, type20, type21, type22, type23, type24, type25, type26, type27, type28, type29, type30) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any), type18 (Any), type19 (Any), type20 (Any), type21 (Any), type22 (Any), type23 (Any), type24 (Any), type25 (Any), type26 (Any), type27 (Any), type28 (Any), type29 (Any), type30 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))

UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17, type18, type19, type20, type21, type22, type23, type24, type25, type26, type27, type28, type29, type30, type31) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any), type18 (Any), type19 (Any), type20 (Any), type21 (Any), type22 (Any), type23 (Any), type24 (Any), type25 (Any), type26 (Any), type27 (Any), type28 (Any), type29 (Any), type30 (Any), type31 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))

UO.FindAtCoord

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

Signatures C#

int UO.FindAtCoord(object? x, object? y);

Recherche les objets du monde chargés sur une tuile X/Y exacte de la carte actuelle.

Paramètres

  • x — coordonnée mondiale horizontale, int 0..65535. Obligatoire; ce ne sont pas des pixels de fenêtre de conteneur.
  • y — coordonnée mondiale verticale, int 0..65535. Requis. Il n'y a pas de paramètres Z, map, type ou rayon supplémentaires.

Valeur de retour

int - serial le premier élément correspondant dans la liste de résultats de ce client. 0 : aucune correspondance, caractère manquant/supprimé ou coordonnées en dehors de 0..65535. Il s'agit du ID de l'objet, pas du type, de la quantité ou du bool. Tous les bits 32 sont sauvegardés ; vérifiez != 0, pas == true et pas > 0. Le même ID est écrit dans FindItem().

Comportement

  • Vérifie les objets non supprimés au sol et sur mobile, y compris le personnage lui-même sur cette cellule. Le contenu des conteneurs et des objets portés est exclu : leurs X/Y ne peuvent pas être considérés comme des coordonnées mondiales. Les séries sont exclues de la liste Ignore.
  • Toutes les hauteurs Z à X/Y donnés conviennent. FindDistance et FindVertical ne limitent pas cette recherche à la cellule exacte. Seuls les objets chargés du monde actuel sont visibles ; Les cartes paysagères, statiques et autres ne se chargent pas. Les paquets ne sont pas envoyés, la cible n'est pas ouverte, les éléments ne sont pas déplacés.
  • Chaque appel efface d'abord la recherche précédente. FindCount() compte les objets, FindFullQuantity() additionne les unités dans les piles (Mobile en ajoute une), GetFoundItems() renvoie celles trouvées serial. L'élément est recherché en premier, puis Mobile ; au sein des collections, l’ordre d’énumération actuel s’applique. Enregistrez la liste pour la prochaine recherche qui remplacera les résultats.
  • L'ordre de sélection et les filtres ci-dessus décrivent l'implémentation de ce client.

Scripts C# autonomes

Chaque exemple peut être enregistré dans un fichier séparé .csx et exécuté dans IDE. Les fonctions d'objet UO et d'attente fournissent l'hôte de la session de jeu en cours. Remplacez les noms, coordonnées et adresses de la démo serial par les vôtres.

Exemple simple

Exécutez ce code dans un fichier .csx séparé. Les arguments sont visibles dans l’appel ; remplacez les noms, serials et adresses d’exemple par les vôtres.

Le résultat d’un seul appel est affiché dans le journal. Un nombre n’est pas converti en bool ; un tableau est affiché par son nombre d’éléments.

var result = UO.FindAtCoord(1445, 1690);
UO.Print("FindAtCoord: " + Convert.ToString(result));

1. Obtenez un ID - script direct

Paramètres et déroulement de l’exécution :

  • 1445 et 1690 sont des exemples de X/Y du monde : remplacez-les par votre cellule. id enregistre un serial ; HEX le produit en hexadécimal. != 0 vérifie la présence du résultat, pas la quantité.
var id = UO.FindAtCoord(1445, 1690);
if (Truth(id != 0))
{
    UO.Print(Hex(id));
}
else
{
    UO.Print("No loaded object");
}

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;

2. Afficher tous les objets sur un carré de caractère - fonction de script

Paramètres et déroulement de l’exécution :

  • x/y sont lus à partir du caractère ; ids enregistre la liste des recherches en cours. Chaque identifiant représente un objet, y compris la pile entière. GetType(id) lit graphic/body. Les éléments ne sont ni sélectionnés ni utilisés.
return  RunScenario();
 object? RunScenario()
{
    var x = UO.GetX("self");
    var y = UO.GetY("self");
    UO.FindAtCoord(x, y);
    var ids = UO.GetFoundItems();
    foreach (var id in ids)
    {
        UO.Print(Hex(id) + " type=" + Hex(UO.GetType(id)));
    }

    return null;
}

string Hex(object? value) => Convert.ToInt64(value).ToString("X");

3. Fonction complète CountGraphicAt - classe de script

Paramètres et déroulement de l’exécution :

  • CountGraphicAt(x, y, graphic) recherche une cellule une fois, parcourt le ID enregistré et compte les objets avec les graphiques souhaités. graphic=0x0EED – or. Le nombre d'objets/piles est renvoyé, pas la somme des uns et non true/false ; une pile en fait une. La fonction est complètement définie après Main.
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 count = CountGraphicAt(1445, 1690, 0x0EED);
        UO.Print("Objects/stacks: " + Convert.ToString(count));
        return null;
    }

    dynamic CountGraphicAt(dynamic x, dynamic y, dynamic graphic)
    {
        UO.FindAtCoord(x, y);
        var ids = UO.GetFoundItems();
        var count = 0;
        foreach (var id in ids)
        {
            if (Truth(UO.GetType(id) == graphic))
            {
                count += 1;
            }
        }

        return count;
    }

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

Implémentation de la commande

C# distingue les majuscules. Utilisez le nom UO exact. Comparez les indicateurs numériques à 0 ; utilisez bool seulement si la signature renvoie bool.

UO.FindAtCoord(x, y) — UO.FindAtCoord(Any,Any)

Paramètres: x (Any), y (Any)

Résultat: int / Integer.

Pendant un appel:

Code interne de l’implémentation ; ce n’est pas un script autonome.

case "findatcoord": return new InjectionValue(bridge.FindAtCoord(Arg(0), Arg(1)));

UO.FindByNotoriety

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

Signatures C#

int UO.FindByNotoriety(object? distance, object? notoriety);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17, object? notoriety18);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17, object? notoriety18, object? notoriety19);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17, object? notoriety18, object? notoriety19, object? notoriety20);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17, object? notoriety18, object? notoriety19, object? notoriety20, object? notoriety21);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17, object? notoriety18, object? notoriety19, object? notoriety20, object? notoriety21, object? notoriety22);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17, object? notoriety18, object? notoriety19, object? notoriety20, object? notoriety21, object? notoriety22, object? notoriety23);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17, object? notoriety18, object? notoriety19, object? notoriety20, object? notoriety21, object? notoriety22, object? notoriety23, object? notoriety24);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17, object? notoriety18, object? notoriety19, object? notoriety20, object? notoriety21, object? notoriety22, object? notoriety23, object? notoriety24, object? notoriety25);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17, object? notoriety18, object? notoriety19, object? notoriety20, object? notoriety21, object? notoriety22, object? notoriety23, object? notoriety24, object? notoriety25, object? notoriety26);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17, object? notoriety18, object? notoriety19, object? notoriety20, object? notoriety21, object? notoriety22, object? notoriety23, object? notoriety24, object? notoriety25, object? notoriety26, object? notoriety27);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17, object? notoriety18, object? notoriety19, object? notoriety20, object? notoriety21, object? notoriety22, object? notoriety23, object? notoriety24, object? notoriety25, object? notoriety26, object? notoriety27, object? notoriety28);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17, object? notoriety18, object? notoriety19, object? notoriety20, object? notoriety21, object? notoriety22, object? notoriety23, object? notoriety24, object? notoriety25, object? notoriety26, object? notoriety27, object? notoriety28, object? notoriety29);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17, object? notoriety18, object? notoriety19, object? notoriety20, object? notoriety21, object? notoriety22, object? notoriety23, object? notoriety24, object? notoriety25, object? notoriety26, object? notoriety27, object? notoriety28, object? notoriety29, object? notoriety30);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17, object? notoriety18, object? notoriety19, object? notoriety20, object? notoriety21, object? notoriety22, object? notoriety23, object? notoriety24, object? notoriety25, object? notoriety26, object? notoriety27, object? notoriety28, object? notoriety29, object? notoriety30, object? notoriety31);

Trouve l'autre personnage/NPC le plus proche avec l'un des statuts de notoriété spécifiés. Utile lorsque vous devez d'abord sélectionner un ennemi, un allié ou une cible observée, puis décider séparément si vous devez l'attaquer ou le suivre.

Paramètres

  • distance — Rayon horizontal en cellules incluses : 5 permet la distance 0..5. La distance est max(abs(dx),abs(dy)), donc la diagonale adjacente est également 1. Par défaut ou si le nombre est négatif, c'est UO.FindDistance() qui est utilisé plutôt qu'une recherche illimitée. 0 laisse la même cellule X/Y. Pas la longueur du parcours ; les obstacles et les sols ne sont pas vérifiés par ce paramètre.
  • notoriety — Statut de la relation avec le personnage reçu du serveur : 0 — inconnu, 1 — Innocent, 2 — Allié, 3 — Gris, 4 — Criminel, 5 — Ennemi, 6 — Meurtrier, 7 - Invulnérable. Le nombre signifie un statut ; "5|6" ou un tableau de nombres - l'un des éléments ci-dessus. Ce n'est pas la couleur des vêtements ou de la classe. Un nombre négatif (généralement -1), 0xFFFF, "any", une chaîne vide ou un tableau vide désactive séparément ce filtre. Une chaîne invalide sans nombres valides ne trouve personne. L'ordre des statuts ne définit pas la priorité. Le filtre 5 sélectionne l'ennemi plutôt que de sélectionner automatiquement n'importe quel NPC/monstre ; les valeurs réelles dépendent du serveur. Plusieurs valeurs sont combinées sous forme de OR : le nombre 5, la chaîne "5|6" ou un tableau plat de nombres/chaînes numériques. Vous pouvez mélanger des tableaux plats et des arguments individuels. L'ordre des valeurs ne fixe pas de priorité. Les jetons non numériques sont exclus ; un masque complètement erroné ne trouve rien. Les tableaux imbriqués ne sont pas des nombres et sont ignorés en tant qu'éléments non valides ; les masques multidimensionnels ne sont pas pris en charge.
  • notoriety2 - Masque de notoriété supplémentaire optionnel ; les mêmes formes que la notoriété. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • notoriety3 - Masque de notoriété supplémentaire optionnel ; les mêmes formes que la notoriété. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • notoriety4 - Masque de notoriété supplémentaire optionnel ; les mêmes formes que la notoriété. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • notoriety5 - Masque de notoriété supplémentaire optionnel ; les mêmes formes que la notoriété. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • notoriety6 - Masque de notoriété supplémentaire optionnel ; les mêmes formes que la notoriété. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • notoriety7 - Masque de notoriété supplémentaire optionnel ; les mêmes formes que la notoriété. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • notoriety8 - Masque de notoriété supplémentaire optionnel ; les mêmes formes que la notoriété. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • notoriety9 - Masque de notoriété supplémentaire optionnel ; les mêmes formes que la notoriété. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • notoriety10 - Masque de notoriété supplémentaire optionnel ; les mêmes formes que la notoriété. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • notoriety11 - Masque de notoriété supplémentaire optionnel ; les mêmes formes que la notoriété. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • notoriety12 - Masque de notoriété supplémentaire optionnel ; les mêmes formes que la notoriété. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • notoriety13 - Masque de notoriété supplémentaire optionnel ; les mêmes formes que la notoriété. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • notoriety14 - Masque de notoriété supplémentaire optionnel ; les mêmes formes que la notoriété. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • notoriety15 - Masque de notoriété supplémentaire optionnel ; les mêmes formes que la notoriété. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • notoriety16 - Masque de notoriété supplémentaire optionnel ; les mêmes formes que la notoriété. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • notoriety17 - Masque de notoriété supplémentaire optionnel ; les mêmes formes que la notoriété. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • notoriety18 - Masque de notoriété supplémentaire optionnel ; les mêmes formes que la notoriété. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • notoriety19 - Masque de notoriété supplémentaire optionnel ; les mêmes formes que la notoriété. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • notoriety20 - Masque de notoriété supplémentaire optionnel ; les mêmes formes que la notoriété. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • notoriety21 - Masque de notoriété supplémentaire optionnel ; les mêmes formes que la notoriété. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • notoriety22 - Masque de notoriété supplémentaire optionnel ; les mêmes formes que la notoriété. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • notoriety23 - Masque de notoriété supplémentaire optionnel ; les mêmes formes que la notoriété. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • notoriety24 - Masque de notoriété supplémentaire optionnel ; les mêmes formes que la notoriété. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • notoriety25 - Masque de notoriété supplémentaire optionnel ; les mêmes formes que la notoriété. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • notoriety26 - Masque de notoriété supplémentaire optionnel ; les mêmes formes que la notoriété. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • notoriety27 - Masque de notoriété supplémentaire optionnel ; les mêmes formes que la notoriété. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • notoriety28 - Masque de notoriété supplémentaire optionnel ; les mêmes formes que la notoriété. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • notoriety29 - Masque de notoriété supplémentaire optionnel ; les mêmes formes que la notoriété. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • notoriety30 - Masque de notoriété supplémentaire optionnel ; les mêmes formes que la notoriété. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.
  • notoriety31 - Masque de notoriété supplémentaire optionnel ; les mêmes formes que la notoriété. Se combine avec les précédents via OR, ne définit pas de rayon séparé, hue, Z ou de priorité.

Valeur de retour

int - serial du mobile sélectionné ou 0 s'il n'y en a pas. Il s'agit de ID, et non de graphic/type, le nombre d'objets trouvés ou true/false : utilisez if (found != 0) { ... }, not found == true. Un ID trouvé peut être transmis à UO.AddObject, UO.Attack ou UO.Follow, mais chaque action de jeu est appelée séparément.

Comportement

  • La recherche ne lit que les mobiles déjà téléchargés par le client ; les enregistrements détruits et Ignore sont exclus. L'appel lui-même n'ouvre pas la cible, n'attaque pas, ne va pas vers la cible et ne demande pas d'objets distants au serveur.
  • La distance est géométrique max(abs(dx),abs(dy)), et non la longueur de l'itinéraire. La proximité ne garantit pas l'absence de mur ni l'accessibilité d'un autre étage. La condition peut changer au retour.
  • La vie, la furtivité et la ligne de vue ne sont pas automatiquement vérifiées. S'ils sont importants, utilisez GetMobiles avec aliveOnly/visibleOnly ou vos propres chèques. Avoir un serveur avec le statut Ennemi ne rend aucun NPC éligible.
  • Ne change pas FindItem, FindCount ou GetFoundItems. Ces champs peuvent contenir les résultats d'une autre commande précédente : utilisez directement le ID renvoyé.
  • Au moins deux arguments : la distance, la notoriété. Maximum 32 : rayon et jusqu'à 31 masque. Pour plus de valeurs, transmettez le tableau plat comme argument. Suppression du filtre : -1/any/0xFFFF/empty string ou tableau vide séparément. Si des codes spécifiques sont répertoriés les uns à côté des autres, ils conservent la restriction.
  • Exclut self. Conforme à UO.FindVertical() comme limite de la différence Z ; il n'y a pas de paramètre maxZ dans cette commande. Choisit toujours le plus proche, en cas d'égalité - le plus petit serial. L'argument après la notoriété est toujours la notoriété, ni le plus proche ni body.

Scripts C# autonomes

Chaque exemple peut être enregistré dans un fichier séparé .csx et exécuté dans IDE. Les fonctions d'objet UO et d'attente fournissent l'hôte de la session de jeu en cours. Remplacez les noms, coordonnées et adresses de la démo serial par les vôtres.

Exemple simple

Exécutez ce code dans un fichier .csx séparé. Les arguments sont visibles dans l’appel ; remplacez les noms, serials et adresses d’exemple par les vôtres.

Le résultat d’un seul appel est affiché dans le journal. Un nombre n’est pas converti en bool ; un tableau est affiché par son nombre d’éléments.

var result = UO.FindByNotoriety(12, "5|6");
UO.Print("FindByNotoriety: " + Convert.ToString(result));

1. Sélectionnez la cible la plus proche et enregistrez son nom - script direct

Paramètres et déroulement de l’exécution :

  • L'adversaire sauvé peut être utilisé plus tard ; cet exemple n'attaque pas. Le FindVertical actuel s'applique également même si la cible est proche en X/Y.
var found = UO.FindByNotoriety(12, "5|6");
if (Truth(found != 0))
{
    UO.AddObject("opponent", found);
    UO.Print("Selected: " + UO.GetName(found));
}

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

2. Liste des statuts d'un tableau plus code séparé - fonction de script

Paramètres et déroulement de l’exécution :

  • autorisé contient Enemy, un 6 distinct ajoute Murderer. Les statuts sont combinés plutôt que triés par priorité. L'exemple demande une attaque sur un mobile en direct trouvé ; les règles du serveur déterminent ce qui est acceptable.
return  RunScenario();
 object? RunScenario()
{
    dynamic[] allowed = new dynamic[checked((int)(0) + 1)];
    allowed[0] = 5;
    var found = UO.FindByNotoriety(8, allowed, 6);
    if (Truth(found != 0) && !(Truth(UO.IsDead(found))))
    {
        UO.Attack(found);
    }

    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. Fonction de recherche complète à hauteur égale - Classe de script

Paramètres et déroulement de l’exécution :

  • radius — Rayon X/Y dans les cellules. FindVertical(0) nécessite le même Z ; Il ne s’agit pas d’une inspection du sol ou des murs. La fonction renvoie ID/0 et enregistre enfin les paramètres des autres parties du script.
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 found = FindOpponentAtSameLevel(10);
        if (Truth(found != 0))
        {
            UO.AddObject("same_level", found);
        }

        return null;
    }

    dynamic FindOpponentAtSameLevel(dynamic radius)
    {
        var previous = UO.FindVertical();
        try
        {
            UO.FindVertical(0);
            return UO.FindByNotoriety(radius, "5|6");
        }
        finally
        {
            UO.FindVertical(previous);
        }
    }

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

Implémentation de la commande

C# distingue les majuscules. Utilisez le nom UO exact. Comparez les indicateurs numériques à 0 ; utilisez bool seulement si la signature renvoie bool.

UO.FindByNotoriety(distance, notoriety) — UO.FindByNotoriety(Any,Any)

Paramètres: distance (Any), notoriety (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),

                        NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))

UO.FindByNotoriety(distance, notoriety, notoriety2) — UO.FindByNotoriety(Any,Any,Any)

Paramètres: distance (Any), notoriety (Any), notoriety2 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),

                        NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))

UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3) — UO.FindByNotoriety(Any,Any,Any,Any)

Paramètres: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),

                        NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))

UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4) — UO.FindByNotoriety(Any,Any,Any,Any,Any)

Paramètres: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),

                        NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))

UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),

                        NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))

UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),

                        NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))

UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),

                        NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))

UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),

                        NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))

UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),

                        NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))

UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),

                        NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))

UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),

                        NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))

UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),

                        NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))

UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),

                        NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))

UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),

                        NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))

UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),

                        NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))

UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),

                        NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))

UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),

                        NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))

UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17, notoriety18) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any), notoriety18 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),

                        NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))

UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17, notoriety18, notoriety19) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any), notoriety18 (Any), notoriety19 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),

                        NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))

UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17, notoriety18, notoriety19, notoriety20) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any), notoriety18 (Any), notoriety19 (Any), notoriety20 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),

                        NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))

UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17, notoriety18, notoriety19, notoriety20, notoriety21) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any), notoriety18 (Any), notoriety19 (Any), notoriety20 (Any), notoriety21 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),

                        NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))

UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17, notoriety18, notoriety19, notoriety20, notoriety21, notoriety22) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any), notoriety18 (Any), notoriety19 (Any), notoriety20 (Any), notoriety21 (Any), notoriety22 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),

                        NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))

UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17, notoriety18, notoriety19, notoriety20, notoriety21, notoriety22, notoriety23) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any), notoriety18 (Any), notoriety19 (Any), notoriety20 (Any), notoriety21 (Any), notoriety22 (Any), notoriety23 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),

                        NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))

UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17, notoriety18, notoriety19, notoriety20, notoriety21, notoriety22, notoriety23, notoriety24) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any), notoriety18 (Any), notoriety19 (Any), notoriety20 (Any), notoriety21 (Any), notoriety22 (Any), notoriety23 (Any), notoriety24 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),

                        NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))

UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17, notoriety18, notoriety19, notoriety20, notoriety21, notoriety22, notoriety23, notoriety24, notoriety25) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any), notoriety18 (Any), notoriety19 (Any), notoriety20 (Any), notoriety21 (Any), notoriety22 (Any), notoriety23 (Any), notoriety24 (Any), notoriety25 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),

                        NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))

UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17, notoriety18, notoriety19, notoriety20, notoriety21, notoriety22, notoriety23, notoriety24, notoriety25, notoriety26) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any), notoriety18 (Any), notoriety19 (Any), notoriety20 (Any), notoriety21 (Any), notoriety22 (Any), notoriety23 (Any), notoriety24 (Any), notoriety25 (Any), notoriety26 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),

                        NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))

UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17, notoriety18, notoriety19, notoriety20, notoriety21, notoriety22, notoriety23, notoriety24, notoriety25, notoriety26, notoriety27) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any), notoriety18 (Any), notoriety19 (Any), notoriety20 (Any), notoriety21 (Any), notoriety22 (Any), notoriety23 (Any), notoriety24 (Any), notoriety25 (Any), notoriety26 (Any), notoriety27 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),

                        NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))

UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17, notoriety18, notoriety19, notoriety20, notoriety21, notoriety22, notoriety23, notoriety24, notoriety25, notoriety26, notoriety27, notoriety28) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any), notoriety18 (Any), notoriety19 (Any), notoriety20 (Any), notoriety21 (Any), notoriety22 (Any), notoriety23 (Any), notoriety24 (Any), notoriety25 (Any), notoriety26 (Any), notoriety27 (Any), notoriety28 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),

                        NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))

UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17, notoriety18, notoriety19, notoriety20, notoriety21, notoriety22, notoriety23, notoriety24, notoriety25, notoriety26, notoriety27, notoriety28, notoriety29) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any), notoriety18 (Any), notoriety19 (Any), notoriety20 (Any), notoriety21 (Any), notoriety22 (Any), notoriety23 (Any), notoriety24 (Any), notoriety25 (Any), notoriety26 (Any), notoriety27 (Any), notoriety28 (Any), notoriety29 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),

                        NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))

UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17, notoriety18, notoriety19, notoriety20, notoriety21, notoriety22, notoriety23, notoriety24, notoriety25, notoriety26, notoriety27, notoriety28, notoriety29, notoriety30) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any), notoriety18 (Any), notoriety19 (Any), notoriety20 (Any), notoriety21 (Any), notoriety22 (Any), notoriety23 (Any), notoriety24 (Any), notoriety25 (Any), notoriety26 (Any), notoriety27 (Any), notoriety28 (Any), notoriety29 (Any), notoriety30 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),

                        NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))

UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17, notoriety18, notoriety19, notoriety20, notoriety21, notoriety22, notoriety23, notoriety24, notoriety25, notoriety26, notoriety27, notoriety28, notoriety29, notoriety30, notoriety31) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)

Paramètres: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any), notoriety18 (Any), notoriety19 (Any), notoriety20 (Any), notoriety21 (Any), notoriety22 (Any), notoriety23 (Any), notoriety24 (Any), notoriety25 (Any), notoriety26 (Any), notoriety27 (Any), notoriety28 (Any), notoriety29 (Any), notoriety30 (Any), notoriety31 (Any)

Résultat: int / Integer.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),

                        NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))

UO.FindCount

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

Signatures C#

int UO.FindCount();
int UO.FindCount(object? id);

Lit le nombre de un dans la pile spécifiée si ID est passé. La forme sans arguments conserve une signification particulière : le nombre d'objets de la dernière recherche.

Paramètres

  • id — Série/ID d'un objet spécifique : int, chaîne décimale/hexadécimale ou alias défini self, backpack, lasttarget, lastobject ou nom AddObject. Ce n'est pas graphic/type. Argument facultatif. Lorsque ID est passé, le montant actuel de cet élément particulier est lu. L'alias finditem sélectionne explicitement le premier résultat de la recherche. Sans argument, le nombre d'objets trouvés est renvoyé.

Valeur de retour

int : FindCount(id) — nombre d'unités dans la pile spécifiée (Montant) ; un seul élément normal donne 1, un élément inconnu/supprimé, un alias erroné ou un mobile donne 0. FindCount() sans ID est le nombre d'objets dans la dernière recherche : une pile est considérée comme un objet quel que soit le montant. Par exemple, trois piles de 20, 50 et 100 : FindCount()=3, FindCount(ID de la deuxième pile)=50, FindFullQuantity()=170.

Comportement

  • FindCount(id) équivaut à lire GetQuantity(id), ne déclenche pas de recherche et ne modifie pas FindItem/FindCount()/FindFullQuantity/GetFoundItems.
  • ID signifie serial d'un élément particulier, pas type. Le changement de quantité est reflété la prochaine fois que FindCount(id) est appelé. La quantité dans l'article supprimé est 0 ; il ne recherche pas automatiquement une autre pile.
  • La compatibilité d'origine sans arguments est conservée : FindCount() compte les objets. FindQuantity() lit une pile trouvée, FindFullQuantity() additionne les unités de la dernière recherche.
  • Les données appartiennent à la dernière recherche normale de ce script. FindType avec les arguments 1–5, FindTypeEx, Count/CountEx/CountGround remplacent les résultats. Les commandes avancées de caractères filtrés ne sont pas nécessaires pour modifier cet instantané.
  • Une nouvelle recherche sans correspondance efface FindItem, FindCount et FindFullQuantity et efface GetFoundItems. La lecture d’un résultat ne déclenche pas à elle seule une nouvelle recherche.

Scripts C# autonomes

Chaque exemple peut être enregistré dans un fichier séparé .csx et exécuté dans IDE. Les fonctions d'objet UO et d'attente fournissent l'hôte de la session de jeu en cours. Remplacez les noms, coordonnées et adresses de la démo serial par les vôtres.

Exemple simple

Exécutez ce code dans un fichier .csx séparé. Les arguments sont visibles dans l’appel ; remplacez les noms, serials et adresses d’exemple par les vôtres.

Le résultat d’un seul appel est affiché dans le journal. Un nombre n’est pas converti en bool ; un tableau est affiché par son nombre d’éléments.

UO.FindType(0x0EED, -1, "backpack");
var result = UO.FindCount();
UO.Print("FindCount: " + Convert.ToString(result));

1. Quantité dans une pile spécifique par ID - script direct

Paramètres et déroulement de l’exécution :

  • id=0x40001234 est un exemple de pile serial. Remplacez le ID de l'élément par le vôtre.
  • Une pile d'unités 50 renverra 50 ; élément unique - 1 ; inconnu ID - 0.
var amount = UO.FindCount("0x40001234");
UO.Print("Units: " + Convert.ToString(amount));

2. Rechercher un article et lire sa quantité - fonction script

Paramètres et déroulement de l’exécution :

  • FindType reçoit type or 0x0EED, n'importe quel hue=-1, zone backpack et renvoie serial.
  • L'élément serial renvoyé est transmis à FindCount. type 0x0EED lui-même ne peut pas être transféré ici.
return  RunScenario();
 object? RunScenario()
{
    var item = UO.FindType(0x0EED, -1, "backpack");
    if (Truth(item != ""))
    {
        var units = UO.FindCount(item);
        UO.Print(Convert.ToString(units));
    }

    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. La quantité dans la dernière cible et dans le nom enregistré est la classe du scénario

Paramètres et déroulement de l’exécution :

  • lasttarget doit indiquer un objet. AddObject stocke ce serial sous le nom selected_stack.
  • FindCount résout le nom en ID et lit le montant. Si une cible de caractère est sélectionnée, 0 est renvoyé.
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 item = UO.GetSerial("lasttarget");
        if (Truth(UO.Exists(item)))
        {
            UO.AddObject("selected_stack", item);
            UO.Print(Convert.ToString(UO.FindCount("selected_stack")));
        }

        return null;
    }

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

4. Mesurer les résultats de recherche d'or - script direct

Paramètres et déroulement de l’exécution :

  • type=0x0EED – or ; color=-1 — n'importe quel hue ; backpack - uniquement le contenu direct du sac à dos sous cette forme FindType.
  • int — nombre d'éléments/caractères trouvés, 0 sans correspondances. Une pile d'unités 1000 compte comme un objet. Il ne s'agit pas d'une somme d'unités ; cela nécessite FindFullQuantity.
var found = UO.FindType(0x0EED, -1, "backpack");
var value = UO.FindCount();
UO.Print(Convert.ToString(value));

5. Comparer les éléments et les unités - Fonction de script

Paramètres et déroulement de l’exécution :

  • Les quatre lectures appartiennent à une recherche jusqu'à ce qu'une autre recherche soit appelée entre les deux.
  • Par exemple, deux piles de 50 : Items=2, First stack=50, All units=100 ; Le premier ID contient l'unique ID d'une pile.
return  RunScenario();
 object? RunScenario()
{
    var found = UO.FindType(0x0EED, -1, "backpack");
    UO.Print("Items: " + Convert.ToString(UO.FindCount()));
    UO.Print("First stack: " + Convert.ToString(UO.FindQuantity()));
    UO.Print("All units: " + Convert.ToString(UO.FindFullQuantity()));
    UO.Print("First ID: 0x" + Hex(UO.FindItem()));
    return null;
}

string Hex(object? value) => Convert.ToInt64(value).ToString("X");

6. Enregistrer le résultat jusqu'à la prochaine recherche - classe de script

Paramètres et déroulement de l’exécution :

  • Le premier type est de l'or, le second 0x0F7A est un type distinct de réactif. La nouvelle équipe change le plan global.
  • enregistré reste le numéro de la première recherche. La deuxième lecture s'applique au réactif même s'il n'y a pas de correspondance.
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 found = UO.FindType(0x0EED, -1, "backpack");
        var saved = UO.FindCount();
        found = UO.FindType(0x0F7A, -1, "backpack");
        UO.Print("Saved: " + Convert.ToString(saved));
        UO.Print("Current: " + Convert.ToString(UO.FindCount()));
        return null;
    }
}

Implémentation de la commande

C# distingue les majuscules. Utilisez le nom UO exact. Comparez les indicateurs numériques à 0 ; utilisez bool seulement si la signature renvoie bool.

UO.FindCount() — UO.FindCount()

Paramètres: Aucun paramètre.

Résultat: int / Integer.

Pendant un appel:

Code interne de l’implémentation ; ce n’est pas un script autonome.

public int FindCount() => bridge.FindCount();

UO.FindCount(id) — UO.FindCount(Any)

Paramètres: id (Any)

Résultat: int / Integer.

Pendant un appel:

Code interne de l’implémentation ; ce n’est pas un script autonome.

public int FindCount(InjectionValue id) => bridge.GetQuantity(GetObject(id));

UO.FindDistance

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

Signatures C#

int UO.FindDistance();
void UO.FindDistance(object? value);

Lit ou modifie le rayon de recherche horizontal par défaut.

Paramètres

  • value - Facultatif int. Sans argument - lecture ; valeur — réglage. La valeur est limitée à la plage 0..255 ; le négatif devient 0 plutôt que no-limit. Dans le nouveau runtime : 18 ; l'état restauré peut contenir une valeur différente. Le nombre fractionnaire est tronqué à zéro ; les chaînes numériques double/0x sont également acceptables. Utilisez int pour éviter la conversion implicite.

Valeur de retour

Sans arguments : int est la limite actuelle (distance en cellules), introuvable ID, le nombre d'objets ou bool. 0 signifie limite zéro, pas échec. Avec valeur : void - aucune valeur ; ce n'est pas true/false ou l'ancien paramètre. Une fois installé, lisez FindDistance() pour connaître la valeur stockée.

Comportement

  • Distance : max(abs(dx), abs(dy)) du point de référence actuel de la plage client ; un carré diagonal compte pour un. La frontière est activée. Pour 0, seuls les objets sur le même X/Y conviennent. Pour le déplacement Mobile, la distance prend en compte la position finale de la file d'étapes.
  • Le paramètre est stocké dans le runtime du script actuel ; ses procédures utilisent une valeur unique. Les environnements d'exécution indépendants ont des paramètres distincts. La lecture et l'écriture ne déclenchent pas de recherche, n'effacent pas FindItem/FindCount/GetFoundItems, n'envoient pas de paquet, ne déplacent pas de caractère ou ne chargent pas d'objets distants.
  • FindTypeEx et FindTypesArrayEx utilisent ces limites lors de recherches au sol, mais pas à l'intérieur du conteneur. Les filtres restants sont type, hue, Ignore et la présence d'un objet chargé. FindAtCoord ignore les deux limites. Dans les commandes étendues, la distance explicite/maxZ peut remplacer les paramètres ; -1 dans de tels paramètres signifie prendre le réglage, par opposition à définir le réglage lui-même sur -1. FindList filtre également Z lors de la recherche de conteneurs ; l'exception de conteneur spécifiée ne s'applique pas à celui-ci.
  • Avant de rechercher temporairement, enregistrez la valeur et restaurez-la dans Enfin. L'installation n'est pas automatiquement annulée. Fonctionne enfin avec une achèvement normale et une erreur de script détectée ; L'arrêt d'urgence ne peut pas être utilisé comme mécanisme de nettoyage.

Scripts C# autonomes

Chaque exemple peut être enregistré dans un fichier séparé .csx et exécuté dans IDE. Les fonctions d'objet UO et d'attente fournissent l'hôte de la session de jeu en cours. Remplacez les noms, coordonnées et adresses de la démo serial par les vôtres.

Exemple simple

Exécutez ce code dans un fichier .csx séparé. Les arguments sont visibles dans l’appel ; remplacez les noms, serials et adresses d’exemple par les vôtres.

Le résultat d’un seul appel est affiché dans le journal. Un nombre n’est pas converti en bool ; un tableau est affiché par son nombre d’éléments.

var result = UO.FindDistance();
UO.Print("FindDistance: " + Convert.ToString(result));

1. Lecture, définition et limite de plage - Script direct

Paramètres et déroulement de l’exécution :

  • précédent enregistre le réglage actuel. value:=5 définit la limite normale ; 1000 montre la limite à 255. Print lit le résultat comme un appel séparé sans argument. Restaure enfin le précédent.
var previous = UO.FindDistance();
try
{
    UO.FindDistance(5);
    UO.Print(Convert.ToString(UO.FindDistance()));
    UO.FindDistance(1000);
    UO.Print(Convert.ToString(UO.FindDistance()));
}
finally
{
    UO.FindDistance(previous);
}

2. Recherche au sol temporaire - Fonction de script

Paramètres et déroulement de l’exécution :

  • précédent enregistre le paramètre du code d'appel. 5 modifie uniquement FindDistance ; la deuxième limite reste la même. 0x0EED - graphiques dorés, -1 - n'importe quel hue, Container=-1 - monde, false - sans récursion de conteneur. identifiant - un serial ; != 0 vérifie la disponibilité. FindCount compte les objets/piles entiers. Restaure enfin le paramètre, pas la liste des résultats.
return  RunScenario();
 object? RunScenario()
{
    var previous = UO.FindDistance();
    try
    {
        UO.FindDistance(5);
        var id = UO.FindTypeEx(0x0EED, -1, -1, false);
        if (Truth(id != 0))
        {
            UO.Print(Hex(id) + ":" + Convert.ToString(UO.FindCount()));
        }
        else
        {
            UO.Print("0");
        }
    }
    finally
    {
        UO.FindDistance(previous);
    }

    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;

3. Fonction complète CountGroundInRange - classe de script

Paramètres et déroulement de l’exécution :

  • CountGroundInRange(graphic, radius, height) stocke les deux limites, définit radius=5 et height=10, recherche graphic=0x0EED et renvoie FindCount(). Une pile est considérée comme un objet. La fonction complète est donnée après Main. Restaure enfin les deux limites même en sortant via return ; le résultat de la recherche reste disponible.
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 count = CountGroundInRange(0x0EED, 5, 10);
        UO.Print(Convert.ToString(count));
        return null;
    }

    dynamic CountGroundInRange(dynamic graphic, dynamic radius, dynamic height)
    {
        var oldDistance = UO.FindDistance();
        var oldVertical = UO.FindVertical();
        try
        {
            UO.FindDistance(radius);
            UO.FindVertical(height);
            UO.FindTypeEx(graphic, -1, -1, false);
            return UO.FindCount();
        }
        finally
        {
            UO.FindDistance(oldDistance);
            UO.FindVertical(oldVertical);
        }
    }
}

Implémentation de la commande

C# distingue les majuscules. Utilisez le nom UO exact. Comparez les indicateurs numériques à 0 ; utilisez bool seulement si la signature renvoie bool.

UO.FindDistance() — UO.FindDistance()

Paramètres: Aucun paramètre.

Résultat: int / Integer.

Pendant un appel:

Code interne de l’implémentation ; ce n’est pas un script autonome.

case "finddistance":

                    if (arguments.Length > 0) { bridge.SetFindDistance(Arg(0)); return InjectionValue.Unit; }

                    return new InjectionValue(bridge.GetFindDistance());

UO.FindDistance(value) — UO.FindDistance(Any)

Paramètres: value (Any)

Résultat: void / Unit.

Pendant un appel:

Code interne de l’implémentation ; ce n’est pas un script autonome.

case "finddistance":

                    if (arguments.Length > 0) { bridge.SetFindDistance(Arg(0)); return InjectionValue.Unit; }

                    return new InjectionValue(bridge.GetFindDistance());

UO.FindFullQuantity

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

Signatures C#

dynamic UO.FindFullQuantity();

Lit le nombre total d'unités dans le dernier instantané de recherche.

Paramètres

Il n'y a pas de paramètres.

Valeur de retour

int — somme max(1, Montant) des éléments trouvés ; Chaque caractère trouvé ajoute 1. 0 aucune correspondance. Deux piles de 50 donnent 100 et FindCount donnent 2. Il s’agit d’un instantané au moment de la recherche et non d’un montant constamment mis à jour.

Comportement

  • Les données appartiennent à la dernière recherche normale de ce script. FindType avec les arguments 1–5, FindTypeEx, Count/CountEx/CountGround remplacent les résultats. Les commandes avancées de caractères filtrés ne sont pas nécessaires pour modifier cet instantané.
  • Une nouvelle recherche sans correspondance efface FindItem, FindCount et FindFullQuantity et efface GetFoundItems. La lecture d’un résultat ne déclenche pas à elle seule une nouvelle recherche.

Scripts C# autonomes

Chaque exemple peut être enregistré dans un fichier séparé .csx et exécuté dans IDE. Les fonctions d'objet UO et d'attente fournissent l'hôte de la session de jeu en cours. Remplacez les noms, coordonnées et adresses de la démo serial par les vôtres.

Exemple simple

Exécutez ce code dans un fichier .csx séparé. Les arguments sont visibles dans l’appel ; remplacez les noms, serials et adresses d’exemple par les vôtres.

Le résultat d’un seul appel est affiché dans le journal. Un nombre n’est pas converti en bool ; un tableau est affiché par son nombre d’éléments.

UO.FindType(0x0EED, -1, "backpack");
object? result = UO.FindFullQuantity();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));

1. Mesurer les résultats de recherche d'or - script direct

Paramètres et déroulement de l’exécution :

  • type=0x0EED – or ; color=-1 — n'importe quel hue ; backpack - uniquement le contenu direct du sac à dos sous cette forme FindType.
  • int — somme max(1, Montant) des éléments trouvés ; Chaque caractère trouvé ajoute 1. 0 aucune correspondance. Deux piles de 50 donnent 100 et FindCount donnent 2. Il s’agit d’un instantané au moment de la recherche et non d’un montant constamment mis à jour.
var found = UO.FindType(0x0EED, -1, "backpack");
var value = UO.FindFullQuantity();
UO.Print(Convert.ToString(value));

2. Comparer les éléments et les unités - Fonction de script

Paramètres et déroulement de l’exécution :

  • Les quatre lectures appartiennent à une recherche jusqu'à ce qu'une autre recherche soit appelée entre les deux.
  • Par exemple, deux piles de 50 : Items=2, First stack=50, All units=100 ; Le premier ID contient l'unique ID d'une pile.
return  RunScenario();
 object? RunScenario()
{
    var found = UO.FindType(0x0EED, -1, "backpack");
    UO.Print("Items: " + Convert.ToString(UO.FindCount()));
    UO.Print("First stack: " + Convert.ToString(UO.FindQuantity()));
    UO.Print("All units: " + Convert.ToString(UO.FindFullQuantity()));
    UO.Print("First ID: 0x" + Hex(UO.FindItem()));
    return null;
}

string Hex(object? value) => Convert.ToInt64(value).ToString("X");

3. Enregistrer le résultat jusqu'à la prochaine recherche - classe de script

Paramètres et déroulement de l’exécution :

  • Le premier type est de l'or, le second 0x0F7A est un type distinct de réactif. La nouvelle équipe change le plan global.
  • enregistré reste le numéro de la première recherche. La deuxième lecture s'applique au réactif même s'il n'y a pas de correspondance.
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 found = UO.FindType(0x0EED, -1, "backpack");
        var saved = UO.FindFullQuantity();
        found = UO.FindType(0x0F7A, -1, "backpack");
        UO.Print("Saved: " + Convert.ToString(saved));
        UO.Print("Current: " + Convert.ToString(UO.FindFullQuantity()));
        return null;
    }
}

Implémentation de la commande

C# distingue les majuscules. Utilisez le nom UO exact. Comparez les indicateurs numériques à 0 ; utilisez bool seulement si la signature renvoie bool.

UO.FindFullQuantity() — UO.FindFullQuantity()

Paramètres: Aucun paramètre.

Résultat: dynamic / Any.

Pendant un appel:

Code interne de l’implémentation ; ce n’est pas un script autonome.

case "findfullquantity": return new InjectionValue(bridge.FindFullQuantity());

UO.FindItem

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

Signatures C#

dynamic UO.FindItem();

Lit serial du premier résultat de la dernière recherche régulière.

Paramètres

Il n'y a pas de paramètres.

Valeur de retour

int - serial/ID du premier objet trouvé, 0 s'il n'y a pas de résultat. Il s'agit d'un serial numérique, alors que FindType renvoie une chaîne hexadécimale ou la chaîne vide. Ne renvoie pas type.

Comportement

  • Les données appartiennent à la dernière recherche normale de ce script. FindType avec les arguments 1–5, FindTypeEx, Count/CountEx/CountGround remplacent les résultats. Les commandes avancées de caractères filtrés ne sont pas nécessaires pour modifier cet instantané.
  • Une nouvelle recherche sans correspondance efface FindItem, FindCount et FindFullQuantity et efface GetFoundItems. La lecture d’un résultat ne déclenche pas à elle seule une nouvelle recherche.

Scripts C# autonomes

Chaque exemple peut être enregistré dans un fichier séparé .csx et exécuté dans IDE. Les fonctions d'objet UO et d'attente fournissent l'hôte de la session de jeu en cours. Remplacez les noms, coordonnées et adresses de la démo serial par les vôtres.

Exemple simple

Exécutez ce code dans un fichier .csx séparé. Les arguments sont visibles dans l’appel ; remplacez les noms, serials et adresses d’exemple par les vôtres.

Le résultat d’un seul appel est affiché dans le journal. Un nombre n’est pas converti en bool ; un tableau est affiché par son nombre d’éléments.

UO.FindType(0x0EED, -1, "backpack");
object? result = UO.FindItem();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));

1. Mesurer les résultats de recherche d'or - script direct

Paramètres et déroulement de l’exécution :

  • type=0x0EED – or ; color=-1 — n'importe quel hue ; backpack - uniquement le contenu direct du sac à dos sous cette forme FindType.
  • int - serial/ID du premier objet trouvé, 0 s'il n'y a pas de résultat. Il s'agit d'un serial numérique, alors que FindType renvoie une chaîne hexadécimale ou la chaîne vide. Ne renvoie pas type.
var found = UO.FindType(0x0EED, -1, "backpack");
var value = UO.FindItem();
UO.Print(Convert.ToString(value));

2. Comparer les éléments et les unités - Fonction de script

Paramètres et déroulement de l’exécution :

  • Les quatre lectures appartiennent à une recherche jusqu'à ce qu'une autre recherche soit appelée entre les deux.
  • Par exemple, deux piles de 50 : Items=2, First stack=50, All units=100 ; Le premier ID contient l'unique ID d'une pile.
return  RunScenario();
 object? RunScenario()
{
    var found = UO.FindType(0x0EED, -1, "backpack");
    UO.Print("Items: " + Convert.ToString(UO.FindCount()));
    UO.Print("First stack: " + Convert.ToString(UO.FindQuantity()));
    UO.Print("All units: " + Convert.ToString(UO.FindFullQuantity()));
    UO.Print("First ID: 0x" + Hex(UO.FindItem()));
    return null;
}

string Hex(object? value) => Convert.ToInt64(value).ToString("X");

3. Enregistrer le résultat jusqu'à la prochaine recherche - classe de script

Paramètres et déroulement de l’exécution :

  • Le premier type est de l'or, le second 0x0F7A est un type distinct de réactif. La nouvelle équipe change le plan global.
  • enregistré reste le numéro de la première recherche. La deuxième lecture s'applique au réactif même s'il n'y a pas de correspondance.
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 found = UO.FindType(0x0EED, -1, "backpack");
        var saved = UO.FindItem();
        found = UO.FindType(0x0F7A, -1, "backpack");
        UO.Print("Saved: " + Convert.ToString(saved));
        UO.Print("Current: " + Convert.ToString(UO.FindItem()));
        return null;
    }
}

Implémentation de la commande

C# distingue les majuscules. Utilisez le nom UO exact. Comparez les indicateurs numériques à 0 ; utilisez bool seulement si la signature renvoie bool.

UO.FindItem() — UO.FindItem()

Paramètres: Aucun paramètre.

Résultat: dynamic / Any.

Pendant un appel:

Code interne de l’implémentation ; ce n’est pas un script autonome.

case "finditem": return new InjectionValue(bridge.FindItem);

UO.FindList

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

Signatures C#

string UO.FindList(object? list);
string UO.FindList(object? list, object? container);
string UO.FindList(object? list, object? container, object? distance);
string UO.FindList(object? list, object? container, object? distance, object? notoriety);
string UO.FindList(object? list, object? container, object? distance, object? notoriety, object? nearest);
string UO.FindList(object? list, object? container, object? distance, object? notoriety, object? nearest, object? maxZ);
string UO.FindList(object? list, object? container, object? distance, object? notoriety, object? nearest, object? maxZ, object? includeIgnored);

Recherche des éléments téléchargés ou des mobiles sur plusieurs type/hue. Renvoie le premier serial sous forme de chaîne et stocke l'intégralité du résultat ordonné pour FindItem, FindCount et GetFoundItems.

Paramètres

  • list — Nom de l'ensemble non vide AddFindList ; ou un tableau plat de chiffres type ; ou une chaîne de types délimités par |, virgule, point-virgule ou espace, comme "0x0EED|0x0F7A". Les types tableau/chaîne utilisent n’importe quel hue. Les paires [type,hue] au sein d'un tableau ne sont pas prises en charge ; pour hue, créez un ensemble nommé. L'ordre des entrées détermine la priorité. Graphique/type de l'article soit body mobile plutôt que son serial. Généralement int 0..65535, y compris 0x0EED ; -1 ou 0xFFFF signifie n'importe quel type lors de la recherche. Fournissez une valeur par entrée. Plusieurs types sont ajoutés par des appels séparés.
  • container — Par défaut -1 : éléments dont le conteneur racine est un personnage (y compris les sacs et équipements imbriqués). "my" = -1. ground, "ground", UO.Ground(), numérique 0 ou 1 sélectionnent le monde : éléments au sol et mobiles, sauf self. "backpack" ou serial du conteneur >1 recherche uniquement le contenu direct, sans récursion. L'alias de l'objet se résout en serial ; un alias incorrect peut donner 0, alors vérifiez-le avec GetSerial à l'avance.
  • distance — Rayon non négatif des cellules par max(abs(dx),abs(dy)); diagonale - une cellule. Valable pour la recherche ground ; le contenu direct du conteneur n'est pas limité par la distance. Par défaut et avec un argument négatif, UO.FindDistance() est pris. 0 - le même X/Y.
  • notoriety — Par défaut - 1, n'importe quel code. Un seul numéro, la chaîne "5|6" ou un tableau plat de chiffres précise les codes mobiles autorisés ; Avec ce filtre, les éléments sont exclus. Codes : 0 inconnu, 1 innocent, 2 allié, 3 gris, 4 criminel, 5 ennemi, 6 meurtrier, 7 invulnérable ; le sens de la relation est déterminé par le serveur. Un masque vide /any/-1 sans codes spécifiques n'est pas limitatif. Lors du mélange de caractères génériques et de codes, les codes spécifiques restent une limitation. Les jetons non numériques sont ignorés à côté des jetons valides ; un masque composé uniquement de jetons erronés ne trouve rien.
  • nearest — Par défaut false. false/0 : liste la priorité d'entrée en premier, puis la priorité inférieure serial. true/1 : Distance d'abord, puis priorité à l'enregistrement, puis serial. Il s'agit d'une commande, pas d'un filtre supplémentaire.
  • maxZ — Différence absolue acceptable entre Z et le caractère inclus. L'argument par défaut ou négatif est UO.FindVertical() ; 0 n'autorise que le même Z. Pour un conteneur serial explicite >1, prenez Z du conteneur chargé (s'il n'y en a pas, Z choses) ; pour les autres modes - candidat Z. Les coordonnées d'un objet dans Gump ne correspondent pas à la hauteur du monde.
  • includeIgnored — Par défaut false : serial de Ignore de ce runtime sont exclus. true/1 les inclut uniquement dans cette recherche et n'efface pas Ignore.

Valeur de retour

string : hex-serial du premier résultat (par exemple "0x40000011") ou la chaîne vide "" s'il n'y a pas de correspondance. Il s'agit de ID, pas de type, de quantité et non de bool : vérifiez le résultat != "", pas le résultat == true. Avec une requête normale non vide, FindItem stocke le même numéro ID, FindCount() - le nombre d'objets distincts, GetFoundItems() - un tableau de leurs serial numériques.

Comportement

  • arguments de position 1 à 7 ; Vous ne pouvez sauter que la queue. Pour spécifier maxZ, transmettez explicitement les arguments précédents. La recherche est synchrone en fonction de l'état chargé localement : n'ouvre pas le conteneur, ne charge pas le contenu, ne vérifie pas la ligne de vue/disponibilité et n'attaque pas.
  • Chaque objet est inclus une fois, même s'il répond à plusieurs règles. Sa priorité est la première entrée correspondante. Le nom inconnu tente d'être analysé comme une chaîne de type ; illisible type/hue provoque une erreur de conversion.
  • Une requête non vide efface les FindItem/FindCount/GetFoundItems précédents avant la sélection ; aucune correspondance ne laisse des résultats vides. Exception : un tableau vide ou une liste de chaînes vide renvoie "" AVANT la recherche et conserve les résultats précédents. Ne comptez pas FindCount comme un nouveau résultat après un tel appel.
  • Changer les définitions de AddFindList/ClearFindList/DeleteFindList ne change pas l'ensemble déjà trouvé. L'autre recherche dans ce runtime remplace FindItem et le tableau global, alors enregistrez GetFoundItems avant la recherche imbriquée.
  • Les définitions sont dans l'état d'exécution du script donné. Un autre environnement d'exécution indépendant possède son propre ensemble ; la fermeture de la fenêtre IDE n'efface pas ces règles. Il ne s'agit pas d'un fichier de paramètres ni d'une liste d'objets de jeu globaux.
  • AddFindList ajoute l'entrée à la fin ; les répétitions ne sont pas supprimées. Pour réapprovisionner votre kit, appelez d'abord ClearFindList("name"). La modification des définitions n'efface pas les FindItem/FindCount/GetFoundItems qui ont déjà été reçus.
  • L'enregistrement stocke les champs de texte. Le littéral numérique 0x0EED est stocké sous "3821", la chaîne "0x0EED" est stockée sous "0x0EED". La recherche convertit les deux options en nombre et DeleteFindList compare le texte stocké. Utilisez le même formulaire lors de l’ajout et de la suppression.
  • Le nom inconnu dans FindList n'est pas un ensemble enregistré vide : le moteur tente de l'analyser comme une liste de types numériques. Un nom non numérique provoque une erreur de conversion. Après avoir supprimé la dernière entrée, créez un nouvel ensemble avant de rechercher ce nom.

Scripts C# autonomes

Chaque exemple peut être enregistré dans un fichier séparé .csx et exécuté dans IDE. Les fonctions d'objet UO et d'attente fournissent l'hôte de la session de jeu en cours. Remplacez les noms, coordonnées et adresses de la démo serial par les vôtres.

Exemple simple

Exécutez ce code dans un fichier .csx séparé. Les arguments sont visibles dans l’appel ; remplacez les noms, serials et adresses d’exemple par les vôtres.

Le résultat d’un seul appel est affiché dans le journal. Un nombre n’est pas converti en bool ; un tableau est affiché par son nombre d’éléments.

var result = UO.FindList(new[] { 0x0EED }, "backpack");
UO.Print("FindList: " + Convert.ToString(result));

1. Sélectionnez une ressource par priorité et transférez une pile - script direct

Paramètres et déroulement de l’exécution :

  • À false, l'or a la priorité sur le deuxième type, même à de plus grandes distances. Les rayons 2 et maxZ=5 limitent les candidats ; ils ne garantissent pas le droit de récupérer la chose.
  • Il s'agit d'une véritable action de jeu : seul le premier objet trouvé est transféré. Le résultat MoveItem ne signifie pas que le serveur a confirmé l'intégralité du déplacement.
BuildLoot();
var item = UO.FindList("loot", "ground", 2, -1, false, 5);
if (Truth(item == ""))
{
    return null;
}
var accepted = UO.MoveItem(item, 0, "backpack");
if (Truth(accepted == 0))
{
    UO.Print("Move was not accepted");
}

void BuildLoot()
{
    UO.ClearFindList("loot");
    UO.AddFindList("loot", 0x0EED, -1);
    UO.AddFindList("loot", 0x0F7A, -1);
}

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

2. Enregistrez le mobile le plus proche de deux notoriétés - fonction script

Paramètres et déroulement de l’exécution :

  • Sept paramètres : deux body, monde, rayon 12, codes 5 ou 6, le plus proche en premier, différence Z pas supérieure à 10, ignoré exclu. Il n’y a que sélection et sauvegarde ; le script attaquant doit vérifier séparément les conditions appropriées.
return  RunScenario();
 object? RunScenario()
{
    var target = UO.FindList("0x0190|0x0191", "ground", 12, "5|6", true, 10, false);
    if (Truth(target != ""))
    {
        UO.AddObject("candidate", target);
        UO.Print("Candidate: " + UO.GetName(target));
    }

    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. Compter les stocks de plusieurs types à partir d'un tableau - classe de script

Paramètres et déroulement de l’exécution :

  • déclarer les types de variables[1] crée les indices 0 et 1 dans ce moteur. Les unités des deux types sont additionnées, pas le nombre de piles. backpack limité au contenu direct ; Les sacs insérés ne sont pas inclus ici.
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()
    {
        dynamic[] types = new dynamic[checked((int)(1) + 1)];
        types[0] = 0x0EED;
        types[1] = 0x0F7A;
        var first = UO.FindList(types, "backpack");
        var total = 0;
        if (Truth(first != ""))
        {
            var items = UO.GetFoundItems();
            foreach (var item in items)
            {
                total += UO.FindCount(item);
            }
        }

        if (Truth(total < 100))
        {
            UO.Print("Stock below limit: " + Convert.ToString(total));
        }

        return null;
    }

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

Implémentation de la commande

C# distingue les majuscules. Utilisez le nom UO exact. Comparez les indicateurs numériques à 0 ; utilisez bool seulement si la signature renvoie bool.

UO.FindList(list) — UO.FindList(Any)

Paramètres: list (Any)

Résultat: string / String.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(CompactFindList(values))

UO.FindList(list, container) — UO.FindList(Any,Any)

Paramètres: list (Any), container (Any)

Résultat: string / String.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(CompactFindList(values))

UO.FindList(list, container, distance) — UO.FindList(Any,Any,Any)

Paramètres: list (Any), container (Any), distance (Any)

Résultat: string / String.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(CompactFindList(values))

UO.FindList(list, container, distance, notoriety) — UO.FindList(Any,Any,Any,Any)

Paramètres: list (Any), container (Any), distance (Any), notoriety (Any)

Résultat: string / String.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(CompactFindList(values))

UO.FindList(list, container, distance, notoriety, nearest) — UO.FindList(Any,Any,Any,Any,Any)

Paramètres: list (Any), container (Any), distance (Any), notoriety (Any), nearest (Any)

Résultat: string / String.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(CompactFindList(values))

UO.FindList(list, container, distance, notoriety, nearest, maxZ) — UO.FindList(Any,Any,Any,Any,Any,Any)

Paramètres: list (Any), container (Any), distance (Any), notoriety (Any), nearest (Any), maxZ (Any)

Résultat: string / String.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(CompactFindList(values))

UO.FindList(list, container, distance, notoriety, nearest, maxZ, includeIgnored) — UO.FindList(Any,Any,Any,Any,Any,Any,Any)

Paramètres: list (Any), container (Any), distance (Any), notoriety (Any), nearest (Any), maxZ (Any), includeIgnored (Any)

Résultat: string / String.

Pendant un appel:

L’appel exécute le delegate du gestionnaire enregistré. La méthode d’enregistrement crée ce delegate lors de la construction de l’API.

Code interne de l’implémentation ; ce n’est pas un script autonome.

values => new InjectionValue(CompactFindList(values))

Clone this wiki locally