Skip to content

Runtime Helpers F

Codex edited this page Oct 12, 2026 · 1 revision

uk · ru · en · de · fr · it · es · zh-tw · ja · ko

Допоміжні функції F

Внутрішній код реалізації, не самостійний скрипт.

ClassicUO.CSharp.CSharpCallbacks.BindWorker

Повертає значення виразу нижче.

Параметри: Немає параметрів.

Джерело: Project_Full/src/ClassicUO.CSharp/CSharpCallbacks.cs:109.

private IDisposable BindWorker()

Результат: IDisposable.

Результат: new Release(() => Current.Value = previous).

Внутрішній код реалізації, не самостійний скрипт.

private IDisposable BindWorker()
    {
        var previous = Current.Value;
        Current.Value = new Ambient(this, previous);
        return new Release(() => Current.Value = previous);
    }

ClassicUO.CSharp.CSharpCallbacks.Subscribe

Перевіряє умови нижче й повертає показаний результат.

Параметри: eventName, handler

Джерело: Project_Full/src/ClassicUO.CSharp/CSharpCallbacks.cs:227.

public IDisposable Subscribe(string eventName, Func<object?[], Task> handler)

Результат: IDisposable.

Результат: new Release(() => Remove(listener)).

Виклики: ArgumentNullException.ThrowIfNull, Verify, events.Subscribe, listeners.Add, source.Dispose.

Умови: events is null.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

public IDisposable Subscribe(string eventName, Func<object?[], Task> handler)
    {
        ArgumentNullException.ThrowIfNull(handler);
        Verify();
        if (events is null) throw new InvalidOperationException("Client events require a connected C# event source.");
        var source = events.Subscribe(eventName);
        var listener = new Listener(eventName, source, handler);
        try { lock (sync) { Verify(); listeners.Add(listener); } }
        catch { source.Dispose(); throw; }
        return new Release(() => Remove(listener));
    }

ClassicUO.CSharp.CSharpCallbacks.Trigger

Виконує показані виклики та оновлення стану.

Параметри: state

Джерело: Project_Full/src/ClassicUO.CSharp/CSharpCallbacks.cs:392.

private void Trigger(StateEvent state)

Результат: void.

Виклики: stateEvents.GetValueOrDefault, RemoveState, Exists, Start, host.HasCSharpScript, host.ExecuteCSharpScript.

Умови: stateEvents.GetValueOrDefault(state.Name) != state; !state.Repeat; state.Handler.Length == 0; Exists(state.Handler).

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

private void Trigger(StateEvent state)
    {
        lock (sync) if (stateEvents.GetValueOrDefault(state.Name) != state) return;
        if (!state.Repeat) RemoveState(state.Name);
        if (state.Handler.Length == 0) return;
        if (Exists(state.Handler)) Start(state.Handler);
        else if (events is ICSharpScriptHost host && host.HasCSharpScript(state.Handler))
            host.ExecuteCSharpScript("exec \"" + state.Handler + "\"");
        else throw new ArgumentException($"Register the C# routine or load the C# event script '{state.Handler}' before enabling this handler.");
    }

ClassicUO.Game.GameActions.ChangeSkillLockStatus

Виконує показані виклики та оновлення стану.

Параметри: skillindex, lockstate

Джерело: Project_Full/src/ClassicUO.Client/Game/GameActions.cs:729.

public static void ChangeSkillLockStatus(ushort skillindex, byte lockstate)

Результат: void.

Виклики: Socket.Send_SkillStatusChangeRequest.

Внутрішній код реалізації, не самостійний скрипт.

public static void ChangeSkillLockStatus(ushort skillindex, byte lockstate)
        {
            Socket.Send_SkillStatusChangeRequest(skillindex, lockstate);
        }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.CircleTrans

Повертає значення виразу нижче.

Параметри: Немає параметрів.

Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:623.

public int CircleTrans()

Результат: int.

Результат: Invoke(() => ProfileManager.CurrentProfile?.UseCircleOfTransparency == true ? 1 : 0).

Виклики: Invoke.

Виклики:

  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => ProfileManager.CurrentProfile?.UseCircleOfTransparency == true ? 1 : 0). Кандидати перевантаження: джерело не підтверджує вибір конкретного варіанта.
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => ProfileManager.CurrentProfile?.UseCircleOfTransparency == true ? 1 : 0). Кандидати перевантаження: джерело не підтверджує вибір конкретного варіанта.

Внутрішній код реалізації, не самостійний скрипт.

public int CircleTrans() => Invoke(() => ProfileManager.CurrentProfile?.UseCircleOfTransparency == true ? 1 : 0);

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.CloseClientGump

Виконує показані виклики та оновлення стану.

Параметри: id

Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:2840.

public void CloseClientGump(int id)

Результат: void.

Виклики: Invoke.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

public void CloseClientGump(int id) => Invoke(() =>

        {

            foreach (Gump gump in ServerGumpsUnsafe().Where(gump => gump.ServerSerial == (uint)id).ToArray())

                gump.Dispose();

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.ControlButtonId

Повертає значення виразу нижче.

Параметри: control

Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:3951.

private static int ControlButtonId(Control control)

Результат: int.

Результат: control is Button b ? b.ButtonID : ((SessionGumpControl)control).ButtonId.

Внутрішній код реалізації, не самостійний скрипт.

private static int ControlButtonId(Control control) => control is Button b ? b.ButtonID : ((SessionGumpControl)control).ButtonId;

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.DeleteJournal

Виконує показані виклики та оновлення стану.

Параметри: Немає параметрів.

Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:1924.

public void DeleteJournal()

Результат: void.

Виклики: Invoke.

Виклики:

  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => { JournalManager.Entries.Clear(); _journalLine = 0; _journalMatchCount = 0; _lastJournalMatch = null; }). Кандидати перевантаження: джерело не підтверджує вибір конкретного варіанта.
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => { JournalManager.Entries.Clear(); _journalLine = 0; _journalMatchCount = 0; _lastJournalMatch = null; }). Кандидати перевантаження: джерело не підтверджує вибір конкретного варіанта.

Внутрішній код реалізації, не самостійний скрипт.

public void DeleteJournal() => Invoke(() =>

        {

            JournalManager.Entries.Clear();

            _journalLine = 0;

            _journalMatchCount = 0;

            _lastJournalMatch = null;

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Dexterity

Читає актуальне значення персонажа з локальної моделі клієнта.

Параметри: Немає параметрів.

Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:152.

public int Dexterity

Результат: int.

Результат: Invoke(() => _world.Player is { IsDestroyed: false } player ? player.Dexterity : 0).

Виклики: Invoke.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

public int Dexterity => Invoke(() => _world.Player is { IsDestroyed: false } player ? player.Dexterity : 0);

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetGumpId

Повертає значення виразу нижче.

Параметри: index

Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:2815.

public int GetGumpId(int index)

Результат: int.

Результат: Invoke(() => (int)(ServerGumpsUnsafe().ElementAtOrDefault(index)?.ServerSerial ?? 0)).

Виклики: Invoke.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

public int GetGumpId(int index) => Invoke(() => (int)(ServerGumpsUnsafe().ElementAtOrDefault(index)?.ServerSerial ?? 0));

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetIgnoreList

Повертає значення виразу нижче.

Параметри: Немає параметрів.

Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:2707.

public int[] GetIgnoreList()

Результат: int[].

Результат: State.IgnoredSerials.OrderBy(serial => serial).ToArray().

Виклики: State.IgnoredSerials.OrderBy(serial => serial).ToArray, State.IgnoredSerials.OrderBy.

Внутрішній код реалізації, не самостійний скрипт.

public int[] GetIgnoreList() => State.IgnoredSerials.OrderBy(serial => serial).ToArray();

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetMaxStamina

Повертає значення виразу нижче.

Параметри: id

Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:236.

public int GetMaxStamina(int id)

Результат: int.

Результат: Invoke(() => (_world.Get(unchecked((uint)id)) as Mobile)?.StaminaMax ?? 0).

Виклики: Invoke.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

public int GetMaxStamina(int id) => Invoke(() => (_world.Get(unchecked((uint)id)) as Mobile)?.StaminaMax ?? 0);

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetPing

Повертає значення виразу нижче.

Параметри: timeoutMs

Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:339.

public int GetPing(int timeoutMs)

Результат: int.

Результат: TryProbeServerPing(timeoutMs, out int pingMs) ? pingMs : -1.

Виклики: TryProbeServerPing.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

public int GetPing(int timeoutMs)

            => TryProbeServerPing(timeoutMs, out int pingMs) ? pingMs : -1;

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetSkillValue

Повертає значення виразу нижче.

Параметри: name, current, cap

Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:2093.

public double GetSkillValue(string name, bool current, bool cap)

Результат: double.

Виклики: Invoke.

Виклики:

  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => { Skill skill = FindSkillUnsafe(name); if (skill == null) return 0d; // Convert the protocol's tenths directly to the runtime's Double. // Widening Skill.Value/Base/Cap first preserves their Single rounding error. return (cap ? skill.CapFixed : current ? skill.ValueFixed : skill.BaseFixed) / 10d; }). Кандидати перевантаження: джерело не підтверджує вибір конкретного варіанта.
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => { Skill skill = FindSkillUnsafe(name); if (skill == null) return 0d; // Convert the protocol's tenths directly to the runtime's Double. // Widening Skill.Value/Base/Cap first preserves their Single rounding error. return (cap ? skill.CapFixed : current ? skill.ValueFixed : skill.BaseFixed) / 10d; }). Кандидати перевантаження: джерело не підтверджує вибір конкретного варіанта.
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.FindSkillUnsafe: FindSkillUnsafe(name).

Внутрішній код реалізації, не самостійний скрипт.

public double GetSkillValue(string name, bool current, bool cap) => Invoke(() =>

        {

            Skill skill = FindSkillUnsafe(name);

            if (skill == null) return 0d;

            // Convert the protocol's tenths directly to the runtime's Double.

            // Widening Skill.Value/Base/Cap first preserves their Single rounding error.

            return (cap ? skill.CapFixed : current ? skill.ValueFixed : skill.BaseFixed) / 10d;

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetStatLockState

Повертає значення виразу нижче.

Параметри: stat

Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:2109.

public int GetStatLockState(int stat)

Результат: int.

Виклики: Invoke.

Виклики:

  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => stat switch { 0 => (int)(_world.Player?.StrLock ?? Lock.Up), 1 => (int)(_world.Player?.DexLock ?? Lock.Up), 2 => (int)(_world.Player?.IntLock ?? Lock.Up), _ => -1 }). Кандидати перевантаження: джерело не підтверджує вибір конкретного варіанта.
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => stat switch { 0 => (int)(_world.Player?.StrLock ?? Lock.Up), 1 => (int)(_world.Player?.DexLock ?? Lock.Up), 2 => (int)(_world.Player?.IntLock ?? Lock.Up), _ => -1 }). Кандидати перевантаження: джерело не підтверджує вибір конкретного варіанта.

Внутрішній код реалізації, не самостійний скрипт.

public int GetStatLockState(int stat) => Invoke(() => stat switch

        {

            0 => (int)(_world.Player?.StrLock ?? Lock.Up),

            1 => (int)(_world.Player?.DexLock ?? Lock.Up),

            2 => (int)(_world.Player?.IntLock ?? Lock.Up),

            _ => -1

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetTooltip::ReadTooltip

Повертає значення виразу нижче.

Параметри: Немає параметрів.

Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:2387.

string ReadTooltip()

Результат: string.

Виклики: Invoke.

Виклики:

  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => { if (!_world.OPL.TryGetNameAndData(serial, out string name, out string data)) return null; if (string.IsNullOrWhiteSpace(name)) return data ?? string.Empty; if (string.IsNullOrWhiteSpace(data)) return name; return name + Environment.NewLine + data; }). Кандидати перевантаження: джерело не підтверджує вибір конкретного варіанта.
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => { if (!_world.OPL.TryGetNameAndData(serial, out string name, out string data)) return null; if (string.IsNullOrWhiteSpace(name)) return data ?? string.Empty; if (string.IsNullOrWhiteSpace(data)) return name; return name + Environment.NewLine + data; }). Кандидати перевантаження: джерело не підтверджує вибір конкретного варіанта.

Внутрішній код реалізації, не самостійний скрипт.

string ReadTooltip() => Invoke(() =>

            {

                if (!_world.OPL.TryGetNameAndData(serial, out string name, out string data))

                    return null;

                if (string.IsNullOrWhiteSpace(name)) return data ?? string.Empty;

                if (string.IsNullOrWhiteSpace(data)) return name;

                return name + Environment.NewLine + data;

            });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetTooltipRecords

Перевіряє умови нижче й повертає показаний результат.

Параметри: objectId

Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:2437.

public (int ClilocID, string[] Parameters)[] GetTooltipRecords(int objectId)

Результат: (int ClilocID, string[] Parameters)[].

Результат: Array.Empty<(int, string[])>(); records.

Виклики: Array.Empty<(int, string[])>, ReadRecords, Invoke, _cancellationToken.ThrowIfCancellationRequested, _cancellationToken.WaitHandle.WaitOne.

Умови: serial == 0; records.Length != 0; Invoke(() => _world.OPL.Contains(serial)).

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

public (int ClilocID, string[] Parameters)[] GetTooltipRecords(int objectId)

        {

            uint serial = unchecked((uint)objectId);

            if (serial == 0)

                return Array.Empty<(int, string[])>();



            (int ClilocID, string[] Parameters)[] ReadRecords() => Invoke(() => _world.OPL.GetRecords(serial));

            var records = ReadRecords();

            if (records.Length != 0)

                return records;



            if (Invoke(() => _world.OPL.Contains(serial)))

                return records;

            for (int waited = 0; waited < 120; waited += 10)

            {

                _cancellationToken.ThrowIfCancellationRequested();

                _cancellationToken.WaitHandle.WaitOne(10);

                records = ReadRecords();

                if (records.Length != 0)

                    return records;

            }



            _cancellationToken.ThrowIfCancellationRequested();

            return Array.Empty<(int, string[])>();

        }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetWeaponAbilities

Повертає значення виразу нижче.

Параметри: Немає параметрів.

Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:2222.

public int[] GetWeaponAbilities()

Результат: int[].

Виклики: Invoke.

Виклики:

  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => _world.Player?.Abilities .Select(value => (int)((byte)value & 0x7F)) .Where(value => value > 0) .ToArray() ?? Array.Empty<int>()). Кандидати перевантаження: джерело не підтверджує вибір конкретного варіанта.
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => _world.Player?.Abilities .Select(value => (int)((byte)value & 0x7F)) .Where(value => value > 0) .ToArray() ?? Array.Empty<int>()). Кандидати перевантаження: джерело не підтверджує вибір конкретного варіанта.

Внутрішній код реалізації, не самостійний скрипт.

public int[] GetWeaponAbilities() => Invoke(() => _world.Player?.Abilities

            .Select(value => (int)((byte)value & 0x7F))

            .Where(value => value > 0)

            .ToArray() ?? Array.Empty<int>());

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetY

Повертає значення виразу нижче.

Параметри: id

Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:225.

public int GetY(int id)

Результат: int.

Результат: WithEntity(id, e => e.Y).

Виклики: WithEntity.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

public int GetY(int id) => WithEntity(id, e => e.Y);

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GlobalChatSend

Виконує показані виклики та оновлення стану.

Параметри: message

Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:1564.

public void GlobalChatSend(string message)

Результат: void.

Виклики: Invoke.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

public void GlobalChatSend(string message) => Invoke(() => NetClient.Socket.Send_ChatMessageCommand(message ?? string.Empty));

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.HasDoorAt

Повертає значення виразу нижче.

Параметри: x, y, z, map

Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:1419.

public int HasDoorAt(int x, int y, int z, int map)

Результат: int.

Виклики: Invoke.

Виклики:

  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => { if (_world.Map == null || map != _world.MapIndex) return 0; for (GameObject tile = _world.Map.GetTile(x, y); tile != null; tile = tile.TNext) { if (Math.Abs(tile.Z - z) > 20) continue; bool isDoor = false; if (tile is Static staticTile) isDoor = staticTile.ItemData.IsDoor; else if (tile is Multi multiTile) isDoor = multiTile.ItemData.IsDoor; else if (tile is Item itemTile) isDoor = itemTile.ItemData.IsDoor; if (isDoor) return 1; } return 0; }). Кандидати перевантаження: джерело не підтверджує вибір конкретного варіанта.
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => { if (_world.Map == null || map != _world.MapIndex) return 0; for (GameObject tile = _world.Map.GetTile(x, y); tile != null; tile = tile.TNext) { if (Math.Abs(tile.Z - z) > 20) continue; bool isDoor = false; if (tile is Static staticTile) isDoor = staticTile.ItemData.IsDoor; else if (tile is Multi multiTile) isDoor = multiTile.ItemData.IsDoor; else if (tile is Item itemTile) isDoor = itemTile.ItemData.IsDoor; if (isDoor) return 1; } return 0; }). Кандидати перевантаження: джерело не підтверджує вибір конкретного варіанта.

