-
Notifications
You must be signed in to change notification settings - Fork 0
API UO BookSetPageText ko
ClassicUO / Basic IDE
열린 편집 가능한 책의 한 페이지를 바꿉니다.
UO.BookSetPageText(Page:Any, Text:Any) -> Unit
-
Page— 1부터 시작하는 페이지 번호입니다. 책 ID가 아니며 전체 페이지 수는 서버가 제공합니다. -
Text— 텍스트: Chr(10)은 줄 바꿈, Chr(13)은 제거됩니다. 페이지당 최대 10줄, 줄당 53자이며 NUL은 금지됩니다.
Unit: 반환값이 없습니다. 쓰기 요청이며 TRUE/FALSE나 서버 완료 확인이 아닙니다. 서버가 편집을 거절할 수 있습니다.
- 먼저 게임 동작으로 대상 책을 여세요. 마지막으로 연 책을 사용하며 ID 인수는 없습니다. 여러 책이면 대상을 확인하세요. Get은 받은 내용만 읽고 없는 페이지를 요청하지 않습니다.
- 관리자는 그래픽 없이도 세션에 책을 보관합니다. 게임 창을 닫고 다시 열어도 책과 초안은 유지됩니다. 책 자체를 닫으면 열린 책에서 제외되고 연결이 끊기면 서버 책이 초기화됩니다.
- 편집 가능한 책에만 쓸 수 있습니다. 잘못된 페이지와 너무 긴 텍스트는 거절됩니다. BookSetText는 보내기 전에 모든 페이지를 검사하므로 뒤쪽 오류로 일부만 기록되지 않습니다.
서버는 헤더, 페이지 수와 본문을 전송합니다. SessionBooks는 전체 패킷을 검사하고 저장하며 화면을 갱신합니다. Basic은 bridge로 마지막 책을 고르고 SessionBook은 내용을 읽거나 검사 후 쓰기 패킷을 보냅니다. ModernBookGump는 같은 데이터를 표시하고 그래픽 분리 시 초안을 보관합니다.
먼저 게임 동작으로 대상 책을 여세요. 마지막으로 연 책을 사용하며 ID 인수는 없습니다. 여러 책이면 대상을 확인하세요. Get은 받은 내용만 읽고 없는 페이지를 요청하지 않습니다.
관리자는 그래픽 없이도 세션에 책을 보관합니다. 게임 창을 닫고 다시 열어도 책과 초안은 유지됩니다. 책 자체를 닫으면 열린 책에서 제외되고 연결이 끊기면 서버 책이 초기화됩니다.
프로젝트 소스: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; 함수 GetOpenBook.
편집 가능한 책에만 쓸 수 있습니다. 잘못된 페이지와 너무 긴 텍스트는 거절됩니다. BookSetText는 보내기 전에 모든 페이지를 검사하므로 뒤쪽 오류로 일부만 기록되지 않습니다.
Unit: 반환값이 없습니다. 쓰기 요청이며 TRUE/FALSE나 서버 완료 확인이 아닙니다. 서버가 편집을 거절할 수 있습니다.
프로젝트 소스: src/ClassicUO.Client/Game/Managers/SessionBooks.cs; 함수 SessionBooks.ReceiveHeader/ReceivePages; SessionBook.Yoko*.
보조 함수 전체가 제공됩니다. TRUE는 로컬 검사와 호출을 했다는 뜻일 뿐 서버 저장 확인이 아닙니다.
# 직접 사용
#
# 열린 편집 가능한 책의 한 페이지를 바꿉니다.
#
# Unit: 반환값이 없습니다. 쓰기 요청이며 TRUE/FALSE나 서버 완료 확인이 아닙니다. 서버가 편집을 거절할 수 있습니다.
SUB Main()
# 대상 책이 열려 있고 필요한 페이지를 받았으며 쓰기에는 편집 권한이 있다고 가정합니다. 1, 2, 3은 페이지 번호이므로 존재를 확인하세요. 이름과 본문은 예시입니다.
UO.BookSetPageText(2, "Camp A")
END SUB매개변수 및 실행 설명:
- 대상 책이 열려 있고 필요한 페이지를 받았으며 쓰기에는 편집 권한이 있다고 가정합니다. 1, 2, 3은 페이지 번호이므로 존재를 확인하세요. 이름과 본문은 예시입니다.
# 실제 활용
#
# 열린 편집 가능한 책의 한 페이지를 바꿉니다.
#
# Unit: 반환값이 없습니다. 쓰기 요청이며 TRUE/FALSE나 서버 완료 확인이 아닙니다. 서버가 편집을 거절할 수 있습니다.
SUB Main()
# 대상 책이 열려 있고 필요한 페이지를 받았으며 쓰기에는 편집 권한이 있다고 가정합니다. 1, 2, 3은 페이지 번호이므로 존재를 확인하세요. 이름과 본문은 예시입니다.
UO.BookSetPageText(1, "Supplies" + Chr(10) + "Bandages" + Chr(10) + "Food")
END SUB매개변수 및 실행 설명:
- 대상 책이 열려 있고 필요한 페이지를 받았으며 쓰기에는 편집 권한이 있다고 가정합니다. 1, 2, 3은 페이지 번호이므로 존재를 확인하세요. 이름과 본문은 예시입니다.
# 전체 보조 함수
#
# 열린 편집 가능한 책의 한 페이지를 바꿉니다.
#
# Unit: 반환값이 없습니다. 쓰기 요청이며 TRUE/FALSE나 서버 완료 확인이 아닙니다. 서버가 편집을 거절할 수 있습니다.
SUB Main()
# 대상 책이 열려 있고 필요한 페이지를 받았으며 쓰기에는 편집 권한이 있다고 가정합니다. 1, 2, 3은 페이지 번호이므로 존재를 확인하세요. 이름과 본문은 예시입니다.
# 보조 함수 전체가 제공됩니다. TRUE는 로컬 검사와 호출을 했다는 뜻일 뿐 서버 저장 확인이 아닙니다.
VAR requested = AppendNote(1, "Return before night")
END SUB
FUNCTION AppendNote(page, line)
IF Len(line) > 53 THEN
RETURN FALSE
END IF
VAR previous = UO.BookGetPageText(page)
IF previous = "" THEN
UO.BookSetPageText(page, line)
RETURN TRUE
END IF
VAR lineCount = 1
FOR VAR index = 1 TO Len(previous)
IF Mid(previous, index, 1) = Chr(10) THEN
lineCount = lineCount + 1
END IF
NEXT
IF lineCount >= 10 THEN
RETURN FALSE
END IF
UO.BookSetPageText(page, previous + Chr(10) + line)
RETURN TRUE
END FUNCTION매개변수 및 실행 설명:
- 대상 책이 열려 있고 필요한 페이지를 받았으며 쓰기에는 편집 권한이 있다고 가정합니다. 1, 2, 3은 페이지 번호이므로 존재를 확인하세요. 이름과 본문은 예시입니다.
- 보조 함수 전체가 제공됩니다. TRUE는 로컬 검사와 호출을 했다는 뜻일 뿐 서버 저장 확인이 아닙니다.
Русский · English · Українська · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
ClassicUO
Bad Newbie & Basic IDE
Найти в справочнике
Клиент и скрипты
Каталоги значений
Разработка и помощь