Skip to content

RU Runtime Helpers 9

Codex edited this page Oct 12, 2026 · 1 revision

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

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

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

ClassicUO.CSharp.CSharpCallbacks.TryInvoke

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

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

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

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

Вызовы:

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

case "SetEvent": SetStateEvent(arguments); return true;

ClassicUO.CSharp.CSharpScriptGlobals.WaitAsync

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

Параметры: milliseconds

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

public async Task WaitAsync(int milliseconds)

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

Вызовы: ArgumentOutOfRangeException.ThrowIfNegative, Checkpoint, Math.Min, Task.Delay(slice, Cancellation).ConfigureAwait, Task.Delay.

Вызовы:

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

public async Task WaitAsync(int milliseconds)
    {
        ArgumentOutOfRangeException.ThrowIfNegative(milliseconds);
        Checkpoint();
        // Short slices allow Pause to suspend further script progress promptly.
        int remaining = milliseconds;
        while (remaining > 0)
        {
            int slice = Math.Min(remaining, 25);
            await Task.Delay(slice, Cancellation).ConfigureAwait(false);
            Checkpoint(); remaining -= slice;
        }
    }

ClassicUO.Configuration.ProfileManager.NewFromDefault

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

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

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

public static Profile NewFromDefault()

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

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

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

public static Profile NewFromDefault() => new Profile();

ClassicUO.Configuration.ProfileManager.SaveCurrentProfile

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

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

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

internal static void SaveCurrentProfile()

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

Вызовы: string.IsNullOrEmpty, Save.

Условия: CurrentProfile != null && !string.IsNullOrEmpty(ProfilePath).

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

internal static void SaveCurrentProfile()

        {

            if (CurrentProfile != null && !string.IsNullOrEmpty(ProfilePath))

            {

                Save(CurrentProfile, ProfilePath);

            }

        }

ClassicUO.Configuration.ProfileManager.TryResolveProfileCharacter

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

Параметры: displayServerName, profileName, characterName

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

`internal static bool TryResolveProfileCharacter(

        string displayServerName, string profileName, out string characterName)`

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

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

Вызовы: string.IsNullOrWhiteSpace, EncodePathSegment, displayServerName.Trim, string.IsNullOrEmpty, string.Equals, Path.GetFileName, Path.GetDirectoryName, Path.Combine.

Условия: string.IsNullOrWhiteSpace(displayServerName) || string.IsNullOrWhiteSpace(profileName); `CurrentProfile != null && !string.IsNullOrEmpty(ProfilePath)

            && string.Equals(CurrentProfile.ServerName, displayServerName.Trim(), StringComparison.OrdinalIgnoreCase)`; `!Directory.Exists(directory) || !File.Exists(Path.Combine(directory, "profile.json"))`; `File.Exists(metadataPath)`.

Вызовы:

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

internal static bool TryResolveProfileCharacter(

            string displayServerName, string profileName, out string characterName)

        {

            characterName = string.Empty;

            if (string.IsNullOrWhiteSpace(displayServerName) || string.IsNullOrWhiteSpace(profileName))

                return false;



            string serverDirectory = EncodePathSegment(displayServerName.Trim());

            if (CurrentProfile != null && !string.IsNullOrEmpty(ProfilePath)

                && string.Equals(CurrentProfile.ServerName, displayServerName.Trim(), StringComparison.OrdinalIgnoreCase))

                serverDirectory = Path.GetFileName(Path.GetDirectoryName(ProfilePath));

            string directory = Path.Combine(RootPath, serverDirectory, EncodePathSegment(profileName.Trim()));

            if (!Directory.Exists(directory) || !File.Exists(Path.Combine(directory, "profile.json")))

                return false;



            try

            {

                string metadataPath = Path.Combine(directory, ProfileCharacterNameFileName);

                if (File.Exists(metadataPath))

                    characterName = File.ReadAllText(metadataPath, Encoding.UTF8).Trim();

            }

            catch (IOException) { }

            catch (UnauthorizedAccessException) { }



            return true;

        }

ClassicUO.Game.GameActions.ChangeStatLock

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

Параметры: stat, state

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

public static void ChangeStatLock(byte stat, Lock state)

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

Вызовы: Socket.Send_StatLockStateRequest.

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

public static void ChangeStatLock(byte stat, Lock state)
        {
            Socket.Send_StatLockStateRequest(stat, state);
        }

ClassicUO.Game.GameActions.RequestQuestMenu

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

Параметры: world

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

public static void RequestQuestMenu(World world)

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

Вызовы: Socket.Send_QuestMenuRequest.

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

public static void RequestQuestMenu(World world)
        {
            Socket.Send_QuestMenuRequest(world);
        }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.BuildFindIdentityMask

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

Параметры: values

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

private static HashSet<ushort> BuildFindIdentityMask(int[] values)

Результат: HashSet<ushort>.

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

Вызовы: Array.Empty<int>, mask.Clear, mask.Add.

Условия: value < 0 || value == 0xFFFF.

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

private static HashSet<ushort> BuildFindIdentityMask(int[] values)

        {

            var mask = new HashSet<ushort>();

            foreach (int value in values ?? Array.Empty<int>())

            {

                if (value < 0 || value == 0xFFFF)

                {

                    // A wildcard is one alternative, so it makes the entire

                    // dimension unrestricted even when concrete values coexist.

                    mask.Clear();

                    break;

                }

                mask.Add((ushort)value);

            }

            return mask;

        }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.CancelTarget

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

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

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

public void CancelTarget()

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

Вызовы: Invoke.

Вызовы:

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

public void CancelTarget() => Invoke(() =>

        {

            _manager.ClearPendingTargets();

            _world.TargetManager.CancelTarget();

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetAutoReconnect

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

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

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

public int GetAutoReconnect()

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

Вызовы: Invoke.

Вызовы:

  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => (_world.SessionControl?.AutoReconnect ?? Settings.GlobalSettings.Reconnect) ? 1 : 0). Кандидаты перегрузки: источник не подтверждает выбор конкретного варианта.
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => (_world.SessionControl?.AutoReconnect ?? Settings.GlobalSettings.Reconnect) ? 1 : 0). Кандидаты перегрузки: источник не подтверждает выбор конкретного варианта.

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

public int GetAutoReconnect() => Invoke(() =>

            (_world.SessionControl?.AutoReconnect ?? Settings.GlobalSettings.Reconnect) ? 1 : 0);

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetEquipment

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

Параметры: mobileId

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

public int[] GetEquipment(int mobileId)

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

Вызовы: Invoke.

Вызовы:

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

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

