Skip to content

API UO BookSetText ko

Codex edited this page Sep 23, 2026 · 1 revision

UO.BookSetText

ClassicUO / Basic IDE

Home · API · Books

열린 편집 가능한 책의 첫 페이지부터 씁니다.

정확한 구문

UO.BookSetText(Text:Any) -> Unit

매개변수

  • Text — 텍스트: Chr(10)은 줄 바꿈, Chr(13)은 제거됩니다. 페이지당 최대 10줄, 줄당 53자이며 NUL은 금지됩니다.

반환값

Unit: 반환값이 없습니다. 쓰기 요청이며 TRUE/FALSE나 서버 완료 확인이 아닙니다. 서버가 편집을 거절할 수 있습니다.

동작

  • 먼저 게임 동작으로 대상 책을 여세요. 마지막으로 연 책을 사용하며 ID 인수는 없습니다. 여러 책이면 대상을 확인하세요. Get은 받은 내용만 읽고 없는 페이지를 요청하지 않습니다.
  • 관리자는 그래픽 없이도 세션에 책을 보관합니다. 게임 창을 닫고 다시 열어도 책과 초안은 유지됩니다. 책 자체를 닫으면 열린 책에서 제외되고 연결이 끊기면 서버 책이 초기화됩니다.
  • 편집 가능한 책에만 쓸 수 있습니다. 잘못된 페이지와 너무 긴 텍스트는 거절됩니다. BookSetText는 보내기 전에 모든 페이지를 검사하므로 뒤쪽 오류로 일부만 기록되지 않습니다.
  • BookSetText는 Chr(12)로 페이지를 나누며, 없으면 10줄마다 나눕니다. 나머지 기존 페이지는 유지됩니다. 전체 교체는 먼저 BookClearText를 명시적으로 호출하세요. 빈 텍스트는 첫 페이지만 교체합니다.

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

서버는 헤더, 페이지 수와 본문을 전송합니다. SessionBooks는 전체 패킷을 검사하고 저장하며 화면을 갱신합니다. Basic은 bridge로 마지막 책을 고르고 SessionBook은 내용을 읽거나 검사 후 쓰기 패킷을 보냅니다. ModernBookGump는 같은 데이터를 표시하고 그래픽 분리 시 초안을 보관합니다.

1. GetOpenBook

먼저 게임 동작으로 대상 책을 여세요. 마지막으로 연 책을 사용하며 ID 인수는 없습니다. 여러 책이면 대상을 확인하세요. Get은 받은 내용만 읽고 없는 페이지를 요청하지 않습니다.

관리자는 그래픽 없이도 세션에 책을 보관합니다. 게임 창을 닫고 다시 열어도 책과 초안은 유지됩니다. 책 자체를 닫으면 열린 책에서 제외되고 연결이 끊기면 서버 책이 초기화됩니다.

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

2. SessionBooks.ReceiveHeader/ReceivePages; SessionBook.Yoko*

편집 가능한 책에만 쓸 수 있습니다. 잘못된 페이지와 너무 긴 텍스트는 거절됩니다. BookSetText는 보내기 전에 모든 페이지를 검사하므로 뒤쪽 오류로 일부만 기록되지 않습니다.

Unit: 반환값이 없습니다. 쓰기 요청이며 TRUE/FALSE나 서버 완료 확인이 아닙니다. 서버가 편집을 거절할 수 있습니다.

프로젝트 소스: src/ClassicUO.Client/Game/Managers/SessionBooks.cs; 함수 SessionBooks.ReceiveHeader/ReceivePages; SessionBook.Yoko*.

먼저 게임 동작으로 대상 책을 여세요. 마지막으로 연 책을 사용하며 ID 인수는 없습니다. 여러 책이면 대상을 확인하세요. Get은 받은 내용만 읽고 없는 페이지를 요청하지 않습니다.

예제

직접 사용

# 직접 사용
#
# 열린 편집 가능한 책의  페이지부터 씁니다.
#
# Unit: 반환값이 없습니다. 쓰기 요청이며 TRUE/FALSE 서버 완료 확인이 아닙니다. 서버가 편집을 거절할  있습니다.

SUB Main()
    # 대상 책이 열려 있고 필요한 페이지를 받았으며 쓰기에는 편집 권한이 있다고 가정합니다. 1, 2, 3 페이지 번호이므로 존재를 확인하세요. 이름과 본문은 예시입니다.

    UO.BookSetText("Mining route" + Chr(10) + "Start at camp")
END SUB

매개변수 및 실행 설명:

  • 대상 책이 열려 있고 필요한 페이지를 받았으며 쓰기에는 편집 권한이 있다고 가정합니다. 1, 2, 3은 페이지 번호이므로 존재를 확인하세요. 이름과 본문은 예시입니다.

실제 활용

# 실제 활용
#
# 열린 편집 가능한 책의  페이지부터 씁니다.
#
# Unit: 반환값이 없습니다. 쓰기 요청이며 TRUE/FALSE 서버 완료 확인이 아닙니다. 서버가 편집을 거절할  있습니다.

SUB Main()
    # 대상 책이 열려 있고 필요한 페이지를 받았으며 쓰기에는 편집 권한이 있다고 가정합니다. 1, 2, 3 페이지 번호이므로 존재를 확인하세요. 이름과 본문은 예시입니다.

    UO.BookSetText("Camp A" + Chr(12) + "Camp B" + Chr(12) + "Return home")
END SUB

매개변수 및 실행 설명:

  • 대상 책이 열려 있고 필요한 페이지를 받았으며 쓰기에는 편집 권한이 있다고 가정합니다. 1, 2, 3은 페이지 번호이므로 존재를 확인하세요. 이름과 본문은 예시입니다.

전체 보조 함수

# 전체 보조 함수
#
# 열린 편집 가능한 책의  페이지부터 씁니다.
#
# Unit: 반환값이 없습니다. 쓰기 요청이며 TRUE/FALSE 서버 완료 확인이 아닙니다. 서버가 편집을 거절할  있습니다.

SUB Main()
    # 대상 책이 열려 있고 필요한 페이지를 받았으며 쓰기에는 편집 권한이 있다고 가정합니다. 1, 2, 3 페이지 번호이므로 존재를 확인하세요. 이름과 본문은 예시입니다.

    WriteRoute("Northern mine", "Bring bandages")
END SUB

SUB WriteRoute(destination, supplies)
    VAR firstPage = "Destination" + Chr(10) + destination
    VAR secondPage = "Supplies" + Chr(10) + supplies
    UO.BookSetText(firstPage + Chr(12) + secondPage)
END SUB

매개변수 및 실행 설명:

  • 대상 책이 열려 있고 필요한 페이지를 받았으며 쓰기에는 편집 권한이 있다고 가정합니다. 1, 2, 3은 페이지 번호이므로 존재를 확인하세요. 이름과 본문은 예시입니다.

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

Clone this wiki locally