API UO FindTypesArrayEx fr - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
ClassicUO • Runtime API
Cherche plusieurs graphiques, couleurs et conteneurs en un parcours et renvoie un ID. GetFoundItems fournit la liste complète.
UO.FindTypesArrayEx(ObjTypes:Any, Colors:Any, Containers:Any, InSub:Any) -> Integer
-
ObjTypes— Graphic/body, pas le serial d’un objet. 0..65534 désigne un graphique ; -1 ou 0xFFFF accepte tout. Les autres Integer négatifs font aussi office de joker. -
Colors— Hue, pas une quantité. 0 signifie sans teinture ; -1 ou 0xFFFF toute couleur. Les autres Integer négatifs désactivent aussi ce filtre. -
Containers— Sol : UO.Ground(), 0, -1, 0xFFFFFFFF ou chaîne ground. Sac à dos : backpack ou son serial. Serials décimaux/hex et noms AddObject acceptés. my choisit tout l’inventaire du joueur, équipement et sacs imbriqués compris. Un nom inconnu provoque une erreur de script. Vérifiez un serial résolu : 0 explicite sélectionne le sol. Préférez ground/backpack aux conventions numériques propres à chaque API. -
InSub— TRUE/FALSE (1/0), obligatoire. FALSE : contenu direct d’un conteneur précis ; TRUE : aussi ses sacs imbriqués chargés. Aucun effet au sol. my couvre déjà tout l’inventaire possédé.
Integer : serial du premier résultat dans l’ordre local, ou 0 sans résultat. Ni graphique, ni quantité, ni tableau, ni Boolean. Testez result <> 0, pas result = TRUE ou result = 1. Une pile est un objet ; un Mobile est un objet et une unité. L’ordre ne garantit ni proximité ni stabilité.
- Passez un Array ; une valeur scalaire est aussi acceptée comme un seul élément. DIM values[1] crée les indices 0 et 1 : remplissez tout. Types et couleurs sont des alternatives indépendantes, pas des paires par indice. Un joker n’importe où, ou un tableau types/couleurs vide, supprime ce filtre. Un tableau de conteneurs vide sélectionne l’inventaire possédé. Les chevauchements et répétitions ne dupliquent pas les ID.
- Les quatre arguments positionnels sont obligatoires ; aucun ne peut être omis.
- Au sol, FindDistance/FindVertical de ce script s’appliquent ; self est exclu, les Item et Mobile correspondants sont inclus. Ces limites ne s’appliquent pas à un conteneur précis. Ignore et les objets détruits sont exclus dans les deux cas.
- FindItem, FindCount, FindFullQuantity et GetFoundItems sont vidés avant le parcours. Aucun résultat laisse des zéros et un tableau vide. FindFullQuantity additionne max(1, Amount) par Item et 1 par Mobile. FindQuantity lit la quantité actuelle de FindItem. Sauvegardez GetFoundItems avant qu’une autre recherche remplace cet état.
- Le bridge parcourt une fois les Item chargés, puis les Mobile si le sol est sélectionné. Type, couleur et au moins un conteneur doivent correspondre. Chaque objet est enregistré une fois, sans reparcourir tout le monde pour chaque combinaison.
- Uniquement les données reçues : aucun conteneur ouvert, case chargée ou transfert. Une recherche vide ne prouve pas un coffre vide sur le serveur. Vérifiez Connected si une connexion active est nécessaire ; la recherche lit l’état local.
- Stealth FindTypesArrayEx. La référence décrit le dernier ID et un repli sur le sac pour un conteneur invalide. Ici, le premier résultat local est conservé ; un nom inconnu ne choisit pas le sac. Ground accepte aussi 0 ; FindDistance local vaut initialement 18, maximum 255.
Étapes réelles, pas des commandes publiques supplémentaires. FindGoldNearSelf et SearchTypesIn sont des fonctions de script fournies intégralement ci-dessous.
Le runtime convertit les filtres numériques et résout séparément les noms ; le sol devient la portée monde interne du bridge.
Les quatre arguments positionnels sont obligatoires ; aucun ne peut être omis.
Source du projet: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; fonction ExecuteStealthCompatibility.
Sol : UO.Ground(), 0, -1, 0xFFFFFFFF ou chaîne ground. Sac à dos : backpack ou son serial. Serials décimaux/hex et noms AddObject acceptés. my choisit tout l’inventaire du joueur, équipement et sacs imbriqués compris. Un nom inconnu provoque une erreur de script. Vérifiez un serial résolu : 0 explicite sélectionne le sol. Préférez ground/backpack aux conventions numériques propres à chaque API.
Le runtime convertit les filtres numériques et résout séparément les noms ; le sol devient la portée monde interne du bridge.
Source du projet: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; fonction ConvertStealthSearchContainer.
FindItem, FindCount, FindFullQuantity et GetFoundItems sont vidés avant le parcours. Aucun résultat laisse des zéros et un tableau vide. FindFullQuantity additionne max(1, Amount) par Item et 1 par Mobile. FindQuantity lit la quantité actuelle de FindItem. Sauvegardez GetFoundItems avant qu’une autre recherche remplace cet état.
Integer : serial du premier résultat dans l’ordre local, ou 0 sans résultat. Ni graphique, ni quantité, ni tableau, ni Boolean. Testez result <> 0, pas result = TRUE ou result = 1. Une pile est un objet ; un Mobile est un objet et une unité. L’ordre ne garantit ni proximité ni stabilité.
Source du projet: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; fonction ResetFindResults.
Passez un Array ; une valeur scalaire est aussi acceptée comme un seul élément. DIM values[1] crée les indices 0 et 1 : remplissez tout. Types et couleurs sont des alternatives indépendantes, pas des paires par indice. Un joker n’importe où, ou un tableau types/couleurs vide, supprime ce filtre. Un tableau de conteneurs vide sélectionne l’inventaire possédé. Les chevauchements et répétitions ne dupliquent pas les ID.
Le bridge parcourt une fois les Item chargés, puis les Mobile si le sol est sélectionné. Type, couleur et au moins un conteneur doivent correspondre. Chaque objet est enregistré une fois, sans reparcourir tout le monde pour chaque combinaison.
Source du projet: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; fonction BuildFindIdentityMask.
Le bridge parcourt une fois les Item chargés, puis les Mobile si le sol est sélectionné. Type, couleur et au moins un conteneur doivent correspondre. Chaque objet est enregistré une fois, sans reparcourir tout le monde pour chaque combinaison.
Au sol, FindDistance/FindVertical de ce script s’appliquent ; self est exclu, les Item et Mobile correspondants sont inclus. Ces limites ne s’appliquent pas à un conteneur précis. Ignore et les objets détruits sont exclus dans les deux cas.
Source du projet: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; fonction FindTypes.
Graphic/body, pas le serial d’un objet. 0..65534 désigne un graphique ; -1 ou 0xFFFF accepte tout. Les autres Integer négatifs font aussi office de joker. Hue, pas une quantité. 0 signifie sans teinture ; -1 ou 0xFFFF toute couleur. Les autres Integer négatifs désactivent aussi ce filtre.
Le bridge parcourt une fois les Item chargés, puis les Mobile si le sol est sélectionné. Type, couleur et au moins un conteneur doivent correspondre. Chaque objet est enregistré une fois, sans reparcourir tout le monde pour chaque combinaison.
Source du projet: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; fonction MatchesFindIdentity.
TRUE/FALSE (1/0), obligatoire. FALSE : contenu direct d’un conteneur précis ; TRUE : aussi ses sacs imbriqués chargés. Aucun effet au sol. my couvre déjà tout l’inventaire possédé.
Au sol, FindDistance/FindVertical de ce script s’appliquent ; self est exclu, les Item et Mobile correspondants sont inclus. Ces limites ne s’appliquent pas à un conteneur précis. Ignore et les objets détruits sont exclus dans les deux cas.
Source du projet: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; fonction MatchesFindContainer.
FindItem, FindCount, FindFullQuantity et GetFoundItems sont vidés avant le parcours. Aucun résultat laisse des zéros et un tableau vide. FindFullQuantity additionne max(1, Amount) par Item et 1 par Mobile. FindQuantity lit la quantité actuelle de FindItem. Sauvegardez GetFoundItems avant qu’une autre recherche remplace cet état.
Integer : serial du premier résultat dans l’ordre local, ou 0 sans résultat. Ni graphique, ni quantité, ni tableau, ni Boolean. Testez result <> 0, pas result = TRUE ou result = 1. Une pile est un objet ; un Mobile est un objet et une unité. L’ordre ne garantit ni proximité ni stabilité.
Source du projet: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; fonction RegisterFound.
Uniquement les données reçues : aucun conteneur ouvert, case chargée ou transfert. Une recherche vide ne prouve pas un coffre vide sur le serveur. Vérifiez Connected si une connexion active est nécessaire ; la recherche lit l’état local.
# Deux graphiques au sol
#
# Cherche plusieurs graphiques, couleurs et conteneurs en un parcours et renvoie un ID.
# GetFoundItems fournit la liste complète.
#
# Integer : serial du premier résultat dans l’ordre local, ou 0 sans résultat. Ni graphique, ni
# quantité, ni tableau, ni Boolean. Testez result <> 0, pas result = TRUE ou result = 1. Une
# pile est un objet ; un Mobile est un objet et une unité. L’ordre ne garantit ni proximité ni
# stabilité.
SUB Main()
# types : or 0x0EED et perles noires 0x0F7A ; color=-1 : tout hue ; Ground : monde. FALSE n’y
# change rien. Les limites actuelles s’appliquent. Affiche ID, objets et unités.
DIM types[1]
types[0] = 0x0EED
types[1] = 0x0F7A
DIM colors[0]
colors[0] = -1
DIM containers[0]
containers[0] = UO.Ground()
VAR first = UO.FindTypesArrayEx(types, colors, containers, FALSE)
UO.Print(Hex(first))
UO.Print(STR(UO.FindCount()))
UO.Print(STR(UO.FindFullQuantity()))
END SUBExplication des paramètres et du déroulement:
- types : or 0x0EED et perles noires 0x0F7A ; color=-1 : tout hue ; Ground : monde. FALSE n’y change rien. Les limites actuelles s’appliquent. Affiche ID, objets et unités.
# Or dans le sac et au sol
#
# Cherche plusieurs graphiques, couleurs et conteneurs en un parcours et renvoie un ID.
# GetFoundItems fournit la liste complète.
#
# Integer : serial du premier résultat dans l’ordre local, ou 0 sans résultat. Ni graphique, ni
# quantité, ni tableau, ni Boolean. Testez result <> 0, pas result = TRUE ou result = 1. Une
# pile est un objet ; un Mobile est un objet et une unité. L’ordre ne garantit ni proximité ni
# stabilité.
SUB Main()
# types : or seulement ; colors : tout hue. Containers : backpack et sol ; TRUE inclut les
# sous-sacs. Affiche objets/piles et unités des deux portées sans compter deux fois un objet.
DIM types[0]
types[0] = 0x0EED
DIM colors[0]
colors[0] = -1
DIM containers[1]
containers[0] = 'backpack'
containers[1] = UO.Ground()
UO.FindTypesArrayEx(types, colors, containers, TRUE)
UO.Print(STR(UO.FindCount()))
UO.Print(STR(UO.FindFullQuantity()))
END SUBExplication des paramètres et du déroulement:
- types : or seulement ; colors : tout hue. Containers : backpack et sol ; TRUE inclut les sous-sacs. Affiche objets/piles et unités des deux portées sans compter deux fois un objet.
# Fonction complète renvoyant une liste
#
# Cherche plusieurs graphiques, couleurs et conteneurs en un parcours et renvoie un ID.
# GetFoundItems fournit la liste complète.
#
# Integer : serial du premier résultat dans l’ordre local, ou 0 sans résultat. Ni graphique, ni
# quantité, ni tableau, ni Boolean. Testez result <> 0, pas result = TRUE ou result = 1. Une
# pile est un objet ; un Mobile est un objet et une unité. L’ordre ne garantit ni proximité ni
# stabilité.
SUB Main()
# SearchTypesIn(container,firstType,secondType) renvoie Array<Integer>, contrairement à
# l’Integer ID unique de la commande intégrée. Le code complet remplit les tableaux, cherche
# récursivement et copie immédiatement GetFoundItems. Main vérifie puis affiche chaque ID.
VAR items = SearchTypesIn('backpack', 0x0EED, 0x0F7A)
FOR EACH item IN items
IF UO.IsObjectExists(item) THEN
UO.Print(Hex(item))
END IF
NEXT
END SUB
FUNCTION SearchTypesIn(container, firstType, secondType)
DIM types[1]
types[0] = firstType
types[1] = secondType
DIM colors[0]
colors[0] = -1
DIM containers[0]
containers[0] = container
UO.FindTypesArrayEx(types, colors, containers, TRUE)
RETURN UO.GetFoundItems()
END FUNCTIONExplication des paramètres et du déroulement:
- SearchTypesIn(container,firstType,secondType) renvoie Array, contrairement à l’Integer ID unique de la commande intégrée. Le code complet remplit les tableaux, cherche récursivement et copie immédiatement GetFoundItems. Main vérifie puis affiche chaque ID.