API UO UpdateFigure - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
ClassicUO / Basic IDE
Оглавление · Алфавитный указатель · Client UI
Replaces the stored geometry/style/text for an existing figure and the next World Map render uses the updated values.
UO.UpdateFigure(FigureID:Any, figure:Any) -> Any
Регистр имени не важен. Any — динамическое значение Basic; Unit — отсутствие возвращаемого значения. Integer — знаковое 32-битное число, Decimal — число с плавающей точкой. Правила типов, serial, индексов и ожиданий.
| Имя | Назначение |
|---|---|
FigureID |
Позиционный аргумент этой перегрузки. Подробности использования указаны в описании/фактической ветви runtime ниже. |
figure |
Позиционный аргумент этой перегрузки. Подробности использования указаны в описании/фактической ветви runtime ниже. |
Параметры обязательны внутри каждой показанной сигнатуры. Опустить аргумент можно только при наличии более короткой перегрузки; пропуск позиции посередине не подразумевается.
The same local-only and brush-rendering limitations as AddFigure apply. Unknown IDs are not created implicitly; use AddFigure to allocate a new ID.
Каждый блок — самостоятельный скрипт из мануала проекта. Параметры демонстрационного объекта/контейнера и условия действия необходимо сопоставить с вашей игровой ситуацией.
SUB Main()
DIM fig(11)
fig[0] = 4
fig[1] = 0
fig[2] = UO.GetX(self)
fig[3] = UO.GetY(self)
fig[4] = 0
fig[5] = 0
fig[6] = 0
fig[7] = 1
fig[8] = 65535
fig[9] = UO.WorldNum()
fig[10] = 'Updated'
IF UO.UpdateFigure(figureId, fig) = 0 THEN
UO.Print('Figure not found')
END IF
END SUBSUB Main()
VAR result = UO.UpdateFigure(1, 2)
UO.Print(CStr(result))
END SUBSUB Main()
VAR arg1 = 1 # FigureID
VAR arg2 = 2 # figure
VAR result = UO.UpdateFigure(arg1, arg2)
UO.Print(CStr(result))
END SUBSUB ReadResult()
VAR arg1 = 1 # FigureID
VAR arg2 = 2 # figure
VAR result = UO.UpdateFigure(arg1, arg2)
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 id = Arg(0);
if (!state.MapFigures.ContainsKey(id) || !TryMapFigureArg(1, out int[] figure, out string figureText))
return InjectionValue.False;
if (bridge.SetMapFigure(id, figure[0], figure[1], figure[2], figure[3], figure[4], figure[5], figure[6], figure[7], figure[8], figure[9], figureText) == 0)
return InjectionValue.False;
state.MapFigures[id] = SerializeMapFigure(figure, figureText);
return InjectionValue.True;
}Источник реестра и отчёт сверки. Примеры проверяются загрузчиком/парсером включённого runtime. Действия на игровом сервере этой проверкой не исполняются.