-
Notifications
You must be signed in to change notification settings - Fork 0
API UO GetShopList ja
ClassicUO / Basic IDE
最後の有効なNPC商人の提示商品を読み、購入・売却前に種類、数量、価格を確認します。
UO.GetShopList() -> Any
引数はありません。
Array of String、添字は0から。行はserial|graphic|hue|amount|price|name。serialは商品行ID、graphicは種類、hueは色で、この3項目は0x表記です。amountは提示数量から画面の下書き選択を引いた単位数、priceは単価です。取引がなければ空配列、Booleanではありません。区切りは先頭5個の|だけで、残りは名前です。名前にも|が含まれ得ます。
- 先に目的の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引数はなく、最後の提示を使います。
Array of String、添字は0から。行はserial|graphic|hue|amount|price|name。serialは商品行ID、graphicは種類、hueは色で、この3項目は0x表記です。amountは提示数量から画面の下書き選択を引いた単位数、priceは単価です。取引がなければ空配列、Booleanではありません。区切りは先頭5個の|だけで、残りは名前です。名前にも|が含まれ得ます。
プロジェクトのソース: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; 関数 GetShopList.
読み取りは通信しません。受信データのスナップショットで、現在の在庫を保証しません。amountは単位数、GetArrayLength(rows)は行数です。SendShopReplyに価格は渡せません。
マネージャーは画面がなくてもセッションに提示と下書きを保持し、画面を開き直すと復元します。店自体を閉じる、応答、サーバーの終了通知、切断で提示はなくなります。Bad Newbie自動売買が先に処理する場合があります。
プロジェクトのソース: src/ClassicUO.Client/Game/Managers/SessionShops.cs; 関数 SessionShop.GetItems.
読み取りは通信しません。受信データのスナップショットで、現在の在庫を保証しません。amountは単位数、GetArrayLength(rows)は行数です。SendShopReplyに価格は渡せません。
# 先頭行の項目を読む
#
# 最後の有効なNPC商人の提示商品を読み、購入・売却前に種類、数量、価格を確認します。
#
# Array of
# String、添字は0から。行はserial|graphic|hue|amount|price|name。serialは商品行ID、graphicは種類、hueは色で、この3項目は0x表記です。amountは提示数量から画面の下書き選択を引いた単位数、priceは単価です。取引がなければ空配列、Booleanではありません。区切りは先頭5個の|だけで、残りは名前です。名前にも|が含まれ得ます。
SUB Main()
# GetWordは0がserial、1がgraphic、2がhue、3が数量、4が価格。rows[0]の前に長さを確認します。
VAR rows = UO.GetShopList()
IF GetArrayLength(rows) = 0 THEN
RETURN
END IF
VAR serial = GetWord(rows[0], 0, "|")
VAR itemType = GetWord(rows[0], 1, "|")
VAR amount = CInt(GetWord(rows[0], 3, "|"))
VAR price = CDbl(GetWord(rows[0], 4, "|"))
UO.Print(serial + " / " + itemType + " / " + CStr(amount) + " / " + CStr(price))
END SUBパラメーターと実行の説明:
- GetWordは0がserial、1がgraphic、2がhue、3が数量、4が価格。rows[0]の前に長さを確認します。
# 単価上限付きで包帯を最大10個購入
#
# 最後の有効なNPC商人の提示商品を読み、購入・売却前に種類、数量、価格を確認します。
#
# Array of
# String、添字は0から。行はserial|graphic|hue|amount|price|name。serialは商品行ID、graphicは種類、hueは色で、この3項目は0x表記です。amountは提示数量から画面の下書き選択を引いた単位数、priceは単価です。取引がなければ空配列、Booleanではありません。区切りは先頭5個の|だけで、残りは名前です。名前にも|が含まれ得ます。
SUB Main()
# 開いた購入提示専用。0x0E21は包帯、5は単価上限、10は数量上限。最初の該当行の実際のserialを使います。
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 <= 5 AND amount > 0 THEN
IF amount > 10 THEN
amount = 10
END IF
UO.SendShopReply(GetWord(row, 0, "|") + ":" + CStr(amount))
RETURN
END IF
END IF
NEXT
END SUBパラメーターと実行の説明:
- 開いた購入提示専用。0x0E21は包帯、5は単価上限、10は数量上限。最初の該当行の実際のserialを使います。
# 種類別在庫を数える
#
# 最後の有効なNPC商人の提示商品を読み、購入・売却前に種類、数量、価格を確認します。
#
# Array of
# String、添字は0から。行はserial|graphic|hue|amount|price|name。serialは商品行ID、graphicは種類、hueは色で、この3項目は0x表記です。amountは提示数量から画面の下書き選択を引いた単位数、priceは単価です。取引がなければ空配列、Booleanではありません。区切りは先頭5個の|だけで、残りは名前です。名前にも|が含まれ得ます。
SUB Main()
# 補助関数全体を掲載。種類が一致する全行のamountを合算し、空なら0。所持品や生き物の数ではなく購入可能単位数です。
VAR available = CountOfferedType("0x0E21")
IF available < 10 THEN
UO.Print("Bandage stock below 10: " + CStr(available))
END IF
END SUB
FUNCTION CountOfferedType(itemType)
VAR total = 0
VAR rows = UO.GetShopList()
FOR VAR i = 0 TO GetArrayLength(rows) - 1
IF GetWord(rows[i], 1, "|") = itemType THEN
total = total + CInt(GetWord(rows[i], 3, "|"))
END IF
NEXT
RETURN total
END FUNCTIONパラメーターと実行の説明:
- 補助関数全体を掲載。種類が一致する全行のamountを合算し、空なら0。所持品や生き物の数ではなく購入可能単位数です。
Shop lists / Списки покупки и продажи
Русский · English · Українська · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
ClassicUO
Bad Newbie & Basic IDE
Найти в справочнике
Клиент и скрипты
Каталоги значений
Разработка и помощь