API UO SetARExtParams - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki

UO.SetARExtParams

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:

  1. the shard name updates ClassicUO's selected server preference;
  2. the character name is supplied through LastCharacterManager;
  3. 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 — значения нет. Выполняйте вызов отдельной строкой; его нельзя использовать как проверку успеха. Эффект и ограничения зависят от команды.

Примеры

Каждый блок — самостоятельный скрипт из мануала проекта. Параметры демонстрационного объекта/контейнера и условия действия необходимо сопоставить с вашей игровой ситуацией.

Пример 1

SUB Main()
    UO.SetARExtParams('Age of Power', 'LIHACH', 1)
END SUB

Пример 2

SUB Main()
    # Use current shard/current character as reconnect selection.
    UO.SetARExtParams()
END SUB

Пример 3

SUB Main()
    UO.SetARExtParams()
END SUB

Пример 4

SUB Main()
    VAR arg1 = 1 # ShardName
    VAR arg2 = 2 # CharName
    VAR arg3 = 3 # UseAtEveryConnect
    UO.SetARExtParams(arg1, arg2, arg3)
END SUB

Пример 5

SUB Main()
    UO.SetARExtParams(1)
END SUB

Пример 6

SUB Main()
    UO.SetARExtParams(1, 2)
END SUB

Пример 7

SUB Main()
    UO.SetARExtParams()
END SUB

Пример 8

SUB 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. Действия на игровом сервере этой проверкой не исполняются.

⚠️ **GitHub.com Fallback** ⚠️