Skip to content

API UO GetFollowersMax ko

Codex edited this page Sep 22, 2026 · 1 revision

UO.GetFollowersMax

ClassicUO / Basic IDE

Home · Все команды · Каталоги

다음 길들인 생물이나 소환수를 제어할 여유가 있는지 확인합니다. Followers는 사용 중인 제어 슬롯, FollowersMax는 전체 한도입니다. 주변 동물 수나 이동 명령 Follow가 아닙니다.

현재 플레이어의 상태 계수를 읽습니다: 추종자 제어 슬롯 상한.

정확한 구문

UO.GetFollowersMax() -> Integer

매개변수

매개변수가 없습니다.

반환값

Integer — 추종자 제어 슬롯 상한, 모델 범위 0..255입니다. 0은 실제 값, 미수신 데이터 또는 없거나 파괴된 Player일 수 있습니다. 수량이며 Boolean, ID, type이 아닙니다. 1은 한 단위이고 성공이 아닙니다. 객체를 열거하거나 배열을 반환하지 않습니다.

동작

  • 5칸 중 3칸 사용이면 2칸이 남습니다. 4는 한 칸짜리 네 마리 또는 네 칸짜리 한 마리일 수 있습니다. 두 칸이 필요하면 maximum - current >= 2를 확인해야 합니다. 비용과 한도는 서버가 정하므로 항상 5로 고정하지 마세요.
  • 0만으로 반려동물의 죽음이나 실종을 판단할 수 없습니다. 상태가 아직 갱신되지 않았을 수 있습니다. 증가도 특정 생물의 길들이기 성공을 증명하지 않으므로 생물과 서버 메시지를 확인하세요. 마구간 보관 슬롯과는 다릅니다.
  • 인자가 없습니다. 표시된 정확한 시그니처를 사용하세요.
  • 게임 스레드에서 Player.FollowersMax를 읽습니다. 현재 Player가 없거나 파괴되었으면 0입니다. 장비 검색, 보너스 계산, 상태 요청, 갱신 대기가 없습니다. 존재하는 유령은 파괴된 Player와 다릅니다.
  • PetsMax/FollowersMax는 status type >= 3에서 서버가 허용한 총 슬롯 상한을 읽으며 빈 슬롯 수가 아닙니다. 사용량이 상한을 넘을 수도 있습니다. 빈 용량 표시는 maximum - current를 계산하고 음수를 0으로 바꿉니다. 해제, 길들이기, 소환은 하지 않습니다.
  • CharacterStatus는 고정 본문을 검증한 후 갱신합니다. Weight는 자신의 확장 상태, 슬롯은 type 3, Luck는 type 4, 서버 WeightMax는 type 5부터입니다. 선택적 계수가 없는 간략/구형 패킷은 이전 캐시를 유지합니다. 새 Player는 0부터 시작하며 호출이 최신 상태 수신을 증명하지는 않습니다.
  • RegisterCharacterGetterAliases는 빠진 무인수 함수와 내장 이름을 등록합니다. 기존 호환 분기도 같은 필드를 읽습니다. 이름의 대소문자는 무관하며 괄호 없는 내장 이름은 변수로 가려지지 않으면 매번 읽습니다.
  • 호출마다 로컬 값을 다시 읽습니다. 변수는 스냅샷이며 별도 호출은 서로 다른 업데이트를 볼 수 있습니다. 0이 아닌 값은 접속 확인이 아니며 0은 실제 값과 데이터 없음을 모두 나타냅니다.

내부 함수: 호출부터 결과까지

상태 캐시 읽기의 네이티브 단계입니다. 예제의 CanCarry, LuckAtLeast, CanAddFollower는 전체 정의가 있는 사용자 BASIC 함수이며 숨겨진 네이티브 동작이 아닙니다. 인벤토리나 추종자를 변경하지 않습니다.

1. RegisterCharacterGetterAliases

RegisterCharacterGetterAliases는 빠진 무인수 함수와 내장 이름을 등록합니다. 기존 호환 분기도 같은 필드를 읽습니다. 이름의 대소문자는 무관하며 괄호 없는 내장 이름은 변수로 가려지지 않으면 매번 읽습니다.

PetsMax FollowersMax GetPetsMax GetFollowersMax.

프로젝트 소스: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; 함수 RegisterCharacterGetterAliases.