Внутрішній код реалізації, не самостійний скрипт.

public int HasDoorAt(int x, int y, int z, int map) => Invoke(() =>

        {

            if (_world.Map == null || map != _world.MapIndex)

                return 0;

            for (GameObject tile = _world.Map.GetTile(x, y); tile != null; tile = tile.TNext)

            {

                if (Math.Abs(tile.Z - z) > 20)

                    continue;



                bool isDoor = false;

                if (tile is Static staticTile)

                    isDoor = staticTile.ItemData.IsDoor;

                else if (tile is Multi multiTile)

                    isDoor = multiTile.ItemData.IsDoor;

                else if (tile is Item itemTile)

                    isDoor = itemTile.ItemData.IsDoor;



                if (isDoor)

                    return 1;

            }

            return 0;

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.HelpRequest

Виконує показані виклики та оновлення стану.

Параметри: Немає параметрів.

Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:1441.

public void HelpRequest()

Результат: void.

Виклики: Invoke.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

public void HelpRequest() => Invoke(GameActions.RequestHelp);

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.InParty

Повертає значення виразу нижче.

Параметри: Немає параметрів.

Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:1531.

public int InParty()

Результат: int.

Результат: Invoke(() => _world.Party.Leader != 0 ? 1 : 0).

Виклики: Invoke.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

public int InParty() => Invoke(() => _world.Party.Leader != 0 ? 1 : 0);

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke

Передає роботу в ігровий потік і враховує скасування.

Параметри: callback

Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:4013.

private T Invoke<T>(Func<T> callback)

Результат: T.

Результат: _manager.InvokeOnGameThread(callback, _cancellationToken).

Виклики: _manager.InvokeOnGameThread.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

private T Invoke<T>(Func<T> callback) => _manager.InvokeOnGameThread(callback, _cancellationToken);

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.IsMoving

Повертає значення виразу нижче.

Параметри: Немає параметрів.

Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:584.

public int IsMoving()

Результат: int.

Результат: Invoke(() => _world.Player != null && (_world.Player.Pathfinder.AutoWalking || _world.Player.Steps.Count > 0) ? 1 : 0).

Виклики: Invoke.

Виклики:

  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => _world.Player != null && (_world.Player.Pathfinder.AutoWalking || _world.Player.Steps.Count > 0) ? 1 : 0). Кандидати перевантаження: джерело не підтверджує вибір конкретного варіанта.
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => _world.Player != null && (_world.Player.Pathfinder.AutoWalking || _world.Player.Steps.Count > 0) ? 1 : 0). Кандидати перевантаження: джерело не підтверджує вибір конкретного варіанта.

Внутрішній код реалізації, не самостійний скрипт.

public int IsMoving() => Invoke(() => _world.Player != null && (_world.Player.Pathfinder.AutoWalking || _world.Player.Steps.Count > 0) ? 1 : 0);

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.IsSelfMobile

Повертає значення виразу нижче.

Параметри: mobile

Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:3815.

private bool IsSelfMobile(Mobile mobile)

Результат: bool.

Результат: player != null && (ReferenceEquals(mobile, player) || mobile?.Serial == player.Serial).

Виклики: ReferenceEquals.

Внутрішній код реалізації, не самостійний скрипт.

private bool IsSelfMobile(Mobile mobile)

        {

            PlayerMobile player = _world.Player;

            return player != null && (ReferenceEquals(mobile, player) || mobile?.Serial == player.Serial);

        }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.KeyPress

Виконує показані виклики та оновлення стану.

Параметри: key

Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:1390.

public void KeyPress(int key)

Результат: void.

Виклики: Invoke.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

public void KeyPress(int key) => Invoke(() =>

        {

            RequireGameInput();

            keybd_event((byte)key, 0, 0, UIntPtr.Zero);

            keybd_event((byte)key, 0, 2, UIntPtr.Zero);

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.LoadHotkeys

Виконує показані виклики та оновлення стану.

Параметри: Немає параметрів.

Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:3660.

public void LoadHotkeys()

Результат: void.

Виклики: Invoke.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

public void LoadHotkeys() => Invoke(_world.Macros.Load);

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.MatchesFindContainer

Перевіряє умови нижче й повертає показаний результат.

Параметри: item, containerId, range, recursive, checkVertical

Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:3850.

private bool MatchesFindContainer(Item item, int containerId, int range, bool recursive, bool checkVertical = true)

Результат: bool.

Результат: item.RootContainer == _world.Player?.Serial; recursive ? IsInsideContainer(item, (uint)containerId) : item.Container == (uint)containerId; true.

Виклики: Math.Abs, IsInsideContainer.

Умови: containerId == -1 || containerId == 0; containerId == 1; containerId > 1.

Внутрішній код реалізації, не самостійний скрипт.

private bool MatchesFindContainer(Item item, int containerId, int range, bool recursive, bool checkVertical = true)

        {

            if (containerId == -1 || containerId == 0)

                return item.RootContainer == _world.Player?.Serial;

            if (containerId == 1)

                return item.OnGround && item.Distance <= range

                    && (!checkVertical || _world.Player == null || Math.Abs(item.Z - _world.Player.Z) <= State.FindVertical);

            if (containerId > 1)

                return recursive ? IsInsideContainer(item, (uint)containerId) : item.Container == (uint)containerId;

            return true;

        }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.PrivateGetTile

Повертає значення виразу нижче.

Параметри: x, y, unknown, minTile, maxTile

Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:3282.

public string PrivateGetTile(int x, int y, int unknown, int minTile, int maxTile)

Результат: string.

Виклики: Invoke.

Виклики:

  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => { if (_world.Map is null) return "0x0000"; GameObject tile = _world.Map.GetTile(x, y); while (tile != null) { if (tile.Graphic >= minTile && tile.Graphic <= maxTile) { return $"0x{tile.Graphic:X4}"; } tile = tile.TNext; } return "0x0000"; }). Кандидати перевантаження: джерело не підтверджує вибір конкретного варіанта.
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => { if (_world.Map is null) return "0x0000"; GameObject tile = _world.Map.GetTile(x, y); while (tile != null) { if (tile.Graphic >= minTile && tile.Graphic <= maxTile) { return $"0x{tile.Graphic:X4}"; } tile = tile.TNext; } return "0x0000"; }). Кандидати перевантаження: джерело не підтверджує вибір конкретного варіанта.

Внутрішній код реалізації, не самостійний скрипт.

