Skip to content

DE Runtime Helpers C

Codex edited this page Oct 17, 2026 · 3 revisions

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

Hilfsfunktionen C

Interner Implementierungscode; kein eigenständiges Skript.

ClassicUO.CSharp.CSharpCallbacks.TryInvoke

Dieser Zweig behandelt nur den angegebenen Befehlsnamen.

Parameter: Keine Parameter.

Quelle: Project_Full/src/ClassicUO.CSharp/CSharpCallbacks.cs:416.

Ergebnis: true.

Bedingungen: Exists(called); events is ICSharpScriptHost host && host.HasCSharpScript(called).

Aufrufe:

Interner Implementierungscode; kein eigenständiges Skript.

case "CallSub":
                string called = Convert.ToString(arguments[0]) ?? "";
                if (Exists(called)) Start(called);
                else if (events is ICSharpScriptHost host && host.HasCSharpScript(called)) host.ExecuteCSharpScript("exec \"" + called + "\"");
                else throw new ArgumentException($"Register the C# routine or load a C# script entry named '{called}' before calling it.");
                return true;

ClassicUO.CSharp.CSharpCallbacks.Flag

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: object? value

Quelle: Project_Full/src/ClassicUO.CSharp/CSharpCallbacks.cs:342.

private static bool Flag(object? value)

Ergebnis: bool.

Aufrufe:

  • NumberConversions.ToInt
  • CSharpScriptGlobals.ToNative

Interner Implementierungscode; kein eigenständiges Skript.

private static bool Flag(object? value) => NumberConversions.ToInt(CSharpScriptGlobals.ToNative(value)) != 0;

ClassicUO.CSharp.CSharpScriptGlobals.Checkpoint

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: Keine Parameter.

Quelle: Project_Full/src/ClassicUO.CSharp/CSharpScriptGlobals.cs:82.

public void Checkpoint()

Ergebnis: void.

Aufrufe:

  • Verify
  • Callbacks.Process

Interner Implementierungscode; kein eigenständiges Skript.

public void Checkpoint()
    {
        Verify();
        Callbacks.Process();
    }

ClassicUO.Game.GameActions.CastSpell

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: int index

Quelle: Project_Full/src/ClassicUO.Client/Game/GameActions.cs:797.

public static void CastSpell(int index)

Ergebnis: void.

Bedingungen:

  • index >= 0

Aufrufe:

  • .BeginLocalCast
  • Socket.Send_CastSpell

Interner Implementierungscode; kein eigenständiges Skript.

public static void CastSpell(int index)
        {
            if (index >= 0)
            {
                LastSpellIndex = index;
                Client.UO.World?.BadNewbieCastBars?.BeginLocalCast(index);
                Socket.Send_CastSpell(index);
            }
        }

ClassicUO.Game.GameActions.RequestWarMode

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: PlayerMobile player, bool war

Quelle: Project_Full/src/ClassicUO.Client/Game/GameActions.cs:30.

public static void RequestWarMode(PlayerMobile player, bool war)

Ergebnis: void.

Bedingungen:

  • !player.IsDead && Client.Game?.Audio is { } audio
  • war && ProfileManager.CurrentProfile != null && ProfileManager.CurrentProfile.EnableMusic
  • !war

Aufrufe:

  • audio.PlayMusic
  • RandomHelper.GetValue
  • audio.StopWarMusic
  • Socket.Send_ChangeWarMode

Interner Implementierungscode; kein eigenständiges Skript.

public static void RequestWarMode(PlayerMobile player, bool war)
        {
            if (!player.IsDead && Client.Game?.Audio is { } audio)
            {
                if (war && ProfileManager.CurrentProfile != null && ProfileManager.CurrentProfile.EnableMusic)
                {
                    audio.PlayMusic((RandomHelper.GetValue(0, 3) % 3) + 38, true);
                }
                else if (!war)
                {
                    audio.StopWarMusic();
                }
            }

            Socket.Send_ChangeWarMode(war);
        }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.AddUserStatic

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: int id, int graphic, int x, int y, int z, int hue, int map

Quelle: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:3890.

public void AddUserStatic(int id, int graphic, int x, int y, int z, int hue, int map)

Ergebnis: void.

Aufrufe:

  • Invoke
  • _manager.AddUserStatic

Interner Implementierungscode; kein eigenständiges Skript.

public void AddUserStatic(int id, int graphic, int x, int y, int z, int hue, int map) =>

            Invoke(() => _manager.AddUserStatic(id, graphic, x, y, z, hue, map));

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.CharPrint

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: int id, int color, string msg

Quelle: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:2071.

public void CharPrint(int id, int color, string msg)

Ergebnis: void.

Aufrufe:

  • CharPrintEx

Interner Implementierungscode; kein eigenständiges Skript.

public void CharPrint(int id, int color, string msg) => CharPrintEx(id, color, 3, msg);

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.CheckLag

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: int timeoutMs

Quelle: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:341.

public int CheckLag(int timeoutMs)

Ergebnis: int.

Aufrufe:

  • TryProbeServerPing

Interner Implementierungscode; kein eigenständiges Skript.

public int CheckLag(int timeoutMs)

            => TryProbeServerPing(timeoutMs, out _) ? 1 : 0;

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.ClearAutoShopRules

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: Keine Parameter.

Quelle: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:3909.

public void ClearAutoShopRules()

Ergebnis: void.

Bedingungen:

  • profile == null

Aufrufe:

  • Invoke
  • profile.BackNewbieAutoBuyRules.Clear
  • profile.BackNewbieAutoSellRules.Clear
  • UIManager.GetGump<OptionsGump>
  • .SetBackNewbieAutomationEnabled
  • ProfileManager.SaveCurrentProfile

Interner Implementierungscode; kein eigenständiges Skript.

