API UO SetARExtParams - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
ClassicUO / Basic IDE
Оглавление · Алфавитный указатель · Character
The values are no longer stored as inert runtime-only strings. Basic passes them into the actual ClassicUO reconnect selection pipeline:
- the shard name updates ClassicUO's selected server preference;
- the character name is supplied through
LastCharacterManager; - the next
UO.Connect()/ reconnect uses those preferences when the server list and character list are received.
The command does not enable automatic reconnect by itself. Use the normal AutoReconnect/SetARStatus API for that policy.
UO.SetARExtParams() -> Unit
UO.SetARExtParams(ShardName:Any) -> Unit
UO.SetARExtParams(ShardName:Any, CharName:Any) -> Unit
UO.SetARExtParams(ShardName:Any, CharName:Any, UseAtEveryConnect:Any) -> Unit
Регистр имени не важен. Any — динамическое значение Basic; Unit — отсутствие возвращаемого значения. Integer — знаковое 32-битное число, Decimal — число с плавающей точкой. Правила типов, serial, индексов и ожиданий.
| Имя | Назначение |
|---|---|
ShardName |
Позиционный аргумент этой перегрузки. Подробности использования указаны в описании/фактической ветви runtime ниже. |
CharName |
character name to select after the server character list arrives. Empty or omitted uses the current character name when available. |
UseAtEveryConnect |
Boolean/integer flag. 0 makes the requested character override one-shot; non-zero keeps the character selection override for subsequent reconnects. The shard display selection is saved through ClassicUO's normal LastServerName settings path. |
Параметры обязательны внутри каждой показанной сигнатуры. Опустить аргумент можно только при наличии более короткой перегрузки; пропуск позиции посередине не подразумевается.
ShardName — Quoted BASIC string. Fixed keywords/enums, when present, are listed in Behavior/Notes.
-
CharName— Quoted BASIC string. Fixed keywords/enums, when present, are listed in Behavior/Notes. -
UseAtEveryConnect— TRUE/FALSE or 1/0.
ShardName is the human-readable server/shard name, not IP:port and not the internal profile identity key.
- Selection can only succeed if the requested shard/character is actually returned by the server.
- The connected server's profile folder is created using the actual display server name, for example
Data/Profiles/Age of Power/0x12345678/.
Возвращает: Unit — значения нет. Выполняйте вызов отдельной строкой; его нельзя использовать как проверку успеха. Эффект и ограничения зависят от команды.
Каждый блок — самостоятельный скрипт из мануала проекта. Параметры демонстрационного объекта/контейнера и условия действия необходимо сопоставить с вашей игровой ситуацией.
SUB Main()
UO.SetARExtParams('Age of Power', 'LIHACH', 1)
END SUBSUB Main()
# Use current shard/current character as reconnect selection.
UO.SetARExtParams()
END SUBSUB Main()
UO.SetARExtParams()
END SUBSUB Main()
VAR arg1 = 1 # ShardName
VAR arg2 = 2 # CharName
VAR arg3 = 3 # UseAtEveryConnect
UO.SetARExtParams(arg1, arg2, arg3)
END SUBSUB Main()
UO.SetARExtParams(1)
END SUBSUB Main()
UO.SetARExtParams(1, 2)
END SUBSUB Main()
UO.SetARExtParams()
END SUBSUB ReadResult()
UO.SetARExtParams()
END SUB
SUB Main()
ReadResult()
END SUBРеализация и проверка контракта
InjectionScript.Runtime.InjectionApiUO+<>c__DisplayClass38_0.<RegisterStealthCompatibility>b__0
Соответствующая ветвь совместимого обработчика в InjectionApiUO.cs. Arg(i)/Text(i) читают позицию с нуля; bridge обращается к клиенту. Прямые типизированные перегрузки перечислены выше и могут иметь отдельный маршрут.
{
string requestedShard = arguments.Length > 0 ? Text(0) : string.Empty;
string requestedCharacter = arguments.Length > 1 ? Text(1) : string.Empty;
state.AutoReconnectShard = string.IsNullOrWhiteSpace(requestedShard)
? bridge.ShardName
: requestedShard;
state.AutoReconnectCharacter = string.IsNullOrWhiteSpace(requestedCharacter)
? bridge.GetName(bridge.Self) ?? string.Empty
: requestedCharacter;
int useAtEveryConnect = arguments.Length > 2 ? Arg(2) : 0;
bridge.SetReconnectSelection(state.AutoReconnectShard, state.AutoReconnectCharacter, useAtEveryConnect);
return InjectionValue.Unit;
}Источник реестра и отчёт сверки. Примеры проверяются загрузчиком/парсером включённого runtime. Действия на игровом сервере этой проверкой не исполняются.