Repository navigation
KO UO Topic localization
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
홈 · C# · IDE · UO API · A–Z · 예 · 언어
지역화된 cliloc 텍스트 및 인코딩 정보를 검색합니다. 언어를 변경할 때 명령 이름 API은 번역되지 않습니다.
| 주제 | 명령 및 설명 |
|---|---|
| Cliloc | UO.GetCliloc |
| Cliloc by ID | UO.GetClilocByID |
| Codepage | UO.GetUserCodepage |
UO.GetCliloc · UO.GetClilocByID · UO.GetUserCodepage
각 명령 카드에는 직접 코드, 함수 및 클래스 등 여러 가지 독립적인 시나리오가 있습니다. 다음은 선택된 짧은 시나리오입니다. 제한사항과 전체 분석이 카드에 포함되어 있습니다.
var item = UO.FindType(0x0EED, -1, "backpack");
if (Truth(item != ""))
{
UO.Print(UO.GetCliloc(item));
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;var text = UO.GetClilocByID(1042971, "");
UO.Print(text);Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.GetCliloc(object? objID);OPL에서 완성된 개체 속성 텍스트를 읽습니다. GetTooltip 및 GetCliloc는 동의어입니다.
-
objID— 필수 serial/ID 객체. type도 아니고 cliloc도 아닙니다. int, 10진수/16진수 문자열, self, backpack, lasttarget, finditem 또는 이름 AddObject를 허용합니다. 0는 개체가 없음을 의미합니다.
string — 속성의 이름과 텍스트를 줄 바꿈으로 구분하거나 비어 있지 않은 부분만 구분합니다. ObjID=0이거나 속성이 수신되지 않은 경우 빈 문자열입니다. 이것은 이미 만들어진 텍스트입니다. 숫자 ID cliloc 및 매개변수는 GetTooltipRec에 의해 반환됩니다.
- 항목이 OPL에 이미 존재하는 경우 해당 텍스트가 즉시 반환됩니다. 항목이 없으면 속성 요청이 전송되고 10ms마다 확인하여 최대 200ms까지 응답이 예상됩니다. 일시 중지가 응답을 보장하지는 않습니다.
- 접근 가능한 객체와 서버의 속성 지원이 필요합니다. 빈 결과는 객체가 없다는 증거가 아닙니다. Exists만 사용하세요.
- 텍스트에는 서버 마크업이 포함될 수 있습니다. 숫자 속성을 줄 위치로 구문 분석하지 마세요. 이를 위해 GetTooltipRec를 사용하세요.
각 예제는 별도의 파일 .csx로 저장하고 IDE에서 실행할 수 있습니다. UO 개체와 대기 기능은 현재 게임 세션의 호스트를 제공합니다. 데모 serial 이름, 좌표, 주소를 자신의 것으로 바꾸세요.
이 코드를 별도의 .csx 파일로 실행하세요. 인수는 호출에 직접 표시됩니다. 예제의 이름, serial, 주소를 자신의 값으로 바꾸세요.
한 번의 호출 결과를 저널에 표시합니다. 숫자를 bool로 변환하지 않으며, 배열이면 요소 수를 표시합니다.
object? result = UO.GetCliloc("backpack");
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));매개변수와 실행 흐름:
- FindType: 골드 0x0EED, 모든 hue=-1, 직접 콘텐츠 backpack. ObjID=항목 - serial을 찾았습니다.
- getter 결과는 금의 양이 아니라 텍스트입니다. 수량은 FindCount(항목)을 사용하세요.
var item = UO.FindType(0x0EED, -1, "backpack");
if (Truth(item != ""))
{
UO.Print(UO.GetCliloc(item));
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;매개변수와 실행 흐름:
- ObjID=lasttarget는 원하는 개체를 가리켜야 합니다.
- 빈 문자열은 별도로 처리됩니다. 무한 루프에서 요청을 자동으로 반복할 필요가 없습니다.
return RunScenario();
object? RunScenario()
{
var text = UO.GetCliloc("lasttarget");
if (Truth(text == ""))
{
UO.Print("No properties received");
}
else
{
UO.Print(text);
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;매개변수와 실행 흐름:
- id와 save는 별도의 변수입니다. 즉, 개체의 고유한 ID와 해당 텍스트의 스냅샷입니다.
- 나중에 서버의 속성이 변경되더라도 저장된 내용은 자동으로 변경되지 않습니다.
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 id = UO.GetSerial("lasttarget");
var saved = UO.GetCliloc(id);
UO.Print("Object: 0x" + Hex(id));
UO.Print(saved);
return null;
}
string Hex(object? value) => Convert.ToInt64(value).ToString("X");
}C#은 대소문자를 구분합니다. 정확한 UO 이름을 사용하세요. 숫자 플래그는 0과 비교하고 반환 형식이 bool일 때만 bool을 사용하세요.
매개변수: objID (Any)
결과: dynamic / Any.
호출 시:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetTooltip:bridge.GetTooltip(Arg(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0).
내부 구현 코드이며 독립 스크립트로 실행할 수 없습니다.
case "getcliloc":
case "gettooltip":
return new InjectionValue(bridge.GetTooltip(Arg(0)));Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.GetClilocByID(object? clilocID, object? @params);게임 파일의 cliloc 템플릿을 변환하고 전달된 매개변수를 대체합니다.
-
clilocID- 필수 int - 현지화된 메시지의 ID. 객체의 serial나 graphic가 아닙니다. 예를 들어 결과 GetTooltipRec의 행[0]에 있는 숫자입니다. -
params—1_...,2_...순서로 대체 배열이 필수입니다. 하나의 스칼라 값이 허용됩니다. 이는 하나의 문자열로 구성된 배열이 됩니다. 매개변수가 없는 템플릿의 경우 빈 문자열을 전달할 수 있습니다. #number 요소는 다른 cliloc을 참조합니다. 요소는 문자열로 변환됩니다. 문자열을 명시적으로 전달하는 것이 좋습니다.
string — Params의 대체 항목으로 번역된 템플릿입니다. cliloc 로더가 없으면 빈 문자열이 반환됩니다. ID을 알 수 없는 경우 로드된 ClilocLoader는 진단 텍스트 MegaCliloc를 반환합니다. 이 숫자와 대체 매개변수가 누락되었습니다. cliloc ID 또는 성공 기호를 반환하지 않습니다.
- 개체 속성의 경우 먼저 GetTooltipRec(ObjID): 메시지 번호와 개체가 다릅니다 ID. 모든 속성의 미리 만들어진 텍스트를 보려면 GetTooltip(ObjID)를 사용하세요.
각 예제는 별도의 파일 .csx로 저장하고 IDE에서 실행할 수 있습니다. UO 개체와 대기 기능은 현재 게임 세션의 호스트를 제공합니다. 데모 serial 이름, 좌표, 주소를 자신의 것으로 바꾸세요.
이 코드를 별도의 .csx 파일로 실행하세요. 인수는 호출에 직접 표시됩니다. 예제의 이름, serial, 주소를 자신의 값으로 바꾸세요.
한 번의 호출 결과를 저널에 표시합니다. 숫자를 bool로 변환하지 않으며, 배열이면 요소 수를 표시합니다.
object? result = UO.GetClilocByID(1042971, "");
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));매개변수와 실행 흐름:
- ClilocID=1042971 — 예시 번호; 필요한 것으로 교체하십시오. Params는 단일 빈 값으로 전달된 빈 문자열입니다.
- 와일드카드 표시가 없는 패턴의 경우 빈 매개변수는 텍스트를 변경하지 않습니다. 템플릿에 데이터가 필요한 경우 다음 예와 같이 배열을 전달합니다.
var text = UO.GetClilocByID(1042971, "");
UO.Print(text);매개변수와 실행 흐름:
- ClilocID=1042971는 템플릿의 예입니다. args[0] 및 args[1]는 첫 번째 및 두 번째 매개변수의 위치를 차지합니다.
- 인덱스 변수 선언[1]은 0부터 1까지 두 가지 요소를 생성합니다. 적절한 매개변수가 필요한 ID 템플릿을 사용하세요.
return RunScenario();
object? RunScenario()
{
dynamic[] args = new dynamic[checked((int)(1) + 1)];
args[0] = "iron";
args[1] = "ingot";
UO.Print(UO.GetClilocByID(1042971, args));
return null;
}매개변수와 실행 흐름:
- 첫 번째 인수는 clilocID 속성입니다. 두 번째는 이미 만들어진 Params 배열입니다.
- 하나 이상의 레코드가 있는지 확인됩니다. 모든 매개변수는 서버로부터 수신되며 ID와 함께 전송됩니다.
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 rows = UO.GetTooltipRec("lasttarget");
if (Truth(ArrayLength(rows) > 0))
{
var row = rows[0];
UO.Print(UO.GetClilocByID(row[0], row[1]));
}
return null;
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
}C#은 대소문자를 구분합니다. 정확한 UO 이름을 사용하세요. 숫자 플래그는 0과 비교하고 반환 형식이 bool일 때만 bool을 사용하세요.
매개변수: clilocID (Any), params (Any)
결과: dynamic / Any.
호출 시:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetClilocById:bridge.GetClilocById(Arg(0), StringArrayArg(1)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::StringArrayArg:StringArrayArg(1).
내부 구현 코드이며 독립 스크립트로 실행할 수 없습니다.
case "getclilocbyid":
return new InjectionValue(bridge.GetClilocById(Arg(0), StringArrayArg(1)));Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.GetUserCodepage();프로필 설정을 읽지 않고 Encoding.Default.CodePage를 반환합니다.
매개변수가 없습니다.
int — 현재 프로세스의 Encoding.Default.CodePage 이는 선택한 음성 인코딩 UO이 아닌 .NET 인코딩입니다.
- 프로필 설정을 읽지 않고 Encoding.Default.CodePage를 반환합니다. 값은 환경에 따라 다릅니다.NET; Windows ANSI는 보장된 것으로 간주할 수 없습니다.
- 현재 로컬 상태를 읽습니다. 패키지, 대상 또는 자동 업데이트가 없습니다. 개별 읽기에서는 다른 상태가 나타날 수 있습니다.
각 예제는 별도의 파일 .csx로 저장하고 IDE에서 실행할 수 있습니다. UO 개체와 대기 기능은 현재 게임 세션의 호스트를 제공합니다. 데모 serial 이름, 좌표, 주소를 자신의 것으로 바꾸세요.
이 코드를 별도의 .csx 파일로 실행하세요. 인수는 호출에 직접 표시됩니다. 예제의 이름, serial, 주소를 자신의 값으로 바꾸세요.
한 번의 호출 결과를 저널에 표시합니다. 숫자를 bool로 변환하지 않으며, 배열이면 요소 수를 표시합니다.
var result = UO.GetUserCodepage();
UO.Print("GetUserCodepage: " + Convert.ToString(result));매개변수와 실행 흐름:
- 프로필 설정을 읽지 않고 Encoding.Default.CodePage를 반환합니다.
UO.Print(UO.GetUserCodepage());매개변수와 실행 흐름:
- 프로필 설정을 읽지 않고 Encoding.Default.CodePage를 반환합니다. 값은 환경에 따라 다릅니다.NET; Windows ANSI는 보장된 것으로 간주할 수 없습니다.
return RunScenario();
object? RunScenario()
{
var codepage = UO.GetUserCodepage();
if (Truth(codepage == 65001))
{
UO.Print("UTF-8");
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 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 before = UO.GetUserCodepage();
UO.Wait(500);
var after = UO.GetUserCodepage();
UO.Print(before);
UO.Print(after);
return null;
}
}C#은 대소문자를 구분합니다. 정확한 UO 이름을 사용하세요. 숫자 플래그는 0과 비교하고 반환 형식이 bool일 때만 bool을 사용하세요.
매개변수: 매개변수가 없습니다.
결과: int / Integer.
호출 시:
내부 구현 코드이며 독립 스크립트로 실행할 수 없습니다.
public int GetUserCodepage() => Encoding.Default.CodePage;ClassicUO — Bad Newbie & C# Scripts IDE