Skip to content

RU Runtime Helpers D

Codex edited this page Oct 12, 2026 · 1 revision

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

Вспомогательные функции D

Внутренний код реализации, не самостоятельный скрипт.

ClassicUO.CSharp.CSharpCallbacks.Start

Проверяет условия ниже и возвращает показанный результат.

Параметры: name, arguments

Источник: Project_Full/src/ClassicUO.CSharp/CSharpCallbacks.cs:175.

public bool Start(string name, params string[] arguments)

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

Результат: false; true.

Вызовы: Verify, (name ?? "").Trim, routines.TryGetValue, nameof, active.Any, active.Add, arguments.Clone, Task.Run.

Условия: !routines.TryGetValue(name, out routine!); active.Any(call => call.Name.Equals(name, StringComparison.OrdinalIgnoreCase)).

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

public bool Start(string name, params string[] arguments)
    {
        Verify();
        name = (name ?? "").Trim();
        Routine routine;
        Invocation invocation;
        lock (sync)
        {
            Verify();
            if (!routines.TryGetValue(name, out routine!))
                throw new ArgumentException($"Register the C# routine '{name}' in this execution before calling it.", nameof(name));
            // Cancellation requests do not complete arbitrary user awaits or
            // finally blocks. Keep the name reserved until the worker's finally
            // removes its invocation, even though IsRunning already reports 0.
            if (active.Any(call => call.Name.Equals(name, StringComparison.OrdinalIgnoreCase))) return false;
            invocation = new Invocation(name, token);
            active.Add(invocation);
        }
        var values = (string[])arguments.Clone();
        _ = Task.Run(async () =>
        {
            using var context = BindWorker();
            currentInvocation.Value = invocation;
            try
            {
                Verify(); checkpoint(); Verify();
                await routine.Handler(values).ConfigureAwait(false);
                Verify();
            }
            catch (OperationCanceledException) when (token.IsCancellationRequested || invocation.Cancellation.IsCancellationRequested || IsDisposed) { }
            catch (Exception error) { if (!IsDisposed) failures.Enqueue(new(name, error)); }
            finally
            {
                currentInvocation.Value = null;
                lock (sync) active.Remove(invocation);
                invocation.Cancellation.Cancel();
                invocation.Cancellation.Dispose();
            }
        });
        return true;
    }

ClassicUO.Configuration.ProfileManager.UnLoadProfile

Выполняет показанные вызовы и обновления состояния.

Параметры: Параметров нет.

Источник: Project_Full/src/ClassicUO.Client/Configuration/ProfileManager.cs:554.

public static void UnLoadProfile()

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

Вызовы: ClientFontManager.Invalidate.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

public static void UnLoadProfile()

        {

            GlobalProfile = null;

            CurrentProfile = null;

            ProfilePath = null;

            CurrentCharacterSerial = 0;

            CurrentServerIdentity = null;

            ClientFontManager.Invalidate();

        }

ClassicUO.Game.Data.StaticFilters.IsRock

Возвращает значение выражения ниже.

Параметры: g

Источник: Project_Full/src/ClassicUO.Client/Game/Data/StaticFilters.cs:276.

public static bool IsRock(ushort g)

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

Результат: true; g >= 6001 && g <= 6012.

Внутренний код реализации, не самостоятельный скрипт.

[MethodImpl(MethodImplOptions.AggressiveInlining)]
        public static bool IsRock(ushort g)
        {
            switch (g)
            {
                case 4945:
                case 4948:
                case 4950:
                case 4953:
                case 4955:
                case 4958:
                case 4959:
                case 4960:
                case 4962: return true;

                default: return g >= 6001 && g <= 6012;
            }
        }

ClassicUO.Game.GameActions.NormalizeLocalDisplayFont

Выполняет показанные вызовы и обновления состояния.

Параметры: text, font, unicode

Источник: Project_Full/src/ClassicUO.Client/Game/GameActions.cs:462.

private static void NormalizeLocalDisplayFont(string text, ref byte font, ref bool unicode)

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

Вызовы: ResolveLocalDisplayFont.

Условия: fonts == null.

Внутренний код реализации, не самостоятельный скрипт.

private static void NormalizeLocalDisplayFont(string text, ref byte font, ref bool unicode)
        {
            var fonts = Client.UO?.FileManager?.Fonts;

            if (fonts == null)
                return;

            byte preferredFont = ProfileManager.CurrentProfile?.ChatFont ?? 0;
            (font, unicode) = ResolveLocalDisplayFont(
                text,
                font,
                unicode,
                preferredFont,
                fonts.UnicodeFontExists,
                fonts.FontCount
            );
        }

ClassicUO.Game.GameActions.RequestProfile

Выполняет показанные вызовы и обновления состояния.

Параметры: serial

Источник: Project_Full/src/ClassicUO.Client/Game/GameActions.cs:724.

public static void RequestProfile(uint serial)

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

Вызовы: Socket.Send_ProfileRequest.

Внутренний код реализации, не самостоятельный скрипт.

public static void RequestProfile(uint serial)
        {
            Socket.Send_ProfileRequest(serial);
        }

ClassicUO.Game.GameActions.SendAbility

Выполняет показанные вызовы и обновления состояния.

Параметры: world, idx, primary

Источник: Project_Full/src/ClassicUO.Client/Game/GameActions.cs:918.

private static void SendAbility(World world, byte idx, bool primary)

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

Вызовы: Socket.Send_StunRequest, Socket.Send_DisarmRequest, Socket.Send_UseCombatAbility.

Условия: (world.ClientLockedFeatures.Flags & LockedFeatureFlags.AOS) == 0; primary.

Внутренний код реализации, не самостоятельный скрипт.

private static void SendAbility(World world, byte idx, bool primary)
        {
            if ((world.ClientLockedFeatures.Flags & LockedFeatureFlags.AOS) == 0)
            {
                if (primary)
                    Socket.Send_StunRequest();
                else
                    Socket.Send_DisarmRequest();
            }
            else
            {
                Socket.Send_UseCombatAbility(world, idx);
            }
        }

ClassicUO.Game.GameObjects.Item.Create

Возвращает значение выражения ниже.

Параметры: world, serial

Источник: Project_Full/src/ClassicUO.Client/Game/GameObjects/Item.cs:178.

public static Item Create(World world, uint serial)

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

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

Внутренний код реализации, не самостоятельный скрипт.

public static Item Create(World world, uint serial)
        {
            Item i = new Item(world); // _pool.GetOne();
            i.Serial = serial;

            return i;
        }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.CancelWaitTarget

Выполняет показанные вызовы и обновления состояния.

Параметры: Параметров нет.

Источник: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:1125.

public void CancelWaitTarget()

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

Вызовы: Invoke.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

public void CancelWaitTarget() => Invoke(_manager.ClearPendingTargets);

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.ClearChatUserIgnore

Выполняет показанные вызовы и обновления состояния.

Параметры: Параметров нет.

Источник: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:1961.

public void ClearChatUserIgnore()

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

Вызовы: Invoke.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

public void ClearChatUserIgnore() => Invoke(JournalManager.ClearYokoIgnoredUsers);

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.ClearMapFigures

Выполняет показанные вызовы и обновления состояния.

Параметры: Параметров нет.

Источник: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:2327.

public void ClearMapFigures()

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

Вызовы: Invoke.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

public void ClearMapFigures() => Invoke(WorldMapGump.ClearYokoMapFigures);

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.ClientTargetResponse

Возвращает значение выражения ниже.

Параметры: Параметров нет.

Источник: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:910.

public int[] ClientTargetResponse()

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

Результат: _clientTargetResponse.ToArray().

Вызовы: _clientTargetResponse.ToArray.

Внутренний код реализации, не самостоятельный скрипт.

public int[] ClientTargetResponse() => _clientTargetResponse.ToArray();

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.FindQuantity

Возвращает значение выражения ниже.

Параметры: Параметров нет.

Источник: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:2256.

public int FindQuantity()

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

Вызовы: Invoke.

Вызовы:

  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => { Item item = _world.Items.Get(unchecked((uint)_findItem)); if (item != null && !item.IsDestroyed) { return item.Amount; } Mobile mobile = _world.Mobiles.Get(unchecked((uint)_findItem)); return mobile != null && !mobile.IsDestroyed ? 1 : 0; }). Кандидаты перегрузки: источник не подтверждает выбор конкретного варианта.
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => { Item item = _world.Items.Get(unchecked((uint)_findItem)); if (item != null && !item.IsDestroyed) { return item.Amount; } Mobile mobile = _world.Mobiles.Get(unchecked((uint)_findItem)); return mobile != null && !mobile.IsDestroyed ? 1 : 0; }). Кандидаты перегрузки: источник не подтверждает выбор конкретного варианта.

Внутренний код реализации, не самостоятельный скрипт.

