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