Runtime Helpers 7 - LIHACHTETAN/ClassicUO-Bad-Newbie-CSharp-Scripts-IDE GitHub Wiki

Українська · Русский · 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;
        });
⚠️ **GitHub.com Fallback** ⚠️