Skip to content

KO UO Topic localization

Codex edited this page Oct 12, 2026 · 4 revisions

Українська · Русский · 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

주제에 대한 예

각 명령 카드에는 직접 코드, 함수 및 클래스 등 여러 가지 독립적인 시나리오가 있습니다. 다음은 선택된 짧은 시나리오입니다. 제한사항과 전체 분석이 카드에 포함되어 있습니다.

UO.GetCliloc

매개변수, 결과 및 모든 시나리오

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;

UO.GetClilocByID

매개변수, 결과 및 모든 시나리오

var text = UO.GetClilocByID(1042971, "");
UO.Print(text);

전체 명령 참조


UO.GetCliloc

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

C# 시그니처

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를 사용하세요.

독립 실행 C# 스크립트

각 예제는 별도의 파일 .csx로 저장하고 IDE에서 실행할 수 있습니다. UO 개체와 대기 기능은 현재 게임 세션의 호스트를 제공합니다. 데모 serial 이름, 좌표, 주소를 자신의 것으로 바꾸세요.

간단한 예제

이 코드를 별도의 .csx 파일로 실행하세요. 인수는 호출에 직접 표시됩니다. 예제의 이름, serial, 주소를 자신의 값으로 바꾸세요.

한 번의 호출 결과를 저널에 표시합니다. 숫자를 bool로 변환하지 않으며, 배열이면 요소 수를 표시합니다.

object? result = UO.GetCliloc("backpack");
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));

1. 배낭에 있는 아이템의 속성 - 직접 스크립트

매개변수와 실행 흐름:

  • 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;

2. 응답 없음 처리 - 스크립트 기능

매개변수와 실행 흐름:

  • 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;

3. 다음 작업까지 텍스트 저장 - 스크립트 클래스

매개변수와 실행 흐름:

  • 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을 사용하세요.

UO.GetCliloc(objID) — UO.GetCliloc(Any)

매개변수: objID (Any)

결과: dynamic / Any.

호출 시:

내부 구현 코드이며 독립 스크립트로 실행할 수 없습니다.

case "getcliloc":

                case "gettooltip":

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

UO.GetClilocByID

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

C# 시그니처

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)를 사용하세요.

독립 실행 C# 스크립트

각 예제는 별도의 파일 .csx로 저장하고 IDE에서 실행할 수 있습니다. UO 개체와 대기 기능은 현재 게임 세션의 호스트를 제공합니다. 데모 serial 이름, 좌표, 주소를 자신의 것으로 바꾸세요.

간단한 예제

이 코드를 별도의 .csx 파일로 실행하세요. 인수는 호출에 직접 표시됩니다. 예제의 이름, serial, 주소를 자신의 값으로 바꾸세요.

한 번의 호출 결과를 저널에 표시합니다. 숫자를 bool로 변환하지 않으며, 배열이면 요소 수를 표시합니다.

object? result = UO.GetClilocByID(1042971, "");
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));

1. 와일드카드가 없는 템플릿 - 직접 스크립트

매개변수와 실행 흐름:

  • ClilocID=1042971 — 예시 번호; 필요한 것으로 교체하십시오. Params는 단일 빈 값으로 전달된 빈 문자열입니다.
  • 와일드카드 표시가 없는 패턴의 경우 빈 매개변수는 텍스트를 변경하지 않습니다. 템플릿에 데이터가 필요한 경우 다음 예와 같이 배열을 전달합니다.
var text = UO.GetClilocByID(1042971, "");
UO.Print(text);

2. 두 개의 값 전달 - 스크립트 함수

매개변수와 실행 흐름:

  • 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;
}

3. 첫 번째 부동산 번역 - 스크립트 클래스

매개변수와 실행 흐름:

  • 첫 번째 인수는 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을 사용하세요.

UO.GetClilocByID(clilocID, params) — UO.GetClilocByID(Any,Any)

매개변수: clilocID (Any), params (Any)

결과: dynamic / Any.

호출 시:

내부 구현 코드이며 독립 스크립트로 실행할 수 없습니다.

case "getclilocbyid":

                    return new InjectionValue(bridge.GetClilocById(Arg(0), StringArrayArg(1)));

UO.GetUserCodepage

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

C# 시그니처

int UO.GetUserCodepage();

프로필 설정을 읽지 않고 Encoding.Default.CodePage를 반환합니다.

매개변수

매개변수가 없습니다.

반환값

int — 현재 프로세스의 Encoding.Default.CodePage 이는 선택한 음성 인코딩 UO이 아닌 .NET 인코딩입니다.

동작

  • 프로필 설정을 읽지 않고 Encoding.Default.CodePage를 반환합니다. 값은 환경에 따라 다릅니다.NET; Windows ANSI는 보장된 것으로 간주할 수 없습니다.
  • 현재 로컬 상태를 읽습니다. 패키지, 대상 또는 자동 업데이트가 없습니다. 개별 읽기에서는 다른 상태가 나타날 수 있습니다.

독립 실행 C# 스크립트

각 예제는 별도의 파일 .csx로 저장하고 IDE에서 실행할 수 있습니다. UO 개체와 대기 기능은 현재 게임 세션의 호스트를 제공합니다. 데모 serial 이름, 좌표, 주소를 자신의 것으로 바꾸세요.

간단한 예제

이 코드를 별도의 .csx 파일로 실행하세요. 인수는 호출에 직접 표시됩니다. 예제의 이름, serial, 주소를 자신의 값으로 바꾸세요.

한 번의 호출 결과를 저널에 표시합니다. 숫자를 bool로 변환하지 않으며, 배열이면 요소 수를 표시합니다.

var result = UO.GetUserCodepage();
UO.Print("GetUserCodepage: " + Convert.ToString(result));

1. 직접 통화 - 직접 스크립트

매개변수와 실행 흐름:

  • 프로필 설정을 읽지 않고 Encoding.Default.CodePage를 반환합니다.
UO.Print(UO.GetUserCodepage());

2. 명시적 옵션 - 스크립트 기능

매개변수와 실행 흐름:

  • 프로필 설정을 읽지 않고 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;

3. 전체 도우미 기능 - 스크립트 클래스

매개변수와 실행 흐름:

  • 현재 로컬 상태를 읽습니다. 패키지, 대상 또는 자동 업데이트가 없습니다. 개별 읽기에서는 다른 상태가 나타날 수 있습니다.
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을 사용하세요.

UO.GetUserCodepage() — UO.GetUserCodepage()

매개변수: 매개변수가 없습니다.

결과: int / Integer.

호출 시:

내부 구현 코드이며 독립 스크립트로 실행할 수 없습니다.

public int GetUserCodepage() => Encoding.Default.CodePage;

Clone this wiki locally