Skip to content

JA Runtime Helpers 7

Codex edited this page Oct 12, 2026 · 1 revision

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

補助関数 7

内部実装のコードです。単独のスクリプトとして実行できません。

ClassicUO.CSharp.CSharpCallbacks.TryInvoke

この分岐は指定されたコマンド名だけを処理します。

引数: 引数はありません。

ソース: Project_Full/src/ClassicUO.CSharp/CSharpCallbacks.cs:412.

結果: true.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

ClassicUO.CSharp.CSharpCallbacks.TryInvoke

この分岐は指定されたコマンド名だけを処理します。

引数: 引数はありません。

ソース: Project_Full/src/ClassicUO.CSharp/CSharpCallbacks.cs:426.

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

結果: when.

呼び出し: Convert.ToString.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

ClassicUO.CSharp.CSharpCallbacks.HandlerName

以下の条件を確認し、示された結果を返します。

引数: value

ソース: Project_Full/src/ClassicUO.CSharp/CSharpCallbacks.cs:335.

private static string HandlerName(object? value)

結果: string.

結果: name[5..].Trim(); name[6..].Trim(); name.

呼び出し: (Convert.ToString(value) ?? "").Trim, Convert.ToString, name.StartsWith, name[5..].Trim, name[6..].Trim.

条件: name.StartsWith("exec ", StringComparison.OrdinalIgnoreCase); name.StartsWith("_exec ", StringComparison.OrdinalIgnoreCase).

内部実装のコードです。単独のスクリプトとして実行できません。

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

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.BookSetPageText

示された呼び出しと状態更新を実行します。

引数: page, text

ソース: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:1774.

public void BookSetPageText(int page, string text)

結果: void.

呼び出し: Invoke.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

        {

            ISessionBook book = GetOpenBook();

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

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

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

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Bow

示された呼び出しと状態更新を実行します。

引数: 引数はありません。

ソース: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:1410.

public void Bow()

結果: void.

呼び出し: Invoke.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.CloseMenu

示された呼び出しと状態更新を実行します。

引数: 引数はありません。

ソース: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:695.

public void CloseMenu()

結果: void.

呼び出し: Invoke.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

        {

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

                menu.CancelForYoko();

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.ColdResistance

以下の式の値を返します。

引数: 引数はありません。

ソース: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:162.

public int ColdResistance

結果: int.

結果: Invoke(() => CurrentPlayer?.ColdResistance ?? 0).

呼び出し: Invoke.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Error

示された呼び出しと状態更新を実行します。

引数: message

ソース: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:3659.

public void Error(string message)

結果: void.

呼び出し: ReportStatus.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.FindCount

以下の式の値を返します。

引数: 引数はありません。

ソース: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:2255.

public int FindCount()

結果: int.

結果: _findCount.

内部実装のコードです。単独のスクリプトとして実行できません。

public int FindCount() => _findCount;

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.FindItem

以下の式の値を返します。

引数: 引数はありません。

ソース: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:133.

public int FindItem

結果: int.

結果: _findItem.

内部実装のコードです。単独のスクリプトとして実行できません。

public int FindItem => _findItem;

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.FindNotoriety

以下の式の値を返します。

引数: type, notoriety

ソース: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:2649.

public int FindNotoriety(int type, int notoriety)

結果: int.

呼び出し: Invoke.

呼び出し:

  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => { ResetFindResults(); IgnoreTypeFilter ignoredTypes = State.IgnoreTypeLists.FilterFor(State.SelectedIgnoreList); foreach (Mobile mobile in _world.Mobiles.Values) { if (mobile.IsDestroyed || State.IgnoredSerials.Contains((int)mobile.Serial) || ignoredTypes.Matches(mobile.Graphic, mobile.Hue) || mobile == _world.Player || type >= 0 && type != 0xFFFF && mobile.Graphic != (ushort)type || notoriety >= 0 && (int)mobile.NotorietyFlag != notoriety || mobile.Distance > State.FindDistance || _world.Player != null && Math.Abs(mobile.Z - _world.Player.Z) > State.FindVertical) { continue; } RegisterFound(mobile); } return _findItem; }). オーバーロード候補です。ソースは選択された候補を確定していません。
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => { ResetFindResults(); IgnoreTypeFilter ignoredTypes = State.IgnoreTypeLists.FilterFor(State.SelectedIgnoreList); foreach (Mobile mobile in _world.Mobiles.Values) { if (mobile.IsDestroyed || State.IgnoredSerials.Contains((int)mobile.Serial) || ignoredTypes.Matches(mobile.Graphic, mobile.Hue) || mobile == _world.Player || type >= 0 && type != 0xFFFF && mobile.Graphic != (ushort)type || notoriety >= 0 && (int)mobile.NotorietyFlag != notoriety || mobile.Distance > State.FindDistance || _world.Player != null && Math.Abs(mobile.Z - _world.Player.Z) > State.FindVertical) { continue; } RegisterFound(mobile); } return _findItem; }). オーバーロード候補です。ソースは選択された候補を確定していません。
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.ResetFindResults: ResetFindResults().
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.RegisterFound: RegisterFound(mobile). オーバーロード候補です。ソースは選択された候補を確定していません。
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.RegisterFound: RegisterFound(mobile). オーバーロード候補です。ソースは選択された候補を確定していません。

内部実装のコードです。単独のスクリプトとして実行できません。

public int FindNotoriety(int type, int notoriety)

        {

            return Invoke(() =>

            {

                ResetFindResults();

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

                foreach (Mobile mobile in _world.Mobiles.Values)

                {

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

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

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

                        || mobile.Distance > State.FindDistance

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

                    {

                        continue;

                    }

                    RegisterFound(mobile);

                }

                return _findItem;

            });

        }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GameServerPort

以下の式の値を返します。

引数: 引数はありません。

ソース: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:178.

public int GameServerPort

結果: int.

結果: Settings.GlobalSettings.Port.

内部実装のコードです。単独のスクリプトとして実行できません。

public int GameServerPort => Settings.GlobalSettings.Port;

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetHP

以下の式の値を返します。

引数: id

ソース: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:228.

public int GetHP(int id)

結果: int.

結果: WithEntity(id, e => e.Hits).

呼び出し: WithEntity.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetLocked

以下の式の値を返します。

引数: id

ソース: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:621.

public int GetLocked(int id)

結果: int.

結果: Invoke(() => (_world.Get(unchecked((uint)id)) as Mobile)?.IsParalyzed == true ? 1 : 0).

呼び出し: Invoke.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetPing

以下の式の値を返します。

引数: 引数はありません。

ソース: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:338.

public int GetPing()

結果: int.

結果: NetClient.Socket.Statistics.ServerPing.

