Dépannage

La boutique ne s’ouvre pas

Vérifiez que l’acteur possède un AC Merchant Store, que son StoreID est renseigné et unique, et que l’acteur est présent au lancement. Appelez CanOpenStore et affichez OutLockReason lorsque la boutique est verrouillée.

Une transaction renvoie LogicContextInvalid

Vérifiez que votre classe enfant de ADS_MerchantLogicBase est transmise à SetLogicContextClass. Contrôlez les événements qui lisent et modifient les objets et monnaies. Ils doivent retourner une valeur cohérente avec la modification réellement effectuée.

Le prix est introuvable ou incorrect

Contrôlez ItemID dans l’entrée de boutique et dans DT_MerchantPrice. Avec Use Global Price activé, le plugin cherche une ligne dont ItemID correspond ; le nom de ligne ne suffit pas. Vérifiez aussi la monnaie et le montant du type de transaction concerné.

Le stock ou un verrouillage ne se met pas à jour

Le stock ne diminue que pour un achat réussi et seulement lorsqu’il est fini. Utilisez GetItemStock, ChangeItemStock, GetItemLocked et SetItemLocked sur le niveau actif. Pour un verrouillage global, utilisez GetStoreLocked et SetStoreLocked.

La boutique perd son état après chargement

Avant de sauvegarder, récupérez GetAllStoreStates. Après chargement, fournissez exactement cette map à SetAllStoreStates. Les clés de la map doivent être les mêmes StoreID que ceux des composants enregistrés.

L’interface affiche une quantité ou un prix erroné

N’utilisez pas un prix calculé par le widget. Appelez GetResolvedPrice et GetMaxTransactionQuantity pour le marchand, l’objet et le type de transaction demandés, puis appelez la transaction avec la même quantité.