public int FindQuantity() => Invoke(() =>

        {

            Item item = _world.Items.Get(unchecked((uint)_findItem));

            if (item != null && !item.IsDestroyed)

            {

                return item.Amount;

            }



            Mobile mobile = _world.Mobiles.Get(unchecked((uint)_findItem));

            return mobile != null && !mobile.IsDestroyed ? 1 : 0;

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetClilocById

Возвращает значение выражения ниже.

Параметры: clilocId, parameters

Источник: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:2463.

public string GetClilocById(int clilocId, string[] parameters)

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

Вызовы: Invoke.

Вызовы:

  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => Client.UO.FileManager?.Clilocs?.Translate(clilocId, string.Join("\t", parameters ?? Array.Empty<string>())) ?? string.Empty). Кандидаты перегрузки: источник не подтверждает выбор конкретного варианта.
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => Client.UO.FileManager?.Clilocs?.Translate(clilocId, string.Join("\t", parameters ?? Array.Empty<string>())) ?? string.Empty). Кандидаты перегрузки: источник не подтверждает выбор конкретного варианта.

Внутренний код реализации, не самостоятельный скрипт.

public string GetClilocById(int clilocId, string[] parameters) => Invoke(() =>

            Client.UO.FileManager?.Clilocs?.Translate(clilocId, string.Join("\t", parameters ?? Array.Empty<string>()))

            ?? string.Empty);

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetIntelligence

Возвращает значение выражения ниже.

Параметры: id

Источник: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:231.

public int GetIntelligence(int id)

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

Результат: Invoke(() => _world.Player is { IsDestroyed: false } player && player.Serial == unchecked((uint)id) ? player.Intelligence : 0).

Вызовы: Invoke.

Вызовы:

  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => _world.Player is { IsDestroyed: false } player && player.Serial == unchecked((uint)id) ? player.Intelligence : 0). Кандидаты перегрузки: источник не подтверждает выбор конкретного варианта.
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => _world.Player is { IsDestroyed: false } player && player.Serial == unchecked((uint)id) ? player.Intelligence : 0). Кандидаты перегрузки: источник не подтверждает выбор конкретного варианта.

Внутренний код реализации, не самостоятельный скрипт.

public int GetIntelligence(int id) => Invoke(() => _world.Player is { IsDestroyed: false } player && player.Serial == unchecked((uint)id) ? player.Intelligence : 0);

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetLastMenuCaption

Возвращает значение выражения ниже.

Параметры: Параметров нет.

Источник: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:675.

public string GetLastMenuCaption()

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

Результат: Invoke(() => _world.ServerMenus.Snapshot().LastOrDefault()?.YokoCaption ?? string.Empty).

Вызовы: Invoke.

Вызовы:

  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => _world.ServerMenus.Snapshot().LastOrDefault()?.YokoCaption ?? string.Empty). Кандидаты перегрузки: источник не подтверждает выбор конкретного варианта.
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => _world.ServerMenus.Snapshot().LastOrDefault()?.YokoCaption ?? string.Empty). Кандидаты перегрузки: источник не подтверждает выбор конкретного варианта.

Внутренний код реализации, не самостоятельный скрипт.

public string GetLastMenuCaption() => Invoke(() => _world.ServerMenus.Snapshot().LastOrDefault()?.YokoCaption ?? string.Empty);

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetMaxHP

Возвращает значение выражения ниже.

Параметры: id

Источник: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:229.

public int GetMaxHP(int id)

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

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

Вызовы: WithEntity.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

public int GetMaxHP(int id) => WithEntity(id, e => e.HitsMax);

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetMobiles

Возвращает значение выражения ниже.

Параметры: Параметров нет.

Источник: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:2272.

public int[] GetMobiles()

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

Вызовы: Invoke.

Вызовы:

  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => _world.Mobiles.Values .Where(mobile => !mobile.IsDestroyed) .Select(mobile => (int)mobile.Serial).ToArray()). Кандидаты перегрузки: источник не подтверждает выбор конкретного варианта.
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => _world.Mobiles.Values .Where(mobile => !mobile.IsDestroyed) .Select(mobile => (int)mobile.Serial).ToArray()). Кандидаты перегрузки: источник не подтверждает выбор конкретного варианта.

Внутренний код реализации, не самостоятельный скрипт.

public int[] GetMobiles() => Invoke(() => _world.Mobiles.Values

            .Where(mobile => !mobile.IsDestroyed)

            .Select(mobile => (int)mobile.Serial).ToArray());

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetMultiPartsAtPosition

Возвращает значение выражения ниже.

Параметры: x, y

Источник: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:2350.

public int[][] GetMultiPartsAtPosition(int x, int y)

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

Вызовы: Invoke.

Вызовы:

  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => _world.HouseManager.Houses .SelectMany(house => house.GetMultiAt(x, y) .Where(component => component != null && !component.IsDestroyed) .Select(component => new[] { (int)component.Graphic, (int)component.Hue, (int)component.X, (int)component.Y, (int)component.Z, component.MultiOffsetX, component.MultiOffsetY, component.MultiOffsetZ, unchecked((int)house.Serial) })) .ToArray()). Кандидаты перегрузки: источник не подтверждает выбор конкретного варианта.
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => _world.HouseManager.Houses .SelectMany(house => house.GetMultiAt(x, y) .Where(component => component != null && !component.IsDestroyed) .Select(component => new[] { (int)component.Graphic, (int)component.Hue, (int)component.X, (int)component.Y, (int)component.Z, component.MultiOffsetX, component.MultiOffsetY, component.MultiOffsetZ, unchecked((int)house.Serial) })) .ToArray()). Кандидаты перегрузки: источник не подтверждает выбор конкретного варианта.

Внутренний код реализации, не самостоятельный скрипт.

public int[][] GetMultiPartsAtPosition(int x, int y) => Invoke(() =>

            _world.HouseManager.Houses

                .SelectMany(house => house.GetMultiAt(x, y)

                    .Where(component => component != null && !component.IsDestroyed)

                    .Select(component => new[]

                    {

                        (int)component.Graphic,

                        (int)component.Hue,

                        (int)component.X,

                        (int)component.Y,

                        (int)component.Z,

                        component.MultiOffsetX,

                        component.MultiOffsetY,

                        component.MultiOffsetZ,

                        unchecked((int)house.Serial)

                    }))

                .ToArray());

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetScriptsCount

Возвращает значение выражения ниже.

Параметры: Параметров нет.

Источник: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:312.

public int GetScriptsCount()

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

Результат: _manager.GetScriptsCount().

Вызовы: _manager.GetScriptsCount.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

public int GetScriptsCount() => _manager.GetScriptsCount();

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetStaticTiles

Возвращает значение выражения ниже.

Параметры: x, y, map

Источник: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:3310.

public int[] GetStaticTiles(int x, int y, int map)

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

Вызовы: Invoke.

Вызовы:

  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => { if (_world.Map == null || map != _world.MapIndex) { Error($"UO.GetStaticTiles: map {map} is not the currently loaded map {_world.MapIndex}"); return Array.Empty<int>(); } var result = new List<int>(); for (GameObject tile = _world.Map.GetTile(x, y); tile != null; tile = tile.TNext) { if (tile is Static or Multi or Item) { result.Add(tile.Graphic); result.Add(tile.Z); result.Add(tile.Hue); } } return result.ToArray(); }). Кандидаты перегрузки: источник не подтверждает выбор конкретного варианта.
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => { if (_world.Map == null || map != _world.MapIndex) { Error($"UO.GetStaticTiles: map {map} is not the currently loaded map {_world.MapIndex}"); return Array.Empty<int>(); } var result = new List<int>(); for (GameObject tile = _world.Map.GetTile(x, y); tile != null; tile = tile.TNext) { if (tile is Static or Multi or Item) { result.Add(tile.Graphic); result.Add(tile.Z); result.Add(tile.Hue); } } return result.ToArray(); }). Кандидаты перегрузки: источник не подтверждает выбор конкретного варианта.
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Error: Error($"UO.GetStaticTiles: map {map} is not the currently loaded map {_world.MapIndex}").

Внутренний код реализации, не самостоятельный скрипт.

