API UO BookGetPageText - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
ClassicUO / Basic IDE
Оглавление · Алфавитный указатель · Books
Reads page text from the currently open ModernBookGump first. If no live page text is available, the Basic compatibility buffer is used as a fallback.
UO.BookGetPageText(Page:Any) -> Any
Регистр имени не важен. Any — динамическое значение Basic; Unit — отсутствие возвращаемого значения. Integer — знаковое 32-битное число, Decimal — число с плавающей точкой. Правила типов, serial, индексов и ожиданий.
| Имя | Назначение |
|---|---|
Page |
Позиционный аргумент этой перегрузки. Подробности использования указаны в описании/фактической ветви runtime ниже. |
Параметры обязательны внутри каждой показанной сигнатуры. Опустить аргумент можно только при наличии более короткой перегрузки; пропуск позиции посередине не подразумевается.
The server may not have delivered every book page yet. Opening/navigating the book can cause ClassicUO to request missing page data.
Каждый блок — самостоятельный скрипт из мануала проекта. Параметры демонстрационного объекта/контейнера и условия действия необходимо сопоставить с вашей игровой ситуацией.
SUB Main()
VAR page1 = UO.BookGetPageText(1)
UO.Print(page1)
END SUBSUB Main()
VAR result = UO.BookGetPageText(1)
UO.Print(CStr(result))
END SUBSUB Main()
VAR arg1 = 1 # Page
VAR result = UO.BookGetPageText(arg1)
UO.Print(CStr(result))
END SUBSUB ReadResult()
VAR arg1 = 1 # Page
VAR result = UO.BookGetPageText(arg1)
UO.Print(CStr(result))
END SUB
SUB Main()
ReadResult()
END SUBРеализация и проверка контракта
InjectionScript.Runtime.InjectionApiUO+<>c__DisplayClass38_0.<RegisterStealthCompatibility>b__0
Соответствующая ветвь совместимого обработчика в InjectionApiUO.cs. Arg(i)/Text(i) читают позицию с нуля; bridge обращается к клиенту. Прямые типизированные перегрузки перечислены выше и могут иметь отдельный маршрут.
{
int pageNumber = Math.Max(1, Arg(0));
string liveText = bridge.BookGetPageText(pageNumber);
if (!string.IsNullOrEmpty(liveText))
return new InjectionValue(liveText);
int page = pageNumber - 1;
return new InjectionValue(page < state.BookPages.Count ? state.BookPages[page] : string.Empty);
}Источник реестра и отчёт сверки. Примеры проверяются загрузчиком/парсером включённого runtime. Действия на игровом сервере этой проверкой не исполняются.