-
Notifications
You must be signed in to change notification settings - Fork 0
API UO SendShopReply fr
ClassicUO / Basic IDE
Envoie une sélection à la dernière offre active du PNJ. L’offre détermine achat au PNJ ou vente au PNJ.
UO.SendShopReply(reply:Any) -> Unit
-
reply— String "serial:quantity" ; séparer les lignes par |, ; ou virgule ; = peut remplacer :. Serial est l’ID de ligne de GetShopList, décimal ou 0x, pas le type ni le vendeur. Quantity est un entier positif d’unités, pas de piles ; omission = 1. "accept" sans distinction de casse ou "1" confirme le brouillon ; chaîne vide annule par une réponse vide.
Unit : aucune valeur, aucun Boolean, total ni confirmation d’achat. Le serveur décide ; vérifier ensuite objets, or ou messages.
- Ouvrir d’abord l’achat ou la vente auprès du PNJ voulu et attendre son offre. Ces commandes ne cherchent pas le vendeur, n’ouvrent pas le commerce, ne fixent pas les prix d’un vendeur personnel et ne déplacent pas les objets entre coffres. Aucun argument ID de vendeur : la dernière offre est utilisée.
- Le gestionnaire garde offre et brouillon dans la session sans affichage. Rouvrir restaure la fenêtre. Fermer le magasin lui-même, répondre, fermeture serveur ou déconnexion supprime l’offre. L’achat/vente automatique Bad Newbie peut la traiter avant le script.
- La lecture n’envoie aucun paquet. C’est un instantané reçu, pas une garantie du stock. Amount compte les unités ; GetArrayLength(rows) compte les lignes. SendShopReply ne reçoit pas de prix.
- Une liste explicite remplace le brouillon. Les ID répétés additionnent les quantités, limitées à la quantité totale proposée. ID inconnu, quantité invalide ou non positive rejette toute la réponse sans envoi et conserve l’offre. Sans offre, SendShopReply signale une erreur. "0" n’annule pas : utiliser "".
SessionShops valide les listes/prix complets et garde l’offre. Le bridge utilise le thread de session. GetItems forme les lignes, ParseSelection valide la sélection, Reply envoie achat 0x3B ou vente 0x9F puis ferme. ShopGump conserve sélection et défilement au détachement. Une fermeture serveur ne renvoie pas de réponse.
Ouvrir d’abord l’achat ou la vente auprès du PNJ voulu et attendre son offre. Ces commandes ne cherchent pas le vendeur, n’ouvrent pas le commerce, ne fixent pas les prix d’un vendeur personnel et ne déplacent pas les objets entre coffres. Aucun argument ID de vendeur : la dernière offre est utilisée.
String "serial:quantity" ; séparer les lignes par |, ; ou virgule ; = peut remplacer :. Serial est l’ID de ligne de GetShopList, décimal ou 0x, pas le type ni le vendeur. Quantity est un entier positif d’unités, pas de piles ; omission = 1. "accept" sans distinction de casse ou "1" confirme le brouillon ; chaîne vide annule par une réponse vide.
Source du projet: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; fonction SendShopReply.
Une liste explicite remplace le brouillon. Les ID répétés additionnent les quantités, limitées à la quantité totale proposée. ID inconnu, quantité invalide ou non positive rejette toute la réponse sans envoi et conserve l’offre. Sans offre, SendShopReply signale une erreur. "0" n’annule pas : utiliser "".
Le gestionnaire garde offre et brouillon dans la session sans affichage. Rouvrir restaure la fenêtre. Fermer le magasin lui-même, répondre, fermeture serveur ou déconnexion supprime l’offre. L’achat/vente automatique Bad Newbie peut la traiter avant le script.
Source du projet: src/ClassicUO.Client/Game/Managers/SessionShops.cs; fonction SessionShop.ParseSelection/Reply.
Unit : aucune valeur, aucun Boolean, total ni confirmation d’achat. Le serveur décide ; vérifier ensuite objets, or ou messages.
# Choisir trois unités au plus
#
# Envoie une sélection à la dernière offre active du PNJ. L’offre détermine achat au PNJ ou
# vente au PNJ.
#
# Unit : aucune valeur, aucun Boolean, total ni confirmation d’achat. Le serveur décide ;
# vérifier ensuite objets, or ou messages.
SUB Main()
# Jusqu’à 3 unités de la première ligne réelle. Achat dans une offre d’achat, vente dans une
# offre de vente : vérifier le sens.
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 SUBExplication des paramètres et du déroulement:
- Jusqu’à 3 unités de la première ligne réelle. Achat dans une offre d’achat, vente dans une offre de vente : vérifier le sens.
# Choisir selon un budget
#
# Envoie une sélection à la dernière offre active du PNJ. L’offre détermine achat au PNJ ou
# vente au PNJ.
#
# Unit : aucune valeur, aucun Boolean, total ni confirmation d’achat. Le serveur décide ;
# vérifier ensuite objets, or ou messages.
SUB Main()
# ACHAT uniquement : budget 30, type 0x0E21. Une unité par ligne correspondante si prix positif
# et compatible avec le reste du budget ; | assemble une seule réponse.
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 SUBExplication des paramètres et du déroulement:
- ACHAT uniquement : budget 30, type 0x0E21. Une unité par ligne correspondante si prix positif et compatible avec le reste du budget ; | assemble une seule réponse.
# Confirmer le brouillon
#
# Envoie une sélection à la dernière offre active du PNJ. L’offre détermine achat au PNJ ou
# vente au PNJ.
#
# Unit : aucune valeur, aucun Boolean, total ni confirmation d’achat. Le serveur décide ;
# vérifier ensuite objets, or ou messages.
SUB Main()
# Choisir d’abord les quantités dans le magasin. "accept" confirme ce brouillon, conservé sans
# affichage. Sans sélection, réponse vide ; "1" est un alias de confirmation.
UO.SendShopReply("accept")
END SUBExplication des paramètres et du déroulement:
- Choisir d’abord les quantités dans le magasin. "accept" confirme ce brouillon, conservé sans affichage. Sans sélection, réponse vide ; "1" est un alias de confirmation.
# Annuler l’offre
#
# Envoie une sélection à la dernière offre active du PNJ. L’offre détermine achat au PNJ ou
# vente au PNJ.
#
# Unit : aucune valeur, aucun Boolean, total ni confirmation d’achat. Le serveur décide ;
# vérifier ensuite objets, or ou messages.
SUB Main()
# La chaîne vide envoie une réponse vide et ferme l’offre. GetShopList ne distingue pas offre
# vide et offre absente.
IF GetArrayLength(UO.GetShopList()) > 0 THEN
UO.SendShopReply("")
END IF
END SUBExplication des paramètres et du déroulement:
- La chaîne vide envoie une réponse vide et ferme l’offre. GetShopList ne distingue pas offre vide et offre absente.
Shop lists / Списки покупки и продажи
Русский · English · Українська · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
ClassicUO
Bad Newbie & Basic IDE
Найти в справочнике
Клиент и скрипты
Каталоги значений
Разработка и помощь