API UO Info - LIHACHTETAN/ClassicUO-Bad-Newbie-CSharp-Scripts-IDE GitHub Wiki
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
UO.Info
Сигнатури C#
string UO.Info();
string UO.Info(object? serial);
string UO.Info(object? type, object? x = null, object? y = null);
string UO.Info(object? type, object? x, object? y, object? z);
Поведінка та результат
Режим виклику визначає результат: команда з графічного чату або прив’язаної команди відкриває таблицю з полями, значеннями, Ctrl+C та прокруткою. Звичайний C#-скрипт отримує рядок даних без вікон і без прицілу, навіть коли ігрове вікно відкрите. Доступні лише дані, відомі клієнту.
У графічному чаті Info та InfoTile без аргументів вмикають приціл. У скрипті Info() читає останню об’єктну ціль або свого персонажа, а InfoTile() — землю під персонажем. Явні serial, type та координати читають заданий об’єкт або тайл. Третій аргумент InfoTile(x,y,map) — номер карти.
Параметри
serial— Серійний номер об’єкта або збережений псевдонім.type— Графічний ID предмета; -1 — будь-який тип у вказаній точці.x— Координата X світу.y— Координата Y світу.z— Висота Z; скорочена форма використовує 0.
UO.Info(type: 0x0EED) читає найближчий завантажений об’єкт заданого типу без прицілу. Для предмета в контейнері відстань визначається за його кореневим власником; за однакової відстані вибір визначає serial. Ця команда не завантажує невідомі серверні об’єкти. UO.Info(serial) як і раніше означає serial, а не type. Для координат передайте разом x та y; одинока координата повертає пояснення помилки й не вмикає приціл. У чаті форма #info type 0x0EED використовує такий самий пошук найближчого об’єкта.
Команди чату
#info
#UO.Info id 0x40001234
#info type 0x0EED
#info xy 1450 1690
#info type 0x0EED xy 1450 1690 0
Самостійні приклади C#
Кожен блок — повний окремий .csx. Демонстраційні serial, type та координати замініть своїми. Параметри передаються у порядку сигнатури; іменовані параметри C# дозволяють явно вказати їх призначення.
1
string report = UO.Info(0x40001234);
UO.Print(report);
2
string InspectSelf() => UO.Info("self");
UO.Print(InspectSelf());
3
foreach (int serial in new[] { 0x40001234, 0x40005678 })
{
string report = UO.Info(serial);
UO.Print(report);
}
4
new CommandSample().Execute(UO);
sealed class CommandSample
{
public void Execute(global::ClassicUO.CSharp.CSharpGameApi api)
{
string report = api.Info(0x40001234);
api.Print(report);
}
}
Внутрішні виклики
CSharpGameApi.Info
-> CSharpScriptGlobals
-> InjectionScript.Runtime.InjectionApiUO.Info
ClassicUOInjectionApiBridge -> YokoInfoReport -> YokoInfoGump
ushort goldType = 0x0EED;
string report = UO.Info(type: goldType);
UO.Print(report);
int playerX = UO.GetX();
int playerY = UO.GetY();
int playerZ = UO.GetZ();
string report = UO.Info(type: 0x0EED, x: playerX, y: playerY, z: playerZ);
UO.Print(report);