public int[] GetEquipment(int mobileId) => Invoke(() => _world.Items.Values

            .Where(item => !item.IsDestroyed && item.Container == (uint)mobileId && item.Layer != Layer.Invalid)

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

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetLastObject

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

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

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

public int GetLastObject()

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

Результат: Invoke(() => (int)_world.LastObject).

Вызовы: Invoke.

Вызовы:

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

public int GetLastObject() => Invoke(() => (int)_world.LastObject);

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetPauseScriptOnDisconnectStatus

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

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

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

public int GetPauseScriptOnDisconnectStatus()

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

Результат: _manager.PauseScriptsOnDisconnect ? 1 : 0.

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

public int GetPauseScriptOnDisconnectStatus() => _manager.PauseScriptsOnDisconnect ? 1 : 0;

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetScriptName

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

Параметры: index

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

public string GetScriptName(int index)

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

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

Вызовы: _manager.GetScriptName.

Вызовы:

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

public string GetScriptName(int index) => _manager.GetScriptName(index);

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetStaticArt

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

Параметры: objType, hue

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

public int[] GetStaticArt(int objType, int hue)

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

Вызовы: Invoke.

Вызовы:

  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => { if (objType < 0 || objType > ushort.MaxValue || Client.UO.FileManager?.Arts?.File == null) return Array.Empty<int>(); uint artIndex = unchecked((uint)objType) + ArtLoader.MAX_LAND_DATA_INDEX_COUNT; ArtInfo artInfo = Client.UO.FileManager.Arts.GetArt(artIndex); if (artInfo.Pixels.IsEmpty || artInfo.Width <= 0 || artInfo.Height <= 0) return Array.Empty<int>(); int width = artInfo.Width; int height = artInfo.Height; int rowStride = (width * 3 + 3) & ~3; int pixelBytes = rowStride * height; int fileSize = 14 + 40 + pixelBytes; byte[] bmp = new byte[fileSize]; static void Write16(byte[] buffer, int offset, int value) { buffer[offset] = (byte)value; buffer[offset + 1] = (byte)(value >> 8); } static void Write32(byte[] buffer, int offset, int value) { buffer[offset] = (byte)value; buffer[offset + 1] = (byte)(value >> 8); buffer[offset + 2] = (byte)(value >> 16); buffer[offset + 3] = (byte)(value >> 24); } bmp[0] = (byte)'B'; bmp[1] = (byte)'M'; Write32(bmp, 2, fileSize); Write32(bmp, 10, 54); Write32(bmp, 14, 40); Write32(bmp, 18, width); Write32(bmp, 22, height); Write16(bmp, 26, 1); Write16(bmp, 28, 24); Write32(bmp, 34, pixelBytes); ushort appliedHue = unchecked((ushort)Math.Clamp(hue, 0, ushort.MaxValue)); bool partialHue = objType < Client.UO.FileManager.TileData.StaticData.Length && Client.UO.FileManager.TileData.StaticData[objType].IsPartialHue; int output = 54; for (int y = height - 1; y >= 0; y--) { int rowStart = output; for (int x = 0; x < width; x++) { uint pixel = artInfo.Pixels[y * width + x]; if (pixel != 0 && appliedHue != 0) { ushort sourceColor = HuesHelper.Color32To16(pixel); pixel = partialHue ? Client.UO.FileManager.Hues.GetPartialHueColor(sourceColor, appliedHue) : Client.UO.FileManager.Hues.GetColor(sourceColor, appliedHue); pixel |= 0xFF_00_00_00; } var (b, g, r, _) = HuesHelper.GetBGRA(pixel); bmp[output++] = b; bmp[output++] = g; bmp[output++] = r; } output = rowStart + rowStride; } return bmp.Select(value => (int)value).ToArray(); }). Кандидаты перегрузки: источник не подтверждает выбор конкретного варианта.
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => { if (objType < 0 || objType > ushort.MaxValue || Client.UO.FileManager?.Arts?.File == null) return Array.Empty<int>(); uint artIndex = unchecked((uint)objType) + ArtLoader.MAX_LAND_DATA_INDEX_COUNT; ArtInfo artInfo = Client.UO.FileManager.Arts.GetArt(artIndex); if (artInfo.Pixels.IsEmpty || artInfo.Width <= 0 || artInfo.Height <= 0) return Array.Empty<int>(); int width = artInfo.Width; int height = artInfo.Height; int rowStride = (width * 3 + 3) & ~3; int pixelBytes = rowStride * height; int fileSize = 14 + 40 + pixelBytes; byte[] bmp = new byte[fileSize]; static void Write16(byte[] buffer, int offset, int value) { buffer[offset] = (byte)value; buffer[offset + 1] = (byte)(value >> 8); } static void Write32(byte[] buffer, int offset, int value) { buffer[offset] = (byte)value; buffer[offset + 1] = (byte)(value >> 8); buffer[offset + 2] = (byte)(value >> 16); buffer[offset + 3] = (byte)(value >> 24); } bmp[0] = (byte)'B'; bmp[1] = (byte)'M'; Write32(bmp, 2, fileSize); Write32(bmp, 10, 54); Write32(bmp, 14, 40); Write32(bmp, 18, width); Write32(bmp, 22, height); Write16(bmp, 26, 1); Write16(bmp, 28, 24); Write32(bmp, 34, pixelBytes); ushort appliedHue = unchecked((ushort)Math.Clamp(hue, 0, ushort.MaxValue)); bool partialHue = objType < Client.UO.FileManager.TileData.StaticData.Length && Client.UO.FileManager.TileData.StaticData[objType].IsPartialHue; int output = 54; for (int y = height - 1; y >= 0; y--) { int rowStart = output; for (int x = 0; x < width; x++) { uint pixel = artInfo.Pixels[y * width + x]; if (pixel != 0 && appliedHue != 0) { ushort sourceColor = HuesHelper.Color32To16(pixel); pixel = partialHue ? Client.UO.FileManager.Hues.GetPartialHueColor(sourceColor, appliedHue) : Client.UO.FileManager.Hues.GetColor(sourceColor, appliedHue); pixel |= 0xFF_00_00_00; } var (b, g, r, _) = HuesHelper.GetBGRA(pixel); bmp[output++] = b; bmp[output++] = g; bmp[output++] = r; } output = rowStart + rowStride; } return bmp.Select(value => (int)value).ToArray(); }). Кандидаты перегрузки: источник не подтверждает выбор конкретного варианта.
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetStaticArt::Write32: Write32(bmp, 2, fileSize).
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetStaticArt::Write32: Write32(bmp, 10, 54).
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetStaticArt::Write32: Write32(bmp, 14, 40).
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetStaticArt::Write32: Write32(bmp, 18, width).
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetStaticArt::Write32: Write32(bmp, 22, height).
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetStaticArt::Write16: Write16(bmp, 26, 1).
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetStaticArt::Write16: Write16(bmp, 28, 24).
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetStaticArt::Write32: Write32(bmp, 34, pixelBytes).

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

