Skip to content

RU Runtime Helpers 3

Codex edited this page Oct 17, 2026 · 3 revisions

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

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

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

ClassicUO.Configuration.ProfileManager.ValidateFields

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

Параметры: Profile profile

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

internal static void ValidateFields(Profile profile)

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

Условия:

  • profile == null
  • string.IsNullOrEmpty(profile.ServerName)
  • string.IsNullOrEmpty(profile.Username)
  • string.IsNullOrEmpty(profile.CharacterName)

Вызовы:

  • Math.Clamp
  • string.IsNullOrEmpty
  • BackNewbieAutomationManager.ClampAutoLootDelay
  • BackNewbieRuleLists.CreateDefault
  • BackNewbieRuleLists.Normalize
  • BackNewbieItemLabelManager.NormalizeProfile
  • profile.BackNewbieSpellCastTimeOverrides.Remove

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

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

internal static void ValidateFields(Profile profile)
        {
            if (profile == null)
            {
                return;
            }

            profile.BackNewbieObstacleScanDistance = Math.Clamp(profile.BackNewbieObstacleScanDistance, 0, 5);
// …
            if (string.IsNullOrEmpty(profile.ServerName))
// …
                throw new InvalidDataException();
// …
            if (string.IsNullOrEmpty(profile.Username))
// …
                throw new InvalidDataException();
// …
            if (string.IsNullOrEmpty(profile.CharacterName))
// …
                throw new InvalidDataException();
// …
            if (profile.WindowClientBounds.X < 600)
// …
            if (profile.WindowClientBounds.Y < 480)
// …
                if (spellId <= 0)
// …
            profile.YokoIdeCommandSidebarWidth = Math.Clamp(profile.YokoIdeCommandSidebarWidth, 360, 560);
            profile.YokoIdeInspectorApiHeight = Math.Clamp(profile.YokoIdeInspectorApiHeight, 54, 260);
            profile.YokoIdeInspectorCommandHeight = Math.Clamp(profile.YokoIdeInspectorCommandHeight, 60, 520);
            profile.YokoIdeBottomPrimaryPercent = Math.Clamp(profile.YokoIdeBottomPrimaryPercent, 35, 70);
            profile.YokoIdeBottomWatchPercent = Math.Clamp(profile.YokoIdeBottomWatchPercent, 15, 35);
            profile.YokoAutoloadWidth = Math.Clamp(profile.YokoAutoloadWidth, 980, 1800);
            profile.YokoAutoloadHeight = Math.Clamp(profile.YokoAutoloadHeight, 620, 1200);
        }

ClassicUO.Game.GameActions.RequestPartyInviteByTarget

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

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

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

public static void RequestPartyInviteByTarget()

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

Вызовы:

  • Socket.Send_PartyInviteRequest

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

public static void RequestPartyInviteByTarget()
        {
            Socket.Send_PartyInviteRequest();
        }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.AttackLast

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

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

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

public int AttackLast()

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

Условия:

  • !last.IsEntity

Вызовы:

  • Invoke
  • GameActions.Attack

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

