Skip to content

KO API UO Str

Codex edited this page Oct 12, 2026 · 4 revisions

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

UO.Str

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

C# 시그니처

int UO.Str();

캐릭터의 현재 힘(Strength)을 읽습니다.

매개변수

매개변수가 없습니다.

반환값

int — 클라이언트 모델의 현재 통계 포인트, 0..65535; 백분율, ID, 스킬, 잠금 모드 또는 bool가 아닙니다. 0는 누락/삭제된 문자 또는 접근할 수 없는 객체를 의미하기도 합니다. == true가 아닌 수치 요구 사항과 비교하십시오. 이는 스텟 한도나 수정 없이 보장된 기본 값이 아닙니다.

동작

  • 이 명령은 인수를 사용하지 않습니다. 위의 정확한 서명을 사용하세요.
  • Player를 읽습니다.Strength Player가 존재하고 파괴되지 않은 경우; 그렇지 않으면 0. 존재하는 죽은 캐릭터는 제거된 개체가 아닙니다. 스텟은 HP, 마나, 체력으로 계산되지 않습니다.
  • GetStr/GetInt/GetDex ObjID를 수락합니다. PlayerMobile 데이터는 self에서만 사용할 수 있습니다. 다른 serial - 0의 경우, 로드된 mobile의 경우에도 마찬가지입니다. 다른 사람의 특성은 대체되거나 추측되지 않습니다.
  • Invoke는 스크립트로 대기를 취소하는 기능을 통해 게임 스트림에서 읽기를 수행합니다. 상태를 쿼리하지 않으며, 대상을 열지 않으며, 패킷을 보내지 않으며, 특성을 변경하지 않으며 지연을 추가하지 않습니다.
  • 호출할 때마다 로컬 데이터를 새로 읽습니다. 변수는 스냅샷을 저장합니다. 개별 읽기는 다른 서버 업데이트를 받을 수 있습니다. 0이 아닌 결과는 연결을 테스트하지 않습니다. 0은 값일 수도 있고 데이터가 없을 수도 있습니다.
  • 정확한 C# 이름을 사용하세요: UO.Str(), UO.Strength(), UO.GetStr() 또는 UO.GetStrength(). C#은 대소문자를 구분합니다.

독립 실행 C# 스크립트

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

간단한 예제

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

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

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

1. 포인트 읽기 및 표시 - 직접 스크립트

매개변수와 실행 흐름:

  • value는 숫자 결과를 저장합니다. 변환합니다.ToString 잡지용으로 포맷합니다. 논쟁이나 캐릭터 행동이 없습니다.
var value = UO.Str();
UO.Print("Strength: " + Convert.ToString(value));

2. 두 이미지 비교 - 스크립트 기능

매개변수와 실행 흐름:

  • 별도의 1000 ms 전후; UO.Wait 예시에 추가되었습니다. Change=after-before는 양수, 0 또는 음수일 수 있습니다. 그 자체로는 모든 중간 업데이트와 월드 종료를 구분하지 않습니다.
return await RunScenarioAsync();
async Task<object?> RunScenarioAsync()
{
    var before = UO.Str();
    await Delay(1000);
    var after = UO.Str();
    var change = after - before;
    UO.Print("Change: " + Convert.ToString(change));
    return null;
}

Task Delay(object? milliseconds) => WaitAsync(checked((int)Convert.ToDouble(milliseconds)));

3. 완전한 요구사항 검증 기능 - 스크립트 클래스

매개변수와 실행 흐름:

  • 최소=80는 클라이언트 제한이 아닌 요구 사항의 예입니다. AttributeAtLeast(최소)는 누락된 문자를 거부하고 특성을 한 번 읽고 bool를 반환합니다: true 또는 >= 최소인 경우 false. 논리적 의미는 특성 자체가 아닌 비교에 의해 부여됩니다.
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()
    {
        if (Truth(Truth(AttributeAtLeast(80)) == true))
        {
            UO.Print("Requirement met");
        }
        else
        {
            UO.Print("Requirement not met or no player");
        }

        return null;
    }

    dynamic AttributeAtLeast(dynamic minimum)
    {
        if (Truth(UO.Self() == 0))
        {
            return false;
        }

        var value = UO.Str();
        return value >= minimum;
    }

    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.Str() — UO.Str()

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

결과: int / Integer.

호출 시:

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

case "str": return new InjectionValue(bridge.Strength);

Clone this wiki locally