public int[] GetStaticArt(int objType, int hue) => Invoke(() =>
        {
            if (objType < 0 || objType > ushort.MaxValue || Client.UO.FileManager?.Arts?.File == null)
                return Array.Empty<int>();

            uint artIndex = unchecked((uint)objType) + ArtLoader.MAX_LAND_DATA_INDEX_COUNT;
            ArtInfo artInfo = Client.UO.FileManager.Arts.GetArt(artIndex);
            if (artInfo.Pixels.IsEmpty || artInfo.Width <= 0 || artInfo.Height <= 0)
                return Array.Empty<int>();

// …
                    if (pixel != 0 && appliedHue != 0)
// …
            return bmp.Select(value => (int)value).ToArray();
// …

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

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetTooltipRecords::ReadRecords

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

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

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

(int ClilocID, string[] Parameters)[] ReadRecords()

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

Результат: Invoke(() => _world.OPL.GetRecords(serial)).

Вызовы: Invoke.

Вызовы:

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

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

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Matches

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

Параметры: text, patterns

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

private static bool Matches(string text, string[] patterns)

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

Результат: Matches(text, patterns, true).

Вызовы: Matches.

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

private static bool Matches(string text, string[] patterns) => Matches(text, patterns, true);

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.PrintClientMessage

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

Параметры: hue, message

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

private void PrintClientMessage(ushort hue, string message)

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

Вызовы: Invoke.

Вызовы:

  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => { using var journalContext = new JournalMessageContext("script"); string text = FormatScriptPrintText(message); // Use ClassicUO's native message pipeline. A Regular message with no // parent is the same route used by the original working Injection // client message: SystemChatControl receives the lower-left viewport // line and GameScene records the same event in the journal. GameActions.Print(_world, text, hue, SCRIPT_PRINT_MESSAGE_TYPE, 3, true); _manager.AppendIdeOutput(_scriptKey, "UO.Print: " + text); // UO.CharPrint remains the separate command for overhead text. ReportStatus("UO.Print dispatched through the native ClassicUO lower-left/journal message route"); }). Кандидаты перегрузки: источник не подтверждает выбор конкретного варианта.
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => { using var journalContext = new JournalMessageContext("script"); string text = FormatScriptPrintText(message); // Use ClassicUO's native message pipeline. A Regular message with no // parent is the same route used by the original working Injection // client message: SystemChatControl receives the lower-left viewport // line and GameScene records the same event in the journal. GameActions.Print(_world, text, hue, SCRIPT_PRINT_MESSAGE_TYPE, 3, true); _manager.AppendIdeOutput(_scriptKey, "UO.Print: " + text); // UO.CharPrint remains the separate command for overhead text. ReportStatus("UO.Print dispatched through the native ClassicUO lower-left/journal message route"); }). Кандидаты перегрузки: источник не подтверждает выбор конкретного варианта.
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.FormatScriptPrintText: FormatScriptPrintText(message).
  • ClassicUO.Game.GameActions.Print: GameActions.Print(_world, text, hue, SCRIPT_PRINT_MESSAGE_TYPE, 3, true).
  • ClassicUO.Game.Managers.YokoInjectionManager.AppendIdeOutput: _manager.AppendIdeOutput(_scriptKey, "UO.Print: " + text).
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.ReportStatus: ReportStatus("UO.Print dispatched through the native ClassicUO lower-left/journal message route").

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

private void PrintClientMessage(ushort hue, string message) => Invoke(() =>

        {

            using var journalContext = new JournalMessageContext("script");

            string text = FormatScriptPrintText(message);



            // Use ClassicUO's native message pipeline. A Regular message with no

            // parent is the same route used by the original working Injection

            // client message: SystemChatControl receives the lower-left viewport

            // line and GameScene records the same event in the journal.

            GameActions.Print(_world, text, hue, SCRIPT_PRINT_MESSAGE_TYPE, 3, true);

            _manager.AppendIdeOutput(_scriptKey, "UO.Print: " + text);



            // UO.CharPrint remains the separate command for overhead text.

            ReportStatus("UO.Print dispatched through the native ClassicUO lower-left/journal message route");

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.PrintInteractiveResult

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

Параметры: text

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

private void PrintInteractiveResult(string text)

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

Вызовы: GameActions.Print, _manager.AppendIdeOutput, ReportStatus.

Вызовы:

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

private void PrintInteractiveResult(string text)

        {

            GameActions.Print(_world, text ?? string.Empty, DEFAULT_SCRIPT_PRINT_HUE,

                SCRIPT_PRINT_MESSAGE_TYPE, 3, true);

            _manager.AppendIdeOutput(_scriptKey, text ?? string.Empty);

            ReportStatus(text ?? string.Empty);

        }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.RemoveMapFigure

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

Параметры: figureId

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

public int RemoveMapFigure(int figureId)

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

Результат: Invoke(() => WorldMapGump.RemoveYokoMapFigure(figureId)).

Вызовы: Invoke.

Вызовы:

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

public int RemoveMapFigure(int figureId) => Invoke(() => WorldMapGump.RemoveYokoMapFigure(figureId));

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.RequestInteractiveGrabTarget

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

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

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

public int RequestInteractiveGrabTarget()

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

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

Вызовы: Invoke.

Условия: !_interactiveCommands.

Вызовы:

  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => { _world.TargetManager.SetTargeting(selected => { if (selected is not Item item || item.IsDestroyed) { PrintInteractiveResult("UO.Grab: select an available item."); return; } if (_world.Player == null) { PrintInteractiveResult("UO.Grab: the character is not available."); return; } uint destination = receivingContainer > 0 ? unchecked((uint)receivingContainer) : _world.Player?.FindItemByLayer(Layer.Backpack)?.Serial ?? 0; GameActions.GrabItem(_world, item.Serial, item.Amount, destination); PrintInteractiveResult($"UO.Grab: grabbed 0x{item.Serial:X8}, amount={item.Amount}."); }, 0, TargetType.Neutral); PrintInteractiveResult("UO.Grab: target an item to grab."); return 1; }). Кандидаты перегрузки: источник не подтверждает выбор конкретного варианта.
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => { _world.TargetManager.SetTargeting(selected => { if (selected is not Item item || item.IsDestroyed) { PrintInteractiveResult("UO.Grab: select an available item."); return; } if (_world.Player == null) { PrintInteractiveResult("UO.Grab: the character is not available."); return; } uint destination = receivingContainer > 0 ? unchecked((uint)receivingContainer) : _world.Player?.FindItemByLayer(Layer.Backpack)?.Serial ?? 0; GameActions.GrabItem(_world, item.Serial, item.Amount, destination); PrintInteractiveResult($"UO.Grab: grabbed 0x{item.Serial:X8}, amount={item.Amount}."); }, 0, TargetType.Neutral); PrintInteractiveResult("UO.Grab: target an item to grab."); return 1; }). Кандидаты перегрузки: источник не подтверждает выбор конкретного варианта.
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.PrintInteractiveResult: PrintInteractiveResult("UO.Grab: select an available item.").
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.PrintInteractiveResult: PrintInteractiveResult("UO.Grab: the character is not available.").
  • ClassicUO.Game.GameActions.GrabItem: GameActions.GrabItem(_world, item.Serial, item.Amount, destination).
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.PrintInteractiveResult: PrintInteractiveResult($"UO.Grab: grabbed 0x{item.Serial:X8}, amount={item.Amount}.").
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.PrintInteractiveResult: PrintInteractiveResult("UO.Grab: target an item to grab.").

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

public int RequestInteractiveGrabTarget()

        {

            if (!_interactiveCommands)

                return 0;



            int receivingContainer = _csharpState == null ? 0 : State.ReceivingContainer;

            return Invoke(() =>

            {

                _world.TargetManager.SetTargeting(selected =>

                {

                    if (selected is not Item item || item.IsDestroyed)

                    {

                        PrintInteractiveResult("UO.Grab: select an available item.");

                        return;

                    }



                    if (_world.Player == null)

                    {

                        PrintInteractiveResult("UO.Grab: the character is not available.");

                        return;

                    }



                    uint destination = receivingContainer > 0

                        ? unchecked((uint)receivingContainer)

                        : _world.Player?.FindItemByLayer(Layer.Backpack)?.Serial ?? 0;

                    GameActions.GrabItem(_world, item.Serial, item.Amount, destination);

                    PrintInteractiveResult($"UO.Grab: grabbed 0x{item.Serial:X8}, amount={item.Amount}.");

                }, 0, TargetType.Neutral);

                PrintInteractiveResult("UO.Grab: target an item to grab.");

                return 1;

            });

        }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SendGumpSelect

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

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

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

public int SendGumpSelect(int serial, int gumpId, int triggerId, int timeoutMs)

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

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

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

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

Вызовы:

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

public int SendGumpSelect(int serial, int gumpId, int triggerId, int timeoutMs)

        {

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

            do

            {

                int sent = Invoke(() => SendGumpButtonUnsafe(ServerGumpsUnsafe().LastOrDefault(item =>

                    (serial is 0 or -1 || item.LocalSerial == unchecked((uint)serial))

                    && (gumpId is 0 or -1 || item.ServerSerial == unchecked((uint)gumpId))), triggerId, string.Empty));

                if (sent != 0)

                    return sent;

                if (DateTime.UtcNow >= deadline)

                    break;

                Wait(20);

            }

            while (true);



            Error($"UO.SendGumpSelect: gump serial=0x{serial:X8}, id=0x{gumpId:X8} was not found");

            return 0;

        }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SetAutoBuyDelay

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

Параметры: value

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

public void SetAutoBuyDelay(int value)

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

Вызовы: Invoke.

Вызовы:

  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => { if (ProfileManager.CurrentProfile == null) return; ProfileManager.CurrentProfile.BackNewbieAutoBuyDelay = Math.Clamp(value, 0, ushort.MaxValue); ProfileManager.SaveCurrentProfile(); }). Кандидаты перегрузки: источник не подтверждает выбор конкретного варианта.
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => { if (ProfileManager.CurrentProfile == null) return; ProfileManager.CurrentProfile.BackNewbieAutoBuyDelay = Math.Clamp(value, 0, ushort.MaxValue); ProfileManager.SaveCurrentProfile(); }). Кандидаты перегрузки: источник не подтверждает выбор конкретного варианта.
  • ClassicUO.Configuration.ProfileManager.SaveCurrentProfile: ProfileManager.SaveCurrentProfile().

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

public void SetAutoBuyDelay(int value) => Invoke(() =>

        {

            if (ProfileManager.CurrentProfile == null) return;

            ProfileManager.CurrentProfile.BackNewbieAutoBuyDelay = Math.Clamp(value, 0, ushort.MaxValue);

            ProfileManager.SaveCurrentProfile();

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SetFindDistance

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

Параметры: distance

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

public void SetFindDistance(int distance)

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

Вызовы: Math.Clamp.

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

public void SetFindDistance(int distance) => State.FindDistance = Math.Clamp(distance, 0, 255);

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SetGrabDelay

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

Параметры: valueInt

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

public void SetGrabDelay(int valueInt)

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

Вызовы: Math.Clamp.

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

public void SetGrabDelay(int valueInt) => State.GrabDelay = Math.Clamp(valueInt, 0, 60_000);

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Terminate

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

Параметры: subrutineName

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

public void Terminate(string subrutineName)

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

Вызовы: _manager.TerminateProcedures, _cancellationToken.ThrowIfCancellationRequested.

Вызовы:

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

public void Terminate(string subrutineName)

        {

            // Control operations must not wait on the game thread or a paused worker.

            _manager.TerminateProcedures(subrutineName);

            _cancellationToken.ThrowIfCancellationRequested();

        }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.UpdateObject

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

Параметры: id

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

public void UpdateObject(int id)

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

Вызовы: Invoke.

Вызовы:

  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => { if (_world.Mobiles.Get((uint)id) != null) { GameActions.RequestMobileStatus(_world, (uint)id, true); } else if (_world.Items.Get((uint)id) != null) { GameActions.SingleClick(_world, (uint)id); } }). Кандидаты перегрузки: источник не подтверждает выбор конкретного варианта.
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => { if (_world.Mobiles.Get((uint)id) != null) { GameActions.RequestMobileStatus(_world, (uint)id, true); } else if (_world.Items.Get((uint)id) != null) { GameActions.SingleClick(_world, (uint)id); } }). Кандидаты перегрузки: источник не подтверждает выбор конкретного варианта.
  • ClassicUO.Game.GameActions.RequestMobileStatus: GameActions.RequestMobileStatus(_world, (uint)id, true).
  • ClassicUO.Game.GameActions.SingleClick: GameActions.SingleClick(_world, (uint)id).

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

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

        {

            if (_world.Mobiles.Get((uint)id) != null)

            {

                GameActions.RequestMobileStatus(_world, (uint)id, true);

            }

            else if (_world.Items.Get((uint)id) != null)

            {

                GameActions.SingleClick(_world, (uint)id);

            }

        });

ClassicUO.Game.Managers.YokoInjectionManager.IsSelectedAutoloadExplicitlyUnloaded

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

Параметры: path

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

internal bool IsSelectedAutoloadExplicitlyUnloaded(string path)

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

Результат: _selectedAutoloadUnloaded.Contains(path).

Вызовы: _selectedAutoloadUnloaded.Contains.

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

internal bool IsSelectedAutoloadExplicitlyUnloaded(string path)

    { lock (_selectedAutoloadActionLock) return _selectedAutoloadUnloaded.Contains(path); }

ClassicUO.Game.Managers.YokoInjectionManager.ReleaseObjectSelection

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

Параметры: callback

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

internal void ReleaseObjectSelection(Action<GameObjects.GameObject> callback)

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

Вызовы: EnqueueMainThreadAction.

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

internal void ReleaseObjectSelection(Action<GameObjects.GameObject> callback)
            => EnqueueMainThreadAction(() => _world.TargetManager.ReleaseCallbackTarget(callback));

ClassicUO.Game.UI.Gumps.Gump.ChangePage

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

Параметры: pageIndex

Источник: Project_Full/src/ClassicUO.Client/Game/UI/Gumps/Gump.cs:208.

public override void ChangePage(int pageIndex)

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

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

public override void ChangePage(int pageIndex)
        {
            // For a gump, Page is the page that is drawing.
            ActivePage = pageIndex;
        }

ClassicUO.Game.World.GetOrCreateItem

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

Параметры: serial

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

public Item GetOrCreateItem(uint serial)

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

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

Вызовы: Items.Get, Items.Remove, Item.Create, Items.Add.

Условия: item != null && item.IsDestroyed; item == null.

Вызовы:

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

public Item GetOrCreateItem(uint serial)

        {

            Item item = Items.Get(serial);



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

            {

                Items.Remove(serial);

                item = null;

            }



            if (item == null /*|| item.IsDestroyed*/)

            {

                item = Item.Create(this, serial);

                Items.Add(item);

            }



            return item;

        }

InjectionScript.Runtime.InjectionApiUO.AddMaskValue

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

Параметры: result, value, invalid, unrestricted

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

private static void AddMaskValue(HashSet<int> result, InjectionValue value, ref bool invalid, ref bool unrestricted)

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

Вызовы: string.IsNullOrWhiteSpace, text.Split, rawToken.Trim, token.Equals, NumberConversions.TryStr2Int, result.Add, NumberConversions.ToInt.

Условия: value.Kind == InjectionValueKind.Array; value.Kind == InjectionValueKind.String; string.IsNullOrWhiteSpace(text); token.Equals("any", StringComparison.OrdinalIgnoreCase) || token == "-1".

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

private static void AddMaskValue(HashSet<int> result, InjectionValue value, ref bool invalid, ref bool unrestricted)

        {

            // Mask entries are scalar. A nested array is not the literal 0;

            // reject it without recursively walking a potentially cyclic array.

            if (value.Kind == InjectionValueKind.Array)

            {

                invalid = true;

                return;

            }

            if (value.Kind == InjectionValueKind.String)

            {

                string text = value.String ?? string.Empty;

                if (string.IsNullOrWhiteSpace(text)) unrestricted = true;

                foreach (string rawToken in text.Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries))

                {

                    string token = rawToken.Trim();

                    if (token.Equals("any", StringComparison.OrdinalIgnoreCase) || token == "-1")

                    {

                        unrestricted = true;

                        continue;

                    }

                    if (NumberConversions.TryStr2Int(token, out int parsed))

                    {

                        if (parsed >= 0 && parsed != 0xFFFF)

                            result.Add(parsed);

                        else

                            unrestricted = true;

                    }

                    else

                    {

                        // Invalid mask tokens are ignored; a fully invalid mask matches nothing.

                        invalid = true;

                    }

                }

                return;

            }



            int number = NumberConversions.ToInt(value);

            if (number >= 0 && number != 0xFFFF)

                result.Add(number);

            else

                unrestricted = true;

        }