内部実装のコードです。単独のスクリプトとして実行できません。

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

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

示された呼び出しと状態更新を実行します。

引数: buffer, offset, value

ソース: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:3351.

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

結果: void.

内部実装のコードです。単独のスクリプトとして実行できません。

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

            {

                buffer[offset] = (byte)value;

                buffer[offset + 1] = (byte)(value >> 8);

                buffer[offset + 2] = (byte)(value >> 16);

                buffer[offset + 3] = (byte)(value >> 24);

            }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetTradeOpponentName

以下の式の値を返します。

引数: tradeNumber

ソース: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:261.

public string GetTradeOpponentName(int tradeNumber)

結果: string.

呼び出し: Invoke.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

        {

            ISessionTrade gump = FindNumberedTrade(tradeNumber);

            return gump?.OpponentName ?? string.Empty;

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.InJournalBetweenTimes

以下の式の値を返します。

引数: pattern, startTime, endTime, limit

ソース: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:1903.

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

結果: int.

結果: FindJournal(pattern, start, end, limit, false, true).

呼び出し: now.AddMilliseconds, Math.Max, Math.Min, FindJournal.

内部実装のコードです。単独のスクリプトとして実行できません。

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

        {

            DateTime now = DateTime.Now;

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

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

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

        }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.InJournalSystemBetweenTimes

以下の式の値を返します。

引数: pattern, startTime, endTime, limit

ソース: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:1917.

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

結果: int.

結果: FindJournal(pattern, start, end, limit, true, true).

呼び出し: now.AddMilliseconds, Math.Max, Math.Min, FindJournal.

内部実装のコードです。単独のスクリプトとして実行できません。

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

        {

            DateTime now = DateTime.Now;

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

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

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

        }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.IsWaterTile

以下の式の値を返します。

引数: x, y

ソース: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:670.

public int IsWaterTile(int x, int y)

結果: int.

呼び出し: Invoke.

呼び出し:

  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => AnyTileAt(x, y, tile => tile is Land land ? land.TileData.IsWet : tile.Graphic < Client.UO.FileManager.TileData.StaticData.Length && Client.UO.FileManager.TileData.StaticData[tile.Graphic].IsWet) ? 1 : 0). オーバーロード候補です。ソースは選択された候補を確定していません。
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => AnyTileAt(x, y, tile => tile is Land land ? land.TileData.IsWet : tile.Graphic < Client.UO.FileManager.TileData.StaticData.Length && Client.UO.FileManager.TileData.StaticData[tile.Graphic].IsWet) ? 1 : 0). オーバーロード候補です。ソースは選択された候補を確定していません。
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.AnyTileAt: AnyTileAt(x, y, tile => tile is Land land ? land.TileData.IsWet : tile.Graphic < Client.UO.FileManager.TileData.StaticData.Length && Client.UO.FileManager.TileData.StaticData[tile.Graphic].IsWet).

内部実装のコードです。単独のスクリプトとして実行できません。

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

            tile is Land land ? land.TileData.IsWet

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

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

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.LastCorpse

以下の式の値を返します。

引数: 引数はありません。

ソース: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:136.

public int LastCorpse

結果: int.

結果: Invoke(() => (int)(_world.Items.Values.Where(i => i.IsCorpse && !i.IsDestroyed).OrderBy(i => i.Distance).FirstOrDefault()?.Serial ?? 0)).

呼び出し: Invoke.

内部実装のコードです。単独のスクリプトとして実行できません。

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

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.MaxMana

以下の式の値を返します。

引数: 引数はありません。

ソース: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:160.

public int MaxMana

結果: int.

結果: Invoke(() => CurrentPlayer?.ManaMax ?? 0).

呼び出し: Invoke.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.MoveItems

以下の式の値を返します。

引数: sourceContainerId, type, color, targetContainerId, x, y, z, delayMs

ソース: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:1284.

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

結果: int.

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

呼び出し: MoveContainerItems.

内部実装のコードです。単独のスクリプトとして実行できません。

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

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

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Race

以下の式の値を返します。

引数: 引数はありません。

ソース: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:168.

public int Race

結果: int.

結果: Invoke(() => (int)(CurrentPlayer?.Race ?? 0)).

呼び出し: Invoke.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SelectGump

示された呼び出しと状態更新を実行します。

引数: id

ソース: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:2893.

public void SelectGump(int id)

結果: void.

呼び出し: Invoke.

呼び出し:

  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => { List<Gump> gumps = ServerGumpsUnsafe(); _selectedServerGump = gumps.FirstOrDefault(g => g.LocalSerial == (uint)id || g.ServerSerial == (uint)id); if (_selectedServerGump == null && id >= 0 && id < gumps.Count) { _selectedServerGump = gumps[id]; } if (_selectedServerGump == null) { Error($"UO.SelectGump: gump {id} was not found"); } }). オーバーロード候補です。ソースは選択された候補を確定していません。
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => { List<Gump> gumps = ServerGumpsUnsafe(); _selectedServerGump = gumps.FirstOrDefault(g => g.LocalSerial == (uint)id || g.ServerSerial == (uint)id); if (_selectedServerGump == null && id >= 0 && id < gumps.Count) { _selectedServerGump = gumps[id]; } if (_selectedServerGump == null) { Error($"UO.SelectGump: gump {id} was not found"); } }). オーバーロード候補です。ソースは選択された候補を確定していません。
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.ServerGumpsUnsafe: ServerGumpsUnsafe().
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Error: Error($"UO.SelectGump: gump {id} was not found").

内部実装のコードです。単独のスクリプトとして実行できません。

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

        {

            List<Gump> gumps = ServerGumpsUnsafe();

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

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

            {

                _selectedServerGump = gumps[id];

            }

            if (_selectedServerGump == null)

            {

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

            }

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SendGumpSelect

以下の式の値を返します。

引数: gumpIndex, triggerId

ソース: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:2761.

public int SendGumpSelect(int gumpIndex, int triggerId)

結果: int.

呼び出し: Invoke.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

        {

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

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

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SetAutoBuyRule

示された呼び出しと状態更新を実行します。

引数: type, color, quantity, maxPrice, name

ソース: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:3578.

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

結果: void.

呼び出し: Invoke.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

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

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SetMapFigure

以下の式の値を返します。

引数: figureId, kind, coord, x1, y1, x2, y2, brushColor, brushStyle, color, worldNum, text

ソース: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:2324.

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

結果: int.

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

呼び出し: Invoke.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

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

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SetPauseScriptOnDisconnectStatus

示された呼び出しと状態更新を実行します。

引数: enabled

ソース: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:311.

public void SetPauseScriptOnDisconnectStatus(int enabled)

結果: void.

内部実装のコードです。単独のスクリプトとして実行できません。

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

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SplitPatterns

以下の式の値を返します。

引数: pattern

ソース: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:3746.

private static string[] SplitPatterns(string pattern)

結果: string[].

結果: (pattern ?? string.Empty).Split('|', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries).

呼び出し: (pattern ?? string.Empty).Split.

内部実装のコードです。単独のスクリプトとして実行できません。

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

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.TargetToTile

示された呼び出しと状態更新を実行します。

引数: type, x, y, z

ソース: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:833.

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

結果: void.

呼び出し: Invoke.

呼び出し:

  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => { if (_world.TargetManager.IsServerTarget) _world.TargetManager.Target((ushort)type, (ushort)x, (ushort)y, (short)z); }). オーバーロード候補です。ソースは選択された候補を確定していません。
  • ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Invoke: Invoke(() => { if (_world.TargetManager.IsServerTarget) _world.TargetManager.Target((ushort)type, (ushort)x, (ushort)y, (short)z); }). オーバーロード候補です。ソースは選択された候補を確定していません。

内部実装のコードです。単独のスクリプトとして実行できません。

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

        {

            if (_world.TargetManager.IsServerTarget)

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

        });

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.TextPrint

