Runtime Helpers 7 - LIHACHTETAN/ClassicUO-Bad-Newbie-CSharp-Scripts-IDE GitHub Wiki
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
Внутрішній код реалізації, не самостійний скрипт.
Гілка обробляє лише вказане ім’я команди.
Параметри: Немає параметрів.
Джерело: Project_Full/src/ClassicUO.CSharp/CSharpCallbacks.cs:412.
Результат: true.
Виклики:
-
ClassicUO.CSharp.CSharpCallbacks.IsRunning:IsRunning(runningName).
Внутрішній код реалізації, не самостійний скрипт.
case "FunRunning":
string runningName = Convert.ToString(arguments[0]) ?? "";
result = IsRunning(runningName) || events is ICSharpScriptHost runningHost && runningHost.IsCSharpScriptRunning(runningName) ? 1 : 0;
return true;Гілка обробляє лише вказане ім’я команди.
Параметри: Немає параметрів.
Джерело: Project_Full/src/ClassicUO.CSharp/CSharpCallbacks.cs:426.
when Length== 1: string routine = Convert.ToString(arguments[0]) ?? ""
Результат: when.
Виклики: Convert.ToString.
Виклики:
-
ClassicUO.CSharp.CSharpCallbacks.Exists:Exists(routine). -
ClassicUO.CSharp.CSharpCallbacks.Cancel:Cancel(routine).
Внутрішній код реалізації, не самостійний скрипт.
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;Виконує показані виклики та оновлення стану.
Параметри: object? value
Джерело: Project_Full/src/ClassicUO.CSharp/CSharpCallbacks.cs:335.
private static string HandlerName(object? value)
Результат: string.
Умови:
name.StartsWith("exec ", StringComparison.OrdinalIgnoreCase)name.StartsWith("_exec ", StringComparison.OrdinalIgnoreCase)
Виклики:
(Convert.ToString(value) ?? "").TrimConvert.ToStringname.StartsWithname[5..].Trimname[6..].Trim
Внутрішній код реалізації, не самостійний скрипт.
private static string HandlerName(object? value)
{
string name = (Convert.ToString(value) ?? "").Trim();
if (name.StartsWith("exec ", StringComparison.OrdinalIgnoreCase)) return name[5..].Trim();
if (name.StartsWith("_exec ", StringComparison.OrdinalIgnoreCase)) return name[6..].Trim();
return name;
}Виконує показані виклики та оновлення стану.
Параметри: int page, string text
Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:2001.
public void BookSetPageText(int page, string text)
Результат: void.
Умови:
book == null!book.YokoTrySetPageText(page, text)
Виклики:
InvokeGetOpenBookErrorbook.YokoTrySetPageText
Внутрішній код реалізації, не самостійний скрипт.
public void BookSetPageText(int page, string text) => Invoke(() =>
{
ISessionBook book = GetOpenBook();
if (book == null) { Error("UO.BookSetPageText: no open book."); return; }
if (!book.YokoTrySetPageText(page, text))
Error("UO.BookSetPageText: invalid page, read-only book, too many lines, or a line is too long.");
});Виконує показані виклики та оновлення стану.
Параметри: Немає параметрів.
Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:1581.
public void Bow()
Результат: void.
Виклики:
InvokeGameActions.EmoteAction
Внутрішній код реалізації, не самостійний скрипт.
public void Bow() => Invoke(() => GameActions.EmoteAction("bow"));Виконує показані виклики та оновлення стану.
Параметри: Немає параметрів.
Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:701.
public void CloseMenu()
Результат: void.
Виклики:
Invoke_world.ServerMenus.Snapshotmenu.CancelForYoko
Внутрішній код реалізації, не самостійний скрипт.
public void CloseMenu() => Invoke(() =>
{
foreach (SessionMenu menu in _world.ServerMenus.Snapshot())
menu.CancelForYoko();
});Виконує показані виклики та оновлення стану.
Параметри: Немає параметрів.
Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:168.
public int ColdResistance
Результат: int.
Виклики:
Invoke
Внутрішній код реалізації, не самостійний скрипт.
public int ColdResistance => Invoke(() => CurrentPlayer?.ColdResistance ?? 0);Виконує показані виклики та оновлення стану.
Параметри: string message
Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:3986.
public void Error(string message)
Результат: void.
Виклики:
ReportStatus
Внутрішній код реалізації, не самостійний скрипт.
public void Error(string message) => ReportStatus(message);Виконує показані виклики та оновлення стану.
Параметри: Немає параметрів.
Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:2482.
public int FindCount()
Результат: int.
Виклики:
—
Внутрішній код реалізації, не самостійний скрипт.
public int FindCount() => _findCount;Виконує показані виклики та оновлення стану.
Параметри: Немає параметрів.
Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:139.
public int FindItem
Результат: int.
Виклики:
—
Внутрішній код реалізації, не самостійний скрипт.
public int FindItem => _findItem;Виконує показані виклики та оновлення стану.
Параметри: int type, int notoriety
Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:2876.
public int FindNotoriety(int type, int notoriety)
Результат: int.
Умови:
-
`mobile.IsDestroyed || State.IgnoredSerials.Contains((int)mobile.Serial) || ignoredTypes.Matches(mobile.Graphic, mobile.Hue) || mobile == _world.Player
|| type >= 0 && type != 0xFFFF && mobile.Graphic != (ushort)type || notoriety >= 0 && (int)mobile.NotorietyFlag != notoriety || mobile.Distance > State.FindDistance || _world.Player != null && Math.Abs(mobile.Z - _world.Player.Z) > State.FindVertical`
Виклики:
InvokeResetFindResultsState.IgnoreTypeLists.FilterForState.IgnoredSerials.ContainsignoredTypes.MatchesMath.AbsRegisterFound
Внутрішній код реалізації, не самостійний скрипт.
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;
});
}Виконує показані виклики та оновлення стану.
Параметри: Немає параметрів.
Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:184.
public int GameServerPort
Результат: int.
Виклики:
—
Внутрішній код реалізації, не самостійний скрипт.
public int GameServerPort => Settings.GlobalSettings.Port;Виконує показані виклики та оновлення стану.
Параметри: int id
Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:234.
public int GetHP(int id)
Результат: int.
Виклики:
WithEntity
Внутрішній код реалізації, не самостійний скрипт.
public int GetHP(int id) => WithEntity(id, e => e.Hits);Виконує показані виклики та оновлення стану.
Параметри: int id
Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:627.
public int GetLocked(int id)
Результат: int.
Виклики:
Invoke_world.Get
Внутрішній код реалізації, не самостійний скрипт.
public int GetLocked(int id) => Invoke(() => (_world.Get(unchecked((uint)id)) as Mobile)?.IsParalyzed == true ? 1 : 0);Виконує показані виклики та оновлення стану.
Параметри: Немає параметрів.
Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:344.
public int GetPing()
Результат: int.
Виклики:
—
Внутрішній код реалізації, не самостійний скрипт.
public int GetPing() => NetClient.Socket.Statistics.ServerPing;Виконує показані виклики та оновлення стану.
Параметри: 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);
}Виконує показані виклики та оновлення стану.
Параметри: int tradeNumber
Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:267.
public string GetTradeOpponentName(int tradeNumber)
Результат: string.
Виклики:
InvokeFindNumberedTrade
Внутрішній код реалізації, не самостійний скрипт.
public string GetTradeOpponentName(int tradeNumber) => Invoke(() =>
{
ISessionTrade gump = FindNumberedTrade(tradeNumber);
return gump?.OpponentName ?? string.Empty;
});Виконує показані виклики та оновлення стану.
Параметри: string pattern, int startTime, int endTime, int limit
Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:2130.
public int InJournalBetweenTimes(string pattern, int startTime, int endTime, int limit)
Результат: int.
Виклики:
now.AddMillisecondsMath.MaxMath.MinFindJournal
Внутрішній код реалізації, не самостійний скрипт.
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);
}Виконує показані виклики та оновлення стану.
Параметри: string pattern, int startTime, int endTime, int limit
Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:2144.
public int InJournalSystemBetweenTimes(string pattern, int startTime, int endTime, int limit)
Результат: int.
Виклики:
now.AddMillisecondsMath.MaxMath.MinFindJournal
Внутрішній код реалізації, не самостійний скрипт.
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);
}Виконує показані виклики та оновлення стану.
Параметри: int x, int y
Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:676.
public int IsWaterTile(int x, int y)
Результат: int.
Виклики:
InvokeAnyTileAt
Внутрішній код реалізації, не самостійний скрипт.
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);Виконує показані виклики та оновлення стану.
Параметри: Немає параметрів.
Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:142.
public int LastCorpse
Результат: int.
Виклики:
Invoke_world.Items.Values.Where(i => i.IsCorpse && !i.IsDestroyed).OrderBy(i => i.Distance).FirstOrDefault_world.Items.Values.Where(i => i.IsCorpse && !i.IsDestroyed).OrderBy_world.Items.Values.Where
Внутрішній код реалізації, не самостійний скрипт.
public int LastCorpse => Invoke(() => (int)(_world.Items.Values.Where(i => i.IsCorpse && !i.IsDestroyed).OrderBy(i => i.Distance).FirstOrDefault()?.Serial ?? 0));Виконує показані виклики та оновлення стану.
Параметри: Немає параметрів.
Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:166.
public int MaxMana
Результат: int.
Виклики:
Invoke
Внутрішній код реалізації, не самостійний скрипт.
public int MaxMana => Invoke(() => CurrentPlayer?.ManaMax ?? 0);Виконує показані виклики та оновлення стану.
Параметри: int sourceContainerId, int type, int color, int targetContainerId, int x, int y, int z, int delayMs
Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:1455.
public int MoveItems(int sourceContainerId, int type, int color, int targetContainerId, int x, int y, int z, int delayMs)
Результат: int.
Виклики:
MoveContainerItems
Внутрішній код реалізації, не самостійний скрипт.
public int MoveItems(int sourceContainerId, int type, int color, int targetContainerId, int x, int y, int z, int delayMs)
=> MoveContainerItems(sourceContainerId, type, color, targetContainerId, x, y, z, delayMs).Sent > 0 ? 1 : 0;Виконує показані виклики та оновлення стану.
Параметри: Немає параметрів.
Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:174.
public int Race
Результат: int.
Виклики:
Invoke
Внутрішній код реалізації, не самостійний скрипт.
public int Race => Invoke(() => (int)(CurrentPlayer?.Race ?? 0));Виконує показані виклики та оновлення стану.
Параметри: int id
Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:3132.
public void SelectGump(int id)
Результат: void.
Умови:
_selectedServerGump == null && id >= 0 && id < gumps.Count_selectedServerGump == null
Виклики:
InvokeServerGumpsUnsafegumps.FirstOrDefaultError
Внутрішній код реалізації, не самостійний скрипт.
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");
}
});Виконує показані виклики та оновлення стану.
Параметри: int gumpIndex, int triggerId
Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:3000.
public int SendGumpSelect(int gumpIndex, int triggerId)
Результат: int.
Виклики:
InvokeServerGumpsUnsafe().ElementAtOrDefaultServerGumpsUnsafeSendGumpButtonUnsafe
Внутрішній код реалізації, не самостійний скрипт.
public int SendGumpSelect(int gumpIndex, int triggerId) => Invoke(() =>
{
Gump gump = ServerGumpsUnsafe().ElementAtOrDefault(gumpIndex);
return SendGumpButtonUnsafe(gump, triggerId, $"gump index {gumpIndex} was not found");
});Виконує показані виклики та оновлення стану.
Параметри: int type, int color, int quantity, int maxPrice, string name
Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:3905.
public void SetAutoBuyRule(int type, int color, int quantity, int maxPrice, string name)
Результат: void.
Виклики:
InvokeSetAutoShopRule
Внутрішній код реалізації, не самостійний скрипт.
public void SetAutoBuyRule(int type, int color, int quantity, int maxPrice, string name) =>
Invoke(() => SetAutoShopRule(ProfileManager.CurrentProfile?.BackNewbieAutoBuyRules, true, type, color, quantity, maxPrice, name));Виконує показані виклики та оновлення стану.
Параметри: int figureId, int kind, int coord, int x1, int y1, int x2, int y2, int brushColor, int brushStyle, int color, int worldNum, string text
Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:2551.
public int SetMapFigure(int figureId, int kind, int coord, int x1, int y1, int x2, int y2, int brushColor, int brushStyle, int color, int worldNum, string text)
Результат: int.
Виклики:
InvokeWorldMapGump.SetYokoMapFigure
Внутрішній код реалізації, не самостійний скрипт.
public int SetMapFigure(int figureId, int kind, int coord, int x1, int y1, int x2, int y2, int brushColor, int brushStyle, int color, int worldNum, string text)
=> Invoke(() => WorldMapGump.SetYokoMapFigure(figureId, kind, coord, x1, y1, x2, y2, brushColor, brushStyle, color, worldNum, text));Виконує показані виклики та оновлення стану.
Параметри: int enabled
Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:317.
public void SetPauseScriptOnDisconnectStatus(int enabled)
Результат: void.
Виклики:
—
Внутрішній код реалізації, не самостійний скрипт.
public void SetPauseScriptOnDisconnectStatus(int enabled) => _manager.PauseScriptsOnDisconnect = enabled != 0;Виконує показані виклики та оновлення стану.
Параметри: string pattern
Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:4073.
private static string[] SplitPatterns(string pattern)
Результат: string[].
Виклики:
(pattern ?? string.Empty).Split
Внутрішній код реалізації, не самостійний скрипт.
private static string[] SplitPatterns(string pattern) => (pattern ?? string.Empty).Split('|', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries);Виконує показані виклики та оновлення стану.
Параметри: int type, int x, int y, int z
Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:855.
public void TargetToTile(int type, int x, int y, int z)
Результат: void.
Умови:
_world.TargetManager.IsServerTarget
Виклики:
Invoke_world.TargetManager.Target
Внутрішній код реалізації, не самостійний скрипт.
public void TargetToTile(int type, int x, int y, int z) => Invoke(() =>
{
if (_world.TargetManager.IsServerTarget)
_world.TargetManager.Target((ushort)type, (ushort)x, (ushort)y, (short)z);
});Виконує показані виклики та оновлення стану.
Параметри: string text
Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:1979.
public void TextPrint(string text)
Результат: void.
Умови:
_textWindow.Count >= MaxTextWindowLines
Виклики:
_textWindow.RemoveRange_textWindow.AddInvokeYokoTextWindowGump.ShowReportStatus
Внутрішній код реалізації, не самостійний скрипт.
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");
});
}Виконує показані виклики та оновлення стану.
Параметри: int timeoutMs, out int pingMs
Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:348.
private bool TryProbeServerPing(int timeoutMs, out int pingMs)
Результат: bool.
Умови:
!_world.InGame || !NetClient.Socket.IsConnectedrequest.Token < 0NetClient.Socket.Statistics.GetPingEchoGeneration((byte)request.Token) != request.Generationtimeout == 0
Виклики:
Math.MaxInvokeNetClient.Socket.Statistics.SendPingProbeNetClient.Socket.Statistics.GetPingEchoGenerationWaitMath.Min
Внутрішній код реалізації, не самостійний скрипт.
private bool TryProbeServerPing(int timeoutMs, out int pingMs)
{
int timeout = Math.Max(0, timeoutMs);
(int Token, int Generation) request = Invoke(() =>
{
if (!_world.InGame || !NetClient.Socket.IsConnected)
return (-1, -1);
return NetClient.Socket.Statistics.SendPingProbe();
});
if (request.Token < 0)
{
pingMs = -1;
return false;
}
long deadline = Environment.TickCount64 + timeout;
do
{
if (NetClient.Socket.Statistics.GetPingEchoGeneration((byte)request.Token) != request.Generation)
{
pingMs = NetClient.Socket.Statistics.ServerPing;
return pingMs >= 0;
}
if (timeout == 0)
break;
long remaining = deadline - Environment.TickCount64;
if (remaining <= 0)
break;
Wait((int)Math.Min(10, remaining));
}
while (true);
pingMs = -1;
return false;
}Виконує показані виклики та оновлення стану.
Параметри: Немає параметрів.
Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:1305.
public void UnsetReceivingContainer()
Результат: void.
Виклики:
—
Внутрішній код реалізації, не самостійний скрипт.
public void UnsetReceivingContainer() => State.ReceivingContainer = 0;Виконує показані виклики та оновлення стану.
Параметри: int id
Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:778.
public void UseObject(int id)
Результат: void.
Виклики:
InvokeGameActions.DoubleClick
Внутрішній код реалізації, не самостійний скрипт.
public void UseObject(int id) => Invoke(() => GameActions.DoubleClick(_world, (uint)id));Виконує показані виклики та оновлення стану.
Параметри: string name, bool oneShot = false
Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/LastCharacterManager.cs:107.
public static void OverrideLastCharacter(string name, bool oneShot = false)
Результат: void.
Виклики:
string.IsNullOrEmpty
Внутрішній код реалізації, не самостійний скрипт.
public static void OverrideLastCharacter(string name, bool oneShot = false)
{
LastCharacterNameOverride = name ?? string.Empty;
LastCharacterNameOverrideOneShot = oneShot && !string.IsNullOrEmpty(LastCharacterNameOverride);
}Виконує показані виклики та оновлення стану.
Параметри: uint? serial = null
Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/UIManager.cs:277.
public static T GetGump<T>(uint? serial = null)
Результат: T.
Умови:
serial.HasValue!c.IsDisposed && c.LocalSerial == serial.Value && c is T t!c.IsDisposed && c is T t
Виклики:
—
Внутрішній код реалізації, не самостійний скрипт.
public static T GetGump<T>(uint? serial = null) where T : Control
{
if (serial.HasValue)
{
for (LinkedListNode<Gump> last = Gumps.Last; last != null; last = last.Previous)
{
Control c = last.Value;
if (!c.IsDisposed && c.LocalSerial == serial.Value && c is T t)
{
return t;
}
}
}
else
{
for (LinkedListNode<Gump> first = Gumps.First; first != null; first = first.Next)
{
Control c = first.Value;
if (!c.IsDisposed && c is T t)
{
return t;
}
}
}
return null;
}Виконує показані виклики та оновлення стану.
Параметри: string scriptKey, string text
Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/YokoInjectionManager.cs:679.
internal void AppendIdeOutput(string scriptKey, string text)
Результат: void.
Виклики:
_ideToolBuffers.AppendOutput
Внутрішній код реалізації, не самостійний скрипт.
internal void AppendIdeOutput(string scriptKey, string text) =>
_ideToolBuffers.AppendOutput(scriptKey, text);Виконує показані виклики та оновлення стану.
Параметри: Немає параметрів.
Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/YokoInjectionManager.cs:3347.
internal int[] GetPendingTargetSerials()
Результат: int[].
Виклики:
_pendingTargets.ToArray().Where(t => !t.Owner.IsCancellationRequested).Select(t => (int)t.Serial).ToArray_pendingTargets.ToArray().Where(t => !t.Owner.IsCancellationRequested).Select_pendingTargets.ToArray().Where_pendingTargets.ToArray
Внутрішній код реалізації, не самостійний скрипт.
internal int[] GetPendingTargetSerials() =>
// Zero denotes a queued tile/cancellation. Waiting() and timed casts
// need to count these entries as well as object serials.
_pendingTargets.ToArray().Where(t => !t.Owner.IsCancellationRequested).Select(t => (int)t.Serial).ToArray();Виконує показані виклики та оновлення стану.
Параметри: Func<T> callback, CancellationToken cancellationToken
Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/YokoInjectionManager.cs:3459.
internal T InvokeOnGameThread<T>(Func<T> callback, CancellationToken cancellationToken)
Результат: T.
Умови:
callback == nullVolatile.Read(ref _gameThreadId) == Environment.CurrentManagedThreadIdcancellationToken.IsCancellationRequested
Виклики:
nameofcancellationToken.ThrowIfCancellationRequestedVolatile.ReadcallbackEnqueueMainThreadActionresult.TrySetCanceledresult.TrySetResultresult.TrySetExceptionresult.Task.Waitresult.Task.GetAwaiter().GetResultresult.Task.GetAwaiter
Внутрішній код реалізації, не самостійний скрипт.
internal T InvokeOnGameThread<T>(Func<T> callback, CancellationToken cancellationToken)
{
if (callback == null)
throw new ArgumentNullException(nameof(callback));
cancellationToken.ThrowIfCancellationRequested();
if (Volatile.Read(ref _gameThreadId) == Environment.CurrentManagedThreadId)
return callback();
var result = new TaskCompletionSource<T>(TaskCreationOptions.RunContinuationsAsynchronously);
EnqueueMainThreadAction(() =>
{
if (cancellationToken.IsCancellationRequested)
{
result.TrySetCanceled(cancellationToken);
return;
}
try
{
result.TrySetResult(callback());
}
catch (Exception ex)
{
result.TrySetException(ex);
}
}, () => result.TrySetCanceled());
result.Task.Wait(cancellationToken);
return result.Task.GetAwaiter().GetResult();
}Виконує показані виклики та оновлення стану.
Параметри: Немає параметрів.
Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/YokoInjectionManager.cs:3806.
private void MarkRuntimeStateChanged()
Результат: void.
Виклики:
Interlocked.Increment
Внутрішній код реалізації, не самостійний скрипт.
private void MarkRuntimeStateChanged() =>
Interlocked.Increment(ref _runtimeStateRevision);Виконує показані виклики та оновлення стану.
Параметри: uint serial, CancellationToken owner = default
Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/YokoInjectionManager.cs:3287.
internal void QueueTarget(uint serial, CancellationToken owner = default)
Результат: void.
Виклики:
owner.ThrowIfCancellationRequested_pendingTargets.Enqueue
Внутрішній код реалізації, не самостійний скрипт.
internal void QueueTarget(uint serial, CancellationToken owner = default)
{
lock (_pendingTargetLock)
{
owner.ThrowIfCancellationRequested();
_pendingTargets.Enqueue(new PendingTarget(serial, owner));
}
}Виконує показані виклики та оновлення стану.
Параметри: int buttonID
Джерело: Project_Full/src/ClassicUO.Client/Game/UI/Gumps/Gump.cs:142.
public override void OnButtonClick(int buttonID)
Результат: void.
Умови:
SessionState is { } state!IsDisposed && (LocalSerial != 0 || ServerSerial != 0)CanMove
Виклики:
state.OnButtonClickswitches.Addentries.AddGameActions.ReplyGumpswitches.ToArrayentries.ToArrayUIManager.SavePositionUIManager.RemovePositionDispose
Повний код зберігається у файлі джерела; нижче наведено точні фрагменти.
Внутрішній код реалізації, не самостійний скрипт.
public override void OnButtonClick(int buttonID)
{
if (SessionState is { } state)
{
state.OnButtonClick(buttonID);
return;
}
if (!IsDisposed && (LocalSerial != 0 || ServerSerial != 0))
// …
if (CanMove)
// …
else
{
UIManager.RemovePosition(ServerSerial);
}
Dispose();
}
}Виконує показані виклики та оновлення стану.
Параметри: Немає параметрів.
Джерело: Project_Full/src/ClassicUO.Client/Game/World.cs:258.
internal string ResolveProfileServerName()
Результат: string.
Умови:
string.IsNullOrWhiteSpace(_profileServerIdentity)
Виклики:
string.IsNullOrWhiteSpacePath.CombineProfileShardIdentity.Resolve
Внутрішній код реалізації, не самостійний скрипт.
internal string ResolveProfileServerName()
{
if (string.IsNullOrWhiteSpace(_profileServerIdentity))
{
string runtimeName = string.IsNullOrWhiteSpace(ServerName) || ServerName == "_"
? Settings.GlobalSettings.LastServerName
: ServerName;
string defaultSettingsPath = Path.Combine(
CUOEnviroment.ExecutablePath,
Settings.SETTINGS_FILENAME
);
_profileServerIdentity = ProfileShardIdentity.Resolve(
runtimeName,
Settings.GlobalSettings.IP,
Settings.GlobalSettings.Port,
_selectedProfileShardHost,
defaultSettingsPath,
authoritativeEndpoint: _sessionAccount != null
);
}
return _profileServerIdentity;
}Виконує показані виклики та оновлення стану.
Параметри: InjectionValue timeout, InjectionValue retries
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3865.
public int CheckLag(InjectionValue timeout, InjectionValue retries)
Результат: int.
Умови:
bridge.CheckLag(timeoutMs) != 0
Виклики:
Math.MaxNumberConversions.ToIntbridge.CheckLag
Внутрішній код реалізації, не самостійний скрипт.
public int CheckLag(InjectionValue timeout, InjectionValue retries)
{
int timeoutMs = Math.Max(0, NumberConversions.ToInt(timeout));
int attempts = Math.Max(1, NumberConversions.ToInt(retries));
for (int attempt = 0; attempt < attempts; attempt++)
{
if (bridge.CheckLag(timeoutMs) != 0)
return 1;
}
return 0;
}Виконує показані виклики та оновлення стану.
Параметри: InjectionValue[] values
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:4969.
private InjectionValue CompactGetWorldItems(InjectionValue[] values)
Результат: InjectionValue.
Умови:
values.Length > 3 && !TryResolveWorldItemQueryContainer(values[3], out container)nearest
Виклики:
-
ResolveType -
NumberConversions.ToInt -
ResolveCompactDistance -
bridge.GetFindDistance -
TryResolveWorldItemQueryContainer -
Array.Empty<InjectionValue> -
ToBoolean -
ResolveCompactMaxZ -
bridge.GetFindVertical -
bridge.GetContent -
bridge.GetWorldItems -
bridge.GetIgnoreList -
state.IgnoreTypeLists.FilterFor -
bridge.GetZ -
`source
.Where(id => (!ignored.Contains(id) && !MatchesIgnoredType(id, ignoredTypes))) .Where(id => type < 0 || type == 0xFFFF || bridge.GetGraphics(id) == type) .Where(id => color < 0 || color == 0xFFFF || bridge.GetColor(id) == color) .Where(id => { int distanceObject = container > 0 ? container : id; return distance < 0 || bridge.GetDistance(distanceObject) <= distance; }) .Where` -
`source
.Where(id => (!ignored.Contains(id) && !MatchesIgnoredType(id, ignoredTypes))) .Where(id => type < 0 || type == 0xFFFF || bridge.GetGraphics(id) == type) .Where(id => color < 0 || color == 0xFFFF || bridge.GetColor(id) == color) .Where` -
`source
.Where(id => (!ignored.Contains(id) && !MatchesIgnoredType(id, ignoredTypes))) .Where(id => type < 0 || type == 0xFFFF || bridge.GetGraphics(id) == type) .Where` -
`source
.Where(id => (!ignored.Contains(id) && !MatchesIgnoredType(id, ignoredTypes))) .Where` -
`source
.Where` -
ignored.Contains -
MatchesIgnoredType -
bridge.GetGraphics -
bridge.GetColor -
bridge.GetDistance -
Math.Abs -
filtered.OrderBy(id => bridge.GetDistance(container > 0 ? container : id)).ThenBy -
filtered.OrderBy -
filtered.Select(id => new InjectionValue(id)).ToArray -
filtered.Select
Внутрішній код реалізації, не самостійний скрипт.
private InjectionValue CompactGetWorldItems(InjectionValue[] values)
{
int type = values.Length > 0 ? ResolveType(values[0]) : -1;
int color = values.Length > 1 ? NumberConversions.ToInt(values[1]) : -1;
int distance = values.Length > 2 ? ResolveCompactDistance(values[2]) : bridge.GetFindDistance();
int container = 0;
if (values.Length > 3 && !TryResolveWorldItemQueryContainer(values[3], out container))
return new InjectionValue(Array.Empty<InjectionValue>());
bool nearest = values.Length > 4 && ToBoolean(values[4]);
int maxZ = values.Length > 5 ? ResolveCompactMaxZ(values[5]) : bridge.GetFindVertical();
IEnumerable<int> source = container > 0 ? bridge.GetContent(container) : bridge.GetWorldItems();
HashSet<int> ignored = new HashSet<int>(bridge.GetIgnoreList());
IgnoreTypeFilter ignoredTypes = state.IgnoreTypeLists.FilterFor(state.SelectedIgnoreList);
int selfZ = bridge.GetZ(bridge.Self);
IEnumerable<int> filtered = source
.Where(id => (!ignored.Contains(id) && !MatchesIgnoredType(id, ignoredTypes)))
.Where(id => type < 0 || type == 0xFFFF || bridge.GetGraphics(id) == type)
.Where(id => color < 0 || color == 0xFFFF || bridge.GetColor(id) == color)
.Where(id =>
{
int distanceObject = container > 0 ? container : id;
return distance < 0 || bridge.GetDistance(distanceObject) <= distance;
})
.Where(id =>
{
int zObject = container > 0 ? container : id;
return maxZ < 0 || Math.Abs(bridge.GetZ(zObject) - selfZ) <= maxZ;
});
if (nearest)
filtered = filtered.OrderBy(id => bridge.GetDistance(container > 0 ? container : id)).ThenBy(id => id);
return new InjectionValue(filtered.Select(id => new InjectionValue(id)).ToArray());
}Виконує показані виклики та оновлення стану.
Параметри: string spellName
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:6632.
private int? ConvertSpellName(string spellName)
Результат: int?.
Умови:
classicUoSpellId > 0spellNameToSpellId.TryGetValue(requested, out var spellId)NumberConversions.TryStr2Int(requested, out spellId) && spellId > 0
Виклики:
(spellName ?? string.Empty).Trim().Replace(spellName ?? string.Empty).Trimbridge.ResolveSpellspellNameToSpellId.TryGetValueNumberConversions.TryStr2Int
Внутрішній код реалізації, не самостійний скрипт.
private int? ConvertSpellName(string spellName)
{
string requested = (spellName ?? string.Empty).Trim().Replace('_', ' ');
int classicUoSpellId = bridge.ResolveSpell(requested);
if (classicUoSpellId > 0)
return classicUoSpellId;
if (spellNameToSpellId.TryGetValue(requested, out var spellId))
return spellId;
if (NumberConversions.TryStr2Int(requested, out spellId) && spellId > 0)
return spellId;
return null;
}Виконує показані виклики та оновлення стану.
Параметри: int type, int color, int container
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5332.
public int Count(int type, int color, int container)
Результат: int.
Виклики:
bridge.Count
Внутрішній код реалізації, не самостійний скрипт.
public int Count(int type, int color, int container)
=> bridge.Count(type, color, container);Виконує показані виклики та оновлення стану.
Параметри: Немає параметрів.
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:6045.
public int Date()
Результат: int.
Виклики:
—
Внутрішній код реалізації, не самостійний скрипт.
public int Date()
{
var now = timeSource.Now;
return (now.Year % 100) * 10000 + now.Month * 100 + now.Day;
}Виконує показані виклики та оновлення стану.
Параметри: string easyValue
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:2526.
private static int DecodeEasyUoId(string easyValue)
Результат: int.
Умови:
character < 'A' || character > 'Z'
Виклики:
(easyValue ?? string.Empty).ToUpperInvariant
Внутрішній код реалізації, не самостійний скрипт.
private static int DecodeEasyUoId(string easyValue)
{
uint value = 0;
foreach (char character in (easyValue ?? string.Empty).ToUpperInvariant())
{
if (character < 'A' || character > 'Z')
continue;
value = unchecked(value * 26 + (uint)(character - 'A'));
}
return unchecked((int)value);
}Виконує показані виклики та оновлення стану.
Параметри: InjectionValue text
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5518.
public void DeleteJournal(InjectionValue text)
Результат: void.
Виклики:
DeleteJournal
Внутрішній код реалізації, не самостійний скрипт.
public void DeleteJournal(InjectionValue text) => DeleteJournal((string)text);Виконує показані виклики та оновлення стану.
Параметри: InjectionValue easyValue
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3513.
public string EUO2Inj(InjectionValue easyValue)
Результат: string.
Умови:
c < 'A' || c > 'Z'
Виклики:
easyValue.ToString().ToUpperInvarianteasyValue.ToStringNumberConversions.ToHex
Внутрішній код реалізації, не самостійний скрипт.
public string EUO2Inj(InjectionValue easyValue)
{
uint value = 0;
foreach (char c in easyValue.ToString().ToUpperInvariant())
{
if (c < 'A' || c > 'Z')
continue;
value = unchecked(value * 26 + (uint)(c - 'A'));
}
return NumberConversions.ToHex(unchecked((int)value));
}Гілка обробляє лише вказане ім’я команди.
Параметри: Немає параметрів.
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1777.
Результат: InjectionValue.Unit.
Виклики:
Внутрішній код реалізації, не самостійний скрипт.
case "addgumpignorebyserial": state.IgnoredGumpSerials.Add(Arg(0)); return InjectionValue.Unit;Гілка обробляє лише вказане ім’я команди.
Параметри: Немає параметрів.
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1814.
Результат: InjectionValue.Unit.
Виклики:
-
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.TextClear:bridge.TextClear().
Внутрішній код реалізації, не самостійний скрипт.
case "clearinfowindow": bridge.TextClear(); return InjectionValue.Unit;Гілка обробляє лише вказане ім’я команди.
Параметри: Немає параметрів.
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1816.
Результат: InjectionValue.True.
Виклики:
-
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.ClientHide:bridge.ClientHide(Arg(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0).
Внутрішній код реалізації, не самостійний скрипт.
case "clienthide": bridge.ClientHide(Arg(0)); return InjectionValue.True;Гілка обробляє лише вказане ім’я команди.
Параметри: Немає параметрів.
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1241.
Результат: InjectionValue.Unit.
Виклики:
-
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.CharPrintEx:bridge.CharPrintEx(Arg(0), Arg(1), Arg(2), Text(3)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(1). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(2). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Text:Text(3).
Внутрішній код реалізації, не самостійний скрипт.
case "clientprintex":
bridge.CharPrintEx(Arg(0), Arg(1), Arg(2), Text(3)); return InjectionValue.Unit;Гілка обробляє лише вказане ім’я команди.
Параметри: Немає параметрів.
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1315.
Результат: new InjectionValue(bridge.GetAutoReconnect()).
Виклики:
-
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetAutoReconnect:bridge.GetAutoReconnect().
Внутрішній код реалізації, не самостійний скрипт.
case "getarstatus": return new InjectionValue(bridge.GetAutoReconnect());Гілка обробляє лише вказане ім’я команди.
Параметри: Немає параметрів.
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1370.
Результат: new InjectionValue(arguments.Length > 0 ? bridge.GetIntelligence(Arg(0)) : bridge.Intelligence).
Виклики:
-
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetIntelligence:bridge.GetIntelligence(Arg(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Intelligence:bridge.Intelligence.
Внутрішній код реалізації, не самостійний скрипт.
case "getint": return new InjectionValue(arguments.Length > 0 ? bridge.GetIntelligence(Arg(0)) : bridge.Intelligence);Гілка обробляє лише вказане ім’я команди.
Параметри: Немає параметрів.
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1564.
Результат: new InjectionValue(bridge.GetZ(Arg(0, bridge.Self))).
Виклики:
-
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetZ:bridge.GetZ(Arg(0, bridge.Self)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0, bridge.Self). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Self:bridge.Self.
Внутрішній код реалізації, не самостійний скрипт.
case "getz": return new InjectionValue(bridge.GetZ(Arg(0, bridge.Self)));Гілка обробляє лише вказане ім’я команди.
Параметри: Немає параметрів.
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1539.
Результат: InjectionValue.Unit.
Виклики:
-
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Unignore:bridge.Unignore(Arg(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0).
Внутрішній код реалізації, не самостійний скрипт.
case "ignoreoff": bridge.Unignore(Arg(0)); return InjectionValue.Unit;Гілка обробляє лише вказане ім’я команди.
Параметри: Немає параметрів.
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1248.
Результат: InjectionValue.Unit.
Виклики:
-
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Ignore:bridge.Ignore(Arg(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0).
Внутрішній код реалізації, не самостійний скрипт.
case "ignore": bridge.Ignore(Arg(0)); return InjectionValue.Unit;Гілка обробляє лише вказане ім’я команди.
Параметри: Немає параметрів.
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1367.
Результат: new InjectionValue(bridge.Exists(Arg(0))).
Виклики:
-
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Exists:bridge.Exists(Arg(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0).
Внутрішній код реалізації, не самостійний скрипт.
case "isobjectexists": return new InjectionValue(bridge.Exists(Arg(0)));Гілка обробляє лише вказане ім’я команди.
Параметри: Немає параметрів.
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1640.
Результат: new InjectionValue(Waiting()).
Виклики:
-
InjectionScript.Runtime.InjectionApiUO.Waiting:Waiting().
Внутрішній код реалізації, не самостійний скрипт.
case "iswaittargetactive": return new InjectionValue(Waiting());Гілка обробляє лише вказане ім’я команди.
Параметри: Немає параметрів.
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:2035.
Результат: new InjectionValue(bridge.JournalMatchCount()).
Виклики:
-
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.JournalMatchCount:bridge.JournalMatchCount().
Внутрішній код реалізації, не самостійний скрипт.
case "linecount": return new InjectionValue(bridge.JournalMatchCount());Гілка обробляє лише вказане ім’я команди.
Параметри: Немає параметрів.
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1957.
Результат: InjectionValue.Unit.
Виклики:
-
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.MoveBoat:bridge.MoveBoat(Arg(0), Arg(1)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(1).
Внутрішній код реалізації, не самостійний скрипт.
case "moveboat": bridge.MoveBoat(Arg(0), Arg(1)); return InjectionValue.Unit;Гілка обробляє лише вказане ім’я команди.
Параметри: Немає параметрів.
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1906.
Результат: SetIndexedGumpValue(Arg(0), "checkbox", Arg(1), Text(2)).
Виклики:
-
InjectionScript.Runtime.InjectionApiUO.SetIndexedGumpValue:SetIndexedGumpValue(Arg(0), "checkbox", Arg(1), Text(2)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(1). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Text:Text(2).
Внутрішній код реалізації, не самостійний скрипт.
case "numgumpcheckbox": return SetIndexedGumpValue(Arg(0), "checkbox", Arg(1), Text(2));Гілка обробляє лише вказане ім’я команди.
Параметри: Немає параметрів.
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1537.
Результат: new InjectionValue(bridge.ObjAtLayerEx(Arg(0), Arg(1))).
Виклики:
-
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.ObjAtLayerEx:bridge.ObjAtLayerEx(Arg(0), Arg(1)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(1).
Внутрішній код реалізації, не самостійний скрипт.
case "objatlayerex": return new InjectionValue(bridge.ObjAtLayerEx(Arg(0), Arg(1)));Гілка обробляє лише вказане ім’я команди.
Параметри: Немає параметрів.
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1708.
Результат: InjectionValue.Unit.
Виклики:
-
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.PartyAcceptInvite:bridge.PartyAcceptInvite().
Внутрішній код реалізації, не самостійний скрипт.
case "partyacceptinvite": bridge.PartyAcceptInvite(); return InjectionValue.Unit;Гілка обробляє лише вказане ім’я команди.
Параметри: Немає параметрів.
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1709.
Результат: InjectionValue.Unit.
Виклики:
-
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.PartyDeclineInvite:bridge.PartyDeclineInvite().
Внутрішній код реалізації, не самостійний скрипт.
case "partydeclineinvite": bridge.PartyDeclineInvite(); return InjectionValue.Unit;Гілка обробляє лише вказане ім’я команди.
Параметри: Немає параметрів.
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1707.
Результат: InjectionValue.Unit.
Виклики:
-
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.PartyLeave:bridge.PartyLeave().
Внутрішній код реалізації, не самостійний скрипт.
case "partyleave": bridge.PartyLeave(); return InjectionValue.Unit;Гілка обробляє лише вказане ім’я команди.
Параметри: Немає параметрів.
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1536.
Результат: new InjectionValue(ReadPredictedCoordinate(3)).
Виклики:
-
InjectionScript.Runtime.InjectionApiUO.ReadPredictedCoordinate:ReadPredictedCoordinate(3).
Внутрішній код реалізації, не самостійний скрипт.
case "predicteddirection": return new InjectionValue(ReadPredictedCoordinate(3));Гілка обробляє лише вказане ім’я команди.
Параметри: Немає параметрів.
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1597.
Результат: InjectionValue.Unit.
Виклики:
-
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SetContextMenuHook:bridge.SetContextMenuHook(Arg(0), Arg(1)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(1).
Внутрішній код реалізації, не самостійний скрипт.
case "setcontextmenuhook": bridge.SetContextMenuHook(Arg(0), Arg(1)); return InjectionValue.Unit;Гілка обробляє лише вказане ім’я команди.
Параметри: Немає параметрів.
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:2863.
Виклики:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::LegacyList:LegacyList("AddFindList"). -
InjectionScript.Runtime.InjectionApiUO.LegacyListEntryMatches:LegacyListEntryMatches(value, arguments).
Внутрішній код реалізації, не самостійний скрипт.
case "deletefindlist":
LegacyList("AddFindList").RemoveAll(value => LegacyListEntryMatches(value,
arguments));
break;Гілка обробляє лише вказане ім’я команди.
Параметри: Немає параметрів.
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:2962.
Виклики:
-
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SelectGump:bridge.SelectGump(Arg(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Arg:Arg(0).
Внутрішній код реалізації, не самостійний скрипт.
case "gumpobject": bridge.SelectGump(Arg(0)); break;Гілка обробляє лише вказане ім’я команди.
Параметри: Немає параметрів.
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3025.
Виклики:
-
InjectionScript.Runtime.InjectionApiUO.Unequip:Unequip("Ring").
Внутрішній код реалізації, не самостійний скрипт.
case "removering": Unequip("Ring"); break;Гілка обробляє лише вказане ім’я команди.
Параметри: Немає параметрів.
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:2871.
Виклики:
Внутрішній код реалізації, не самостійний скрипт.
case "selectignorelist": state.SelectedIgnoreList = Text(0).Trim(); break;Виконує показані виклики та оновлення стану.
Параметри: InjectionValue type, InjectionValue color
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:4706.
public string FindType(InjectionValue type, InjectionValue color)
Результат: string.
Умови:
-
`color.Kind == InjectionValueKind.String
&& (color.String.Equals("ground", StringComparison.OrdinalIgnoreCase) || color.String.Equals("backpack", StringComparison.OrdinalIgnoreCase) || color.String.Equals("my", StringComparison.OrdinalIgnoreCase))`
Виклики:
color.String.EqualsFindTypeResolveTypeConvertContainerNumberConversions.ToInt
Внутрішній код реалізації, не самостійний скрипт.
public string FindType(InjectionValue type, InjectionValue color)
{
if (color.Kind == InjectionValueKind.String
&& (color.String.Equals("ground", StringComparison.OrdinalIgnoreCase)
|| color.String.Equals("backpack", StringComparison.OrdinalIgnoreCase)
|| color.String.Equals("my", StringComparison.OrdinalIgnoreCase)))
{
return FindType(ResolveType(type), -1, ConvertContainer(color), -1, color.String.Equals("my", StringComparison.OrdinalIgnoreCase));
}
return FindType(ResolveType(type), NumberConversions.ToInt(color), -1, -1, false);
}Виконує показані виклики та оновлення стану.
Параметри: Немає параметрів.
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5605.
public int GetFoundedTextID()
Результат: int.
Виклики:
—
Внутрішній код реалізації, не самостійний скрипт.
public int GetFoundedTextID() => foundedTextId >= 0 ? foundedTextId : 0;Виконує показані виклики та оновлення стану.
Параметри: Немає параметрів.
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5606.
public int GetFoundedTextIndex()
Результат: int.
Виклики:
reader.FindJournalEntryIndex
Внутрішній код реалізації, не самостійний скрипт.
public int GetFoundedTextIndex() => selectedJournalEntry != null && bridge is IApiJournalReader reader
? reader.FindJournalEntryIndex(selectedJournalEntry.Identity) : foundedTextIndex;Виконує показані виклики та оновлення стану.
Параметри: Немає параметрів.
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5608.
public string GetFoundedTextSerial()
Результат: string.
Виклики:
—
Внутрішній код реалізації, не самостійний скрипт.
public string GetFoundedTextSerial() => selectedJournalEntry != null
? $"0x{unchecked((uint)selectedJournalEntry.Serial):X8}" : "0x00000000";Виконує показані виклики та оновлення стану.
Параметри: string id
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3733.
public string GetGraphics(string id)
Результат: string.
Виклики:
GetGraphicsGetObject
Внутрішній код реалізації, не самостійний скрипт.
public string GetGraphics(string id) => GetGraphics(GetObject(id));Виконує показані виклики та оновлення стану.
Параметри: string identifier, int key
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3364.
public InjectionValue GetGump(string identifier, int key)
Результат: InjectionValue.
Виклики:
LastGump
Внутрішній код реалізації, не самостійний скрипт.
public InjectionValue GetGump(string identifier, int key) => LastGump(identifier, key);Виконує показані виклики та оновлення стану.
Параметри: InjectionValue id
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3739.
public string GetLayer(InjectionValue id)
Результат: string.
Виклики:
ConvertLayerbridge.GetLayerGetObject
Внутрішній код реалізації, не самостійний скрипт.
public string GetLayer(InjectionValue id) => ConvertLayer(bridge.GetLayer(GetObject(id)));Виконує показані виклики та оновлення стану.
Параметри: Немає параметрів.
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3893.
public int GetRun()
Результат: int.
Виклики:
bridge.GetRun
Внутрішній код реалізації, не самостійний скрипт.
public int GetRun() => bridge.GetRun(bridge.Self);Виконує показані виклики та оновлення стану.
Параметри: Немає параметрів.
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3685.
public int GetZ()
Результат: int.
Виклики:
GetZ
Внутрішній код реалізації, не самостійний скрипт.
public int GetZ() => GetZ("self");Виконує показані виклики та оновлення стану.
Параметри: int id
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3687.
public int GetZ(int id)
Результат: int.
Виклики:
bridge.GetZ
Внутрішній код реалізації, не самостійний скрипт.
public int GetZ(int id) => bridge.GetZ(id);Виконує показані виклики та оновлення стану.
Параметри: InjectionValue id
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:4488.
public int Grab(InjectionValue id)
Результат: int.
Виклики:
CompactGrab
Внутрішній код реалізації, не самостійний скрипт.
public int Grab(InjectionValue id) => CompactGrab(new[] { id });Виконує показані виклики та оновлення стану.
Параметри: InjectionValue amount, InjectionValue id, InjectionValue container
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:4492.
public int Grab(InjectionValue amount, InjectionValue id, InjectionValue container)
Результат: int.
Виклики:
CompactGrab
Внутрішній код реалізації, не самостійний скрипт.
public int Grab(InjectionValue amount, InjectionValue id, InjectionValue container)
=> CompactGrab(new[] { amount, id, container });Виконує показані виклики та оновлення стану.
Параметри: InjectionValue firstId, InjectionValue secondId
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3359.
public int GumpExists(InjectionValue firstId, InjectionValue secondId)
Результат: int.
Виклики:
bridge.GumpExistsNumberConversions.ToInt
Внутрішній код реалізації, не самостійний скрипт.
public int GumpExists(InjectionValue firstId, InjectionValue secondId)
=> bridge.GumpExists(NumberConversions.ToInt(firstId), NumberConversions.ToInt(secondId));Виконує показані виклики та оновлення стану.
Параметри: InjectionValue serialValue
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3499.
public string Inj2EUO(InjectionValue serialValue)
Результат: string.
Умови:
value == 0
Виклики:
NumberConversions.ToIntresult.Insertresult.ToString
Внутрішній код реалізації, не самостійний скрипт.
public string Inj2EUO(InjectionValue serialValue)
{
uint value = unchecked((uint)NumberConversions.ToInt(serialValue));
if (value == 0)
return "A";
var result = new StringBuilder();
while (value > 0)
{
result.Insert(0, (char)('A' + value % 26));
value /= 26;
}
return result.ToString();
}Виконує показані виклики та оновлення стану.
Параметри: string identifier, int key
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3362.
public InjectionValue LastGump(string identifier, int key)
Результат: InjectionValue.
Виклики:
ConvertGumpValuebridge.GetGumpValue
Внутрішній код реалізації, не самостійний скрипт.
public InjectionValue LastGump(string identifier, int key) => ConvertGumpValue(identifier, bridge.GetGumpValue(-1, identifier, key));Виконує показані виклики та оновлення стану.
Параметри: Немає параметрів.
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:4020.
public int MaxWeight()
Результат: int.
Виклики:
—
Внутрішній код реалізації, не самостійний скрипт.
public int MaxWeight() => bridge.MaxWeight;Перевіряє умови нижче й повертає показаний результат.
Параметри: 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).
Виклики:
-
InjectionScript.Runtime.PortablePathSearch.ValidPoint:PortablePathSearch.ValidPoint(x, y, z). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.IsOnline:bridge.IsOnline(). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetX:bridge.GetX(bridge.Self). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetY:bridge.GetY(bridge.Self). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetZ:bridge.GetZ(bridge.Self). -
InjectionScript.Runtime.PortablePathSearch.ValidPoint:PortablePathSearch.ValidPoint(currentX, currentY, currentZ). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.MoveTo:bridge.MoveTo( x, y, z, safeAccuracy, running, state.MoveCheckStamina, openDoors, state.MoveThroughCorner != 0, throughNpcs, Math.Max(1, state.MoveHeuristicMultiplier), Math.Max(0, state.MoveTurnCost), state.MoveExitOnDisconnect != 0, safeAccuracyZ, optimized, state.MoveBetweenTwoCorners != 0). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.StopMoving:bridge.StopMoving(). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Move:bridge.Move(). -
InjectionScript.Runtime.InjectionApiUO.MoveToCanonical::IsCurrentRequest:IsCurrentRequest(). -
InjectionScript.Runtime.InjectionApiUO.MoveToCanonical::StopOwnRequest:StopOwnRequest(). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.InvokeStepCallback:bridge.InvokeStepCallback(stepCallback, currentX, currentY, currentZ). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Wait:bridge.Wait(5). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Stamina:bridge.Stamina. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Self:bridge.Self.
Внутрішній код реалізації, не самостійний скрипт.
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)
// …Повний код зберігається у файлі джерела; нижче наведено точні фрагменти.
Виконує показані виклики та оновлення стану.
Параметри: Немає параметрів.
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:3417.
public int Picking()
Результат: int.
Виклики:
bridge.Picking
Внутрішній код реалізації, не самостійний скрипт.
public int Picking() => bridge.Picking();Виконує показані виклики та оновлення стану.
Параметри: int min, int max
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:6063.
public int Random(int min, int max)
Результат: int.
Умови:
min > maxmin == maxcount <= int.MaxValue
Виклики:
random.Nextrandom.NextBytesBitConverter.ToUInt32
Внутрішній код реалізації, не самостійний скрипт.
public int Random(int min, int max)
{
if (min > max)
throw new NativeSubrutineException("UO.Random(min, max): min must not exceed max.");
if (min == max) return min;
long count = (long)max - min + 1;
lock (randomSync)
{
if (count <= int.MaxValue)
return (int)(min + (long)random.Next((int)count));
// Inclusive Int32.MaxValue and the full signed range must not
// overflow. Rejection avoids modulo bias; reuse the four bytes.
const ulong domain = 1UL << 32;
ulong limit = domain - domain % (ulong)count;
uint sample;
do
{
random.NextBytes(randomRangeBytes);
sample = BitConverter.ToUInt32(randomRangeBytes, 0);
} while (sample >= limit);
return (int)(min + (long)(sample % (ulong)count));
}
}Виконує показані виклики та оновлення стану.
Параметри: InjectionValue value
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5217.
private int ResolveCompactMaxZ(InjectionValue value)
Результат: int.
Виклики:
NumberConversions.ToIntbridge.GetFindVerticalMath.Max
Внутрішній код реалізації, не самостійний скрипт.
private int ResolveCompactMaxZ(InjectionValue value)
{
int parsed = NumberConversions.ToInt(value);
return parsed < 0 ? bridge.GetFindVertical() : Math.Max(0, parsed);
}Виконує показані виклики та оновлення стану.
Параметри: string message
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5406.
public void Say(string message)
Результат: void.
Виклики:
bridge.Say
Внутрішній код реалізації, не самостійний скрипт.
public void Say(string message) => bridge.Say(message);Виконує показані виклики та оновлення стану.
Параметри: string name, int quality
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:6040.
public int Snap(string name, int quality)
Результат: int.
Виклики:
bridge.SnapMath.MaxMath.Min
Внутрішній код реалізації, не самостійний скрипт.
public int Snap(string name, int quality) => bridge.Snap(name, Math.Max(1, Math.Min(100, quality)), true);Виконує показані виклики та оновлення стану.
Параметри: string name, int quality, bool includeUi
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:6041.
public int Snap(string name, int quality, bool includeUi)
Результат: int.
Виклики:
bridge.SnapMath.MaxMath.Min
Внутрішній код реалізації, не самостійний скрипт.
public int Snap(string name, int quality, bool includeUi)
=> bridge.Snap(name, Math.Max(1, Math.Min(100, quality)), includeUi);Виконує показані виклики та оновлення стану.
Параметри: string recording, out string name, out InjectionValue[] arguments
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:2767.
private static bool TryDeserializeRecordedLegacyAction(string recording, out string name, out InjectionValue[] arguments)
Результат: bool.
Умови:
string.IsNullOrWhiteSpace(recording)fields.Length < 2 || !fields[0].Equals(RecordedLegacyActionPrefix, StringComparison.Ordinal)!TryDeserializeRecordedValue(fields[index], out values[index - 2])
Виклики:
Array.Empty<InjectionValue>string.IsNullOrWhiteSpacerecording.Splitfields[0].EqualsDecodeRecordingTextMath.MaxTryDeserializeRecordedValue
Внутрішній код реалізації, не самостійний скрипт.
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;
}
}Виконує показані виклики та оновлення стану.
Параметри: InjectionValue type
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:4199.
public int UseFromGround(InjectionValue type)
Результат: int.
Виклики:
UseFromGround
Внутрішній код реалізації, не самостійний скрипт.
public int UseFromGround(InjectionValue type) => UseFromGround(type, new InjectionValue(-1));Виконує показані виклики та оновлення стану.
Параметри: int id1, int id2
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:4294.
public void WaitTargetObject(int id1, int id2)
Результат: void.
Виклики:
bridge.WaitTargetObjectTimer
Внутрішній код реалізації, не самостійний скрипт.
public void WaitTargetObject(int id1, int id2)
{
bridge.WaitTargetObject(id1, id2);
ticksTarget = Timer();
}Виконує показані виклики та оновлення стану.
Параметри: int startTime, int maxDelay, string text, int equals
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:5537.
public void WaitingForJournalText(int startTime, int maxDelay, string text, int equals)
Результат: void.
Виклики:
WaitingForJournalText
Внутрішній код реалізації, не самостійний скрипт.
public void WaitingForJournalText(int startTime, int maxDelay, string text, int equals)
=> WaitingForJournalText(startTime, maxDelay, text, equals, 0, InjectionValue.Zero);Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Параметри: Немає параметрів.
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:404.
values
Результат: values.
Результат: CompactFindType(values[0], values[1], values[2], values[3], values[4], values[5]).
Виклики: CompactFindType.
Виклики:
-
InjectionScript.Runtime.InjectionApiUO.CompactFindType:CompactFindType(values[0], values[1], values[2], values[3], values[4], values[5]).
Внутрішній код реалізації, не самостійний скрипт.
values =>
CompactFindType(values[0], values[1], values[2], values[3], values[4], values[5])Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Параметри: Немає параметрів.
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:856.
values
Результат: values.
Виклики: follow.Follow, GetObject, NumberConversions.ToInt.
Виклики:
-
InjectionScript.Runtime.InjectionApiUO.GetObject:GetObject(values[0]). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[1]). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[2]).
Внутрішній код реалізації, не самостійний скрипт.
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)Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Параметри: Немає параметрів.
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1067.
serial
Результат: serial.
Результат: bridge.Flying(serial).
Виклики: bridge.Flying.
Виклики:
-
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Flying:bridge.Flying(serial).
Внутрішній код реалізації, не самостійний скрипт.
serial => bridge.Flying(serial)Виклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Параметри: Немає параметрів.
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1034.
Результат: bridge.MaxWeight.
Виклики:
-
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.MaxWeight:bridge.MaxWeight.
Внутрішній код реалізації, не самостійний скрипт.
() => bridge.MaxWeightВиклик виконує збережений delegate обробника. Метод реєстрації створює цей delegate під час побудови API.
Параметри: Немає параметрів.
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1030.
Результат: bridge.Strength.
Виклики:
-
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Strength:bridge.Strength.
Внутрішній код реалізації, не самостійний скрипт.
() => bridge.StrengthПовертає значення виразу нижче.
Параметри: Немає параметрів.
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1007.
Результат: getter(bridge.Self).
Виклики:
-
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Self:bridge.Self.
Внутрішній код реалізації, не самостійний скрипт.
() => getter(bridge.Self)Повертає значення виразу нижче.
Параметри: Немає параметрів.
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1007.
Результат: getter(bridge.Self).
Виклики:
-
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Self:bridge.Self.
Внутрішній код реалізації, не самостійний скрипт.
() => getter(bridge.Self)Повертає значення виразу нижче.
Параметри: Немає параметрів.
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs:1007.
Результат: getter(bridge.Self).
Виклики:
-
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Self:bridge.Self.
Внутрішній код реалізації, не самостійний скрипт.
() => getter(bridge.Self)Виконує показані виклики та оновлення стану.
Параметри: string name, IEnumerable<InjectionValue> argumentValues, out NativeSubrutineDefinition subrutineDefinition
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/NativeSubrutineMetadata.cs:34.
public bool TryGet(string name, IEnumerable<InjectionValue> argumentValues, out NativeSubrutineDefinition subrutineDefinition)
Результат: bool.
Умови:
!byName.TryGetValue(name, out var arities)!arities.TryGetValue(arguments.Count, out var overloads)kind == InjectionValueKind.Anykind == arguments[i].Kind
Виклики:
byName.TryGetValueargumentValues.ToArrayarities.TryGetValueStringComparer.OrdinalIgnoreCase.Comparecandidate.GetSignaturewildcard.GetSignature
Внутрішній код реалізації, не самостійний скрипт.
public bool TryGet(string name, IEnumerable<InjectionValue> argumentValues, out NativeSubrutineDefinition subrutineDefinition)
{
subrutineDefinition = null;
// A script procedure is not a native. Avoid scanning the entire API
// (over 1600 registrations) twice for every ordinary helper call.
if (!byName.TryGetValue(name, out var arities)) return false;
var arguments = argumentValues as IReadOnlyList<InjectionValue> ?? argumentValues.ToArray();
if (!arities.TryGetValue(arguments.Count, out var overloads)) return false;
NativeSubrutineDefinition allAny = null, wildcard = null;
int bestWildcardCount = int.MaxValue;
foreach (var candidate in overloads)
{
bool compatible = true, exact = true;
int anyCount = 0;
for (int i = 0; i < arguments.Count; i++)
{
var kind = candidate.ParameterKinds[i];
if (kind == InjectionValueKind.Any) anyCount++;
if (kind == arguments[i].Kind) continue;
exact = false;
if (kind != InjectionValueKind.Any) { compatible = false; break; }
}
if (exact && compatible) { subrutineDefinition = candidate; return true; }
if (!compatible) continue;
if (anyCount == arguments.Count) { allAny = candidate; continue; }
if (anyCount < bestWildcardCount || (anyCount == bestWildcardCount
&& StringComparer.OrdinalIgnoreCase.Compare(candidate.GetSignature(), wildcard.GetSignature()) < 0))
{ wildcard = candidate; bestWildcardCount = anyCount; }
}
// Preserve existing dispatch precedence: exact, all-Any adapter,
// then the most specific mixed signature with its stable tie-break.
subrutineDefinition = allAny ?? wildcard;
return subrutineDefinition != null;
}Перевіряє умови нижче й повертає показаний результат.
Параметри: 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.
Виклики:
-
InjectionScript.Runtime.PortablePathSearch.ValidPoint:ValidPoint(startX, startY, startZ). -
InjectionScript.Runtime.PortablePathSearch.ValidPoint:ValidPoint(finishX, finishY, finishZ). -
InjectionScript.Runtime.PortablePathSearch.Find::Estimate:Estimate(startX, startY). -
InjectionScript.Runtime.PortablePathSearch.Find::Estimate:Estimate(x, y). -
InjectionScript.Runtime.PortablePathSearch.ValidPoint:ValidPoint(x, y, z.Value).
Внутрішній код реалізації, не самостійний скрипт.
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;
// …Повний код зберігається у файлі джерела; нижче наведено точні фрагменти.
Виконує показані виклики та оновлення стану.
Параметри: string name, out int graphic
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/State/NamedTypes.cs:30.
public bool TryGet(string name, out int graphic)
Результат: bool.
Виклики:
values.TryGetValue(name ?? string.Empty).Trim
Внутрішній код реалізації, не самостійний скрипт.
public bool TryGet(string name, out int graphic)
{
lock (gate) return values.TryGetValue((name ?? string.Empty).Trim(), out graphic);
}Виконує показані виклики та оновлення стану.
Параметри: string name, T value
Джерело: Project_Full/external/InjectionScript/src/InjectionScript/Runtime/State/RuntimeDictionary.cs:16.
public void Set(string name, T value)
Результат: void.
Умови:
!items.ContainsKey(name)notify
Виклики:
items.ContainsKeyitems.Add.Invoke
Внутрішній код реалізації, не самостійний скрипт.
public void Set(string name, T value)
{
bool notify = true;
lock (itemsLock)
{
if (!items.ContainsKey(name))
{
items.Add(name, value);
notify = true;
}
else
items[name] = value;
}
if (notify)
KeyAdded?.Invoke(name);
}Виконує показані виклики та оновлення стану.
Параметри: int type, int color, int containerId
Джерело: Project_Full/src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs:2926.
public int CountDirectItems(int type, int color, int containerId)
Результат: int.
Умови:
MatchesFindIdentity(item, type, color, ignoredTypes) && MatchesFindContainer(item, containerId, range, false)IsGroundFindContainer(containerId)MatchesFindMobile(mobile, type, color, range, ignoredTypes)
Виклики:
InvokeState.IgnoreTypeLists.FilterForResolveFindRangeMatchesFindIdentityMatchesFindContainerMath.MaxIsGroundFindContainerMatchesFindMobile
Внутрішній код реалізації, не самостійний скрипт.
public int CountDirectItems(int type, int color, int containerId) => Invoke(() =>
{
IgnoreTypeFilter ignoredTypes = State.IgnoreTypeLists.FilterFor(State.SelectedIgnoreList);
int range = ResolveFindRange(State.FindDistance);
int quantity = 0;
foreach (Item item in _world.Items.Values)
if (MatchesFindIdentity(item, type, color, ignoredTypes)
&& MatchesFindContainer(item, containerId, range, false))
quantity = checked(quantity + Math.Max(1, (int)item.Amount));
if (IsGroundFindContainer(containerId))
foreach (Mobile mobile in _world.Mobiles.Values)
if (MatchesFindMobile(mobile, type, color, range, ignoredTypes))
quantity = checked(quantity + 1);
return quantity;
});