Skip to content

RU Runtime Helpers 7

Codex edited this page Oct 17, 2026 · 4 revisions

Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

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

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

ClassicUO.CSharp.CSharpCallbacks.TryInvoke

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

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

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

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

Вызовы:

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

case "FunRunning":
                string runningName = Convert.ToString(arguments[0]) ?? "";
                result = IsRunning(runningName) || events is ICSharpScriptHost runningHost && runningHost.IsCSharpScriptRunning(runningName) ? 1 : 0;
                return true;

ClassicUO.CSharp.CSharpCallbacks.TryInvoke

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

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

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

when Length== 1: string routine = Convert.ToString(arguments[0]) ?? ""

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

Вызовы: Convert.ToString.

Вызовы:

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

case "Terminate" when arguments.Length == 1:
                string routine = Convert.ToString(arguments[0]) ?? "";
                if (Exists(routine)) { Cancel(routine); return true; }
                if (Cancel(routine)) return true;
                return false;

ClassicUO.CSharp.CSharpCallbacks.HandlerName

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

Параметры: object? value

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

private static string HandlerName(object? value)

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

Условия:

  • name.StartsWith("exec ", StringComparison.OrdinalIgnoreCase)
  • name.StartsWith("_exec ", StringComparison.OrdinalIgnoreCase)

Вызовы:

  • (Convert.ToString(value) ?? "").Trim
  • Convert.ToString
  • name.StartsWith
  • name[5..].Trim
  • name[6..].Trim

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

private static string HandlerName(object? value)
    {
        string name = (Convert.ToString(value) ?? "").Trim();
        if (name.StartsWith("exec ", StringComparison.OrdinalIgnoreCase)) return name[5..].Trim();
        if (name.StartsWith("_exec ", StringComparison.OrdinalIgnoreCase)) return name[6..].Trim();
        return name;
    }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.BookSetPageText

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

Параметры: int page, string text

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

public void BookSetPageText(int page, string text)

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

Условия:

  • book == null
  • !book.YokoTrySetPageText(page, text)

Вызовы:

  • Invoke
  • GetOpenBook
  • Error
  • book.YokoTrySetPageText

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

