-
Notifications
You must be signed in to change notification settings - Fork 0
API UO SendShopReply ko
ClassicUO / Basic IDE
최근 활성 NPC 제안에 상품 선택을 보냅니다. 구매인지 판매인지는 열린 제안이 결정합니다.
UO.SendShopReply(reply:Any) -> Unit
-
reply— 문자열 "serial:quantity". 여러 항목은 |, ;, 쉼표로 구분하며 : 대신 =도 됩니다. serial은 GetShopList의 항목 ID(10진 또는 0x)이며 종류나 상인 ID가 아닙니다. quantity는 양의 정수 단위 수로 묶음 수가 아니며 생략 시 1입니다. 대소문자 구분 없는 "accept" 또는 "1"은 초안을 확정하고 빈 문자열은 빈 응답으로 취소합니다.
Unit: 값, Boolean, 총액, 구매 확인을 반환하지 않습니다. 서버가 결정하므로 이후 물건, 금액, 메시지를 확인하세요.
- 먼저 원하는 NPC의 구매 또는 판매를 열고 서버 제안을 기다리세요. 상인 검색, 거래 시작, 개인 vendor 가격 지정, 상자 간 이동은 하지 않습니다. 상인 ID 인수는 없으며 최근 제안을 사용합니다.
- 관리자는 그래픽 없이도 세션에 제안과 초안을 보관하고 다시 열면 창을 복원합니다. 상점 자체 닫기, 응답, 서버 종료 통지, 연결 해제는 제안을 없앱니다. Bad Newbie 자동 구매·판매가 스크립트보다 먼저 처리할 수 있습니다.
- 읽기는 패킷을 보내지 않습니다. 받은 데이터의 스냅샷이며 현재 재고를 보장하지 않습니다. amount는 단위 수, GetArrayLength(rows)는 항목 수입니다. SendShopReply는 가격을 받지 않습니다.
- 명시 목록은 초안을 대체합니다. 같은 serial의 수량은 합산하며 전체 제안 수량으로 제한합니다. 알 수 없는 ID, 잘못되거나 0 이하 수량은 전송 전 전체 응답을 거절하고 제안을 유지합니다. 제안이 없는 SendShopReply는 오류입니다. "0"은 취소가 아니며 ""를 사용하세요.
SessionShops가 전체 목록·가격을 검사하고 저장하며 bridge는 세션 스레드에서 실행합니다. GetItems는 행 생성, ParseSelection은 선택 검사, Reply는 구매 0x3B 또는 판매 0x9F 전송 후 닫기를 수행합니다. ShopGump는 같은 상태를 표시하며 분리 시 수량과 스크롤을 보관합니다. 서버 종료에는 다시 응답하지 않습니다.
먼저 원하는 NPC의 구매 또는 판매를 열고 서버 제안을 기다리세요. 상인 검색, 거래 시작, 개인 vendor 가격 지정, 상자 간 이동은 하지 않습니다. 상인 ID 인수는 없으며 최근 제안을 사용합니다.
문자열 "serial:quantity". 여러 항목은 |, ;, 쉼표로 구분하며 : 대신 =도 됩니다. serial은 GetShopList의 항목 ID(10진 또는 0x)이며 종류나 상인 ID가 아닙니다. quantity는 양의 정수 단위 수로 묶음 수가 아니며 생략 시 1입니다. 대소문자 구분 없는 "accept" 또는 "1"은 초안을 확정하고 빈 문자열은 빈 응답으로 취소합니다.
프로젝트 소스: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; 함수 SendShopReply.
명시 목록은 초안을 대체합니다. 같은 serial의 수량은 합산하며 전체 제안 수량으로 제한합니다. 알 수 없는 ID, 잘못되거나 0 이하 수량은 전송 전 전체 응답을 거절하고 제안을 유지합니다. 제안이 없는 SendShopReply는 오류입니다. "0"은 취소가 아니며 ""를 사용하세요.
관리자는 그래픽 없이도 세션에 제안과 초안을 보관하고 다시 열면 창을 복원합니다. 상점 자체 닫기, 응답, 서버 종료 통지, 연결 해제는 제안을 없앱니다. Bad Newbie 자동 구매·판매가 스크립트보다 먼저 처리할 수 있습니다.
프로젝트 소스: src/ClassicUO.Client/Game/Managers/SessionShops.cs; 함수 SessionShop.ParseSelection/Reply.
Unit: 값, Boolean, 총액, 구매 확인을 반환하지 않습니다. 서버가 결정하므로 이후 물건, 금액, 메시지를 확인하세요.
# 첫 항목 최대 3개 선택
#
# 최근 활성 NPC 제안에 상품 선택을 보냅니다. 구매인지 판매인지는 열린 제안이 결정합니다.
#
# Unit: 값, Boolean, 총액, 구매 확인을 반환하지 않습니다. 서버가 결정하므로 이후 물건, 금액, 메시지를 확인하세요.
SUB Main()
# 실제 첫 항목에서 최대 3개. 구매 제안은 구매, 판매 제안은 판매하므로 방향을 확인하세요.
VAR rows = UO.GetShopList()
IF GetArrayLength(rows) = 0 THEN
RETURN
END IF
VAR amount = CInt(GetWord(rows[0], 3, "|"))
IF amount > 3 THEN
amount = 3
END IF
IF amount > 0 THEN
UO.SendShopReply(GetWord(rows[0], 0, "|") + ":" + CStr(amount))
END IF
END SUB매개변수 및 실행 설명:
- 실제 첫 항목에서 최대 3개. 구매 제안은 구매, 판매 제안은 판매하므로 방향을 확인하세요.
# 예산 내 선택
#
# 최근 활성 NPC 제안에 상품 선택을 보냅니다. 구매인지 판매인지는 열린 제안이 결정합니다.
#
# Unit: 값, Boolean, 총액, 구매 확인을 반환하지 않습니다. 서버가 결정하므로 이후 물건, 금액, 메시지를 확인하세요.
SUB Main()
# 구매 전용: 예산 30, 종류 0x0E21. 양의 가격이 남은 예산 이내인 항목마다 1개를 선택하고 |로 한 응답에 합칩니다.
VAR budget = 30
VAR reply = ""
VAR rows = UO.GetShopList()
FOR VAR i = 0 TO GetArrayLength(rows) - 1
VAR row = rows[i]
IF GetWord(row, 1, "|") = "0x0E21" THEN
VAR price = CDbl(GetWord(row, 4, "|"))
VAR amount = CInt(GetWord(row, 3, "|"))
IF price > 0 AND price <= budget AND amount > 0 THEN
IF reply <> "" THEN
reply = reply + "|"
END IF
reply = reply + GetWord(row, 0, "|") + ":1"
budget = budget - price
END IF
END IF
NEXT
IF reply <> "" THEN
UO.SendShopReply(reply)
END IF
END SUB매개변수 및 실행 설명:
- 구매 전용: 예산 30, 종류 0x0E21. 양의 가격이 남은 예산 이내인 항목마다 1개를 선택하고 |로 한 응답에 합칩니다.
# 창 초안 확정
#
# 최근 활성 NPC 제안에 상품 선택을 보냅니다. 구매인지 판매인지는 열린 제안이 결정합니다.
#
# Unit: 값, Boolean, 총액, 구매 확인을 반환하지 않습니다. 서버가 결정하므로 이후 물건, 금액, 메시지를 확인하세요.
SUB Main()
# 먼저 상점에서 수량을 선택하세요. "accept"는 그래픽을 닫아도 보존된 초안을 확정합니다. 미선택이면 빈 응답, "1"은 확정 별칭입니다.
UO.SendShopReply("accept")
END SUB매개변수 및 실행 설명:
- 먼저 상점에서 수량을 선택하세요. "accept"는 그래픽을 닫아도 보존된 초안을 확정합니다. 미선택이면 빈 응답, "1"은 확정 별칭입니다.
# 제안 취소
#
# 최근 활성 NPC 제안에 상품 선택을 보냅니다. 구매인지 판매인지는 열린 제안이 결정합니다.
#
# Unit: 값, Boolean, 총액, 구매 확인을 반환하지 않습니다. 서버가 결정하므로 이후 물건, 금액, 메시지를 확인하세요.
SUB Main()
# 빈 문자열은 빈 응답으로 제안을 닫습니다. GetShopList는 빈 제안과 없는 제안을 구분하지 못합니다.
IF GetArrayLength(UO.GetShopList()) > 0 THEN
UO.SendShopReply("")
END IF
END SUB매개변수 및 실행 설명:
- 빈 문자열은 빈 응답으로 제안을 닫습니다. GetShopList는 빈 제안과 없는 제안을 구분하지 못합니다.
Shop lists / Списки покупки и продажи
Русский · English · Українська · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
ClassicUO
Bad Newbie & Basic IDE
Найти в справочнике
Клиент и скрипты
Каталоги значений
Разработка и помощь