InjectionScript.Runtime.InjectionApiUO.AddObject

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

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

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

public void AddObject(string name, int id)

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

Вызовы: objects.Set.

Вызовы:

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

public void AddObject(string name, int id)

            => objects.Set(name, id);

InjectionScript.Runtime.InjectionApiUO.Attack

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

Параметры: id

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

public void Attack(int id)

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

Вызовы: bridge.Attack.

Вызовы:

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

public void Attack(int id) => bridge.Attack(id);

InjectionScript.Runtime.InjectionApiUO.BuildWorldCell

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

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

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

private InjectionValue BuildWorldCell(int x, int y, int map, bool includeObjects)

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

Результат: new InjectionValue(Array.Empty<InjectionValue>()); new InjectionValue(result.ToArray()).

Вызовы: Array.Empty<InjectionValue>, bridge.GetLandscapeTile, Array.Empty<int>, result.Add, BuildWorldTileRecord, bridge.GetStaticTiles, bridge.GetWorldItems, bridge.GetX.

Условия: map != bridge.WorldNumber; land.Length >= 2; includeObjects; bridge.GetX(serial) == x && bridge.GetY(serial) == y.

Вызовы:

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

private InjectionValue BuildWorldCell(int x, int y, int map, bool includeObjects)

        {

            if (map != bridge.WorldNumber)

                return new InjectionValue(Array.Empty<InjectionValue>());

            var result = new List<InjectionValue>();

            int[] land = bridge.GetLandscapeTile(x, y, map) ?? Array.Empty<int>();

            if (land.Length >= 2)

                result.Add(BuildWorldTileRecord("land", 0, land[0], x, y, land[1], 0, 0));



            int[] statics = bridge.GetStaticTiles(x, y, map) ?? Array.Empty<int>();

            for (int offset = 0; offset + 2 < statics.Length; offset += 3)

                result.Add(BuildWorldTileRecord("static", 0, statics[offset], x, y, statics[offset + 1], statics[offset + 2], 1));



            if (includeObjects)

            {

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

                    if (bridge.GetX(serial) == x && bridge.GetY(serial) == y)

                        result.Add(BuildWorldTileRecord("object", serial, bridge.GetGraphics(serial), x, y,

                            bridge.GetZ(serial), bridge.GetColor(serial), 1));

            }

            return new InjectionValue(result.ToArray());

        }

