Repository navigation
UO Topic search
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
Головна · C# · IDE · Команди UO · За абеткою · Приклади · Мови
Пошук предметів і істот за типом, відстанню, координатами та іншими умовами. Результатом може бути ідентифікатор, кількість або список. Значення «не знайдено» потрібно перевіряти за описом конкретної команди.
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
UO.FindMobile · UO.FindMan · UO.FindByNotoriety · UO.FindNotoriety
UO.FindDistance · UO.FindVertical
UO.AddFindList · UO.ClearFindList · UO.DeleteFindList · UO.FindList · UO.InfoFindList · UO.MFGI
UO.Ignore · UO.IgnoreOff · UO.IgnoreReset · UO.AddIgnoreList · UO.ClearIgnoreList · UO.DeleteIgnoreList · UO.SelectIgnoreList · UO.GetIgnoreList
UO.SetBadObject · UO.ClearBadObjectList
UO.SetBadLocation · UO.ClearBadLocationList
Нижче наведено короткі приклади. У повному описі кожної команди є параметри, результат, обмеження та кілька самостійних скриптів: прямий код, варіант із функцією та варіант із класом.
Параметри, результат та всі сценарії
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;Параметри, результат та всі сценарії
var found = UO.FindType(0x0EED, -1, "backpack");
var value = UO.FindFullQuantity();
UO.Print(Convert.ToString(value));Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.AddFindList(object? list, object? @type);
void UO.AddFindList(object? list, object? @type, object? color);Додає правило type/hue до іменованого набору для UO.FindList. Набір дозволяє повторно шукати кілька видів предметів або тіл mobiles і задавати пріоритет типів порядку додавання.
-
list- Ім'я набору правил, наприклад "loot". Передавайте рядок без |: цей знак використовується всередині запису як роздільник. Реєстр імені не враховується. Це не serial контейнер та не масив знайдених предметів. -
type— Graphic/type предмета або body mobile, а не його serial. Зазвичай int 0..65535, включаючи 0x0EED; -1 або 0xFFFF означають будь-який type при пошуку. Вказуйте значення на запис. Декілька типів додаються окремими дзвінками. -
color— Hue предмета/тіла, не RGB. int 0..65535; 0 - звичайний hue 0, -1 або 0xFFFF - будь-який. У AddFindList пропуск color означає будь-який hue при пошуку.
void: значення, що повертається, немає. Не привласнюйте виклик змінною та не перевіряйте його на true/1. Стан визначень можна вивести UO.InfoFindList(); сам пошук запускається окремо через UO.FindList().
- Визначення перебувають у стані даного скриптового runtime. Самостійний інший runtime має свій набір; закриття вікна IDE не є очищенням цих правил. Це не файл налаштувань та не список глобальних об'єктів гри.
- AddFindList дописує запис до кінця; повторення не видаляються. Для повторної підготовки свого набору спершу викликайте ClearFindList("ім'я"). Зміна визначень не очищає вже отримані FindItem/FindCount/GetFoundItems.
- Запис зберігає текстові поля. Числовий літерал "0x0EED" зберігається як "3821", рядок "0x0EED" - як "0x0EED". Пошук перетворює обидва варіанти на число, а DeleteFindList порівнює саме збережений текст. Використовуйте однакову форму при додаванні та видаленні.
- Невідоме ім'я в FindList не є порожнім зареєстрованим набором: двигун намагається розібрати його як список числових типів. Число ім'я викликає помилку перетворення. Після видалення останнього запису створіть новий набір до пошуку цього імені.
- Аргументи зберігаються одночасно; перевірка числового type/hue виконується при FindList. AddFindList не шукає, не переносить предмети і не додає serial у Ignore.
Кожен приклад можна зберегти окремим файлом .csx та запускати в IDE. Об'єкт UO та функції очікування надає host поточної ігрової сесії. Демонстраційні serial, імена, координати та адреси замініть своїми.
Виконайте цей код як окремий файл .csx. Аргументи видно безпосередньо у виклику; демонстраційні імена, serial та адреси замініть своїми.
Команда викликається окремим рядком. Повідомлення перед нею показує початок виклику, а не підтвердження дії сервера.
UO.Print("Calling UO.AddFindList");
UO.AddFindList("simple_loot", 0x0EED);Параметри та порядок виконання:
- 0x0EED - золото, 0x0F7A - другий graphic набору. За інших даних сервера замініть graphics. Повна процедура BuildLoot наведена вище.
- FindCount(item) читає кількість одиниць конкретного стека; GetFoundItems містить distinct serial. Жодного перенесення цей приклад не виконує.
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;Параметри та порядок виконання:
- 0x0044 фільтрує hue; це не serial. backpack шукає прямий вміст рюкзака. AddObject зберігає вибраний об'єкт під ім'ям у цьому 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;Параметри та порядок виконання:
- У кожному записі відсутній color означає будь-який hue. Рядок "5|6" дозволяє два коди notoriety; цей фільтр виключає звичайні Item. Пошук не атакує та не запускає 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;
}C# враховує регістр. Використовуйте точне ім’я UO. Числові прапорці порівнюйте з 0; bool використовуйте лише там, де сигнатура повертає bool.
Параметри: list (Any), type (Any)
Результат: void / Unit.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::LegacyList:LegacyList(name). -
InjectionScript.Runtime.InjectionValue.ToString:value.ToString().
Внутрішній код реалізації, не самостійний скрипт.
case "adddir":
case "addfindlist":
case "addgate":
case "addrecall":
case "addstep":
LegacyList(name).Add(string.Join("|", arguments.Select(value => value.ToString())));
break;Параметри: list (Any), type (Any), color (Any)
Результат: void / Unit.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::LegacyList:LegacyList(name). -
InjectionScript.Runtime.InjectionValue.ToString:value.ToString().
Внутрішній код реалізації, не самостійний скрипт.
case "adddir":
case "addfindlist":
case "addgate":
case "addrecall":
case "addstep":
LegacyList(name).Add(string.Join("|", arguments.Select(value => value.ToString())));
break;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.AddIgnoreList(object? list, object? @type);
void UO.AddIgnoreList(object? list, object? @type, object? color);Готує іменований набір речей, які треба пропускати під час пошуку: наприклад, не підбирати золото або не вибирати речі певного кольору. Правило задається за type і hue, тому поширюється на всі відповідні об’єкти, включно з тими, що з’являться пізніше. Після налаштування ввімкніть набір через SelectIgnoreList.
-
list- Довільне непусте ім'я, наприклад "loot_skip". Ім'я не враховує регістру. Це не назва предмета, не serial контейнера і не назва FindList. -
type- Graphic/type предмета або body mobile. Наприклад 0x0EED — золото, 0x0191 — жіноче людське тіло. Число або числовий рядок ("0x0EED", "3821"); -1/інше негативне/0xFFFF - будь-який type. Значення більше 65535 неприпустимі. Для кількох type додайте кілька правил. -
color- Hue: 0 - тільки незабарвлені, 0x0044 - приклад точного кольору; негативне або 0xFFFF - будь-який. Значення більше 65535 неприпустимі. У Add за замовчуванням - 1. Type і hue всередині одного правила з'єднуються умовою І; різні правила - АБО.
void - значення немає. Використовуйте окремий рядок без var result = і без перевірки = true. Команда змінює локальний фільтр; не повертає кількість предметів і не надсилає серверу.
- Додає до списку, вказаного ПЕРШИМ аргументом, незалежно від обраного списку. Повторна чисельно однакова пара не дублюється.
- Іменований список містить правила graphic/type + hue, а звичайний Ignore містить конкретні serial. Це різні фільтри: вони об'єднуються при підтримуючому їх пошуку. Об'єкти залишаються видимими та доступними прямому UseObject/MoveItem; це не Hide і не заборона дій.
- Ім'я списку не враховує регістр; пробіли з обох боків видаляються. Активний один іменований список, спочатку default. AddIgnoreList не вибирає його автоматично. SelectIgnoreList("") вимикає лише іменований фільтр.
- Правила діють нові пошуки, включаючи предмети, завантажені ПІСЛЯ їх додавання. Вже отриманий масив та попередній результат FindCount не перераховуються до нового пошуку. Не вибирайте список із правилом -1, -1, якщо не хочете виключити все.
- Фільтр враховують FindType/FindTypeEx/FindTypesArrayEx, FindList, FindAtCoord, FindNotoriety, Count/CountEx та розширені вибірки GetMobiles, GetWorldItems, UseType, WaitTarget, Attack/AttackNearest/FindMan. includeIgnored=true, де його передбачено, обходить і serial, і type/hue. Повний перелік GetContent/GetEquipment, GetWorldItems() без аргументів та словесний FindMobile(Human, near, ...) не використовують ці правила.
- GetIgnoreList повертає тільки явно додані serial; рядки іменованого списку до цього масиву не входять. IgnoreReset очищає весь serial-фільтр, IgnoreOff(serial) знімає одне serial-виключення; іменовані правила зберігаються. ClearIgnoreList() без аргументів очищає обидва види.
- Стан належить загальному стану скриптів профілю клієнта; зміна впливає інші скрипти з цим станом. Установки входять у знімок, що зберігається. Після зміни правил інший скрипт може вже виконувати пошук зі знятим раніше знімком наступний пошук побачить оновлення.
Кожен приклад можна зберегти окремим файлом .csx та запускати в IDE. Об'єкт UO та функції очікування надає host поточної ігрової сесії. Демонстраційні serial, імена, координати та адреси замініть своїми.
Виконайте цей код як окремий файл .csx. Аргументи видно безпосередньо у виклику; демонстраційні імена, serial та адреси замініть своїми.
Команда викликається окремим рядком. Повідомлення перед нею показує початок виклику, а не підтвердження дії сервера.
UO.Print("Calling UO.AddIgnoreList");
UO.AddIgnoreList("simple_skip", 0x0EED);Параметри та порядок виконання:
- loot_skip – назва набору. Пропущений color означає будь-який hue. FindType повертає hex-рядок ID або порожній рядок; тут результат зберігається під next_loot, а предмет не переміщується. Пошук землі може знайти і 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;Параметри та порядок виконання:
- 0x1F03 - graphic роби; 0x0044 — приклад забарвлення, що захищається. Робу іншого hue пошук допускає. Це захист від вибору фільтруючим пошуком, не від прямого MoveItem за відомим ID.
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;Параметри та порядок виконання:
- Правила зберігаються у обох списках. Щоб виключати і золото, і роби одночасно, додайте обидва type в один список.
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;
}
}C# враховує регістр. Використовуйте точне ім’я UO. Числові прапорці порівнюйте з 0; bool використовуйте лише там, де сигнатура повертає bool.
Параметри: list (Any), type (Any)
Результат: void / Unit.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.State.NamedIgnoreLists.Add:state.IgnoreTypeLists.Add(Text(0), ResolveType(arguments[1]), arguments.Length > 2 ? NumberConversions.ToInt(arguments[2]) : -1). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Text:Text(0). -
InjectionScript.Runtime.InjectionApiUO.ResolveType:ResolveType(arguments[1]). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(arguments[2]).
Внутрішній код реалізації, не самостійний скрипт.
case "addignorelist":
state.IgnoreTypeLists.Add(Text(0), ResolveType(arguments[1]),
arguments.Length > 2 ? NumberConversions.ToInt(arguments[2]) : -1);
break;Параметри: list (Any), type (Any), color (Any)
Результат: void / Unit.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.State.NamedIgnoreLists.Add:state.IgnoreTypeLists.Add(Text(0), ResolveType(arguments[1]), arguments.Length > 2 ? NumberConversions.ToInt(arguments[2]) : -1). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Text:Text(0). -
InjectionScript.Runtime.InjectionApiUO.ResolveType:ResolveType(arguments[1]). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(arguments[2]).
Внутрішній код реалізації, не самостійний скрипт.
case "addignorelist":
state.IgnoreTypeLists.Add(Text(0), ResolveType(arguments[1]),
arguments.Length > 2 ? NumberConversions.ToInt(arguments[2]) : -1);
break;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.ClearBadLocationList();Видаляє всі пари, збережені SetBadLocation.
Параметрів немає.
void - значення, що повертається немає. Викликайте окремим рядком; це не true/false та не число кроків.
- Не змінює карту, персонажів чи перешкоди на сервері. Очищається лише прикладний список runtime.
- Вже отриманий масив шляху і знімок заборони маршруту, що йде, не змінюються. Для нового результату повторіть запит шляху або запустіть рух знову. Список SetBadObject очищається окремо.
Кожен приклад можна зберегти окремим файлом .csx та запускати в IDE. Об'єкт UO та функції очікування надає host поточної ігрової сесії. Демонстраційні serial, імена, координати та адреси замініть своїми.
Виконайте цей код як окремий файл .csx. Аргументи видно безпосередньо у виклику; демонстраційні імена, serial та адреси замініть своїми.
Команда викликається окремим рядком. Повідомлення перед нею показує початок виклику, а не підтвердження дії сервера.
UO.Print("Calling UO.ClearBadLocationList");
UO.ClearBadLocationList();Параметри та порядок виконання:
- Параметрів немає.
- Значення, що повертається, немає.
UO.ClearBadLocationList();Параметри та порядок виконання:
- Спочатку видаляються попередні пари, потім додається нова.
- Це не фізична перешкода та не зміна клієнтської картки.
return RunScenario();
object? RunScenario()
{
UO.ClearBadLocationList();
UO.SetBadLocation(1445, 1690);
return null;
}Параметри та порядок виконання:
- Мета - чотири клітини на схід, Optimized = true, Accuracy = 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()
{
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;
}C# враховує регістр. Використовуйте точне ім’я UO. Числові прапорці порівнюйте з 0; bool використовуйте лише там, де сигнатура повертає bool.
Параметри: Немає параметрів.
Результат: void / Unit.
Під час виклику:
Внутрішній код реалізації, не самостійний скрипт.
case "clearbadlocationlist": state.BadLocations.Clear(); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.ClearBadObjectList();Видаляє всі правила type/hue/radius, додані SetBadObject у поточному runtime.
Параметрів немає.
void - значення, що повертається немає. Викликайте окремим рядком; це не true/false та не число кроків.
- Параметрів немає. Повторний дзвінок при порожньому списку є безпечним.
- Не очищає SetBadLocation і не прибирає природних перешкод. Новий рух або запит на шляху використовує очищений список; Раніше запущений маршрут зберігає власний знімок.
Кожен приклад можна зберегти окремим файлом .csx та запускати в IDE. Об'єкт UO та функції очікування надає host поточної ігрової сесії. Демонстраційні serial, імена, координати та адреси замініть своїми.
Виконайте цей код як окремий файл .csx. Аргументи видно безпосередньо у виклику; демонстраційні імена, serial та адреси замініть своїми.
Команда викликається окремим рядком. Повідомлення перед нею показує початок виклику, а не підтвердження дії сервера.
UO.Print("Calling UO.ClearBadObjectList");
UO.ClearBadObjectList();Параметри та порядок виконання:
- Аргументів немає; дзвінок записується окремим рядком.
- Немає результату true/false та немає кількості віддалених правил.
UO.ClearBadObjectList();Параметри та порядок виконання:
- Після очищення додається лише type=0x398C будь-якого кольору.
- Radius=2 виключає квадрат 5×5 навколо відповідних предметів при наступному маршруті.
return RunScenario();
object? RunScenario()
{
UO.ClearBadObjectList();
UO.SetBadObject(0x398C, -1, 2);
return null;
}Параметри та порядок виконання:
- Два списки є незалежними: для скидання обох викликаються обидві команди.
- Три клітини на схід — приклад мети. Прохідність картки, висота та ліміт пошуку зберігаються; порожній масив залишається допустимим результатом.
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;
}C# враховує регістр. Використовуйте точне ім’я UO. Числові прапорці порівнюйте з 0; bool використовуйте лише там, де сигнатура повертає bool.
Параметри: Немає параметрів.
Результат: void / Unit.
Під час виклику:
Внутрішній код реалізації, не самостійний скрипт.
case "clearbadobjectlist": state.BadObjects.Clear(); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.ClearFindList();
void UO.ClearFindList(object? list);Видаляє визначення одного найменованого набору пошуку або всіх наборів AddFindList поточного runtime. Використовується перед повторним налаштуванням фільтрів, щоб правила не накопичувалися.
-
list- Ім'я набору правил, наприклад "loot". Передавайте рядок без |: цей знак використовується всередині запису як роздільник. Реєстр імені не враховується. Це не serial контейнер та не масив знайдених предметів. Якщо аргумент відсутній, видаляються ВСІ визначення AddFindList у цьому runtime.
void: значення, що повертається, немає. Не привласнюйте виклик змінною та не перевіряйте його на true/1. Стан визначень можна вивести UO.InfoFindList(); сам пошук запускається окремо через UO.FindList().
- Визначення перебувають у стані даного скриптового runtime. Самостійний інший runtime має свій набір; закриття вікна IDE не є очищенням цих правил. Це не файл налаштувань та не список глобальних об'єктів гри.
- AddFindList дописує запис до кінця; повторення не видаляються. Для повторної підготовки свого набору спершу викликайте ClearFindList("ім'я"). Зміна визначень не очищає вже отримані FindItem/FindCount/GetFoundItems.
- Запис зберігає текстові поля. Числовий літерал "0x0EED" зберігається як "3821", рядок "0x0EED" - як "0x0EED". Пошук перетворює обидва варіанти на число, а DeleteFindList порівнює саме збережений текст. Використовуйте однакову форму при додаванні та видаленні.
- Невідоме ім'я в FindList не є порожнім зареєстрованим набором: двигун намагається розібрати його як список числових типів. Число ім'я викликає помилку перетворення. Після видалення останнього запису створіть новий набір до пошуку цього імені.
- Неіснуюче ім'я є безпечним: нічого не видаляється. Команда не видаляє ігрові предмети, не очищає Ignore та не скасовує рух.
Кожен приклад можна зберегти окремим файлом .csx та запускати в IDE. Об'єкт UO та функції очікування надає host поточної ігрової сесії. Демонстраційні serial, імена, координати та адреси замініть своїми.
Виконайте цей код як окремий файл .csx. Аргументи видно безпосередньо у виклику; демонстраційні імена, serial та адреси замініть своїми.
Команда викликається окремим рядком. Повідомлення перед нею показує початок виклику, а не підтвердження дії сервера.
UO.Print("Calling UO.ClearFindList");
UO.ClearFindList();Параметри та порядок виконання:
- Усередині BuildLoot очищається лише loot. Інші іменовані набори цього сценарію зберігаються.
BuildLoot();
BuildLoot();
UO.InfoFindList();
void BuildLoot()
{
UO.ClearFindList("loot");
UO.AddFindList("loot", 0x0EED, -1);
UO.AddFindList("loot", 0x0F7A, -1);
}Параметри та порядок виконання:
- Реєстр SEASON не важливий. reserve залишається; у season тепер тільки новий type/hue. Після очищення спочатку додається запис, потім дозволено пошук на ім'я.
return RunScenario();
object? RunScenario()
{
UO.AddFindList("reserve", 0x0EED);
UO.AddFindList("season", 0x0F7A);
UO.ClearFindList("SEASON");
UO.AddFindList("season", 0x0EED, 0x0044);
UO.InfoFindList();
return null;
}Параметри та порядок виконання:
- ClearFindList() діє на всі визначення поточного runtime, тому для бібліотечної процедури зазвичай краще форма з власним ім'ям.
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;
}C# враховує регістр. Використовуйте точне ім’я UO. Числові прапорці порівнюйте з 0; bool використовуйте лише там, де сигнатура повертає bool.
Параметри: Немає параметрів.
Результат: void / Unit.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::LegacyList:LegacyList("AddFindList"). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Text:Text(0).
Внутрішній код реалізації, не самостійний скрипт.
case "clearfindlist":
if (arguments.Length == 0) LegacyList("AddFindList").Clear();
else LegacyList("AddFindList").RemoveAll(value => value.Split('|')[0]
.Equals(Text(0), StringComparison.OrdinalIgnoreCase));
break;Параметри: list (Any)
Результат: void / Unit.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::LegacyList:LegacyList("AddFindList"). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Text:Text(0).
Внутрішній код реалізації, не самостійний скрипт.
case "clearfindlist":
if (arguments.Length == 0) LegacyList("AddFindList").Clear();
else LegacyList("AddFindList").RemoveAll(value => value.Split('|')[0]
.Equals(Text(0), StringComparison.OrdinalIgnoreCase));
break;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.ClearIgnoreList();
void UO.ClearIgnoreList(object? list);Скидає винятки пошуку. З ім'ям лише один набір type/hue. Без аргументів — усі іменовані набори та всі serial, додані через Ignore. Корисно розпочати нове сортування із чистими правилами.
-
list— Довільне непусте ім'я, наприклад "loot_skip". Ім'я не враховує регістру. Це не назва предмета, не serial контейнера і не назва FindList. Необов'язковий. Його відсутність означає загальне скидання, а не лише активний список.
void - значення немає. Використовуйте окремий рядок без var result = і без перевірки = true. Команда змінює локальний фільтр; не повертає кількість предметів і не надсилає серверу.
- ClearIgnoreList("name") за результатом рівнозначний DeleteIgnoreList("name"). Порожній рядок тут неприпустимий; для вимкнення без видалення використовуйте SelectIgnoreList("").
- Іменований список містить правила graphic/type + hue, а звичайний Ignore містить конкретні serial. Це різні фільтри: вони об'єднуються при підтримуючому їх пошуку. Об'єкти залишаються видимими та доступними прямому UseObject/MoveItem; це не Hide і не заборона дій.
- Ім'я списку не враховує регістр; пробіли з обох боків видаляються. Активний один іменований список, спочатку default. AddIgnoreList не вибирає його автоматично. SelectIgnoreList("") вимикає лише іменований фільтр.
- Правила діють нові пошуки, включаючи предмети, завантажені ПІСЛЯ їх додавання. Вже отриманий масив та попередній результат FindCount не перераховуються до нового пошуку. Не вибирайте список із правилом -1, -1, якщо не хочете виключити все.
- Фільтр враховують FindType/FindTypeEx/FindTypesArrayEx, FindList, FindAtCoord, FindNotoriety, Count/CountEx та розширені вибірки GetMobiles, GetWorldItems, UseType, WaitTarget, Attack/AttackNearest/FindMan. includeIgnored=true, де його передбачено, обходить і serial, і type/hue. Повний перелік GetContent/GetEquipment, GetWorldItems() без аргументів та словесний FindMobile(Human, near, ...) не використовують ці правила.
- GetIgnoreList повертає тільки явно додані serial; рядки іменованого списку до цього масиву не входять. IgnoreReset очищає весь serial-фільтр, IgnoreOff(serial) знімає одне serial-виключення; іменовані правила зберігаються. ClearIgnoreList() без аргументів очищає обидва види.
- Стан належить загальному стану скриптів профілю клієнта; зміна впливає інші скрипти з цим станом. Установки входять у знімок, що зберігається. Після зміни правил інший скрипт може вже виконувати пошук зі знятим раніше знімком наступний пошук побачить оновлення.
Кожен приклад можна зберегти окремим файлом .csx та запускати в IDE. Об'єкт UO та функції очікування надає host поточної ігрової сесії. Демонстраційні serial, імена, координати та адреси замініть своїми.
Виконайте цей код як окремий файл .csx. Аргументи видно безпосередньо у виклику; демонстраційні імена, serial та адреси замініть своїми.
Команда викликається окремим рядком. Повідомлення перед нею показує початок виклику, а не підтвердження дії сервера.
UO.Print("Calling UO.ClearIgnoreList");
UO.ClearIgnoreList();Параметри та порядок виконання:
- Видалений temporary, keep продовжує виключати роби. Звичайний список serial не очищається.
UO.AddIgnoreList("temporary", 0x0EED);
UO.AddIgnoreList("keep", 0x1F03);
UO.ClearIgnoreList("temporary");
UO.SelectIgnoreList("keep");Параметри та порядок виконання:
- Без аргументів знімаються обидва види винятків. Старі змінні/масиви не очищаються. Новий FindType наново формує результат.
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;Параметри та порядок виконання:
- Старі правила sorting видалені до додавання нових: все золото і лише забарвлення 0x0044 у роби. Між окремими командами інший скрипт може бачити проміжний стан.
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;
}
}C# враховує регістр. Використовуйте точне ім’я UO. Числові прапорці порівнюйте з 0; bool використовуйте лише там, де сигнатура повертає bool.
Параметри: Немає параметрів.
Результат: void / Unit.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.IgnoreReset:IgnoreReset(). -
InjectionScript.Runtime.State.NamedIgnoreLists.Clear:state.IgnoreTypeLists.Clear(). -
InjectionScript.Runtime.State.NamedIgnoreLists.Remove:state.IgnoreTypeLists.Remove(Text(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Text:Text(0).
Внутрішній код реалізації, не самостійний скрипт.
case "clearignorelist":
if (arguments.Length == 0)
{
IgnoreReset();
state.IgnoreTypeLists.Clear();
}
else
state.IgnoreTypeLists.Remove(Text(0));
break;Параметри: list (Any)
Результат: void / Unit.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.IgnoreReset:IgnoreReset(). -
InjectionScript.Runtime.State.NamedIgnoreLists.Clear:state.IgnoreTypeLists.Clear(). -
InjectionScript.Runtime.State.NamedIgnoreLists.Remove:state.IgnoreTypeLists.Remove(Text(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Text:Text(0).
Внутрішній код реалізації, не самостійний скрипт.
case "clearignorelist":
if (arguments.Length == 0)
{
IgnoreReset();
state.IgnoreTypeLists.Clear();
}
else
state.IgnoreTypeLists.Remove(Text(0));
break;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.Count(object? @type);
int UO.Count(object? @type, object? color);
int UO.Count(object? @type, object? color, object? container);Виконує пошук та підсумовує одиниці знайдених предметів.
-
type— Graphic/type предмета (наприклад 0x0EED), не serial. -1 або 0xFFFF - будь-який type. -
color- Hue предмета; -1 або 0xFFFF - будь-який колір. У Count(type) і CountGround(type) за замовчуванням -1. -
container— В Count(type,color,container): my або числовий -1 — всі предмети, кореневий власник яких self (включаючи екіпірування та вкладені сумки); backpack/serial — вміст зазначеного контейнера рекурсивно; "UO.Ground()", явні "0"/"0", "ground" або "1" - предмети і Mobile на землі. У CountEx числовий -1 і 0xFFFFFFFF теж означають землю, а конкретний serial — лише прямий вміст. CountEx приймає backpack та імена AddObject; невідоме ім'я спричиняє помилку скрипта. Перевіряйте отриманий serial до виклику: явний нуль вибирає землю, а не відсутній контейнер.
int - сума max (1, Amount) знайдених предметів; кожен Mobile додає 1. 0 без збігів. Це число одиниць, не число стопок. Одночасно оновлюються "FindItem", "FindCount", "FindFullQuantity" і "GetFoundItems".
- Count з одним або двома аргументами шукає належать self предмети, включаючи екіпірування та вкладені сумки. CountGround завжди шукає землю, включаючи відповідні Mobile, але виключаючи self.
- Count(type,color,serial) обходить вкладені сумки, CountEx(type,color,serial) — лише прямий вміст. Обмеження FindDistance/FindVertical застосовуються до землі; Ignore застосовується до знайдених об'єктів.
- Результат залежить від отриманого вмісту контейнерів. Автоматичного відкриття та серверного запиту повного інвентарю немає.
Кожен приклад можна зберегти окремим файлом .csx та запускати в IDE. Об'єкт UO та функції очікування надає host поточної ігрової сесії. Демонстраційні serial, імена, координати та адреси замініть своїми.
Виконайте цей код як окремий файл .csx. Аргументи видно безпосередньо у виклику; демонстраційні імена, serial та адреси замініть своїми.
Результат одного виклику виводиться в журнал. Число не перетворюється на bool; для масиву показано кількість елементів.
var result = UO.Count(0x0EED, -1, "backpack");
UO.Print("Count: " + Convert.ToString(result));Параметри та порядок виконання:
- type=0x0EED, color=-1. Область – рюкзак; враховуйте відмінність рекурсивності Count/CountEx.
- Один фут від 1000 dast одиниць=1000, а не 1.
var units = UO.Count(0x0EED, -1, "backpack");
UO.Print("Units: " + Convert.ToString(units));Параметри та порядок виконання:
- FindCount читається відразу після Count, до іншого пошуку.
- Дві стоси по 50 дають 2 items і 100 units.
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;
}Параметри та порядок виконання:
- 100 - поріг одиниць у цьому прикладі.
- Це перевірка знімка даних, не резервування предметів. Між перевіркою та перенесенням кількість може змінитися.
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;
}C# враховує регістр. Використовуйте точне ім’я UO. Числові прапорці порівнюйте з 0; bool використовуйте лише там, де сигнатура повертає bool.
Параметри: type (Any)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.Count. -
InjectionScript.Runtime.InjectionApiUO.Count:Count(ResolveType(type), -1, -1). -
InjectionScript.Runtime.InjectionApiUO.ResolveType:ResolveType(type).
Внутрішній код реалізації, не самостійний скрипт.
public int Count(InjectionValue type)
=> Count(ResolveType(type), -1, -1);Параметри: type (Any), color (Any)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.Count. -
InjectionScript.Runtime.InjectionApiUO.Count:Count(ResolveType(type), NumberConversions.ToInt(color), 0). -
InjectionScript.Runtime.InjectionApiUO.ResolveType:ResolveType(type). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(color).
Внутрішній код реалізації, не самостійний скрипт.
public int Count(InjectionValue type, InjectionValue color)
=> Count(ResolveType(type), NumberConversions.ToInt(color), 0);Параметри: type (Any), color (Any), container (Any)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.Count. -
InjectionScript.Runtime.InjectionApiUO.Count:Count(ResolveType(type), NumberConversions.ToInt(color), ConvertContainer(container)). -
InjectionScript.Runtime.InjectionApiUO.ResolveType:ResolveType(type). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(color). -
InjectionScript.Runtime.InjectionApiUO.ConvertContainer:ConvertContainer(container).
Внутрішній код реалізації, не самостійний скрипт.
public int Count(InjectionValue type, InjectionValue color, InjectionValue container)
=> Count(ResolveType(type), NumberConversions.ToInt(color), ConvertContainer(container));Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.CountEx(object? objType, object? color, object? container);Виконує пошук та підсумовує одиниці знайдених предметів.
-
objType— Graphic/type предмета (наприклад 0x0EED), не serial. -1 або 0xFFFF - будь-який type. -
color- Hue предмета; -1 або 0xFFFF - будь-який колір. У Count(type) і CountGround(type) за замовчуванням -1. -
container— В Count(type,color,container): my або числовий -1 — всі предмети, кореневий власник яких self (включаючи екіпірування та вкладені сумки); backpack/serial — вміст зазначеного контейнера рекурсивно; "UO.Ground()", явні "0"/"0", "ground" або "1" - предмети і Mobile на землі. У CountEx числовий -1 і 0xFFFFFFFF теж означають землю, а конкретний serial — лише прямий вміст. CountEx приймає backpack та імена AddObject; невідоме ім'я спричиняє помилку скрипта. Перевіряйте отриманий serial до виклику: явний нуль вибирає землю, а не відсутній контейнер.
int - сума max (1, Amount) знайдених предметів; кожен Mobile додає 1. 0 без збігів. Це число одиниць, не число стопок. Одночасно оновлюються "FindItem", "FindCount", "FindFullQuantity" і "GetFoundItems".
- Count з одним або двома аргументами шукає належать self предмети, включаючи екіпірування та вкладені сумки. CountGround завжди шукає землю, включаючи відповідні Mobile, але виключаючи self.
- Count(type,color,serial) обходить вкладені сумки, CountEx(type,color,serial) — лише прямий вміст. Обмеження FindDistance/FindVertical застосовуються до землі; Ignore застосовується до знайдених об'єктів.
- Результат залежить від отриманого вмісту контейнерів. Автоматичного відкриття та серверного запиту повного інвентарю немає.
Кожен приклад можна зберегти окремим файлом .csx та запускати в IDE. Об'єкт UO та функції очікування надає host поточної ігрової сесії. Демонстраційні serial, імена, координати та адреси замініть своїми.
Виконайте цей код як окремий файл .csx. Аргументи видно безпосередньо у виклику; демонстраційні імена, serial та адреси замініть своїми.
Результат одного виклику виводиться в журнал. Число не перетворюється на bool; для масиву показано кількість елементів.
var result = UO.CountEx(0x0EED, -1, "backpack");
UO.Print("CountEx: " + Convert.ToString(result));Параметри та порядок виконання:
- type=0x0EED, color=-1. Область – рюкзак; враховуйте відмінність рекурсивності Count/CountEx.
- Один фут від 1000 dast одиниць=1000, а не 1.
var units = UO.CountEx(0x0EED, -1, "backpack");
UO.Print("Units: " + Convert.ToString(units));Параметри та порядок виконання:
- FindCount читається відразу після Count, до іншого пошуку.
- Дві стоси по 50 дають 2 items і 100 units.
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;
}Параметри та порядок виконання:
- 100 - поріг одиниць у цьому прикладі.
- Це перевірка знімка даних, не резервування предметів. Між перевіркою та перенесенням кількість може змінитися.
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;
}C# враховує регістр. Використовуйте точне ім’я UO. Числові прапорці порівнюйте з 0; bool використовуйте лише там, де сигнатура повертає bool.
Параметри: objType (Any), color (Any), container (Any)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.FindType:bridge.FindType(ResolveType(arguments[0]), Arg(1), StealthContainer(2), -1, false). -
InjectionScript.Runtime.InjectionApiUO.ResolveType:ResolveType(arguments[0]). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(1). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::StealthContainer:StealthContainer(2). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.FindFullQuantity:bridge.FindFullQuantity().
Внутрішній код реалізації, не самостійний скрипт.
case "countex":
bridge.FindType(ResolveType(arguments[0]), Arg(1), StealthContainer(2), -1, false);
return new InjectionValue(bridge.FindFullQuantity());Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.CountGround(object? @type);
int UO.CountGround(object? @type, object? color);Виконує пошук та підсумовує одиниці знайдених предметів.
-
type— Graphic/type предмета (наприклад 0x0EED), не serial. -1 або 0xFFFF - будь-який type. -
color- Hue предмета; -1 або 0xFFFF - будь-який колір. У Count(type) і CountGround(type) за замовчуванням -1.
int - сума max (1, Amount) знайдених предметів; кожен Mobile додає 1. 0 без збігів. Це число одиниць, не число стопок. Одночасно оновлюються "FindItem", "FindCount", "FindFullQuantity" і "GetFoundItems".
- Count з одним або двома аргументами шукає належать self предмети, включаючи екіпірування та вкладені сумки. CountGround завжди шукає землю, включаючи відповідні Mobile, але виключаючи self.
- Count(type,color,serial) обходить вкладені сумки, CountEx(type,color,serial) — лише прямий вміст. Обмеження FindDistance/FindVertical застосовуються до землі; Ignore застосовується до знайдених об'єктів.
- Результат залежить від отриманого вмісту контейнерів. Автоматичного відкриття та серверного запиту повного інвентарю немає.
Кожен приклад можна зберегти окремим файлом .csx та запускати в IDE. Об'єкт UO та функції очікування надає host поточної ігрової сесії. Демонстраційні serial, імена, координати та адреси замініть своїми.
Виконайте цей код як окремий файл .csx. Аргументи видно безпосередньо у виклику; демонстраційні імена, serial та адреси замініть своїми.
Результат одного виклику виводиться в журнал. Число не перетворюється на bool; для масиву показано кількість елементів.
var result = UO.CountGround(0x0EED, -1);
UO.Print("CountGround: " + Convert.ToString(result));Параметри та порядок виконання:
- type=0x0EED, color=-1. Область - земля поруч із персонажем.
- Один фут від 1000 dast одиниць=1000, а не 1.
var units = UO.CountGround(0x0EED, -1);
UO.Print("Units: " + Convert.ToString(units));Параметри та порядок виконання:
- FindCount читається відразу після Count, до іншого пошуку.
- Дві стоси по 50 дають 2 items і 100 units.
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;
}Параметри та порядок виконання:
- 100 - поріг одиниць у цьому прикладі.
- Це перевірка знімка даних, не резервування предметів. Між перевіркою та перенесенням кількість може змінитися.
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;
}C# враховує регістр. Використовуйте точне ім’я UO. Числові прапорці порівнюйте з 0; bool використовуйте лише там, де сигнатура повертає bool.
Параметри: type (Any)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.CountGround. -
InjectionScript.Runtime.InjectionApiUO.CountGround:CountGround(type, new InjectionValue(-1)).
Внутрішній код реалізації, не самостійний скрипт.
public int CountGround(InjectionValue type)
=> CountGround(type, new InjectionValue(-1));Параметри: type (Any), color (Any)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.CountGround. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Count:bridge.Count(ResolveType(type), NumberConversions.ToInt(color), 1). -
InjectionScript.Runtime.InjectionApiUO.ResolveType:ResolveType(type). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(color).
Внутрішній код реалізації, не самостійний скрипт.
public int CountGround(InjectionValue type, InjectionValue color)
=> bridge.Count(ResolveType(type), NumberConversions.ToInt(color), 1);Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.DeleteFindList(object? list);
void UO.DeleteFindList(object? list, object? @type);
void UO.DeleteFindList(object? list, object? @type, object? color);Видаляє всі визначення, що збігаються із зазначеним префіксом list, list/type або list/type/color. Дозволяє усунути один вид предметів або конкретний hue, зберігши інші правила набору.
-
list- Ім'я набору правил, наприклад "loot". Передавайте рядок без |: цей знак використовується всередині запису як роздільник. Реєстр імені не враховується. Це не serial контейнер та не масив знайдених предметів. -
type— Graphic/type предмета або body mobile, а не його serial. Зазвичай int 0..65535, включаючи 0x0EED; -1 або 0xFFFF означають будь-який type при пошуку. Вказуйте значення на запис. Декілька типів додаються окремими дзвінками. Для видалення порівнюється текст поля; пропуск видаляє всі записи імені. -
color— Hue предмета/тіла, не RGB. int 0..65535; 0 - звичайний hue 0, -1 або 0xFFFF - будь-який. У AddFindList пропуск color означає будь-який hue при пошуку. Для видалення це буквальне поле, не wildcard: -1 видаляє тільки записи з явно збереженим -1. Пропускання color видаляє всі записи list/type незалежно від hue.
void: значення, що повертається, немає. Не привласнюйте виклик змінною та не перевіряйте його на true/1. Стан визначень можна вивести UO.InfoFindList(); сам пошук запускається окремо через UO.FindList().
- Визначення перебувають у стані даного скриптового runtime. Самостійний інший runtime має свій набір; закриття вікна IDE не є очищенням цих правил. Це не файл налаштувань та не список глобальних об'єктів гри.
- AddFindList дописує запис до кінця; повторення не видаляються. Для повторної підготовки свого набору спершу викликайте ClearFindList("ім'я"). Зміна визначень не очищає вже отримані FindItem/FindCount/GetFoundItems.
- Запис зберігає текстові поля. Числовий літерал "0x0EED" зберігається як "3821", рядок "0x0EED" - як "0x0EED". Пошук перетворює обидва варіанти на число, а DeleteFindList порівнює саме збережений текст. Використовуйте однакову форму при додаванні та видаленні.
- Невідоме ім'я в FindList не є порожнім зареєстрованим набором: двигун намагається розібрати його як список числових типів. Число ім'я викликає помилку перетворення. Після видалення останнього запису створіть новий набір до пошуку цього імені.
- DeleteFindList(list,type,-1) не видаляє двопараметричний запис AddFindList(list,type): вона не має третього поля. Дублікати, що збіглися, видаляються всі; неіснуючий збіг нічого не змінює.
Кожен приклад можна зберегти окремим файлом .csx та запускати в IDE. Об'єкт UO та функції очікування надає host поточної ігрової сесії. Демонстраційні serial, імена, координати та адреси замініть своїми.
Виконайте цей код як окремий файл .csx. Аргументи видно безпосередньо у виклику; демонстраційні імена, serial та адреси замініть своїми.
Команда викликається окремим рядком. Повідомлення перед нею показує початок виклику, а не підтвердження дії сервера.
UO.AddFindList("simple_loot", 0x0EED);
UO.Print("Calling UO.DeleteFindList");
UO.DeleteFindList("simple_loot");Параметри та порядок виконання:
- Два аргументи видаляють обидві записи золота: і будь-який hue, і 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;Параметри та порядок виконання:
- Три аргументи: кольори, graphic золото, конкретний hue. Залишається тільки hue 0. В інших наборах такий graphic не видаляється.
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;
}Параметри та порядок виконання:
- Один аргумент видаляє всі записи old. Якщо правила задаються рядком "0x0190", видаляйте тим же рядком або видаліть набір по імені.
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;
}
}C# враховує регістр. Використовуйте точне ім’я UO. Числові прапорці порівнюйте з 0; bool використовуйте лише там, де сигнатура повертає bool.
Параметри: list (Any)
Результат: void / Unit.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::LegacyList:LegacyList("AddFindList"). -
InjectionScript.Runtime.InjectionApiUO.LegacyListEntryMatches:LegacyListEntryMatches(value, arguments).
Внутрішній код реалізації, не самостійний скрипт.
case "deletefindlist":
LegacyList("AddFindList").RemoveAll(value => LegacyListEntryMatches(value,
arguments));
break;Параметри: list (Any), type (Any)
Результат: void / Unit.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::LegacyList:LegacyList("AddFindList"). -
InjectionScript.Runtime.InjectionApiUO.LegacyListEntryMatches:LegacyListEntryMatches(value, arguments).
Внутрішній код реалізації, не самостійний скрипт.
case "deletefindlist":
LegacyList("AddFindList").RemoveAll(value => LegacyListEntryMatches(value,
arguments));
break;Параметри: list (Any), type (Any), color (Any)
Результат: void / Unit.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::LegacyList:LegacyList("AddFindList"). -
InjectionScript.Runtime.InjectionApiUO.LegacyListEntryMatches:LegacyListEntryMatches(value, arguments).
Внутрішній код реалізації, не самостійний скрипт.
case "deletefindlist":
LegacyList("AddFindList").RemoveAll(value => LegacyListEntryMatches(value,
arguments));
break;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.DeleteIgnoreList(object? list);
void UO.DeleteIgnoreList(object? list, object? @type);
void UO.DeleteIgnoreList(object? list, object? @type, object? color);Видаляє весь іменований фільтр чи вибрані правила усередині нього. Використовуйте, коли певний type або hue знову потрібно допускати до пошуку, зберігши решту винятків.
-
list- Довільне непусте ім'я, наприклад "loot_skip". Ім'я не враховує регістру. Це не назва предмета, не serial контейнера і не назва FindList. -
type- Graphic/type предмета або body mobile. Наприклад 0x0EED — золото, 0x0191 — жіноче людське тіло. Число або числовий рядок ("0x0EED", "3821"); -1/інше негативне/0xFFFF - будь-який type. Значення більше 65535 неприпустимі. Для кількох type додайте кілька правил. Якщо не передано – видалити весь список; якщо переданий без color — усі правила саме цього type. -
color- Hue: 0 - тільки незабарвлені, 0x0044 - приклад точного кольору; негативне або 0xFFFF - будь-який. Значення більше 65535 неприпустимі. У Add за замовчуванням - 1. Type і hue всередині одного правила з'єднуються умовою І; різні правила - АБО. При видаленні задає точну маску правила; -1 видаляє правило «будь-який колір», а не всі окремі кольори.
void - значення немає. Використовуйте окремий рядок без var result = і без перевірки = true. Команда змінює локальний фільтр; не повертає кількість предметів і не надсилає серверу.
- Число 3821 та рядок "0x0EED" позначають один type. Вилучення неіснуючого правила нічого не змінює. Ім'я вибраного списку зберігається, навіть якщо список видалений; він стає порожнім.
- Іменований список містить правила graphic/type + hue, а звичайний Ignore містить конкретні serial. Це різні фільтри: вони об'єднуються при підтримуючому їх пошуку. Об'єкти залишаються видимими та доступними прямому UseObject/MoveItem; це не Hide і не заборона дій.
- Ім'я списку не враховує регістр; пробіли з обох боків видаляються. Активний один іменований список, спочатку default. AddIgnoreList не вибирає його автоматично. SelectIgnoreList("") вимикає лише іменований фільтр.
- Правила діють нові пошуки, включаючи предмети, завантажені ПІСЛЯ їх додавання. Вже отриманий масив та попередній результат FindCount не перераховуються до нового пошуку. Не вибирайте список із правилом -1, -1, якщо не хочете виключити все.
- Фільтр враховують FindType/FindTypeEx/FindTypesArrayEx, FindList, FindAtCoord, FindNotoriety, Count/CountEx та розширені вибірки GetMobiles, GetWorldItems, UseType, WaitTarget, Attack/AttackNearest/FindMan. includeIgnored=true, де його передбачено, обходить і serial, і type/hue. Повний перелік GetContent/GetEquipment, GetWorldItems() без аргументів та словесний FindMobile(Human, near, ...) не використовують ці правила.
- GetIgnoreList повертає тільки явно додані serial; рядки іменованого списку до цього масиву не входять. IgnoreReset очищає весь serial-фільтр, IgnoreOff(serial) знімає одне serial-виключення; іменовані правила зберігаються. ClearIgnoreList() без аргументів очищає обидва види.
- Стан належить загальному стану скриптів профілю клієнта; зміна впливає інші скрипти з цим станом. Установки входять у знімок, що зберігається. Після зміни правил інший скрипт може вже виконувати пошук зі знятим раніше знімком наступний пошук побачить оновлення.
Кожен приклад можна зберегти окремим файлом .csx та запускати в IDE. Об'єкт UO та функції очікування надає host поточної ігрової сесії. Демонстраційні serial, імена, координати та адреси замініть своїми.
Виконайте цей код як окремий файл .csx. Аргументи видно безпосередньо у виклику; демонстраційні імена, serial та адреси замініть своїми.
Команда викликається окремим рядком. Повідомлення перед нею показує початок виклику, а не підтвердження дії сервера.
UO.AddIgnoreList("simple_skip", 0x0EED);
UO.Print("Calling UO.DeleteIgnoreList");
UO.DeleteIgnoreList("simple_skip");Параметри та порядок виконання:
- Видаляється тільки temporary. Інші списки та Ignore(serial) зберігаються.
UO.AddIgnoreList("temporary", 0x0EED);
UO.SelectIgnoreList("temporary");
UO.DeleteIgnoreList("temporary");
var gold = UO.FindType(0x0EED, -1, "ground");Параметри та порядок виконання:
- Видалено обидва правила роби, правило золота залишилося. Загальне правило -1,type-any іншого виду, якщо було додано, саме не видаляється.
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;
}Параметри та порядок виконання:
- 68 = 0x0044: числові форми збігаються. Незабарвлені роби залишаються виключеними. Якщо існує ще правило цього type з hue = - 1, воно продовжить виключати і колір 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;
}
}C# враховує регістр. Використовуйте точне ім’я UO. Числові прапорці порівнюйте з 0; bool використовуйте лише там, де сигнатура повертає bool.
Параметри: list (Any)
Результат: void / Unit.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.State.NamedIgnoreLists.Remove:state.IgnoreTypeLists.Remove(Text(0), arguments.Length > 1 ? ResolveType(arguments[1]) : (int?)null, arguments.Length > 2 ? NumberConversions.ToInt(arguments[2]) : (int?)null). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Text:Text(0). -
InjectionScript.Runtime.InjectionApiUO.ResolveType:ResolveType(arguments[1]). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(arguments[2]).
Внутрішній код реалізації, не самостійний скрипт.
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;Параметри: list (Any), type (Any)
Результат: void / Unit.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.State.NamedIgnoreLists.Remove:state.IgnoreTypeLists.Remove(Text(0), arguments.Length > 1 ? ResolveType(arguments[1]) : (int?)null, arguments.Length > 2 ? NumberConversions.ToInt(arguments[2]) : (int?)null). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Text:Text(0). -
InjectionScript.Runtime.InjectionApiUO.ResolveType:ResolveType(arguments[1]). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(arguments[2]).
Внутрішній код реалізації, не самостійний скрипт.
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;Параметри: list (Any), type (Any), color (Any)
Результат: void / Unit.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.State.NamedIgnoreLists.Remove:state.IgnoreTypeLists.Remove(Text(0), arguments.Length > 1 ? ResolveType(arguments[1]) : (int?)null, arguments.Length > 2 ? NumberConversions.ToInt(arguments[2]) : (int?)null). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Text:Text(0). -
InjectionScript.Runtime.InjectionApiUO.ResolveType:ResolveType(arguments[1]). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(arguments[2]).
Внутрішній код реалізації, не самостійний скрипт.
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;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
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);Знаходить найближчого завантаженого mobile з одним із заданих graphic тіла. Застосовується для пошуку певного виду істоти. Предмети в скрині чи землі ця команда не шукає: їм потрібні FindType/FindList.
-
distance— Горизонтальний радіус у клітинах включно: 5 допускає відстань 0..5. Відстань — max(abs(dx),abs(dy)), тому сусідня діагональ теж 1. За замовчуванням або за негативного числа береться UO.FindDistance(), а не безлімітний пошук. 0 залишає ту ж клітину X/Y. Чи не довжина маршруту; перешкоди та поверхи цим параметром не перевіряються. -
type— graphic тіла mobile, не serial і не graphic предмета. Число 0..65534 або hex-рядок, наприклад 0x003B. Кілька значень об’єднуються як OR: число 5, рядок "5|6" або плоский масив чисел/числових рядків. Можна поєднати плоский масив та окремі аргументи. Порядок значень не визначає пріоритет. Нечислові токени виключаються; повністю помилкова маска не знаходить нічого. Вкладені масиви не є числами й ігноруються як помилкові елементи; багатовимірні маски не підтримуються. -
type2— Додаткова необов'язкова маска type; самі форми, що з type. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
type3— Додаткова необов'язкова маска type; самі форми, що з type. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
type4— Додаткова необов'язкова маска type; самі форми, що з type. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
type5— Додаткова необов'язкова маска type; самі форми, що з type. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
type6— Додаткова необов'язкова маска type; самі форми, що з type. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
type7— Додаткова необов'язкова маска type; самі форми, що з type. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
type8— Додаткова необов'язкова маска type; самі форми, що з type. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
type9— Додаткова необов'язкова маска type; самі форми, що з type. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
type10— Додаткова необов'язкова маска type; самі форми, що з type. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
type11— Додаткова необов'язкова маска type; самі форми, що з type. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
type12— Додаткова необов'язкова маска type; самі форми, що з type. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
type13— Додаткова необов'язкова маска type; самі форми, що з type. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
type14— Додаткова необов'язкова маска type; самі форми, що з type. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
type15— Додаткова необов'язкова маска type; самі форми, що з type. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
type16— Додаткова необов'язкова маска type; самі форми, що з type. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
type17— Додаткова необов'язкова маска type; самі форми, що з type. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
type18— Додаткова необов'язкова маска type; самі форми, що з type. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
type19— Додаткова необов'язкова маска type; самі форми, що з type. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
type20— Додаткова необов'язкова маска type; самі форми, що з type. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
type21— Додаткова необов'язкова маска type; самі форми, що з type. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
type22— Додаткова необов'язкова маска type; самі форми, що з type. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
type23— Додаткова необов'язкова маска type; самі форми, що з type. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
type24— Додаткова необов'язкова маска type; самі форми, що з type. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
type25— Додаткова необов'язкова маска type; самі форми, що з type. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
type26— Додаткова необов'язкова маска type; самі форми, що з type. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
type27— Додаткова необов'язкова маска type; самі форми, що з type. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
type28— Додаткова необов'язкова маска type; самі форми, що з type. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
type29— Додаткова необов'язкова маска type; самі форми, що з type. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
type30— Додаткова необов'язкова маска type; самі форми, що з type. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
type31— Додаткова необов'язкова маска type; самі форми, що з type. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет.
int — serial обраного mobile або 0, якщо потрібного немає. Це ID, і ні graphic/type, кількість знайдених об'єктів або true/false: використовуйте if (found != 0) { ... }, не знайдено == true. Знайдений ID можна передати UO.AddObject, UO.Attack або UO.Follow, але кожна ігрова дія викликається окремо.
- Пошук читає тільки мобільні, вже завантажені клієнтом; знищені записи та Ignore виключені. Сам виклик не відкриває target, не атакує, не йде до мети і не просить сервера віддалені об'єкти.
- Відстань - геометрична max (abs (dx), abs (dy)), не довжина маршруту. Близькість не гарантує відсутність стіни чи доступність іншого поверху. Стан може змінитися після повернення.
- Життя, скритність та лінія огляду автоматично не перевіряються. Якщо вони важливі, використовуйте GetMobiles з aliveOnly/visibleOnly або свої перевірки. Наявність сервера статусу Enemy не робить будь-якого NPC відповідним.
- Не змінює FindItem, FindCount або GetFoundItems. Ці поля можуть містити результати попередньої команди: використовуйте безпосередньо повернутий ID.
- Від 2 до 32 аргументів: distance і до 31 маски type. Плоский масив дозволяє передати більше значень. Кожне наступне значення після type ще body/type, не hue або notoriety.
- У цій команді немає фільтра Z, notoriety, раси гравця або класу одягу. Self НЕ виключається: якщо власний graphic входить в маску і self не в Ignore, можна отримати свій serial на відстані 0.
- Вибирає найближчого; однакова відстань дозволяється меншим serial. -1/any/0xFFFF/порожня маска без конкретних типів дають 0: команда вимагає хоча б один явний type. Поруч із конкретними type wildcard ігнорується.
Кожен приклад можна зберегти окремим файлом .csx та запускати в IDE. Об'єкт UO та функції очікування надає host поточної ігрової сесії. Демонстраційні serial, імена, координати та адреси замініть своїми.
Виконайте цей код як окремий файл .csx. Аргументи видно безпосередньо у виклику; демонстраційні імена, serial та адреси замініть своїми.
Результат одного виклику виводиться в журнал. Число не перетворюється на bool; для масиву показано кількість елементів.
var result = UO.FindAnyType(10, 0x003B);
UO.Print("FindAnyType: " + Convert.ToString(result));Параметри та порядок виконання:
- 0x003B - body, не ID. Повернення creature - ID конкретного знайденого mobile. Команда не перевіряє Z, здоров'я чи агресивність.
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;Параметри та порядок виконання:
- bodies та окремий 0x000C об'єднані. Якщо знайдено self, цей приклад просто пропустить дію; він шукає наступного кандидата. Для виключення self у самому запиті використовуйте відповідний фільтр 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;Параметри та порядок виконання:
- body - graphic, radius - межа пошуку X/Y. Помічник повертає відстань або власний код - 1; сама UO.FindAnyType повертає serial або 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;
}C# враховує регістр. Використовуйте точне ім’я UO. Числові прапорці порівнюйте з 0; bool використовуйте лише там, де сигнатура повертає bool.
Параметри: distance (Any), type (Any)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))Параметри: distance (Any), type (Any), type2 (Any)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))Параметри: distance (Any), type (Any), type2 (Any), type3 (Any)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))Параметри: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: 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)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: 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)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: 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)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: 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)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: 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)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: 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)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: 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)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: 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)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: 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)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: 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)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: 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)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: 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)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: 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)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: 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)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: 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)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: 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)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: 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)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: 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)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: 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)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: 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)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.FindAtCoord(object? x, object? y);Шукає завантажені об'єкти світу на одній точній клітинці X/Y поточної картки.
-
x— світова координата по горизонталі, int 0..65535. Обов'язкова; це не пікселі вікна контейнера. -
y— світова координата по вертикалі, int 0..65535. Обов'язкова. Додаткових параметрів Z, карти, type або радіусу немає.
int — serial першого відповідного об'єкта у списку результатів цього клієнта. 0: збігів немає, персонаж відсутній/віддалений або координати поза 0..65535. Це ID об'єкта, не type, кількість або bool. Зберігаються всі 32 біта; перевіряйте != 0, не == true і не > 0. Той самий ID записується в FindItem().
- Перевіряє невіддалені Item на землі та Mobile, включаючи самого персонажа на цій клітці. Вміст контейнерів та одягнені речі виключені: їх X/Y не можна вважати координатами світу. Serial зі списку Ignore виключаються.
- Підходять усі висоти Z на заданих X/Y. FindDistance та FindVertical не обмежують цей пошук точної клітини. Видно лише завантажені об'єкти поточного світу; ландшафт, статика та інша карта не завантажуються. Пакети не надсилаються, target не відкривається, предмети не переміщуються.
- Кожен дзвінок спочатку очищає попередній пошук. FindCount() вважає об'єкти, FindFullQuantity() підсумовує одиниці в стопках (Mobile додає одну), GetFoundItems() повертає знайдені serial. Спочатку обходяться Item, потім Mobile; всередині колекцій діє поточний порядок перерахування. Збережіть список до наступного пошуку, який замінить результати.
- Порядок вибору та фільтри вище описують реалізацію цього клієнта.
Кожен приклад можна зберегти окремим файлом .csx та запускати в IDE. Об'єкт UO та функції очікування надає host поточної ігрової сесії. Демонстраційні serial, імена, координати та адреси замініть своїми.
Виконайте цей код як окремий файл .csx. Аргументи видно безпосередньо у виклику; демонстраційні імена, serial та адреси замініть своїми.
Результат одного виклику виводиться в журнал. Число не перетворюється на bool; для масиву показано кількість елементів.
var result = UO.FindAtCoord(1445, 1690);
UO.Print("FindAtCoord: " + Convert.ToString(result));Параметри та порядок виконання:
- 1445 та 1690 — приклад світових X/Y: замініть їх своєю клітиною. id зберігає один serial; HEX виводить його у шістнадцятковому вигляді. != 0 перевіряє наявність результату, не кількість.
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;Параметри та порядок виконання:
- x/y читаються у персонажа; ids зберігає список поточного пошуку. Кожен id означає один об'єкт, включаючи цілу стопку. GetType(id) читає graphic/body. Предмети не вибираються та не використовуються.
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");Параметри та порядок виконання:
- CountGraphicAt(x, y, graphic) один раз шукає клітинку, перебирає збережені ID і рахує об'єкти з потрібною графікою. graphic = 0x0EED - золото. Повертається кількість об'єктів/стопок, не сума одиниць та не true/false; один стос дає один. Функція повністю визначена після 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;
}C# враховує регістр. Використовуйте точне ім’я UO. Числові прапорці порівнюйте з 0; bool використовуйте лише там, де сигнатура повертає bool.
Параметри: x (Any), y (Any)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.FindAtCoord:bridge.FindAtCoord(Arg(0), Arg(1)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0).
Внутрішній код реалізації, не самостійний скрипт.
case "findatcoord": return new InjectionValue(bridge.FindAtCoord(Arg(0), Arg(1)));Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
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);Знаходить найближчого іншого персонажа/NPC з одним із зазначених статусів notoriety. Корисна, коли потрібно спочатку вибрати супротивника, союзника або мету, що спостерігається, а вже потім окремо вирішувати, атакувати її чи слідувати за нею.
-
distance— Горизонтальний радіус у клітинах включно: 5 допускає відстань 0..5. Відстань — max(abs(dx),abs(dy)), тому сусідня діагональ теж 1. За замовчуванням або за негативного числа береться UO.FindDistance(), а не безлімітний пошук. 0 залишає ту ж клітину X/Y. Чи не довжина маршруту; перешкоди та поверхи цим параметром не перевіряються. -
notoriety— статус ставлення до персонажа, отриманий від сервера: 0 — невідомий, 1 — Innocent, 2 — Ally, 3 — Gray, 4 — Criminal, 5 — Enemy, 6 — Murderer, 7 — Invulnerable. Число означає один статус; "5|6" або масив чисел — будь-який із перелічених. Це не колір одягу й не клас. Від’ємне число (зазвичай -1), 0xFFFF, "any", порожній рядок або окремий порожній масив вимикають цей фільтр. Некоректний рядок без допустимих чисел не знаходить нікого. Порядок статусів не визначає пріоритет. Фільтр 5 вибирає Enemy, а не автоматично будь-якого NPC/монстра; реальні значення залежать від сервера. Кілька значень об’єднуються як OR: число 5, рядок "5|6" або плоский масив чисел/числових рядків. Можна поєднати плоский масив та окремі аргументи. Порядок значень не визначає пріоритет. Нечислові токени виключаються; повністю помилкова маска не знаходить нічого. Вкладені масиви не є числами й ігноруються як помилкові елементи; багатовимірні маски не підтримуються. -
notoriety2- Необов'язкова додаткова маска notoriety; ті ж форми, що й у notoriety. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
notoriety3- Необов'язкова додаткова маска notoriety; ті ж форми, що й у notoriety. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
notoriety4- Необов'язкова додаткова маска notoriety; ті ж форми, що й у notoriety. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
notoriety5- Необов'язкова додаткова маска notoriety; ті ж форми, що й у notoriety. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
notoriety6- Необов'язкова додаткова маска notoriety; ті ж форми, що й у notoriety. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
notoriety7- Необов'язкова додаткова маска notoriety; ті ж форми, що й у notoriety. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
notoriety8- Необов'язкова додаткова маска notoriety; ті ж форми, що й у notoriety. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
notoriety9- Необов'язкова додаткова маска notoriety; ті ж форми, що й у notoriety. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
notoriety10- Необов'язкова додаткова маска notoriety; ті ж форми, що й у notoriety. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
notoriety11- Необов'язкова додаткова маска notoriety; ті ж форми, що й у notoriety. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
notoriety12- Необов'язкова додаткова маска notoriety; ті ж форми, що й у notoriety. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
notoriety13- Необов'язкова додаткова маска notoriety; ті ж форми, що й у notoriety. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
notoriety14- Необов'язкова додаткова маска notoriety; ті ж форми, що й у notoriety. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
notoriety15- Необов'язкова додаткова маска notoriety; ті ж форми, що й у notoriety. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
notoriety16- Необов'язкова додаткова маска notoriety; ті ж форми, що й у notoriety. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
notoriety17- Необов'язкова додаткова маска notoriety; ті ж форми, що й у notoriety. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
notoriety18- Необов'язкова додаткова маска notoriety; ті ж форми, що й у notoriety. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
notoriety19- Необов'язкова додаткова маска notoriety; ті ж форми, що й у notoriety. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
notoriety20- Необов'язкова додаткова маска notoriety; ті ж форми, що й у notoriety. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
notoriety21- Необов'язкова додаткова маска notoriety; ті ж форми, що й у notoriety. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
notoriety22- Необов'язкова додаткова маска notoriety; ті ж форми, що й у notoriety. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
notoriety23- Необов'язкова додаткова маска notoriety; ті ж форми, що й у notoriety. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
notoriety24- Необов'язкова додаткова маска notoriety; ті ж форми, що й у notoriety. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
notoriety25- Необов'язкова додаткова маска notoriety; ті ж форми, що й у notoriety. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
notoriety26- Необов'язкова додаткова маска notoriety; ті ж форми, що й у notoriety. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
notoriety27- Необов'язкова додаткова маска notoriety; ті ж форми, що й у notoriety. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
notoriety28- Необов'язкова додаткова маска notoriety; ті ж форми, що й у notoriety. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
notoriety29- Необов'язкова додаткова маска notoriety; ті ж форми, що й у notoriety. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
notoriety30- Необов'язкова додаткова маска notoriety; ті ж форми, що й у notoriety. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет. -
notoriety31- Необов'язкова додаткова маска notoriety; ті ж форми, що й у notoriety. Поєднується з попередніми через OR, не задає окремий радіус, hue, Z або пріоритет.
int — serial обраного mobile або 0, якщо потрібного немає. Це ID, і ні graphic/type, кількість знайдених об'єктів або true/false: використовуйте if (found != 0) { ... }, не знайдено == true. Знайдений ID можна передати UO.AddObject, UO.Attack або UO.Follow, але кожна ігрова дія викликається окремо.
- Пошук читає тільки мобільні, вже завантажені клієнтом; знищені записи та Ignore виключені. Сам виклик не відкриває target, не атакує, не йде до мети і не просить сервера віддалені об'єкти.
- Відстань - геометрична max (abs (dx), abs (dy)), не довжина маршруту. Близькість не гарантує відсутність стіни чи доступність іншого поверху. Стан може змінитися після повернення.
- Життя, скритність та лінія огляду автоматично не перевіряються. Якщо вони важливі, використовуйте GetMobiles з aliveOnly/visibleOnly або свої перевірки. Наявність сервера статусу Enemy не робить будь-якого NPC відповідним.
- Не змінює FindItem, FindCount або GetFoundItems. Ці поля можуть містити результати попередньої команди: використовуйте безпосередньо повернутий ID.
- Мінімум два аргументи: distance, notoriety. Максимум 32: радіус і до 31 маски. Для більшої кількості значень передайте плоский масив одним аргументом. Видалення фільтра: -1/any/0xFFFF/порожній рядок або порожній масив окремо. Якщо поряд зазначені конкретні коди, вони зберігають обмеження.
- Виключає self. Дотримується UO.FindVertical() як межа різниці Z; параметра maxZ у цій команді немає. Завжди вибирає найближчого, за рівності — менший serial. Аргумент після notoriety - ще notoriety, не nearest і body.
Кожен приклад можна зберегти окремим файлом .csx та запускати в IDE. Об'єкт UO та функції очікування надає host поточної ігрової сесії. Демонстраційні serial, імена, координати та адреси замініть своїми.
Виконайте цей код як окремий файл .csx. Аргументи видно безпосередньо у виклику; демонстраційні імена, serial та адреси замініть своїми.
Результат одного виклику виводиться в журнал. Число не перетворюється на bool; для масиву показано кількість елементів.
var result = UO.FindByNotoriety(12, "5|6");
UO.Print("FindByNotoriety: " + Convert.ToString(result));Параметри та порядок виконання:
- Збережений opponent можна використовувати пізніше; цей приклад не атакує. Також діє поточний FindVertical, навіть якщо ціль близька по 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;Параметри та порядок виконання:
- allowed містить Enemy, окремий 6 додає Murderer. Статуси поєднуються, а не сортуються за пріоритетом. Приклад просить атаку одного знайденого живого mobile; правила сервера визначають допустимість.
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;Параметри та порядок виконання:
- radius - радіус X/Y у клітинах. FindVertical(0) вимагає однакову Z; це не перевірка поверху чи стін. Функція повертає ID/0, а Finally зберігає налаштування інших частин скрипту.
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;
}C# враховує регістр. Використовуйте точне ім’я UO. Числові прапорці порівнюйте з 0; bool використовуйте лише там, де сигнатура повертає bool.
Параметри: distance (Any), notoriety (Any)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))Параметри: distance (Any), notoriety (Any), notoriety2 (Any)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: 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)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: 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)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: 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)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: 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)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: 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)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: 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)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: 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)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: 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)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: 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)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: 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)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: 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)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: 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)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: 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)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: 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)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: 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)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: 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)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: 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)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: 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)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: 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)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
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)
Параметри: 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)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.FindCount();
int UO.FindCount(object? id);Читає кількість одиниць у зазначеній стопці, якщо передано ID. Форма без аргументів зберігає окреме значення: кількість об'єктів останнього пошуку.
-
id— Serial/ID конкретного об'єкта: int, десятковий/hex-рядок або встановлений аліас self, backpack, lasttarget, lastobject або ім'я AddObject. Це не graphic/type. Необов'язковий аргумент. При переданому ID читається поточний Amount цього предмета. Аліас finditem явно вибирає перший результат пошуку. Без аргументу повертається кількість знайдених об'єктів.
int: FindCount(id) - кількість одиниць у зазначеній стопці (Amount); звичайний одиночний предмет дає 1, невідомий/віддалений предмет, помилковий аліас або Mobile дають 0. FindCount() без ID - кількість об'єктів в останньому пошуку: один стос вважається одним об'єктом незалежно від Amount. Наприклад, три стоси по 20, 50 і 100: FindCount()=3, FindCount(ID другий стоси) =50, FindFullQuantity()=170.
- FindCount(id) еквівалентна читання GetQuantity(id), не запускає пошук і не змінює FindItem/FindCount()/FindFullQuantity/GetFoundItems.
- ID означає serial конкретного предмета, не type. Зміна кількості відображається за наступного виклику FindCount(id). Кількість у віддаленому предметі дорівнює 0; це не автоматичний пошук іншої стопки.
- Вихідна сумісність без аргументів збережена: FindCount() рахує об'єкти. FindQuantity() читає один знайдений стос, FindFullQuantity() підсумовує одиниці за останнім пошуком.
- Дані належать до останнього звичайного пошуку цього скрипта. FindType з 1–5 аргументами, FindTypeEx, Count/CountEx/CountGround замінюють результати. Розширені фільтровані команди персонажів не повинні змінювати цей знімок.
- Новий пошук без збігів обнуляє FindItem, FindCount та FindFullQuantity та очищує GetFoundItems. Читання результату саме собою новий пошук не запускає.
Кожен приклад можна зберегти окремим файлом .csx та запускати в IDE. Об'єкт UO та функції очікування надає host поточної ігрової сесії. Демонстраційні serial, імена, координати та адреси замініть своїми.
Виконайте цей код як окремий файл .csx. Аргументи видно безпосередньо у виклику; демонстраційні імена, serial та адреси замініть своїми.
Результат одного виклику виводиться в журнал. Число не перетворюється на bool; для масиву показано кількість елементів.
UO.FindType(0x0EED, -1, "backpack");
var result = UO.FindCount();
UO.Print("FindCount: " + Convert.ToString(result));Параметри та порядок виконання:
- id=0x40001234 - приклад serial стоси. Замініть своїм ID предмета.
- Стопка з 50 одиниць поверне 50; одиночний предмет - 1; невідомий ID - 0.
var amount = UO.FindCount("0x40001234");
UO.Print("Units: " + Convert.ToString(amount));Параметри та порядок виконання:
- FindType отримує type золота 0x0EED, будь-який hue=-1, область backpack і повертає serial.
- У FindCount передається повернутий serial item. Сам type 0x0EED сюди передавати не можна.
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;Параметри та порядок виконання:
- lasttarget повинен вказувати на предмет. AddObject зберігає цей serial під ім'ям selected_stack.
- FindCount дозволяє ім'я в ID і читає Amount. Якщо вибрано ціль-персонаж, повертається 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 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;
}Параметри та порядок виконання:
- type=0x0EED - золото; color=-1 - будь-який hue; backpack — лише прямий вміст рюкзака у цій формі FindType.
- int — кількість знайдених items/персонажів, 0 без збігів. Одна стопка з 1000 одиниць вважається одним об'єктом. Не сума одиниць, нею потрібен FindFullQuantity.
var found = UO.FindType(0x0EED, -1, "backpack");
var value = UO.FindCount();
UO.Print(Convert.ToString(value));Параметри та порядок виконання:
- Усі чотири читання відносяться до одного пошуку, доки між ними не викликано іншого пошуку.
- Наприклад, дві стопки по 50: Items = 2, First stack = 50, All units = 100; First ID містить унікальний ID однієї стопки.
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");Параметри та порядок виконання:
- Перший type - золото, другий 0x0F7A - окремий тип реагенту. Нова команда змінює спільний знімок.
- saved залишається числом із першого пошуку. Друге читання відноситься до реагента навіть за відсутності збігів.
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;
}
}C# враховує регістр. Використовуйте точне ім’я UO. Числові прапорці порівнюйте з 0; bool використовуйте лише там, де сигнатура повертає bool.
Параметри: Немає параметрів.
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.FindCount. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.FindCount:bridge.FindCount().
Внутрішній код реалізації, не самостійний скрипт.
public int FindCount() => bridge.FindCount();Параметри: id (Any)
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.FindCount. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetQuantity:bridge.GetQuantity(GetObject(id)). -
InjectionScript.Runtime.InjectionApiUO.GetObject:GetObject(id).
Внутрішній код реалізації, не самостійний скрипт.
public int FindCount(InjectionValue id) => bridge.GetQuantity(GetObject(id));Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.FindDistance();
void UO.FindDistance(object? value);Читає або змінює за замовчуванням горизонтальний радіус пошуку.
-
value- Необов'язковий int. Без аргументу читання; value - встановлення. Значення обмежується діапазоном 0..255; негативне стає 0, а не безлімітом. У новому runtime: 18; відновлений стан може містити інше значення. Дробова кількість усікається до нуля; допустимі також числові рядки double/0x. Використовуйте int, щоб уникнути неявного перетворення.
Без аргументів: int — поточна межа (відстань у клітинах), не знайдена ID, кількість об'єктів або bool. 0 означає нульову межу, а не невдачу. З value: void - значення немає; це не true/false і не колишнє налаштування. Після встановлення прочитайте FindDistance(), щоб дізнатися збережене значення.
- Відстань: max(abs(dx), abs(dy)) від поточної точки відліку дальності клієнта; діагональна клітина вважається однією. Кордон вмикається. При 0 підходять лише об'єкти тих самих X/Y. Для мобільних відстань враховує кінцеву позицію черги кроків.
- Налаштування зберігається в runtime поточного скрипта; Його процедури використовують одне значення. У незалежних runtime налаштування окремі. Читання та запис не запускають пошук, не очищають FindItem/FindCount/GetFoundItems, не відправляють пакет, не рухають персонажа та не завантажують дальні об'єкти.
- FindTypeEx та FindTypesArrayEx використовують ці межі при пошуку на землі, але не всередині контейнера. Залишаються фільтри type, hue, Ignore та наявність завантаженого об'єкта. FindAtCoord ігнорує обидві межі. У розширених командах явні distance/maxZ можуть замінити налаштування; -1 у таких параметрах означає взяти налаштування, на відміну від установки самого налаштування -1. FindList також фільтрує Z під час пошуку в контейнерах; зазначений виняток контейнерів на нього не поширюється.
- Перед тимчасовим пошуком збережіть значення та відновіть його у Finally. Встановлення автоматично не скасовується. Finally працює при звичайному завершенні та перехоплюваній помилці скрипту; аварійну зупинку не можна використовувати як механізм очищення.
Кожен приклад можна зберегти окремим файлом .csx та запускати в IDE. Об'єкт UO та функції очікування надає host поточної ігрової сесії. Демонстраційні serial, імена, координати та адреси замініть своїми.
Виконайте цей код як окремий файл .csx. Аргументи видно безпосередньо у виклику; демонстраційні імена, serial та адреси замініть своїми.
Результат одного виклику виводиться в журнал. Число не перетворюється на bool; для масиву показано кількість елементів.
var result = UO.FindDistance();
UO.Print("FindDistance: " + Convert.ToString(result));Параметри та порядок виконання:
- previous зберігає фактичне налаштування. value:=5 задає звичайну межу; 1000 показує обмеження до 255. Print читає результат окремим дзвінком без аргументу. Finally відновлює previous.
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);
}Параметри та порядок виконання:
- previous зберігає налаштування коду, що викликає. 5 змінює тільки FindDistance; друга межа залишається незмінною. "0x0EED" - графіка золота, - "1" - будь-який "hue", Container = - "1" - світ, "false" - без рекурсії контейнерів. id - один serial; != 0 перевіряє наявність. FindCount вважає цілі об'єкти/стопки. Finally відновлює налаштування, а не перелік результатів.
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;Параметри та порядок виконання:
- CountGroundInRange(graphic, radius, height) зберігає обидві межі, задає radius=5 і height=10, шукає graphic=0x0EED і повертає FindCount(). Стопка вважається одним об'єктом. Повна функція наведена після Main. Finally відновлює обидві межі навіть у виході через return; результат пошуку залишається доступним.
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);
}
}
}C# враховує регістр. Використовуйте точне ім’я UO. Числові прапорці порівнюйте з 0; bool використовуйте лише там, де сигнатура повертає bool.
Параметри: Немає параметрів.
Результат: int / Integer.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SetFindDistance:bridge.SetFindDistance(Arg(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindDistance:bridge.GetFindDistance().
Внутрішній код реалізації, не самостійний скрипт.
case "finddistance":
if (arguments.Length > 0) { bridge.SetFindDistance(Arg(0)); return InjectionValue.Unit; }
return new InjectionValue(bridge.GetFindDistance());Параметри: value (Any)
Результат: void / Unit.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SetFindDistance:bridge.SetFindDistance(Arg(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindDistance:bridge.GetFindDistance().
Внутрішній код реалізації, не самостійний скрипт.
case "finddistance":
if (arguments.Length > 0) { bridge.SetFindDistance(Arg(0)); return InjectionValue.Unit; }
return new InjectionValue(bridge.GetFindDistance());Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.FindFullQuantity();Читає загальну кількість одиниць у знімку останнього пошуку.
Параметрів немає.
int - сума max(1, Amount) знайдених предметів; кожен знайдений персонаж додає 1. 0 без збігів. Дві стоси по 50 дають 100, а FindCount дасть ?2?. Це знімок на момент пошуку, не завжди оновлювана сума.
- Дані належать до останнього звичайного пошуку цього скрипта. FindType з 1–5 аргументами, FindTypeEx, Count/CountEx/CountGround замінюють результати. Розширені фільтровані команди персонажів не повинні змінювати цей знімок.
- Новий пошук без збігів обнуляє FindItem, FindCount та FindFullQuantity та очищує GetFoundItems. Читання результату саме собою новий пошук не запускає.
Кожен приклад можна зберегти окремим файлом .csx та запускати в IDE. Об'єкт UO та функції очікування надає host поточної ігрової сесії. Демонстраційні serial, імена, координати та адреси замініть своїми.
Виконайте цей код як окремий файл .csx. Аргументи видно безпосередньо у виклику; демонстраційні імена, serial та адреси замініть своїми.
Результат одного виклику виводиться в журнал. Число не перетворюється на bool; для масиву показано кількість елементів.
UO.FindType(0x0EED, -1, "backpack");
object? result = UO.FindFullQuantity();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));Параметри та порядок виконання:
- type=0x0EED - золото; color=-1 - будь-який hue; backpack — лише прямий вміст рюкзака у цій формі FindType.
- int - сума max(1, Amount) знайдених предметів; кожен знайдений персонаж додає 1. 0 без збігів. Дві стоси по 50 дають 100, а FindCount дасть ?2?. Це знімок на момент пошуку, не завжди оновлювана сума.
var found = UO.FindType(0x0EED, -1, "backpack");
var value = UO.FindFullQuantity();
UO.Print(Convert.ToString(value));Параметри та порядок виконання:
- Усі чотири читання відносяться до одного пошуку, доки між ними не викликано іншого пошуку.
- Наприклад, дві стопки по 50: Items = 2, First stack = 50, All units = 100; First ID містить унікальний ID однієї стопки.
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");Параметри та порядок виконання:
- Перший type - золото, другий 0x0F7A - окремий тип реагенту. Нова команда змінює спільний знімок.
- saved залишається числом із першого пошуку. Друге читання відноситься до реагента навіть за відсутності збігів.
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;
}
}C# враховує регістр. Використовуйте точне ім’я UO. Числові прапорці порівнюйте з 0; bool використовуйте лише там, де сигнатура повертає bool.
Параметри: Немає параметрів.
Результат: dynamic / Any.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.FindFullQuantity:bridge.FindFullQuantity().
Внутрішній код реалізації, не самостійний скрипт.
case "findfullquantity": return new InjectionValue(bridge.FindFullQuantity());Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.FindItem();Читає serial першого результату останнього звичайного пошуку.
Параметрів немає.
int — serial/ID першого знайденого об'єкта, 0 за відсутності результату. Це числовий serial, тоді як FindType повертає hex-рядок або порожній рядок. Чи не повертає type.
- Дані належать до останнього звичайного пошуку цього скрипта. FindType з 1–5 аргументами, FindTypeEx, Count/CountEx/CountGround замінюють результати. Розширені фільтровані команди персонажів не повинні змінювати цей знімок.
- Новий пошук без збігів обнуляє FindItem, FindCount та FindFullQuantity та очищує GetFoundItems. Читання результату саме собою новий пошук не запускає.
Кожен приклад можна зберегти окремим файлом .csx та запускати в IDE. Об'єкт UO та функції очікування надає host поточної ігрової сесії. Демонстраційні serial, імена, координати та адреси замініть своїми.
Виконайте цей код як окремий файл .csx. Аргументи видно безпосередньо у виклику; демонстраційні імена, serial та адреси замініть своїми.
Результат одного виклику виводиться в журнал. Число не перетворюється на bool; для масиву показано кількість елементів.
UO.FindType(0x0EED, -1, "backpack");
object? result = UO.FindItem();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));Параметри та порядок виконання:
- type=0x0EED - золото; color=-1 - будь-який hue; backpack — лише прямий вміст рюкзака у цій формі FindType.
- int — serial/ID першого знайденого об'єкта, 0 за відсутності результату. Це числовий serial, тоді як FindType повертає hex-рядок або порожній рядок. Чи не повертає type.
var found = UO.FindType(0x0EED, -1, "backpack");
var value = UO.FindItem();
UO.Print(Convert.ToString(value));Параметри та порядок виконання:
- Усі чотири читання відносяться до одного пошуку, доки між ними не викликано іншого пошуку.
- Наприклад, дві стопки по 50: Items = 2, First stack = 50, All units = 100; First ID містить унікальний ID однієї стопки.
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");Параметри та порядок виконання:
- Перший type - золото, другий 0x0F7A - окремий тип реагенту. Нова команда змінює спільний знімок.
- saved залишається числом із першого пошуку. Друге читання відноситься до реагента навіть за відсутності збігів.
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;
}
}C# враховує регістр. Використовуйте точне ім’я UO. Числові прапорці порівнюйте з 0; bool використовуйте лише там, де сигнатура повертає bool.
Параметри: Немає параметрів.
Результат: dynamic / Any.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.FindItem:bridge.FindItem.
Внутрішній код реалізації, не самостійний скрипт.
case "finditem": return new InjectionValue(bridge.FindItem);Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
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);Шукає завантажені предмети або mobiles за декількома type/hue. Повертає перший serial рядком та зберігає весь упорядкований результат для FindItem, FindCount та GetFoundItems.
-
list— Ім'я непустого набору AddFindList; або плоский масив числових type; або рядок типів з роздільниками |, кома, точка з комою або пробіл, наприклад "0x0EED|0x0F7A". Масив/рядок типів використовують будь-який hue. Пари [type,hue] всередині масиву не підтримуються; для hue створіть іменований набір. Порядок записів визначає пріоритет. Graphic/type предмета чи body mobile, а чи не його serial. Зазвичай int 0..65535, включаючи 0x0EED; -1 або 0xFFFF означають будь-який type при пошуку. Вказуйте значення на запис. Декілька типів додаються окремими дзвінками. -
container— За замовчуванням -1: речі, чий кореневий контейнер — персонаж (у тому числі вкладені сумки та екіпірування). "my" = -1. ground, "ground", UO.Ground(), числові 0 або 1 вибирають світ: предмети на землі та mobiles, крім self. "backpack" або serial контейнера > 1 шукають тільки прямий вміст, без рекурсії. Об'єктний аліас дозволяється як serial; невірний аліас може дати 0, тому перевірте його через GetSerial заздалегідь. -
distance- Невід'ємний радіус клітин по max(abs(dx),abs(dy)); діагональ - одна клітина. Чинить на пошук ground; прямий вміст контейнера на відстані не обмежується. За замовчуванням та за негативного аргументу береться UO.FindDistance(). 0 - ті ж X/Y. -
notoriety— За замовчуванням1будь-який код. Одне число, рядок "5|6або плоский масив чисел задають дозволені коди mobiles; при такому фільтрі Items виключені. 0 невідомо, 1 innocent, 2 ally, 3 gray, 4 criminal, 5 enemy, 6 murderer, 7 invulnerable; сенс відносин ставить сервер. Порожня маска/any/-1 без конкретних кодів не обмежує. При змішуванні wildcard і кодів конкретні коди залишаються обмеженням. Нечислові токени ігноруються поруч із коректними; маска тільки з помилкових токенів не знаходить нічого. -
nearest— За замовчуванням false. false/0: спочатку пріоритет запису list, потім менший serial. true/1: спочатку відстань, потім пріоритет запису, потім serial. Це порядок, а чи не додатковий фільтр. -
maxZ— Допустима абсолютна відмінність Z від персонажа включно. За умовчанням або за негативного аргументу використовується UO.FindVertical(); 0 допускає лише однакову Z. Для явного serial контейнера >1 береться Z завантаженого контейнера (якщо його немає - Z речі); для інших режимів - Z кандидата. Координати речі в Gump не є висотою світу. -
includeIgnored— За замовчуванням false: serial з Ignore даного runtime виключаються. true/1 включає їх тільки в цей пошук і не очищує Ignore.
string: hex-serial першого результату (наприклад "0x40000011") або порожній рядок "" за відсутності збігів. Це ID, не type, кількість і не bool: перевіряйте result != "", а не result == true. При нормальному непустому запиті "FindItem" зберігає той же "ID" числом, "FindCount" () - число distinct об'єктів, "GetFoundItems" () - масив їх числових "serial".
- Від 1 до 7 позиційних аргументів; пропускати можна лише хвіст. Щоб встановити maxZ, явно передайте попередні аргументи. Пошук синхронний за локально завантаженим станом: не відкриває контейнер, не підвантажує вміст, не перевіряє лінію огляду/доступність та не атакує.
- Кожен об'єкт включається один раз, навіть якщо збігся з кількома правилами. Його пріоритет - перший збіг запис. Невідоме ім'я намагається розбиратися як рядок типів; нечитаний type/hue викликає помилку перетворення.
- Непустий запит очищає попередні FindItem/FindCount/GetFoundItems до відбору; відсутність збігів залишає порожні результати. Виняток: порожній масив або порожній рядок list повертають до звернення до пошуку і зберігають колишні результати. Не рахуйте FindCount після такого виклику новим результатом.
- Зміна визначень AddFindList/ClearFindList/DeleteFindList не змінює знайдений набір. Інший пошук у цьому runtime замінює FindItem та загальний масив, тому зберігайте GetFoundItems перед вкладеним пошуком.
- Визначення перебувають у стані даного скриптового runtime. Самостійний інший runtime має свій набір; закриття вікна IDE не є очищенням цих правил. Це не файл налаштувань та не список глобальних об'єктів гри.
- AddFindList дописує запис до кінця; повторення не видаляються. Для повторної підготовки свого набору спершу викликайте ClearFindList("ім'я"). Зміна визначень не очищає вже отримані FindItem/FindCount/GetFoundItems.
- Запис зберігає текстові поля. Числовий літерал "0x0EED" зберігається як "3821", рядок "0x0EED" - як "0x0EED". Пошук перетворює обидва варіанти на число, а DeleteFindList порівнює саме збережений текст. Використовуйте однакову форму при додаванні та видаленні.
- Невідоме ім'я в FindList не є порожнім зареєстрованим набором: двигун намагається розібрати його як список числових типів. Число ім'я викликає помилку перетворення. Після видалення останнього запису створіть новий набір до пошуку цього імені.
Кожен приклад можна зберегти окремим файлом .csx та запускати в IDE. Об'єкт UO та функції очікування надає host поточної ігрової сесії. Демонстраційні serial, імена, координати та адреси замініть своїми.
Виконайте цей код як окремий файл .csx. Аргументи видно безпосередньо у виклику; демонстраційні імена, serial та адреси замініть своїми.
Результат одного виклику виводиться в журнал. Число не перетворюється на bool; для масиву показано кількість елементів.
var result = UO.FindList(new[] { 0x0EED }, "backpack");
UO.Print("FindList: " + Convert.ToString(result));Параметри та порядок виконання:
- За false золото має пріоритет перед другим type навіть на більшій відстані. Радіус 2 і maxZ=5 обмежують кандидатів; вони не гарантують права підняти річ.
- Це реальна ігрова дія: переноситься лише перший знайдений об'єкт. Результат MoveItem не означає підтвердження сервером всього переміщення.
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;Параметри та порядок виконання:
- Сім параметрів: два body, світ, радіус 12, коди 5 або 6, найближчий першим, різниця Z не більше 10, ігноровані виключені. Тут лише вибір та збереження; атакуючий скрипт повинен окремо перевірити відповідні умови.
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;Параметри та порядок виконання:
- оголошення змінної types[1] створює індекси 0 і 1 у цьому движку. Підсумовуються одиниці двох видів, а чи не число стосів. backpack обмежений прямим вмістом; вкладені сумки сюди не входять.
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;
}C# враховує регістр. Використовуйте точне ім’я UO. Числові прапорці порівнюйте з 0; bool використовуйте лише там, де сигнатура повертає bool.
Параметри: list (Any)
Результат: string / String.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.Register [FindList]. -
InjectionScript.Runtime.InjectionApiUO.CompactFindList:CompactFindList(values).
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
values => new InjectionValue(CompactFindList(values))Параметри: list (Any), container (Any)
Результат: string / String.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.Register [FindList]. -
InjectionScript.Runtime.InjectionApiUO.CompactFindList:CompactFindList(values).
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
values => new InjectionValue(CompactFindList(values))Параметри: list (Any), container (Any), distance (Any)
Результат: string / String.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.Register [FindList]. -
InjectionScript.Runtime.InjectionApiUO.CompactFindList:CompactFindList(values).
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
values => new InjectionValue(CompactFindList(values))Параметри: list (Any), container (Any), distance (Any), notoriety (Any)
Результат: string / String.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.Register [FindList]. -
InjectionScript.Runtime.InjectionApiUO.CompactFindList:CompactFindList(values).
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
values => new InjectionValue(CompactFindList(values))Параметри: list (Any), container (Any), distance (Any), notoriety (Any), nearest (Any)
Результат: string / String.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.Register [FindList]. -
InjectionScript.Runtime.InjectionApiUO.CompactFindList:CompactFindList(values).
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
values => new InjectionValue(CompactFindList(values))
UO.FindList(list, container, distance, notoriety, nearest, maxZ) — UO.FindList(Any,Any,Any,Any,Any,Any)
Параметри: list (Any), container (Any), distance (Any), notoriety (Any), nearest (Any), maxZ (Any)
Результат: string / String.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.Register [FindList]. -
InjectionScript.Runtime.InjectionApiUO.CompactFindList:CompactFindList(values).
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
values => new InjectionValue(CompactFindList(values))
UO.FindList(list, container, distance, notoriety, nearest, maxZ, includeIgnored) — UO.FindList(Any,Any,Any,Any,Any,Any,Any)
Параметри: list (Any), container (Any), distance (Any), notoriety (Any), nearest (Any), maxZ (Any), includeIgnored (Any)
Результат: string / String.
Під час виклику:
-
InjectionScript.Runtime.InjectionApiUO.Register [FindList]. -
InjectionScript.Runtime.InjectionApiUO.CompactFindList:CompactFindList(values).
Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Внутрішній код реалізації, не самостійний скрипт.
values => new InjectionValue(CompactFindList(values))ClassicUO — Bad Newbie & C# Scripts IDE