public int AttackLast() => Invoke(() =>

        {

            LastTargetInfo last = _world.TargetManager.LastTargetInfo;

            if (!last.IsEntity)

                return 0;



            GameActions.Attack(_world, last.Serial);

            return 1;

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Cast

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

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

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

public int Cast(int spellId)

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

Условия:

  • spellId <= 0 || IsOnline() == 0 || Dead() != 0

Вызовы:

  • IsOnline
  • Dead
  • Invoke
  • GameActions.CastSpell
  • ToClassicUOCastIndex

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

public int Cast(int spellId)

        {

            if (spellId <= 0 || IsOnline() == 0 || Dead() != 0)

                return 0;

            Invoke(() => GameActions.CastSpell(ToClassicUOCastIndex(spellId)));

            return 1;

        }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.CheckWorldStep

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

Параметры: int currentX, int currentY, int currentZ, int destinationX, int destinationY, int map

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

public int[] CheckWorldStep(int currentX, int currentY, int currentZ, int destinationX, int destinationY, int map)

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

Условия:

  • _world.Map == null || _world.Player?.Pathfinder == null || _world.Player.IsDestroyed || map != _world.MapIndex

  • `(uint)currentX > ushort.MaxValue || (uint)currentY > ushort.MaxValue

              || (uint)destinationX > ushort.MaxValue || (uint)destinationY > ushort.MaxValue
    
              || currentZ < sbyte.MinValue || currentZ > sbyte.MaxValue
    
              || blocks == null || (uint)map >= blocks.GetLength(0) || blocks.GetLength(1) < 2
    
              || blocks[map, 0] <= 0 || blocks[map, 1] <= 0
    
              || (currentX >> 3) >= blocks[map, 0] || (currentY >> 3) >= blocks[map, 1]
    
              || (destinationX >> 3) >= blocks[map, 0] || (destinationY >> 3) >= blocks[map, 1]`
    
  • Math.Abs(deltaX) > 1 || Math.Abs(deltaY) > 1

  • direction < 0

Вызовы:

  • Invoke
  • blocks.GetLength
  • Math.Abs
  • Math.Sign
  • _world.Player.Pathfinder.CanWalkForQuery

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

public int[] CheckWorldStep(int currentX, int currentY, int currentZ, int destinationX, int destinationY, int map) => Invoke(() =>

        {

            if (_world.Map == null || _world.Player?.Pathfinder == null || _world.Player.IsDestroyed || map != _world.MapIndex)

            {

                return new[] { 0, currentZ };

            }



            // Validate before the identity shortcut and before coordinate arithmetic.

            // Otherwise an absent map cell can report success without touching terrain.

            int[,] blocks = Client.UO?.FileManager?.Maps?.MapBlocksSize;

            if ((uint)currentX > ushort.MaxValue || (uint)currentY > ushort.MaxValue

                || (uint)destinationX > ushort.MaxValue || (uint)destinationY > ushort.MaxValue

                || currentZ < sbyte.MinValue || currentZ > sbyte.MaxValue

                || blocks == null || (uint)map >= blocks.GetLength(0) || blocks.GetLength(1) < 2

                || blocks[map, 0] <= 0 || blocks[map, 1] <= 0

                || (currentX >> 3) >= blocks[map, 0] || (currentY >> 3) >= blocks[map, 1]

                || (destinationX >> 3) >= blocks[map, 0] || (destinationY >> 3) >= blocks[map, 1])

                return new[] { 0, currentZ };



            int deltaX = destinationX - currentX;

            int deltaY = destinationY - currentY;

            if (Math.Abs(deltaX) > 1 || Math.Abs(deltaY) > 1)

                return new[] { 0, currentZ };



            int dx = Math.Sign(deltaX);

            int dy = Math.Sign(deltaY);

            int direction = dx == 0

                ? (dy < 0 ? 0 : dy > 0 ? 4 : -1)

                : dy == 0

                    ? (dx > 0 ? 2 : 6)

                    : dx > 0

                        ? (dy < 0 ? 1 : 3)

                        : (dy > 0 ? 5 : 7);

            if (direction < 0) return new[] { 1, currentZ };



            Direction actualDirection = (Direction)direction;

            int x = currentX;

            int y = currentY;

            sbyte z = (sbyte)currentZ;

            bool passable = _world.Player.Pathfinder.CanWalkForQuery(ref actualDirection, ref x, ref y, ref z)

                && x == destinationX && y == destinationY;

            return new[] { passable ? 1 : 0, (int)z };

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.ClientMarkChar

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

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

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

public void ClientMarkChar(int actionIndex, int id)

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

Условия:

  • actionIndex is 1 or 3
  • actionIndex is 2 or 3
  • actionIndex < 1 || actionIndex > 3

Вызовы:

  • Invoke
  • _world.TargetManager.LastTargetInfo.SetEntity
  • Error

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

public void ClientMarkChar(int actionIndex, int id) => Invoke(() =>

        {

            if (actionIndex is 1 or 3)

            {

                _world.TargetManager.LastTargetInfo.SetEntity((uint)id);

            }

            if (actionIndex is 2 or 3)

            {

                _world.TargetManager.LastAttack = (uint)id;

            }

            if (actionIndex < 1 || actionIndex > 3)

            {

                Error("UO.ClientMarkChar: ActionIndex must be 1 (LastTarget), 2 (LastAttack), or 3 (both)");

            }

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.ClientPath

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

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

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

public string ClientPath

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

Вызовы:

—

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

public string ClientPath => CUOEnviroment.ExecutablePath;

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.FindTypes

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

Параметры: int[] types, int[] colors, int[] containers, bool recursive

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

public int FindTypes(int[] types, int[] colors, int[] containers, bool recursive)

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

Условия:

  • `!MatchesFindIdentity(item, wantedTypes, wantedColors, ignoredTypes)

                      || !wantedContainers.Any(container => MatchesFindContainer(item, container, effectiveRange, recursive))`
    
  • wantedContainers.Any(IsGroundFindContainer)

  • !MatchesFindMobile(mobile, wantedTypes, wantedColors, effectiveRange, ignoredTypes)

Вызовы:

  • Invoke
  • ResetFindResults
  • State.IgnoreTypeLists.FilterFor
  • BuildFindIdentityMask
  • ResolveFindRange
  • MatchesFindIdentity
  • wantedContainers.Any
  • MatchesFindContainer
  • RegisterFound
  • MatchesFindMobile

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

public int FindTypes(int[] types, int[] colors, int[] containers, bool recursive)

        {

            return Invoke(() =>

            {

                ResetFindResults();

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

                HashSet<ushort> wantedTypes = BuildFindIdentityMask(types);

                HashSet<ushort> wantedColors = BuildFindIdentityMask(colors);

                int[] wantedContainers = containers == null || containers.Length == 0 ? new[] { -1 } : containers;

                int effectiveRange = ResolveFindRange(State.FindDistance);



                foreach (Item item in _world.Items.Values)

                {

                    if (!MatchesFindIdentity(item, wantedTypes, wantedColors, ignoredTypes)

                        || !wantedContainers.Any(container => MatchesFindContainer(item, container, effectiveRange, recursive)))

                    {

                        continue;

                    }



                    RegisterFound(item);

                }



                if (wantedContainers.Any(IsGroundFindContainer))

                {

                    foreach (Mobile mobile in _world.Mobiles.Values)

                    {

                        if (!MatchesFindMobile(mobile, wantedTypes, wantedColors, effectiveRange, ignoredTypes))

                        {

                            continue;

                        }



                        RegisterFound(mobile);

                    }

                }



                return _findItem;

            });

        }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetAutoSellDelay

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

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

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

public int GetAutoSellDelay()

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

Вызовы:

  • Invoke

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

public int GetAutoSellDelay() => Invoke(() => ProfileManager.CurrentProfile?.BackNewbieAutoSellDelay ?? 3);

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetBuffBarInfo

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

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

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

public string[] GetBuffBarInfo()

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

Вызовы:

  • Invoke

  • `.BuffIcons.Values

          .Select(buff => string.Join("|",
    
              (int)buff.Type,
    
              buff.Graphic,
    
              buff.Timer == uint.MaxValue ? -1 : Math.Max(0L, buff.Timer - Time.Ticks),
    
              buff.Text ?? string.Empty))
    
          .ToArray`
    
  • `.BuffIcons.Values

          .Select`
    
  • string.Join

  • Math.Max

  • Array.Empty<string>

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

public string[] GetBuffBarInfo() => Invoke(() => _world.Player?.BuffIcons.Values

            .Select(buff => string.Join("|",

                (int)buff.Type,

                buff.Graphic,

                buff.Timer == uint.MaxValue ? -1 : Math.Max(0L, buff.Timer - Time.Ticks),

                buff.Text ?? string.Empty))

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

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetGumpButtonsDescription

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

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

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

public string[] GetGumpButtonsDescription(int index)

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

Вызовы:

  • Invoke

  • ServerGumpsUnsafe().ElementAtOrDefault

  • ServerGumpsUnsafe

  • Array.Empty<string>

  • `Descendants(gump)

              .Where(IsButtonControl).Select(DescribeControl).ToArray`
    
  • `Descendants(gump)

              .Where(IsButtonControl).Select`
    
  • `Descendants(gump)

              .Where`
    
  • Descendants

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

public string[] GetGumpButtonsDescription(int index) => Invoke(() =>

        {

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

            return gump == null ? Array.Empty<string>() : Descendants(gump)

                .Where(IsButtonControl).Select(DescribeControl).ToArray();

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetJournalText

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

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

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

public string GetJournalText(int index)

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

Вызовы:

  • GetJournalEntry

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

public string GetJournalText(int index) => GetJournalEntry(index)?.Text ?? string.Empty;

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetSurfaceZ

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

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

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

public int GetSurfaceZ(int x, int y, int map)

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

Условия:

  • _world.Map == null || map != _world.MapIndex
  • tile is Land land

Вызовы:

  • Invoke
  • Error
  • _world.Map.GetTile

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

public int GetSurfaceZ(int x, int y, int map) => Invoke(() =>

        {

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

            {

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

                return 0;

            }



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

            {

                if (tile is Land land) return land.AverageZ;

            }

            return 0;

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetTileDataName

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

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

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

public string GetTileDataName(int group, int tileId)

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

Условия:

  • group == 0 && tileId >= 0 && tileId < Client.UO.FileManager.TileData.LandData.Length
  • group != 0 && tileId >= 0 && tileId < Client.UO.FileManager.TileData.StaticData.Length

Вызовы:

  • Invoke

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

public string GetTileDataName(int group, int tileId) => Invoke(() =>

        {

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

                return Client.UO.FileManager.TileData.LandData[tileId].Name ?? string.Empty;

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

                return Client.UO.FileManager.TileData.StaticData[tileId].Name ?? string.Empty;

            return string.Empty;

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetTileXYM

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

Параметры: int x, int y, int map, int tileStart, int tileEnd, string uoPath

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

public int[] GetTileXYM(int x, int y, int map, int tileStart, int tileEnd, string uoPath)

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

Условия:

  • _world.Map == null || map != _world.MapIndex
  • tile.Graphic < tileStart || tile.Graphic > tileEnd

Вызовы:

  • Invoke
  • Error
  • Array.Empty<int>
  • _world.Map.GetTile
  • result.Add
  • result.ToArray

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

public int[] GetTileXYM(int x, int y, int map, int tileStart, int tileEnd, string uoPath) => Invoke(() =>

        {

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

            {

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

                return Array.Empty<int>();

            }

            var result = new List<int>();

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

            {

                if (tile.Graphic < tileStart || tile.Graphic > tileEnd)

                    continue;

                result.Add(tile.Graphic);

                result.Add(tile.X);

                result.Add(tile.Y);

                result.Add(tile.Z);

            }

            return result.ToArray();

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.LastStatus

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

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

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

public int LastStatus

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

Вызовы:

  • Invoke

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

public int LastStatus => Invoke(() => unchecked((int)_world.LastStatus));

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Mana

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

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

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

public int Mana

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

Вызовы:

  • Invoke

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

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

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.MassPriceMove

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

Параметры: int delayMs, int quantity, int type, int price, int destination, int x, int y, int z

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

public void MassPriceMove(int delayMs, int quantity, int type, int price, int destination, int x, int y, int z)

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

Вызовы:

  • Invoke
  • _manager.CancelVendorPrices
  • _manager.MassMover.Configure

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

public void MassPriceMove(int delayMs, int quantity, int type, int price, int destination, int x, int y, int z)

            => Invoke(() =>

            {

                _manager.CancelVendorPrices();

                _manager.MassMover.Configure(delayMs, quantity, type, destination, x, y, z, price);

            });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.MaxWeight

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

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

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

public int MaxWeight

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

Вызовы:

  • Invoke

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

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

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.MoveBoat

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

Параметры: int direction, int speed

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

public void MoveBoat(int direction, int speed)

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

Вызовы:

  • Invoke
  • _world.BoatMovingManager.MoveRequest
  • Math.Max
  • Math.Min

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

public void MoveBoat(int direction, int speed) => Invoke(() =>

            _world.BoatMovingManager.MoveRequest((Direction)(direction & 7), (byte)Math.Max(0, Math.Min(byte.MaxValue, speed))));

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.OpenIDE

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

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

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

public void OpenIDE(string filePath)

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

Вызовы:

  • string.IsNullOrWhiteSpace
  • Path.IsPathRooted
  • Path.Combine
  • Invoke
  • YokoScriptEditorGump.Open

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

public void OpenIDE(string filePath)

        {

            string requested = string.IsNullOrWhiteSpace(filePath)

                ? null

                : Path.IsPathRooted(filePath) ? filePath : Path.Combine(_manager.AutoloadPath, filePath);

            Invoke(() => YokoScriptEditorGump.Open(_world, requested));

        }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.RClick

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

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

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

public void RClick(int x, int y)

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

Вызовы:

  • Invoke
  • WarpMouse
  • MouseButton

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

public void RClick(int x, int y) => Invoke(() =>

        {

            WarpMouse(x, y);

            MouseButton(0x0008, 0x0010);

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.RemoveUserStatic

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

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

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

public void RemoveUserStatic(int id)

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

Вызовы:

  • Invoke
  • _manager.RemoveUserStatic

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

public void RemoveUserStatic(int id) => Invoke(() => _manager.RemoveUserStatic(id));

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.RequireGameView

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

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

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

private static GameController RequireGameView(string command)

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

Вызовы:

—

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

private static GameController RequireGameView(string command) => Client.Game

            ?? throw new InvalidOperationException(command + " requires an open graphical ClassicUO window. Open it in Manager.");

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.ResolveAbility

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

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

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

public int ResolveAbility(string abilityNameOrId)

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

Вызовы:

  • ResolveClassicUOAbilityId

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

public int ResolveAbility(string abilityNameOrId) => ResolveClassicUOAbilityId(abilityNameOrId);

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.ResolveClassicUOSpellId

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

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

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

internal static int ResolveClassicUOSpellId(string spellNameOrId)

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

Условия:

  • int.TryParse(requested, NumberStyles.Integer, CultureInfo.InvariantCulture, out int numericId)

  • normalized.Length == 0

  • `NormalizeSpellName(spell.Name) == normalized

                  || NormalizeSpellName(spell.PowerWords) == normalized`
    

Вызовы:

  • (spellNameOrId ?? string.Empty).Trim
  • int.TryParse
  • SpellDefinition.FullIndexGetSpell
  • NormalizeSpellName
  • EnumerateClassicUOSpells

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

internal static int ResolveClassicUOSpellId(string spellNameOrId)

        {

            string requested = (spellNameOrId ?? string.Empty).Trim();

            if (int.TryParse(requested, NumberStyles.Integer, CultureInfo.InvariantCulture, out int numericId))

            {

                SpellDefinition numericSpell = SpellDefinition.FullIndexGetSpell(numericId);

                return numericSpell != null && numericSpell.ID == numericId ? numericId : 0;

            }



            string normalized = NormalizeSpellName(requested);

            if (normalized.Length == 0)

                return 0;



            foreach (SpellDefinition spell in EnumerateClassicUOSpells())

            {

                if (NormalizeSpellName(spell.Name) == normalized

                    || NormalizeSpellName(spell.PowerWords) == normalized)

                    return spell.ID;

            }



            return 0;

        }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SetAutoSellDelay

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

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

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

public void SetAutoSellDelay(int value)

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

Условия:

  • ProfileManager.CurrentProfile == null

Вызовы:

  • Invoke
  • Math.Clamp
  • ProfileManager.SaveCurrentProfile

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

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

        {

            if (ProfileManager.CurrentProfile == null) return;

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

            ProfileManager.SaveCurrentProfile();

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SetJournalLength

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

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

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

public void SetJournalLength(int length)

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

Вызовы:

  • Invoke
  • _manager.SetJournalLength

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

public void SetJournalLength(int length) => Invoke(() => _manager.SetJournalLength(length));

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.StealthCnt

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

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

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

public int StealthCnt()

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

Условия:

  • player == null || !player.IsHidden
  • _lastStealthX >= 0 && _lastStealthY >= 0

Вызовы:

  • Invoke
  • Math.Max
  • Math.Abs

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

public int StealthCnt() => Invoke(() =>

        {

            PlayerMobile player = _world.Player;

            if (player == null || !player.IsHidden)

            {

                _stealthCount = 0;

                _lastStealthX = player?.X ?? -1;

                _lastStealthY = player?.Y ?? -1;

                return 0;

            }



            if (_lastStealthX >= 0 && _lastStealthY >= 0)

            {

                _stealthCount += Math.Max(Math.Abs(player.X - _lastStealthX), Math.Abs(player.Y - _lastStealthY));

            }

            _lastStealthX = player.X;

            _lastStealthY = player.Y;

            return _stealthCount;

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.StopBoat

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

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

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

public void StopBoat()

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

Вызовы:

  • Invoke
  • _world.BoatMovingManager.MoveRequest

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

public void StopBoat() => Invoke(() =>

            _world.BoatMovingManager.MoveRequest(_world.Player?.Direction ?? Direction.North, 0));

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Track

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

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

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

public void Track(int x, int y)

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

Вызовы:

  • Invoke
  • _world.CharacterPanels.SetArrow

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

public void Track(int x, int y) => Invoke(() => _world.CharacterPanels.SetArrow(SessionCharacterPanels.TrackSerial, true, x, y));

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.TradeName

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

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

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

public string TradeName(int windowIndex)

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

Вызовы:

  • Invoke
  • FindTrade

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

public string TradeName(int windowIndex) => Invoke(() =>

        {

            ISessionTrade gump = FindTrade(windowIndex);

            return gump?.OpponentName ?? string.Empty;

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.UsePrimaryAbility

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

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

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

public void UsePrimaryAbility()

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

Вызовы:

  • Invoke
  • GameActions.UsePrimaryAbility

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

public void UsePrimaryAbility() => Invoke(() => GameActions.UsePrimaryAbility(_world));

ClassicUO.Game.Scenes.LoginScene.ResolveReconnectPassword

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

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

Источник: Project_Full/src/ClassicUO.Client/Game/Scenes/LoginScene.cs:339.

internal static string ResolveReconnectPassword(string account)

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

Условия:

  • `_hasCachedCredentials

              && string.Equals(account, _cachedAccount, StringComparison.Ordinal)`
    
  • string.Equals(account, Settings.GlobalSettings.Username, StringComparison.Ordinal)

Вызовы:

  • string.Equals
  • Crypter.Decrypt

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

internal static string ResolveReconnectPassword(string account)

        {

            if (_hasCachedCredentials

                && string.Equals(account, _cachedAccount, StringComparison.Ordinal))

            {

                return Crypter.Decrypt(_cachedPassword);

            }



            if (string.Equals(account, Settings.GlobalSettings.Username, StringComparison.Ordinal))

                return Crypter.Decrypt(Settings.GlobalSettings.Password);



            return string.Empty;

        }

ClassicUO.Game.UI.Gumps.WorldMapGump.RemoveYokoMapFigure

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

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

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

internal static int RemoveYokoMapFigure(int figureId)

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

Вызовы:

  • _yokoMapFigures.Remove

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

internal static int RemoveYokoMapFigure(int figureId) => _yokoMapFigures.Remove(figureId) ? 1 : 0;

ClassicUO.Game.UI.Gumps.YokoTextWindowGump.Show

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

Параметры: World world, IReadOnlyList<string> lines

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

internal static YokoTextWindowGump Show(World world, IReadOnlyList<string> lines)

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

Условия:

  • gump == null || gump.IsDisposed

Вызовы:

  • UIManager.GetGump<YokoTextWindowGump>
  • UIManager.Add
  • gump.SetLines
  • gump.SetInScreen
  • gump.BringOnTop

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

internal static YokoTextWindowGump Show(World world, IReadOnlyList<string> lines)
        {
            YokoTextWindowGump gump = UIManager.GetGump<YokoTextWindowGump>();
            if (gump == null || gump.IsDisposed)
            {
                gump = new YokoTextWindowGump(world);
                UIManager.Add(gump);
            }
            gump.SetLines(lines);
            gump.SetInScreen();
            gump.BringOnTop();
            return gump;
        }

ClassicUO.Game.World.RemoveItemFromContainer

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

Параметры: Item obj

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

public void RemoveItemFromContainer(Item obj)

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

Условия:

  • containerSerial != 0xFFFF_FFFF
  • SerialHelper.IsMobile(containerSerial)
  • SerialHelper.IsItem(containerSerial)
  • container != null

Вызовы:

  • SerialHelper.IsMobile
  • UIManager.GetGump<PaperDollGump>
  • .RequestUpdateContents
  • SerialHelper.IsItem
  • UIManager.GetGump<ContainerGump>
  • Get
  • container.Remove
  • obj.RemoveFromTile

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

public void RemoveItemFromContainer(Item obj)

        {

            uint containerSerial = obj.Container;



            // if entity is running the "dying" animation we have to reset container too.

            // SerialHelper.IsValid(containerSerial) is not ideal in this case

            if (containerSerial != 0xFFFF_FFFF)

            {

                if (SerialHelper.IsMobile(containerSerial))

                {

                    UIManager.GetGump<PaperDollGump>(containerSerial)?.RequestUpdateContents();

                }

                else if (SerialHelper.IsItem(containerSerial))

                {

                    UIManager.GetGump<ContainerGump>(containerSerial)?.RequestUpdateContents();

                }



                Entity container = Get(containerSerial);



                if (container != null)

                {

                    container.Remove(obj);

                }



                obj.Container = 0xFFFF_FFFF;

            }



            obj.Next = null;

            obj.Previous = null;

            obj.RemoveFromTile();

        }

InjectionScript.Runtime.InjectionApiUO.ApiSignatureExists

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

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

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

public int ApiSignatureExists(string name, int argumentCount)

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

Вызовы:

  • metadata.NativeSubrutineExists
  • NormalizeApiName

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

public int ApiSignatureExists(string name, int argumentCount)

            => metadata.NativeSubrutineExists(NormalizeApiName(name), argumentCount) ? 1 : 0;

InjectionScript.Runtime.InjectionApiUO.BuildWorldTileRecord

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

Параметры: string kind, int serial, int graphic, int x, int y, int z, int hue, int group

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

private InjectionValue BuildWorldTileRecord(string kind, int serial, int graphic, int x, int y, int z, int hue, int group)

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

Вызовы:

  • bridge.GetTileDataProperties
  • Array.Empty<int>
  • bridge.GetTileFlags
  • bridge.GetTileDataName

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

private InjectionValue BuildWorldTileRecord(string kind, int serial, int graphic, int x, int y, int z, int hue, int group)

        {

            int[] properties = bridge.GetTileDataProperties(group, graphic) ?? Array.Empty<int>();

            int layer = group == 0 || properties.Length < 2 ? 0 : properties[1];

            int height = group == 0 || properties.Length < 7 ? 0 : properties[6];

            return new InjectionValue(new[]

            {

                new InjectionValue(kind), new InjectionValue(serial), new InjectionValue(graphic),

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

                new InjectionValue(unchecked((int)bridge.GetTileFlags(group, graphic))),

                new InjectionValue(bridge.GetTileDataName(group, graphic)),

                new InjectionValue(layer), new InjectionValue(height)

            });

        }

InjectionScript.Runtime.InjectionApiUO.CastAtTarget

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

Параметры: InjectionValue spellName, InjectionValue target

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

private int CastAtTarget(InjectionValue spellName, InjectionValue target)

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

Условия:

  • !spellId.HasValue
  • targetSerial <= 0
  • accepted != 0

Вызовы:

  • ConvertSpellName
  • SystemMessage
  • GetObject
  • WaitTargetObject
  • bridge.Cast
  • Timer
  • bridge.CancelTarget

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

private int CastAtTarget(InjectionValue spellName, InjectionValue target)

        {

            var spellId = ConvertSpellName((string)spellName);

            if (!spellId.HasValue)

            {

                SystemMessage("Unknown spell name");

                return 0;

            }



            int targetSerial = GetObject(target);

            if (targetSerial <= 0)

            {

                SystemMessage("UO.Cast: invalid target.");

                return 0;

            }



            // The target cursor must be prepared before ClassicUO sends the cast.

            // Fast shards can return the cursor immediately, so queuing it after

            // Cast would intermittently miss the target.

            WaitTargetObject(targetSerial);

            int accepted = bridge.Cast(spellId.Value);

            if (accepted != 0)

                ticksSpell = Timer();

            else

                bridge.CancelTarget();

            return accepted;

        }

InjectionScript.Runtime.InjectionApiUO.CheckPortableLineOfSight

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

Параметры: int fromX, int fromY, int fromZ, int toX, int toY, int toZ, int map

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

private bool CheckPortableLineOfSight(int fromX, int fromY, int fromZ, int toX, int toY, int toZ, int map)

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

Условия:

  • `fromX < 0 || fromX > ushort.MaxValue || fromY < 0 || fromY > ushort.MaxValue

              || toX < 0 || toX > ushort.MaxValue || toY < 0 || toY > ushort.MaxValue
    
              || map < 0 || map > byte.MaxValue`
    
  • twice > -dy

  • twice < dx

  • state.BadLocations.Contains(x + "," + y)

Вызовы:

  • Math.Abs
  • state.BadLocations.Contains
  • bridge.CheckWorldStep
  • bridge.CheckLosCell

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

private bool CheckPortableLineOfSight(int fromX, int fromY, int fromZ, int toX, int toY, int toZ, int map)

        {

            if (fromX < 0 || fromX > ushort.MaxValue || fromY < 0 || fromY > ushort.MaxValue

                || toX < 0 || toX > ushort.MaxValue || toY < 0 || toY > ushort.MaxValue

                || map < 0 || map > byte.MaxValue)

                return false;

            int x = fromX;

            int y = fromY;

            int z = fromZ;

            int dx = Math.Abs(toX - fromX);

            int dy = Math.Abs(toY - fromY);

            int sx = fromX < toX ? 1 : -1;

            int sy = fromY < toY ? 1 : -1;

            int error = dx - dy;

            for (int guard = 0; guard < 4096 && (x != toX || y != toY); guard++)

            {

                int oldX = x;

                int oldY = y;

                int twice = error * 2;

                if (twice > -dy) { error -= dy; x += sx; }

                if (twice < dx) { error += dx; y += sy; }

                if (state.BadLocations.Contains(x + "," + y)) return false;

                int[] step = bridge.CheckWorldStep(oldX, oldY, z, x, y, map);

                if (step.Length == 0 || step[0] == 0) return false;

                if (step.Length > 1) z = step[1];



                int losOptions = state.LosOptions;

                if (losOptions != 0)

                {

                    if (bridge.CheckLosCell(x, y, z, map, losOptions) == 0)

                        return false;



                    // Sphere corner-check compatibility: for diagonal ray steps,

                    // optionally require both adjacent cardinal cells to remain clear.

                    if ((losOptions & 0x100) != 0 && x != oldX && y != oldY)

                    {

                        if (bridge.CheckLosCell(x, oldY, z, map, losOptions) == 0

                            || bridge.CheckLosCell(oldX, y, z, map, losOptions) == 0)

                            return false;

                    }

                }

            }

            return x == toX && y == toY && Math.Abs((long)z - toZ) <= 20;

        }

InjectionScript.Runtime.InjectionApiUO.CompactStepQ

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

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

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

private int CompactStepQ(InjectionValue[] values)

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

Условия:

  • values == null || values.Length < 2 || values.Length > 5
  • state.MoveExitOnDisconnect != 0 && bridge.IsOnline() == 0
  • state.MoveCheckStamina > 0 && bridge.Stamina < state.MoveCheckStamina
  • state.MoveOpenDoor != 0

Вызовы:

  • bridge.IsOnline
  • NumberConversions.ToInt
  • ToBoolean
  • Math.Max
  • bridge.TryOpenDoorForStep
  • bridge.OpenDoor
  • bridge.StepQueued
  • bridge.StepControlled

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

private int CompactStepQ(InjectionValue[] values)

        {

            if (values == null || values.Length < 2 || values.Length > 5)

                throw new NativeSubrutineException("UO.StepQ expects direction,run[,timeout[,queue[,waitForAck]]].");

            if (state.MoveExitOnDisconnect != 0 && bridge.IsOnline() == 0)

                return -1;

            if (state.MoveCheckStamina > 0 && bridge.Stamina < state.MoveCheckStamina)

                return -1;



            int direction = NumberConversions.ToInt(values[0]) & 7;

            bool running = ToBoolean(values[1]);

            int timeout = values.Length > 2 ? Math.Max(0, NumberConversions.ToInt(values[2])) : 0;

            bool queue = values.Length <= 3 || ToBoolean(values[3]);

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



            state.LastStepUsedDoor = 0;

            if (state.MoveOpenDoor != 0)

            {

                state.LastStepUsedDoor = bridge.TryOpenDoorForStep(direction);

                if (state.LastStepUsedDoor == 0)

                    bridge.OpenDoor();

            }

            if (values.Length <= 2)

                return bridge.StepQueued(direction, running);

            return bridge.StepControlled(direction, running, timeout, queue, waitForAck);

        }

InjectionScript.Runtime.InjectionApiUO.Count

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

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

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

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

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

Вызовы:

  • Count
  • ResolveType
  • NumberConversions.ToInt
  • ConvertContainer

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

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

            => Count(ResolveType(type), NumberConversions.ToInt(color), ConvertContainer(container));

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::TryMapFigureArg

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

Параметры: index, fields, figureText

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

bool TryMapFigureArg(int index, out int[] fields, out string figureText)

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

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

Вызовы: Array.Empty<int>, Array.Empty<InjectionValue>, (value.String ?? string.Empty).Split, raw.Select(part => new InjectionValue(part)).ToArray, raw.Select, NumberConversions.TryStr2Int, NumberConversions.ToInt, parts[10].ToString.

Условия: index >= arguments.Length; value.Kind == InjectionValueKind.Array; value.Kind == InjectionValueKind.String; parts.Length < 9.

Вызовы:

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

bool TryMapFigureArg(int index, out int[] fields, out string figureText)
            {
                fields = Array.Empty<int>();
                figureText = string.Empty;
                if (index >= arguments.Length)
                    return false;

                InjectionValue value = arguments[index];
                InjectionValue[] parts;
                if (value.Kind == InjectionValueKind.Array)
// …
                else if (value.Kind == InjectionValueKind.String)
// …
                    return false;
// …
                if (parts.Length < 9)
                    return false;
// …
                    if (parts[i].Kind == InjectionValueKind.String)
// …
                        if (!NumberConversions.TryStr2Int(parts[i].String, out fields[i]))
                            return false;
// …
                if (parts.Length > 9)
// …
                    if (parts[9].Kind == InjectionValueKind.String)
// …
                        if (!NumberConversions.TryStr2Int(parts[9].String, out fields[9]))
                            return false;
// …
                if (parts.Length > 10)
// …
                return true;
// …

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

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "calcdir": return new InjectionValue(CalculateDirection(Arg(0), Arg(1), Arg(2), Arg(3)));

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

Результат: new InjectionValue(CheckPortableLineOfSight(Arg(0), Arg(1), Arg(2), Arg(3), Arg(4), Arg(5), Arg(6)) ? 1 : 0).

Вызовы:

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

case "checklos": return new InjectionValue(CheckPortableLineOfSight(Arg(0), Arg(1), Arg(2), Arg(3), Arg(4), Arg(5), Arg(6)) ? 1 : 0);

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "clienttargetresponse":

                    return new InjectionValue(bridge.ClientTargetResponse().Select(value => new InjectionValue(value)).ToArray());

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Условия: bridge is IApiGumpAccess gumpAccess.

Вызовы:

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

case "closesimplegump":

                    if (bridge is IApiGumpAccess gumpAccess) gumpAccess.CloseGumpAtIndex(Arg(0));

                    else bridge.CloseSimpleGump(Arg(0));

                    return InjectionValue.Unit;

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "dex": return new InjectionValue(bridge.Dexterity);

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "dragitem": return new InjectionValue(bridge.DragItem(Arg(0), Arg(1)));

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "dropitem": return new InjectionValue(bridge.DropDraggedItem(Arg(0), Arg(1), Arg(2), Arg(3)));

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "getfindedlist":

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

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "getgumpscount": return new InjectionValue(bridge.GetGumpCount());

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "getmapcell":

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

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

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

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

case "getrunmounttimer": return new InjectionValue(state.RunMountTimer);

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "gettitle": return new InjectionValue(bridge.GetTitle(Arg(0, bridge.Self)));

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "getworlditems":

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

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

Результат: new InjectionValue(InJournalBetweenTimes(Text(0), Arg(1), Arg(2), Arg(3))); new InjectionValue(InJournalBetweenTimes(Text(0), Arg(1), Arg(2))); new InjectionValue(InJournalBetweenTimes(Text(0), Arg(1))).

Условия: arguments.Length > 3; arguments.Length > 2.

Вызовы:

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

case "injournalbetweentimes":

                    if (arguments.Length > 3)

                        return new InjectionValue(InJournalBetweenTimes(Text(0), Arg(1), Arg(2), Arg(3)));

                    if (arguments.Length > 2)

                        return new InjectionValue(InJournalBetweenTimes(Text(0), Arg(1), Arg(2)));

                    return new InjectionValue(InJournalBetweenTimes(Text(0), Arg(1)));

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "inparty": return new InjectionValue(bridge.InParty());

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "ishouse": return new InjectionValue(bridge.IsHouse(Arg(0)));

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "journal": return new InjectionValue(GetJournalText(Arg(0)));

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "maxmana": return new InjectionValue(bridge.MaxMana);

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

Вызовы:

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

case "numgumpbutton": return (bridge is IApiGumpAccess buttons

                    ? buttons.ActivateGumpButtonAtIndex(Arg(0), Arg(1)) : bridge.ActivateGumpButton(Arg(0), Arg(1))) != 0 ? InjectionValue.True : InjectionValue.False;

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

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

Вызовы:

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

case "removefigure":

                {

                    int id = Arg(0);

                    int removed = bridge.RemoveMapFigure(id);

                    state.MapFigures.Remove(id);

                    return new InjectionValue(removed);

                }

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

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

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

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

Результат: new InjectionValue(ChangeEquipmentItems(ArrayArg(0), false)).

Вызовы:

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

case "unequipitems":

                    return new InjectionValue(ChangeEquipmentItems(ArrayArg(0), false));

InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias

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

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

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

Условия: arguments.Length == 0 && bridge.RequestInteractiveTileInfoTarget() != 0.

Вызовы:

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

case "infotile":

                    if (arguments.Length == 0 && bridge.RequestInteractiveTileInfoTarget() != 0)

                        break;

                    SystemMessage(bridge.GetTileInfoText(

                        arguments.Length > 0 ? Arg(0) : bridge.GetX(bridge.Self),

                        arguments.Length > 1 ? Arg(1) : bridge.GetY(bridge.Self),

                        bridge.WorldNumber));

                    break;

InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias

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

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

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

Вызовы:

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

case "removeearrings": Unequip("Ear"); break;

InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias

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

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

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

Вызовы:

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

case "savehotkeys": bridge.SaveHotkeys(); break;

InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias

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

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

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

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

case "setrec":

                    state.RecordedAction = string.Empty;

                    recordNextLegacyAction = true;

                    break;

InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias

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

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

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

Вызовы:

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

case "sound": bridge.PlaySound(Arg(0)); break;

InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias

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

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

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

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

Вызовы:

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

case "vendormenu":

                    if (arguments.Length >= 2) bridge.AddMenuHook(Text(0), Text(1), true);

                    else bridge.UseObject(Arg(0, bridge.LastTarget));

                    break;

InjectionScript.Runtime.InjectionApiUO.FindMobile

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

Параметры: stateFilter, rangeFilter, verticalFilter, directionOrKind

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

`public int FindMobile(InjectionValue stateFilter, InjectionValue rangeFilter, InjectionValue verticalFilter,

        InjectionValue directionOrKind)`

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

Результат: FindMobile(stateFilter, rangeFilter, verticalFilter, directionOrKind, new InjectionValue("all")).

Вызовы: FindMobile.

Вызовы:

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

public int FindMobile(InjectionValue stateFilter, InjectionValue rangeFilter, InjectionValue verticalFilter,

            InjectionValue directionOrKind)

            => FindMobile(stateFilter, rangeFilter, verticalFilter, directionOrKind, new InjectionValue("all"));

InjectionScript.Runtime.InjectionApiUO.FindType

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

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

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

public string FindType(int type, int color, int containerId)

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

Вызовы:

  • FindType

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

public string FindType(int type, int color, int containerId)

            => FindType(type, color, containerId, -1, false);

InjectionScript.Runtime.InjectionApiUO.GetFlags

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

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

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

public int GetFlags(InjectionValue id)

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

Вызовы:

  • bridge.GetFlags
  • GetObject

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

public int GetFlags(InjectionValue id) => bridge.GetFlags(GetObject(id));

InjectionScript.Runtime.InjectionApiUO.GetGraphics

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

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

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

public string GetGraphics(int id)

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

Вызовы:

  • bridge.GetGraphics

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

public string GetGraphics(int id) => $"0x{bridge.GetGraphics(id):X4}";

InjectionScript.Runtime.InjectionApiUO.GetLandscapeTile

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

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

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

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

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

Вызовы:

  • ToArray
  • bridge.GetLandscapeTile
  • NumberConversions.ToInt

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

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

            => ToArray(bridge.GetLandscapeTile(NumberConversions.ToInt(x), NumberConversions.ToInt(y), NumberConversions.ToInt(map)));

InjectionScript.Runtime.InjectionApiUO.GetNotoriety

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

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

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

public int GetNotoriety(string id)

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

Вызовы:

  • GetNotoriety
  • GetObject

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

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

InjectionScript.Runtime.InjectionApiUO.GetPing

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

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

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

public int GetPing()

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

Вызовы:

  • bridge.GetPing

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

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

InjectionScript.Runtime.InjectionApiUO.GetShopList

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

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

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

public InjectionValue GetShopList()

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

Вызовы:

  • (bridge.GetShopList() ?? Array.Empty<string>()).Select(item => new InjectionValue(item)).ToArray
  • (bridge.GetShopList() ?? Array.Empty<string>()).Select
  • bridge.GetShopList
  • Array.Empty<string>

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

public InjectionValue GetShopList()

            => new InjectionValue((bridge.GetShopList() ?? Array.Empty<string>()).Select(item => new InjectionValue(item)).ToArray());

InjectionScript.Runtime.InjectionApiUO.GetX

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

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

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

public int GetX()

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

Вызовы:

  • GetX

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

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

InjectionScript.Runtime.InjectionApiUO.IsMineTile

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

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

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

public int IsMineTile(InjectionValue x, InjectionValue y)

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

Вызовы:

  • bridge.IsMineTile
  • NumberConversions.ToInt

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

public int IsMineTile(InjectionValue x, InjectionValue y) => bridge.IsMineTile(NumberConversions.ToInt(x), NumberConversions.ToInt(y));

InjectionScript.Runtime.InjectionApiUO.IsMoving

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

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

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

public int IsMoving()

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

Вызовы:

  • bridge.IsMoving

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

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

InjectionScript.Runtime.InjectionApiUO.MoveOn

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

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

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

public void MoveOn()

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

Вызовы:

  • bridge.EnableMove

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

public void MoveOn() => bridge.EnableMove(true);

InjectionScript.Runtime.InjectionApiUO.NormalizeLegacyEventHandler

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

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

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

private static string NormalizeLegacyEventHandler(string handler)

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

Условия:

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

Вызовы:

  • (handler ?? string.Empty).Trim
  • value.StartsWith
  • value.Substring(5).Trim
  • value.Substring
  • value.Substring(6).Trim

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

private static string NormalizeLegacyEventHandler(string handler)

        {

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

            if (value.StartsWith("exec ", StringComparison.OrdinalIgnoreCase))

                value = value.Substring(5).Trim();

            else if (value.StartsWith("_exec ", StringComparison.OrdinalIgnoreCase))

                value = value.Substring(6).Trim();

            return value;

        }

InjectionScript.Runtime.InjectionApiUO.ResolveType

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

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

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

private int ResolveType(InjectionValue type)

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

Условия:

  • type.Kind == InjectionValueKind.String && state.Types.TryGet(type.String, out int graphic)

Вызовы:

  • state.Types.TryGet
  • NumberConversions.ToInt

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

private int ResolveType(InjectionValue type)

        {

            if (type.Kind == InjectionValueKind.String && state.Types.TryGet(type.String, out int graphic))

                return graphic;

            return NumberConversions.ToInt(type);

        }

InjectionScript.Runtime.InjectionApiUO.SelectJournalSearchResult

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

Параметры: int result, string pattern, bool ignoreCase

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

private void SelectJournalSearchResult(int result, string pattern, bool ignoreCase)

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

Условия:

  • selectedJournalEntry != null

Вызовы:

  • SelectJournalEntry
  • reader.ReadJournalSearchResult
  • ReadJournalSnapshot
  • FindJournalPatternId

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

private void SelectJournalSearchResult(int result, string pattern, bool ignoreCase)

        {

            SelectJournalEntry(result <= 0 ? null : bridge is IApiJournalReader reader

                ? reader.ReadJournalSearchResult() : ReadJournalSnapshot(result - 1));

            if (selectedJournalEntry != null)

                foundedTextId = FindJournalPatternId(selectedJournalEntry.Text, pattern, false, ignoreCase);

        }

InjectionScript.Runtime.InjectionApiUO.SendGumpSelect

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

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

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

public int SendGumpSelect(InjectionValue serial, InjectionValue gumpId, InjectionValue triggerId, InjectionValue timeout)

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

Вызовы:

  • bridge.SendGumpSelect
  • NumberConversions.ToInt
  • Math.Max

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

public int SendGumpSelect(InjectionValue serial, InjectionValue gumpId, InjectionValue triggerId, InjectionValue timeout)

            => bridge.SendGumpSelect(NumberConversions.ToInt(serial), NumberConversions.ToInt(gumpId),

                NumberConversions.ToInt(triggerId), Math.Max(0, NumberConversions.ToInt(timeout)));

InjectionScript.Runtime.InjectionApiUO.SetClassMask

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

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

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

private int SetClassMask(InjectionValue[] args)

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

Условия:

  • groups.Any(group => group.All(forbidden.Contains))

Вызовы:

  • ReadClassName
  • required.Array.Any
  • required.Array.Select(v => ReadEquipmentGroup(v, false)).ToArray
  • required.Array.Select
  • ReadEquipmentGroup
  • groups.Any
  • group.All

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

private int SetClassMask(InjectionValue[] args)
        {
            string name = ReadClassName(args[0]);
            InjectionValue required = args[1];
            HashSet<int>[] groups = required.Kind == InjectionValueKind.Array && required.Array.Any(v => v.Kind == InjectionValueKind.Array)
                ? required.Array.Select(v => ReadEquipmentGroup(v, false)).ToArray()
                : new[] { ReadEquipmentGroup(required, false) };
            HashSet<int> forbidden = args.Length == 3 ? ReadEquipmentGroup(args[2], true) : new HashSet<int>();
            if (groups.Any(group => group.All(forbidden.Contains)))
                throw new StatementFailedException("ClassMask: a required equipment group is entirely forbidden.");
            // Construct fully before replacing; invalid edits preserve the previous rule.
            var rule = new EquipmentClassRule(groups, forbidden);
            lock (classRulesSync) classRules[name] = rule;
            return 1;
        }

InjectionScript.Runtime.InjectionApiUO.SetEquip

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

Параметры: name, equipSet, supportedLayers, successMessage

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

`private void SetEquip(string name, RuntimeDictionary equipSet, int[] supportedLayers,

        string successMessage)`

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

Вызовы: equipSet.Set, GetEquips, SystemMessage.

Вызовы:

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

private void SetEquip(string name, RuntimeDictionary<EquipSet> equipSet, int[] supportedLayers,

            string successMessage)

        {

            equipSet.Set(name, new EquipSet(GetEquips(supportedLayers)));



            SystemMessage(successMessage);

        }

InjectionScript.Runtime.InjectionApiUO.SetReceivingContainer

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

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

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

public void SetReceivingContainer(int id)

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

Условия:

  • id <= 0

Вызовы:

  • bridge.UnsetReceivingContainer
  • bridge.SetReceivingContainer

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

public void SetReceivingContainer(int id)

        {

            if (id <= 0)

                bridge.UnsetReceivingContainer();

            else

                bridge.SetReceivingContainer(id);

        }

InjectionScript.Runtime.InjectionApiUO.TradeCheck

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

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

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

public int TradeCheck(InjectionValue windowIndex)

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

Вызовы:

  • bridge.TradeCheck
  • NumberConversions.ToInt

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

public int TradeCheck(InjectionValue windowIndex)

            => bridge.TradeCheck(NumberConversions.ToInt(windowIndex), 0, 0, false);

InjectionScript.Runtime.InjectionApiUO.TradeContainer

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

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

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

public string TradeContainer(InjectionValue windowIndex)

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

Вызовы:

  • NumberConversions.ToHex
  • bridge.TradeContainer
  • NumberConversions.ToInt

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

public string TradeContainer(InjectionValue windowIndex) => NumberConversions.ToHex(bridge.TradeContainer(NumberConversions.ToInt(windowIndex)));

InjectionScript.Runtime.InjectionApiUO.UseSkill

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

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

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

public int UseSkill(string skillName)

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

Вызовы:

  • UseSkillCore

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

public int UseSkill(string skillName)

        {

            return UseSkillCore(skillName) ? 1 : 0;

        }

InjectionScript.Runtime.InjectionApiUO.RegisterCharacterGetterAliases [Dir]

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

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

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

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

Вызовы:

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

() => bridge.GetDir(bridge.Self)

InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]

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

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

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

values

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

Вызовы: FindFilteredMobileSerial, CombineMask, NumberConversions.ToInt, bridge.GetFindVertical.

Вызовы:

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

values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),

                        NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))

InjectionScript.Runtime.InjectionApiUO.Register [FindMobile]

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

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

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

values

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

Вызовы: FindMobile.

Вызовы:

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

values => new InjectionValue(

                    FindMobile(values[0], values[1], values[2], values[3], values[4]))

InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindNotoriety]

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

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

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

values

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

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

Вызовы: CompactFindNotoriety.

Вызовы:

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

values => new InjectionValue(CompactFindNotoriety(values))

InjectionScript.Runtime.InjectionApiUO.RegisterCharacterGetterAliases [GetColdResist]

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

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

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

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

Вызовы:

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

() => bridge.ColdResistance

InjectionScript.Runtime.InjectionApiUO.RegisterCharacterGetterAliases [GetInt]

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

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

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

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

Вызовы:

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

() => bridge.Intelligence

InjectionScript.Runtime.InjectionApiUO.RegisterCharacterGetterAliases [GetParalysed]

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

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

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

serial

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

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

Вызовы: bridge.GetLocked.

Вызовы:

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

serial => bridge.GetLocked(serial)

InjectionScript.Runtime.InjectionApiUO.Register [GetPathArray3D]

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

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

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

values

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

Результат: CompactGetPathArray3D(values).

Вызовы: CompactGetPathArray3D.

Вызовы:

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

values => CompactGetPathArray3D(values)

InjectionScript.Runtime.InjectionApiUO.RegisterCharacterGetterAliases [GetWorldNum]

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

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

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

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

Вызовы:

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

() => bridge.WorldNumber

InjectionScript.Runtime.InjectionApiUO.RegisterCharacterGetterAliases [Name]

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

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

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

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

Вызовы:

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

() => bridge.GetName(bridge.Self)

InjectionScript.Runtime.InjectionApiUO.RegisterCharacterGetterAliases [Notoriety]

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

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

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

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

Вызовы:

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

() => bridge.GetNotoriety(bridge.Self)

InjectionScript.Runtime.InjectionApiUO.RegisterClassMaskApi [SetClassMask]

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

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

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

args

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

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

Вызовы: SetClassMask.

Вызовы:

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

args => new InjectionValue(SetClassMask(args))

InjectionScript.Runtime.InjectionApiUO.RegisterCharacterGetterAliases

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

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

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

value

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

Результат: getter(GetObject(value)).

Вызовы: getter, GetObject.

Вызовы:

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

value => getter(GetObject(value))

InjectionScript.Runtime.InjectionApiUO.RegisterCharacterGetterAliases

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

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

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

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

Вызовы:

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

() => getter(bridge.Self)

InjectionScript.Runtime.InjectionApiUO.RegisterCharacterGetterAliases

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

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

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

value

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

Результат: getter(GetObject(value)).

Вызовы: getter, GetObject.

Вызовы:

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

value => getter(GetObject(value))

InjectionScript.Runtime.NumberConversions.ToInt

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

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

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

public static int ToInt(InjectionValue value)

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

Вызовы:

  • ToInt

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

public static int ToInt(InjectionValue value)
        {
            switch (value.Kind)
            {
                case InjectionValueKind.Integer:
                    return value.Integer;
                case InjectionValueKind.String:
                    return ToInt(value.String);
                case InjectionValueKind.Array:
                    return 0;
                case InjectionValueKind.Decimal:
                    // Keep truncation toward zero, but reject NaN, infinities
                    // and overflow before a typed assignment or API call can
                    // store/use a runtime-dependent, silently corrupted value.
                    return checked((int)value.Decimal);
                case InjectionValueKind.Unit:
                    return 0;
                default:
                    throw new InvalidCastException($"Cannot convert {value.Kind} to Integer.");
            }
        }

InjectionScript.Runtime.State.NamedTypes.ValidateName

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

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

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

public static string ValidateName(string name)

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

Условия:

  • key.Length == 0 || key.Any(char.IsControl) || key.Contains("|") || NumberConversions.TryStr2Int(key, out _) || key.Equals("any", StringComparison.OrdinalIgnoreCase)

Вызовы:

  • (name ?? string.Empty).Trim
  • key.Any
  • key.Contains
  • NumberConversions.TryStr2Int
  • key.Equals

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

public static string ValidateName(string name)
        {
            string key = (name ?? string.Empty).Trim();
            if (key.Length == 0 || key.Any(char.IsControl) || key.Contains("|")
                || NumberConversions.TryStr2Int(key, out _) || key.Equals("any", StringComparison.OrdinalIgnoreCase))
                throw new NativeSubrutineException("UO.AddType requires a nonempty name, not a number, 'any', or a | mask.");
            return key;
        }

InjectionScript.Runtime.State.SharedGlobalStore.Get

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

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

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

public string Get(string name)

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

Вызовы:

  • ArgumentException.ThrowIfNullOrWhiteSpace
  • Snapshot
  • values.TryGetValue

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

public string Get(string name)

        {

            ArgumentException.ThrowIfNullOrWhiteSpace(name);

            var values = Snapshot();

            return values.TryGetValue(name, out var value) ? value : "N/A";

        }

Clone this wiki locally