-
Notifications
You must be signed in to change notification settings - Fork 0
API UO GetShopList it
ClassicUO / Basic IDE
Legge gli articoli dell’ultima offerta attiva di un venditore NPC per controllare tipo, quantità e prezzo prima di comprare o vendere.
UO.GetShopList() -> Any
Nessun parametro.
Array of String, indici da 0: serial|graphic|hue|amount|price|name. Serial identifica la voce, graphic il tipo, hue il colore; questi tre campi usano 0x. Amount indica unità disponibili meno la bozza della finestra, price il prezzo unitario. Senza offerta array vuoto, non Boolean. Solo i primi cinque | separano campi; il resto è il nome e può contenere |.
- Aprire prima acquisto o vendita con il NPC desiderato e aspettarne l’offerta. Non cerca venditori, apre commercio, imposta prezzi del proprio venditore o sposta oggetti tra contenitori. Nessun argomento ID venditore: usa l’ultima offerta.
- Il gestore conserva offerta e bozza nella sessione senza grafica; riaprendo ripristina la finestra. Chiusura del negozio, risposta, chiusura server o disconnessione rimuovono l’offerta. Acquisto/vendita automatica Bad Newbie può elaborarla prima dello script.
- La lettura non invia pacchetti. È una fotografia dei dati ricevuti, non garanzia di scorte. Amount conta unità, GetArrayLength(rows) voci. SendShopReply non accetta prezzi.
- Una lista esplicita sostituisce la bozza. ID ripetuti sommano quantità fino al totale offerto. ID sconosciuto o quantità non valida/non positiva rifiuta l’intera risposta senza inviare e conserva l’offerta. Senza offerta SendShopReply segnala errore. "0" non annulla: usare "".
SessionShops controlla liste/prezzi completi e conserva l’offerta. Il bridge esegue nel thread di sessione. GetItems formatta righe, ParseSelection valida, Reply invia acquisto 0x3B o vendita 0x9F e chiude. ShopGump conserva selezione e scorrimento al distacco. La chiusura server non genera un’altra risposta.
Aprire prima acquisto o vendita con il NPC desiderato e aspettarne l’offerta. Non cerca venditori, apre commercio, imposta prezzi del proprio venditore o sposta oggetti tra contenitori. Nessun argomento ID venditore: usa l’ultima offerta.
Array of String, indici da 0: serial|graphic|hue|amount|price|name. Serial identifica la voce, graphic il tipo, hue il colore; questi tre campi usano 0x. Amount indica unità disponibili meno la bozza della finestra, price il prezzo unitario. Senza offerta array vuoto, non Boolean. Solo i primi cinque | separano campi; il resto è il nome e può contenere |.
Sorgente del progetto: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; funzione GetShopList.
La lettura non invia pacchetti. È una fotografia dei dati ricevuti, non garanzia di scorte. Amount conta unità, GetArrayLength(rows) voci. SendShopReply non accetta prezzi.
Il gestore conserva offerta e bozza nella sessione senza grafica; riaprendo ripristina la finestra. Chiusura del negozio, risposta, chiusura server o disconnessione rimuovono l’offerta. Acquisto/vendita automatica Bad Newbie può elaborarla prima dello script.
Sorgente del progetto: src/ClassicUO.Client/Game/Managers/SessionShops.cs; funzione SessionShop.GetItems.
La lettura non invia pacchetti. È una fotografia dei dati ricevuti, non garanzia di scorte. Amount conta unità, GetArrayLength(rows) voci. SendShopReply non accetta prezzi.
# Leggere la prima voce
#
# Legge gli articoli dell’ultima offerta attiva di un venditore NPC per controllare tipo,
# quantità e prezzo prima di comprare o vendere.
#
# Array of String, indici da 0: serial|graphic|hue|amount|price|name. Serial identifica la voce,
# graphic il tipo, hue il colore; questi tre campi usano 0x. Amount indica unità disponibili
# meno la bozza della finestra, price il prezzo unitario. Senza offerta array vuoto, non
# Boolean. Solo i primi cinque | separano campi; il resto è il nome e può contenere |.
SUB Main()
# GetWord: 0 serial, 1 graphic, 2 hue, 3 quantità, 4 prezzo. Controllare lunghezza prima di
# 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 SUBSpiegazione dei parametri e dell’esecuzione:
- GetWord: 0 serial, 1 graphic, 2 hue, 3 quantità, 4 prezzo. Controllare lunghezza prima di rows[0].
# Comprare fino a dieci bende entro un prezzo
#
# Legge gli articoli dell’ultima offerta attiva di un venditore NPC per controllare tipo,
# quantità e prezzo prima di comprare o vendere.
#
# Array of String, indici da 0: serial|graphic|hue|amount|price|name. Serial identifica la voce,
# graphic il tipo, hue il colore; questi tre campi usano 0x. Amount indica unità disponibili
# meno la bozza della finestra, price il prezzo unitario. Senza offerta array vuoto, non
# Boolean. Solo i primi cinque | separano campi; il resto è il nome e può contenere |.
SUB Main()
# Solo ACQUISTO già aperto: 0x0E21 bende, prezzo massimo 5, quantità massima 10. Prima voce
# adatta con il suo serial reale.
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 SUBSpiegazione dei parametri e dell’esecuzione:
- Solo ACQUISTO già aperto: 0x0E21 bende, prezzo massimo 5, quantità massima 10. Prima voce adatta con il suo serial reale.
# Contare le scorte di un tipo
#
# Legge gli articoli dell’ultima offerta attiva di un venditore NPC per controllare tipo,
# quantità e prezzo prima di comprare o vendere.
#
# Array of String, indici da 0: serial|graphic|hue|amount|price|name. Serial identifica la voce,
# graphic il tipo, hue il colore; questi tre campi usano 0x. Amount indica unità disponibili
# meno la bozza della finestra, price il prezzo unitario. Senza offerta array vuoto, non
# Boolean. Solo i primi cinque | separano campi; il resto è il nome e può contenere |.
SUB Main()
# Funzione completa che somma amount del tipo scelto; vuoto restituisce 0. Sono unità
# disponibili, non creature o oggetti indossati.
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 FUNCTIONSpiegazione dei parametri e dell’esecuzione:
- Funzione completa che somma amount del tipo scelto; vuoto restituisce 0. Sono unità disponibili, non creature o oggetti indossati.
Shop lists / Списки покупки и продажи
Русский · English · Українська · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
ClassicUO
Bad Newbie & Basic IDE
Найти в справочнике
Клиент и скрипты
Каталоги значений
Разработка и помощь