InjectionScript.Runtime.InjectionApiUO.CompactGrab

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

Параметры: values

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

private int CompactGrab(InjectionValue[] values)

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

Результат: Grab(); 0; CompactMoveItem(new[] { new InjectionValue(id), new InjectionValue(amount), destination }).

Вызовы: Grab, NumberConversions.ToInt, GetObject, CompactMoveItem, ConvertMoveDestination, bridge.GetX, bridge.GetY, bridge.GetZ.

Условия: values == null || values.Length == 0; values.Length > 4; id == 0; values.Length >= 3.

Вызовы:

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

private int CompactGrab(InjectionValue[] values)

        {

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

                return Grab();

            if (values.Length > 4)

                throw new NativeSubrutineException("UO.Grab accepts item; amount,item; or amount,item,container[,timeout].");



            // Preserve the historical one-argument form: Grab(item) means one item.

            int amount = values.Length == 1 ? 1 : NumberConversions.ToInt(values[0]);

            InjectionValue item = values.Length == 1 ? values[0] : values[1];

            int id = GetObject(item);

            if (id == 0)

                return 0;



            InjectionValue destination;

            if (values.Length >= 3)

                destination = values[2];

            else

            {

                int receiving = state.ReceivingContainer > 0 ? state.ReceivingContainer : bridge.Backpack;

                destination = new InjectionValue(receiving);

            }



            if (values.Length < 4)

                return CompactMoveItem(new[] { new InjectionValue(id), new InjectionValue(amount), destination });



            int targetContainer = ConvertMoveDestination(destination);

            bool ground = targetContainer == 0;

            int x = ground ? bridge.GetX(bridge.Self) : 0xFFFF;

            int y = ground ? bridge.GetY(bridge.Self) : 0xFFFF;

            int z = ground ? bridge.GetZ(bridge.Self) : 0;

            return CompactMoveItem(new[]

            {

                new InjectionValue(id), new InjectionValue(amount), destination,

                new InjectionValue(x), new InjectionValue(y), new InjectionValue(z),

                values[3], InjectionValue.True

            });

        }

InjectionScript.Runtime.InjectionApiUO.DeleteJournal

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

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

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

public void DeleteJournal()

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

Вызовы: bridge.DeleteJournal, SelectJournalEntry.

Вызовы:

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

public void DeleteJournal()

        {

            bridge.DeleteJournal();

            SelectJournalEntry(null);

        }

InjectionScript.Runtime.InjectionApiUO.Equip

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

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

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

public int Equip(string layer, int id)

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

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

Вызовы: bridge.Equip, ConvertLayer.

Вызовы:

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

public int Equip(string layer, int id) => bridge.Equip(ConvertLayer(layer), id);

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

Результат: InjectionValue.Zero; new InjectionValue(id).

Условия: !TryMapFigureArg(0, out int[] figure, out string figureText); bridge.SetMapFigure(id, figure[0], figure[1], figure[2], figure[3], figure[4], figure[5], figure[6], figure[7], figure[8], figure[9], figureText) == 0.

Вызовы:

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

case "addfigure":

                {

                    if (!TryMapFigureArg(0, out int[] figure, out string figureText))

                        return InjectionValue.Zero;

                    int id = state.NextMapFigureId++;

                    if (bridge.SetMapFigure(id, figure[0], figure[1], figure[2], figure[3], figure[4], figure[5], figure[6], figure[7], figure[8], figure[9], figureText) == 0)

                        return InjectionValue.Zero;

                    state.MapFigures[id] = SerializeMapFigure(figure, figureText);

                    return new InjectionValue(id);

                }

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "autobuy":

                    bridge.SetAutoBuyRule(Arg(0), Arg(1), Arg(2), 0, string.Empty); return InjectionValue.Unit;

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "closeclientuiwindow": bridge.CloseClientWindow(Arg(0), Arg(1)); return InjectionValue.Unit;

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

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

Вызовы:

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

case "dropcheckcoord":

                    if (arguments.Length > 0) state.DropCheckCoord = Arg(0) != 0 ? 1 : 0;

                    return new InjectionValue(state.DropCheckCoord);

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "getclilocbyid":

                    return new InjectionValue(bridge.GetClilocById(Arg(0), StringArrayArg(1)));

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

Результат: GumpLinesResult(bridge.GetGumpFullLines(Arg(0))).

Вызовы:

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

case "getgumpfulllines": return GumpLinesResult(bridge.GetGumpFullLines(Arg(0)));

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "getgumpid": return new InjectionValue(bridge.GetGumpId(Arg(0)));

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "getname":

                case "charname": return new InjectionValue(bridge.GetName(Arg(0, bridge.Self)));

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "getscriptstate": return new InjectionValue(bridge.GetScriptState(Arg(0)));

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "getscriptscount": return new InjectionValue(bridge.GetScriptsCount());

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

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

case "getwalkmounttimer": return new InjectionValue(state.WalkMountTimer);

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "iswarmode": return new InjectionValue(arguments.Length > 0 ? bridge.IsWarMode(Arg(0)) : WarMode());

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "isyellowhits": return new InjectionValue(bridge.GetYellowBar(Arg(0, bridge.Self)));

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "lastjournalmessage": return new InjectionValue(GetJournalText(0));

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "lasttarget": return new InjectionValue(bridge.LastTarget);

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