public int[] GetStaticTiles(int x, int y, int map) => Invoke(() =>

        {

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

            {

                Error($"UO.GetStaticTiles: map {map} is not the currently loaded map {_world.MapIndex}");

                return Array.Empty<int>();

            }

            var result = new List<int>();

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

            {

                if (tile is Static or Multi or Item)

                {

                    result.Add(tile.Graphic);

                    result.Add(tile.Z);

                    result.Add(tile.Hue);

                }

            }

            return result.ToArray();

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetStatus

Выполняет показанные вызовы и обновления состояния.

Параметры: id

Источник: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:812.

public void GetStatus(int id)

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

Вызовы: Invoke.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

public void GetStatus(int id)

        {

            Invoke(() => GameActions.RequestMobileStatus(_world, (uint)id, true));

        }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetTileDataProperties

Возвращает значение выражения ниже.

Параметры: group, tileId

Источник: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:3525.

public int[] GetTileDataProperties(int group, int tileId)

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

Вызовы: Invoke.

Вызовы:

  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => { if (group == 0 && tileId >= 0 && tileId < Client.UO.FileManager.TileData.LandData.Length) { ref LandTiles data = ref Client.UO.FileManager.TileData.LandData[tileId]; return new[] { (int)data.TexID, data.IsWet ? 1 : 0, data.IsImpassable ? 1 : 0, data.IsNoDiagonal ? 1 : 0 }; } if (group != 0 && tileId >= 0 && tileId < Client.UO.FileManager.TileData.StaticData.Length) { ref StaticTiles data = ref Client.UO.FileManager.TileData.StaticData[tileId]; return new[] { (int)data.Weight, (int)data.Layer, data.Count, (int)data.AnimID, (int)data.Hue, (int)data.LightIndex, (int)data.Height, data.IsWet ? 1 : 0, data.IsImpassable ? 1 : 0, data.IsSurface ? 1 : 0, data.IsFoliage ? 1 : 0, data.IsDoor ? 1 : 0, data.IsWall ? 1 : 0, data.IsContainer ? 1 : 0 }; } return Array.Empty<int>(); }). Кандидаты перегрузки: источник не подтверждает выбор конкретного варианта.
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => { if (group == 0 && tileId >= 0 && tileId < Client.UO.FileManager.TileData.LandData.Length) { ref LandTiles data = ref Client.UO.FileManager.TileData.LandData[tileId]; return new[] { (int)data.TexID, data.IsWet ? 1 : 0, data.IsImpassable ? 1 : 0, data.IsNoDiagonal ? 1 : 0 }; } if (group != 0 && tileId >= 0 && tileId < Client.UO.FileManager.TileData.StaticData.Length) { ref StaticTiles data = ref Client.UO.FileManager.TileData.StaticData[tileId]; return new[] { (int)data.Weight, (int)data.Layer, data.Count, (int)data.AnimID, (int)data.Hue, (int)data.LightIndex, (int)data.Height, data.IsWet ? 1 : 0, data.IsImpassable ? 1 : 0, data.IsSurface ? 1 : 0, data.IsFoliage ? 1 : 0, data.IsDoor ? 1 : 0, data.IsWall ? 1 : 0, data.IsContainer ? 1 : 0 }; } return Array.Empty<int>(); }). Кандидаты перегрузки: источник не подтверждает выбор конкретного варианта.

Внутренний код реализации, не самостоятельный скрипт.

public int[] GetTileDataProperties(int group, int tileId) => Invoke(() =>

        {

            if (group == 0 && tileId >= 0 && tileId < Client.UO.FileManager.TileData.LandData.Length)

            {

                ref LandTiles data = ref Client.UO.FileManager.TileData.LandData[tileId];

                return new[] { (int)data.TexID, data.IsWet ? 1 : 0, data.IsImpassable ? 1 : 0, data.IsNoDiagonal ? 1 : 0 };

            }

            if (group != 0 && tileId >= 0 && tileId < Client.UO.FileManager.TileData.StaticData.Length)

            {

                ref StaticTiles data = ref Client.UO.FileManager.TileData.StaticData[tileId];

                return new[]

                {

                    (int)data.Weight, (int)data.Layer, data.Count, (int)data.AnimID, (int)data.Hue, (int)data.LightIndex,

                    (int)data.Height, data.IsWet ? 1 : 0, data.IsImpassable ? 1 : 0, data.IsSurface ? 1 : 0,

                    data.IsFoliage ? 1 : 0, data.IsDoor ? 1 : 0, data.IsWall ? 1 : 0, data.IsContainer ? 1 : 0

                };

            }

            return Array.Empty<int>();

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetTitle

Возвращает значение выражения ниже.

Параметры: id

Источник: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:238.

public string GetTitle(int id)

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

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

Вызовы: Invoke.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

public string GetTitle(int id) => Invoke(() => (_world.Get(unchecked((uint)id)) as Mobile)?.Title ?? string.Empty);

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.HideLocally

Выполняет показанные вызовы и обновления состояния.

Параметры: entity

Источник: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:1658.

private static void HideLocally(Entity entity)

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

Вызовы: ReferenceEquals, UIManager.GetGump<PaperDollGump>, .RequestUpdateContents.

Условия: ReferenceEquals(SelectedObject.Object, entity); entity is Item item.

Вызовы:

  • ClassicUO.Game.Managers.UIManager.GetGump: UIManager.GetGump<PaperDollGump>(item.Container). Кандидаты перегрузки: источник не подтверждает выбор конкретного варианта.
  • ClassicUO.Game.Managers.UIManager.GetGump: UIManager.GetGump<PaperDollGump>(item.Container). Кандидаты перегрузки: источник не подтверждает выбор конкретного варианта.

Внутренний код реализации, не самостоятельный скрипт.

private static void HideLocally(Entity entity)

        {

            entity.IsLocallyHiddenByScript = true;

            entity.AllowedToDraw = false;

            if (ReferenceEquals(SelectedObject.Object, entity)) SelectedObject.Object = null;

            // Rebuild coverage as well: a hidden robe must expose the shirt below.

            if (entity is Item item)

                UIManager.GetGump<PaperDollGump>(item.Container)?.RequestUpdateContents();

        }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.JournalColor

Возвращает значение выражения ниже.

Параметры: index

Источник: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:1968.

public string JournalColor(int index)

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

Результат: GetJournalEntry(index) is JournalEntry entry ? $"0x{entry.Hue:X4}" : "0x0000".

Вызовы: GetJournalEntry.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

public string JournalColor(int index) => GetJournalEntry(index) is JournalEntry entry ? $"0x{entry.Hue:X4}" : "0x0000";

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.JournalSerial

Возвращает значение выражения ниже.

Параметры: index

Источник: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:1965.

public string JournalSerial(int index)

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

Результат: GetJournalEntry(index) is JournalEntry entry ? $"0x{entry.Serial:X8}" : "0x00000000".

Вызовы: GetJournalEntry.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

public string JournalSerial(int index) => GetJournalEntry(index) is JournalEntry entry ? $"0x{entry.Serial:X8}" : "0x00000000";

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.ObjAtLayer

Возвращает значение выражения ниже.

Параметры: layer

Источник: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:2052.

public int ObjAtLayer(int layer)

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

Вызовы: Invoke.

Вызовы:

  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => layer > (int)Layer.Invalid && layer <= (int)Layer.Bank ? (int)(_world.Player?.FindItemByLayer((Layer)layer)?.Serial ?? 0) : 0). Кандидаты перегрузки: источник не подтверждает выбор конкретного варианта.
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => layer > (int)Layer.Invalid && layer <= (int)Layer.Bank ? (int)(_world.Player?.FindItemByLayer((Layer)layer)?.Serial ?? 0) : 0). Кандидаты перегрузки: источник не подтверждает выбор конкретного варианта.

Внутренний код реализации, не самостоятельный скрипт.

public int ObjAtLayer(int layer) => Invoke(() =>

            layer > (int)Layer.Invalid && layer <= (int)Layer.Bank

                ? (int)(_world.Player?.FindItemByLayer((Layer)layer)?.Serial ?? 0)

                : 0);

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.OpenDoor

Выполняет показанные вызовы и обновления состояния.

Параметры: Параметров нет.

Источник: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:1412.

public void OpenDoor()

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

Вызовы: Invoke.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

public void OpenDoor() => Invoke(GameActions.OpenDoor);

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.QuestRequest

Выполняет показанные вызовы и обновления состояния.

Параметры: Параметров нет.

Источник: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:1442.

public void QuestRequest()

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

Вызовы: Invoke.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

public void QuestRequest() => Invoke(() => GameActions.RequestQuestMenu(_world));

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.RequestContextMenu

Выполняет показанные вызовы и обновления состояния.

Параметры: id

Источник: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:700.

public void RequestContextMenu(int id)

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

Вызовы: Invoke.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

public void RequestContextMenu(int id) => Invoke(() => GameActions.OpenPopupMenu((uint)id));

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.RequestInteractiveObjectInfoTarget

Проверяет условия ниже и возвращает показанный результат.

Параметры: Параметров нет.

Источник: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:922.

public int RequestInteractiveObjectInfoTarget()

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

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

Вызовы: Invoke.

Условия: !_interactiveCommands.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

