Skip to content

API UO SendShopReply it

Codex edited this page Sep 23, 2026 · 1 revision

UO.SendShopReply

ClassicUO / Basic IDE

Home · API · Trading

Invia una selezione all’ultima offerta attiva NPC. L’offerta determina acquisto dal NPC o vendita al NPC.

Sintassi esatta

UO.SendShopReply(reply:Any) -> Unit

Parametri

  • reply — String "serial:quantity"; separare voci con |, ; o virgola; = può sostituire :. Serial è l’ID della voce di GetShopList, decimale o 0x, non tipo o venditore. Quantity: intero positivo di unità, non pile; se omesso vale 1. "accept" senza distinzione maiuscole o "1" conferma la bozza; stringa vuota annulla con risposta vuota.

Restituisce

Unit: nessun valore, Boolean, totale o conferma d’acquisto. Decide il server; controllare poi oggetti, oro o messaggi.

Comportamento

  • 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 "".

Funzioni interne: dalla chiamata al risultato

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.

1. SendShopReply

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.

String "serial:quantity"; separare voci con |, ; o virgola; = può sostituire :. Serial è l’ID della voce di GetShopList, decimale o 0x, non tipo o venditore. Quantity: intero positivo di unità, non pile; se omesso vale 1. "accept" senza distinzione maiuscole o "1" conferma la bozza; stringa vuota annulla con risposta vuota.

Sorgente del progetto: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; funzione SendShopReply.

2. SessionShop.ParseSelection/Reply

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 "".

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.ParseSelection/Reply.

Unit: nessun valore, Boolean, totale o conferma d’acquisto. Decide il server; controllare poi oggetti, oro o messaggi.

Esempi

Scegliere fino a tre unità

# Scegliere fino a tre unità
#
# Invia una selezione all’ultima offerta attiva NPC. L’offerta determina acquisto dal NPC o
# vendita al NPC.
#
# Unit: nessun valore, Boolean, totale o conferma d’acquisto. Decide il server; controllare poi
# oggetti, oro o messaggi.

SUB Main()
    # Fino a 3 unità della prima voce reale. Acquista nell’offerta d’acquisto e vende in quella di
    # vendita: controllare la direzione.

    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

Spiegazione dei parametri e dell’esecuzione:

  • Fino a 3 unità della prima voce reale. Acquista nell’offerta d’acquisto e vende in quella di vendita: controllare la direzione.

Selezionare entro il budget

# Selezionare entro il budget
#
# Invia una selezione all’ultima offerta attiva NPC. L’offerta determina acquisto dal NPC o
# vendita al NPC.
#
# Unit: nessun valore, Boolean, totale o conferma d’acquisto. Decide il server; controllare poi
# oggetti, oro o messaggi.

SUB Main()
    # Solo ACQUISTO: budget 30, tipo 0x0E21. Una unità per voce adatta con prezzo positivo entro il
    # budget residuo; | unisce una sola risposta.

    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

Spiegazione dei parametri e dell’esecuzione:

  • Solo ACQUISTO: budget 30, tipo 0x0E21. Una unità per voce adatta con prezzo positivo entro il budget residuo; | unisce una sola risposta.

Confermare la bozza

# Confermare la bozza
#
# Invia una selezione all’ultima offerta attiva NPC. L’offerta determina acquisto dal NPC o
# vendita al NPC.
#
# Unit: nessun valore, Boolean, totale o conferma d’acquisto. Decide il server; controllare poi
# oggetti, oro o messaggi.

SUB Main()
    # Prima scegliere quantità nel negozio. "accept" conferma la bozza conservata senza grafica.
    # Senza selezione risposta vuota; "1" è un alias di conferma.

    UO.SendShopReply("accept")
END SUB

Spiegazione dei parametri e dell’esecuzione:

  • Prima scegliere quantità nel negozio. "accept" conferma la bozza conservata senza grafica. Senza selezione risposta vuota; "1" è un alias di conferma.

Annullare l’offerta

# Annullare l’offerta
#
# Invia una selezione all’ultima offerta attiva NPC. L’offerta determina acquisto dal NPC o
# vendita al NPC.
#
# Unit: nessun valore, Boolean, totale o conferma d’acquisto. Decide il server; controllare poi
# oggetti, oro o messaggi.

SUB Main()
    # La stringa vuota invia risposta vuota e chiude. GetShopList non distingue offerta vuota e
    # assente.

    IF GetArrayLength(UO.GetShopList()) > 0 THEN
        UO.SendShopReply("")
    END IF
END SUB

Spiegazione dei parametri e dell’esecuzione:

  • La stringa vuota invia risposta vuota e chiude. GetShopList non distingue offerta vuota e assente.

Shop lists / Списки покупки и продажи

Shop lists / Списки покупки и продажи

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

Clone this wiki locally