Результат: new InjectionValue(selectedJournalEntry?.TextType ?? 0).

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

case "linetype": return new InjectionValue(selectedJournalEntry?.TextType ?? 0);

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

Результат: new InjectionValue((bridge as IProxyMetadataBridge)?.ProxyPort ?? 0).

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

case "proxyport": return new InjectionValue((bridge as IProxyMetadataBridge)?.ProxyPort ?? 0);

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "setrunmounttimer":

                    state.RunMountTimer = ClampMoveTimer(Arg(0), 100);

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

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

Вызовы:

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

case "setscriptname": bridge.SetScriptName(Arg(0), Text(1)); return InjectionValue.Unit;

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "setskilllockstate":

                case "skilllockstate": bridge.SetSkillLockState(Text(0), Arg(1)); return InjectionValue.Unit;

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "shardname":

                case "profileshardname": return new InjectionValue(bridge.ShardName);

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "str": return new InjectionValue(bridge.Strength);

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

Результат: WaitJournalLine(arguments, false).

Вызовы:

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

case "waitjournalline": return WaitJournalLine(arguments, false);

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "worldnum": return new InjectionValue(bridge.WorldNumber);

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

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

Вызовы:

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

case "movebetweentwocorners":

                    if (arguments.Length > 0) state.MoveBetweenTwoCorners = Arg(0) != 0 ? 1 : 0;

                    return new InjectionValue(state.MoveBetweenTwoCorners);

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

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

Вызовы:

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

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

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

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

Вызовы:

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

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

InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias

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

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

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

Вызовы:

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

case "cancelgump": bridge.CloseSimpleGump(arguments.Length > 0 ? Arg(0) : -1); break;

InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias

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

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

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

Вызовы:

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

case "deleteignorelist":

                    state.IgnoreTypeLists.Remove(Text(0), arguments.Length > 1 ? ResolveType(arguments[1]) : (int?)null,

                        arguments.Length > 2 ? NumberConversions.ToInt(arguments[2]) : (int?)null);

                    break;

InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias

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

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

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

Результат: new InjectionValue(MoveItem(arguments[0], arguments.Length > 1 ? arguments[1] : InjectionValue.Zero, new InjectionValue("ground"), new InjectionValue(GetX()), new InjectionValue(GetY()), new InjectionValue(GetZ()))); InjectionValue.False.

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

Вызовы:

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

case "drophere":

                    if (arguments.Length > 0)

                        return new InjectionValue(MoveItem(arguments[0], arguments.Length > 1 ? arguments[1] : InjectionValue.Zero, new InjectionValue("ground"), new InjectionValue(GetX()), new InjectionValue(GetY()), new InjectionValue(GetZ())));

                    return InjectionValue.False;

InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias

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

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

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

Условия: mobile != 0.

Вызовы:

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

case "findman":

                {

                    int mobile = bridge.GetMobiles().FirstOrDefault();

                    if (mobile != 0) state.Objects.Set(arguments.Length > 0 ? Text(0) : "findman", mobile);

                    break;

                }

InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias

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

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

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

Вызовы:

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

case "mount": bridge.Mount(Arg(0, bridge.LastTarget)); break;

InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias

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

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

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

Вызовы:

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

case "uoamessage": bridge.Print(state.FontColor, Text(0)); break;

InjectionScript.Runtime.InjectionApiUO.Exists

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

Параметры: id

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

public int Exists(string id)

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

Результат: Exists(GetObject(id)).

Вызовы: Exists, GetObject.

Вызовы:

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

public int Exists(string id) => Exists(GetObject(id));

InjectionScript.Runtime.InjectionApiUO.FindFilteredTargetSerial

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

Параметры: typeValue, color, distance, notorietyValue, nearest, maxZ

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

`private int FindFilteredTargetSerial(InjectionValue typeValue, int color, int distance,

        InjectionValue notorietyValue, bool nearest, int maxZ)`

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

Результат: candidates.FirstOrDefault().

Вызовы: bridge.GetIgnoreList, state.IgnoreTypeLists.FilterFor, ParseTypeMask, ParseIntMask, bridge.GetZ, bridge.GetFindDistance, Math.Max, bridge.GetFindVertical.

Условия: notorieties.Count > 0; nearest.

Вызовы:

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

private int FindFilteredTargetSerial(InjectionValue typeValue, int color, int distance,

            InjectionValue notorietyValue, bool nearest, int maxZ)

        {

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

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

            HashSet<int> types = ParseTypeMask(typeValue);

            HashSet<int> notorieties = ParseIntMask(notorietyValue);

            int self = bridge.Self;

            int selfZ = bridge.GetZ(self);

            int effectiveDistance = distance < 0 ? bridge.GetFindDistance() : Math.Max(0, distance);

            int effectiveMaxZ = maxZ < 0 ? bridge.GetFindVertical() : Math.Max(0, maxZ);



            IEnumerable<int> candidates;

            if (notorieties.Count > 0)

            {

                // Notoriety is a Mobile property. Supplying it makes the search mobile-only.

                candidates = bridge.GetMobiles();

            }

            else

            {

                candidates = bridge.GetMobiles().Concat(bridge.GetWorldItems());

            }



            candidates = candidates

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

                .Distinct()

                .Where(id => types.Count == 0 || types.Contains(bridge.GetGraphics(id)))

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

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

                .Where(id => effectiveMaxZ < 0 || Math.Abs(bridge.GetZ(id) - selfZ) <= effectiveMaxZ)

                .Where(id => notorieties.Count == 0 || notorieties.Contains(bridge.GetNotoriety(id)));



            if (nearest)

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



            return candidates.FirstOrDefault();

        }

InjectionScript.Runtime.InjectionApiUO.GetAbilityName

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

Параметры: abilityId

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

public string GetAbilityName(int abilityId)

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

Результат: bridge.GetAbilityName(abilityId).

Вызовы: bridge.GetAbilityName.

Вызовы:

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

public string GetAbilityName(int abilityId) => bridge.GetAbilityName(abilityId);

InjectionScript.Runtime.InjectionApiUO.GetEquips

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

Параметры: supportedLayers

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

private IEnumerable<Equip> GetEquips(int[] supportedLayers)

Результат: IEnumerable<Equip>.

Вызовы: bridge.ObjAtLayer.

Условия: id != 0.

Вызовы:

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

private IEnumerable<Equip> GetEquips(int[] supportedLayers)

        {

            foreach (var layer in supportedLayers)

            {

                var id = bridge.ObjAtLayer(layer);

                if (id != 0)

                    yield return new Equip(layer, id);

            }

        }

InjectionScript.Runtime.InjectionApiUO.GetGump

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

Параметры: gumpId, identifier, key

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

public InjectionValue GetGump(int gumpId, string identifier, int key)

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

Результат: ConvertGumpValue(identifier, bridge.GetGumpValue(gumpId, identifier, key)).

Вызовы: ConvertGumpValue, bridge.GetGumpValue.

Вызовы:

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

public InjectionValue GetGump(int gumpId, string identifier, int key)

            => ConvertGumpValue(identifier, bridge.GetGumpValue(gumpId, identifier, key));

InjectionScript.Runtime.InjectionApiUO.GetHP

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

Параметры: id

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

public int GetHP(int id)

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

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

Вызовы: bridge.GetHP.

Вызовы:

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

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

InjectionScript.Runtime.InjectionApiUO.GetJournalStartAge

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

Параметры: value

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