示された呼び出しと状態更新を実行します。

引数: text

ソース: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:1752.

public void TextPrint(string text)

結果: void.

呼び出し: _textWindow.RemoveRange, _textWindow.Add, Invoke.

条件: _textWindow.Count >= MaxTextWindowLines.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

public void TextPrint(string text)

        {

            if (_textWindow.Count >= MaxTextWindowLines)

                _textWindow.RemoveRange(0,

                    _textWindow.Count - MaxTextWindowLines + 1);

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

            _textWindowOpen = true;

            Invoke(() =>

            {

                YokoTextWindowGump.Show(_world, _textWindow);

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

            });

        }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.TryProbeServerPing

以下の条件を確認し、示された結果を返します。

引数: timeoutMs, pingMs

ソース: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:342.

private bool TryProbeServerPing(int timeoutMs, out int pingMs)

結果: bool.

結果: false; pingMs >= 0.

呼び出し: Math.Max, Invoke, NetClient.Socket.Statistics.GetPingEchoGeneration, Wait, Math.Min.

条件: request.Token < 0; NetClient.Socket.Statistics.GetPingEchoGeneration((byte)request.Token) != request.Generation; timeout == 0; remaining <= 0.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

private bool TryProbeServerPing(int timeoutMs, out int pingMs)

        {

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

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

            {

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

                    return (-1, -1);



                return NetClient.Socket.Statistics.SendPingProbe();

            });



            if (request.Token < 0)

            {

                pingMs = -1;

                return false;

            }



            long deadline = Environment.TickCount64 + timeout;

            do

            {

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

                {

                    pingMs = NetClient.Socket.Statistics.ServerPing;

                    return pingMs >= 0;

                }



                if (timeout == 0)

                    break;



                long remaining = deadline - Environment.TickCount64;

                if (remaining <= 0)

                    break;



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

            }

            while (true);



            pingMs = -1;

            return false;

        }

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.UnsetReceivingContainer

示された呼び出しと状態更新を実行します。

引数: 引数はありません。

ソース: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:1134.

public void UnsetReceivingContainer()

結果: void.

内部実装のコードです。単独のスクリプトとして実行できません。

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

ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.UseObject

示された呼び出しと状態更新を実行します。

引数: id

ソース: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:772.

public void UseObject(int id)

結果: void.

呼び出し: Invoke.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

ClassicUO.Game.Managers.LastCharacterManager.OverrideLastCharacter

示された呼び出しと状態更新を実行します。

引数: name, oneShot

ソース: Project_Full/src/ClassicUO.Client/Game/Managers/LastCharacterManager.cs:107.

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

結果: void.

呼び出し: string.IsNullOrEmpty.

内部実装のコードです。単独のスクリプトとして実行できません。

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

ClassicUO.Game.Managers.UIManager.GetGump

以下の条件を確認し、示された結果を返します。

引数: serial

ソース: Project_Full/src/ClassicUO.Client/Game/Managers/UIManager.cs:277.

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

結果: T.

結果: t; null.

条件: serial.HasValue; !c.IsDisposed && c.LocalSerial == serial.Value && c is T t; !c.IsDisposed && c is T t.

内部実装のコードです。単独のスクリプトとして実行できません。

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

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

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

            return null;
        }

ClassicUO.Game.Managers.YokoInjectionManager.AppendIdeOutput

示された呼び出しと状態更新を実行します。

引数: scriptKey, text

ソース: Project_Full/src/ClassicUO.Client/Game/Managers/YokoInjectionManager.cs:679.

internal void AppendIdeOutput(string scriptKey, string text)

結果: void.

呼び出し: _ideToolBuffers.AppendOutput.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

internal void AppendIdeOutput(string scriptKey, string text) =>
            _ideToolBuffers.AppendOutput(scriptKey, text);

ClassicUO.Game.Managers.YokoInjectionManager.GetPendingTargetSerials

以下の式の値を返します。

引数: 引数はありません。

ソース: Project_Full/src/ClassicUO.Client/Game/Managers/YokoInjectionManager.cs:3347.

internal int[] GetPendingTargetSerials()

結果: int[].

結果: _pendingTargets.ToArray().Where(t => !t.Owner.IsCancellationRequested).Select(t => (int)t.Serial).ToArray().

呼び出し: _pendingTargets.ToArray().Where(t => !t.Owner.IsCancellationRequested).Select(t => (int)t.Serial).ToArray, _pendingTargets.ToArray().Where(t => !t.Owner.IsCancellationRequested).Select, _pendingTargets.ToArray().Where, _pendingTargets.ToArray.

内部実装のコードです。単独のスクリプトとして実行できません。

internal int[] GetPendingTargetSerials() =>
            // Zero denotes a queued tile/cancellation. Waiting() and timed casts
            // need to count these entries as well as object serials.
            _pendingTargets.ToArray().Where(t => !t.Owner.IsCancellationRequested).Select(t => (int)t.Serial).ToArray();

ClassicUO.Game.Managers.YokoInjectionManager.InvokeOnGameThread

処理をゲームスレッドに渡し、キャンセルを反映します。

引数: callback, cancellationToken

ソース: Project_Full/src/ClassicUO.Client/Game/Managers/YokoInjectionManager.cs:3457.

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

結果: T.

結果: callback(); result.Task.GetAwaiter().GetResult().

呼び出し: nameof, cancellationToken.ThrowIfCancellationRequested, Volatile.Read, callback, EnqueueMainThreadAction, result.Task.Wait, result.Task.GetAwaiter().GetResult, result.Task.GetAwaiter.