public int RequestInteractiveObjectInfoTarget()

        {

            if (!_interactiveCommands)

                return 0;



            return Invoke(() =>

            {

                _world.TargetManager.SetTargeting(selected =>

                {

                    bool valid = selected is Entity;

                    string result = valid

                        ? FormatObjectInfo((Entity)selected)

                        : "UO.Info: select an item or mobile; the selected target is not an object.";

                    if (valid)

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

                    PrintInteractiveResult(result);

                }, 0, TargetType.Neutral);

                PrintInteractiveResult("UO.Info: target an item or mobile.");

                return 1;

            });

        }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.ResetFindResults

Выполняет показанные вызовы и обновления состояния.

Параметры: Параметров нет.

Источник: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:3753.

private void ResetFindResults()

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

Вызовы: _foundItems.Clear.

Внутренний код реализации, не самостоятельный скрипт.

private void ResetFindResults()

        {

            _findItem = 0;

            _findCount = 0;

            _findFullQuantity = 0;

            _foundItems.Clear();

        }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Resync

Выполняет показанные вызовы и обновления состояния.

Параметры: Параметров нет.

Источник: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:1667.

public void Resync()

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

Вызовы: Invoke.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

public void Resync() => Invoke(() => NetClient.Socket.Send_Resync());

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SelectObject

Проверяет условия ниже и возвращает показанный результат.

Параметры: Параметров нет.

Источник: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:747.

private GameObject SelectObject()

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

Результат: selected.Task.GetAwaiter().GetResult().

Вызовы: Invoke, selected.Task.Wait, selected.TrySetResult, _cancellationToken.ThrowIfCancellationRequested, selected.Task.GetAwaiter().GetResult, selected.Task.GetAwaiter, _manager.ReleaseObjectSelection.

Условия: !Invoke(() => _world.TargetManager.IsCallbackTarget(callback)).

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

private GameObject SelectObject()

        {

            var selected = new TaskCompletionSource<GameObject>(TaskCreationOptions.RunContinuationsAsynchronously);

            Action<GameObject> callback = obj => selected.TrySetResult(obj);

            try

            {

                Invoke(() => _world.TargetManager.SetTargeting(callback, 0, TargetType.Neutral));

                while (!selected.Task.Wait(50, _cancellationToken))

                {

                    // Another script or a server target may replace this cursor.

                    if (!Invoke(() => _world.TargetManager.IsCallbackTarget(callback)))

                        selected.TrySetResult(null);

                }

                _cancellationToken.ThrowIfCancellationRequested();

                return selected.Task.GetAwaiter().GetResult();

            }

            finally

            {

                // Do not wait for the game thread during emergency cancellation.

                // Ownership prevents this cleanup from clearing a newer cursor.

                _manager.ReleaseObjectSelection(callback);

            }



        }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SetAutoSellRule

Выполняет показанные вызовы и обновления состояния.

Параметры: type, color, quantity

Источник: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:3580.

public void SetAutoSellRule(int type, int color, int quantity)

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

Вызовы: Invoke.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

public void SetAutoSellRule(int type, int color, int quantity) =>

            Invoke(() => SetAutoShopRule(ProfileManager.CurrentProfile?.BackNewbieAutoSellRules, false, type, color, quantity, 0, string.Empty));

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SetReceivingContainer

Выполняет показанные вызовы и обновления состояния.

Параметры: id

Источник: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:1133.

public void SetReceivingContainer(int id)

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

Внутренний код реализации, не самостоятельный скрипт.

public void SetReceivingContainer(int id) => State.ReceivingContainer = id;

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.UseSkill

Проверяет условия ниже и возвращает показанный результат.

Параметры: skillId

Источник: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:2065.

public int UseSkill(int skillId)

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

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

Вызовы: IsOnline, Invoke.

Условия: skillId <= 0 || IsOnline() == 0.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

public int UseSkill(int skillId)

        {

            if (skillId <= 0 || IsOnline() == 0)

                return 0;

            Invoke(() => GameActions.UseSkill(skillId - 1));

            return 1;

        }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.WaitGumpSelect

Проверяет условия ниже и возвращает показанный результат.

Параметры: triggerId, timeoutMs

Источник: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:2737.

public int WaitGumpSelect(int triggerId, int timeoutMs)

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

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

Вызовы: Invoke, DateTime.UtcNow.AddMilliseconds, Math.Max, Wait, Error.

Условия: sent != 0; DateTime.UtcNow >= timeout.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

public int WaitGumpSelect(int triggerId, int timeoutMs)

        {

            HashSet<Gump> existing = Invoke(() => ServerGumpsUnsafe().ToHashSet());

            DateTime timeout = DateTime.UtcNow.AddMilliseconds(Math.Max(0, timeoutMs));

            do

            {

                int sent = Invoke(() => SendGumpButtonUnsafe(ServerGumpsUnsafe().FirstOrDefault(g => !existing.Contains(g)), triggerId, string.Empty));

                if (sent != 0)

                    return 1;

                if (DateTime.UtcNow >= timeout)

                    break;

                Wait(50);

            }

            while (true);

            Error($"UO.WaitGump: timeout waiting to select button {triggerId}");

            return 0;

        }

ClassicUO.Game.Managers.UIManager.GetGump

Проверяет условия ниже и возвращает показанный результат.

Параметры: serial

Источник: Project_Full/src/ClassicUO.Client/Game/Managers/UIManager.cs:307.

public static Gump GetGump(uint serial)

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

Результат: c as Gump; null.

Условия: !c.IsDisposed && c.LocalSerial == serial.

Внутренний код реализации, не самостоятельный скрипт.

public static Gump GetGump(uint serial)
        {
            for (LinkedListNode<Gump> last = Gumps.Last; last != null; last = last.Previous)
            {
                Control c = last.Value;

                if (!c.IsDisposed && c.LocalSerial == serial)
                {
                    return c as Gump;
                }
            }

            return null;
        }

ClassicUO.Game.Managers.YokoInjectionManager.ApplyDisconnectPauseState

Выполняет показанные вызовы и обновления состояния.

Параметры: paused

Источник: Project_Full/src/ClassicUO.Client/Game/Managers/YokoInjectionManager.cs:891.

private void ApplyDisconnectPauseState(bool paused)

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

Вызовы: Interlocked.Exchange, script.SetDisconnectPause, MarkRuntimeStateChanged.

Условия: Interlocked.Exchange(ref _appliedDisconnectPause, desired) == desired; changedRunningState.

Внутренний код реализации, не самостоятельный скрипт.

private void ApplyDisconnectPauseState(bool paused)
        {
            int desired = paused ? 1 : 0;
            if (Interlocked.Exchange(ref _appliedDisconnectPause, desired) == desired)
                return;

            bool changedRunningState = false;
            foreach (YokoRunningScript script in _running.Values)
            {
                script.SetDisconnectPause(paused);
                changedRunningState = true;
            }

            if (changedRunningState)
                MarkRuntimeStateChanged();
        }

ClassicUO.Game.Managers.YokoInjectionManager.CancelNextServerTarget

Выполняет показанные вызовы и обновления состояния.

Параметры: owner

Источник: Project_Full/src/ClassicUO.Client/Game/Managers/YokoInjectionManager.cs:3311.

internal void CancelNextServerTarget(CancellationToken owner)

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

Вызовы: owner.ThrowIfCancellationRequested, _pendingTargets.TryDequeue, HasServerTargetCursor, _world.TargetManager.CancelTarget, _pendingTargets.Enqueue.

Условия: HasServerTargetCursor().

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

internal void CancelNextServerTarget(CancellationToken owner)
        {
            lock (_pendingTargetLock)
            {
                owner.ThrowIfCancellationRequested();
                while (_pendingTargets.TryDequeue(out _)) { }
                if (HasServerTargetCursor()) _world.TargetManager.CancelTarget();
                else _pendingTargets.Enqueue(new PendingTarget(0, owner, cancel: true));
            }
        }

ClassicUO.Game.Managers.YokoInjectionManager.FindProcedure

Проверяет условия ниже и возвращает показанный результат.

Параметры: key

Источник: Project_Full/src/ClassicUO.Client/Game/Managers/YokoInjectionManager.cs:3871.

internal YokoProcedureInfo FindProcedure(string key)

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

Результат: null; indexed; exact; byName.Length == 1 ? byName[0] : null.

Вызовы: string.IsNullOrWhiteSpace, key.Trim, lookup.StartsWith, lookup.Substring(5).Trim, lookup.Substring, lookup.EndsWith, lookup.Substring(0, lookup.Length - 2).Trim, lookup.IndexOf.

Условия: string.IsNullOrWhiteSpace(key); lookup.StartsWith("exec ", StringComparison.OrdinalIgnoreCase); lookup.EndsWith("()", StringComparison.Ordinal); subIndex >= 0.

Внутренний код реализации, не самостоятельный скрипт.

