Repository navigation
KO UO Topic conversion compatibility
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
홈 · C# · IDE · UO API · A–Z · 예 · 언어
숫자, serial 및 레거시 스크립트 형식을 변환합니다. 호환 가능한 이름에는 제한 사항이 있거나 명시적으로 금지된 작업이 있을 수 있습니다. 이는 카드에 표시되어 있습니다.
| 주제 | 명령 및 설명 |
|---|---|
| Hex / int | UO.Hex2Int · UO.Int2Hex |
| EUO ↔ Injection | UO.EUO2ID · UO.EUO2Type · UO.EUO2Inj · UO.Inj2EUO |
| EasyUO | UO.GetEasyUO · UO.SetEasyUO |
| 유형 변환 | C# 및 표준 라이브러리 C# 및 표준 라이브러리 C# 및 표준 라이브러리 C# 및 표준 라이브러리 C# 및 표준 라이브러리 · C# 및 표준 라이브러리 |
UO.Hex2Int · UO.Int2Hex · UO.ScanInt · UO.EUO2ID · UO.EUO2Inj · UO.EUO2Type · UO.Inj2EUO
UO.BoxHack · UO.ShutdownWindows
각 명령 카드에는 직접 코드, 함수 및 클래스 등 여러 가지 독립적인 시나리오가 있습니다. 다음은 선택된 짧은 시나리오입니다. 제한사항과 전체 분석이 카드에 포함되어 있습니다.
UO.Print(UO.Int2Hex(1073746484));var value = UO.EUO2ID("B");
UO.Print(Convert.ToString(value));Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.BoxHack();레거시 네이티브 클라이언트 패치 BoxHack가 필요하지 않음 ClassicUO을 알리는 알림을 인쇄합니다.
매개변수가 없습니다.
void - 반환 값이 없습니다.
- ExecuteLegacyManualAlias 분기는 SystemMessage만 호출합니다. 동작, 음성, 컨테이너 또는 네트워크 프로토콜은 수정되지 않습니다.
각 예제는 별도의 파일 .csx로 저장하고 IDE에서 실행할 수 있습니다. UO 개체와 대기 기능은 현재 게임 세션의 호스트를 제공합니다. 데모 serial 이름, 좌표, 주소를 자신의 것으로 바꾸세요.
이 코드를 별도의 .csx 파일로 실행하세요. 인수는 호출에 직접 표시됩니다. 예제의 이름, serial, 주소를 자신의 값으로 바꾸세요.
명령은 독립된 문입니다. 앞의 메시지는 호출 시작을 나타내며 서버 동작의 완료를 확인하지 않습니다.
UO.Print("Calling UO.BoxHack");
UO.BoxHack();매개변수와 실행 흐름:
- 메시지는 이전 패치가 필요하지 않음을 설명합니다.
UO.BoxHack();매개변수와 실행 흐름:
- 호환성 절차는 게임 세계를 바꾸지 않습니다.
return RunScenario();
object? RunScenario()
{
CompatibilityNotice();
return null;
}
void CompatibilityNotice()
{
UO.BoxHack();
}매개변수와 실행 흐름:
- 진단 메시지 후에 실행이 계속됩니다.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
UO.BoxHack();
UO.Print("continued");
return null;
}
}C#은 대소문자를 구분합니다. 정확한 UO 이름을 사용하세요. 숫자 플래그는 0과 비교하고 반환 형식이 bool일 때만 bool을 사용하세요.
매개변수: 매개변수가 없습니다.
결과: void / Unit.
호출 시:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.SystemMessage:SystemMessage($"{name}: obsolete native-client patch; ClassicUO does not require it.").
내부 구현 코드이며 독립 스크립트로 실행할 수 없습니다.
case "boxhack":
case "fixtalk":
case "fixwalk":
SystemMessage($"{name}: obsolete native-client patch; ClassicUO does not require it.");
break;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.EUO2ID(object? euo);A=0를 사용하여 기수 26의 EasyUO 리터럴 표기법을 디코딩합니다.
-
euo— EasyUO 문자열/값. 문자는 대문자로 변환됩니다. 문자가 아닌 문자는 건너뜁니다.
int — 결과 32 비트 숫자 값; 이것은 16진수 문자열이 아닙니다.
- value=value*26+(letter-A)를 순차적으로 계산합니다. 누산기 uint는 검사되지 않은 상태로 실행되므로 오버플로는 32 비트를 둘러쌉니다. 빈 문자열과 문자가 없는 문자열은 0을 제공합니다. 세상의 어떤 물건도 찾지 않습니다.
각 예제는 별도의 파일 .csx로 저장하고 IDE에서 실행할 수 있습니다. UO 개체와 대기 기능은 현재 게임 세션의 호스트를 제공합니다. 데모 serial 이름, 좌표, 주소를 자신의 것으로 바꾸세요.
이 코드를 별도의 .csx 파일로 실행하세요. 인수는 호출에 직접 표시됩니다. 예제의 이름, serial, 주소를 자신의 값으로 바꾸세요.
한 번의 호출 결과를 저널에 표시합니다. 숫자를 bool로 변환하지 않으며, 배열이면 요소 수를 표시합니다.
object? result = UO.EUO2ID("B");
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));매개변수와 실행 흐름:
- B는 숫자 1를 인코딩합니다.
var value = UO.EUO2ID("B");
UO.Print(Convert.ToString(value));매개변수와 실행 흐름:
- 대소문자는 중요하지 않습니다. 하이픈과 느낌표는 건너뜁니다.
return RunScenario();
object? RunScenario()
{
var value = UO.EUO2ID("b-!");
UO.Print(Convert.ToString(value));
return null;
}매개변수와 실행 흐름:
- 코드 0; 결과는 발견된 개체를 나타내지 않습니다.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
var value = UO.EUO2ID("A");
UO.Print(Convert.ToString(value));
return null;
}
}C#은 대소문자를 구분합니다. 정확한 UO 이름을 사용하세요. 숫자 플래그는 0과 비교하고 반환 형식이 bool일 때만 bool을 사용하세요.
매개변수: euo (Any)
결과: dynamic / Any.
호출 시:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
InjectionScript.Runtime.InjectionApiUO.DecodeEasyUoId:DecodeEasyUoId(Text(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Text:Text(0).
내부 구현 코드이며 독립 스크립트로 실행할 수 없습니다.
case "euo2id":
case "euo2type": return new InjectionValue(DecodeEasyUoId(Text(0)));Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
string UO.EUO2Inj(object? easyValue);A=0를 사용하여 기수 26의 EasyUO 리터럴 표기법을 디코딩합니다.
-
easyValue— EasyUO 문자열/값. 문자는 대문자로 변환됩니다. 문자가 아닌 문자는 건너뜁니다.
string는 결과 serial 주입의 16진수 문자열입니다.
- value=value*26+(letter-A)를 순차적으로 계산합니다. 누산기 uint는 검사되지 않은 상태로 실행되므로 오버플로는 32 비트를 둘러쌉니다. 빈 문자열과 문자가 없는 문자열은 0을 제공합니다. 세상의 어떤 물건도 찾지 않습니다.
각 예제는 별도의 파일 .csx로 저장하고 IDE에서 실행할 수 있습니다. UO 개체와 대기 기능은 현재 게임 세션의 호스트를 제공합니다. 데모 serial 이름, 좌표, 주소를 자신의 것으로 바꾸세요.
이 코드를 별도의 .csx 파일로 실행하세요. 인수는 호출에 직접 표시됩니다. 예제의 이름, serial, 주소를 자신의 값으로 바꾸세요.
한 번의 호출 결과를 저널에 표시합니다. 숫자를 bool로 변환하지 않으며, 배열이면 요소 수를 표시합니다.
var result = UO.EUO2Inj("B");
UO.Print("EUO2Inj: " + Convert.ToString(result));매개변수와 실행 흐름:
- B는 숫자 1를 인코딩합니다.
var value = UO.EUO2Inj("B");
UO.Print(Convert.ToString(value));매개변수와 실행 흐름:
- 대소문자는 중요하지 않습니다. 하이픈과 느낌표는 건너뜁니다.
return RunScenario();
object? RunScenario()
{
var value = UO.EUO2Inj("b-!");
UO.Print(Convert.ToString(value));
return null;
}매개변수와 실행 흐름:
- 코드 0; 결과는 발견된 개체를 나타내지 않습니다.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
var value = UO.EUO2Inj("A");
UO.Print(Convert.ToString(value));
return null;
}
}C#은 대소문자를 구분합니다. 정확한 UO 이름을 사용하세요. 숫자 플래그는 0과 비교하고 반환 형식이 bool일 때만 bool을 사용하세요.
매개변수: easyValue (Any)
결과: string / String.
호출 시:
-
InjectionScript.Runtime.InjectionApiUO.EUO2Inj. -
InjectionScript.Runtime.InjectionValue.ToString:easyValue.ToString(). -
InjectionScript.Runtime.NumberConversions.ToHex:NumberConversions.ToHex(unchecked((int)value)).
내부 구현 코드이며 독립 스크립트로 실행할 수 없습니다.
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));
}Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.EUO2Type(object? euo);A=0를 사용하여 기수 26의 EasyUO 리터럴 표기법을 디코딩합니다.
-
euo— EasyUO 문자열/값. 문자는 대문자로 변환됩니다. 문자가 아닌 문자는 건너뜁니다.
int — 결과 32 비트 숫자 값; 이것은 16진수 문자열이 아닙니다.
- value=value*26+(letter-A)를 순차적으로 계산합니다. 누산기 uint는 검사되지 않은 상태로 실행되므로 오버플로는 32 비트를 둘러쌉니다. 빈 문자열과 문자가 없는 문자열은 0을 제공합니다. 세상의 어떤 물건도 찾지 않습니다.
각 예제는 별도의 파일 .csx로 저장하고 IDE에서 실행할 수 있습니다. UO 개체와 대기 기능은 현재 게임 세션의 호스트를 제공합니다. 데모 serial 이름, 좌표, 주소를 자신의 것으로 바꾸세요.
이 코드를 별도의 .csx 파일로 실행하세요. 인수는 호출에 직접 표시됩니다. 예제의 이름, serial, 주소를 자신의 값으로 바꾸세요.
한 번의 호출 결과를 저널에 표시합니다. 숫자를 bool로 변환하지 않으며, 배열이면 요소 수를 표시합니다.
object? result = UO.EUO2Type("B");
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));매개변수와 실행 흐름:
- B는 숫자 1를 인코딩합니다.
var value = UO.EUO2Type("B");
UO.Print(Convert.ToString(value));매개변수와 실행 흐름:
- 대소문자는 중요하지 않습니다. 하이픈과 느낌표는 건너뜁니다.
return RunScenario();
object? RunScenario()
{
var value = UO.EUO2Type("b-!");
UO.Print(Convert.ToString(value));
return null;
}매개변수와 실행 흐름:
- 코드 0; 결과는 발견된 개체를 나타내지 않습니다.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
var value = UO.EUO2Type("A");
UO.Print(Convert.ToString(value));
return null;
}
}C#은 대소문자를 구분합니다. 정확한 UO 이름을 사용하세요. 숫자 플래그는 0과 비교하고 반환 형식이 bool일 때만 bool을 사용하세요.
매개변수: euo (Any)
결과: dynamic / Any.
호출 시:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
InjectionScript.Runtime.InjectionApiUO.DecodeEasyUoId:DecodeEasyUoId(Text(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Text:Text(0).
내부 구현 코드이며 독립 스크립트로 실행할 수 없습니다.
case "euo2id":
case "euo2type": return new InjectionValue(DecodeEasyUoId(Text(0)));Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.Hex2Int(object? value);숫자 값이나 숫자 텍스트를 int로 변환합니다.
-
value— int, double, double-텍스트 또는 0x가 있는 16진수 텍스트. 가장자리와 기호 주변에 공백이 허용됩니다. 여기에는 별칭 문자열 "self"/"lasttarget"이 허용되지 않습니다.
int(32 비트 포함); 16진수 0xFFFFFFFF는 -1을 제공합니다. double는 범위 검사를 통해 0으로 잘립니다. NumberConversions.ToInt의 배열과 null는 0을 제공합니다.
- 이름에도 불구하고 10진수 텍스트가 허용됩니다. 잘못된 텍스트는 FormatException을 제공하고, 지원되지 않는 유형은 InvalidCastException를 제공합니다. 오버플로 double—변환 오류.
- 역방향 서식은 UO.Int2Hex입니다. 변환은 객체의 존재를 증명하지 않습니다.
각 예제는 별도의 파일 .csx로 저장하고 IDE에서 실행할 수 있습니다. UO 개체와 대기 기능은 현재 게임 세션의 호스트를 제공합니다. 데모 serial 이름, 좌표, 주소를 자신의 것으로 바꾸세요.
이 코드를 별도의 .csx 파일로 실행하세요. 인수는 호출에 직접 표시됩니다. 예제의 이름, serial, 주소를 자신의 값으로 바꾸세요.
한 번의 호출 결과를 저널에 표시합니다. 숫자를 bool로 변환하지 않으며, 배열이면 요소 수를 표시합니다.
var result = UO.Hex2Int("0x40001234");
UO.Print("Hex2Int: " + Convert.ToString(result));매개변수와 실행 흐름:
- 숫자 값이나 숫자 텍스트를 int로 변환합니다.
UO.Print(UO.Hex2Int("0x40001234"));매개변수와 실행 흐름:
- 이름에도 불구하고 10진수 텍스트가 허용됩니다. 잘못된 텍스트는 FormatException을 제공하고, 지원되지 않는 유형은 InvalidCastException를 제공합니다. 오버플로 double—변환 오류.
return RunScenario();
object? RunScenario()
{
UO.Print(UO.Hex2Int("255"));
UO.Print(UO.Hex2Int("0xFFFFFFFF"));
return null;
}매개변수와 실행 흐름:
- 역방향 서식은 UO.Int2Hex입니다. 변환은 객체의 존재를 증명하지 않습니다.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
var number = UO.Hex2Int("0x000000FF");
UO.Print(UO.Int2Hex(number));
return null;
}
}C#은 대소문자를 구분합니다. 정확한 UO 이름을 사용하세요. 숫자 플래그는 0과 비교하고 반환 형식이 bool일 때만 bool을 사용하세요.
매개변수: value (Any)
결과: int / Integer.
호출 시:
-
InjectionScript.Runtime.InjectionApiUO.Hex2Int. -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(value).
내부 구현 코드이며 독립 스크립트로 실행할 수 없습니다.
public int Hex2Int(InjectionValue value) => NumberConversions.ToInt(value);Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
string UO.Inj2EUO(object? serialValue);EasyUO의 경우 32비트 숫자 serial를 문자 A..Z로 인코딩합니다.
-
serialValue— NumberConversions.ToInt까지의 숫자, 비트가 보존된 부호 없는 uint. 별칭의 경우 먼저 GetSerial/Hex2Int를 얻으세요.
string는 A=0..Z=25인 일반적인 기본 숫자 26입니다. 0은 "A"를 제공합니다. 이는 16진수나 개체 이름이 아닙니다.
- 알고리즘은 문자 A + 값 % 26를 왼쪽에 삽입하고 uint를 26로 0으로 나눕니다. 이는 Excel A1 열 번호가 아닌 프로젝트 자체 변환입니다.
- EUO2Inj는 16진수 문자열로 역변환을 수행합니다. 인코딩은 객체를 생성하지 않으며 클라이언트에서 객체를 요청하지도 않습니다.
각 예제는 별도의 파일 .csx로 저장하고 IDE에서 실행할 수 있습니다. UO 개체와 대기 기능은 현재 게임 세션의 호스트를 제공합니다. 데모 serial 이름, 좌표, 주소를 자신의 것으로 바꾸세요.
이 코드를 별도의 .csx 파일로 실행하세요. 인수는 호출에 직접 표시됩니다. 예제의 이름, serial, 주소를 자신의 값으로 바꾸세요.
한 번의 호출 결과를 저널에 표시합니다. 숫자를 bool로 변환하지 않으며, 배열이면 요소 수를 표시합니다.
var result = UO.Inj2EUO(0);
UO.Print("Inj2EUO: " + Convert.ToString(result));매개변수와 실행 흐름:
- EasyUO의 경우 32비트 숫자 serial를 문자 A..Z로 인코딩합니다.
UO.Print(UO.Inj2EUO(0));매개변수와 실행 흐름:
- 알고리즘은 문자 A + 값 % 26를 왼쪽에 삽입하고 uint를 26로 0으로 나눕니다. 이는 Excel A1 열 번호가 아닌 프로젝트 자체 변환입니다.
return RunScenario();
object? RunScenario()
{
UO.Print(UO.Inj2EUO(26));
UO.Print(UO.Inj2EUO(25));
return null;
}매개변수와 실행 흐름:
- EUO2Inj는 16진수 문자열로 역변환을 수행합니다. 인코딩은 객체를 생성하지 않으며 클라이언트에서 객체를 요청하지도 않습니다.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
var value = UO.Hex2Int("0x40001234");
var encoded = UO.Inj2EUO(value);
UO.Print(encoded);
UO.Print(UO.EUO2Inj(encoded));
return null;
}
}C#은 대소문자를 구분합니다. 정확한 UO 이름을 사용하세요. 숫자 플래그는 0과 비교하고 반환 형식이 bool일 때만 bool을 사용하세요.
매개변수: serialValue (Any)
결과: string / String.
호출 시:
-
InjectionScript.Runtime.InjectionApiUO.Inj2EUO. -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(serialValue).
내부 구현 코드이며 독립 스크립트로 실행할 수 없습니다.
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();
}Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
string UO.Int2Hex(object? value);int 형식을 16진수 serial 문자열로 지정합니다.
-
value- int 또는 숫자/16진수 텍스트; double는 오버플로 검사를 통해 0으로 잘립니다. 개체 별칭을 찾을 수 없습니다.
string "0xXXXXXXXX": 8자리 16진수, 모두 32 비트 int. 음수 값은 2의 보수로 표시됩니다.
- NumberConversions.ToInt가 변환을 수행한 다음 ToHex가 X8 형식을 사용합니다. 예를 들어 -1는 "0xFFFFFFFF"를 제공합니다. 잘못된 숫자 텍스트로 인해 오류가 발생합니다. 이것은 serial의 존재 여부를 테스트하는 것이 아닙니다.
- 숫자를 표현하려면 변환만으로 충분합니다. 물체의 존재 여부는 UO.Exists로 별도로 확인됩니다.
각 예제는 별도의 파일 .csx로 저장하고 IDE에서 실행할 수 있습니다. UO 개체와 대기 기능은 현재 게임 세션의 호스트를 제공합니다. 데모 serial 이름, 좌표, 주소를 자신의 것으로 바꾸세요.
이 코드를 별도의 .csx 파일로 실행하세요. 인수는 호출에 직접 표시됩니다. 예제의 이름, serial, 주소를 자신의 값으로 바꾸세요.
한 번의 호출 결과를 저널에 표시합니다. 숫자를 bool로 변환하지 않으며, 배열이면 요소 수를 표시합니다.
var result = UO.Int2Hex(1073746484);
UO.Print("Int2Hex: " + Convert.ToString(result));매개변수와 실행 흐름:
- int 형식을 16진수 serial 문자열로 지정합니다.
UO.Print(UO.Int2Hex(1073746484));매개변수와 실행 흐름:
- NumberConversions.ToInt가 변환을 수행한 다음 ToHex가 X8 형식을 사용합니다. 예를 들어 -1는 "0xFFFFFFFF"를 제공합니다. 잘못된 숫자 텍스트로 인해 오류가 발생합니다. 이것은 serial의 존재 여부를 테스트하는 것이 아닙니다.
return RunScenario();
object? RunScenario()
{
UO.Print(UO.Int2Hex(-1));
return null;
}매개변수와 실행 흐름:
- 숫자를 표현하려면 변환만으로 충분합니다. 물체의 존재 여부는 UO.Exists로 별도로 확인됩니다.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
var encoded = UO.Int2Hex(255);
UO.Print(encoded);
UO.Print(UO.Hex2Int(encoded));
return null;
}
}C#은 대소문자를 구분합니다. 정확한 UO 이름을 사용하세요. 숫자 플래그는 0과 비교하고 반환 형식이 bool일 때만 bool을 사용하세요.
매개변수: value (Any)
결과: string / String.
호출 시:
-
InjectionScript.Runtime.InjectionApiUO.Int2Hex. -
InjectionScript.Runtime.NumberConversions.ToHex:NumberConversions.ToHex(NumberConversions.ToInt(value)). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(value).
내부 구현 코드이며 독립 스크립트로 실행할 수 없습니다.
public string Int2Hex(InjectionValue value) => NumberConversions.ToHex(NumberConversions.ToInt(value));Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.ScanInt(object? textValue, object? startValue);문자열의 position에서 시작하여 첫 번째 부호 있는 double/hex 숫자를 찾습니다.
-
textValue— ToString을 통한 문자 메시지. 정규식 [-+]?(?:0[xX][0-9A-Fa-f]+|\d+)와 일치하는 첫 번째 항목을 검색합니다. -
startValue- int, 제로 위치 UTF-16. 0..text.Length로 제한됩니다. 1의 색인이 아닙니다.
int는 인식되는 첫 번째 32비트 숫자입니다. 일치하는 항목이 없거나 숫자가 맞지 않습니다. - 0; 실수 0은 0도 제공합니다.
- Regex.Match는 하위 문자열(시작)에 적용됩니다. 첫 번째 일치 항목이 TryStr2Int 변환에 실패하면 다음 숫자는 검색되지 않습니다. .5와 같은 분수 부분은 숫자 토큰에 포함되지 않습니다.
- 음수 시작은 0가 되고 줄 끝 이후의 시작은 text.Length가 되며 결과는 0입니다. 원래 줄은 변경되지 않습니다.
각 예제는 별도의 파일 .csx로 저장하고 IDE에서 실행할 수 있습니다. UO 개체와 대기 기능은 현재 게임 세션의 호스트를 제공합니다. 데모 serial 이름, 좌표, 주소를 자신의 것으로 바꾸세요.
이 코드를 별도의 .csx 파일로 실행하세요. 인수는 호출에 직접 표시됩니다. 예제의 이름, serial, 주소를 자신의 값으로 바꾸세요.
한 번의 호출 결과를 저널에 표시합니다. 숫자를 bool로 변환하지 않으며, 배열이면 요소 수를 표시합니다.
var result = UO.ScanInt("gold=123", 0);
UO.Print("ScanInt: " + Convert.ToString(result));매개변수와 실행 흐름:
- 문자열의 position에서 시작하여 첫 번째 부호 있는 double/hex 숫자를 찾습니다.
UO.Print(UO.ScanInt("gold=123", 0));매개변수와 실행 흐름:
- Regex.Match는 하위 문자열(시작)에 적용됩니다. 첫 번째 일치 항목이 TryStr2Int 변환에 실패하면 다음 숫자는 검색되지 않습니다. .5와 같은 분수 부분은 숫자 토큰에 포함되지 않습니다.
return RunScenario();
object? RunScenario()
{
UO.Print(UO.ScanInt("-7 0xFF", 3));
return null;
}매개변수와 실행 흐름:
- 음수 시작은 0가 되고 줄 끝 이후의 시작은 text.Length가 되며 결과는 0입니다. 원래 줄은 변경되지 않습니다.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
var text = "count=0x20";
var amount = UO.ScanInt(text, 6);
UO.Print(amount);
return null;
}
}C#은 대소문자를 구분합니다. 정확한 UO 이름을 사용하세요. 숫자 플래그는 0과 비교하고 반환 형식이 bool일 때만 bool을 사용하세요.
매개변수: textValue (Any), startValue (Any)
결과: int / Integer.
호출 시:
-
InjectionScript.Runtime.InjectionApiUO.ScanInt. -
InjectionScript.Runtime.InjectionValue.ToString:textValue.ToString(). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(startValue). -
InjectionScript.Runtime.NumberConversions.TryStr2Int:NumberConversions.TryStr2Int(match.Value, out int value).
내부 구현 코드이며 독립 스크립트로 실행할 수 없습니다.
public int ScanInt(InjectionValue textValue, InjectionValue startValue)
{
string text = textValue.ToString() ?? string.Empty;
int start = Math.Max(0, Math.Min(text.Length, NumberConversions.ToInt(startValue)));
Match match = Regex.Match(text.Substring(start), @"[-+]?(?:0[xX][0-9A-Fa-f]+|\d+)", RegexOptions.CultureInvariant);
return match.Success && NumberConversions.TryStr2Int(match.Value, out int value) ? value : 0;
}Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.ShutdownWindows(object? state);스크립트에서 Windows를 종료하려는 시도를 항상 거부합니다.
-
state- 레거시 인수가 서명에 저장되지만 사용되지 않습니다. 모든 호출이 차단됩니다.
정상적인 결과는 없습니다. NativeSubrutineException에 "shutdownwindows가 의도적으로 차단되었습니다. 스크립트가 Windows를 종료할 수 없습니다."라는 메시지가 표시됩니다.
- ExecuteLegacyManualAlias는 즉시 예외를 발생시킵니다. 종료, 재부팅 또는 외부 프로세스 시작이 수행되지 않습니다.
- 세 가지 예제 모두 의도적으로 금지된 호출을 표시하고 실행 시 실패합니다. 성공적인 종료를 위한 조건으로 사용할 수 없습니다.
각 예제는 별도의 파일 .csx로 저장하고 IDE에서 실행할 수 있습니다. UO 개체와 대기 기능은 현재 게임 세션의 호스트를 제공합니다. 데모 serial 이름, 좌표, 주소를 자신의 것으로 바꾸세요.
이 코드를 별도의 .csx 파일로 실행하세요. 인수는 호출에 직접 표시됩니다. 예제의 이름, serial, 주소를 자신의 값으로 바꾸세요.
try { UO.ShutdownWindows(0); }
catch (Exception error) { UO.Print(error.Message); }매개변수와 실행 흐름:
- 스크립트에서 Windows를 종료하려는 시도를 항상 거부합니다.
UO.ShutdownWindows(0);매개변수와 실행 흐름:
- ExecuteLegacyManualAlias는 즉시 예외를 발생시킵니다. 종료, 재부팅 또는 외부 프로세스 시작이 수행되지 않습니다.
return RunScenario();
object? RunScenario()
{
UO.ShutdownWindows(1);
return null;
}매개변수와 실행 흐름:
- 세 가지 예제 모두 의도적으로 금지된 호출을 표시하고 실행 시 실패합니다. 성공적인 종료를 위한 조건으로 사용할 수 없습니다.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
UO.Print("The next command is expected to fail");
UO.ShutdownWindows(0);
return null;
}
}C#은 대소문자를 구분합니다. 정확한 UO 이름을 사용하세요. 숫자 플래그는 0과 비교하고 반환 형식이 bool일 때만 bool을 사용하세요.
매개변수: state (Any)
결과: void / Unit.
호출 시:
내부 구현 코드이며 독립 스크립트로 실행할 수 없습니다.
case "shutdownwindows":
throw new NativeSubrutineException("shutdownwindows is intentionally blocked: scripts may not shut down Windows.");ClassicUO — Bad Newbie & C# Scripts IDE