条件: callback == null; Volatile.Read(ref _gameThreadId) == Environment.CurrentManagedThreadId.

内部実装のコードです。単独のスクリプトとして実行できません。

internal T InvokeOnGameThread<T>(Func<T> callback, CancellationToken cancellationToken)
        {
            if (callback == null)
                throw new ArgumentNullException(nameof(callback));
            cancellationToken.ThrowIfCancellationRequested();
            if (Volatile.Read(ref _gameThreadId) == Environment.CurrentManagedThreadId)
                return callback();

            var result = new TaskCompletionSource<T>(TaskCreationOptions.RunContinuationsAsynchronously);
            EnqueueMainThreadAction(() =>
            {
                if (cancellationToken.IsCancellationRequested)
                {
                    result.TrySetCanceled(cancellationToken);
                    return;
                }

                try
                {
                    result.TrySetResult(callback());
                }
                catch (Exception ex)
                {
                    result.TrySetException(ex);
                }
            }, () => result.TrySetCanceled());

            result.Task.Wait(cancellationToken);
            return result.Task.GetAwaiter().GetResult();
        }

ClassicUO.Game.Managers.YokoInjectionManager.MarkRuntimeStateChanged

示された呼び出しと状態更新を実行します。

引数: 引数はありません。

ソース: Project_Full/src/ClassicUO.Client/Game/Managers/YokoInjectionManager.cs:3804.

private void MarkRuntimeStateChanged()

結果: void.

呼び出し: Interlocked.Increment.

内部実装のコードです。単独のスクリプトとして実行できません。

private void MarkRuntimeStateChanged() =>
            Interlocked.Increment(ref _runtimeStateRevision);

ClassicUO.Game.Managers.YokoInjectionManager.QueueTarget

示された呼び出しと状態更新を実行します。

引数: serial, owner

ソース: Project_Full/src/ClassicUO.Client/Game/Managers/YokoInjectionManager.cs:3287.

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

結果: void.

呼び出し: owner.ThrowIfCancellationRequested, _pendingTargets.Enqueue.

内部実装のコードです。単独のスクリプトとして実行できません。

internal void QueueTarget(uint serial, CancellationToken owner = default)
        {
            lock (_pendingTargetLock)
            {
                owner.ThrowIfCancellationRequested();
                _pendingTargets.Enqueue(new PendingTarget(serial, owner));
            }
        }

ClassicUO.Game.UI.Gumps.Gump.OnButtonClick

示された呼び出しと状態更新を実行します。

引数: buttonID

ソース: Project_Full/src/ClassicUO.Client/Game/UI/Gumps/Gump.cs:142.

public override void OnButtonClick(int buttonID)

結果: void.

呼び出し: state.OnButtonClick, switches.Add, entries.Add, GameActions.ReplyGump, switches.ToArray, entries.ToArray, UIManager.SavePosition, UIManager.RemovePosition.

条件: SessionState is { } state; !IsDisposed && (LocalSerial != 0 || ServerSerial != 0); CanMove.

内部実装のコードです。単独のスクリプトとして実行できません。