2. Invoke

게임 스레드에서 Player.FollowersMax를 읽습니다. 현재 Player가 없거나 파괴되었으면 0입니다. 장비 검색, 보너스 계산, 상태 요청, 갱신 대기가 없습니다. 존재하는 유령은 파괴된 Player와 다릅니다.

Invoke는 게임 스레드에서 읽고 대기는 스크립트 취소에 대응합니다. status 요청, 타깃, 패킷 전송, 능력치 변경, 내장 지연이 없습니다.

프로젝트 소스: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; 함수 Invoke.

3. CharacterStatus

CharacterStatus는 고정 본문을 검증한 후 갱신합니다. Weight는 자신의 확장 상태, 슬롯은 type 3, Luck는 type 4, 서버 WeightMax는 type 5부터입니다. 선택적 계수가 없는 간략/구형 패킷은 이전 캐시를 유지합니다. 새 Player는 0부터 시작하며 호출이 최신 상태 수신을 증명하지는 않습니다.

PetsMax/FollowersMax는 status type >= 3에서 서버가 허용한 총 슬롯 상한을 읽으며 빈 슬롯 수가 아닙니다. 사용량이 상한을 넘을 수도 있습니다. 빈 용량 표시는 maximum - current를 계산하고 음수를 0으로 바꿉니다. 해제, 길들이기, 소환은 하지 않습니다.

프로젝트 소스: src/ClassicUO.Client/Network/PacketHandlers.cs; 함수 CharacterStatus.

4. Clear

World.Clear는 Player를 제거합니다. 플레이어와 데이터가 다시 준비될 때까지 0입니다. 재접속 후 저장된 값만으로 조건 충족을 판단하지 마세요.

Integer — 추종자 제어 슬롯 상한, 모델 범위 0..255입니다. 0은 실제 값, 미수신 데이터 또는 없거나 파괴된 Player일 수 있습니다. 수량이며 Boolean, ID, type이 아닙니다. 1은 한 단위이고 성공이 아닙니다. 객체를 열거하거나 배열을 반환하지 않습니다.

프로젝트 소스: src/ClassicUO.Client/Game/World.cs; 함수 Clear.

호출마다 로컬 값을 다시 읽습니다. 변수는 스냅샷이며 별도 호출은 서로 다른 업데이트를 볼 수 있습니다. 0이 아닌 값은 접속 확인이 아니며 0은 실제 값과 데이터 없음을 모두 나타냅니다.

예제

남은 제어 슬롯 계산

# 남은 제어 슬롯 계산
#
# 다음 길들인 생물이나 소환수를 제어할 여유가 있는지 확인합니다. Followers는 사용 중인 제어 슬롯, FollowersMax는 전체 한도입니다. 주변 동물 수나
# 이동 명령 Follow가 아닙니다.
#
# 현재 플레이어의 상태 계수를 읽습니다: 추종자 제어 슬롯 상한.
#
# Integer추종자 제어 슬롯 상한, 모델 범위 0..255입니다. 0 실제 값, 미수신 데이터 또는 없거나 파괴된 Player일  있습니다. 수량이며
# Boolean, ID, type이 아닙니다. 1  단위이고 성공이 아닙니다. 객체를 열거하거나 배열을 반환하지 않습니다.

SUB Main()
    # current는 사용량, maximum은 한도, freeSlots는 차이입니다. 한도를 모르거나 값이 모순이면 종료합니다. 캐시만 읽으며 상태 갱신을 요청하지 않습니다.

    VAR current = UO.Followers()
    VAR maximum = UO.GetFollowersMax()
    IF UO.Self() = 0 OR maximum <= 0 OR current > maximum THEN
        UO.Print("Follower status is unavailable or inconsistent")
        RETURN
    END IF
    VAR freeSlots = maximum - current
    UO.Print("Control slots: " + CStr(current) + "/" + CStr(maximum))
    UO.Print("Free slots: " + CStr(freeSlots))
END SUB

매개변수 및 실행 설명:

  • current는 사용량, maximum은 한도, freeSlots는 차이입니다. 한도를 모르거나 값이 모순이면 종료합니다. 캐시만 읽으며 상태 갱신을 요청하지 않습니다.

Animal Taming 전 용량 확인

