Skip to content

KO API UO WarTargetID

Codex edited this page Nov 6, 2026 · 3 revisions

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

UO.WarTargetID

홈 · C# · IDE · UO API · A–Z · 예 · 언어

C# 시그니처

dynamic UO.WarTargetID();

마지막 공격 대상의 serial를 읽어옵니다.

매개변수

매개변수가 없습니다.

반환값

int — 저장됨 serial; 0은 serial이 설치되지 않았음을 의미합니다. bool도 아니고 graphic/type도 아닙니다. 0이 아닌 ID는 세상에 더 이상 존재하지 않을 수 있습니다.

동작

  • 필드 소스: bridge.LastAttack. 이 명령은 개체를 선택하거나 사용하거나 공격하지 않습니다.
  • 현재 로컬 상태를 읽습니다. 패키지, 대상 또는 자동 업데이트가 없습니다. 개별 읽기에서는 다른 상태가 나타날 수 있습니다.

독립 실행 C# 스크립트

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

간단한 예제

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

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

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

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

매개변수와 실행 흐름:

  • 마지막 공격 대상의 serial를 읽어옵니다.
var id = UO.WarTargetID();
UO.Print(Hex(id));

string Hex(object? value) => Convert.ToInt64(value).ToString("X");

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

매개변수와 실행 흐름:

  • 필드 소스: bridge.LastAttack. 이 명령은 개체를 선택하거나 사용하거나 공격하지 않습니다.
return  RunScenario();
 object? RunScenario()
{
    var id = UO.WarTargetID();
    if (Truth(id != 0) && Truth(UO.Exists(id)))
    {
        UO.Print(UO.GetName(id));
    }

    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.WarTargetID();
        UO.Wait(500);
        var after = UO.WarTargetID();
        UO.Print(before == after);
        return null;
    }
}

명령 구현

C#은 대소문자를 구분합니다. 정확한 UO 이름을 사용하세요. 숫자 플래그는 0과 비교하고 반환 형식이 bool일 때만 bool을 사용하세요.

UO.WarTargetID() — UO.WarTargetID()

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

결과: dynamic / Any.

호출 시:

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

case "lastattack":

                case "wartargetid": return new InjectionValue(bridge.LastAttack);

Clone this wiki locally