public override void OnButtonClick(int buttonID)
        {
            if (SessionState is { } state)
            {
                state.OnButtonClick(buttonID);
                return;
            }
            if (!IsDisposed && (LocalSerial != 0 || ServerSerial != 0))
            {
                List<uint> switches = new List<uint>();
// …
                if (CanMove)
// …

完全なコードはソースファイルにあります。以下は正確な抜粋です。

ClassicUO.Game.World.ResolveProfileServerName

コードに示す規則に従って引数を解析または解決します。

引数: 引数はありません。

ソース: Project_Full/src/ClassicUO.Client/Game/World.cs:258.

internal string ResolveProfileServerName()

結果: string.

結果: _profileServerIdentity.

呼び出し: string.IsNullOrWhiteSpace, Path.Combine, ProfileShardIdentity.Resolve.

条件: string.IsNullOrWhiteSpace(_profileServerIdentity).

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

internal string ResolveProfileServerName()

        {

            if (string.IsNullOrWhiteSpace(_profileServerIdentity))

            {

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

                    ? Settings.GlobalSettings.LastServerName

                    : ServerName;

                string defaultSettingsPath = Path.Combine(

                    CUOEnviroment.ExecutablePath,

                    Settings.SETTINGS_FILENAME

                );



                _profileServerIdentity = ProfileShardIdentity.Resolve(

                    runtimeName,

                    Settings.GlobalSettings.IP,

                    Settings.GlobalSettings.Port,

                    _selectedProfileShardHost,

                    defaultSettingsPath,

                    authoritativeEndpoint: _sessionAccount != null

                );

            }



            return _profileServerIdentity;

        }

InjectionScript.Runtime.InjectionApiUO.CheckLag

以下の条件を確認し、示された結果を返します。

引数: timeout, retries

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3747.

public int CheckLag(InjectionValue timeout, InjectionValue retries)

結果: int.

結果: 1; 0.

呼び出し: Math.Max, NumberConversions.ToInt, bridge.CheckLag.

条件: bridge.CheckLag(timeoutMs) != 0.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

public int CheckLag(InjectionValue timeout, InjectionValue retries)

        {

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

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

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

            {

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

                    return 1;

            }

            return 0;

        }

InjectionScript.Runtime.InjectionApiUO.CompactGetWorldItems

以下の条件を確認し、示された結果を返します。

引数: values

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:4851.

private InjectionValue CompactGetWorldItems(InjectionValue[] values)

結果: InjectionValue.

結果: new InjectionValue(Array.Empty<InjectionValue>()); new InjectionValue(filtered.Select(id => new InjectionValue(id)).ToArray()).

呼び出し: ResolveType, NumberConversions.ToInt, ResolveCompactDistance, bridge.GetFindDistance, TryResolveWorldItemQueryContainer, Array.Empty<InjectionValue>, ToBoolean, ResolveCompactMaxZ.

条件: values.Length > 3 && !TryResolveWorldItemQueryContainer(values[3], out container); nearest.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

private InjectionValue CompactGetWorldItems(InjectionValue[] values)

        {

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

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

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

            int container = 0;

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

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

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

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



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

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

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

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



            IEnumerable<int> filtered = source

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

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

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

                .Where(id =>

                {

                    int distanceObject = container > 0 ? container : id;

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

                })

                .Where(id =>

                {

                    int zObject = container > 0 ? container : id;

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

                });



            if (nearest)

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



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

        }

InjectionScript.Runtime.InjectionApiUO.ConvertSpellName

以下の条件を確認し、示された結果を返します。

引数: spellName

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:6514.

private int? ConvertSpellName(string spellName)

結果: int?.

結果: classicUoSpellId; spellId; null.

呼び出し: (spellName ?? string.Empty).Trim().Replace, (spellName ?? string.Empty).Trim, bridge.ResolveSpell, spellNameToSpellId.TryGetValue, NumberConversions.TryStr2Int.

条件: classicUoSpellId > 0; spellNameToSpellId.TryGetValue(requested, out var spellId); NumberConversions.TryStr2Int(requested, out spellId) && spellId > 0.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

private int? ConvertSpellName(string spellName)

        {

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

            int classicUoSpellId = bridge.ResolveSpell(requested);

            if (classicUoSpellId > 0)

                return classicUoSpellId;



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

                return spellId;



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

                return spellId;



            return null;

        }

InjectionScript.Runtime.InjectionApiUO.Count

以下の式の値を返します。

引数: type, color, container

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5214.

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

結果: int.

結果: bridge.Count(type, color, container).

呼び出し: bridge.Count.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

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

InjectionScript.Runtime.InjectionApiUO.Date

以下の式の値を返します。

引数: 引数はありません。

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5927.

public int Date()

結果: int.

結果: (now.Year % 100) * 10000 + now.Month * 100 + now.Day.

内部実装のコードです。単独のスクリプトとして実行できません。

public int Date()

        {

            var now = timeSource.Now;

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

        }

InjectionScript.Runtime.InjectionApiUO.DecodeEasyUoId

以下の条件を確認し、示された結果を返します。

引数: easyValue

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:2473.

private static int DecodeEasyUoId(string easyValue)

結果: int.

結果: unchecked((int)value).

呼び出し: (easyValue ?? string.Empty).ToUpperInvariant.

条件: character < 'A' || character > 'Z'.

内部実装のコードです。単独のスクリプトとして実行できません。

private static int DecodeEasyUoId(string easyValue)

        {

            uint value = 0;

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

            {

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

                    continue;

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

            }

            return unchecked((int)value);

        }

InjectionScript.Runtime.InjectionApiUO.DeleteJournal

示された呼び出しと状態更新を実行します。

引数: text

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5400.

public void DeleteJournal(InjectionValue text)

結果: void.

呼び出し: DeleteJournal.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

InjectionScript.Runtime.InjectionApiUO.EUO2Inj

以下の条件を確認し、示された結果を返します。

引数: easyValue

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3383.

public string EUO2Inj(InjectionValue easyValue)

結果: string.

結果: NumberConversions.ToHex(unchecked((int)value)).

呼び出し: easyValue.ToString().ToUpperInvariant, easyValue.ToString, NumberConversions.ToHex.

条件: c < 'A' || c > 'Z'.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

public string EUO2Inj(InjectionValue easyValue)

        {

            uint value = 0;

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

            {

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

                    continue;

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

            }

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

        }

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

この分岐は指定されたコマンド名だけを処理します。

引数: 引数はありません。

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1777.

結果: InjectionValue.Unit.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

この分岐は指定されたコマンド名だけを処理します。

引数: 引数はありません。

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1814.

結果: InjectionValue.Unit.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

この分岐は指定されたコマンド名だけを処理します。

引数: 引数はありません。

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1816.

結果: InjectionValue.True.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

この分岐は指定されたコマンド名だけを処理します。

引数: 引数はありません。

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1241.

結果: InjectionValue.Unit.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

case "clientprintex":

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

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

この分岐は指定されたコマンド名だけを処理します。

引数: 引数はありません。

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1315.

結果: new InjectionValue(bridge.GetAutoReconnect()).

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

この分岐は指定されたコマンド名だけを処理します。

引数: 引数はありません。

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1370.

結果: new InjectionValue(arguments.Length > 0 ? bridge.GetIntelligence(Arg(0)) : bridge.Intelligence).

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

この分岐は指定されたコマンド名だけを処理します。

引数: 引数はありません。

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1564.

結果: new InjectionValue(bridge.GetZ(Arg(0, bridge.Self))).

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

この分岐は指定されたコマンド名だけを処理します。

引数: 引数はありません。

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1539.

結果: InjectionValue.Unit.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

この分岐は指定されたコマンド名だけを処理します。

引数: 引数はありません。

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1248.

結果: InjectionValue.Unit.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

この分岐は指定されたコマンド名だけを処理します。

引数: 引数はありません。

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1367.

結果: new InjectionValue(bridge.Exists(Arg(0))).

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

この分岐は指定されたコマンド名だけを処理します。

引数: 引数はありません。

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1640.

結果: new InjectionValue(Waiting()).

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

この分岐は指定されたコマンド名だけを処理します。

引数: 引数はありません。

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:2035.

結果: new InjectionValue(bridge.JournalMatchCount()).

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

この分岐は指定されたコマンド名だけを処理します。

引数: 引数はありません。

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1957.

結果: InjectionValue.Unit.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

この分岐は指定されたコマンド名だけを処理します。

引数: 引数はありません。

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1906.

結果: SetIndexedGumpValue(Arg(0), "checkbox", Arg(1), Text(2)).

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

この分岐は指定されたコマンド名だけを処理します。

引数: 引数はありません。

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1537.

結果: new InjectionValue(bridge.ObjAtLayerEx(Arg(0), Arg(1))).

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

この分岐は指定されたコマンド名だけを処理します。

引数: 引数はありません。

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1708.

結果: InjectionValue.Unit.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

この分岐は指定されたコマンド名だけを処理します。

引数: 引数はありません。

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1709.

結果: InjectionValue.Unit.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

この分岐は指定されたコマンド名だけを処理します。

引数: 引数はありません。

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1707.

結果: InjectionValue.Unit.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

この分岐は指定されたコマンド名だけを処理します。

引数: 引数はありません。

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1536.

結果: new InjectionValue(ReadPredictedCoordinate(3)).

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility

この分岐は指定されたコマンド名だけを処理します。

引数: 引数はありません。

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1597.

結果: InjectionValue.Unit.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias

この分岐は指定されたコマンド名だけを処理します。

引数: 引数はありません。

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:2863.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

case "deletefindlist":

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

                        arguments));

                    break;

InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias

この分岐は指定されたコマンド名だけを処理します。

引数: 引数はありません。

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:2962.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias

この分岐は指定されたコマンド名だけを処理します。

引数: 引数はありません。

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3025.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias

この分岐は指定されたコマンド名だけを処理します。

引数: 引数はありません。

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:2871.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

InjectionScript.Runtime.InjectionApiUO.FindType

以下の条件を確認し、示された結果を返します。

引数: type, color

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:4588.

public string FindType(InjectionValue type, InjectionValue color)

結果: string.

結果: FindType(ResolveType(type), -1, ConvertContainer(color), -1, color.String.Equals("my", StringComparison.OrdinalIgnoreCase)); FindType(ResolveType(type), NumberConversions.ToInt(color), -1, -1, false).