# Animal Taming  용량 확인
#
# 다음 길들인 생물이나 소환수를 제어할 여유가 있는지 확인합니다. Followers는 사용 중인 제어 슬롯, FollowersMax는 전체 한도입니다. 주변 동물 수나
# 이동 명령 Follow가 아닙니다.
#
# 현재 플레이어의 상태 계수를 읽습니다: 추종자 제어 슬롯 상한.
#
# Integer추종자 제어 슬롯 상한, 모델 범위 0..255입니다. 0 실제 값, 미수신 데이터 또는 없거나 파괴된 Player일  있습니다. 수량이며
# Boolean, ID, type이 아닙니다. 1  단위이고 성공이 아닙니다. 객체를 열거하거나 배열을 반환하지 않습니다.

SUB Main()
    # 먼저 동물을 선택해 lasttarget에 ID를 저장하세요. requiredSlots=2 예시이므로 실제 서버 비용으로 바꾸세요. 용량 부족  대상이나 기술을
    # 시작하지 않습니다. 대상을 준비한  인수가 하나인 UseSkill("Animal Taming")을 호출합니다. 성공 여부는 기술, 거리, 서버에도 달려 있습니다.

    VAR requiredSlots = 2
    VAR current = UO.Followers()
    VAR maximum = UO.GetFollowersMax()
    IF UO.Self() = 0 OR maximum <= 0 OR maximum - current < requiredSlots THEN
        UO.Print("Not enough known control slots")
        RETURN
    END IF
    VAR animal = UO.LastTarget()
    IF animal = 0 THEN
        UO.Print("Select the animal first")
        RETURN
    END IF
    UO.WaitTargetObject(animal)
    UO.UseSkill("Animal Taming")
END SUB

매개변수 및 실행 설명:

  • 먼저 동물을 선택해 lasttarget에 ID를 저장하세요. requiredSlots=2는 예시이므로 실제 서버 비용으로 바꾸세요. 용량 부족 시 대상이나 기술을 시작하지 않습니다. 대상을 준비한 후 인수가 하나인 UseSkill("Animal Taming")을 호출합니다. 성공 여부는 기술, 거리, 서버에도 달려 있습니다.

다른 비용으로 검사 재사용

# 다른 비용으로 검사 재사용
#
# 다음 길들인 생물이나 소환수를 제어할 여유가 있는지 확인합니다. Followers는 사용 중인 제어 슬롯, FollowersMax는 전체 한도입니다. 주변 동물 수나
# 이동 명령 Follow가 아닙니다.
#
# 현재 플레이어의 상태 계수를 읽습니다: 추종자 제어 슬롯 상한.
#
# Integer추종자 제어 슬롯 상한, 모델 범위 0..255입니다. 0 실제 값, 미수신 데이터 또는 없거나 파괴된 Player일  있습니다. 수량이며
# Boolean, ID, type이 아닙니다. 1  단위이고 성공이 아닙니다. 객체를 열거하거나 배열을 반환하지 않습니다.

SUB Main()
    # CanAddFollower는 예시에 완전히 정의된 BASIC 보조 함수입니다. extraSlots는 추가로 필요한 칸이며 type/ID가 아닙니다. 캐시에 따라
    # 1/True 또는 0/False 반환하며 길들이기나 소환은 하지 않습니다. 행동 직전에 다시 확인하세요.

    IF CanAddFollower(2) THEN
        UO.Print("Capacity check passed; verify the creature cost before acting")
    ELSE
        UO.Print("Insufficient capacity or unavailable status")
    END IF
END SUB

SUB CanAddFollower(extraSlots)
    IF extraSlots < 0 OR UO.Self() = 0 THEN
        RETURN FALSE
    END IF
    VAR current = UO.PetsCurrent()
    VAR maximum = UO.GetFollowersMax()
    IF maximum <= 0 THEN
        RETURN FALSE
    END IF
    RETURN extraSlots <= maximum - current
END SUB

매개변수 및 실행 설명:

  • CanAddFollower는 예시에 완전히 정의된 BASIC 보조 함수입니다. extraSlots는 추가로 필요한 칸이며 type/ID가 아닙니다. 캐시에 따라 1/True 또는 0/False를 반환하며 길들이기나 소환은 하지 않습니다. 행동 직전에 다시 확인하세요.

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

Clone this wiki locally