public void ClearAutoShopRules() => Invoke(() =>

        {

            Profile profile = ProfileManager.CurrentProfile;

            if (profile == null) return;

            profile.BackNewbieAutoBuyRules.Clear();

            profile.BackNewbieAutoSellRules.Clear();

            profile.BackNewbieAutoBuyEnabled = false;

            profile.BackNewbieAutoSellEnabled = false;

            UIManager.GetGump<OptionsGump>()?.SetBackNewbieAutomationEnabled(BackNewbieAutomationType.AutoBuy, false);

            UIManager.GetGump<OptionsGump>()?.SetBackNewbieAutomationEnabled(BackNewbieAutomationType.AutoSell, false);

            ProfileManager.SaveCurrentProfile();

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Click

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: int id

Quelle: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:777.

public void Click(int id)

Ergebnis: void.

Aufrufe:

  • Invoke
  • GameActions.SingleClick

Interner Implementierungscode; kein eigenständiges Skript.

public void Click(int id) => Invoke(() => GameActions.SingleClick(_world, (uint)id));

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Dead

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: Keine Parameter.

Quelle: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:560.

public int Dead()

Ergebnis: int.

Aufrufe:

  • Invoke

Interner Implementierungscode; kein eigenständiges Skript.

public int Dead() => Invoke(() => _world.Player?.IsDead == true ? 1 : 0);

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.DropDraggedItem

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: int targetContainerId, int x, int y, int z

Quelle: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:1386.

public int DropDraggedItem(int targetContainerId, int x, int y, int z)

Ergebnis: int.

Bedingungen:

  • item == 0

  • `hold == null || !hold.Enabled || hold.Serial != (uint)item || hold.IsFixedPosition

                  || targetContainerId == item
    
                  || (targetContainerId > 0 && _world.Get((uint)targetContainerId) == null)`
    
  • dropped

  • dropped && State.GrabDelay > 0

Aufrufe:

  • Error
  • Invoke
  • _world.Get
  • GameActions.DropItem
  • Math.Max
  • Wait

Interner Implementierungscode; kein eigenständiges Skript.

public int DropDraggedItem(int targetContainerId, int x, int y, int z)

        {

            int item = _draggedItem;

            if (item == 0)

            {

                Error("UO.DropItem: DragItem must successfully pick up an item first.");

                return 0;

            }

            bool dropped = Invoke(() =>

            {

                var hold = Client.UO?.World?.ItemHold;

                if (hold == null || !hold.Enabled || hold.Serial != (uint)item || hold.IsFixedPosition

                    || targetContainerId == item

                    || (targetContainerId > 0 && _world.Get((uint)targetContainerId) == null))

                    return false;

                GameActions.DropItem((uint)item, x, y, z, (uint)Math.Max(0, targetContainerId));

                return hold.Dropped;

            });

            if (dropped) _draggedItem = 0;

            if (dropped && State.GrabDelay > 0)

                Wait(State.GrabDelay);

            return dropped ? 1 : 0;

        }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.FindList

Liefert den Wert des folgenden Ausdrucks.

Parameter: types, colors, containerId, range, notorieties, nearest, maxZ, includeIgnored

Quelle: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:2553.

`public int FindList(int[] types, int[] colors, int containerId, int range, int[] notorieties,

        bool nearest, int maxZ, bool includeIgnored)`

Ergebnis: int.

Aufrufe: Invoke.

Aufrufe:

  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => { ResetFindResults(); IgnoreTypeFilter ignoredTypes = State.IgnoreTypeLists.FilterFor(State.SelectedIgnoreList); int[] requestedTypes = types ?? Array.Empty<int>(); int[] requestedColors = colors ?? Array.Empty<int>(); // The runtime uses this sentinel for an invalid-only mask. // Removing all negatives below would otherwise turn it into a wildcard. if (notorieties != null && Array.IndexOf(notorieties, int.MinValue) >= 0) return 0; int pairCount = Math.Max(requestedTypes.Length, requestedColors.Length); if (pairCount == 0) return 0; int effectiveRange = ResolveFindRange(range); int effectiveMaxZ = maxZ < 0 ? Math.Max(0, State.FindVertical) : Math.Max(0, maxZ); var wantedNotorieties = new HashSet<int>((notorieties ?? Array.Empty<int>()).Where(value => value >= 0)); var candidates = new List<(Entity Entity, int Priority, int Distance)>(); PlayerMobile player = _world.Player; bool IsIgnored(Entity entity) => !includeIgnored && entity != null && (State.IgnoredSerials.Contains(unchecked((int)entity.Serial)) || ignoredTypes.Matches(entity.Graphic, entity.Hue)); bool MatchesPair(Entity entity, out int priority) { priority = int.MaxValue; if (entity == null || entity.IsDestroyed || IsIgnored(entity)) return false; for (int index = 0; index < pairCount; index++) { int wantedType = index < requestedTypes.Length ? requestedTypes[index] : -1; int wantedColor = index < requestedColors.Length ? requestedColors[index] : -1; bool typeOk = wantedType < 0 || wantedType == 0xFFFF || entity.Graphic == (ushort)wantedType; bool colorOk = wantedColor < 0 || wantedColor == 0xFFFF || entity.Hue == (ushort)wantedColor; if (typeOk && colorOk) { priority = index; return true; } } return false; } bool MatchesZ(Entity entity) { if (player == null || effectiveMaxZ < 0) return true; Entity zEntity = entity; if (entity is Item && containerId > 1) zEntity = _world.Get(unchecked((uint)containerId)) ?? entity; return Math.Abs(zEntity.Z - player.Z) <= effectiveMaxZ; } foreach (Item item in _world.Items.Values) { // Notoriety is a Mobile-only property: a notoriety-filtered list // must never silently return an Item. if (wantedNotorieties.Count > 0 || !MatchesPair(item, out int priority) // MatchesZ below applies the explicit maxZ override. Do not // pre-filter ground items using the runtime's default Z. || !MatchesFindContainer(item, containerId, effectiveRange, containerId == -1, checkVertical: false) || !MatchesZ(item)) continue; candidates.Add((item, priority, item.Distance)); } if (IsGroundFindContainer(containerId)) { foreach (Mobile mobile in _world.Mobiles.Values) { if (IsSelfMobile(mobile) || !MatchesPair(mobile, out int priority) || mobile.Distance > effectiveRange || !MatchesZ(mobile) || wantedNotorieties.Count > 0 && !wantedNotorieties.Contains((int)mobile.NotorietyFlag)) continue; candidates.Add((mobile, priority, mobile.Distance)); } } IEnumerable<(Entity Entity, int Priority, int Distance)> ordered = nearest ? candidates.OrderBy(candidate => candidate.Distance).ThenBy(candidate => candidate.Priority) .ThenBy(candidate => candidate.Entity.Serial) : candidates.OrderBy(candidate => candidate.Priority).ThenBy(candidate => candidate.Entity.Serial); foreach (var (entity, _, _) in ordered) { if (entity is Item item) RegisterFound(item); else if (entity is Mobile mobile) RegisterFound(mobile); } return _findItem; }). Überladungskandidaten: die Quelle bestätigt keine Auswahl eines bestimmten Kandidaten.
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => { ResetFindResults(); IgnoreTypeFilter ignoredTypes = State.IgnoreTypeLists.FilterFor(State.SelectedIgnoreList); int[] requestedTypes = types ?? Array.Empty<int>(); int[] requestedColors = colors ?? Array.Empty<int>(); // The runtime uses this sentinel for an invalid-only mask. // Removing all negatives below would otherwise turn it into a wildcard. if (notorieties != null && Array.IndexOf(notorieties, int.MinValue) >= 0) return 0; int pairCount = Math.Max(requestedTypes.Length, requestedColors.Length); if (pairCount == 0) return 0; int effectiveRange = ResolveFindRange(range); int effectiveMaxZ = maxZ < 0 ? Math.Max(0, State.FindVertical) : Math.Max(0, maxZ); var wantedNotorieties = new HashSet<int>((notorieties ?? Array.Empty<int>()).Where(value => value >= 0)); var candidates = new List<(Entity Entity, int Priority, int Distance)>(); PlayerMobile player = _world.Player; bool IsIgnored(Entity entity) => !includeIgnored && entity != null && (State.IgnoredSerials.Contains(unchecked((int)entity.Serial)) || ignoredTypes.Matches(entity.Graphic, entity.Hue)); bool MatchesPair(Entity entity, out int priority) { priority = int.MaxValue; if (entity == null || entity.IsDestroyed || IsIgnored(entity)) return false; for (int index = 0; index < pairCount; index++) { int wantedType = index < requestedTypes.Length ? requestedTypes[index] : -1; int wantedColor = index < requestedColors.Length ? requestedColors[index] : -1; bool typeOk = wantedType < 0 || wantedType == 0xFFFF || entity.Graphic == (ushort)wantedType; bool colorOk = wantedColor < 0 || wantedColor == 0xFFFF || entity.Hue == (ushort)wantedColor; if (typeOk && colorOk) { priority = index; return true; } } return false; } bool MatchesZ(Entity entity) { if (player == null || effectiveMaxZ < 0) return true; Entity zEntity = entity; if (entity is Item && containerId > 1) zEntity = _world.Get(unchecked((uint)containerId)) ?? entity; return Math.Abs(zEntity.Z - player.Z) <= effectiveMaxZ; } foreach (Item item in _world.Items.Values) { // Notoriety is a Mobile-only property: a notoriety-filtered list // must never silently return an Item. if (wantedNotorieties.Count > 0 || !MatchesPair(item, out int priority) // MatchesZ below applies the explicit maxZ override. Do not // pre-filter ground items using the runtime's default Z. || !MatchesFindContainer(item, containerId, effectiveRange, containerId == -1, checkVertical: false) || !MatchesZ(item)) continue; candidates.Add((item, priority, item.Distance)); } if (IsGroundFindContainer(containerId)) { foreach (Mobile mobile in _world.Mobiles.Values) { if (IsSelfMobile(mobile) || !MatchesPair(mobile, out int priority) || mobile.Distance > effectiveRange || !MatchesZ(mobile) || wantedNotorieties.Count > 0 && !wantedNotorieties.Contains((int)mobile.NotorietyFlag)) continue; candidates.Add((mobile, priority, mobile.Distance)); } } IEnumerable<(Entity Entity, int Priority, int Distance)> ordered = nearest ? candidates.OrderBy(candidate => candidate.Distance).ThenBy(candidate => candidate.Priority) .ThenBy(candidate => candidate.Entity.Serial) : candidates.OrderBy(candidate => candidate.Priority).ThenBy(candidate => candidate.Entity.Serial); foreach (var (entity, _, _) in ordered) { if (entity is Item item) RegisterFound(item); else if (entity is Mobile mobile) RegisterFound(mobile); } return _findItem; }). Überladungskandidaten: die Quelle bestätigt keine Auswahl eines bestimmten Kandidaten.
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.ResetFindResults: ResetFindResults().
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.ResolveFindRange: ResolveFindRange(range).
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.FindList::IsIgnored: IsIgnored(entity).
  • ClassicUO.Game.World.Get: _world.Get(unchecked((uint)containerId)).
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.FindList::MatchesPair: MatchesPair(item, out int priority).
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.MatchesFindContainer: MatchesFindContainer(item, containerId, effectiveRange, containerId == -1, checkVertical: false).
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.FindList::MatchesZ: MatchesZ(item).
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.IsGroundFindContainer: IsGroundFindContainer(containerId).
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.IsSelfMobile: IsSelfMobile(mobile).
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.FindList::MatchesPair: MatchesPair(mobile, out int priority).
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.FindList::MatchesZ: MatchesZ(mobile).
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.RegisterFound: RegisterFound(item). Überladungskandidaten: die Quelle bestätigt keine Auswahl eines bestimmten Kandidaten.
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.RegisterFound: RegisterFound(item). Überladungskandidaten: die Quelle bestätigt keine Auswahl eines bestimmten Kandidaten.
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.RegisterFound: RegisterFound(mobile). Überladungskandidaten: die Quelle bestätigt keine Auswahl eines bestimmten Kandidaten.
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.RegisterFound: RegisterFound(mobile). Überladungskandidaten: die Quelle bestätigt keine Auswahl eines bestimmten Kandidaten.

Interner Implementierungscode; kein eigenständiges Skript.

public int FindList(int[] types, int[] colors, int containerId, int range, int[] notorieties,
            bool nearest, int maxZ, bool includeIgnored)
        {
            return Invoke(() =>
            {
                ResetFindResults();
                IgnoreTypeFilter ignoredTypes = State.IgnoreTypeLists.FilterFor(State.SelectedIgnoreList);
                int[] requestedTypes = types ?? Array.Empty<int>();
                int[] requestedColors = colors ?? Array.Empty<int>();
                // The runtime uses this sentinel for an invalid-only mask.
// …
                if (notorieties != null && Array.IndexOf(notorieties, int.MinValue) >= 0)
                    return 0;
// …
                if (pairCount == 0)
                    return 0;
// …
                    if (entity == null || entity.IsDestroyed || IsIgnored(entity))
                        return false;
// …
                        if (typeOk && colorOk)
// …
                            return true;
// …
                    return false;
// …
                    if (player == null || effectiveMaxZ < 0)
                        return true;
// …
                    if (entity is Item && containerId > 1)
// …
                    return Math.Abs(zEntity.Z - player.Z) <= effectiveMaxZ;
// …
                    // must never silently return an Item.
                    if (wantedNotorieties.Count > 0 || !MatchesPair(item, out int priority)
// …
                if (IsGroundFindContainer(containerId))
// …
                        if (IsSelfMobile(mobile) || !MatchesPair(mobile, out int priority)
// …
                    if (entity is Item item) RegisterFound(item);
                    else if (entity is Mobile mobile) RegisterFound(mobile);
// …
                return _findItem;
// …

Der vollständige Code steht in der Quelldatei; es folgen genaue Auszüge.

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.FindList::IsIgnored

Liefert den Wert des folgenden Ausdrucks.

Parameter: entity

Quelle: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:2576.

bool IsIgnored(Entity entity)

Ergebnis: bool.

Aufrufe: State.IgnoredSerials.Contains, ignoredTypes.Matches.

Interner Implementierungscode; kein eigenständiges Skript.

bool IsIgnored(Entity entity) => !includeIgnored

                    && entity != null

                    && (State.IgnoredSerials.Contains(unchecked((int)entity.Serial)) || ignoredTypes.Matches(entity.Graphic, entity.Hue));

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.FormatScriptPrintText

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: string message

Quelle: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:2051.

internal static string FormatScriptPrintText(string message)

Ergebnis: string.

Aufrufe:

—

Interner Implementierungscode; kein eigenständiges Skript.

internal static string FormatScriptPrintText(string message) => message ?? string.Empty;

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetGumpShortLines

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: int index

Quelle: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:3061.

public string[] GetGumpShortLines(int index)

Ergebnis: string[].

Aufrufe:

  • Invoke

  • ServerGumpsUnsafe().ElementAtOrDefault

  • ServerGumpsUnsafe

  • Array.Empty<string>

  • `Descendants(gump)

              .Where(control => !string.IsNullOrWhiteSpace(GetControlText(control)) || IsButtonControl(control))
    
              .Select(DescribeControl).ToArray`
    
  • `Descendants(gump)

              .Where(control => !string.IsNullOrWhiteSpace(GetControlText(control)) || IsButtonControl(control))
    
              .Select`
    
  • `Descendants(gump)

              .Where`
    
  • Descendants

  • string.IsNullOrWhiteSpace

  • GetControlText

  • IsButtonControl

Interner Implementierungscode; kein eigenständiges Skript.

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

        {

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

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

                .Where(control => !string.IsNullOrWhiteSpace(GetControlText(control)) || IsButtonControl(control))

                .Select(DescribeControl).ToArray();

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetLandscapeTile

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: int x, int y, int map

Quelle: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:3571.

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

Ergebnis: int[].

Bedingungen:

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

Aufrufe:

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

Interner Implementierungscode; kein eigenständiges Skript.

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

        {

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

            {

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

                return Array.Empty<int>();

            }

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

            {

                if (tile is Land land)

                    return new[] { (int)land.Graphic, (int)land.Z, unchecked((int)(ulong)land.TileData.Flags) };

            }

            return Array.Empty<int>();

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetTargetCursorId

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: Keine Parameter.

Quelle: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:860.

public int GetTargetCursorId()

Ergebnis: int.

Aufrufe:

  • Invoke

Interner Implementierungscode; kein eigenständiges Skript.

public int GetTargetCursorId() => Invoke(() => unchecked((int)_world.TargetManager.CurrentCursorId));

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: Action callback

Quelle: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:4350.

private void Invoke(Action callback)

Ergebnis: void.

Aufrufe:

  • _manager.InvokeOnGameThread

Interner Implementierungscode; kein eigenständiges Skript.

private void Invoke(Action callback) => _manager.InvokeOnGameThread(callback, _cancellationToken);

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.IsButtonControl

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: Control control

Quelle: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:4286.

private static bool IsButtonControl(Control control)

Ergebnis: bool.

Aufrufe:

—

Interner Implementierungscode; kein eigenständiges Skript.

private static bool IsButtonControl(Control control) => control is Button || control is SessionGumpControl { IsButton: true };

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.IsDead

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: int id

Quelle: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:561.

public int IsDead(int id)

Ergebnis: int.

Aufrufe:

  • Invoke
  • _world.Get

Interner Implementierungscode; kein eigenständiges Skript.

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

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.IsOnline

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: Keine Parameter.

Quelle: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:336.

public int IsOnline()

Ergebnis: int.

Aufrufe:

  • Invoke

Interner Implementierungscode; kein eigenständiges Skript.

public int IsOnline() => Invoke(() =>

            _world.InGame && NetClient.Socket.IsConnected ? 1 : 0

        );

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.IsVisible

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: int id

Quelle: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:562.

public int IsVisible(int id)

Ergebnis: int.

Aufrufe:

  • Invoke
  • _world.Get

Interner Implementierungscode; kein eigenständiges Skript.

public int IsVisible(int id) => Invoke(() =>

        {

            Entity entity = _world.Get(unchecked((uint)id));

            return entity != null && entity.CanDraw && !entity.IsHidden ? 1 : 0;

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Mount

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: int id

Quelle: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:780.

public int Mount(int id)

Ergebnis: int.

Aufrufe:

  • Invoke
  • _manager.MountRequests.Request
  • NetClient.Socket.Send_UseObjectRequest
  • MountedLayerSerialUnsafe

Interner Implementierungscode; kein eigenständiges Skript.

public int Mount(int id) => Invoke(() =>

        {

            _manager.MountRequests.Request(

                _world, unchecked((uint)id), mount: true,

                // Mounting must bypass the UI double-click policy.  Packet 0x06

                // is the official server-side use-object request.

                serial => NetClient.Socket.Send_UseObjectRequest(serial), Environment.TickCount64);

            return MountedLayerSerialUnsafe();

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.MoveContainerItems

Prüft die folgenden Bedingungen und liefert das gezeigte Ergebnis.

Parameter: sourceContainerId, type, color, targetContainerId, x, y, z, delayMs, allowGround

Quelle: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:1287.

`private (int Selected, int Sent) MoveContainerItems(int sourceContainerId, int type, int color,

        int targetContainerId, int x, int y, int z, int delayMs, bool allowGround = true)`

Ergebnis: (int Selected, int Sent).

Ergebnis: (0, 0); (items.Length, moved).

Aufrufe: Error, Invoke, Wait, Math.Max.

Bedingungen: `sourceContainerId == 0 || sourceContainerId == targetContainerId

            || (targetContainerId == 0 && (!allowGround || x < 0 || y < 0))`; `sent`.

Interner Implementierungscode; kein eigenständiges Skript.

private (int Selected, int Sent) MoveContainerItems(int sourceContainerId, int type, int color,

            int targetContainerId, int x, int y, int z, int delayMs, bool allowGround = true)

        {

            if (sourceContainerId == 0 || sourceContainerId == targetContainerId

                || (targetContainerId == 0 && (!allowGround || x < 0 || y < 0)))

            {

                Error("UO.EmptyContainer/MoveItems: source and destination must be different valid containers.");

                return (0, 0);

            }

            int[] items = Invoke(() => _world.Items.Values

                .Where(item => !item.IsDestroyed && item.Container == (uint)sourceContainerId

                    && (type < 0 || type == 0xFFFF || item.Graphic == type)

                    && (color < 0 || color == 0xFFFF || item.Hue == color))

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

            int moved = 0;

            foreach (int item in items)

            {

                bool sent = Invoke(() => _world.Items.Get((uint)item) is Item current

                    && current.Container == (uint)sourceContainerId

                    && TryMoveItemRequest(item, 0, targetContainerId, x, y, z));

                if (sent)

                {

                    moved++;

                    // One pacing interval, including the last request so a caller's

                    // next action cannot overtake it. Do not add GrabDelay twice.

                    Wait(allowGround ? Math.Max(State.GrabDelay, Math.Max(0, delayMs)) : Math.Max(0, delayMs));

                }

            }

            return (items.Length, moved);

        }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.PlayWav

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: string file

Quelle: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:1904.

public int PlayWav(string file)

Ergebnis: int.

Bedingungen:

  • !File.Exists(path)
  • !sound.Play()

Aufrufe:

  • Path.IsPathRooted
  • Path.Combine
  • File.Exists
  • Error
  • File.OpenRead
  • SoundEffect.FromStream
  • _sounds[0].Dispose
  • _sounds.RemoveAt
  • _sounds.Add
  • sound.Play
  • sound.Dispose
  • _sounds.Remove

Interner Implementierungscode; kein eigenständiges Skript.

public int PlayWav(string file)

        {

            string path = Path.IsPathRooted(file) ? file : Path.Combine(CUOEnviroment.ExecutablePath, file);

            if (!File.Exists(path))

            {

                Error($"UO.PlayWav: file not found: {file}");

                return 0;

            }

            try

            {

                using FileStream stream = File.OpenRead(path);

                SoundEffect sound = SoundEffect.FromStream(stream);

                while (_sounds.Count >= MaxRetainedSoundEffects)

                {

                    _sounds[0].Dispose();

                    _sounds.RemoveAt(0);

                }

                _sounds.Add(sound);

                if (!sound.Play())

                {

                    sound.Dispose();

                    _sounds.Remove(sound);

                    return 0;

                }

                return 1;

            }

            catch (Exception error)

            {

                Error($"UO.PlayWav: {error.Message}");

                return 0;

            }

        }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.PoisonResistance

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: Keine Parameter.

Quelle: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:169.

public int PoisonResistance

Ergebnis: int.

Aufrufe:

  • Invoke

Interner Implementierungscode; kein eigenständiges Skript.

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

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Print

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: int color, string msg

Quelle: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:2054.

public void Print(int color, string msg)

Ergebnis: void.

Aufrufe:

  • PrintClientMessage

Interner Implementierungscode; kein eigenständiges Skript.

public void Print(int color, string msg) => PrintClientMessage((ushort)color, msg);

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.RequestStats

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: int id

Quelle: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:2352.

public void RequestStats(int id)

Ergebnis: void.

Aufrufe:

  • Invoke
  • GameActions.RequestMobileStatus

Interner Implementierungscode; kein eigenständiges Skript.

public void RequestStats(int id) => Invoke(() => GameActions.RequestMobileStatus(_world, (uint)id, true));

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SendGumpButtonUnsafe

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: Gump gump, int triggerId, string missingMessage

Quelle: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:3029.

private int SendGumpButtonUnsafe(Gump gump, int triggerId, string missingMessage)

Ergebnis: int.

Bedingungen:

  • gump == null || gump.IsDisposed || gump.ServerSerial == 0
  • !string.IsNullOrWhiteSpace(missingMessage)
  • ReferenceEquals(_selectedServerGump, gump)

Aufrufe:

  • string.IsNullOrWhiteSpace
  • Error
  • gump.OnButtonClick
  • ReferenceEquals

Interner Implementierungscode; kein eigenständiges Skript.

private int SendGumpButtonUnsafe(Gump gump, int triggerId, string missingMessage)

        {

            if (gump == null || gump.IsDisposed || gump.ServerSerial == 0)

            {

                if (!string.IsNullOrWhiteSpace(missingMessage))

                    Error("UO.SendGumpSelect: " + missingMessage);

                return 0;

            }



            gump.OnButtonClick(triggerId);

            if (ReferenceEquals(_selectedServerGump, gump))

                _selectedServerGump = null;

            return 1;

        }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SetAutoReconnect

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: int enabled

Quelle: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:463.

public void SetAutoReconnect(int enabled)

Ergebnis: void.

Bedingungen:

  • _world.SessionControl is { } session

Aufrufe:

  • Invoke
  • Settings.GlobalSettings.Save

Interner Implementierungscode; kein eigenständiges Skript.

public void SetAutoReconnect(int enabled) => Invoke(() =>

        {

            if (_world.SessionControl is { } session)

            {

                session.AutoReconnect = enabled != 0;

                return;

            }

            Settings.GlobalSettings.Reconnect = enabled != 0;

            Settings.GlobalSettings.Save();

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Step

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: int direction, bool running

Quelle: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:3518.

public int Step(int direction, bool running)

Ergebnis: int.

Bedingungen:

  • result == STEP_QUEUE_OVERFLOW
  • result == STEP_QUEUE_CLIENT_BLOCKED
  • result < 0
  • result == STEP_QUEUE_TURN_ONLY

Aufrufe:

  • QueueStep
  • Invoke
  • ReferenceEquals
  • walker.GetDenyGeneration
  • walker.GetConfirmGeneration
  • Wait

Interner Implementierungscode; kein eigenständiges Skript.

public int Step(int direction, bool running)

        {

            var queued = QueueStep(direction, running, true);

            int result = queued.Result;

            if (result == STEP_QUEUE_OVERFLOW)

                return 2;

            if (result == STEP_QUEUE_CLIENT_BLOCKED)

                return 3;

            if (result < 0)

                return 0;

            if (result == STEP_QUEUE_TURN_ONLY)

                return 7;



            int sequence = result & 0xFF;

            WalkerManager walker = queued.Walker;

            if (walker == null)

                return 0;



            long deadline = Environment.TickCount64 + STEP_ACK_TIMEOUT_MS;

            while (Environment.TickCount64 < deadline)

            {

                if (!NetClient.Socket.IsConnected)

                    return 0;

                if (!Invoke(() => ReferenceEquals(_world.Player?.Walker, walker)))

                    return 0;



                if (walker.GetDenyGeneration((byte)sequence) != queued.DenyGeneration)

                    return 5;



                if (walker.GetConfirmGeneration((byte)sequence) != queued.ConfirmGeneration)

                    return 7;



                Wait(5);

            }



            return 4;

        }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.TextClose

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: Keine Parameter.

Quelle: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:2030.

public void TextClose()

Ergebnis: void.

Aufrufe:

  • Invoke
  • UIManager.GetGump<YokoTextWindowGump>
  • .Dispose
  • ReportStatus

Interner Implementierungscode; kein eigenständiges Skript.

public void TextClose()

        {

            _textWindowOpen = false;

            Invoke(() =>

            {

                UIManager.GetGump<YokoTextWindowGump>()?.Dispose();

                ReportStatus("UO.TextClose: text window closed");

            });

        }

ClassicUO.Game.Managers.LastCharacterManager.GetKnownCharacters

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: string account, string server

Quelle: Project_Full/src/ClassicUO.Client/Game/Managers/LastCharacterManager.cs:127.

public static string[] GetKnownCharacters(string account, string server)

Ergebnis: string[].

Aufrufe:

  • _knownCharacters.TryGetValue
  • values.ToArray
  • Array.Empty<string>

Interner Implementierungscode; kein eigenständiges Skript.

public static string[] GetKnownCharacters(string account, string server)
        {
            string key = (account ?? string.Empty) + "\u001F" + (server ?? string.Empty);
            lock (_knownCharactersSync)
            {
                return _knownCharacters.TryGetValue(key, out string[] values)
                    ? values.ToArray()
                    : Array.Empty<string>();
            }
        }

ClassicUO.Game.Managers.YokoInjectionManager.RemoveUserStatic

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: int id

Quelle: Project_Full/src/ClassicUO.Client/Game/Managers/YokoInjectionManager.cs:792.

internal void RemoveUserStatic(int id)

Ergebnis: void.

Aufrufe:

  • _userStatics.TryRemove

Interner Implementierungscode; kein eigenständiges Skript.

internal void RemoveUserStatic(int id) => _userStatics.TryRemove(id, out _);

ClassicUO.Game.Managers.YokoInjectionManager.SetJournalLength

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: int length

Quelle: Project_Full/src/ClassicUO.Client/Game/Managers/YokoInjectionManager.cs:732.

internal void SetJournalLength(int length)

Ergebnis: void.

Aufrufe:

  • Math.Clamp
  • JournalManager.SetYokoHistoryLimit

Interner Implementierungscode; kein eigenständiges Skript.

internal void SetJournalLength(int length)

        {

            _journalLength = Math.Clamp(length, 1, Constants.MAX_JOURNAL_HISTORY_COUNT);

            JournalManager.SetYokoHistoryLimit(_journalLength);

        }

InjectionScript.Runtime.InjectionApiUO.AddObject

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: InjectionValue name, InjectionValue objectRawId

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3916.

public void AddObject(InjectionValue name, InjectionValue objectRawId)

Ergebnis: void.

Aufrufe:

  • ObjectChecked
  • AddObject

Interner Implementierungscode; kein eigenständiges Skript.

public void AddObject(InjectionValue name, InjectionValue objectRawId) 

            => ObjectChecked(objectRawId, id => AddObject((string)name, id));

InjectionScript.Runtime.InjectionApiUO.CharPrint

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: int id, int color, string msg

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5457.

public void CharPrint(int id, int color, string msg)

Ergebnis: void.

Aufrufe:

  • bridge.CharPrint

Interner Implementierungscode; kein eigenständiges Skript.

public void CharPrint(int id, int color, string msg) => bridge.CharPrint(id, color, msg);

InjectionScript.Runtime.InjectionApiUO.ClampMoveTimer

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: int value, int standardMinimum

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:2503.

private static int ClampMoveTimer(int value, int standardMinimum)

Ergebnis: int.

Aufrufe:

  • Math.Max
  • Math.Min

Interner Implementierungscode; kein eigenständiges Skript.

private static int ClampMoveTimer(int value, int standardMinimum) => Math.Max(standardMinimum, Math.Min(2000, value));

InjectionScript.Runtime.InjectionApiUO.Click

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: int id

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:4035.

public void Click(int id)

Ergebnis: void.

Aufrufe:

  • bridge.Click

Interner Implementierungscode; kein eigenständiges Skript.

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

InjectionScript.Runtime.InjectionApiUO.ClientMarkChar

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: InjectionValue actionIndex, InjectionValue id

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:4050.

public void ClientMarkChar(InjectionValue actionIndex, InjectionValue id)

Ergebnis: void.

Aufrufe:

  • bridge.ClientMarkChar
  • NumberConversions.ToInt
  • GetObject

Interner Implementierungscode; kein eigenständiges Skript.

public void ClientMarkChar(InjectionValue actionIndex, InjectionValue id)

            => bridge.ClientMarkChar(NumberConversions.ToInt(actionIndex), GetObject(id));

InjectionScript.Runtime.InjectionApiUO.CloseHandle

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: Keine Parameter.

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5390.

public void CloseHandle()

Ergebnis: void.

Aufrufe:

  • bridge.CloseHandle

Interner Implementierungscode; kein eigenständiges Skript.

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

InjectionScript.Runtime.InjectionApiUO.DispatchLegacyEvents

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: Keine Parameter.

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:6219.

private void DispatchLegacyEvents()

Ergebnis: void.

Bedingungen:

  • dispatchingLegacyEvents || legacyEvents.Count == 0
  • !triggered
  • !string.IsNullOrWhiteSpace(subscription.Handler) && bridge.SubExists(subscription.Handler)
  • !subscription.Repeat

Aufrufe:

  • legacyEvents.Values.ToArray

  • subscription.Name.ToLowerInvariant

  • bridge.Dead

  • bridge.GetHP

  • `(bridge.GetMobiles() ?? Array.Empty())

                              .Where`
    
  • bridge.GetMobiles

  • Array.Empty<int>

  • current.Any

  • subscription.KnownMobiles.Contains

  • subscription.KnownMobiles.Clear

  • subscription.KnownMobiles.Add

  • string.IsNullOrWhiteSpace

  • bridge.SubExists

  • bridge.Exec

  • legacyEvents.Remove

Der vollständige Code steht in der Quelldatei; es folgen genaue Auszüge.

Interner Implementierungscode; kein eigenständiges Skript.

private void DispatchLegacyEvents()
        {
            if (dispatchingLegacyEvents || legacyEvents.Count == 0)
                return;

            dispatchingLegacyEvents = true;
            try
            {
// …
                    if (!triggered)
// …
                    if (!string.IsNullOrWhiteSpace(subscription.Handler) && bridge.SubExists(subscription.Handler))
// …
                    if (!subscription.Repeat)
// …
                    }
                }
            }
            finally
            {
                dispatchingLegacyEvents = false;
            }
        }

InjectionScript.Runtime.InjectionApiUO.EnumerateUseTypeItems

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: int container

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:4168.

private IEnumerable<int> EnumerateUseTypeItems(int container)

Ergebnis: IEnumerable<int>.

Bedingungen:

  • container == 1
  • root <= 0
  • id <= 0 || !visited.Add(id)

Aufrufe:

  • bridge.GetWorldItems
  • Array.Empty<int>
  • pending.Push
  • visited.Add
  • pending.Pop
  • bridge.GetContent
  • result.Add

Interner Implementierungscode; kein eigenständiges Skript.

private IEnumerable<int> EnumerateUseTypeItems(int container)

        {

            if (container == 1)

                return bridge.GetWorldItems() ?? Array.Empty<int>();



            int root = container <= 0 ? bridge.Backpack : container;

            if (root <= 0)

                return Array.Empty<int>();



            var result = new List<int>();

            var visited = new HashSet<int>();

            var pending = new Stack<int>();

            pending.Push(root);

            visited.Add(root);



            while (pending.Count > 0)

            {

                int current = pending.Pop();

                int[] direct = bridge.GetContent(current) ?? Array.Empty<int>();

                foreach (int id in direct)

                {

                    if (id <= 0 || !visited.Add(id))

                        continue;

                    result.Add(id);

                    // Calling GetContent on a non-container safely returns an empty array; on a

                    // container it gives us recursive legacy-UseType semantics without a second selector.

                    pending.Push(id);

                }

            }

            return result;

        }

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Dieser Zweig behandelt nur den angegebenen Befehlsnamen.

Parameter: Keine Parameter.

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1239.

Ergebnis: InjectionValue.Unit.

Aufrufe:

Interner Implementierungscode; kein eigenständiges Skript.

case "addtosystemjournalex":

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

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Dieser Zweig behandelt nur den angegebenen Befehlsnamen.

Parameter: Keine Parameter.

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1738.

Ergebnis: InjectionValue.Unit.

Aufrufe:

Interner Implementierungscode; kein eigenständiges Skript.

case "clearfigures":

                    bridge.ClearMapFigures();

                    state.MapFigures.Clear();

                    return InjectionValue.Unit;

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Dieser Zweig behandelt nur den angegebenen Befehlsnamen.

Parameter: Keine Parameter.

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1778.

Ergebnis: InjectionValue.Unit.

Interner Implementierungscode; kein eigenständiges Skript.

case "cleargumpsignore":

                    state.IgnoredGumpIds.Clear(); state.IgnoredGumpSerials.Clear(); return InjectionValue.Unit;

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Dieser Zweig behandelt nur den angegebenen Befehlsnamen.

Parameter: Keine Parameter.

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1314.

Ergebnis: new InjectionValue(bridge.ClientPath).

Aufrufe:

Interner Implementierungscode; kein eigenständiges Skript.

case "clientpath": return new InjectionValue(bridge.ClientPath);

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Dieser Zweig behandelt nur den angegebenen Befehlsnamen.

Parameter: Keine Parameter.

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1913.

Ergebnis: InjectionValue.Unit.

Aufrufe:

Interner Implementierungscode; kein eigenständiges Skript.

case "consoleentryreply":

                case "consoleentryunicodereply": bridge.ReplyServerPrompt(Text(0)); return InjectionValue.Unit;

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Dieser Zweig behandelt nur den angegebenen Befehlsnamen.

Parameter: Keine Parameter.

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:2016.

Ergebnis: new InjectionValue(DecodeEasyUoId(Text(0))).

Aufrufe:

Interner Implementierungscode; kein eigenständiges Skript.

case "euo2id":

                case "euo2type": return new InjectionValue(DecodeEasyUoId(Text(0)));

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Dieser Zweig behandelt nur den angegebenen Befehlsnamen.

Parameter: Keine Parameter.

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1382.

Ergebnis: InjectionValue.Unit; new InjectionValue(bridge.GetFindVertical()).

Bedingungen: arguments.Length > 0.

Aufrufe:

Interner Implementierungscode; kein eigenständiges Skript.

case "findvertical":

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

                    return new InjectionValue(bridge.GetFindVertical());

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Dieser Zweig behandelt nur den angegebenen Befehlsnamen.

Parameter: Keine Parameter.

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1425.

Ergebnis: new InjectionValue(bridge.GetTooltip(Arg(0))).

Aufrufe:

Interner Implementierungscode; kein eigenständiges Skript.

case "getcliloc":

                case "gettooltip":

                    return new InjectionValue(bridge.GetTooltip(Arg(0)));

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Dieser Zweig behandelt nur den angegebenen Befehlsnamen.

Parameter: Keine Parameter.

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1495.

Ergebnis: new InjectionValue(bridge.GetMaxMana(Arg(0, bridge.Self))).

Aufrufe:

Interner Implementierungscode; kein eigenständiges Skript.

case "getmaxmana": return new InjectionValue(bridge.GetMaxMana(Arg(0, bridge.Self)));

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Dieser Zweig behandelt nur den angegebenen Befehlsnamen.

Parameter: Keine Parameter.

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1576.

Ergebnis: new InjectionValue(bridge.ContainerOf(Arg(0))).

Aufrufe:

Interner Implementierungscode; kein eigenständiges Skript.

case "getparent": return new InjectionValue(bridge.ContainerOf(Arg(0)));

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Dieser Zweig behandelt nur den angegebenen Befehlsnamen.

Parameter: Keine Parameter.

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1920.

Ergebnis: InjectionValue.Unit.

Bedingungen: hasStream && !(arguments[1].Object is MemoryStreamObject); !hasStream; arguments[1].Object is MemoryStreamObject memoryStream.

Aufrufe:

Interner Implementierungscode; kein eigenständiges Skript.

case "http_get":

                {

                    bool hasStream = arguments.Length > 1

                        && !(arguments[1].Kind == InjectionValueKind.Integer && arguments[1].Integer == 0)

                        && arguments[1].Kind != InjectionValueKind.Unit;

                    // Validate before network side effects and before changing the last response.

                    if (hasStream && !(arguments[1].Object is MemoryStreamObject))

                        throw new NativeSubrutineException("UO.HTTP_Get: LStream must be a writable System.IO.Stream, 0, or omitted.");



                    string[] response = bridge.HttpRequest("GET", Text(0), string.Empty);

                    httpHeader = response.Length > 1 ? response[1] : string.Empty;

                    httpBody = hasStream ? string.Empty : response.Length > 0 ? response[0] : string.Empty;

                    if (!hasStream)

                    {

                        return InjectionValue.Unit;

                    }



                    byte[] raw = response.Length > 3 && !string.IsNullOrEmpty(response[3])

                        ? Convert.FromBase64String(response[3])

                        : Array.Empty<byte>();

                    if (arguments[1].Object is MemoryStreamObject memoryStream)

                        memoryStream.ReplaceBytes(raw);

                    else

                        throw new NativeSubrutineException("UO.HTTP_Get: LStream must be a writable System.IO.Stream.");



                    // Stream overloads keep the response as bytes, not cached text.

                    return InjectionValue.Unit;

                }

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Dieser Zweig behandelt nur den angegebenen Befehlsnamen.

Parameter: Keine Parameter.

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1501.

Ergebnis: new InjectionValue(bridge.Luck).

Aufrufe:

Interner Implementierungscode; kein eigenständiges Skript.

case "luck": return new InjectionValue(bridge.Luck);

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Dieser Zweig behandelt nur den angegebenen Befehlsnamen.

Parameter: Keine Parameter.

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1699.

Ergebnis: InjectionValue.Unit.

Aufrufe:

Interner Implementierungscode; kein eigenständiges Skript.

case "moverstop": bridge.StopMoving(); return InjectionValue.Unit;

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Dieser Zweig behandelt nur den angegebenen Befehlsnamen.

Parameter: Keine Parameter.

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1533.

Ergebnis: new InjectionValue(ReadPredictedCoordinate(0)).

Aufrufe:

Interner Implementierungscode; kein eigenständiges Skript.

case "predictedx": return new InjectionValue(ReadPredictedCoordinate(0));

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Dieser Zweig behandelt nur den angegebenen Befehlsnamen.

Parameter: Keine Parameter.

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1316.

Ergebnis: InjectionValue.Unit.

Aufrufe:

Interner Implementierungscode; kein eigenständiges Skript.

case "setarstatus": bridge.SetAutoReconnect(Arg(0)); return InjectionValue.Unit;

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Dieser Zweig behandelt nur den angegebenen Befehlsnamen.

Parameter: Keine Parameter.

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1829.

Ergebnis: InjectionValue.Unit.

Bedingungen: type < -1 || type > ushort.MaxValue || hue < -1 || hue > ushort.MaxValue || radius < 0 || radius > byte.MaxValue.

Aufrufe:

Interner Implementierungscode; kein eigenständiges Skript.

case "setbadobject":

                {

                    int type = ResolveType(arguments[0]), hue = Arg(1), radius = Arg(2);

                    if (type < -1 || type > ushort.MaxValue || hue < -1 || hue > ushort.MaxValue || radius < 0 || radius > byte.MaxValue)

                        throw new NativeSubrutineException("UO.SetBadObject requires type/color 0..65535 (or -1) and radius 0..255.");

                    state.BadObjects.Add(type + "," + hue + "," + radius);

                    return InjectionValue.Unit;

                }

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Dieser Zweig behandelt nur den angegebenen Befehlsnamen.

Parameter: Keine Parameter.

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1312.

Ergebnis: new InjectionValue(bridge.CurrentProfilePath).

Aufrufe:

Interner Implementierungscode; kein eigenständiges Skript.

case "shardpath":

                case "clientprofilepath": return new InjectionValue(bridge.CurrentProfilePath);

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Dieser Zweig behandelt nur den angegebenen Befehlsnamen.

Parameter: Keine Parameter.

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1373.

Ergebnis: new InjectionValue(bridge.Stamina).

Aufrufe:

Interner Implementierungscode; kein eigenständiges Skript.

case "stam": return new InjectionValue(bridge.Stamina);

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Dieser Zweig behandelt nur den angegebenen Befehlsnamen.

Parameter: Keine Parameter.

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1636.

Ergebnis: InjectionValue.Unit.

Aufrufe:

Interner Implementierungscode; kein eigenständiges Skript.

case "useitemonmobile": bridge.WaitTargetObject(Arg(1)); bridge.UseObject(Arg(0)); return InjectionValue.Unit;

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Dieser Zweig behandelt nur den angegebenen Befehlsnamen.

Parameter: Keine Parameter.

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1271.

Ergebnis: InjectionValue.Unit.

Aufrufe:

Interner Implementierungscode; kein eigenständiges Skript.

case "waitmenu": bridge.WaitMenu(arguments.Select(value => value.ToString()).ToArray()); return InjectionValue.Unit;

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Dieser Zweig behandelt nur den angegebenen Befehlsnamen.

Parameter: Keine Parameter.

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1654.

Ergebnis: InjectionValue.Unit.

Aufrufe:

Interner Implementierungscode; kein eigenständiges Skript.

case "waittargetxyz": WaitTargetTile(new InjectionValue(0), arguments[0], arguments[1], arguments[2]); return InjectionValue.Unit;

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

Dieser Zweig behandelt nur den angegebenen Befehlsnamen.

Parameter: Keine Parameter.

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:2024.

Ergebnis: InjectionValue.Unit.

Aufrufe:

Interner Implementierungscode; kein eigenständiges Skript.

case "wait": WaitWithEvents(Arg(0)); return InjectionValue.Unit;

InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias

Dieser Zweig behandelt nur den angegebenen Befehlsnamen.

Parameter: Keine Parameter.

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:2924.

Aufrufe:

Interner Implementierungscode; kein eigenständiges Skript.

case "infofindlist": SystemMessage(string.Join(" | ", LegacyList("AddFindList"))); break;

InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias

Dieser Zweig behandelt nur den angegebenen Befehlsnamen.

Parameter: Keine Parameter.

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3018.

Aufrufe:

Interner Implementierungscode; kein eigenständiges Skript.

case "opendoor": bridge.OpenDoor(); break;

InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias

Dieser Zweig behandelt nur den angegebenen Befehlsnamen.

Parameter: Keine Parameter.

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3021.

Aufrufe:

Interner Implementierungscode; kein eigenständiges Skript.

case "resetprofile": bridge.ResetProfile(); break;

InjectionScript.Runtime.InjectionApiUO.FindMobile

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: InjectionValue stateFilter, InjectionValue rangeFilter

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3777.

public int FindMobile(InjectionValue stateFilter, InjectionValue rangeFilter)

Ergebnis: int.

Aufrufe:

  • FindMobile

Interner Implementierungscode; kein eigenständiges Skript.

public int FindMobile(InjectionValue stateFilter, InjectionValue rangeFilter) => FindMobile(stateFilter,

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

InjectionScript.Runtime.InjectionApiUO.FindPortableTiles::ScanSlice

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: Keine Parameter.

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:2414.

void ScanSlice()

Ergebnis: void.

Aufrufe: Stopwatch.GetTimestamp, bridge.GetLandscapeTile, wanted.Contains, result.Add, bridge.GetStaticTiles.

Bedingungen: map != bridge.WorldNumber; cells > 0 && Stopwatch.GetTimestamp() - started >= Stopwatch.Frequency / 1000; !statics; tile.Length >= 2 && (wanted.Count == 0 || wanted.Contains(tile[0])).

Aufrufe:

Interner Implementierungscode; kein eigenständiges Skript.

void ScanSlice()

            {

                // Read each cell on the game thread, but rendezvous once per

                // bounded group. A map change must never mix facets in one result.

                if (map != bridge.WorldNumber) { mapChanged = true; return; }

                long started = Stopwatch.GetTimestamp();

                for (int cells = 0; x <= lastX && cells < 32; cells++)

                {

                    if (cells > 0 && Stopwatch.GetTimestamp() - started >= Stopwatch.Frequency / 1000) break;

                    if (!statics)

                    {

                        int[] tile = bridge.GetLandscapeTile(x, y, map);

                        if (tile.Length >= 2 && (wanted.Count == 0 || wanted.Contains(tile[0])))

                            result.Add(new InjectionValue(new[] { new InjectionValue(tile[0]), new InjectionValue(x), new InjectionValue(y), new InjectionValue(tile[1]) }));

                    }

                    else

                    {

                        int[] records = bridge.GetStaticTiles(x, y, map);

                        for (int i = 0; i + 2 < records.Length; i += 3)

                            if (wanted.Count == 0 || wanted.Contains(records[i]))

                                result.Add(new InjectionValue(new[] { new InjectionValue(records[i]), new InjectionValue(x), new InjectionValue(y), new InjectionValue(records[i + 1]), new InjectionValue(records[i + 2]) }));

                    }

                    if (++y > lastY) { y = firstY; x++; }

                }

            }

InjectionScript.Runtime.InjectionApiUO.GListSet

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: InjectionValue nameValue, InjectionValue value

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3396.

public void GListSet(InjectionValue nameValue, InjectionValue value)

Ergebnis: void.

Bedingungen:

  • index >= 0

Aufrufe:

  • nameValue.ToString
  • globalList.FindIndex
  • pair.Key.Equals
  • globalList.Add

Interner Implementierungscode; kein eigenständiges Skript.

public void GListSet(InjectionValue nameValue, InjectionValue value)

        {

            string name = nameValue.ToString();

            int index = globalList.FindIndex(pair => pair.Key.Equals(name, StringComparison.OrdinalIgnoreCase));

            var entry = new KeyValuePair<string, InjectionValue>(name, value);

            if (index >= 0)

                globalList[index] = entry;

            else

                globalList.Add(entry);

        }

InjectionScript.Runtime.InjectionApiUO.GetName

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: int id

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3730.

public string GetName(int id)

Ergebnis: string.

Aufrufe:

  • bridge.GetName

Interner Implementierungscode; kein eigenständiges Skript.

public string GetName(int id) => bridge.GetName(id);

InjectionScript.Runtime.InjectionApiUO.Grab

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: string amount, string id

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:4490.

public int Grab(string amount, string id)

Ergebnis: int.

Aufrufe:

  • CompactGrab

Interner Implementierungscode; kein eigenständiges Skript.

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

InjectionScript.Runtime.InjectionApiUO.Ignore

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: InjectionValue id, InjectionValue stateValue

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5341.

public void Ignore(InjectionValue id, InjectionValue stateValue)

Ergebnis: void.

Bedingungen:

  • enabled

Aufrufe:

  • GetObject
  • NumberConversions.ToInt
  • stateValue.String.Equals
  • bridge.Ignore
  • bridge.Unignore

Interner Implementierungscode; kein eigenständiges Skript.

public void Ignore(InjectionValue id, InjectionValue stateValue)

        {

            int serial = GetObject(id);

            bool enabled = stateValue.Kind != InjectionValueKind.String

                ? NumberConversions.ToInt(stateValue) != 0

                : !stateValue.String.Equals("off", StringComparison.OrdinalIgnoreCase)

                    && !stateValue.String.Equals("false", StringComparison.OrdinalIgnoreCase)

                    && stateValue.String != "0";



            if (enabled)

                bridge.Ignore(serial);

            else

                bridge.Unignore(serial);

        }

InjectionScript.Runtime.InjectionApiUO.IsNpc

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: Keine Parameter.

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3759.

public int IsNpc()

Ergebnis: int.

Aufrufe:

  • IsNpc

Interner Implementierungscode; kein eigenständiges Skript.

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

InjectionScript.Runtime.InjectionApiUO.MoveItem

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: InjectionValue id, InjectionValue amount, InjectionValue targetContainer, InjectionValue x, InjectionValue y, InjectionValue z

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:4596.

public int MoveItem(InjectionValue id, InjectionValue amount, InjectionValue targetContainer, InjectionValue x, InjectionValue y, InjectionValue z)

Ergebnis: int.

Aufrufe:

  • CompactMoveItem

Interner Implementierungscode; kein eigenständiges Skript.

public int MoveItem(InjectionValue id, InjectionValue amount, InjectionValue targetContainer, InjectionValue x, InjectionValue y, InjectionValue z)

            => CompactMoveItem(new[] { id, amount, targetContainer, x, y, z });

InjectionScript.Runtime.InjectionApiUO.ReceiveObjectName

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: InjectionValue id

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:4046.

public void ReceiveObjectName(InjectionValue id)

Ergebnis: void.

Aufrufe:

  • bridge.ReceiveObjectName
  • GetObject

Interner Implementierungscode; kein eigenständiges Skript.

public void ReceiveObjectName(InjectionValue id) => bridge.ReceiveObjectName(GetObject(id), 0);

InjectionScript.Runtime.InjectionApiUO.SetDress

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: string name

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5717.

public void SetDress(string name)

Ergebnis: void.

Aufrufe:

  • SetEquip

Interner Implementierungscode; kein eigenständiges Skript.

public void SetDress(string name)

            => SetEquip(name, dressSets, dressLayers, "Clothing set.");

InjectionScript.Runtime.InjectionApiUO.SetDressSpeed

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: int delayms

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5703.

public void SetDressSpeed(int delayms)

Ergebnis: void.

Aufrufe:

  • Math.Max
  • Math.Min

Interner Implementierungscode; kein eigenständiges Skript.

public void SetDressSpeed(int delayms) => state.DressSpeed = Math.Max(10, Math.Min(10_000, delayms));

InjectionScript.Runtime.InjectionApiUO.SkillVal

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: string skillName

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5919.

public int SkillVal(string skillName)

Ergebnis: int.

Aufrufe:

  • SkillVal

Interner Implementierungscode; kein eigenständiges Skript.

public int SkillVal(string skillName) => SkillVal(skillName, 0);

InjectionScript.Runtime.InjectionApiUO.TextPrint

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: string text

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5436.

public void TextPrint(string text)

Ergebnis: void.

Aufrufe:

  • bridge.TextPrint

Interner Implementierungscode; kein eigenständiges Skript.

public void TextPrint(string text) => bridge.TextPrint(text);

InjectionScript.Runtime.InjectionApiUO.ToArray

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: IEnumerable<int> values

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:6460.

private static InjectionValue ToArray(IEnumerable<int> values)

Ergebnis: InjectionValue.

Aufrufe:

  • (values ?? Array.Empty<int>()).Select(value => new InjectionValue(value)).ToArray
  • (values ?? Array.Empty<int>()).Select
  • Array.Empty<int>

Interner Implementierungscode; kein eigenständiges Skript.

private static InjectionValue ToArray(IEnumerable<int> values)

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

InjectionScript.Runtime.InjectionApiUO.Track

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: Keine Parameter.

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:6106.

public void Track()

Ergebnis: void.

Aufrufe:

  • Track
  • GetX
  • GetY

Interner Implementierungscode; kein eigenständiges Skript.

public void Track() => Track(1, GetX(), GetY());

InjectionScript.Runtime.InjectionApiUO.UseType

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: string type

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:4088.

public int UseType(string type)

Ergebnis: int.

Aufrufe:

  • UseType
  • ResolveType

Interner Implementierungscode; kein eigenständiges Skript.

public int UseType(string type) => UseType(ResolveType(type));

InjectionScript.Runtime.InjectionApiUO.WaitTargetGround

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: InjectionValue type, InjectionValue color

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:4347.

public void WaitTargetGround(InjectionValue type, InjectionValue color)

Ergebnis: void.

Bedingungen:

  • item <= 0

Aufrufe:

  • bridge.FindType
  • ResolveType
  • NumberConversions.ToInt
  • SystemMessage
  • bridge.CancelNextTarget
  • bridge.WaitTargetObject

Interner Implementierungscode; kein eigenständiges Skript.

public void WaitTargetGround(InjectionValue type, InjectionValue color)

        {

            int item = bridge.FindType(ResolveType(type), NumberConversions.ToInt(color), 1, -1, false);

            if (item <= 0)

            {

                SystemMessage("No ground item found. Next target request will be canceled");

                bridge.CancelNextTarget();

            }

            else

                bridge.WaitTargetObject(item);

        }

InjectionScript.Runtime.InjectionApiUO.WaitTargetTile

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: InjectionValue x, InjectionValue y, InjectionValue z

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:4320.

public void WaitTargetTile(InjectionValue x, InjectionValue y, InjectionValue z)

Ergebnis: void.

Aufrufe:

  • WaitTargetTile

Interner Implementierungscode; kein eigenständiges Skript.

public void WaitTargetTile(InjectionValue x, InjectionValue y, InjectionValue z)

            => WaitTargetTile(new InjectionValue(0), x, y, z);

InjectionScript.Runtime.InjectionApiUO.WaitingForJournalText

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: int startTime, int maxDelay, string text, int equals, int ignoreCase

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5539.

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

Ergebnis: void.

Aufrufe:

  • WaitingForJournalText

Interner Implementierungscode; kein eigenständiges Skript.

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

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

InjectionScript.Runtime.InjectionApiUO.WaitingForMenu

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: InjectionValue delay

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3439.

public int WaitingForMenu(InjectionValue delay)

Ergebnis: int.

Aufrufe:

  • WaitingForMenu

Interner Implementierungscode; kein eigenständiges Skript.

public int WaitingForMenu(InjectionValue delay) => WaitingForMenu(delay, InjectionValue.Zero, InjectionValue.Zero, new InjectionValue(string.Empty), InjectionValue.Zero);

InjectionScript.Runtime.InjectionApiUO.Weight

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: Keine Parameter.

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:4019.

public int Weight()

Ergebnis: int.

Aufrufe:

—

Interner Implementierungscode; kein eigenständiges Skript.

public int Weight() => bridge.Weight;

InjectionScript.Runtime.InjectionApiUO.Register [FindMobile]

Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.

Parameter: Keine Parameter.

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:364.

values

Ergebnis: values.

Aufrufe: FindMobile.

Aufrufe:

Interner Implementierungscode; kein eigenständiges Skript.

values => new InjectionValue(

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

InjectionScript.Runtime.InjectionApiUO.RegisterCharacterGetterAliases [GetArmor]

Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.

Parameter: Keine Parameter.

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1042.

Ergebnis: bridge.Armor.

Aufrufe:

Interner Implementierungscode; kein eigenständiges Skript.

() => bridge.Armor

InjectionScript.Runtime.InjectionApiUO.RegisterCharacterGetterAliases [GetResistEnergy]

Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.

Parameter: Keine Parameter.

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1046.

Ergebnis: bridge.EnergyResistance.

Aufrufe:

Interner Implementierungscode; kein eigenständiges Skript.

() => bridge.EnergyResistance

InjectionScript.Runtime.InjectionApiUO.RegisterCharacterGetterAliases [HP]

Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.

Parameter: Keine Parameter.

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1024.

Ergebnis: bridge.GetHP(bridge.Self).

Aufrufe:

Interner Implementierungscode; kein eigenständiges Skript.

() => bridge.GetHP(bridge.Self)

InjectionScript.Runtime.InjectionApiUO.Register [InJournal]

Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.

Parameter: Keine Parameter.

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:635.

values

Ergebnis: values.

Ergebnis: new InjectionValue(CompactInJournal(values)).

Aufrufe: CompactInJournal.

Aufrufe:

Interner Implementierungscode; kein eigenständiges Skript.

values => new InjectionValue(CompactInJournal(values))

InjectionScript.Runtime.InjectionApiUO.RegisterCharacterGetterAliases [MaxHP]

Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.

Parameter: Keine Parameter.

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1025.

Ergebnis: bridge.GetMaxHP(bridge.Self).

Aufrufe:

Interner Implementierungscode; kein eigenständiges Skript.

() => bridge.GetMaxHP(bridge.Self)

InjectionScript.Runtime.InjectionApiUO.RegisterCharacterGetterAliases [Online]

Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.

Parameter: Keine Parameter.

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1069.

Ergebnis: bridge.IsOnline().

Aufrufe:

Interner Implementierungscode; kein eigenständiges Skript.

() => bridge.IsOnline()

InjectionScript.Runtime.InjectionApiUO.RegisterCharacterGetterAliases

Liefert den Wert des folgenden Ausdrucks.

Parameter: Keine Parameter.

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1013.

value

Ergebnis: value.

Ergebnis: getter(GetObject(value)).

Aufrufe: getter, GetObject.

Aufrufe:

Interner Implementierungscode; kein eigenständiges Skript.

value => getter(GetObject(value))

InjectionScript.Runtime.InjectionRuntime.NormalizeConsoleAlias

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: string command

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/NativeConsoleDispatch.cs:347.

private static string NormalizeConsoleAlias(string command)

Ergebnis: string.

Bedingungen:

  • command.Equals("sayu", StringComparison.OrdinalIgnoreCase)
  • command.Equals("closeuo", StringComparison.OrdinalIgnoreCase)
  • command.Equals("CountOnGround", StringComparison.OrdinalIgnoreCase)
  • command.Equals("clearignorelist", StringComparison.OrdinalIgnoreCase)

Aufrufe:

  • command.Equals

Interner Implementierungscode; kein eigenständiges Skript.

private static string NormalizeConsoleAlias(string command)

        {

            if (command.Equals("sayu", StringComparison.OrdinalIgnoreCase)) return "Say";

            if (command.Equals("closeuo", StringComparison.OrdinalIgnoreCase)) return "CloseHandle";

            if (command.Equals("CountOnGround", StringComparison.OrdinalIgnoreCase)) return "CountGround";

            if (command.Equals("clearignorelist", StringComparison.OrdinalIgnoreCase)) return "IgnoreReset";

            if (command.Equals("canceltarget", StringComparison.OrdinalIgnoreCase)) return "CancelTarget";

            if (command.Equals("cancelmove", StringComparison.OrdinalIgnoreCase)) return "MoveOff";

            return command;

        }

InjectionScript.Runtime.InjectionRuntime.ToConsoleValue

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: string value

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/NativeConsoleDispatch.cs:331.

private static InjectionValue ToConsoleValue(string value)

Ergebnis: InjectionValue.

Bedingungen:

  • NumberConversions.TryStr2Int(value, out int number)
  • double.TryParse(value, NumberStyles.Float, CultureInfo.InvariantCulture, out double decimalNumber)

Aufrufe:

  • NumberConversions.TryStr2Int
  • double.TryParse

Interner Implementierungscode; kein eigenständiges Skript.

private static InjectionValue ToConsoleValue(string value)

        {

            if (NumberConversions.TryStr2Int(value, out int number))

                return new InjectionValue(number);

            if (double.TryParse(value, NumberStyles.Float, CultureInfo.InvariantCulture, out double decimalNumber))

                return new InjectionValue(decimalNumber);

            return new InjectionValue(value);

        }

InjectionScript.Runtime.NumberConversions.ToHex

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: int id

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/NumberConversions.cs:79.

public static string ToHex(int id)

Ergebnis: string.

Aufrufe:

—

Interner Implementierungscode; kein eigenständiges Skript.

public static string ToHex(int id) => $"0x{id:X8}";

InjectionScript.Runtime.State.RuntimeDictionary.Remove

Führt die gezeigten Aufrufe und Zustandsänderungen aus.

Parameter: string name

Quelle: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/State/RuntimeDictionary.cs:88.

public void Remove(string name)

Ergebnis: void.

Bedingungen:

  • items.ContainsKey(name)
  • notify

Aufrufe:

  • items.ContainsKey
  • items.Remove
  • .Invoke

Interner Implementierungscode; kein eigenständiges Skript.

public void Remove(string name)

        {

            bool notify = false;

            lock (itemsLock)

            {

                if (items.ContainsKey(name))

                {

                    notify = true;

                    items.Remove(name);

                }

            }



            if (notify)

                KeyRemoved?.Invoke(name);

        }

Clone this wiki locally