呼び出し: color.String.Equals, FindType, ResolveType, ConvertContainer, NumberConversions.ToInt.

条件: `color.Kind == InjectionValueKind.String

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

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

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

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

public string FindType(InjectionValue type, InjectionValue color)

        {

            if (color.Kind == InjectionValueKind.String

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

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

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

            {

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

            }



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

        }

InjectionScript.Runtime.InjectionApiUO.GetFoundedTextID

以下の式の値を返します。

引数: 引数はありません。

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5487.

public int GetFoundedTextID()

結果: int.

結果: foundedTextId >= 0 ? foundedTextId : 0.

内部実装のコードです。単独のスクリプトとして実行できません。

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

InjectionScript.Runtime.InjectionApiUO.GetFoundedTextIndex

以下の式の値を返します。

引数: 引数はありません。

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5488.

public int GetFoundedTextIndex()

結果: int.

呼び出し: reader.FindJournalEntryIndex.

内部実装のコードです。単独のスクリプトとして実行できません。

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

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

InjectionScript.Runtime.InjectionApiUO.GetFoundedTextSerial

以下の式の値を返します。

引数: 引数はありません。

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5490.

public string GetFoundedTextSerial()

結果: string.

内部実装のコードです。単独のスクリプトとして実行できません。

public string GetFoundedTextSerial() => selectedJournalEntry != null

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

InjectionScript.Runtime.InjectionApiUO.GetGraphics

以下の式の値を返します。

引数: id

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3615.

public string GetGraphics(string id)

結果: string.

結果: GetGraphics(GetObject(id)).

呼び出し: GetGraphics, GetObject.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

InjectionScript.Runtime.InjectionApiUO.GetGump

以下の式の値を返します。

引数: identifier, key

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3234.

public InjectionValue GetGump(string identifier, int key)

結果: InjectionValue.

結果: LastGump(identifier, key).

呼び出し: LastGump.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

InjectionScript.Runtime.InjectionApiUO.GetLayer

以下の式の値を返します。

引数: id

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3621.

public string GetLayer(InjectionValue id)

結果: string.

結果: ConvertLayer(bridge.GetLayer(GetObject(id))).

呼び出し: ConvertLayer, bridge.GetLayer, GetObject.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

InjectionScript.Runtime.InjectionApiUO.GetRun

以下の式の値を返します。

引数: 引数はありません。

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3775.

public int GetRun()

結果: int.

結果: bridge.GetRun(bridge.Self).

呼び出し: bridge.GetRun.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

InjectionScript.Runtime.InjectionApiUO.GetZ

以下の式の値を返します。

引数: 引数はありません。

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3567.

public int GetZ()

結果: int.

結果: GetZ("self").

呼び出し: GetZ.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

InjectionScript.Runtime.InjectionApiUO.GetZ

以下の式の値を返します。

引数: id

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3569.

public int GetZ(int id)

結果: int.

結果: bridge.GetZ(id).

呼び出し: bridge.GetZ.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

InjectionScript.Runtime.InjectionApiUO.Grab

以下の式の値を返します。

引数: id

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:4370.

public int Grab(InjectionValue id)

結果: int.

結果: CompactGrab(new[] { id }).

呼び出し: CompactGrab.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

InjectionScript.Runtime.InjectionApiUO.Grab

以下の式の値を返します。

引数: amount, id, container

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:4374.

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

結果: int.

結果: CompactGrab(new[] { amount, id, container }).

呼び出し: CompactGrab.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

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

InjectionScript.Runtime.InjectionApiUO.GumpExists

以下の式の値を返します。

引数: firstId, secondId

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3229.

public int GumpExists(InjectionValue firstId, InjectionValue secondId)

結果: int.

結果: bridge.GumpExists(NumberConversions.ToInt(firstId), NumberConversions.ToInt(secondId)).

呼び出し: bridge.GumpExists, NumberConversions.ToInt.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

public int GumpExists(InjectionValue firstId, InjectionValue secondId)

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

InjectionScript.Runtime.InjectionApiUO.Inj2EUO

以下の条件を確認し、示された結果を返します。

引数: serialValue

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3369.

public string Inj2EUO(InjectionValue serialValue)

結果: string.

結果: "A"; result.ToString().

呼び出し: NumberConversions.ToInt, result.Insert, result.ToString.

条件: value == 0.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

public string Inj2EUO(InjectionValue serialValue)

        {

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

            if (value == 0)

                return "A";

            var result = new StringBuilder();

            while (value > 0)

            {

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

                value /= 26;

            }

            return result.ToString();

        }

InjectionScript.Runtime.InjectionApiUO.LastGump

以下の式の値を返します。

引数: identifier, key

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3232.

public InjectionValue LastGump(string identifier, int key)

結果: InjectionValue.

結果: ConvertGumpValue(identifier, bridge.GetGumpValue(-1, identifier, key)).

呼び出し: ConvertGumpValue, bridge.GetGumpValue.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

InjectionScript.Runtime.InjectionApiUO.MaxWeight

以下の式の値を返します。

引数: 引数はありません。

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3902.

public int MaxWeight()

結果: int.

結果: bridge.MaxWeight.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

public int MaxWeight() => bridge.MaxWeight;

InjectionScript.Runtime.InjectionApiUO.MoveToCanonical

以下の条件を確認し、示された結果を返します。

引数: x, y, z, accuracy, running, accuracyZ, optimized, stepCallback, timeoutMs, maxSteps, maxDistance, avoidMobiles, openDoorsOverride, stopOnStuck

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:2099.

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

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

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

結果: int.

結果: 0; 1.

呼び出し: PortablePathSearch.ValidPoint, bridge.IsOnline, Math.Max, Math.Min, bridge.GetX, bridge.GetY, bridge.GetZ, Math.Abs.

条件: !PortablePathSearch.ValidPoint(x, y, z); state.MoveExitOnDisconnect != 0 && bridge.IsOnline() == 0; state.MoveCheckStamina > 0 && bridge.Stamina < state.MoveCheckStamina; !PortablePathSearch.ValidPoint(currentX, currentY, currentZ).

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

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

完全なコードはソースファイルにあります。以下は正確な抜粋です。

InjectionScript.Runtime.InjectionApiUO.Picking

以下の式の値を返します。

引数: 引数はありません。

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3287.

public int Picking()

結果: int.

結果: bridge.Picking().

呼び出し: bridge.Picking.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

InjectionScript.Runtime.InjectionApiUO.Random

以下の条件を確認し、示された結果を返します。

引数: min, max

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5945.

public int Random(int min, int max)

結果: int.

結果: min; (int)(min + (long)random.Next((int)count)); (int)(min + (long)(sample % (ulong)count)).

呼び出し: random.Next, random.NextBytes, BitConverter.ToUInt32.

条件: min > max; min == max; count <= int.MaxValue.

内部実装のコードです。単独のスクリプトとして実行できません。

public int Random(int min, int max)

        {

            if (min > max)

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

            if (min == max) return min;

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

            lock (randomSync)

            {

                if (count <= int.MaxValue)

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



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

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

                const ulong domain = 1UL << 32;

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

                uint sample;

                do

                {

                    random.NextBytes(randomRangeBytes);

                    sample = BitConverter.ToUInt32(randomRangeBytes, 0);

                } while (sample >= limit);

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

            }

        }

InjectionScript.Runtime.InjectionApiUO.ResolveCompactMaxZ

コードに示す規則に従って引数を解析または解決します。

引数: value

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5099.

private int ResolveCompactMaxZ(InjectionValue value)

結果: int.

結果: parsed < 0 ? bridge.GetFindVertical() : Math.Max(0, parsed).

呼び出し: NumberConversions.ToInt, bridge.GetFindVertical, Math.Max.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

private int ResolveCompactMaxZ(InjectionValue value)

        {

            int parsed = NumberConversions.ToInt(value);

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

        }

InjectionScript.Runtime.InjectionApiUO.Say

示された呼び出しと状態更新を実行します。

引数: message

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5288.

public void Say(string message)

結果: void.

呼び出し: bridge.Say.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

InjectionScript.Runtime.InjectionApiUO.Snap

以下の式の値を返します。

引数: name, quality

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5922.

public int Snap(string name, int quality)

結果: int.

結果: bridge.Snap(name, Math.Max(1, Math.Min(100, quality)), true).

呼び出し: bridge.Snap, Math.Max, Math.Min.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

InjectionScript.Runtime.InjectionApiUO.Snap

以下の式の値を返します。

引数: name, quality, includeUi

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5923.

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

結果: int.

結果: bridge.Snap(name, Math.Max(1, Math.Min(100, quality)), includeUi).

呼び出し: bridge.Snap, Math.Max, Math.Min.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

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

InjectionScript.Runtime.InjectionApiUO.TryDeserializeRecordedLegacyAction

以下の条件を確認し、示された結果を返します。

引数: recording, name, arguments

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:2713.

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

結果: bool.

結果: false; !string.IsNullOrWhiteSpace(name).

呼び出し: Array.Empty<InjectionValue>, string.IsNullOrWhiteSpace, recording.Split, fields[0].Equals, DecodeRecordingText, Math.Max, TryDeserializeRecordedValue.

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

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

        {

            name = string.Empty;

            arguments = Array.Empty<InjectionValue>();

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



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

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

            try

            {

                name = DecodeRecordingText(fields[1]);

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

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

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

                arguments = values;

                return !string.IsNullOrWhiteSpace(name);

            }

            catch (FormatException)

            {

                name = string.Empty;

                arguments = Array.Empty<InjectionValue>();

                return false;

            }

        }

InjectionScript.Runtime.InjectionApiUO.UseFromGround

以下の式の値を返します。

引数: type

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:4081.

public int UseFromGround(InjectionValue type)

結果: int.

結果: UseFromGround(type, new InjectionValue(-1)).

呼び出し: UseFromGround.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

InjectionScript.Runtime.InjectionApiUO.WaitTargetObject

示された呼び出しと状態更新を実行します。

引数: id1, id2

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:4176.

public void WaitTargetObject(int id1, int id2)

結果: void.

呼び出し: bridge.WaitTargetObject, Timer.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

public void WaitTargetObject(int id1, int id2)

        {

            bridge.WaitTargetObject(id1, id2);

            ticksTarget = Timer();

        }

InjectionScript.Runtime.InjectionApiUO.WaitingForJournalText

示された呼び出しと状態更新を実行します。

引数: startTime, maxDelay, text, equals

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5419.

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

結果: void.

呼び出し: WaitingForJournalText.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

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

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

InjectionScript.Runtime.InjectionApiUO.Register [FindType]

呼び出し時には保存済みのハンドラー delegate を実行します。登録メソッドは API の構築時にこの delegate を作成します。

引数: 引数はありません。

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:404.

values

結果: values.

結果: CompactFindType(values[0], values[1], values[2], values[3], values[4], values[5]).

呼び出し: CompactFindType.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

values =>

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

InjectionScript.Runtime.InjectionApiUO.Register [Follow]

呼び出し時には保存済みのハンドラー delegate を実行します。登録メソッドは API の構築時にこの delegate を作成します。

引数: 引数はありません。

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:856.

values

結果: values.

呼び出し: follow.Follow, GetObject, NumberConversions.ToInt.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

values => new InjectionValue(bridge is IApiFollowBridge follow

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

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

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

InjectionScript.Runtime.InjectionApiUO.RegisterCharacterGetterAliases [GetFlying]

呼び出し時には保存済みのハンドラー delegate を実行します。登録メソッドは API の構築時にこの delegate を作成します。

引数: 引数はありません。

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1067.

serial

結果: serial.

結果: bridge.Flying(serial).

呼び出し: bridge.Flying.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

serial => bridge.Flying(serial)

InjectionScript.Runtime.InjectionApiUO.RegisterCharacterGetterAliases [GetMaxWeight]

呼び出し時には保存済みのハンドラー delegate を実行します。登録メソッドは API の構築時にこの delegate を作成します。

引数: 引数はありません。

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1034.

結果: bridge.MaxWeight.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

() => bridge.MaxWeight

InjectionScript.Runtime.InjectionApiUO.RegisterCharacterGetterAliases [GetStr]

呼び出し時には保存済みのハンドラー delegate を実行します。登録メソッドは API の構築時にこの delegate を作成します。

引数: 引数はありません。

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1030.

結果: bridge.Strength.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

() => bridge.Strength

InjectionScript.Runtime.InjectionApiUO.RegisterCharacterGetterAliases

以下の式の値を返します。

引数: 引数はありません。

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1007.

結果: getter(bridge.Self).

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

() => getter(bridge.Self)

InjectionScript.Runtime.InjectionApiUO.RegisterCharacterGetterAliases

以下の式の値を返します。

引数: 引数はありません。

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1007.

結果: getter(bridge.Self).

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

() => getter(bridge.Self)

InjectionScript.Runtime.InjectionApiUO.RegisterCharacterGetterAliases

以下の式の値を返します。

引数: 引数はありません。

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1007.

結果: getter(bridge.Self).

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

() => getter(bridge.Self)

InjectionScript.Runtime.NativeSubrutineMetadata.TryGet

以下の条件を確認し、示された結果を返します。

引数: name, argumentValues, subrutineDefinition

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/NativeSubrutineMetadata.cs:34.

public bool TryGet(string name, IEnumerable<InjectionValue> argumentValues, out NativeSubrutineDefinition subrutineDefinition)

結果: bool.

結果: false; true; subrutineDefinition != null.

呼び出し: byName.TryGetValue, argumentValues.ToArray, arities.TryGetValue, StringComparer.OrdinalIgnoreCase.Compare, candidate.GetSignature, wildcard.GetSignature.

条件: !byName.TryGetValue(name, out var arities); !arities.TryGetValue(arguments.Count, out var overloads); kind == InjectionValueKind.Any; kind == arguments[i].Kind.

内部実装のコードです。単独のスクリプトとして実行できません。

public bool TryGet(string name, IEnumerable<InjectionValue> argumentValues, out NativeSubrutineDefinition subrutineDefinition)
        {
            subrutineDefinition = null;
            // A script procedure is not a native. Avoid scanning the entire API
            // (over 1600 registrations) twice for every ordinary helper call.
            if (!byName.TryGetValue(name, out var arities)) return false;
            var arguments = argumentValues as IReadOnlyList<InjectionValue> ?? argumentValues.ToArray();
            if (!arities.TryGetValue(arguments.Count, out var overloads)) return false;
            NativeSubrutineDefinition allAny = null, wildcard = null;
            int bestWildcardCount = int.MaxValue;
            foreach (var candidate in overloads)
            {
                bool compatible = true, exact = true;
                int anyCount = 0;
                for (int i = 0; i < arguments.Count; i++)
                {
                    var kind = candidate.ParameterKinds[i];
                    if (kind == InjectionValueKind.Any) anyCount++;
                    if (kind == arguments[i].Kind) continue;
                    exact = false;
                    if (kind != InjectionValueKind.Any) { compatible = false; break; }
                }
                if (exact && compatible) { subrutineDefinition = candidate; return true; }
                if (!compatible) continue;
                if (anyCount == arguments.Count) { allAny = candidate; continue; }
                if (anyCount < bestWildcardCount || (anyCount == bestWildcardCount
                    && StringComparer.OrdinalIgnoreCase.Compare(candidate.GetSignature(), wildcard.GetSignature()) < 0))
                { wildcard = candidate; bestWildcardCount = anyCount; }
            }
            // Preserve existing dispatch precedence: exact, all-Any adapter,
            // then the most specific mixed signature with its stable tie-break.
            subrutineDefinition = allAny ?? wildcard;
            return subrutineDefinition != null;
        }

InjectionScript.Runtime.PortablePathSearch.Find

以下の条件を確認し、示された結果を返します。

引数: startX, startY, startZ, finishX, finishY, finishZ, accuracy, accuracyZ, maxSteps, diagonal, checkStep, checkCancellation, scheduleSlice

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/PortablePathSearch.cs:26.

`internal static (int X, int Y, int Z)[] Find(

        int startX, int startY, int startZ, int finishX, int finishY, int finishZ,

        int accuracy, int accuracyZ, int maxSteps, bool diagonal,

        Func<int, int, int, int, int, int?> checkStep, Action checkCancellation, Action<Action> scheduleSlice)`

結果: (int X, int Y, int Z)[].

結果: empty; result.

呼び出し: Array.Empty<(int, int, int)>, ValidPoint, Comparer<Node>.Create, Math.Min, Estimate, open.Add, checkCancellation, scheduleSlice.

条件: !ValidPoint(startX, startY, startZ) || !ValidPoint(finishX, finishY, finishZ); start.Estimate > limit.

呼び出し:

内部実装のコードです。単独のスクリプトとして実行できません。

internal static (int X, int Y, int Z)[] Find(
            int startX, int startY, int startZ, int finishX, int finishY, int finishZ,
            int accuracy, int accuracyZ, int maxSteps, bool diagonal,
            Func<int, int, int, int, int, int?> checkStep, Action checkCancellation, Action<Action> scheduleSlice)
        {
            var empty = Array.Empty<(int, int, int)>();
            if (!ValidPoint(startX, startY, startZ) || !ValidPoint(finishX, finishY, finishZ))
                return empty;

            int Estimate(int x, int y)
// …
                return diagonal ? Math.Max(dx, dy) : dx + dy;
// …
                if (order == 0) order = a.Estimate.CompareTo(b.Estimate);
                return order == 0 ? a.Order.CompareTo(b.Order) : order;
// …
            if (start.Estimate > limit) return empty;
// …
                    if (sliceNodes > 1 && Stopwatch.GetTimestamp() - sliceStarted >= Stopwatch.Frequency / 1000)
                        return;
// …
                    if (best[current.Point] != current) continue;
// …
                    if (current.Estimate == 0 && Math.Abs(finishZ - p.Z) <= accuracyZ)
// …
                        return;
// …
                    if (expanded++ >= ExpansionLimit) { completed = true; return; }
                    if (current.Steps >= limit) continue;
// …
                        if (x < 0 || x > ushort.MaxValue || y < 0 || y > ushort.MaxValue) continue;
// …
                        if (steps + estimate > limit) continue;
// …
                        if (!z.HasValue || !ValidPoint(x, y, z.Value)) continue;
// …
                        if (best.TryGetValue(key, out Node previous) && previous.Steps <= steps) continue;
// …
                        if (previous != null) open.Remove(previous);
// …
            return result;
// …

完全なコードはソースファイルにあります。以下は正確な抜粋です。

InjectionScript.Runtime.State.NamedTypes.TryGet

以下の式の値を返します。

引数: name, graphic

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/State/NamedTypes.cs:30.

public bool TryGet(string name, out int graphic)

結果: bool.

結果: values.TryGetValue((name ?? string.Empty).Trim(), out graphic).

呼び出し: values.TryGetValue, (name ?? string.Empty).Trim.

内部実装のコードです。単独のスクリプトとして実行できません。

public bool TryGet(string name, out int graphic)
        {
            lock (gate) return values.TryGetValue((name ?? string.Empty).Trim(), out graphic);
        }

InjectionScript.Runtime.State.RuntimeDictionary.Set

示された呼び出しと状態更新を実行します。

引数: name, value

ソース: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/State/RuntimeDictionary.cs:16.

public void Set(string name, T value)

結果: void.

呼び出し: items.ContainsKey, items.Add, .Invoke.

条件: !items.ContainsKey(name); notify.

内部実装のコードです。単独のスクリプトとして実行できません。

public void Set(string name, T value)

        {

            bool notify = true;



            lock (itemsLock)

            {

                if (!items.ContainsKey(name))

                {

                    items.Add(name, value);

                    notify = true;

                }

                else

                    items[name] = value;

            }



            if (notify)

                KeyAdded?.Invoke(name);

        }

Clone this wiki locally