private int GetJournalStartAge(InjectionValue value)

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

Результат: elapsed <= 0d ? 0 : elapsed >= int.MaxValue ? int.MaxValue : (int)elapsed.

Вызовы: NumberConversions.ToInt, DateTime.FromOADate, JournalTimestampToAge, CurrentJournalTime.

Условия: value.Kind == InjectionValueKind.Decimal && raw > 20_000d && raw < 100_000d.

Вызовы:

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

private int GetJournalStartAge(InjectionValue value)

        {

            double raw = value.Kind == InjectionValueKind.Decimal ? value.Decimal : NumberConversions.ToInt(value);

            // LineTime is a Decimal OLE date; Now is an Integer millisecond

            // timestamp. A running script's 20000..100000 ms is not a date.

            if (value.Kind == InjectionValueKind.Decimal && raw > 20_000d && raw < 100_000d)

            {

                try

                {

                    double elapsed = (timeSource.Now - DateTime.FromOADate(raw)).TotalMilliseconds;

                    return elapsed <= 0d ? 0 : elapsed >= int.MaxValue ? int.MaxValue : (int)elapsed;

                }

                catch (ArgumentException)

                {

                }

            }

            return JournalTimestampToAge(raw <= 0d ? 0 : raw >= int.MaxValue ? int.MaxValue : (int)raw,

                CurrentJournalTime());

        }

InjectionScript.Runtime.InjectionApiUO.GetMaxHP

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

Параметры: id

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

public int GetMaxHP(int id)

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

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

Вызовы: bridge.GetMaxHP.

Вызовы:

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

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

InjectionScript.Runtime.InjectionApiUO.GetName

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

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

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

public string GetName()

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

Результат: GetName("self").

Вызовы: GetName.

Вызовы:

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

public string GetName() => GetName("self");

InjectionScript.Runtime.InjectionApiUO.GetObject

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

Параметры: name

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

private int GetObject(InjectionValue name)

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

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

Вызовы: TryGetObject.

Условия: TryGetObject(name, out int id).

Вызовы:

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

private int GetObject(InjectionValue name)

        {

            if (TryGetObject(name, out int id))

                return id;

            return -1;

        }

InjectionScript.Runtime.InjectionApiUO.GetTileHeight

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

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

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

public int GetTileHeight(InjectionValue group, InjectionValue tileId)

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

Результат: tileGroup == 0 || properties.Length < 7 ? 0 : properties[6].

Вызовы: NumberConversions.ToInt, bridge.GetTileDataProperties, Array.Empty<int>.

Вызовы:

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

public int GetTileHeight(InjectionValue group, InjectionValue tileId)

        {

            int tileGroup = NumberConversions.ToInt(group);

            int[] properties = bridge.GetTileDataProperties(tileGroup, NumberConversions.ToInt(tileId)) ?? Array.Empty<int>();

            return tileGroup == 0 || properties.Length < 7 ? 0 : properties[6];

        }

InjectionScript.Runtime.InjectionApiUO.GetWorldCell

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

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

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

public InjectionValue GetWorldCell(InjectionValue x, InjectionValue y, InjectionValue map)

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

Результат: BuildWorldCell(NumberConversions.ToInt(x), NumberConversions.ToInt(y), NumberConversions.ToInt(map), true).

Вызовы: BuildWorldCell, NumberConversions.ToInt.

Вызовы:

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

public InjectionValue GetWorldCell(InjectionValue x, InjectionValue y, InjectionValue map)

            => BuildWorldCell(NumberConversions.ToInt(x), NumberConversions.ToInt(y), NumberConversions.ToInt(map), true);

InjectionScript.Runtime.InjectionApiUO.Grab

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

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

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

public int Grab(int amount, int id)

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

Результат: CompactGrab(new[] { new InjectionValue(amount), new InjectionValue(id) }).

Вызовы: CompactGrab.

Вызовы:

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

public int Grab(int amount, int id) => CompactGrab(new[] { new InjectionValue(amount), new InjectionValue(id) });

InjectionScript.Runtime.InjectionApiUO.InfoGumps

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

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

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

public void InfoGumps()

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

Вызовы: bridge.ShowGumpListInspector.

Вызовы:

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

public void InfoGumps()

        {

            bridge.ShowGumpListInspector();

        }

InjectionScript.Runtime.InjectionApiUO.IsNpc

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

Параметры: id

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

public int IsNpc(string id)

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

Результат: IsNpc(GetObject(id)).

Вызовы: IsNpc, GetObject.

Вызовы:

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

public int IsNpc(string id) => IsNpc(GetObject(id));

InjectionScript.Runtime.InjectionApiUO.IsTargeting

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

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

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

public int IsTargeting()

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

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

Вызовы: bridge.IsTargeting.

Вызовы:

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

public int IsTargeting() => bridge.IsTargeting();

InjectionScript.Runtime.InjectionApiUO.NormalizeLastTile

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

Параметры: values

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

private static int[] NormalizeLastTile(int[] values)

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

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

Вызовы: Array.Copy, Math.Min.

Условия: values != null && values.Length >= 4; values != null.

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

private static int[] NormalizeLastTile(int[] values)

        {

            if (values != null && values.Length >= 4)

                return values;



            var result = new int[4];

            if (values != null)

                Array.Copy(values, result, Math.Min(values.Length, result.Length));

            return result;

        }

InjectionScript.Runtime.InjectionApiUO.NormalizeLegacyEventName

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

Параметры: name

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

private static string NormalizeLegacyEventName(string name)

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

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

Вызовы: (name ?? string.Empty).Trim, value.StartsWith, value.Substring.

Условия: value.StartsWith("ev", StringComparison.OrdinalIgnoreCase) && value.Length > 2.

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

private static string NormalizeLegacyEventName(string name)

        {

            string value = (name ?? string.Empty).Trim();

            if (value.StartsWith("ev", StringComparison.OrdinalIgnoreCase) && value.Length > 2)

                value = value.Substring(2);

            return value;

        }

InjectionScript.Runtime.InjectionApiUO.ParseIntMask

Разбирает или находит значение аргумента по правилам, показанным в коде.

Параметры: value

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

private static HashSet<int> ParseIntMask(InjectionValue value)

Результат: HashSet<int>.

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

Вызовы: AddMaskValue, result.Add.

Условия: value.Kind == InjectionValueKind.Array; result.Count == 0 && invalid && !unrestricted.

Вызовы:

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

private static HashSet<int> ParseIntMask(InjectionValue value)

        {

            var result = new HashSet<int>();

            bool invalid = false, unrestricted = false;

            if (value.Kind == InjectionValueKind.Array)

            {

                foreach (InjectionValue entry in value.Array)

                    AddMaskValue(result, entry, ref invalid, ref unrestricted);

            }

            else

                AddMaskValue(result, value, ref invalid, ref unrestricted);

            // Empty is the established wildcard representation. An invalid-only

            // mask must instead match nothing; graphics and notoriety are nonnegative.

            if (result.Count == 0 && invalid && !unrestricted)

                result.Add(int.MinValue);

            return result;

        }

InjectionScript.Runtime.InjectionApiUO.ReadWornTypes

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

Параметры: mobile

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

private HashSet<int> ReadWornTypes(int mobile)

Результат: HashSet<int>.

Результат: new HashSet<int>(snapshot.GetWornTypes(mobile) ?? Array.Empty<int>()); worn.

Вызовы: snapshot.GetWornTypes, Array.Empty<int>, bridge.GetEquipment, bridge.GetLayer, worn.Add, bridge.GetGraphics.