public string PrivateGetTile(int x, int y, int unknown, int minTile, int maxTile) => Invoke(() =>

        {

            if (_world.Map is null) return "0x0000";

            GameObject tile = _world.Map.GetTile(x, y);

            while (tile != null)

            {

                if (tile.Graphic >= minTile && tile.Graphic <= maxTile)

                {

                    return $"0x{tile.Graphic:X4}";

                }

                tile = tile.TNext;

            }

            return "0x0000";

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.ReplyServerPrompt

Виконує показані виклики та оновлення стану.

Параметри: text

Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:1409.

public void ReplyServerPrompt(string text)

Результат: void.

Виклики: Invoke.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

public void ReplyServerPrompt(string text) => Invoke(() => _world.MessageManager.SendServerPromptResponse(text ?? string.Empty));

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.RequestInteractiveTileInfoTarget

Перевіряє умови нижче й повертає показаний результат.

Параметри: Немає параметрів.

Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:944.

public int RequestInteractiveTileInfoTarget()

Результат: int.

Результат: 0.

Виклики: Invoke.

Умови: !_interactiveCommands.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

public int RequestInteractiveTileInfoTarget()

        {

            if (!_interactiveCommands)

                return 0;



            return Invoke(() =>

            {

                _world.TargetManager.SetTargeting(selected =>

                {

                    bool valid = selected != null && selected is not Entity;

                    string result = valid

                        ? FormatTileInfo(selected, _world.MapIndex)

                        : "UO.InfoTile: select a land or static map tile, not an item or mobile.";

                    if (valid)

                        OpenInteractiveInfoGump("C# Tile Information", result);

                    PrintInteractiveResult(result);

                }, 0, TargetType.Neutral);

                PrintInteractiveResult("UO.InfoTile: target a land or static map tile.");

                return 1;

            });

        }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Say

Виконує показані виклики та оновлення стану.

Параметри: message, color

Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:1397.

public void Say(string message, int color)

Результат: void.

Виклики: Invoke.

Виклики:

  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => { GameActions.Say(message ?? string.Empty, unchecked((ushort)color), allowYokoCommand: SCRIPT_SAY_ALLOW_YOKO_COMMAND); ReportStatus($"UO.UOSayColor delivered through ClassicUO server speech (hue=0x{unchecked((ushort)color):X4})"); }). Кандидати перевантаження: джерело не підтверджує вибір конкретного варіанта.
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => { GameActions.Say(message ?? string.Empty, unchecked((ushort)color), allowYokoCommand: SCRIPT_SAY_ALLOW_YOKO_COMMAND); ReportStatus($"UO.UOSayColor delivered through ClassicUO server speech (hue=0x{unchecked((ushort)color):X4})"); }). Кандидати перевантаження: джерело не підтверджує вибір конкретного варіанта.
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.ReportStatus: ReportStatus($"UO.UOSayColor delivered through ClassicUO server speech (hue=0x{unchecked((ushort)color):X4})").

Внутрішній код реалізації, не самостійний скрипт.

public void Say(string message, int color) => Invoke(() =>

        {

            GameActions.Say(message ?? string.Empty, unchecked((ushort)color),

                allowYokoCommand: SCRIPT_SAY_ALLOW_YOKO_COMMAND);

            ReportStatus($"UO.UOSayColor delivered through ClassicUO server speech (hue=0x{unchecked((ushort)color):X4})");

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Self

Читає актуальне значення персонажа з локальної моделі клієнта.

Параметри: Немає параметрів.

Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:134.

public int Self

Результат: int.

Виклики: Invoke.

Виклики:

  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => _world.Player is { IsDestroyed: false } player ? unchecked((int)player.Serial) : 0). Кандидати перевантаження: джерело не підтверджує вибір конкретного варіанта.
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => _world.Player is { IsDestroyed: false } player ? unchecked((int)player.Serial) : 0). Кандидати перевантаження: джерело не підтверджує вибір конкретного варіанта.

Внутрішній код реалізації, не самостійний скрипт.

public int Self => Invoke(() => _world.Player is { IsDestroyed: false } player

            ? unchecked((int)player.Serial) : 0);

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SendShopReply

Виконує показані виклики та оновлення стану.

Параметри: reply

Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:3569.

public void SendShopReply(string reply)

Результат: void.

Виклики: Invoke.

Виклики:

  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => { if (_world.Shops.Last is { } shop) { shop.Reply(reply); return; } ShopGump gump = UIManager.Gumps.OfType<ShopGump>().LastOrDefault(item => item.World == _world && !item.IsDisposed && item.ShopState == null); if (gump == null) Error("UO.SendShopReply: no active vendor offer"); else gump.SendYokoShopReply(reply); }). Кандидати перевантаження: джерело не підтверджує вибір конкретного варіанта.
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => { if (_world.Shops.Last is { } shop) { shop.Reply(reply); return; } ShopGump gump = UIManager.Gumps.OfType<ShopGump>().LastOrDefault(item => item.World == _world && !item.IsDisposed && item.ShopState == null); if (gump == null) Error("UO.SendShopReply: no active vendor offer"); else gump.SendYokoShopReply(reply); }). Кандидати перевантаження: джерело не підтверджує вибір конкретного варіанта.
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Error: Error("UO.SendShopReply: no active vendor offer").

Внутрішній код реалізації, не самостійний скрипт.