public void BookSetPageText(int page, string text) => Invoke(() =>

        {

            ISessionBook book = GetOpenBook();

            if (book == null) { Error("UO.BookSetPageText: no open book."); return; }

            if (!book.YokoTrySetPageText(page, text))

                Error("UO.BookSetPageText: invalid page, read-only book, too many lines, or a line is too long.");

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Bow

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

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

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

public void Bow()

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

Вызовы:

  • Invoke
  • GameActions.EmoteAction

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

public void Bow() => Invoke(() => GameActions.EmoteAction("bow"));

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.CloseMenu

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

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

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

public void CloseMenu()

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

Вызовы:

  • Invoke
  • _world.ServerMenus.Snapshot
  • menu.CancelForYoko

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

public void CloseMenu() => Invoke(() =>

        {

            foreach (SessionMenu menu in _world.ServerMenus.Snapshot())

                menu.CancelForYoko();

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.ColdResistance

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

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

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

public int ColdResistance

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

Вызовы:

  • Invoke

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

public int ColdResistance => Invoke(() => CurrentPlayer?.ColdResistance ?? 0);

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Error

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

Параметры: string message

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

public void Error(string message)

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

Вызовы:

  • ReportStatus

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

public void Error(string message) => ReportStatus(message);

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.FindCount

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

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

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

public int FindCount()

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

Вызовы:

—

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

public int FindCount() => _findCount;

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.FindItem

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

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

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

public int FindItem

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

Вызовы:

—

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

public int FindItem => _findItem;

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.FindNotoriety

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

Параметры: int type, int notoriety

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

public int FindNotoriety(int type, int notoriety)

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

Условия:

  • `mobile.IsDestroyed || State.IgnoredSerials.Contains((int)mobile.Serial) || ignoredTypes.Matches(mobile.Graphic, mobile.Hue) || mobile == _world.Player

                      || type >= 0 && type != 0xFFFF && mobile.Graphic != (ushort)type
    
                      || notoriety >= 0 && (int)mobile.NotorietyFlag != notoriety
    
                      || mobile.Distance > State.FindDistance
    
                      || _world.Player != null && Math.Abs(mobile.Z - _world.Player.Z) > State.FindVertical`
    

Вызовы:

  • Invoke
  • ResetFindResults
  • State.IgnoreTypeLists.FilterFor
  • State.IgnoredSerials.Contains
  • ignoredTypes.Matches
  • Math.Abs
  • RegisterFound

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

public int FindNotoriety(int type, int notoriety)

        {

            return Invoke(() =>

            {

                ResetFindResults();

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

                foreach (Mobile mobile in _world.Mobiles.Values)

                {

                    if (mobile.IsDestroyed || State.IgnoredSerials.Contains((int)mobile.Serial) || ignoredTypes.Matches(mobile.Graphic, mobile.Hue) || mobile == _world.Player

                        || type >= 0 && type != 0xFFFF && mobile.Graphic != (ushort)type

                        || notoriety >= 0 && (int)mobile.NotorietyFlag != notoriety

                        || mobile.Distance > State.FindDistance

                        || _world.Player != null && Math.Abs(mobile.Z - _world.Player.Z) > State.FindVertical)

                    {

                        continue;

                    }

                    RegisterFound(mobile);

                }

                return _findItem;

            });

        }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GameServerPort

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

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

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

public int GameServerPort

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

Вызовы:

—

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

public int GameServerPort => Settings.GlobalSettings.Port;

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetHP

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

Параметры: int id

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

public int GetHP(int id)

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

Вызовы:

  • WithEntity

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

public int GetHP(int id) => WithEntity(id, e => e.Hits);

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetLocked

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

Параметры: int id

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

public int GetLocked(int id)

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

Вызовы:

  • Invoke
  • _world.Get

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

public int GetLocked(int id) => Invoke(() => (_world.Get(unchecked((uint)id)) as Mobile)?.IsParalyzed == true ? 1 : 0);

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetPing

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

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

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

public int GetPing()

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

Вызовы:

—

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

public int GetPing() => NetClient.Socket.Statistics.ServerPing;

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetStaticArt::Write32

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

Параметры: buffer, offset, value

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

static void Write32(byte[] buffer, int offset, int value)

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

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

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);

            }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetTradeOpponentName

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

Параметры: int tradeNumber

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

public string GetTradeOpponentName(int tradeNumber)

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

Вызовы:

  • Invoke
  • FindNumberedTrade

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

public string GetTradeOpponentName(int tradeNumber) => Invoke(() =>

        {

            ISessionTrade gump = FindNumberedTrade(tradeNumber);

            return gump?.OpponentName ?? string.Empty;

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.InJournalBetweenTimes

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

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

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

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

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

Вызовы:

  • now.AddMilliseconds
  • Math.Max
  • Math.Min
  • FindJournal

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

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

        {

            DateTime now = DateTime.Now;

            DateTime start = now.AddMilliseconds(-Math.Max(startTime, endTime));

            DateTime end = now.AddMilliseconds(-Math.Min(startTime, endTime));

            return FindJournal(pattern, start, end, limit, false, true);

        }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.InJournalSystemBetweenTimes

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

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

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

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

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

Вызовы:

  • now.AddMilliseconds
  • Math.Max
  • Math.Min
  • FindJournal

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

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

        {

            DateTime now = DateTime.Now;

            DateTime start = now.AddMilliseconds(-Math.Max(startTime, endTime));

            DateTime end = now.AddMilliseconds(-Math.Min(startTime, endTime));

            return FindJournal(pattern, start, end, limit, true, true);

        }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.IsWaterTile

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

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

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

public int IsWaterTile(int x, int y)

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

Вызовы:

  • Invoke
  • AnyTileAt

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

public int IsWaterTile(int x, int y) => Invoke(() => AnyTileAt(x, y, tile =>

            tile is Land land ? land.TileData.IsWet

                : tile.Graphic < Client.UO.FileManager.TileData.StaticData.Length

                    && Client.UO.FileManager.TileData.StaticData[tile.Graphic].IsWet) ? 1 : 0);

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.LastCorpse

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

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

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

public int LastCorpse

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

Вызовы:

  • Invoke
  • _world.Items.Values.Where(i => i.IsCorpse && !i.IsDestroyed).OrderBy(i => i.Distance).FirstOrDefault
  • _world.Items.Values.Where(i => i.IsCorpse && !i.IsDestroyed).OrderBy
  • _world.Items.Values.Where

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

public int LastCorpse => Invoke(() => (int)(_world.Items.Values.Where(i => i.IsCorpse && !i.IsDestroyed).OrderBy(i => i.Distance).FirstOrDefault()?.Serial ?? 0));

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.MaxMana

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

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

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

public int MaxMana

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

Вызовы:

  • Invoke

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

public int MaxMana => Invoke(() => CurrentPlayer?.ManaMax ?? 0);

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.MoveItems

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

Параметры: int sourceContainerId, int type, int color, int targetContainerId, int x, int y, int z, int delayMs

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

public int MoveItems(int sourceContainerId, int type, int color, int targetContainerId, int x, int y, int z, int delayMs)

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

Вызовы:

  • MoveContainerItems

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

public int MoveItems(int sourceContainerId, int type, int color, int targetContainerId, int x, int y, int z, int delayMs)

            => MoveContainerItems(sourceContainerId, type, color, targetContainerId, x, y, z, delayMs).Sent > 0 ? 1 : 0;

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Race

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

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

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

public int Race

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

Вызовы:

  • Invoke

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

public int Race => Invoke(() => (int)(CurrentPlayer?.Race ?? 0));

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SelectGump

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

Параметры: int id

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

public void SelectGump(int id)

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

Условия:

  • _selectedServerGump == null && id >= 0 && id < gumps.Count
  • _selectedServerGump == null

Вызовы:

  • Invoke
  • ServerGumpsUnsafe
  • gumps.FirstOrDefault
  • Error

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

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

        {

            List<Gump> gumps = ServerGumpsUnsafe();

            _selectedServerGump = gumps.FirstOrDefault(g => g.LocalSerial == (uint)id || g.ServerSerial == (uint)id);

            if (_selectedServerGump == null && id >= 0 && id < gumps.Count)

            {

                _selectedServerGump = gumps[id];

            }

            if (_selectedServerGump == null)

            {

                Error($"UO.SelectGump: gump {id} was not found");

            }

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SendGumpSelect

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

Параметры: int gumpIndex, int triggerId

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

public int SendGumpSelect(int gumpIndex, int triggerId)

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

Вызовы:

  • Invoke
  • ServerGumpsUnsafe().ElementAtOrDefault
  • ServerGumpsUnsafe
  • SendGumpButtonUnsafe

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

public int SendGumpSelect(int gumpIndex, int triggerId) => Invoke(() =>

        {

            Gump gump = ServerGumpsUnsafe().ElementAtOrDefault(gumpIndex);

            return SendGumpButtonUnsafe(gump, triggerId, $"gump index {gumpIndex} was not found");

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SetAutoBuyRule

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

Параметры: int type, int color, int quantity, int maxPrice, string name

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

public void SetAutoBuyRule(int type, int color, int quantity, int maxPrice, string name)

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

Вызовы:

  • Invoke
  • SetAutoShopRule

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

public void SetAutoBuyRule(int type, int color, int quantity, int maxPrice, string name) =>

            Invoke(() => SetAutoShopRule(ProfileManager.CurrentProfile?.BackNewbieAutoBuyRules, true, type, color, quantity, maxPrice, name));

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SetMapFigure

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

Параметры: int figureId, int kind, int coord, int x1, int y1, int x2, int y2, int brushColor, int brushStyle, int color, int worldNum, string text

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

public int SetMapFigure(int figureId, int kind, int coord, int x1, int y1, int x2, int y2, int brushColor, int brushStyle, int color, int worldNum, string text)

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

Вызовы:

  • Invoke
  • WorldMapGump.SetYokoMapFigure

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

public int SetMapFigure(int figureId, int kind, int coord, int x1, int y1, int x2, int y2, int brushColor, int brushStyle, int color, int worldNum, string text)

            => Invoke(() => WorldMapGump.SetYokoMapFigure(figureId, kind, coord, x1, y1, x2, y2, brushColor, brushStyle, color, worldNum, text));

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SetPauseScriptOnDisconnectStatus

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

Параметры: int enabled

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

public void SetPauseScriptOnDisconnectStatus(int enabled)

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

Вызовы:

—

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

public void SetPauseScriptOnDisconnectStatus(int enabled) => _manager.PauseScriptsOnDisconnect = enabled != 0;

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SplitPatterns

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

Параметры: string pattern

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

private static string[] SplitPatterns(string pattern)

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

Вызовы:

  • (pattern ?? string.Empty).Split

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

private static string[] SplitPatterns(string pattern) => (pattern ?? string.Empty).Split('|', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries);

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.TargetToTile

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

Параметры: int type, int x, int y, int z

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

public void TargetToTile(int type, int x, int y, int z)

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

Условия:

  • _world.TargetManager.IsServerTarget

Вызовы:

  • Invoke
  • _world.TargetManager.Target

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

public void TargetToTile(int type, int x, int y, int z) => Invoke(() =>

        {

            if (_world.TargetManager.IsServerTarget)

                _world.TargetManager.Target((ushort)type, (ushort)x, (ushort)y, (short)z);

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.TextPrint

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

Параметры: string text

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

public void TextPrint(string text)

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

Условия:

  • _textWindow.Count >= MaxTextWindowLines

Вызовы:

  • _textWindow.RemoveRange
  • _textWindow.Add
  • Invoke
  • YokoTextWindowGump.Show
  • ReportStatus

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

public void TextPrint(string text)

        {

            if (_textWindow.Count >= MaxTextWindowLines)

                _textWindow.RemoveRange(0,

                    _textWindow.Count - MaxTextWindowLines + 1);

            _textWindow.Add(text ?? string.Empty);

            _textWindowOpen = true;

            Invoke(() =>

            {

                YokoTextWindowGump.Show(_world, _textWindow);

                ReportStatus($"UO.TextPrint: {_textWindow.Count} line(s) visible");

            });

        }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.TryProbeServerPing

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

Параметры: int timeoutMs, out int pingMs

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

private bool TryProbeServerPing(int timeoutMs, out int pingMs)

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

Условия:

  • !_world.InGame || !NetClient.Socket.IsConnected
  • request.Token < 0
  • NetClient.Socket.Statistics.GetPingEchoGeneration((byte)request.Token) != request.Generation
  • timeout == 0

Вызовы:

  • Math.Max
  • Invoke
  • NetClient.Socket.Statistics.SendPingProbe
  • NetClient.Socket.Statistics.GetPingEchoGeneration
  • Wait
  • Math.Min

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

private bool TryProbeServerPing(int timeoutMs, out int pingMs)

        {

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

            (int Token, int Generation) request = Invoke(() =>

            {

                if (!_world.InGame || !NetClient.Socket.IsConnected)

                    return (-1, -1);



                return NetClient.Socket.Statistics.SendPingProbe();

            });



            if (request.Token < 0)

            {

                pingMs = -1;

                return false;

            }



            long deadline = Environment.TickCount64 + timeout;

            do

            {

                if (NetClient.Socket.Statistics.GetPingEchoGeneration((byte)request.Token) != request.Generation)

                {

                    pingMs = NetClient.Socket.Statistics.ServerPing;

                    return pingMs >= 0;

                }



                if (timeout == 0)

                    break;



                long remaining = deadline - Environment.TickCount64;

                if (remaining <= 0)

                    break;



                Wait((int)Math.Min(10, remaining));

            }

            while (true);



            pingMs = -1;

            return false;

        }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.UnsetReceivingContainer

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

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

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

public void UnsetReceivingContainer()

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

Вызовы:

—

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

public void UnsetReceivingContainer() => State.ReceivingContainer = 0;

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.UseObject

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

Параметры: int id

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

public void UseObject(int id)

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

Вызовы:

  • Invoke
  • GameActions.DoubleClick

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

public void UseObject(int id) => Invoke(() => GameActions.DoubleClick(_world, (uint)id));

ClassicUO.Game.Managers.LastCharacterManager.OverrideLastCharacter

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

Параметры: string name, bool oneShot = false

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

public static void OverrideLastCharacter(string name, bool oneShot = false)

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

Вызовы:

  • string.IsNullOrEmpty

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

public static void OverrideLastCharacter(string name, bool oneShot = false)
        {
            LastCharacterNameOverride = name ?? string.Empty;
            LastCharacterNameOverrideOneShot = oneShot && !string.IsNullOrEmpty(LastCharacterNameOverride);
        }

ClassicUO.Game.Managers.UIManager.GetGump

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

Параметры: uint? serial = null

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

public static T GetGump<T>(uint? serial = null)

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

Условия:

  • serial.HasValue
  • !c.IsDisposed && c.LocalSerial == serial.Value && c is T t
  • !c.IsDisposed && c is T t

Вызовы:

—

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

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

                    if (!c.IsDisposed && c.LocalSerial == serial.Value && c is T t)
                    {
                        return t;
                    }
                }
            }
            else
            {
                for (LinkedListNode<Gump> first = Gumps.First; first != null; first = first.Next)
                {
                    Control c = first.Value;

                    if (!c.IsDisposed && c is T t)
                    {
                        return t;
                    }
                }
            }

            return null;
        }

ClassicUO.Game.Managers.YokoInjectionManager.AppendIdeOutput

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

Параметры: string scriptKey, string text

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

internal void AppendIdeOutput(string scriptKey, string text)

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

Вызовы:

  • _ideToolBuffers.AppendOutput

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

internal void AppendIdeOutput(string scriptKey, string text) =>

            _ideToolBuffers.AppendOutput(scriptKey, text);

ClassicUO.Game.Managers.YokoInjectionManager.GetPendingTargetSerials

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

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

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

internal int[] GetPendingTargetSerials()

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

Вызовы:

  • _pendingTargets.ToArray().Where(t => !t.Owner.IsCancellationRequested).Select(t => (int)t.Serial).ToArray
  • _pendingTargets.ToArray().Where(t => !t.Owner.IsCancellationRequested).Select
  • _pendingTargets.ToArray().Where
  • _pendingTargets.ToArray

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

internal int[] GetPendingTargetSerials() =>

            // Zero denotes a queued tile/cancellation. Waiting() and timed casts

            // need to count these entries as well as object serials.

            _pendingTargets.ToArray().Where(t => !t.Owner.IsCancellationRequested).Select(t => (int)t.Serial).ToArray();

ClassicUO.Game.Managers.YokoInjectionManager.InvokeOnGameThread

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

Параметры: Func<T> callback, CancellationToken cancellationToken

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

internal T InvokeOnGameThread<T>(Func<T> callback, CancellationToken cancellationToken)

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

Условия:

  • callback == null
  • Volatile.Read(ref _gameThreadId) == Environment.CurrentManagedThreadId
  • cancellationToken.IsCancellationRequested

Вызовы:

  • nameof
  • cancellationToken.ThrowIfCancellationRequested
  • Volatile.Read
  • callback
  • EnqueueMainThreadAction
  • result.TrySetCanceled
  • result.TrySetResult
  • result.TrySetException
  • result.Task.Wait
  • result.Task.GetAwaiter().GetResult
  • result.Task.GetAwaiter

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

internal T InvokeOnGameThread<T>(Func<T> callback, CancellationToken cancellationToken)

        {

            if (callback == null)

                throw new ArgumentNullException(nameof(callback));

            cancellationToken.ThrowIfCancellationRequested();

            if (Volatile.Read(ref _gameThreadId) == Environment.CurrentManagedThreadId)

                return callback();



            var result = new TaskCompletionSource<T>(TaskCreationOptions.RunContinuationsAsynchronously);

            EnqueueMainThreadAction(() =>

            {

                if (cancellationToken.IsCancellationRequested)

                {

                    result.TrySetCanceled(cancellationToken);

                    return;

                }



                try

                {

                    result.TrySetResult(callback());

                }

                catch (Exception ex)

                {

                    result.TrySetException(ex);

                }

            }, () => result.TrySetCanceled());



            result.Task.Wait(cancellationToken);

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

        }

ClassicUO.Game.Managers.YokoInjectionManager.MarkRuntimeStateChanged

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

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

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

private void MarkRuntimeStateChanged()

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

Вызовы:

  • Interlocked.Increment

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

private void MarkRuntimeStateChanged() =>

            Interlocked.Increment(ref _runtimeStateRevision);

ClassicUO.Game.Managers.YokoInjectionManager.QueueTarget

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

Параметры: uint serial, CancellationToken owner = default

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

internal void QueueTarget(uint serial, CancellationToken owner = default)

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

Вызовы:

  • owner.ThrowIfCancellationRequested
  • _pendingTargets.Enqueue

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

internal void QueueTarget(uint serial, CancellationToken owner = default)

        {

            lock (_pendingTargetLock)

            {

                owner.ThrowIfCancellationRequested();

                _pendingTargets.Enqueue(new PendingTarget(serial, owner));

            }

        }

ClassicUO.Game.UI.Gumps.Gump.OnButtonClick

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

Параметры: int buttonID

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

public override void OnButtonClick(int buttonID)

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

Условия:

  • SessionState is { } state
  • !IsDisposed && (LocalSerial != 0 || ServerSerial != 0)
  • CanMove

Вызовы:

  • state.OnButtonClick
  • switches.Add
  • entries.Add
  • GameActions.ReplyGump
  • switches.ToArray
  • entries.ToArray
  • UIManager.SavePosition
  • UIManager.RemovePosition
  • Dispose

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

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

public override void OnButtonClick(int buttonID)
        {
            if (SessionState is { } state)
            {
                state.OnButtonClick(buttonID);
                return;
            }
            if (!IsDisposed && (LocalSerial != 0 || ServerSerial != 0))
// …
                if (CanMove)
// …
                else
                {
                    UIManager.RemovePosition(ServerSerial);
                }

                Dispose();
            }
        }

ClassicUO.Game.World.ResolveProfileServerName

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

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

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

internal string ResolveProfileServerName()

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

Условия:

  • string.IsNullOrWhiteSpace(_profileServerIdentity)

Вызовы:

  • string.IsNullOrWhiteSpace
  • Path.Combine
  • ProfileShardIdentity.Resolve

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

internal string ResolveProfileServerName()

        {

            if (string.IsNullOrWhiteSpace(_profileServerIdentity))

            {

                string runtimeName = string.IsNullOrWhiteSpace(ServerName) || ServerName == "_"

                    ? Settings.GlobalSettings.LastServerName

                    : ServerName;

                string defaultSettingsPath = Path.Combine(

                    CUOEnviroment.ExecutablePath,

                    Settings.SETTINGS_FILENAME

                );



                _profileServerIdentity = ProfileShardIdentity.Resolve(

                    runtimeName,

                    Settings.GlobalSettings.IP,

                    Settings.GlobalSettings.Port,

                    _selectedProfileShardHost,

                    defaultSettingsPath,

                    authoritativeEndpoint: _sessionAccount != null

                );

            }



            return _profileServerIdentity;

        }

InjectionScript.Runtime.InjectionApiUO.CheckLag

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

Параметры: InjectionValue timeout, InjectionValue retries

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

public int CheckLag(InjectionValue timeout, InjectionValue retries)

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

Условия:

  • bridge.CheckLag(timeoutMs) != 0

Вызовы:

  • Math.Max
  • NumberConversions.ToInt
  • bridge.CheckLag

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

public int CheckLag(InjectionValue timeout, InjectionValue retries)

        {

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

            int attempts = Math.Max(1, NumberConversions.ToInt(retries));

            for (int attempt = 0; attempt < attempts; attempt++)

            {

                if (bridge.CheckLag(timeoutMs) != 0)

                    return 1;

            }

            return 0;

        }

InjectionScript.Runtime.InjectionApiUO.CompactGetWorldItems

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

Параметры: InjectionValue[] values

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

private InjectionValue CompactGetWorldItems(InjectionValue[] values)

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

Условия:

  • values.Length > 3 && !TryResolveWorldItemQueryContainer(values[3], out container)
  • nearest

Вызовы:

  • ResolveType

  • NumberConversions.ToInt

  • ResolveCompactDistance

  • bridge.GetFindDistance

  • TryResolveWorldItemQueryContainer

  • Array.Empty<InjectionValue>

  • ToBoolean

  • ResolveCompactMaxZ

  • bridge.GetFindVertical

  • bridge.GetContent

  • bridge.GetWorldItems

  • bridge.GetIgnoreList

  • state.IgnoreTypeLists.FilterFor

  • bridge.GetZ

  • `source

              .Where(id => (!ignored.Contains(id) && !MatchesIgnoredType(id, ignoredTypes)))
    
              .Where(id => type < 0 || type == 0xFFFF || bridge.GetGraphics(id) == type)
    
              .Where(id => color < 0 || color == 0xFFFF || bridge.GetColor(id) == color)
    
              .Where(id =>
    
              {
    
                  int distanceObject = container > 0 ? container : id;
    
                  return distance < 0 || bridge.GetDistance(distanceObject) <= distance;
    
              })
    
              .Where`
    
  • `source

              .Where(id => (!ignored.Contains(id) && !MatchesIgnoredType(id, ignoredTypes)))
    
              .Where(id => type < 0 || type == 0xFFFF || bridge.GetGraphics(id) == type)
    
              .Where(id => color < 0 || color == 0xFFFF || bridge.GetColor(id) == color)
    
              .Where`
    
  • `source

              .Where(id => (!ignored.Contains(id) && !MatchesIgnoredType(id, ignoredTypes)))
    
              .Where(id => type < 0 || type == 0xFFFF || bridge.GetGraphics(id) == type)
    
              .Where`
    
  • `source

              .Where(id => (!ignored.Contains(id) && !MatchesIgnoredType(id, ignoredTypes)))
    
              .Where`
    
  • `source

              .Where`
    
  • ignored.Contains

  • MatchesIgnoredType

  • bridge.GetGraphics

  • bridge.GetColor

  • bridge.GetDistance

  • Math.Abs

  • filtered.OrderBy(id => bridge.GetDistance(container > 0 ? container : id)).ThenBy

  • filtered.OrderBy

  • filtered.Select(id => new InjectionValue(id)).ToArray

  • filtered.Select

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

private InjectionValue CompactGetWorldItems(InjectionValue[] values)

        {

            int type = values.Length > 0 ? ResolveType(values[0]) : -1;

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

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

            int container = 0;

            if (values.Length > 3 && !TryResolveWorldItemQueryContainer(values[3], out container))

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

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

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



            IEnumerable<int> source = container > 0 ? bridge.GetContent(container) : bridge.GetWorldItems();

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

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

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



            IEnumerable<int> filtered = source

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

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

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

                .Where(id =>

                {

                    int distanceObject = container > 0 ? container : id;

                    return distance < 0 || bridge.GetDistance(distanceObject) <= distance;

                })

                .Where(id =>

                {

                    int zObject = container > 0 ? container : id;

                    return maxZ < 0 || Math.Abs(bridge.GetZ(zObject) - selfZ) <= maxZ;

                });



            if (nearest)

                filtered = filtered.OrderBy(id => bridge.GetDistance(container > 0 ? container : id)).ThenBy(id => id);



            return new InjectionValue(filtered.Select(id => new InjectionValue(id)).ToArray());

        }

InjectionScript.Runtime.InjectionApiUO.ConvertSpellName

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

Параметры: string spellName

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

private int? ConvertSpellName(string spellName)

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

Условия:

  • classicUoSpellId > 0
  • spellNameToSpellId.TryGetValue(requested, out var spellId)
  • NumberConversions.TryStr2Int(requested, out spellId) && spellId > 0

Вызовы:

  • (spellName ?? string.Empty).Trim().Replace
  • (spellName ?? string.Empty).Trim
  • bridge.ResolveSpell
  • spellNameToSpellId.TryGetValue
  • NumberConversions.TryStr2Int

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

private int? ConvertSpellName(string spellName)

        {

            string requested = (spellName ?? string.Empty).Trim().Replace('_', ' ');

            int classicUoSpellId = bridge.ResolveSpell(requested);

            if (classicUoSpellId > 0)

                return classicUoSpellId;



            if (spellNameToSpellId.TryGetValue(requested, out var spellId))

                return spellId;



            if (NumberConversions.TryStr2Int(requested, out spellId) && spellId > 0)

                return spellId;



            return null;

        }

InjectionScript.Runtime.InjectionApiUO.Count

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

Параметры: int type, int color, int container

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

public int Count(int type, int color, int container)

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

Вызовы:

  • bridge.Count

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

public int Count(int type, int color, int container)

            => bridge.Count(type, color, container);

InjectionScript.Runtime.InjectionApiUO.Date

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

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

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

public int Date()

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

Вызовы:

—

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

public int Date()

        {

            var now = timeSource.Now;

            return (now.Year % 100) * 10000 + now.Month * 100 + now.Day;

        }

InjectionScript.Runtime.InjectionApiUO.DecodeEasyUoId

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

Параметры: string easyValue

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

private static int DecodeEasyUoId(string easyValue)

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

Условия:

  • character < 'A' || character > 'Z'

Вызовы:

  • (easyValue ?? string.Empty).ToUpperInvariant

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

private static int DecodeEasyUoId(string easyValue)

        {

            uint value = 0;

            foreach (char character in (easyValue ?? string.Empty).ToUpperInvariant())

            {

                if (character < 'A' || character > 'Z')

                    continue;

                value = unchecked(value * 26 + (uint)(character - 'A'));

            }

            return unchecked((int)value);

        }

InjectionScript.Runtime.InjectionApiUO.DeleteJournal

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

Параметры: InjectionValue text

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

public void DeleteJournal(InjectionValue text)

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

Вызовы:

  • DeleteJournal

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

public void DeleteJournal(InjectionValue text) => DeleteJournal((string)text);

InjectionScript.Runtime.InjectionApiUO.EUO2Inj

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

Параметры: InjectionValue easyValue

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

public string EUO2Inj(InjectionValue easyValue)

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

Условия:

  • c < 'A' || c > 'Z'

Вызовы:

  • easyValue.ToString().ToUpperInvariant
  • easyValue.ToString
  • NumberConversions.ToHex

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

public string EUO2Inj(InjectionValue easyValue)

        {

            uint value = 0;

            foreach (char c in easyValue.ToString().ToUpperInvariant())

            {

                if (c < 'A' || c > 'Z')

                    continue;

                value = unchecked(value * 26 + (uint)(c - 'A'));

            }

            return NumberConversions.ToHex(unchecked((int)value));

        }

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "addgumpignorebyserial": state.IgnoredGumpSerials.Add(Arg(0)); return InjectionValue.Unit;

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "clearinfowindow": bridge.TextClear(); return InjectionValue.Unit;

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "clienthide": bridge.ClientHide(Arg(0)); return InjectionValue.True;

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "clientprintex":

                    bridge.CharPrintEx(Arg(0), Arg(1), Arg(2), Text(3)); return InjectionValue.Unit;

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "getarstatus": return new InjectionValue(bridge.GetAutoReconnect());

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "getint": return new InjectionValue(arguments.Length > 0 ? bridge.GetIntelligence(Arg(0)) : bridge.Intelligence);

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "getz": return new InjectionValue(bridge.GetZ(Arg(0, bridge.Self)));

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "ignoreoff": bridge.Unignore(Arg(0)); return InjectionValue.Unit;

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "ignore": bridge.Ignore(Arg(0)); return InjectionValue.Unit;

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "isobjectexists": return new InjectionValue(bridge.Exists(Arg(0)));

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "iswaittargetactive": return new InjectionValue(Waiting());

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "linecount": return new InjectionValue(bridge.JournalMatchCount());

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "moveboat": bridge.MoveBoat(Arg(0), Arg(1)); return InjectionValue.Unit;

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "numgumpcheckbox": return SetIndexedGumpValue(Arg(0), "checkbox", Arg(1), Text(2));

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "objatlayerex": return new InjectionValue(bridge.ObjAtLayerEx(Arg(0), Arg(1)));

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "partyacceptinvite": bridge.PartyAcceptInvite(); return InjectionValue.Unit;

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "partydeclineinvite": bridge.PartyDeclineInvite(); return InjectionValue.Unit;

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "partyleave": bridge.PartyLeave(); return InjectionValue.Unit;

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "predicteddirection": return new InjectionValue(ReadPredictedCoordinate(3));

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "setcontextmenuhook": bridge.SetContextMenuHook(Arg(0), Arg(1)); return InjectionValue.Unit;

InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias

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

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

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

Вызовы:

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

case "deletefindlist":

                    LegacyList("AddFindList").RemoveAll(value => LegacyListEntryMatches(value,

                        arguments));

                    break;

InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias

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

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

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

Вызовы:

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

case "gumpobject": bridge.SelectGump(Arg(0)); break;

InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias

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

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

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

Вызовы:

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

case "removering": Unequip("Ring"); break;

InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias

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

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

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

Вызовы:

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

case "selectignorelist": state.SelectedIgnoreList = Text(0).Trim(); break;

InjectionScript.Runtime.InjectionApiUO.FindType

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

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

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

public string FindType(InjectionValue type, InjectionValue color)

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

Условия:

  • `color.Kind == InjectionValueKind.String

              && (color.String.Equals("ground", StringComparison.OrdinalIgnoreCase)
    
                  || color.String.Equals("backpack", StringComparison.OrdinalIgnoreCase)
    
                  || color.String.Equals("my", StringComparison.OrdinalIgnoreCase))`
    

Вызовы:

  • color.String.Equals
  • FindType
  • ResolveType
  • ConvertContainer
  • NumberConversions.ToInt

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

public string FindType(InjectionValue type, InjectionValue color)

        {

            if (color.Kind == InjectionValueKind.String

                && (color.String.Equals("ground", StringComparison.OrdinalIgnoreCase)

                    || color.String.Equals("backpack", StringComparison.OrdinalIgnoreCase)

                    || color.String.Equals("my", StringComparison.OrdinalIgnoreCase)))

            {

                return FindType(ResolveType(type), -1, ConvertContainer(color), -1, color.String.Equals("my", StringComparison.OrdinalIgnoreCase));

            }



            return FindType(ResolveType(type), NumberConversions.ToInt(color), -1, -1, false);

        }

InjectionScript.Runtime.InjectionApiUO.GetFoundedTextID

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

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

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

public int GetFoundedTextID()

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

Вызовы:

—

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

public int GetFoundedTextID() => foundedTextId >= 0 ? foundedTextId : 0;

InjectionScript.Runtime.InjectionApiUO.GetFoundedTextIndex

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

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

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

public int GetFoundedTextIndex()

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

Вызовы:

  • reader.FindJournalEntryIndex

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

public int GetFoundedTextIndex() => selectedJournalEntry != null && bridge is IApiJournalReader reader

            ? reader.FindJournalEntryIndex(selectedJournalEntry.Identity) : foundedTextIndex;

InjectionScript.Runtime.InjectionApiUO.GetFoundedTextSerial

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

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

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

public string GetFoundedTextSerial()

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

Вызовы:

—

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

public string GetFoundedTextSerial() => selectedJournalEntry != null

            ? $"0x{unchecked((uint)selectedJournalEntry.Serial):X8}" : "0x00000000";

InjectionScript.Runtime.InjectionApiUO.GetGraphics

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

Параметры: string id

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

public string GetGraphics(string id)

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

Вызовы:

  • GetGraphics
  • GetObject

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

public string GetGraphics(string id) => GetGraphics(GetObject(id));

InjectionScript.Runtime.InjectionApiUO.GetGump

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

Параметры: string identifier, int key

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

public InjectionValue GetGump(string identifier, int key)

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

Вызовы:

  • LastGump

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

public InjectionValue GetGump(string identifier, int key) => LastGump(identifier, key);

InjectionScript.Runtime.InjectionApiUO.GetLayer

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

Параметры: InjectionValue id

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

public string GetLayer(InjectionValue id)

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

Вызовы:

  • ConvertLayer
  • bridge.GetLayer
  • GetObject

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

public string GetLayer(InjectionValue id) => ConvertLayer(bridge.GetLayer(GetObject(id)));

InjectionScript.Runtime.InjectionApiUO.GetRun

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

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

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

public int GetRun()

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

Вызовы:

  • bridge.GetRun

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

public int GetRun() => bridge.GetRun(bridge.Self);

InjectionScript.Runtime.InjectionApiUO.GetZ

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

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

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

public int GetZ()

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

Вызовы:

  • GetZ

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

public int GetZ() => GetZ("self");

InjectionScript.Runtime.InjectionApiUO.GetZ

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

Параметры: int id

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

public int GetZ(int id)

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

Вызовы:

  • bridge.GetZ

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

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

InjectionScript.Runtime.InjectionApiUO.Grab

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

Параметры: InjectionValue id

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

public int Grab(InjectionValue id)

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

Вызовы:

  • CompactGrab

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

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

InjectionScript.Runtime.InjectionApiUO.Grab

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

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

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

public int Grab(InjectionValue amount, InjectionValue id, InjectionValue container)

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

Вызовы:

  • CompactGrab

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

public int Grab(InjectionValue amount, InjectionValue id, InjectionValue container)

            => CompactGrab(new[] { amount, id, container });

InjectionScript.Runtime.InjectionApiUO.GumpExists

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

Параметры: InjectionValue firstId, InjectionValue secondId

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

public int GumpExists(InjectionValue firstId, InjectionValue secondId)

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

Вызовы:

  • bridge.GumpExists
  • NumberConversions.ToInt

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

public int GumpExists(InjectionValue firstId, InjectionValue secondId)

            => bridge.GumpExists(NumberConversions.ToInt(firstId), NumberConversions.ToInt(secondId));

InjectionScript.Runtime.InjectionApiUO.Inj2EUO

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

Параметры: InjectionValue serialValue

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

public string Inj2EUO(InjectionValue serialValue)

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

Условия:

  • value == 0

Вызовы:

  • NumberConversions.ToInt
  • result.Insert
  • result.ToString

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

public string Inj2EUO(InjectionValue serialValue)

        {

            uint value = unchecked((uint)NumberConversions.ToInt(serialValue));

            if (value == 0)

                return "A";

            var result = new StringBuilder();

            while (value > 0)

            {

                result.Insert(0, (char)('A' + value % 26));

                value /= 26;

            }

            return result.ToString();

        }

InjectionScript.Runtime.InjectionApiUO.LastGump

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

Параметры: string identifier, int key

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

public InjectionValue LastGump(string identifier, int key)

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

Вызовы:

  • ConvertGumpValue
  • bridge.GetGumpValue

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

public InjectionValue LastGump(string identifier, int key) => ConvertGumpValue(identifier, bridge.GetGumpValue(-1, identifier, key));

InjectionScript.Runtime.InjectionApiUO.MaxWeight

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

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

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

public int MaxWeight()

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

Вызовы:

—

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

public int MaxWeight() => bridge.MaxWeight;

InjectionScript.Runtime.InjectionApiUO.MoveToCanonical

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

Параметры: x, y, z, accuracy, running, accuracyZ, optimized, stepCallback, timeoutMs, maxSteps, maxDistance, avoidMobiles, openDoorsOverride, stopOnStuck

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

`private int MoveToCanonical(int x, int y, int z, int accuracy, bool running, int accuracyZ = 255,

        bool optimized = true, string stepCallback = null, int timeoutMs = 0, int maxSteps = 0,

        int maxDistance = 0, bool? avoidMobiles = null, bool? openDoorsOverride = null, bool stopOnStuck = false)`

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

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

Вызовы: PortablePathSearch.ValidPoint, bridge.IsOnline, Math.Max, Math.Min, bridge.GetX, bridge.GetY, bridge.GetZ, Math.Abs.

Условия: !PortablePathSearch.ValidPoint(x, y, z); state.MoveExitOnDisconnect != 0 && bridge.IsOnline() == 0; state.MoveCheckStamina > 0 && bridge.Stamina < state.MoveCheckStamina; !PortablePathSearch.ValidPoint(currentX, currentY, currentZ).

Вызовы:

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

private int MoveToCanonical(int x, int y, int z, int accuracy, bool running, int accuracyZ = 255,
            bool optimized = true, string stepCallback = null, int timeoutMs = 0, int maxSteps = 0,
            int maxDistance = 0, bool? avoidMobiles = null, bool? openDoorsOverride = null, bool stopOnStuck = false)
        {
            if (!PortablePathSearch.ValidPoint(x, y, z)) return 0;
            if (state.MoveExitOnDisconnect != 0 && bridge.IsOnline() == 0)
                return 0;
            if (state.MoveCheckStamina > 0 && bridge.Stamina < state.MoveCheckStamina)
                return 0;

// …
            if (!PortablePathSearch.ValidPoint(currentX, currentY, currentZ)) return 0;
// …
            if (maxDistance > 0 && requestedDistance > maxDistance)
                return 0;
            if (requestedDistance <= safeAccuracy && Math.Abs(z - currentZ) <= safeAccuracyZ)
                return 1;
// …
            if (started == 0)
                return 0;
// …
                if (ownership == null) bridge.StopMoving();
// …
                if (!IsCurrentRequest()) return 0;
                if (state.MoveExitOnDisconnect != 0 && bridge.IsOnline() == 0)
// …
                    return 0;
// …
                if (state.MoveCheckStamina > 0 && bridge.Stamina < state.MoveCheckStamina)
// …
                    return 0;
// …
                if (timeoutMs > 0 && (timeSource.Now - startedAt).TotalMilliseconds >= timeoutMs)
// …
                    return 0;
// …
                if (moved)
// …
                    if (!string.IsNullOrWhiteSpace(stepCallback)
// …
                        return 0;
// …
                    if (maxSteps > 0 && observedSteps >= maxSteps
// …
                        return 0;
// …
                else if (stopOnStuck && bridge is IApiPathPlanningState planning && planning.IsPathPlanning())
// …
                else if (stopOnStuck && (timeSource.Now - lastProgressAt).TotalMilliseconds >= 1000d)
// …
                    return 0;
// …
            if (!IsCurrentRequest()) return 0;
// …
            if ((currentX != lastX || currentY != lastY || currentZ != lastZ)
// …

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

InjectionScript.Runtime.InjectionApiUO.Picking

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

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

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

public int Picking()

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

Вызовы:

  • bridge.Picking

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

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

InjectionScript.Runtime.InjectionApiUO.Random

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

Параметры: int min, int max

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

public int Random(int min, int max)

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

Условия:

  • min > max
  • min == max
  • count <= int.MaxValue

Вызовы:

  • random.Next
  • random.NextBytes
  • BitConverter.ToUInt32

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

public int Random(int min, int max)

        {

            if (min > max)

                throw new NativeSubrutineException("UO.Random(min, max): min must not exceed max.");

            if (min == max) return min;

            long count = (long)max - min + 1;

            lock (randomSync)

            {

                if (count <= int.MaxValue)

                    return (int)(min + (long)random.Next((int)count));



                // Inclusive Int32.MaxValue and the full signed range must not

                // overflow. Rejection avoids modulo bias; reuse the four bytes.

                const ulong domain = 1UL << 32;

                ulong limit = domain - domain % (ulong)count;

                uint sample;

                do

                {

                    random.NextBytes(randomRangeBytes);

                    sample = BitConverter.ToUInt32(randomRangeBytes, 0);

                } while (sample >= limit);

                return (int)(min + (long)(sample % (ulong)count));

            }

        }

InjectionScript.Runtime.InjectionApiUO.ResolveCompactMaxZ

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

Параметры: InjectionValue value

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

private int ResolveCompactMaxZ(InjectionValue value)

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

Вызовы:

  • NumberConversions.ToInt
  • bridge.GetFindVertical
  • Math.Max

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

private int ResolveCompactMaxZ(InjectionValue value)

        {

            int parsed = NumberConversions.ToInt(value);

            return parsed < 0 ? bridge.GetFindVertical() : Math.Max(0, parsed);

        }

InjectionScript.Runtime.InjectionApiUO.Say

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

Параметры: string message

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

public void Say(string message)

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

Вызовы:

  • bridge.Say

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

public void Say(string message) => bridge.Say(message);

InjectionScript.Runtime.InjectionApiUO.Snap

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

Параметры: string name, int quality

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

public int Snap(string name, int quality)

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

Вызовы:

  • bridge.Snap
  • Math.Max
  • Math.Min

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

public int Snap(string name, int quality) => bridge.Snap(name, Math.Max(1, Math.Min(100, quality)), true);

InjectionScript.Runtime.InjectionApiUO.Snap

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

Параметры: string name, int quality, bool includeUi

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

public int Snap(string name, int quality, bool includeUi)

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

Вызовы:

  • bridge.Snap
  • Math.Max
  • Math.Min

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

public int Snap(string name, int quality, bool includeUi)

            => bridge.Snap(name, Math.Max(1, Math.Min(100, quality)), includeUi);

InjectionScript.Runtime.InjectionApiUO.TryDeserializeRecordedLegacyAction

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

Параметры: string recording, out string name, out InjectionValue[] arguments

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

private static bool TryDeserializeRecordedLegacyAction(string recording, out string name, out InjectionValue[] arguments)

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

Условия:

  • string.IsNullOrWhiteSpace(recording)
  • fields.Length < 2 || !fields[0].Equals(RecordedLegacyActionPrefix, StringComparison.Ordinal)
  • !TryDeserializeRecordedValue(fields[index], out values[index - 2])

Вызовы:

  • Array.Empty<InjectionValue>
  • string.IsNullOrWhiteSpace
  • recording.Split
  • fields[0].Equals
  • DecodeRecordingText
  • Math.Max
  • TryDeserializeRecordedValue

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

private static bool TryDeserializeRecordedLegacyAction(string recording, out string name, out InjectionValue[] arguments)

        {

            name = string.Empty;

            arguments = Array.Empty<InjectionValue>();

            if (string.IsNullOrWhiteSpace(recording)) return false;



            string[] fields = recording.Split(new[] { '\t' }, StringSplitOptions.None);

            if (fields.Length < 2 || !fields[0].Equals(RecordedLegacyActionPrefix, StringComparison.Ordinal)) return false;

            try

            {

                name = DecodeRecordingText(fields[1]);

                var values = new InjectionValue[Math.Max(0, fields.Length - 2)];

                for (int index = 2; index < fields.Length; index++)

                    if (!TryDeserializeRecordedValue(fields[index], out values[index - 2])) return false;

                arguments = values;

                return !string.IsNullOrWhiteSpace(name);

            }

            catch (FormatException)

            {

                name = string.Empty;

                arguments = Array.Empty<InjectionValue>();

                return false;

            }

        }

InjectionScript.Runtime.InjectionApiUO.UseFromGround

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

Параметры: InjectionValue type

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

public int UseFromGround(InjectionValue type)

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

Вызовы:

  • UseFromGround

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

public int UseFromGround(InjectionValue type) => UseFromGround(type, new InjectionValue(-1));

InjectionScript.Runtime.InjectionApiUO.WaitTargetObject

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

Параметры: int id1, int id2

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

public void WaitTargetObject(int id1, int id2)

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

Вызовы:

  • bridge.WaitTargetObject
  • Timer

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

public void WaitTargetObject(int id1, int id2)

        {

            bridge.WaitTargetObject(id1, id2);

            ticksTarget = Timer();

        }

InjectionScript.Runtime.InjectionApiUO.WaitingForJournalText

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

Параметры: int startTime, int maxDelay, string text, int equals

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

public void WaitingForJournalText(int startTime, int maxDelay, string text, int equals)

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

Вызовы:

  • WaitingForJournalText

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

public void WaitingForJournalText(int startTime, int maxDelay, string text, int equals)

            => WaitingForJournalText(startTime, maxDelay, text, equals, 0, InjectionValue.Zero);

InjectionScript.Runtime.InjectionApiUO.Register [FindType]

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

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

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

values

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

Результат: CompactFindType(values[0], values[1], values[2], values[3], values[4], values[5]).

Вызовы: CompactFindType.

Вызовы:

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

values =>

                CompactFindType(values[0], values[1], values[2], values[3], values[4], values[5])

InjectionScript.Runtime.InjectionApiUO.Register [Follow]

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

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

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

values

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

Вызовы: follow.Follow, GetObject, NumberConversions.ToInt.

Вызовы:

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

values => new InjectionValue(bridge is IApiFollowBridge follow

                        ? follow.Follow(count == 0 ? 0 : GetObject(values[0]),

                            count < 2 ? 1 : NumberConversions.ToInt(values[1]),

                            count < 3 || NumberConversions.ToInt(values[2]) != 0) : 0)

InjectionScript.Runtime.InjectionApiUO.RegisterCharacterGetterAliases [GetFlying]

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

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

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

serial

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

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

Вызовы: bridge.Flying.

Вызовы:

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

serial => bridge.Flying(serial)

InjectionScript.Runtime.InjectionApiUO.RegisterCharacterGetterAliases [GetMaxWeight]

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

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

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

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

Вызовы:

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

() => bridge.MaxWeight

InjectionScript.Runtime.InjectionApiUO.RegisterCharacterGetterAliases [GetStr]

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

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

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

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

Вызовы:

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

() => bridge.Strength

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.NativeSubrutineMetadata.TryGet

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

Параметры: string name, IEnumerable<InjectionValue> argumentValues, out NativeSubrutineDefinition subrutineDefinition

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

public bool TryGet(string name, IEnumerable<InjectionValue> argumentValues, out NativeSubrutineDefinition subrutineDefinition)

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

Условия:

  • !byName.TryGetValue(name, out var arities)
  • !arities.TryGetValue(arguments.Count, out var overloads)
  • kind == InjectionValueKind.Any
  • kind == arguments[i].Kind

Вызовы:

  • byName.TryGetValue
  • argumentValues.ToArray
  • arities.TryGetValue
  • StringComparer.OrdinalIgnoreCase.Compare
  • candidate.GetSignature
  • wildcard.GetSignature

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

public bool TryGet(string name, IEnumerable<InjectionValue> argumentValues, out NativeSubrutineDefinition subrutineDefinition)
        {
            subrutineDefinition = null;
            // A script procedure is not a native. Avoid scanning the entire API
            // (over 1600 registrations) twice for every ordinary helper call.
            if (!byName.TryGetValue(name, out var arities)) return false;
            var arguments = argumentValues as IReadOnlyList<InjectionValue> ?? argumentValues.ToArray();
            if (!arities.TryGetValue(arguments.Count, out var overloads)) return false;
            NativeSubrutineDefinition allAny = null, wildcard = null;
            int bestWildcardCount = int.MaxValue;
            foreach (var candidate in overloads)
            {
                bool compatible = true, exact = true;
                int anyCount = 0;
                for (int i = 0; i < arguments.Count; i++)
                {
                    var kind = candidate.ParameterKinds[i];
                    if (kind == InjectionValueKind.Any) anyCount++;
                    if (kind == arguments[i].Kind) continue;
                    exact = false;
                    if (kind != InjectionValueKind.Any) { compatible = false; break; }
                }
                if (exact && compatible) { subrutineDefinition = candidate; return true; }
                if (!compatible) continue;
                if (anyCount == arguments.Count) { allAny = candidate; continue; }
                if (anyCount < bestWildcardCount || (anyCount == bestWildcardCount
                    && StringComparer.OrdinalIgnoreCase.Compare(candidate.GetSignature(), wildcard.GetSignature()) < 0))
                { wildcard = candidate; bestWildcardCount = anyCount; }
            }
            // Preserve existing dispatch precedence: exact, all-Any adapter,
            // then the most specific mixed signature with its stable tie-break.
            subrutineDefinition = allAny ?? wildcard;
            return subrutineDefinition != null;
        }

InjectionScript.Runtime.PortablePathSearch.Find

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

Параметры: startX, startY, startZ, finishX, finishY, finishZ, accuracy, accuracyZ, maxSteps, diagonal, checkStep, checkCancellation, scheduleSlice

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

`internal static (int X, int Y, int Z)[] Find(

        int startX, int startY, int startZ, int finishX, int finishY, int finishZ,

        int accuracy, int accuracyZ, int maxSteps, bool diagonal,

        Func<int, int, int, int, int, int?> checkStep, Action checkCancellation, Action<Action> scheduleSlice)`

Результат: (int X, int Y, int Z)[].

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

Вызовы: Array.Empty<(int, int, int)>, ValidPoint, Comparer<Node>.Create, Math.Min, Estimate, open.Add, checkCancellation, scheduleSlice.

Условия: !ValidPoint(startX, startY, startZ) || !ValidPoint(finishX, finishY, finishZ); start.Estimate > limit.

Вызовы:

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

internal static (int X, int Y, int Z)[] Find(
            int startX, int startY, int startZ, int finishX, int finishY, int finishZ,
            int accuracy, int accuracyZ, int maxSteps, bool diagonal,
            Func<int, int, int, int, int, int?> checkStep, Action checkCancellation, Action<Action> scheduleSlice)
        {
            var empty = Array.Empty<(int, int, int)>();
            if (!ValidPoint(startX, startY, startZ) || !ValidPoint(finishX, finishY, finishZ))
                return empty;

            int Estimate(int x, int y)
// …
                return diagonal ? Math.Max(dx, dy) : dx + dy;
// …
                if (order == 0) order = a.Estimate.CompareTo(b.Estimate);
                return order == 0 ? a.Order.CompareTo(b.Order) : order;
// …
            if (start.Estimate > limit) return empty;
// …
                    if (sliceNodes > 1 && Stopwatch.GetTimestamp() - sliceStarted >= Stopwatch.Frequency / 1000)
                        return;
// …
                    if (best[current.Point] != current) continue;
// …
                    if (current.Estimate == 0 && Math.Abs(finishZ - p.Z) <= accuracyZ)
// …
                        return;
// …
                    if (expanded++ >= ExpansionLimit) { completed = true; return; }
                    if (current.Steps >= limit) continue;
// …
                        if (x < 0 || x > ushort.MaxValue || y < 0 || y > ushort.MaxValue) continue;
// …
                        if (steps + estimate > limit) continue;
// …
                        if (!z.HasValue || !ValidPoint(x, y, z.Value)) continue;
// …
                        if (best.TryGetValue(key, out Node previous) && previous.Steps <= steps) continue;
// …
                        if (previous != null) open.Remove(previous);
// …
            return result;
// …

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

InjectionScript.Runtime.State.NamedTypes.TryGet

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

Параметры: string name, out int graphic

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

public bool TryGet(string name, out int graphic)

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

Вызовы:

  • values.TryGetValue
  • (name ?? string.Empty).Trim

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

public bool TryGet(string name, out int graphic)
        {
            lock (gate) return values.TryGetValue((name ?? string.Empty).Trim(), out graphic);
        }

InjectionScript.Runtime.State.RuntimeDictionary.Set

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

Параметры: string name, T value

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

public void Set(string name, T value)

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

Условия:

  • !items.ContainsKey(name)
  • notify

Вызовы:

  • items.ContainsKey
  • items.Add
  • .Invoke

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

public void Set(string name, T value)

        {

            bool notify = true;



            lock (itemsLock)

            {

                if (!items.ContainsKey(name))

                {

                    items.Add(name, value);

                    notify = true;

                }

                else

                    items[name] = value;

            }



            if (notify)

                KeyAdded?.Invoke(name);

        }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.CountDirectItems

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

Параметры: int type, int color, int containerId

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

public int CountDirectItems(int type, int color, int containerId)

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

Условия:

  • MatchesFindIdentity(item, type, color, ignoredTypes) && MatchesFindContainer(item, containerId, range, false)
  • IsGroundFindContainer(containerId)
  • MatchesFindMobile(mobile, type, color, range, ignoredTypes)

Вызовы:

  • Invoke
  • State.IgnoreTypeLists.FilterFor
  • ResolveFindRange
  • MatchesFindIdentity
  • MatchesFindContainer
  • Math.Max
  • IsGroundFindContainer
  • MatchesFindMobile

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

public int CountDirectItems(int type, int color, int containerId) => Invoke(() =>
        {
            IgnoreTypeFilter ignoredTypes = State.IgnoreTypeLists.FilterFor(State.SelectedIgnoreList);
            int range = ResolveFindRange(State.FindDistance);
            int quantity = 0;
            foreach (Item item in _world.Items.Values)
                if (MatchesFindIdentity(item, type, color, ignoredTypes)
                    && MatchesFindContainer(item, containerId, range, false))
                    quantity = checked(quantity + Math.Max(1, (int)item.Amount));
            if (IsGroundFindContainer(containerId))
                foreach (Mobile mobile in _world.Mobiles.Values)
                    if (MatchesFindMobile(mobile, type, color, range, ignoredTypes))
                        quantity = checked(quantity + 1);
            return quantity;
        });

Clone this wiki locally