Условия: bridge is IApiEquipmentSnapshotBridge snapshot; layer >= 1 && layer <= 24 && layer != 21.

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

private HashSet<int> ReadWornTypes(int mobile)
        {
            if (bridge is IApiEquipmentSnapshotBridge snapshot)
                return new HashSet<int>(snapshot.GetWornTypes(mobile) ?? Array.Empty<int>());
            var worn = new HashSet<int>();
            foreach (int item in bridge.GetEquipment(mobile) ?? Array.Empty<int>())
            {
                int layer = bridge.GetLayer(item);
                if (layer >= 1 && layer <= 24 && layer != 21) worn.Add(bridge.GetGraphics(item));
            }
            return worn;
        }

InjectionScript.Runtime.InjectionApiUO.ScanInt

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

Параметры: textValue, startValue

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

public int ScanInt(InjectionValue textValue, InjectionValue startValue)

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

Результат: match.Success && NumberConversions.TryStr2Int(match.Value, out int value) ? value : 0.

Вызовы: textValue.ToString, Math.Max, Math.Min, NumberConversions.ToInt, Regex.Match, text.Substring, NumberConversions.TryStr2Int.

Вызовы:

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

public int ScanInt(InjectionValue textValue, InjectionValue startValue)

        {

            string text = textValue.ToString() ?? string.Empty;

            int start = Math.Max(0, Math.Min(text.Length, NumberConversions.ToInt(startValue)));

            Match match = Regex.Match(text.Substring(start), @"[-+]?(?:0[xX][0-9A-Fa-f]+|\d+)", RegexOptions.CultureInvariant);

            return match.Success && NumberConversions.TryStr2Int(match.Value, out int value) ? value : 0;

        }

InjectionScript.Runtime.InjectionApiUO.SendGumpSelect

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

Параметры: triggerId

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

public int SendGumpSelect(int triggerId)

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

Результат: bridge.SendGumpSelect(triggerId).

Вызовы: bridge.SendGumpSelect.

Вызовы:

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

public int SendGumpSelect(int triggerId) => bridge.SendGumpSelect(triggerId);

InjectionScript.Runtime.InjectionApiUO.SerializeRecordedLegacyAction

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

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

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

private static string SerializeRecordedLegacyAction(string name, InjectionValue[] arguments)

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

Результат: string.Join("\t", fields).

Вызовы: `new[] { RecordedLegacyActionPrefix, EncodeRecordingText(name) }

            .Concat`, `EncodeRecordingText`, `(arguments ?? Array.Empty<InjectionValue>()).Select`, `Array.Empty<InjectionValue>`, `string.Join`.

Вызовы:

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

private static string SerializeRecordedLegacyAction(string name, InjectionValue[] arguments)

        {

            IEnumerable<string> fields = new[] { RecordedLegacyActionPrefix, EncodeRecordingText(name) }

                .Concat((arguments ?? Array.Empty<InjectionValue>()).Select(SerializeRecordedValue));

            return string.Join("\t", fields);

        }

InjectionScript.Runtime.InjectionApiUO.SetReceivingContainer

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

Параметры: id

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

public void SetReceivingContainer(string id)

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

Вызовы: (id ?? string.Empty).Trim, name.Equals, SetReceivingContainer, GetObject.

Условия: `name.Equals("my", StringComparison.OrdinalIgnoreCase)

            || name.Equals("backpack", StringComparison.OrdinalIgnoreCase)`.

Вызовы:

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

public void SetReceivingContainer(string id)

        {

            string name = (id ?? string.Empty).Trim();

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

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

            {

                SetReceivingContainer(bridge.Backpack);

                return;

            }

            SetReceivingContainer(GetObject(id));

        }

InjectionScript.Runtime.InjectionApiUO.SubExists

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

Параметры: subrutineName

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

public int SubExists(string subrutineName)

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

Результат: bridge.SubExists(subrutineName) ? 1 : 0.

Вызовы: bridge.SubExists.

Вызовы:

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

public int SubExists(string subrutineName) => bridge.SubExists(subrutineName) ? 1 : 0;

InjectionScript.Runtime.InjectionApiUO.TextClose

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

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

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

public void TextClose()

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

Вызовы: bridge.TextClose.

Вызовы:

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

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

InjectionScript.Runtime.InjectionApiUO.TicksAnim

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

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

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

public int TicksAnim()

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

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

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

public int TicksAnim() => ticksAnim;

InjectionScript.Runtime.InjectionApiUO.UseObject

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

Параметры: id

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

public void UseObject(int id)

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

Вызовы: bridge.UseObject, Timer.

Вызовы:

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

public void UseObject(int id)

        {

            bridge.UseObject(id);

            ticksUse = Timer();

        }

InjectionScript.Runtime.InjectionApiUO.WaitTargetLast

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

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

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

public void WaitTargetLast()

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

Вызовы: WaitTargetObject.

Вызовы:

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

public void WaitTargetLast() => WaitTargetObject("lasttarget");

InjectionScript.Runtime.InjectionApiUO.RegisterCharacterGetterAliases [GetFrozen]

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

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

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

serial

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

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

Вызовы: bridge.GetLocked.

Вызовы:

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

serial => bridge.GetLocked(serial)

InjectionScript.Runtime.InjectionApiUO.RegisterCharacterGetterAliases [GetMana]

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

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

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

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

Вызовы:

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

() => bridge.Mana

InjectionScript.Runtime.InjectionApiUO.RegisterCharacterGetterAliases [GetSex]

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

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

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

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

Вызовы:

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

() => bridge.Sex

InjectionScript.Runtime.InjectionApiUO.RegisterCharacterGetterAliases [IsDead]

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

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

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

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

IsDeadState

InjectionScript.Runtime.InjectionApiUO.RegisterCharacterGetterAliases [PhysicalResist]

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

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

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

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

Вызовы:

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

() => bridge.Armor

InjectionScript.Runtime.InjectionApiUO.RegisterCharacterGetterAliases [ResistFire]

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

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

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

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

Вызовы:

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

() => bridge.FireResistance

InjectionScript.Runtime.InjectionApiUO.RegisterCharacterGetterAliases [ResistPoison]

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

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

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

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

Вызовы:

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

() => bridge.PoisonResistance

InjectionScript.Runtime.Metadata.Add

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

Параметры: definition

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

public void Add(NativeSubrutineDefinition definition)

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

Вызовы: nativeSubrutines.Add.

Вызовы:

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

public void Add(NativeSubrutineDefinition definition) => nativeSubrutines.Add(definition);

InjectionScript.Runtime.Metadata.AddIntrinsicVariable

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

Параметры: definition

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

public void AddIntrinsicVariable(NativeSubrutineDefinition definition)

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

Вызовы: intrinsicVariables.Add.

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

public void AddIntrinsicVariable(NativeSubrutineDefinition definition) => intrinsicVariables.Add(definition.Name,definition);

InjectionScript.Runtime.NumberConversions.ToInt

Разбирает или находит значение аргумента по правилам, показанным в коде.

Параметры: str

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

public static int ToInt(string str)

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

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

Вызовы: TryStr2Int.

Условия: TryStr2Int(str, out int value).

Вызовы:

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

public static int ToInt(string str)
        {
            if (TryStr2Int(str, out int value))
                return value;
            throw new FormatException("Expected a 32-bit decimal integer or a hexadecimal integer prefixed with 0x.");
        }

InjectionScript.Runtime.State.Globals.SetGlobal

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

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

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

public void SetGlobal(string name, double value)

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

Вызовы: SetGlobal, value.ToString.

Вызовы:

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

public void SetGlobal(string name, double value) => SetGlobal(name, value.ToString());

Clone this wiki locally