public void SendShopReply(string reply) => Invoke(() =>

        {

            if (_world.Shops.Last is { } shop) { shop.Reply(reply); return; }

            ShopGump gump = UIManager.Gumps.OfType<ShopGump>().LastOrDefault(item => item.World == _world && !item.IsDisposed && item.ShopState == null);

            if (gump == null)

                Error("UO.SendShopReply: no active vendor offer");

            else

                gump.SendYokoShopReply(reply);

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.StopMoving

Виконує показані виклики та оновлення стану.

Параметри: Немає параметрів.

Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:1526.

public void StopMoving()

Результат: void.

Виклики: Invoke.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

public void StopMoving() => Invoke(() =>

        {

            _manager.StopFollowing();

            _world.Player?.Pathfinder.StopAutoWalk();

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.TradeCheck

Повертає значення виразу нижче.

Параметри: windowIndex, checkbox, state, setState

Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:651.

public int TradeCheck(int windowIndex, int checkbox, int state, bool setState)

Результат: int.

Виклики: Invoke.

Виклики:

  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => { ISessionTrade gump = FindTrade(windowIndex); if (gump == null || checkbox < 0 || checkbox > 1) return 0; if (setState && checkbox == 0 && gump.ImAccepting != (state != 0)) { gump.ImAccepting = state != 0; GameActions.AcceptTrade(gump.ID1, gump.ImAccepting); } return (checkbox == 0 ? gump.ImAccepting : gump.HeIsAccepting) ? 1 : 0; }). Кандидати перевантаження: джерело не підтверджує вибір конкретного варіанта.
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => { ISessionTrade gump = FindTrade(windowIndex); if (gump == null || checkbox < 0 || checkbox > 1) return 0; if (setState && checkbox == 0 && gump.ImAccepting != (state != 0)) { gump.ImAccepting = state != 0; GameActions.AcceptTrade(gump.ID1, gump.ImAccepting); } return (checkbox == 0 ? gump.ImAccepting : gump.HeIsAccepting) ? 1 : 0; }). Кандидати перевантаження: джерело не підтверджує вибір конкретного варіанта.
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.FindTrade: FindTrade(windowIndex).
  • ClassicUO.Game.GameActions.AcceptTrade: GameActions.AcceptTrade(gump.ID1, gump.ImAccepting).

Внутрішній код реалізації, не самостійний скрипт.

public int TradeCheck(int windowIndex, int checkbox, int state, bool setState) => Invoke(() =>

        {

            ISessionTrade gump = FindTrade(windowIndex);

            if (gump == null || checkbox < 0 || checkbox > 1)

                return 0;

            if (setState && checkbox == 0 && gump.ImAccepting != (state != 0))

            {

                gump.ImAccepting = state != 0;

                GameActions.AcceptTrade(gump.ID1, gump.ImAccepting);

            }

            return (checkbox == 0 ? gump.ImAccepting : gump.HeIsAccepting) ? 1 : 0;

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.TradeOpponent

Повертає значення виразу нижче.

Параметри: windowIndex

Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:641.

public int TradeOpponent(int windowIndex)

Результат: int.

Виклики: Invoke.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

public int TradeOpponent(int windowIndex) => Invoke(() =>

        {

            ISessionTrade gump = FindTrade(windowIndex);

            return (int)(gump?.ID2 ?? 0);

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Unequip

Повертає значення виразу нижче.

Параметри: layer

Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:2022.

public int Unequip(int layer)

Результат: int.

Результат: UnequipExpected(layer, null).

Виклики: UnequipExpected.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

public int Unequip(int layer) => UnequipExpected(layer, null);

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.UseVirtue

Перевіряє умови нижче й повертає показаний результат.

Параметри: nameOrId

Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:297.

public int UseVirtue(string nameOrId)

Результат: int.

Результат: 0; 1.

Виклики: .Trim().ToLowerInvariant, .Trim, int.TryParse, Invoke.

Умови: id < 1 || id > 8.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

public int UseVirtue(string nameOrId)

        {

            int id = nameOrId?.Trim().ToLowerInvariant() switch

            {

                "honor" => 1, "sacrifice" => 2, "valor" => 3,

                "compassion" => 4, "honesty" => 5, "humility" => 6,

                "justice" => 7, "spirituality" => 8,

                _ => int.TryParse(nameOrId, out int value) ? value : 0

            };

            if (id < 1 || id > 8) return 0;

            Invoke(() => NetClient.Socket.Send_InvokeVirtueRequest((byte)id));

            return 1;

        }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.WaitTargetObject

Виконує показані виклики та оновлення стану.

Параметри: id1, id2

Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:826.

public void WaitTargetObject(int id1, int id2)

Результат: void.

Виклики: _manager.QueueTarget.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

public void WaitTargetObject(int id1, int id2)

        {

            _manager.QueueTarget((uint)id1, _cancellationToken);

            _manager.QueueTarget((uint)id2, _cancellationToken);

        }

ClassicUO.Game.Managers.ClientFontManager.Invalidate

Виконує показані виклики та оновлення стану.

Параметри: Немає параметрів.

Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClientFontManager.cs:182.

internal static void Invalidate()

Результат: void.

Внутрішній код реалізації, не самостійний скрипт.

internal static void Invalidate()

        {

            unchecked

            {

                _revision++;

            }

        }

ClassicUO.Game.Managers.JournalManager.AddYokoIgnoredText

Виконує показані виклики та оновлення стану.

Параметри: text

Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/JournalManager.cs:34.

internal static void AddYokoIgnoredText(string text)

Результат: void.

Виклики: string.IsNullOrWhiteSpace, _yokoIgnoredText.Add, text.Trim.

Умови: !string.IsNullOrWhiteSpace(text).

Внутрішній код реалізації, не самостійний скрипт.

internal static void AddYokoIgnoredText(string text)
        {
            if (!string.IsNullOrWhiteSpace(text))
                _yokoIgnoredText.Add(text.Trim());
        }

ClassicUO.Game.Managers.YokoInjectionManager.GetScriptsCount

Повертає значення виразу нижче.

Параметри: Немає параметрів.

Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/YokoInjectionManager.cs:2810.

internal int GetScriptsCount()

Результат: int.

Результат: _running.Count(entry => !entry.Value.Cancellation.IsCancellationRequested).

Виклики: _running.Count.

Внутрішній код реалізації, не самостійний скрипт.

internal int GetScriptsCount() => _running.Count(entry => !entry.Value.Cancellation.IsCancellationRequested);

ClassicUO.Game.Managers.YokoInjectionManager.HasServerTargetCursor

Повертає значення виразу нижче.

Параметри: Немає параметрів.

Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/YokoInjectionManager.cs:3322.

private bool HasServerTargetCursor()

Результат: bool.

Результат: _world.TargetManager.IsServerTarget.

Внутрішній код реалізації, не самостійний скрипт.

private bool HasServerTargetCursor() => _world.TargetManager.IsServerTarget;

ClassicUO.Game.Managers.YokoInjectionManager.SelectFileEntryPoint

Повертає значення виразу нижче.

Параметри: procedures, filePath

Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/YokoInjectionManager.cs:2903.

internal static YokoProcedureInfo SelectFileEntryPoint(IEnumerable<YokoProcedureInfo> procedures, string filePath)

Результат: YokoProcedureInfo.

Виклики: (procedures ?? Enumerable.Empty<YokoProcedureInfo>()) .Where(item => item.CanRun && item.Kind.Equals("C#", StringComparison.Ordinal) && item.Name.Equals("Main", StringComparison.OrdinalIgnoreCase)) .OrderBy(item => item.LineNumber) .FirstOrDefault, (procedures ?? Enumerable.Empty<YokoProcedureInfo>()) .Where(item => item.CanRun && item.Kind.Equals("C#", StringComparison.Ordinal) && item.Name.Equals("Main", StringComparison.OrdinalIgnoreCase)) .OrderBy, (procedures ?? Enumerable.Empty<YokoProcedureInfo>()) .Where, Enumerable.Empty<YokoProcedureInfo>.

Внутрішній код реалізації, не самостійний скрипт.

internal static YokoProcedureInfo SelectFileEntryPoint(IEnumerable<YokoProcedureInfo> procedures, string filePath)
        {
            // Discovery publishes one C# file/project entry. Helper methods
            // stay inside that program and are never separate file launches.
            return (procedures ?? Enumerable.Empty<YokoProcedureInfo>())
                .Where(item => item.CanRun
                    && item.Kind.Equals("C#", StringComparison.Ordinal)
                    && item.Name.Equals("Main", StringComparison.OrdinalIgnoreCase))
                .OrderBy(item => item.LineNumber)
                .FirstOrDefault();
        }

InjectionScript.Runtime.InjectionApi.GetWordCount

Повертає значення виразу нижче.

Параметри: value, delimiter

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApi.cs:47.

private static int GetWordCount(string value,string delimiter)

Результат: int.

Результат: SplitWords(value,delimiter).Length.

Виклики: SplitWords.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

private static int GetWordCount(string value,string delimiter) => SplitWords(value,delimiter).Length;

InjectionScript.Runtime.InjectionApiUO.AddType

Виконує показані виклики та оновлення стану.

Параметри: arguments

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3945.

private void AddType(InjectionValue[] arguments)

Результат: void.

Виклики: NamedTypes.ValidateName, state.Types.Set, ResolveType, SystemMessage, selection.SelectType.

Умови: arguments[0].Kind != InjectionValueKind.String; arguments.Length == 2; arguments[1].Kind != InjectionValueKind.Integer && arguments[1].Kind != InjectionValueKind.String; !(bridge is IApiTypeSelectionBridge selection).

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

private void AddType(InjectionValue[] arguments)

        {

            if (arguments[0].Kind != InjectionValueKind.String)

                throw new NativeSubrutineException("UO.AddType name must be a string.");

            string name = NamedTypes.ValidateName(arguments[0].String);

            if (arguments.Length == 2)

            {

                if (arguments[1].Kind != InjectionValueKind.Integer && arguments[1].Kind != InjectionValueKind.String)

                    throw new NativeSubrutineException("UO.AddType type must be an integer graphic or a registered type name.");

                state.Types.Set(name, ResolveType(arguments[1]));

                return;

            }

            if (!(bridge is IApiTypeSelectionBridge selection))

                throw new NativeSubrutineException("UO.AddType interactive selection is unavailable in this host.");

            SystemMessage($"UO.AddType: select an item or mobile for '{name}'.");

            int? selected = selection.SelectType();

            if (selected.HasValue)

            {

                state.Types.Set(name, selected.Value);

                SystemMessage($"UO.AddType: '{name}' = 0x{selected.Value:X4}.");

            }

            else

                SystemMessage("UO.AddType: selection cancelled or not an item/mobile; previous type preserved.");

        }

InjectionScript.Runtime.InjectionApiUO.Arm

Виконує показані виклики та оновлення стану.

Параметри: name

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5594.

public void Arm(string name)

Результат: void.

Виклики: Equip.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

public void Arm(string name)

            => Equip(name, armSets, weaponLayers, "Weapon set requests processed.", "No weapons set with setarm.");

InjectionScript.Runtime.InjectionApiUO.Cast

Перевіряє умови нижче й повертає показаний результат.

Параметри: spellName

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5833.

public int Cast(string spellName)

Результат: int.

Результат: 0; CastCore(spellName) ? 1 : 0.

Виклики: NumberConversions.TryStr2Int, (spellName ?? string.Empty).Trim, SystemMessage, CastCore.

Умови: NumberConversions.TryStr2Int((spellName ?? string.Empty).Trim(), out _).

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

public int Cast(string spellName)

        {

            if (NumberConversions.TryStr2Int((spellName ?? string.Empty).Trim(), out _))

            {

                SystemMessage("UO.Cast: use one spell name, for example UO.Cast(\"Heal\").");

                return 0;

            }

            return CastCore(spellName) ? 1 : 0;

        }

InjectionScript.Runtime.InjectionApiUO.CompactFindNotoriety

Перевіряє умови нижче й повертає показаний результат.

Параметри: values

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:4825.

private int CompactFindNotoriety(InjectionValue[] values)

Результат: int.

Результат: bridge.FindNotoriety(type, NumberConversions.ToInt(notoriety)); 0; FindFilteredMobileSerial(type, notoriety, distance, nearest, maxZ, color, false).

Виклики: ResolveType, bridge.FindNotoriety, NumberConversions.ToInt, ResolveCompactDistance, bridge.GetFindDistance, ToBoolean, ResolveCompactMaxZ, bridge.GetFindVertical.

Умови: `values.Length == 2 && notoriety.Kind != InjectionValueKind.String

            && notoriety.Kind != InjectionValueKind.Array`; `values.Length > 6`; `container != -1 && container != 1`.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

private int CompactFindNotoriety(InjectionValue[] values)

        {

            int type = ResolveType(values[0]);

            InjectionValue notoriety = values[1];



            // Keep the exact two-argument Stealth/native contract on the bridge.

            // Extended overloads add the v50 distance/Z/color filters below.

            if (values.Length == 2 && notoriety.Kind != InjectionValueKind.String

                && notoriety.Kind != InjectionValueKind.Array)

                return bridge.FindNotoriety(type, NumberConversions.ToInt(notoriety));

            int distance = values.Length > 2 ? ResolveCompactDistance(values[2]) : bridge.GetFindDistance();

            bool nearest = values.Length > 3 && ToBoolean(values[3]);

            int maxZ = values.Length > 4 ? ResolveCompactMaxZ(values[4]) : bridge.GetFindVertical();

            int color = values.Length > 5 ? NumberConversions.ToInt(values[5]) : -1;

            if (values.Length > 6)

            {

                int container = ConvertContainer(values[6]);

                // Mobiles only exist in the world/ground search scope. An explicit

                // item/container serial cannot contain a Mobile, so the filtered

                // result must be empty instead of silently ignoring the argument.

                if (container != -1 && container != 1)

                    return 0;

            }

            return FindFilteredMobileSerial(type, notoriety, distance, nearest, maxZ, color, false);

        }

InjectionScript.Runtime.InjectionApiUO.CompactGetPathArray3D

Перевіряє умови нижче й повертає показаний результат.

Параметри: values

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:2256.

private InjectionValue CompactGetPathArray3D(InjectionValue[] values)

Результат: InjectionValue.

Виклики: BuildPortablePath, NumberConversions.ToInt, ToBoolean, Math.Max.

Умови: values == null || values.Length < 10 || values.Length > 16.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

private InjectionValue CompactGetPathArray3D(InjectionValue[] values)

        {

            if (values == null || values.Length < 10 || values.Length > 16)

                throw new NativeSubrutineException("UO.GetPathArray3D expects 10..16 arguments.");

            return BuildPortablePath(

                NumberConversions.ToInt(values[0]), NumberConversions.ToInt(values[1]), NumberConversions.ToInt(values[2]),

                NumberConversions.ToInt(values[3]), NumberConversions.ToInt(values[4]), NumberConversions.ToInt(values[5]),

                NumberConversions.ToInt(values[6]), NumberConversions.ToInt(values[7]), NumberConversions.ToInt(values[8]),

                true, ToBoolean(values[9]),

                values.Length > 10 ? Math.Max(0, NumberConversions.ToInt(values[10])) : 0,

                values.Length > 11 ? Math.Max(0, NumberConversions.ToInt(values[11])) : 0,

                values.Length > 12 && ToBoolean(values[12]),

                values.Length > 13 && ToBoolean(values[13]),

                values.Length > 14 && ToBoolean(values[14]),

                values.Length <= 15 || ToBoolean(values[15]));

        }

InjectionScript.Runtime.InjectionApiUO.CompactUseType

Перевіряє умови нижче й повертає показаний результат.

Параметри: values

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3981.

private int CompactUseType(InjectionValue[] values)

Результат: int.

Результат: 0; selected.

Виклики: ResolveType, NumberConversions.ToInt, ConvertContainer, ResolveCompactDistance, bridge.GetFindDistance, ToBoolean, ResolveCompactMaxZ, bridge.GetFindVertical.

Умови: values == null || values.Length == 0; values.Length > 6; nearest; selected == 0.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

private int CompactUseType(InjectionValue[] values)

        {

            if (values == null || values.Length == 0)

                throw new NativeSubrutineException("UO.UseType requires at least type.");

            if (values.Length > 6)

                throw new NativeSubrutineException("UO.UseType accepts at most type, color, container, distance, nearest, maxZ.");



            int type = ResolveType(values[0]);

            int color = values.Length > 1 ? NumberConversions.ToInt(values[1]) : -1;

            int container = values.Length > 2 ? ConvertContainer(values[2]) : -1;

            int distance = values.Length > 3 ? ResolveCompactDistance(values[3]) : bridge.GetFindDistance();

            bool nearest = values.Length <= 4 || ToBoolean(values[4]);

            int maxZ = values.Length > 5 ? ResolveCompactMaxZ(values[5]) : bridge.GetFindVertical();

            int selfZ = bridge.GetZ(bridge.Self);

            HashSet<int> ignored = new HashSet<int>(bridge.GetIgnoreList());

            IgnoreTypeFilter ignoredTypes = state.IgnoreTypeLists.FilterFor(state.SelectedIgnoreList);



            // A contained item's stored Z belongs to its container, not to the world.

            // Cache ancestors for this selection so stacks in the same bag do not

            // repeatedly cross the client bridge to resolve the same owner.

            var worldHeights = new Dictionary<int, int?>();

            var heightChain = new List<int>();



            IEnumerable<int> candidates = EnumerateUseTypeItems(container)

                .Where(id => id > 0 && (!ignored.Contains(id) && !MatchesIgnoredType(id, ignoredTypes)))

                .Where(id => type < 0 || type == 0xFFFF || bridge.GetGraphics(id) == type)

                .Where(id => color < 0 || color == 0xFFFF || bridge.GetColor(id) == color)

                .Where(id => distance < 0 || bridge.GetDistance(id) <= distance)

                .Where(id => maxZ < 0 || ResolveUseTypeWorldHeight(id, worldHeights, heightChain) is int z

                    && Math.Abs((long)z - selfZ) <= maxZ);



            if (nearest)

                candidates = candidates.OrderBy(id => bridge.GetDistance(id)).ThenBy(id => id);



            int selected = candidates.FirstOrDefault();

            if (selected == 0)

            {

                SystemMessage("No matching item found for UO.UseType.");

                return 0;

            }



            UseObject(selected);

            return selected;

        }

InjectionScript.Runtime.InjectionApiUO.CompactWaitTarget

Перевіряє умови нижче й повертає показаний результат.

Параметри: values

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:4092.

private int CompactWaitTarget(InjectionValue[] values)

Результат: int.

Результат: directTarget; 0; selected.

Виклики: TryGetObject, WaitTargetObject, NumberConversions.ToInt, SystemMessage, bridge.CancelNextTarget, ResolveCompactDistance, bridge.GetFindDistance, ToBoolean.

Умови: values == null || values.Length == 0; TryGetObject(targetValue, out int directTarget) && directTarget > 0; targetSentinel != 0 && targetSentinel != -1; selected <= 0.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

private int CompactWaitTarget(InjectionValue[] values)

        {

            if (values == null || values.Length == 0)

                throw new NativeSubrutineException("UO.WaitTarget requires at least target.");



            InjectionValue targetValue = values[0];

            if (TryGetObject(targetValue, out int directTarget) && directTarget > 0)

            {

                WaitTargetObject(directTarget);

                return directTarget;

            }



            int targetSentinel = NumberConversions.ToInt(targetValue);

            if (targetSentinel != 0 && targetSentinel != -1)

            {

                SystemMessage("UO.WaitTarget: invalid direct target.");

                bridge.CancelNextTarget();

                return 0;

            }



            InjectionValue type = values.Length > 1 ? values[1] : InjectionValue.MinusOne;

            int color = values.Length > 2 ? NumberConversions.ToInt(values[2]) : -1;

            int distance = values.Length > 3 ? ResolveCompactDistance(values[3]) : bridge.GetFindDistance();

            InjectionValue notoriety = values.Length > 4 ? values[4] : InjectionValue.MinusOne;

            bool nearest = values.Length <= 5 || ToBoolean(values[5]);

            int maxZ = values.Length > 6 ? ResolveCompactMaxZ(values[6]) : bridge.GetFindVertical();



            int selected = FindFilteredTargetSerial(type, color, distance, notoriety, nearest, maxZ);

            if (selected <= 0)

            {

                SystemMessage("UO.WaitTarget: no object matches the requested filters; next target request canceled.");

                bridge.CancelNextTarget();

                return 0;

            }



            WaitTargetObject(selected);

            return selected;

        }

InjectionScript.Runtime.InjectionApiUO.ConvertLayer

Повертає значення виразу нижче.

Параметри: layer

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:6412.

private string ConvertLayer(int layer)

Результат: string.

Виклики: layerNumberToName.TryGetValue.

Внутрішній код реалізації, не самостійний скрипт.

private string ConvertLayer(int layer) => layerNumberToName.TryGetValue(layer, out string name)

            ? name

            : $"0x{layer:X2}";

InjectionScript.Runtime.InjectionApiUO.Dead

Перевіряє умови нижче й повертає показаний результат.

Параметри: id

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3759.

public int Dead(InjectionValue id)

Результат: int.

Результат: Dead(); serial > 0 ? bridge.IsDead(serial) : 0.

Виклики: GetObject, Dead, bridge.IsDead.

Умови: serial == bridge.Self.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

public int Dead(InjectionValue id)

        {

            int serial = GetObject(id);

            if (serial == bridge.Self)

                return Dead();

            return serial > 0 ? bridge.IsDead(serial) : 0;

        }

InjectionScript.Runtime.InjectionApiUO.DecodeRecordingText

Повертає значення виразу нижче.

Параметри: value

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:2800.

private static string DecodeRecordingText(string value)

Результат: string.

Результат: Encoding.UTF8.GetString(Convert.FromBase64String(value ?? string.Empty)).

Виклики: Encoding.UTF8.GetString, Convert.FromBase64String.

Внутрішній код реалізації, не самостійний скрипт.

private static string DecodeRecordingText(string value)

            => Encoding.UTF8.GetString(Convert.FromBase64String(value ?? string.Empty));

InjectionScript.Runtime.InjectionApiUO.Drag

Перевіряє умови нижче й повертає показаний результат.

Параметри: id, amount, timeout

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5245.

public int Drag(InjectionValue id, InjectionValue amount, InjectionValue timeout)

Результат: int.

Результат: 0; result; 1.

Виклики: GetObject, NumberConversions.ToInt, Math.Max, bridge.DragItem, DateTime.UtcNow.AddMilliseconds, bridge.Picking, bridge.Wait, SystemMessage.

Умови: serial == 0; result == 0 || timeoutMs <= 0; bridge.Picking() != 0; DateTime.UtcNow >= deadline.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

public int Drag(InjectionValue id, InjectionValue amount, InjectionValue timeout)

        {

            int serial = GetObject(id);

            if (serial == 0)

                return 0;

            int requestedAmount = NumberConversions.ToInt(amount);

            int timeoutMs = Math.Max(0, NumberConversions.ToInt(timeout));

            int result = bridge.DragItem(serial, requestedAmount);

            if (result == 0 || timeoutMs <= 0)

                return result;



            DateTime deadline = DateTime.UtcNow.AddMilliseconds(timeoutMs);

            do

            {

                if (bridge.Picking() != 0)

                    return 1;

                if (DateTime.UtcNow >= deadline)

                    break;

                bridge.Wait(10);

            }

            while (true);



            SystemMessage($"UO.Drag: item pickup was not observable within {timeoutMs} ms.");

            return 0;

        }

InjectionScript.Runtime.InjectionApiUO.Equip

Повертає значення виразу нижче.

Параметри: layer, id

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5740.

public int Equip(string layer, string id)

Результат: int.

Результат: Equip(layer, GetObject(id)).

Виклики: Equip, GetObject.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

public int Equip(string layer, string id) => Equip(layer, GetObject(id));

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::StringArrayArg

Перевіряє умови нижче й повертає показаний результат.

Параметри: index

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1152.

string[] StringArrayArg(int index)

Результат: string[].

Результат: Array.Empty<string>().

Виклики: Array.Empty<string>, arguments[index].Array.Select(value => value.ToString()).ToArray, arguments[index].Array.Select, Text.

Умови: index >= arguments.Length.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

string[] StringArrayArg(int index)

            {

                if (index >= arguments.Length) return Array.Empty<string>();

                return arguments[index].Kind == InjectionValueKind.Array

                    ? arguments[index].Array.Select(value => value.ToString()).ToArray()

                    : new[] { Text(index) };

            }

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Гілка обробляє лише вказане ім’я команди.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1742.

Результат: new InjectionValue(legacyId).

Умови: arguments[0].Kind != InjectionValueKind.Array; arguments[0].Kind == InjectionValueKind.String && !NumberConversions.TryStr2Int(arguments[0].String, out graphic); arguments[0].Array.Length < 4.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

case "adduserstatic":

                {

                    int map = Arg(1, bridge.WorldNumber);

                    if (arguments[0].Kind != InjectionValueKind.Array)

                    {

                        int graphic = 0;

                        if (arguments[0].Kind == InjectionValueKind.String &&

                            !NumberConversions.TryStr2Int(arguments[0].String, out graphic))

                        {

                            int legacyId = state.NextUserStaticId++;

                            state.UserStatics[legacyId] = Text(0) + "|" + Text(1);

                            return new InjectionValue(legacyId);

                        }

                        graphic = arguments[0].Kind == InjectionValueKind.String

                            ? graphic

                            : NumberConversions.ToInt(arguments[0]);

                        return new InjectionValue(AddUserStatic(graphic, bridge.GetX(bridge.Self), bridge.GetY(bridge.Self),

                            bridge.GetZ(bridge.Self), 0, map));

                    }

                    if (arguments[0].Array.Length < 4)

                        throw new NativeSubrutineException("AddUserStatic expects [graphic,x,y,z,color] and world number, or graphic,x,y,z,color,world.");

                    InjectionValue[] item = arguments[0].Array;

                    return new InjectionValue(AddUserStatic(

                        NumberConversions.ToInt(item[0]), NumberConversions.ToInt(item[1]), NumberConversions.ToInt(item[2]),

                        NumberConversions.ToInt(item[3]), item.Length > 4 ? NumberConversions.ToInt(item[4]) : 0, map));

                }

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Гілка обробляє лише вказане ім’я команди.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1288.

Результат: InjectionValue.Unit.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

case "autosell":

                    bridge.SetAutoSellRule(Arg(0), Arg(1), Arg(2)); return InjectionValue.Unit;

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Гілка обробляє лише вказане ім’я команди.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1596.

Результат: InjectionValue.Unit.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

case "clearcontextmenu": bridge.ClearContextMenu(); return InjectionValue.Unit;

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Гілка обробляє лише вказане ім’я команди.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:2007.

new []

Результат: [].

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

case "clientinfo":

                    return new InjectionValue(new[]

                    {

                        new InjectionValue(bridge.RuntimeProductName),

                        new InjectionValue(bridge.RuntimeProductVersion),

                        new InjectionValue(bridge.ClientPath)

                    });

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Гілка обробляє лише вказане ім’я команди.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1231.

Результат: InjectionValue.Unit.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

case "addtojournal":

                case "addtosystemjournal":

                case "clientprint":

                    SystemMessage(Text(0)); return InjectionValue.Unit;

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Гілка обробляє лише вказане ім’я команди.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1485.

Результат: new InjectionValue(bridge.FindFullQuantity()).

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

case "countex":

                    bridge.FindType(ResolveType(arguments[0]), Arg(1), StealthContainer(2), -1, false);

                    return new InjectionValue(bridge.FindFullQuantity());

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Гілка обробляє лише вказане ім’я команди.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1303.

Результат: new InjectionValue(state.DisconnectedTime.ToOADate()).

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

case "disconnectedtime":

                    UpdateConnectionState();

                    return new InjectionValue(state.DisconnectedTime.ToOADate());

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Гілка обробляє лише вказане ім’я команди.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1497.

Результат: new InjectionValue(bridge.FireResistance).

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

case "fireresist": return new InjectionValue(bridge.FireResistance);

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Гілка обробляє лише вказане ім’я команди.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1591.

Результат: StringArray(bridge.GetMenuItems(Text(0), true)).

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

case "getmenuitemsex": return StringArray(bridge.GetMenuItems(Text(0), true));

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Гілка обробляє лише вказане ім’я команди.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1372.

Результат: new InjectionValue(arguments.Length > 0 ? bridge.GetStamina(Arg(0)) : bridge.Stamina).

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

case "getstam": return new InjectionValue(arguments.Length > 0 ? bridge.GetStamina(Arg(0)) : bridge.Stamina);

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Гілка обробляє лише вказане ім’я команди.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1425.

Результат: new InjectionValue(bridge.GetTooltip(Arg(0))).

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

case "getcliloc":

                case "gettooltip":

                    return new InjectionValue(bridge.GetTooltip(Arg(0)));

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Гілка обробляє лише вказане ім’я команди.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1516.

Результат: new InjectionValue(bridge.GetTradeOpponent(Arg(0))).

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

case "gettradeopponent": return new InjectionValue(bridge.GetTradeOpponent(Arg(0)));

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Гілка обробляє лише вказане ім’я команди.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1915.

Результат: new InjectionValue(bridge.GlobalChatActiveChannel()).

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

case "globalchatactivechannel": return new InjectionValue(bridge.GlobalChatActiveChannel());

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Гілка обробляє лише вказане ім’я команди.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1918.

Результат: InjectionValue.Unit.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

case "globalchatleavechannel": bridge.GlobalChatLeave(); return InjectionValue.Unit;

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Гілка обробляє лише вказане ім’я команди.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1910.

Результат: InjectionValue.Unit.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

case "gumpautoradiobutton": QueueGumpControl("radio", Arg(0), Text(1)); return InjectionValue.Unit;

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Гілка обробляє лише вказане ім’я команди.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1511.

Результат: new InjectionValue(bridge.IsContainer(Arg(0))).

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

case "iscontainer": return new InjectionValue(bridge.IsContainer(Arg(0)));

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Гілка обробляє лише вказане ім’я команди.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1364.

Результат: new InjectionValue(bridge.GetLocked(Arg(0, bridge.Self))).

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

case "isparalyzed": return new InjectionValue(bridge.GetLocked(Arg(0, bridge.Self)));

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Гілка обробляє лише вказане ім’я команди.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1837.

Результат: new InjectionValue(state.LastStepUsedDoor).

Умови: arguments.Length > 0.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

case "laststepquseddoor":

                    if (arguments.Length > 0) state.LastStepUsedDoor = Arg(0);

                    return new InjectionValue(state.LastStepUsedDoor);

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Гілка обробляє лише вказане ім’я команди.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1907.

Результат: SetIndexedGumpValue(Arg(0), "radio", Arg(1), Text(2)).

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

case "numgumpradiobutton": return SetIndexedGumpValue(Arg(0), "radio", Arg(1), Text(2));

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Гілка обробляє лише вказане ім’я команди.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1701.

Результат: new InjectionValue(bridge.PartyMembersList().Select(serial => new InjectionValue(serial)).ToArray()).

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

case "partymemberslist":

                    return new InjectionValue(bridge.PartyMembersList().Select(serial => new InjectionValue(serial)).ToArray());

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Гілка обробляє лише вказане ім’я команди.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1503.

Результат: new InjectionValue(bridge.FollowersMax).

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

case "petsmax": return new InjectionValue(bridge.FollowersMax);

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Гілка обробляє лише вказане ім’я команди.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1558.

Результат: new InjectionValue(bridge.ProfileName).

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

case "profilename": return new InjectionValue(bridge.ProfileName);

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Гілка обробляє лише вказане ім’я команди.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1679.

Результат: InjectionValue.Unit.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

case "questrequest": bridge.QuestRequest(); return InjectionValue.Unit;

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Гілка обробляє лише вказане ім’я команди.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1965.

Результат: InjectionValue.Unit.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

case "setarextparams":

                {

                    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;

                }

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Гілка обробляє лише вказане ім’я команди.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1319.

Результат: InjectionValue.Unit.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

case "setautobuydelay":

                    state.AutoBuyDelay = Math.Max(0, Arg(0));

                    bridge.SetAutoBuyDelay(state.AutoBuyDelay);

                    return InjectionValue.Unit;

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Гілка обробляє лише вказане ім’я команди.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:2018.

Результат: InjectionValue.Unit.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

case "setglobal":

                    state.GlobalVariables[Text(0) + "\u001F" + Text(1)] = Text(2);

                    return InjectionValue.Unit;

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Гілка обробляє лише вказане ім’я команди.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1343.

Результат: InjectionValue.Unit.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

case "setrununmounttimer":

                    state.RunUnmountTimer = ClampMoveTimer(Arg(0), 200);

                    bridge.SetMovementTimers(state.RunMountTimer, state.RunUnmountTimer, state.WalkMountTimer, state.WalkUnmountTimer);

                    return InjectionValue.Unit;

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Гілка обробляє лише вказане ім’я команди.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1526.

Результат: new InjectionValue(bridge.StartScript(Text(0))).

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

case "startscript": return new InjectionValue(bridge.StartScript(Text(0)));

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Гілка обробляє лише вказане ім’я команди.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1335.

Результат: new InjectionValue(state.MoveThroughNpc).

Умови: arguments.Length > 0.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

case "movethroughnpc": if (arguments.Length > 0) state.MoveThroughNpc = Math.Max(0, Arg(0)); return new InjectionValue(state.MoveThroughNpc);

InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Arg

Перевіряє умови нижче й повертає показаний результат.

Параметри: index, fallback

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:2826.

int Arg(int index, int fallback = 0)

Результат: int.

Результат: fallback; serial; NumberConversions.ToInt(arguments[index]).

Виклики: TryGetObject, NumberConversions.ToInt.

Умови: index >= arguments.Length; arguments[index].Kind == InjectionValueKind.String && TryGetObject(arguments[index], out int serial).

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

int Arg(int index, int fallback = 0)

            {

                if (index >= arguments.Length) return fallback;

                if (arguments[index].Kind == InjectionValueKind.String && TryGetObject(arguments[index], out int serial)) return serial;

                return NumberConversions.ToInt(arguments[index]);

            }

InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias

Гілка обробляє лише вказане ім’я команди.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:2887.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

case "changejournallength": state.JournalLength = Math.Max(1, Arg(0, 100)); bridge.SetJournalLength(state.JournalLength); break;

InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias

Гілка обробляє лише вказане ім’я команди.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:2963.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

case "help": SystemMessage("C# Scripts IDE: use UO.* in scripts or the configured chat prefix. Open Options > C# Scripts IDE > Manual."); break;

InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias

Гілка обробляє лише вказане ім’я команди.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:2975.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

case "light": bridge.SetLight(Arg(0)); break;

InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias

Гілка обробляє лише вказане ім’я команди.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:2971.

Умови: arguments.Length > 0.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

case "poison":

                    if (arguments.Length > 0) UseSkillAtTarget(new InjectionValue("Poisoning"), arguments[0]);

                    else UseSkill("Poisoning");

                    break;

InjectionScript.Runtime.InjectionApiUO.FindJournalPatternId

Перевіряє умови нижче й повертає показаний результат.

Параметри: journalText, patternsText, equals, ignoreCase

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5533.

private static int FindJournalPatternId(string journalText, string patternsText, bool equals, bool ignoreCase)

Результат: int.

Результат: -1; i.

Виклики: `(patternsText ?? string.Empty)

            .Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries)

            .Select(pattern => pattern.Trim())

            .Where(pattern => pattern.Length > 0)

            .ToArray`, `(patternsText ?? string.Empty)

            .Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries)

            .Select(pattern => pattern.Trim())

            .Where`, `(patternsText ?? string.Empty)

            .Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries)

            .Select`, `(patternsText ?? string.Empty)

            .Split`, `candidate.Equals`, `candidate.IndexOf`.

Умови: patterns.Length == 0; found.

Внутрішній код реалізації, не самостійний скрипт.

private static int FindJournalPatternId(string journalText, string patternsText, bool equals, bool ignoreCase)

        {

            string[] patterns = (patternsText ?? string.Empty)

                .Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries)

                .Select(pattern => pattern.Trim())

                .Where(pattern => pattern.Length > 0)

                .ToArray();

            if (patterns.Length == 0)

                return -1;



            string candidate = journalText ?? string.Empty;

            StringComparison comparison = ignoreCase ? StringComparison.OrdinalIgnoreCase : StringComparison.Ordinal;

            for (int i = 0; i < patterns.Length; i++)

            {

                bool found = equals

                    ? candidate.Equals(patterns[i], comparison)

                    : candidate.IndexOf(patterns[i], comparison) >= 0;

                if (found)

                    return i;

            }

            return -1;

        }

InjectionScript.Runtime.InjectionApiUO.FindPortableTiles

Перевіряє умови нижче й повертає показаний результат.

Параметри: minX, minY, maxX, maxY, map, tileTypes, statics

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:2394.

private InjectionValue FindPortableTiles(int minX, int minY, int maxX, int maxY, int map, int[] tileTypes, bool statics)

Результат: InjectionValue.

Результат: new InjectionValue(Array.Empty<InjectionValue>()); new InjectionValue(result.ToArray()).

Виклики: Array.Empty<int>, Math.Min, Math.Max, Array.Empty<InjectionValue>, bridge.Wait, scheduler.ExecutePathQuerySlice, ScanSlice, result.ToArray.

Умови: `(uint)minX > ushort.MaxValue || (uint)minY > ushort.MaxValue

            || (uint)maxX > ushort.MaxValue || (uint)maxY > ushort.MaxValue

            || (uint)map > byte.MaxValue`; `((long)lastX - firstX + 1) * ((long)lastY - firstY + 1) > 1_000_000L`; `map != bridge.WorldNumber`; `bridge is IApiPathQueryScheduler scheduler`.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

private InjectionValue FindPortableTiles(int minX, int minY, int maxX, int maxY, int map, int[] tileTypes, bool statics)
        {
            if ((uint)minX > ushort.MaxValue || (uint)minY > ushort.MaxValue
                || (uint)maxX > ushort.MaxValue || (uint)maxY > ushort.MaxValue
                || (uint)map > byte.MaxValue)
                throw new NativeSubrutineException("Tile coordinates must be 0..65535 and map 0..255.");

            var result = new List<InjectionValue>();
            var wanted = new HashSet<int>(tileTypes ?? Array.Empty<int>());
            int firstX = Math.Min(minX, maxX);
// …
            if (((long)lastX - firstX + 1) * ((long)lastY - firstY + 1) > 1_000_000L)
                throw new NativeSubrutineException("Tile search area is limited to 1,000,000 cells per call.");
            if (map != bridge.WorldNumber)
                return new InjectionValue(Array.Empty<InjectionValue>());
// …
                if (map != bridge.WorldNumber) { mapChanged = true; return; }
// …
                    if (cells > 0 && Stopwatch.GetTimestamp() - started >= Stopwatch.Frequency / 1000) break;
                    if (!statics)
// …
                        if (tile.Length >= 2 && (wanted.Count == 0 || wanted.Contains(tile[0])))
// …
                            if (wanted.Count == 0 || wanted.Contains(records[i]))
// …
                    if (++y > lastY) { y = firstY; x++; }
// …
                if (bridge is IApiPathQueryScheduler scheduler) scheduler.ExecutePathQuerySlice(ScanSlice);
// …
                if (mapChanged) return new InjectionValue(Array.Empty<InjectionValue>());
// …
            return new InjectionValue(result.ToArray());
// …

Повний код зберігається у файлі джерела; нижче наведено точні фрагменти.

InjectionScript.Runtime.InjectionApiUO.GetDir

Повертає значення виразу нижче.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3637.

public int GetDir()

Результат: int.

Результат: GetDir("self").

Виклики: GetDir.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

public int GetDir() => GetDir("self");

InjectionScript.Runtime.InjectionApiUO.GetDir

Повертає значення виразу нижче.

Параметри: id

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3638.

public int GetDir(string id)

Результат: int.

Результат: GetDir(GetObject(id)).

Виклики: GetDir, GetObject.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

public int GetDir(string id) => GetDir(GetObject(id));

InjectionScript.Runtime.InjectionApiUO.GetGraphics

Повертає значення виразу нижче.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3614.

public string GetGraphics()

Результат: string.

Результат: GetGraphics(bridge.Self).

Виклики: GetGraphics.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

public string GetGraphics() => GetGraphics(bridge.Self);

InjectionScript.Runtime.InjectionApiUO.GetInfo

Перевіряє умови нижче й повертає показаний результат.

Параметри: arg

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3602.

private string GetInfo(string arg)

Результат: string.

Результат: GetName("self"); "UNKNOWN".

Виклики: arg.Equals, GetName.

Умови: arg.Equals("character", StringComparison.Ordinal).

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

private string GetInfo(string arg)

        {

            if (arg.Equals("character", StringComparison.Ordinal))

                return GetName("self");



            return "UNKNOWN";

        }

InjectionScript.Runtime.InjectionApiUO.GetKey

Перевіряє умови нижче й повертає показаний результат.

Параметри: direction

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3483.

private int GetKey(int direction)

Результат: int.

Результат: 33; 39; 34; 40; 35; 37.

Умови: direction == 0; direction == 1; direction == 2; direction == 3.

Внутрішній код реалізації, не самостійний скрипт.

private int GetKey(int direction)

        {

            if (direction == 0)

                return 33;

            else if (direction == 1)

                return 39;

            else if (direction == 2)

                return 34;

            else if (direction == 3)

                return 40;

            else if (direction == 4)

                return 35;

            else if (direction == 5)

                return 37;

            else if (direction == 6)

                return 36;

            else if (direction == 7)

                return 38;



            throw new NativeSubrutineException($"Invalid movement direction {direction}. Expected a value from 0 through 7.");

        }

InjectionScript.Runtime.InjectionApiUO.GetSerial

Повертає значення виразу нижче.

Параметри: id

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3742.

public string GetSerial(string id)

Результат: string.

Результат: NumberConversions.ToHex(GetObject(id)).

Виклики: NumberConversions.ToHex, GetObject.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

public string GetSerial(string id) => NumberConversions.ToHex(GetObject(id));

InjectionScript.Runtime.InjectionApiUO.GetStatus

Виконує показані виклики та оновлення стану.

Параметри: id

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3927.

public void GetStatus(int id)

Результат: void.

Виклики: bridge.GetStatus.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

public void GetStatus(int id) => bridge.GetStatus(id);

InjectionScript.Runtime.InjectionApiUO.GetZ

Повертає значення виразу нижче.

Параметри: id

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3568.

public int GetZ(string id)

Результат: int.

Результат: GetZ(GetObject(id)).

Виклики: GetZ, GetObject.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

public int GetZ(string id) => GetZ(GetObject(id));

InjectionScript.Runtime.InjectionApiUO.Hidden

Повертає значення виразу нижче.

Параметри: id

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3768.

public int Hidden(int id)

Результат: int.

Результат: bridge.Hidden(id).

Виклики: bridge.Hidden.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

public int Hidden(int id) => bridge.Hidden(id);

InjectionScript.Runtime.InjectionApiUO.Ignore

Виконує показані виклики та оновлення стану.

Параметри: id

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5221.

public void Ignore(string id)

Результат: void.

Виклики: Ignore, GetObject.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

public void Ignore(string id) => Ignore(GetObject(id));

InjectionScript.Runtime.InjectionApiUO.IsSupportedLegacyEventName

Повертає значення виразу нижче.

Параметри: name

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:6053.

private static bool IsSupportedLegacyEventName(string name)

Результат: bool.

Виклики: string.Equals.

Внутрішній код реалізації, не самостійний скрипт.

private static bool IsSupportedLegacyEventName(string name)

            => string.Equals(name, "SeeNewPlayer", StringComparison.OrdinalIgnoreCase)

                || string.Equals(name, "Death", StringComparison.OrdinalIgnoreCase)

                || string.Equals(name, "ChangeHitPoints", StringComparison.OrdinalIgnoreCase)

                || string.Equals(name, "ChangeMana", StringComparison.OrdinalIgnoreCase)

                || string.Equals(name, "ChangeStamina", StringComparison.OrdinalIgnoreCase);

InjectionScript.Runtime.InjectionApiUO.LastMessage

Повертає значення виразу нижче.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3774.

public string LastMessage()

Результат: string.

Результат: bridge.LastMessage().

Виклики: bridge.LastMessage.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

public string LastMessage() => bridge.LastMessage();

InjectionScript.Runtime.InjectionApiUO.MatchesMobileFilters

Перевіряє умови нижче й повертає показаний результат.

Параметри: id, filters, selfX, selfY, selfZ

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3683.

private bool MatchesMobileFilters(int id, IEnumerable<string> filters, int selfX, int selfY, int selfZ)

Результат: bool.

Результат: false; true.

Виклики: bridge.GetDistance, bridge.GetZ, bridge.GetX, bridge.GetY, bridge.GetGraphics, IsHumanBody, ExpandMobileFilters, (raw ?? "all").Trim().ToLowerInvariant.

Умови: bridge.IsDead(id) == 0; bridge.IsDead(id) != 0; distance > 4; distance < 5 || distance > 9.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

private bool MatchesMobileFilters(int id, IEnumerable<string> filters, int selfX, int selfY, int selfZ)

        {

            int distance = bridge.GetDistance(id);

            int z = bridge.GetZ(id);

            int x = bridge.GetX(id);

            int y = bridge.GetY(id);

            int graphic = bridge.GetGraphics(id);

            bool human = IsHumanBody(graphic);

            foreach (string raw in ExpandMobileFilters(filters))

            {

                switch ((raw ?? "all").Trim().ToLowerInvariant())

                {

                    case "": case "all": break;

                    case "dead": if (bridge.IsDead(id) == 0) return false; break;

                    case "alive": if (bridge.IsDead(id) != 0) return false; break;

                    case "near": if (distance > 4) return false; break;

                    case "medium": if (distance < 5 || distance > 9) return false; break;

                    case "far": if (distance < 10) return false; break;

                    case "below": if (z >= selfZ) return false; break;

                    case "above": if (z <= selfZ) return false; break;

                    case "north": if (y >= selfY) return false; break;

                    case "south": if (y <= selfY) return false; break;

                    case "east": if (x <= selfX) return false; break;

                    case "west": if (x >= selfX) return false; break;

                    case "human": if (!human) return false; break;

                    case "npc": if (bridge.IsNpc(id) == 0 || !human) return false; break;

                    case "mob": if (bridge.IsNpc(id) == 0 || human) return false; break;

                    default: throw new NativeSubrutineException($"Unknown FindMobile filter '{raw}'.");

                }

            }

            return true;

        }

InjectionScript.Runtime.InjectionApiUO.MoveToCanonical::StopOwnRequest

Виконує показані виклики та оновлення стану.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:2136.

void StopOwnRequest()

Результат: void.

Виклики: bridge.StopMoving, ownership.StopMovementRequest.

Умови: ownership == null.

Внутрішній код реалізації, не самостійний скрипт.

void StopOwnRequest()

            {

                if (ownership == null) bridge.StopMoving();

                else ownership.StopMovementRequest(requestId);

            }

InjectionScript.Runtime.InjectionApiUO.ParseTypeMask

Розбирає або знаходить значення аргументу за правилами, показаними в коді.

Параметри: value

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5058.

private HashSet<int> ParseTypeMask(InjectionValue value)

Результат: HashSet<int>.

Виклики: ParseIntMask, value.Array.Select(ResolveEntry).ToArray, value.Array.Select, ResolveEntry.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

private HashSet<int> ParseTypeMask(InjectionValue value)

        {

            InjectionValue ResolveEntry(InjectionValue entry)

            {

                if (entry.Kind != InjectionValueKind.String) return entry;

                string[] parts = (entry.String ?? string.Empty).Split('|');

                for (int i = 0; i < parts.Length; i++)

                    if (state.Types.TryGet(parts[i], out int graphic))

                        parts[i] = graphic.ToString(CultureInfo.InvariantCulture);

                return new InjectionValue(string.Join("|", parts));

            }

            return ParseIntMask(value.Kind == InjectionValueKind.Array

                ? new InjectionValue(value.Array.Select(ResolveEntry).ToArray()) : ResolveEntry(value));

        }

InjectionScript.Runtime.InjectionApiUO.ReadClassName

Перевіряє умови нижче й повертає показаний результат.

Параметри: value

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.ClassMasks.cs:42.

private static string ReadClassName(InjectionValue value)

Результат: string.

Результат: name.

Виклики: (value.String ?? string.Empty).Trim, name.IndexOfAny, name.Equals.

Умови: name.Length == 0 || name == "-1" || name.IndexOfAny(new[] { '|', ',', ';' }) >= 0 || name.Equals("any", StringComparison.OrdinalIgnoreCase) || name.Equals("all", StringComparison.OrdinalIgnoreCase).

Внутрішній код реалізації, не самостійний скрипт.

private static string ReadClassName(InjectionValue value)
        {
            string name = value.Kind == InjectionValueKind.String ? (value.String ?? string.Empty).Trim() : string.Empty;
            if (name.Length == 0 || name == "-1" || name.IndexOfAny(new[] { '|', ',', ';' }) >= 0
                || name.Equals("any", StringComparison.OrdinalIgnoreCase) || name.Equals("all", StringComparison.OrdinalIgnoreCase))
                throw new StatementFailedException("ClassMask: use a nonempty class name without | , ; or reserved any/all/-1.");
            return name;
        }

InjectionScript.Runtime.InjectionApiUO.ReadJournalSnapshot

Перевіряє умови нижче й повертає показаний результат.

Параметри: index

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5460.

private JournalEntrySnapshot ReadJournalSnapshot(int index)

Результат: JournalEntrySnapshot.

Результат: reader.ReadJournalEntry(index); null.

Виклики: reader.ReadJournalEntry, bridge.JournalEntryCount, bridge.GetJournalText, bridge.JournalSerialInt, bridge.JournalName, NumberConversions.ToInt, bridge.JournalColor, bridge.JournalFont.

Умови: bridge is IApiJournalReader reader; index < 0 || index >= bridge.JournalEntryCount().

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

private JournalEntrySnapshot ReadJournalSnapshot(int index)

        {

            if (bridge is IApiJournalReader reader)

                return reader.ReadJournalEntry(index);

            if (index < 0 || index >= bridge.JournalEntryCount())

                return null;

            return new JournalEntrySnapshot(0, index, bridge.GetJournalText(index), bridge.JournalSerialInt(index),

                bridge.JournalName(index), NumberConversions.ToInt(bridge.JournalColor(index)), bridge.JournalFont(index),

                bridge.JournalMessageType(index), bridge.JournalTextType(index), bridge.JournalTimestamp(index));

        }

InjectionScript.Runtime.InjectionApiUO.ResolveUseTypeWorldHeight

Розбирає або знаходить значення аргументу за правилами, показаними в коді.

Параметри: id, cache, chain

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:4026.

private int? ResolveUseTypeWorldHeight(int id, Dictionary<int, int?> cache, List<int> chain)

Результат: int?.

Результат: height.

Виклики: chain.Clear, cache.TryGetValue, chain.Add, bridge.ContainerOf, bridge.GetZ.

Умови: cache.TryGetValue(id, out height); parent <= 0.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

private int? ResolveUseTypeWorldHeight(int id, Dictionary<int, int?> cache, List<int> chain)

        {

            chain.Clear();

            int? height = null;

            for (int depth = 0; depth < 128; depth++)

            {

                if (cache.TryGetValue(id, out height))

                    break;

                // A repeated unresolved ancestor is malformed cyclic container data.

                cache[id] = null;

                chain.Add(id);

                int parent = bridge.ContainerOf(id);

                if (parent <= 0)

                {

                    height = bridge.GetZ(id);

                    break;

                }

                id = parent;

            }

            foreach (int visited in chain)

                cache[visited] = height;

            return height;

        }

InjectionScript.Runtime.InjectionApiUO.SelectJournalEntry

Виконує показані виклики та оновлення стану.

Параметри: entry

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5471.

private void SelectJournalEntry(JournalEntrySnapshot entry)

Результат: void.

Внутрішній код реалізації, не самостійний скрипт.

private void SelectJournalEntry(JournalEntrySnapshot entry)

        {

            selectedJournalEntry = entry;

            foundedTextIndex = entry?.Index ?? -1;

            foundedTextId = -1;

        }

InjectionScript.Runtime.InjectionApiUO.SetEvent

Виконує показані виклики та оновлення стану.

Параметри: name, stateValue

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:6001.

public void SetEvent(InjectionValue name, InjectionValue stateValue)

Результат: void.

Виклики: SetEvent.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

public void SetEvent(InjectionValue name, InjectionValue stateValue)

            => SetEvent(name, stateValue, InjectionValue.True, new InjectionValue(string.Empty));

InjectionScript.Runtime.InjectionApiUO.SetGump

Виконує показані виклики та оновлення стану.

Параметри: identifier, key, stateValue

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3238.

public void SetGump(InjectionValue identifier, InjectionValue key, InjectionValue stateValue)

Результат: void.

Виклики: bridge.SetGumpValue, identifier.ToString, NumberConversions.ToInt, stateValue.ToString.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

public void SetGump(InjectionValue identifier, InjectionValue key, InjectionValue stateValue)

            => bridge.SetGumpValue(-1, identifier.ToString(), NumberConversions.ToInt(key), stateValue.ToString());

InjectionScript.Runtime.InjectionApiUO.SkillVal

Перевіряє умови нижче й повертає показаний результат.

Параметри: skillName, variant

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5803.

public int SkillVal(string skillName, int variant)

Результат: int.

Результат: 0; bridge.SkillVal(id); baseValue; baseValue - skillValBaselines[id]; bridge.SkillLockVal(id).

Виклики: ConvertSkillName, SystemMessage, bridge.SkillBaseVal, skillValBaselines.ContainsKey, bridge.SkillVal, bridge.SkillLockVal.

Умови: !skillId.HasValue; !skillValBaselines.ContainsKey(id).

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

public int SkillVal(string skillName, int variant)

        {

            int? skillId = ConvertSkillName(skillName);

            if (!skillId.HasValue)

            {

                SystemMessage("UO.SkillVal: unknown skill name.");

                return 0;

            }



            int id = skillId.Value;

            int baseValue = bridge.SkillBaseVal(id);

            if (!skillValBaselines.ContainsKey(id))

                skillValBaselines[id] = baseValue;



            switch (variant)

            {

                case 0:

                    return bridge.SkillVal(id);

                case 1:

                    return baseValue;

                case 2:

                    return baseValue - skillValBaselines[id];

                case 3:

                    return bridge.SkillLockVal(id);

                default:

                    SystemMessage("UO.SkillVal: variant must be 0, 1, 2 or 3.");

                    return 0;

            }

        }

InjectionScript.Runtime.InjectionApiUO.TryGetObject

Перевіряє умови нижче й повертає показаний результат.

Параметри: name, id

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3834.

public bool TryGetObject(InjectionValue name, out int id)

Результат: bool.

Результат: true; TryGetObject(name.String, out id); false.

Виклики: TryGetObject.

Умови: name.Kind == InjectionValueKind.Integer; name.Kind == InjectionValueKind.Decimal; name.Kind == InjectionValueKind.String.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

public bool TryGetObject(InjectionValue name, out int id)

        {

            if (name.Kind == InjectionValueKind.Integer)

            {

                id = name.Integer;

                return true;

            }

            if (name.Kind == InjectionValueKind.Decimal)

            {

                id = unchecked((int)name.Decimal);

                return true;

            }

            if (name.Kind == InjectionValueKind.String)

                return TryGetObject(name.String, out id);



            id = -1;

            return false;

        }

InjectionScript.Runtime.InjectionApiUO.Undress

Повертає значення виразу нижче.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5608.

public int Undress()

Результат: int.

Результат: Unequip(dressLayers, "Clothing removed.").

Виклики: Unequip.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

public int Undress()

            => Unequip(dressLayers, "Clothing removed.");

InjectionScript.Runtime.InjectionApiUO.UseSkillCore

Перевіряє умови нижче й повертає показаний результат.

Параметри: skillName

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5758.

private bool UseSkillCore(string skillName)

Результат: bool.

Результат: false; true.

Виклики: ConvertSkillName, SystemMessage, bridge.UseSkill, Timer.

Умови: !skillId.HasValue; bridge.UseSkill(skillId.Value) == 0.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

private bool UseSkillCore(string skillName)

        {

            var skillId = ConvertSkillName(skillName);

            if (!skillId.HasValue)

            {

                SystemMessage("Unknown action skill name");

                return false;

            }



            if (bridge.UseSkill(skillId.Value) == 0)

                return false;

            ticksSkill = Timer();

            return true;

        }

InjectionScript.Runtime.InjectionApiUO.UseType

Повертає значення виразу нижче.

Параметри: type, color

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3972.

public int UseType(int type, string color)

Результат: int.

Результат: UseType(type, NumberConversions.ToInt(color)).

Виклики: UseType, NumberConversions.ToInt.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

public int UseType(int type, string color) => UseType(type, NumberConversions.ToInt(color));

InjectionScript.Runtime.InjectionApiUO.Register [Follow]

Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:866.

values

Результат: values.

Результат: ``.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

values =>

                {

                    FollowStopCondition[] conditions = FollowStopCondition.Parse(values[3]);

                    return new InjectionValue(bridge is IApiConditionalFollowBridge follow

                        ? follow.Follow(GetObject(values[0]), NumberConversions.ToInt(values[1]), ToBoolean(values[2]), conditions) : 0);

                }

InjectionScript.Runtime.InjectionApiUO.RegisterCharacterGetterAliases [Followers]

Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1048.

Результат: bridge.Followers.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

() => bridge.Followers

InjectionScript.Runtime.InjectionApiUO.RegisterCharacterGetterAliases [GetAlive]

Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1059.

serial

Результат: serial.

Результат: serial > 0 && bridge.Exists(serial) != 0 && IsDeadState(serial) == 0 ? 1 : 0.

Виклики: bridge.Exists, IsDeadState.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

serial => serial > 0 && bridge.Exists(serial) != 0 && IsDeadState(serial) == 0 ? 1 : 0

InjectionScript.Runtime.InjectionApiUO.RegisterCharacterGetterAliases [GetHidden]

Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1061.

serial

Результат: serial.

Результат: bridge.Hidden(serial).

Виклики: bridge.Hidden.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

serial => bridge.Hidden(serial)

InjectionScript.Runtime.InjectionApiUO.RegisterCharacterGetterAliases [GetMaxStamina]

Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1029.

Результат: bridge.MaxStamina.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

() => bridge.MaxStamina

InjectionScript.Runtime.InjectionApiUO.RegisterCharacterGetterAliases [Moving]

Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1068.

Результат: bridge.IsMoving().

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

() => bridge.IsMoving()

InjectionScript.Runtime.InjectionApiUO.Register [WaitTarget]

Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:487.

values

Результат: values.

Результат: ``.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

values =>

                    {

                        CompactWaitTarget(values);

                        return InjectionValue.Unit;

                    }

InjectionScript.Runtime.InjectionApiUO.RegisterCharacterGetterAliases

Повертає значення виразу нижче.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1013.

value

Результат: value.

Результат: getter(GetObject(value)).

Виклики: getter, GetObject.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

value => getter(GetObject(value))

InjectionScript.Runtime.InjectionApiUO.RegisterCharacterGetterAliases

Повертає значення виразу нижче.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1007.

Результат: getter(bridge.Self).

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

() => getter(bridge.Self)

InjectionScript.Runtime.InjectionApiUO.RegisterCharacterGetterAliases

Повертає значення виразу нижче.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1013.

value

Результат: value.

Результат: getter(GetObject(value)).

Виклики: getter, GetObject.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

value => getter(GetObject(value))

InjectionScript.Runtime.NumberConversions.TryStr2Int

Розбирає або знаходить значення аргументу за правилами, показаними в коді.

Параметри: str, value

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/NumberConversions.cs:59.

public static bool TryStr2Int(string str, out int value)

Результат: bool.

Результат: false; true; int.TryParse(str, NumberStyles.Integer, CultureInfo.InvariantCulture, out value).

Виклики: string.IsNullOrWhiteSpace, str.Trim, str.Substring(offset, 2).Equals, str.Substring, uint.TryParse, int.TryParse.

Умови: string.IsNullOrWhiteSpace(str); str.Length > offset + 2 && str.Substring(offset, 2).Equals("0x", StringComparison.OrdinalIgnoreCase); !uint.TryParse(str.Substring(offset + 2), NumberStyles.AllowHexSpecifier, CultureInfo.InvariantCulture, out uint hex) || (negative && hex > 0x80000000u).

Внутрішній код реалізації, не самостійний скрипт.

public static bool TryStr2Int(string str, out int value)
        {
            value = 0;
            if (string.IsNullOrWhiteSpace(str))
                return false;
            str = str.Trim();
            int offset = str[0] == '+' || str[0] == '-' ? 1 : 0;
            bool negative = str[0] == '-';
            if (str.Length > offset + 2 && str.Substring(offset, 2).Equals("0x", StringComparison.OrdinalIgnoreCase))
            {
                if (!uint.TryParse(str.Substring(offset + 2), NumberStyles.AllowHexSpecifier,
                        CultureInfo.InvariantCulture, out uint hex) || (negative && hex > 0x80000000u))
                    return false;
                value = negative ? unchecked(-(int)hex) : unchecked((int)hex);
                return true;
            }

            return int.TryParse(str, NumberStyles.Integer, CultureInfo.InvariantCulture, out value);
        }

InjectionScript.Runtime.PortablePathSearch.Find::Estimate

Повертає значення виразу нижче.

Параметри: x, y

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/PortablePathSearch.cs:35.

int Estimate(int x, int y)

Результат: int.

Результат: diagonal ? Math.Max(dx, dy) : dx + dy.

Виклики: Math.Max, Math.Abs.

Внутрішній код реалізації, не самостійний скрипт.

int Estimate(int x, int y)

            {

                int dx = Math.Max(0, Math.Abs(finishX - x) - accuracy);

                int dy = Math.Max(0, Math.Abs(finishY - y) - accuracy);

                return diagonal ? Math.Max(dx, dy) : dx + dy;

            }

InjectionScript.Runtime.ScriptPathObstacles.Create

Перевіряє умови нижче й повертає показаний результат.

Параметри: state, bridge

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/ScriptPathObstacles.cs:11.

public static Func<int, int, bool> Create(InjectionRuntimeState state, IApiBridge bridge)

Результат: Func<int, int, bool>.

Результат: null.

Виклики: value.Split, int.TryParse, locations.Add, rules.Add, bridge.GetWorldItems, bridge.GetGraphics, bridge.GetColor, Math.Max.

Умови: state == null || state.BadLocations.Count == 0 && state.BadObjects.Count == 0; parts.Length == 2 && int.TryParse(parts[0], out int x) && int.TryParse(parts[1], out int y) && x >= 0 && x <= ushort.MaxValue && y >= 0 && y <= ushort.MaxValue; parts.Length == 3 && int.TryParse(parts[0], out int type) && int.TryParse(parts[1], out int hue) && int.TryParse(parts[2], out int radius) && type >= -1 && type <= ushort.MaxValue && hue >= -1 && hue <= ushort.MaxValue && radius >= 0 && radius <= byte.MaxValue; rules.Count != 0.

Виклики:

Внутрішній код реалізації, не самостійний скрипт.

public static Func<int, int, bool> Create(InjectionRuntimeState state, IApiBridge bridge)
        {
            if (state == null || state.BadLocations.Count == 0 && state.BadObjects.Count == 0) return null;
            var locations = new HashSet<(int, int)>();
            var rules = new List<(int Type, int Hue, int Radius)>();
            var regions = new List<(int X, int Y, int Radius)>();
            foreach (string value in state.BadLocations)
            {
                string[] parts = value.Split(',');
                if (parts.Length == 2 && int.TryParse(parts[0], out int x) && int.TryParse(parts[1], out int y)
                    && x >= 0 && x <= ushort.MaxValue && y >= 0 && y <= ushort.MaxValue) locations.Add((x, y));
            }
            foreach (string value in state.BadObjects)
            {
                string[] parts = value.Split(',');
                if (parts.Length == 3 && int.TryParse(parts[0], out int type) && int.TryParse(parts[1], out int hue)
                    && int.TryParse(parts[2], out int radius) && type >= -1 && type <= ushort.MaxValue
                    && hue >= -1 && hue <= ushort.MaxValue && radius >= 0 && radius <= byte.MaxValue)
                    rules.Add((type & 0xFFFF, hue & 0xFFFF, radius));
            }
            if (rules.Count != 0)
            {
                foreach (int item in bridge.GetWorldItems())
                {
                    int type = bridge.GetGraphics(item), hue = bridge.GetColor(item), radius = -1;
                    foreach (var rule in rules)
                        if ((rule.Type == 0xFFFF || rule.Type == type) && (rule.Hue == 0xFFFF || rule.Hue == hue))
                            radius = Math.Max(radius, rule.Radius);
                    if (radius >= 0) regions.Add((bridge.GetX(item), bridge.GetY(item), radius));
                }
            }
            if (locations.Count == 0 && regions.Count == 0) return null;
            return (x, y) =>
            {
                if (locations.Contains((x, y))) return true;
                foreach (var region in regions)
                    if (Math.Abs((long)x - region.X) <= region.Radius && Math.Abs((long)y - region.Y) <= region.Radius) return true;
                return false;
            };
        }

InjectionScript.Runtime.State.EquipSet.GetAtLayer

Повертає значення виразу нижче.

Параметри: layer

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/State/EquipSet.cs:32.

public int GetAtLayer(int layer)

Результат: int.

Результат: equips.FirstOrDefault(x => x.Layer == layer)?.Id ?? 0.

Виклики: equips.FirstOrDefault.

Внутрішній код реалізації, не самостійний скрипт.

public int GetAtLayer(int layer) => equips.FirstOrDefault(x => x.Layer == layer)?.Id ?? 0;

InjectionScript.Runtime.State.NamedIgnoreLists.Clear

Виконує показані виклики та оновлення стану.

Параметри: Немає параметрів.

Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/State/NamedIgnoreLists.cs:58.

public void Clear()

Результат: void.

Виклики: lists.Clear.

Внутрішній код реалізації, не самостійний скрипт.

public void Clear() { lock (sync) lists.Clear(); }

Clone this wiki locally