internal YokoProcedureInfo FindProcedure(string key)
        {
            if (string.IsNullOrWhiteSpace(key))
            {
                return null;
            }

            string lookup = key.Trim();
            if (lookup.StartsWith("exec ", StringComparison.OrdinalIgnoreCase))
            {
// …
            if (lookup.EndsWith("()", StringComparison.Ordinal))
// …
            if (subIndex >= 0)
// …
                if (nameEnd > nameStart)
// …
                if (_proceduresByKey.TryGetValue(lookup, out YokoProcedureInfo indexed))
                    return indexed;
// …
                if (exact != null)
// …
                    return exact;
// …
                if (byName.Length != 0) return byName.Length == 1 ? byName[0] : null;
// …
            if (TryGetSelectedAutoloadActionProcedures(RequestedAutoloadPath(), out var selected))
// …
                if (exact != null) return exact;
// …
                return byName.Length == 1 ? byName[0] : null;
// …
            return null;
// …

Полный код сохранён в файле источника; ниже приведены точные фрагменты.

ClassicUO.Game.Managers.YokoInjectionManager.MatchesProcedureSelector

Проверяет условия ниже и возвращает показанный результат.

Параметры: selector, key, name

Источник: Project_Full/src/ClassicUO.Client/Game/Managers/YokoExecutionControl.cs:93.

private static bool MatchesProcedureSelector(string selector, string key, string name = null)

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

Результат: true; false; string.Equals(selector, declaredName, StringComparison.OrdinalIgnoreCase).

Вызовы: string.Equals, string.IsNullOrEmpty, selector.Contains, key.LastIndexOf, key.Substring, declaredName.LastIndexOf, declaredName.Substring.

Условия: string.Equals(selector, key, StringComparison.OrdinalIgnoreCase) || string.Equals(selector, name, StringComparison.OrdinalIgnoreCase); string.IsNullOrEmpty(key) || selector.Contains("::", StringComparison.Ordinal); split < 0; occurrence > 0.

Внутренний код реализации, не самостоятельный скрипт.

private static bool MatchesProcedureSelector(string selector, string key, string name = null)
        {
            if (string.Equals(selector, key, StringComparison.OrdinalIgnoreCase)
                || string.Equals(selector, name, StringComparison.OrdinalIgnoreCase))
                return true;
            if (string.IsNullOrEmpty(key) || selector.Contains("::", StringComparison.Ordinal))
                return false;
            int split = key.LastIndexOf("::", StringComparison.Ordinal);
            if (split < 0)
                return false;
            string declaredName = key.Substring(split + 2);
            int occurrence = declaredName.LastIndexOf('#');
            if (occurrence > 0)
                declaredName = declaredName.Substring(0, occurrence);
            return string.Equals(selector, declaredName, StringComparison.OrdinalIgnoreCase);
        }

ClassicUO.Game.Managers.YokoInjectionManager.PrepareForReconnect

Выполняет показанные вызовы и обновления состояния.

Параметры: Параметров нет.

Источник: Project_Full/src/ClassicUO.Client/Game/Managers/YokoInjectionManager.cs:767.

internal void PrepareForReconnect()

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

Вызовы: ApplyDisconnectPauseState.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

internal void PrepareForReconnect()
        {
            bool pause = PauseScriptsOnDisconnect;
            _pauseScriptsOnDisconnect = pause;
            // Disconnect is deferred until World.Update returns. Keep the gate
            // closed during that frame, while World.InGame is still true.
            _disconnectTransitionPending = true;
            ApplyDisconnectPauseState(pause);
        }

InjectionScript.Runtime.InjectionApi.Wait

Выполняет показанные вызовы и обновления состояния.

Параметры: milliseconds

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApi.cs:55.

public void Wait(int milliseconds)

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

Вызовы: nameof, .Invoke, timerWait, bridge.Wait, Thread.Sleep.

Условия: milliseconds<0; timerWait!=null; bridge!=null.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

public void Wait(int milliseconds)
        {
            if(milliseconds<0)throw new ArgumentOutOfRangeException(nameof(milliseconds));
            checkpoint?.Invoke();
            if(timerWait!=null)timerWait(milliseconds);else if(bridge!=null)bridge.Wait(milliseconds);else Thread.Sleep(milliseconds);
            checkpoint?.Invoke();
        }

InjectionScript.Runtime.InjectionApiUO.Attack

Выполняет показанные вызовы и обновления состояния.

Параметры: id

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3924.

public void Attack(string id)

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

Вызовы: Attack, GetObject.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

public void Attack(string id) => Attack(GetObject(id));

InjectionScript.Runtime.InjectionApiUO.CaptureLegacyEventSnapshot

Выполняет показанные вызовы и обновления состояния.

Параметры: subscription

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:6070.

private void CaptureLegacyEventSnapshot(LegacyEventSubscription subscription)

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

Вызовы: bridge.GetHP, bridge.Dead, subscription.KnownMobiles.Clear, bridge.GetMobiles, Array.Empty<int>, subscription.KnownMobiles.Add.

Условия: serial != 0 && serial != bridge.Self.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

private void CaptureLegacyEventSnapshot(LegacyEventSubscription subscription)

        {

            subscription.LastHp = bridge.GetHP(bridge.Self);

            subscription.LastMana = bridge.Mana;

            subscription.LastStamina = bridge.Stamina;

            subscription.LastDead = bridge.Dead();

            subscription.KnownMobiles.Clear();

            foreach (int serial in bridge.GetMobiles() ?? Array.Empty<int>())

                if (serial != 0 && serial != bridge.Self)

                    subscription.KnownMobiles.Add(serial);

        }

InjectionScript.Runtime.InjectionApiUO.CircleTrans

Выполняет показанные вызовы и обновления состояния.

Параметры: enabled

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3785.

public void CircleTrans(int enabled)

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

Вызовы: bridge.CircleTrans.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

public void CircleTrans(int enabled) => bridge.CircleTrans(enabled);

InjectionScript.Runtime.InjectionApiUO.CompactFindList::AddEntry

Выполняет показанные вызовы и обновления состояния.

Параметры: typeValue, colorValue

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3411.

void AddEntry(InjectionValue typeValue, InjectionValue colorValue)

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

Вызовы: types.Add, ResolveType, colors.Add, NumberConversions.ToInt.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

void AddEntry(InjectionValue typeValue, InjectionValue colorValue)

            {

                types.Add(ResolveType(typeValue));

                colors.Add(NumberConversions.ToInt(colorValue));

            }

InjectionScript.Runtime.InjectionApiUO.CompactFindType

Проверяет условия ниже и возвращает показанный результат.

Параметры: typeValue, colorValue, containerValue, distanceValue, notorietyValue, nearestValue

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:4739.

`private InjectionValue CompactFindType(InjectionValue typeValue, InjectionValue colorValue,

        InjectionValue containerValue, InjectionValue distanceValue, InjectionValue notorietyValue,

        InjectionValue nearestValue)`

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

Результат: serial == 0 ? new InjectionValue(string.Empty) : new InjectionValue(NumberConversions.ToHex(serial)); fallback == 0 ? new InjectionValue(string.Empty) : new InjectionValue(NumberConversions.ToHex(fallback)).

Вызовы: ResolveType, NumberConversions.ToInt, ConvertContainer, ResolveCompactDistance, ToBoolean, ParseIntMask, FindFilteredMobileSerial, bridge.GetFindVertical.

Условия: container <= 1 || hasNotorietyFilter; serial != 0 || hasNotorietyFilter.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

private InjectionValue CompactFindType(InjectionValue typeValue, InjectionValue colorValue,

            InjectionValue containerValue, InjectionValue distanceValue, InjectionValue notorietyValue,

            InjectionValue nearestValue)

        {

            int type = ResolveType(typeValue);

            int color = NumberConversions.ToInt(colorValue);

            int container = ConvertContainer(containerValue);

            int distance = ResolveCompactDistance(distanceValue);

            bool nearest = ToBoolean(nearestValue);



            // Notoriety only exists on Mobile.  Extended FindType therefore scans

            // World.Mobiles when a notoriety filter is supplied (or when the type

            // itself resolves to a mobile body on the ground/default world scope).

            HashSet<int> notorieties = ParseIntMask(notorietyValue);

            bool hasNotorietyFilter = notorieties.Count > 0;

            if (container <= 1 || hasNotorietyFilter)

            {

                int serial = FindFilteredMobileSerial(type, notorietyValue, distance, nearest,

                    bridge.GetFindVertical(), color, false);

                if (serial != 0 || hasNotorietyFilter)

                    return serial == 0 ? new InjectionValue(string.Empty) : new InjectionValue(NumberConversions.ToHex(serial));

            }



            // Preserve legacy item/container behavior when no mobile matched.

            int fallback = bridge.FindType(type, color, container, distance, false);

            return fallback == 0 ? new InjectionValue(string.Empty) : new InjectionValue(NumberConversions.ToHex(fallback));

        }

InjectionScript.Runtime.InjectionApiUO.EquipmentClassRule.Matches

Возвращает значение выражения ниже.

Параметры: worn

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.ClassMasks.cs:20.

internal bool Matches(HashSet<int> worn)

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

Результат: worn.Count > 0 && !Forbidden.Overlaps(worn) && Required.All(group => group.Overlaps(worn)).

Вызовы: Forbidden.Overlaps, Required.All.

Внутренний код реализации, не самостоятельный скрипт.

internal bool Matches(HashSet<int> worn)
                => worn.Count > 0 && !Forbidden.Overlaps(worn) && Required.All(group => group.Overlaps(worn));

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Ветка обрабатывает только указанное имя команды.

Параметры: Параметров нет.

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1662.

Результат: CastAtTarget(arguments[0], arguments[1]) != 0 ? InjectionValue.True : InjectionValue.False; InjectionValue.True; InjectionValue.False.

Условия: arguments[0].Kind == InjectionValueKind.String; castAccepted != 0.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

case "casttoobject":

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

                        return CastAtTarget(arguments[0], arguments[1]) != 0 ? InjectionValue.True : InjectionValue.False;



                    WaitTargetObject(Arg(1));

                    int castAccepted = bridge.Cast(Arg(0));

                    if (castAccepted != 0)

                    {

                        ticksSpell = Timer();

                        return InjectionValue.True;

                    }



                    bridge.CancelTarget();

                    return InjectionValue.False;

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Ветка обрабатывает только указанное имя команды.

Параметры: Параметров нет.

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1644.

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

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

case "clientrequesttiletarget": bridge.RequestClientTarget(true); return InjectionValue.Unit;

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Ветка обрабатывает только указанное имя команды.

Параметры: Параметров нет.

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1547.

Результат: InjectionValue.Unit; new InjectionValue(bridge.GetDropDelay()).

Условия: arguments.Length > 0.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

case "dropdelay":

                    if (arguments.Length > 0) { bridge.SetDropDelay(Arg(0)); return InjectionValue.Unit; }

                    return new InjectionValue(bridge.GetDropDelay());

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Ветка обрабатывает только указанное имя команды.

Параметры: Параметров нет.

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1637.

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

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

case "equiplastweapon": bridge.EquipLastWeapon(); return InjectionValue.Unit;

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Ветка обрабатывает только указанное имя команды.

Параметры: Параметров нет.

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1261.

Результат: new InjectionValue(arguments[0].Kind == InjectionValueKind.String ? Equip(Text(0), Arg(1)) : bridge.Equip(Arg(0), Arg(1))).

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

case "equip":

                    return new InjectionValue(arguments[0].Kind == InjectionValueKind.String ? Equip(Text(0), Arg(1)) : bridge.Equip(Arg(0), Arg(1)));

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Ветка обрабатывает только указанное имя команды.

Параметры: Параметров нет.

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1575.

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

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

case "getdirection": return new InjectionValue(bridge.GetDir(Arg(0)));

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Ветка обрабатывает только указанное имя команды.

Параметры: Параметров нет.

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1592.

Результат: StringArray(bridge.GetLastMenuItems()).

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

case "getlastmenuitems": return StringArray(bridge.GetLastMenuItems());

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Ветка обрабатывает только указанное имя команды.

Параметры: Параметров нет.

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1342.

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

Внутренний код реализации, не самостоятельный скрипт.

case "getrununmounttimer": return new InjectionValue(state.RunUnmountTimer);

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Ветка обрабатывает только указанное имя команды.

Параметры: Параметров нет.

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1459.

Результат: new InjectionValue(bridge.GetSurfaceZ(Arg(0), Arg(1), Arg(2))).

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

case "getsurfacez":

                    return new InjectionValue(bridge.GetSurfaceZ(Arg(0), Arg(1), Arg(2)));

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Ветка обрабатывает только указанное имя команды.

Параметры: Параметров нет.

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:2036.

Результат: new InjectionValue(bridge.JournalEntryCount() == 0 ? -1 : bridge.JournalEntryCount() - 1).

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

case "highjournal": return new InjectionValue(bridge.JournalEntryCount() == 0 ? -1 : bridge.JournalEntryCount() - 1);

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Ветка обрабатывает только указанное имя команды.

Параметры: Параметров нет.

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1375.

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

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

case "mana": return new InjectionValue(bridge.Mana);

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Ветка обрабатывает только указанное имя команды.

Параметры: Параметров нет.

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1588.

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

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

case "menupresent": return new InjectionValue(bridge.MenuPresent());

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Ветка обрабатывает только указанное имя команды.

Параметры: Параметров нет.

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1584.

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

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

case "setstatlockstate":

                case "setstatstate": bridge.SetStatLockState(Arg(0), Arg(1)); return InjectionValue.Unit;

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Ветка обрабатывает только указанное имя команды.

Параметры: Параметров нет.

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1527.

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

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

case "stopscript": bridge.StopScript(Arg(0)); return InjectionValue.Unit;

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Ветка обрабатывает только указанное имя команды.

Параметры: Параметров нет.

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1311.

Результат: new InjectionValue((bridge as IProxyMetadataBridge)?.UsesProxy == true ? 1 : 0).

Внутренний код реализации, не самостоятельный скрипт.

case "useproxy": return new InjectionValue((bridge as IProxyMetadataBridge)?.UsesProxy == true ? 1 : 0);

InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Text

Возвращает значение выражения ниже.

Параметры: index

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:2825.

string Text(int index)

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

Результат: index < arguments.Length ? arguments[index].ToString() : string.Empty.

Вызовы: arguments[index].ToString.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

string Text(int index) => index < arguments.Length ? arguments[index].ToString() : string.Empty;

InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias

Ветка обрабатывает только указанное имя команды.

Параметры: Параметров нет.

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:2946.

Условия: arguments.Length > 1; arguments.Length > 0.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

case "easyobject":

                    if (arguments.Length > 1) state.Objects.Set(Text(0), Arg(1));

                    else if (arguments.Length > 0) state.Objects.Set(Text(0), bridge.GetLastObject());

                    break;

InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias

Ветка обрабатывает только указанное имя команды.

Параметры: Параметров нет.

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:2954.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

case "filterweather": state.WeatherFilter = arguments.Length == 0 || Arg(0) != 0 ? 1 : 0; bridge.SetWeatherFilter(state.WeatherFilter); break;

InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias

Ветка обрабатывает только указанное имя команды.

Параметры: Параметров нет.

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:2950.

Условия: arguments.Length > 0.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

case "forget": if (arguments.Length > 0) state.Objects.Remove(Text(0)); break;

InjectionScript.Runtime.InjectionApiUO.FindMobile

Возвращает значение выражения ниже.

Параметры: stateFilter

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3657.

public int FindMobile(InjectionValue stateFilter)

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

Вызовы: FindMobile.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

public int FindMobile(InjectionValue stateFilter) => FindMobile(stateFilter, new InjectionValue("all"),

            new InjectionValue("all"), new InjectionValue("all"));

InjectionScript.Runtime.InjectionApiUO.GListSize

Возвращает значение выражения ниже.

Параметры: Параметров нет.

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3283.

public int GListSize()

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

Результат: globalList.Count.

Внутренний код реализации, не самостоятельный скрипт.

public int GListSize() => globalList.Count;

InjectionScript.Runtime.InjectionApiUO.GetPing

Возвращает значение выражения ниже.

Параметры: timeout

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3745.

public int GetPing(InjectionValue timeout)

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

Результат: bridge.GetPing(Math.Max(0, NumberConversions.ToInt(timeout))).

Вызовы: bridge.GetPing, Math.Max, NumberConversions.ToInt.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

public int GetPing(InjectionValue timeout) => bridge.GetPing(Math.Max(0, NumberConversions.ToInt(timeout)));

InjectionScript.Runtime.InjectionApiUO.GetQuantity

Возвращает значение выражения ниже.

Параметры: id

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3737.

public int GetQuantity(int id)

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

Результат: bridge.GetQuantity(id).

Вызовы: bridge.GetQuantity.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

public int GetQuantity(int id) => bridge.GetQuantity(id);

InjectionScript.Runtime.InjectionApiUO.GetX

Возвращает значение выражения ниже.

Параметры: id

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3561.

public int GetX(int id)

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

Результат: bridge.GetX(id).

Вызовы: bridge.GetX.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

public int GetX(int id) => bridge.GetX(id);

InjectionScript.Runtime.InjectionApiUO.GumpExists

Возвращает значение выражения ниже.

Параметры: id

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3228.

public int GumpExists(InjectionValue id)

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

Результат: bridge.GumpExists(NumberConversions.ToInt(id), -1).

Вызовы: bridge.GumpExists, NumberConversions.ToInt.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

public int GumpExists(InjectionValue id) => bridge.GumpExists(NumberConversions.ToInt(id), -1);

InjectionScript.Runtime.InjectionApiUO.InJournalBetweenTimes

Возвращает значение выражения ниже.

Параметры: pattern, startTime, endTime, limit

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5382.

public int InJournalBetweenTimes(string pattern, int startTime, int endTime, int limit)

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

Вызовы: InJournalBetweenTimesCore, Math.Max.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

public int InJournalBetweenTimes(string pattern, int startTime, int endTime, int limit)

            => InJournalBetweenTimesCore(pattern, startTime, endTime,

                limit == -1 ? -1 : Math.Max(0, limit), ignoreCase: limit == -1);

InjectionScript.Runtime.InjectionApiUO.JournalEntryTime

Проверяет условия ниже и возвращает показанный результат.

Параметры: timestamp

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5515.

private int JournalEntryTime(double timestamp)

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

Результат: -1; 0; milliseconds >= int.MaxValue ? int.MaxValue : (int)milliseconds.

Вызовы: DateTime.FromOADate.

Условия: timestamp <= 0d; milliseconds <= 0d.

Внутренний код реализации, не самостоятельный скрипт.

private int JournalEntryTime(double timestamp)

        {

            if (timestamp <= 0d)

                return -1;



            try

            {

                double milliseconds = (DateTime.FromOADate(timestamp) - runtimeStartTime).TotalMilliseconds;

                if (milliseconds <= 0d)

                    return 0;

                return milliseconds >= int.MaxValue ? int.MaxValue : (int)milliseconds;

            }

            catch (ArgumentException)

            {

                return -1;

            }

        }

InjectionScript.Runtime.InjectionApiUO.QueueGumpControl

Выполняет показанные вызовы и обновления состояния.

Параметры: kind, id, value

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3123.

private void QueueGumpControl(string kind, int id, string value)

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

Вызовы: automation.QueueGumpControl, bridge.SetGumpValue.

Условия: bridge is IApiGumpAutomation automation.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

private void QueueGumpControl(string kind, int id, string value)

        {

            if (bridge is IApiGumpAutomation automation) automation.QueueGumpControl(kind, id, value);

            else bridge.SetGumpValue(-1, kind, id, value);

        }

InjectionScript.Runtime.InjectionApiUO.RegisterCharacterGetterAliases::IsDeadState

Эти функции создают регистрацию API; они не выполняются заново при каждом вызове команды.

Параметры: serial

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1017.

int IsDeadState(int serial)

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

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

Вызовы: bridge.Dead, bridge.IsDead.

Условия: serial <= 0.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

int IsDeadState(int serial)

            {

                if (serial <= 0)

                    return 0;

                return serial == bridge.Self ? bridge.Dead() : bridge.IsDead(serial);

            }

InjectionScript.Runtime.InjectionApiUO.SaveConfig

Выполняет показанные вызовы и обновления состояния.

Параметры: Параметров нет.

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5970.

public void SaveConfig()

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

Вызовы: bridge.SaveConfig.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

public void SaveConfig() => bridge.SaveConfig();

InjectionScript.Runtime.InjectionApiUO.Snap

Возвращает значение выражения ниже.

Параметры: Параметров нет.

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5920.

public int Snap()

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

Результат: bridge.Snap(null, 100, true).

Вызовы: bridge.Snap.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

public int Snap() => bridge.Snap(null, 100, true);

InjectionScript.Runtime.InjectionApiUO.Snap

Возвращает значение выражения ниже.

Параметры: name

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5921.

public int Snap(string name)

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

Результат: bridge.Snap(name, 100, true).

Вызовы: bridge.Snap.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

public int Snap(string name) => bridge.Snap(name, 100, true);

InjectionScript.Runtime.InjectionApiUO.StringArray

Возвращает значение выражения ниже.

Параметры: values

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:2514.

private static InjectionValue StringArray(IEnumerable<string> values)

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

Результат: new InjectionValue((values ?? Array.Empty<string>()).Select(value => new InjectionValue(value)).ToArray()).

Вызовы: (values ?? Array.Empty<string>()).Select(value => new InjectionValue(value)).ToArray, (values ?? Array.Empty<string>()).Select, Array.Empty<string>.

Внутренний код реализации, не самостоятельный скрипт.

private static InjectionValue StringArray(IEnumerable<string> values)

            => new InjectionValue((values ?? Array.Empty<string>()).Select(value => new InjectionValue(value)).ToArray());

InjectionScript.Runtime.InjectionApiUO.Timer

Возвращает значение выражения ниже.

Параметры: Параметров нет.

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5926.

public int Timer()

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

Результат: (int)Math.Max(0d, Math.Min(int.MaxValue, timeSource.SinceStart.TotalMilliseconds / 100d)).

Вызовы: Math.Max, Math.Min.

Внутренний код реализации, не самостоятельный скрипт.

public int Timer() => (int)Math.Max(0d, Math.Min(int.MaxValue, timeSource.SinceStart.TotalMilliseconds / 100d));

InjectionScript.Runtime.InjectionApiUO.ToBoolean

Проверяет условия ниже и возвращает показанный результат.

Параметры: value

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5105.

private static bool ToBoolean(InjectionValue value)

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

Результат: flag; NumberConversions.ToInt(value) != 0.

Вызовы: (value.String ?? string.Empty).Trim, bool.TryParse, NumberConversions.ToInt.

Условия: value.Kind == InjectionValueKind.String; bool.TryParse(text, out bool flag).

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

private static bool ToBoolean(InjectionValue value)

        {

            if (value.Kind == InjectionValueKind.String)

            {

                string text = (value.String ?? string.Empty).Trim();

                if (bool.TryParse(text, out bool flag))

                    return flag;

            }

            return NumberConversions.ToInt(value) != 0;

        }

InjectionScript.Runtime.InjectionApiUO.TryGetObject

Проверяет условия ниже и возвращает показанный результат.

Параметры: name, id

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3853.

public bool TryGetObject(string name, out int id)

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

Результат: true; false.

Вызовы: name.Equals, bridge.GetLastObject, bridge.GetLastContainer, objects.TryGet, NumberConversions.TryStr2Int.

Условия: name.Equals("finditem", StringComparison.OrdinalIgnoreCase) && bridge.FindItem != 0; name.Equals("self", StringComparison.OrdinalIgnoreCase); name.Equals("lastcorpse", StringComparison.OrdinalIgnoreCase); name.Equals("lasttarget", StringComparison.OrdinalIgnoreCase).

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

public bool TryGetObject(string name, out int id)

        {

            id = -1;

            if (name.Equals("finditem", StringComparison.OrdinalIgnoreCase) && bridge.FindItem != 0)

                id = bridge.FindItem;

            if (name.Equals("self", StringComparison.OrdinalIgnoreCase))

                id = bridge.Self;

            if (name.Equals("lastcorpse", StringComparison.OrdinalIgnoreCase))

                id = bridge.LastCorpse;

            if (name.Equals("lasttarget", StringComparison.OrdinalIgnoreCase))

                id = bridge.LastTarget;

            if (name.Equals("lastattack", StringComparison.OrdinalIgnoreCase))

                id = bridge.LastAttack;

            if (name.Equals("lastobject", StringComparison.OrdinalIgnoreCase))

                id = bridge.GetLastObject();

            if (name.Equals("lastcontainer", StringComparison.OrdinalIgnoreCase))

                id = bridge.GetLastContainer();

            if (name.Equals("laststatus", StringComparison.OrdinalIgnoreCase))

                id = bridge.LastStatus;

            if (name.Equals("backpack", StringComparison.OrdinalIgnoreCase))

                id = bridge.Backpack;



            if (objects.TryGet(name, out var value))

                id = value;



            if (NumberConversions.TryStr2Int(name, out value))

                id = value;



            if (id > -1)

                return true;



            id = 0;

            return false;

        }

InjectionScript.Runtime.InjectionApiUO.TryResolveClassRules

Проверяет условия ниже и возвращает показанный результат.

Параметры: mask, rules

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.ClassMasks.cs:98.

private bool TryResolveClassRules(InjectionValue mask, out EquipmentClassRule[] rules)

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

Результат: true; false.

Вызовы: (mask.String ?? string.Empty).Trim, raw.Equals, raw.Split(new[] { '|', ',', ';' }, StringSplitOptions.None) .Select(s => new InjectionValue(s.Trim())).ToArray, raw.Split(new[] { '|', ',', ';' }, StringSplitOptions.None) .Select, raw.Split, classRules.TryGetValue, (value.String ?? string.Empty).Trim, resolved.Contains.

Условия: mask.Kind == InjectionValueKind.Unit || mask.Kind == InjectionValueKind.Any || mask.Kind == InjectionValueKind.Integer && mask.Integer == -1; mask.Kind == InjectionValueKind.String; raw.Length == 0 || raw == "-1" || raw.Equals("any", StringComparison.OrdinalIgnoreCase) || raw.Equals("all", StringComparison.OrdinalIgnoreCase); mask.Kind != InjectionValueKind.Array || mask.Array.Length == 0.

Внутренний код реализации, не самостоятельный скрипт.

private bool TryResolveClassRules(InjectionValue mask, out EquipmentClassRule[] rules)
        {
            rules = null;
            if (mask.Kind == InjectionValueKind.Unit || mask.Kind == InjectionValueKind.Any
                || mask.Kind == InjectionValueKind.Integer && mask.Integer == -1) return true;
            if (mask.Kind == InjectionValueKind.String)
            {
                string raw = (mask.String ?? string.Empty).Trim();
                if (raw.Length == 0 || raw == "-1" || raw.Equals("any", StringComparison.OrdinalIgnoreCase)
                    || raw.Equals("all", StringComparison.OrdinalIgnoreCase)) return true;
                mask = new InjectionValue(raw.Split(new[] { '|', ',', ';' }, StringSplitOptions.None)
                    .Select(s => new InjectionValue(s.Trim())).ToArray());
            }
            if (mask.Kind != InjectionValueKind.Array || mask.Array.Length == 0) return false;
            var resolved = new List<EquipmentClassRule>();
            lock (classRulesSync)
            {
                foreach (InjectionValue value in mask.Array)
                {
                    if (value.Kind != InjectionValueKind.String
                        || !classRules.TryGetValue((value.String ?? string.Empty).Trim(), out EquipmentClassRule rule)) return false;
                    if (!resolved.Contains(rule)) resolved.Add(rule);
                }
            }
            rules = resolved.ToArray();
            return true;
        }

InjectionScript.Runtime.InjectionApiUO.UseType

Возвращает значение выражения ниже.

Параметры: type

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3974.

public int UseType(int type)

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

Результат: UseType(type, -1).

Вызовы: UseType.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

public int UseType(int type) => UseType(type, -1);

InjectionScript.Runtime.InjectionApiUO.WaitGump

Выполняет показанные вызовы и обновления состояния.

Параметры: triggerId

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3105.

public void WaitGump(string triggerId)

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

Вызовы: (triggerId ?? string.Empty).Trim, text.Contains, `text.Split(new[] { '|', ',' }, StringSplitOptions.RemoveEmptyEntries)

                .Select(value => new InjectionValue(value.Trim())).ToArray`, `text.Split(new[] { '|', ',' }, StringSplitOptions.RemoveEmptyEntries)

                .Select`, `text.Split`, `CompactWaitGump`, `WaitGump`, `NumberConversions.ToInt`.

Условия: text.Contains('|') || text.Contains(',').

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

public void WaitGump(string triggerId)

        {

            string text = (triggerId ?? string.Empty).Trim();

            if (text.Contains('|') || text.Contains(','))

            {

                InjectionValue[] chain = text.Split(new[] { '|', ',' }, StringSplitOptions.RemoveEmptyEntries)

                    .Select(value => new InjectionValue(value.Trim())).ToArray();

                CompactWaitGump(chain);

                return;

            }

            WaitGump(NumberConversions.ToInt(triggerId));

        }

InjectionScript.Runtime.InjectionApiUO.WaitTargetSelf

Выполняет показанные вызовы и обновления состояния.

Параметры: Параметров нет.

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:4181.

public void WaitTargetSelf()

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

Вызовы: WaitTargetObject.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

public void WaitTargetSelf() => WaitTargetObject("self");

InjectionScript.Runtime.InjectionApiUO.RegisterCharacterGetterAliases [GetPetsCurrent]

Вызов выполняет сохранённый delegate обработчика. Метод регистрации создаёт этот delegate при построении API.

Параметры: Параметров нет.

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1048.

Результат: bridge.Followers.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

() => bridge.Followers

InjectionScript.Runtime.InjectionApiUO.RegisterCharacterGetterAliases [GetPoisoned]

Вызов выполняет сохранённый delegate обработчика. Метод регистрации создаёт этот delegate при построении API.

Параметры: Параметров нет.

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1062.

serial

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

Результат: bridge.Poisoned(serial).

Вызовы: bridge.Poisoned.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

serial => bridge.Poisoned(serial)

InjectionScript.Runtime.InjectionApiUO.Register [NewMoveXY]

Вызов выполняет сохранённый delegate обработчика. Метод регистрации создаёт этот delegate при построении API.

Параметры: Параметров нет.

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:841.

values

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

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

Вызовы: CompactNewMoveXY.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

values => new InjectionValue(CompactNewMoveXY(values))

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:1007.

Результат: getter(bridge.Self).

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

() => getter(bridge.Self)

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:1007.

Результат: getter(bridge.Self).

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

() => getter(bridge.Self)

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.InjectionApiUO.RegisterCharacterGetterAliases

Возвращает значение выражения ниже.

Параметры: Параметров нет.

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1007.

Результат: getter(bridge.Self).

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

() => getter(bridge.Self)

InjectionScript.Runtime.InjectionRuntime.Checkpoint

Выполняет показанные вызовы и обновления состояния.

Параметры: Параметров нет.

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionRuntime.cs:34.

private void Checkpoint()

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

Вызовы: .Invoke, .ThrowIfCancellationRequested.

Внутренний код реализации, не самостоятельный скрипт.

private void Checkpoint(){cancellation?.Invoke()?.ThrowIfCancellationRequested();checkpoint?.Invoke();cancellation?.Invoke()?.ThrowIfCancellationRequested();}

InjectionScript.Runtime.InjectionValue.ConvertTo

Возвращает значение выражения ниже.

Параметры: targetKind

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionValue.cs:93.

internal object ConvertTo(InjectionValueKind targetKind)

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

Результат: this; (int)this; (double)this; (string)this; (InjectionValue[])this; (InjectionObject)this.

Внутренний код реализации, не самостоятельный скрипт.

internal object ConvertTo(InjectionValueKind targetKind)

        {

            switch (targetKind)

            {

                case InjectionValueKind.Any:

                    return this;

                case InjectionValueKind.Integer:

                    return (int)this;

                case InjectionValueKind.Decimal:

                    return (double)this;

                case InjectionValueKind.String:

                    return (string)this;

                case InjectionValueKind.Array:

                    return (InjectionValue[])this;

                case InjectionValueKind.Object:

                    return (InjectionObject)this;

                case InjectionValueKind.Unit:

                    return null;

                default:

                    throw new InvalidCastException($"Cannot convert {this.Kind} to {targetKind}.");

            }

        }

InjectionScript.Runtime.Metadata.NativeSubrutineExists

Возвращает значение выражения ниже.

Параметры: name, argumentCount

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/Metadata.cs:21.

public bool NativeSubrutineExists(string name,int argumentCount)

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

Результат: nativeSubrutines.Exists(name,argumentCount).

Вызовы: nativeSubrutines.Exists.

Вызовы:

Внутренний код реализации, не самостоятельный скрипт.

public bool NativeSubrutineExists(string name,int argumentCount) => nativeSubrutines.Exists(name,argumentCount);

InjectionScript.Runtime.NativeSubrutineMetadata.Exists

Возвращает значение выражения ниже.

Параметры: name, argumentCount

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/NativeSubrutineMetadata.cs:69.

internal bool Exists(string name, int argumentCount)

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

Результат: byName.TryGetValue(name, out var arities) && arities.ContainsKey(argumentCount).

Вызовы: byName.TryGetValue, arities.ContainsKey.

Внутренний код реализации, не самостоятельный скрипт.

internal bool Exists(string name, int argumentCount)
            => byName.TryGetValue(name, out var arities) && arities.ContainsKey(argumentCount);

InjectionScript.Runtime.State.NamedIgnoreLists.FilterFor

Возвращает значение выражения ниже.

Параметры: name

Источник: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/State/NamedIgnoreLists.cs:26.

public IgnoreTypeFilter FilterFor(string name)

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

Результат: !string.IsNullOrWhiteSpace(name) && lists.TryGetValue(name.Trim(), out var filter) ? filter : IgnoreTypeFilter.Empty.

Вызовы: string.IsNullOrWhiteSpace, lists.TryGetValue, name.Trim.

Внутренний код реализации, не самостоятельный скрипт.

public IgnoreTypeFilter FilterFor(string name)
        {
            lock (sync)
                return !string.IsNullOrWhiteSpace(name) && lists.TryGetValue(name.Trim(), out var filter) ? filter : IgnoreTypeFilter.Empty;
        }

Clone this wiki locally